7.5 手部识别数据
EGO1GS 开启手部识别后,识别结果作为一路独立频道 /ego/camera/0/annotations 与画面一起录进 .mcap。本页说明它携带什么、怎么看、怎么读。
频道内容
- 每只识别到的手一个方框,并区分左手 / 右手。
- 标注挂在相机 0(右目)上,与
/ego/camera/0共用同一条时间轴,可以直接按时间戳对齐到视频帧。 - 识别的是佩戴者自己的手;不保证会忽略画面中其他人的手。光线过暗、手被完全遮挡或只露出很小一部分时可能识别不到,这属于正常情况。
- 关闭手部识别时该频道不存在;EGO1 的录制中也没有。使用方必须容忍其缺失。
在 Foxglove / visio-display 中叠加显示
在 Foxglove Studio 里把图像面板的 topic 设为 /ego/camera/0,标注 topic 会作为可叠加的图层出现,勾选即可在视频上画框。visio-display 仅在实时转发到 Foxglove 时显示方框;文件回放请直接在 Foxglove 中打开 .mcap(左手绿色、右手青色)。
用 Python 读取
Schema 为 foxglove.ImageAnnotations,内嵌在文件里,按 channel.schema_name 解码即可,不需要事先知道类型名:
from visio_schema import read_mcap, message_class
for msg, channel in read_mcap("capture.mcap"):
if channel.topic == "/ego/camera/0/annotations":
ann = message_class(channel.schema_name)()
ann.ParseFromString(msg.payload)
print(ann) # 每只手的方框与左右手标签,时间戳与相机 0 同轴
要把框对应到具体的视频帧,用标注消息的时间戳在 /ego/camera/0 中找最近的帧;时间戳都是设备单调时钟,见 7.2。
相关
- 13. 手部识别——功能说明、开关与语音提示。
- 7.4 频道与网络速查——完整的 topic 表。