在数据海洋中定位关键信息:使用Daft查询物理AI数据
本文介绍了如何使用Daft框架对Apple的EgoDex数据集进行高效查询。通过结合帧级语义嵌入(如SigLIP)和几何特征,研究人员可以用自然语言搜索视频片段,例如“找到所有手部呈写字姿势并举起筷子的片段”。Daft使大规模、非结构化机器人数据集的可发现性成为可能。
在机器人技术领域,传统方法通常依赖于预设的任务菜单——例如,亚马逊的Kiva机器人只需知道如何移动货架,而扫地机器人只需清洁地板。然而,当环境变得不可控时,这种方法便失效了。训练折叠衣物机器人时,无法枚举所有衣物配置;自动驾驶车队每天上传PB级数据,但研究人员难以从数万小时视频中找出近碰撞或违规事件。这就是前沿机器人实验室面临的“数据理解问题”。
苹果公司的EgoDex数据集为解决这一问题提供了绝佳场景。该数据集包含第一人称视角的手部姿态标注和头部摄像头视频,涵盖多种桌面任务。但EgoDex同样面临“菜单问题”:任务描述如“坐在木桌上折叠小T恤”无法揭示具体动作细节。研究人员需要知道训练数据中是否缺少扭转动作,或如何筛选出紧握锤子的片段。
Daft框架为此提供了解决方案。首先,它通过本机HDF5文件类型直接读取EgoDex数据集(HDF5格式),将每个片段(.hdf5文件和对应.mp4视频)转换为逐帧DataFrame。通过自定义UDF(用户定义函数),可以批量读取手部变换矩阵、骨架数据和外参,生成一个包含帧索引、状态、骨架、动作等字段的结构化表格。
为了理解视觉内容,Daft使用Google的SigLIP-2图像编码器对帧进行子采样(每秒1帧),生成768维归一化嵌入向量。这些嵌入与文本查询(如“筷子”)的编码计算余弦相似度,从而筛选相关帧。然而,视觉编码无法识别手部几何特征,例如“写字姿势”或“锤式抓握”。为此,Daft利用传感器数据中的48维手腕姿态和204维关节骨架,计算手部开放度、抓握类型(精密抓握或力量抓握)以及动作(扭转、伸手、举起等)。这些几何特征通过NumPy和Daft UDF实现,并作为新列添加到DataFrame中。
最终,Daft将语义嵌入与几何特征结合,支持自然语言查询。例如,“找到每个片段中手部呈写字姿势并举起筷子的画面”。研究人员可以像使用CTRL+F一样搜索整个数据集,实现快速的数据审计、失败案例检索和训练集优化。这为机器人数据从“菜单式”向“可发现式”转变提供了强大工具。
此外,Daft的架构设计使其能够高效处理大规模数据。通过将嵌入计算和几何特征提取并行化,Daft可以在几分钟内完成对整个EgoDex数据集的索引。一旦索引建立,查询过程近乎实时。这种方法不仅适用于EgoDex,还可以推广到其他类似的机器人数据集,如自动驾驶传感器数据或工业机器人操作数据。未来,Daft计划支持更多传感器模态,如深度图像和触觉数据,进一步扩展其应用范围。总之,Daft有潜力成为机器人数据管理的基础工具,推动物理AI的发展。