ITW标准数据分析
存储地址:C:\Users\asus\Desktop\data\00010a33-d5b8-4d1e-b051-4dc84aff0f34
可以,这个方向很对。我给你一版更架构师视角、但严格贴合这批真实文件事实的解剖。先纠正几个关键点:这批数据目前不是 USD 数据,而是“可转成 USD/Omniverse 场景的多模态人类示范原始切片”;另外 head_hands_sixdof2.csv 实际只含头部 6DoF,没有手部 6DoF,手部主要来自 hands_keypoint_3d.json。
一、数据本体定位
这是一条 ITW 自然环境采集的人类示范数据:
任务:将钥匙插入挂锁锁孔并旋转开锁
场景:储物间
时长:约 8.57s
采集模态:RGB、Depth、IMU、Audio、头部 6DoF、手部 3D keypoints、相机/IMU 标定
用途:模仿学习、动作理解、VLA/VLM 数据、机器人重定向、Omniverse/Isaac Sim 数字孪生重放
它记录的不是“机器人已经会怎么做”,而是“人类如何完成这个高精度接触任务”。后续要把人类动作映射到机械臂、夹爪或灵巧手。
二、传感器含义
rgb_head.mp4 是第一视角 RGB 视频,相当于人眼看到的世界。它提供纹理、物体外观、锁孔位置、手和钥匙的视觉上下文。
depth_head.mkv 是头戴深度数据,对开锁这种近距离操作很关键。它能给出锁、手、钥匙相对相机的距离结构。结合相机内参可以反投影成点云。
rgb_head.csv 和 depth_head.csv 是帧时间戳索引。RGB 和 depth 都是 257 帧,约 30fps。深度帧相对 RGB 平均晚约 2.83ms,最大约 5.23ms,同步质量还不错。
imu.txt 是头部相机 IMU,约 200Hz,包含加速度和角速度。它比视频更高频,适合补偿头部快速运动、做 VIO 或时间插值。但它有 10.65s,比视频长约 2s,使用前要裁剪到 RGB 时间段。
mic.wav 是 48kHz 双声道音频,也是 10.65s。对开锁任务很有价值,因为“插入到底”“旋转成功”“锁弹开”这类事件可能有音频触发信号。
head_hands_sixdof2.csv 名字有点误导,实际只有头部位置和四元数:head_tx/ty/tz + head_qx/qy/qz/qw。它可以驱动 USD 里的虚拟 ego camera,但不能直接驱动手。
hands_keypoint_3d.json 才是手部核心数据。它包含每只手 21 个 3D 关键点,来自 depth fusion。257 帧里有 164 帧检测到手,其中 137 帧是双手。注意尾部 61 帧被标记为 excluded: tail,训练时最好过滤。
kalibr_parameters.yaml 和 head_param.json 是相机/IMU 标定。RGB 和 depth 内参一致,分辨率 1280×960,畸变参数全是 0,Depth 到 RGB 是单位变换,说明深度已经 D2C 对齐。T_cam_imu 则描述相机和 IMU 的空间关系。
三、转成 USD/Omniverse 的逻辑
第一步是建 Stage。
USD 场景里需要有储物间、挂锁、钥匙、桌面/墙面等对象。原始数据没有这些物体的 3D mesh,所以要么人工建模,要么用重建/NeRF/Gaussian Splatting/点云辅助生成。
第二步是建虚拟相机。
用 fx/fy/cx/cy、分辨率和相机坐标系创建 USD Camera。这个虚拟相机由 head_hands_sixdof2.csv 的头部 6DoF 驱动,重放人类第一视角轨迹。
第三步是反投影 depth。
每帧 depth 可以通过内参变成相机坐标系下的点云,再按头部位姿放入世界坐标。这样可以得到动作期间的局部几何结构。
第四步是手部重定向。
hands_keypoint_3d.json 可以驱动虚拟人手,也可以抽象成抓取轨迹。若目标是机械臂夹爪,需要从人手关键点里估计:手腕位姿、拇指/食指夹持点、钥匙相对手的位置、旋转开锁阶段。
第五步是生成训练样本。
进入 Omniverse/Isaac Sim 后,可以做 domain randomization:改变灯光、材质、锁颜色、相机噪声、背景杂物、钥匙初始偏差。这样从一条真实示范扩展出大量合成样本。
四、这批数据的暗坑
最重要的坑是时间轴。RGB/Depth/头部 6DoF 是 8.57 秒,IMU/音频是 10.65 秒。不能直接全部塞进模型,要先按 RGB 起止时间裁剪。
第二个坑是 frame 30 到 31 有一次约 66.6ms 间隔,等于一次 30fps 周期缺口。做轨迹插值或视频监督时要处理这个异常。
第三个坑是坐标系。USD 通常是右手系、Y-up;相机/深度/IMU/手部 keypoints 的坐标定义未必一致。写入 USD 前必须明确:相机坐标轴方向、四元数顺序、单位、世界坐标原点。
第四个坑是手部数据不连续。前约 3.13 秒没有手部关键点,尾部 61 帧被标记为 excluded。用它训练手部策略时,应只使用有效动作片段,而不是整段 257 帧硬喂。
第五个坑是没有物体状态标注。数据没有明确告诉你钥匙、锁孔、锁体的位置,也没有“插入/旋转/开锁成功”的阶段标签。要做机器人策略,还需要额外标注或自动检测关键事件。
一句话总结
这批数据是很好的真实人类开锁示范原始切片:视觉、深度、IMU、音频、头部轨迹、手部关键点和标定都有了。它离 USD/Omniverse 还差一层“结构化封装”:坐标系统一、时间裁剪、手部/物体状态估计、USD Stage 构建和虚拟相机/手部轨迹驱动。
