【免费下载链接】video_to_data_challenge
在 NVIDIA 的V2D Challenge(Video to Data Challenge)中,Track 2 考察的是“机器人定位与策略落地”:输入带不同噪声层级的人类演示轨迹,输出可执行的机器人策略。很多选手只盯着 parquet 里的姿态列,却忽略了真正决定物理合理性的两类文件——ground_plane/下的地面平面 JSON 和support_surface/下的 USD 支撑面。本文带你把这两个“物理锚点”彻底讲透,让你还原出的运动参考既贴合地面、又不穿模。🧊
一、Track 2 数据集长什么样
Track 2 包含 30 个人物交互 episode(22,990 帧、30 fps),分成两个平行的 tier:
| Tier | 目录 | 轨迹特点 |
|---|---|---|
| Tier 1: multiview caption | tier_1_multiview_caption/ | SOMA-X 原始重建轨迹(上界输入) |
| Tier 2: synthetic noise | tier_2_synthetic_noise/ | 带抖动、丢帧、接触误差的扰动轨迹 |
两个 tier共用同一套地面平面、同一套 G1 支撑面、同一批视频,因此物理锚点文件完全一致。每个 tier 都是完整的 LeRobot v2.1 数据集,详见 track_2/README.md。
二、Ground Plane JSON:地面不是 z=0,别想当然
1. 文件在哪里
每个 episode 的地面平面文件由元数据声明。打开 meta/episodes_metadata.jsonl,每行都有:
{ "episode_index": 0, "sequence_id": "2026-06-04_14-16-23_tall_bar_stool_tip_up_04", "ground_plane": "ground_plane/2026-06-04_14-16-23_tall_bar_stool_tip_up_04.json", "support_surface": "support_surface/2026-06-04_14-16-23_tall_bar_stool_tip_up_04_support.usda", "support_surface_frame": "g1_retarget_world" }命名规则也写在 meta/info.json 里:ground_plane/{sequence_id}.json。也就是说,sequence_id是串起 JSON、USD 和 episode 的主键。
2. JSON 结构逐项解读
以 spray_bottle 的平面文件 为例:
{ "plane": [-0.0184, -0.9983, -0.0547, 1.3852], "n_inliers": 475990, "n_candidates": 872446, "n_total_points": 2827404, "foot_plane_dist_stats": { "mean": 0.0346, "std": 0.0174, "min": 0.0013, "max": 0.141 } }| 字段 | 含义 |
|---|---|
plane | 归一化系数[a, b, c, d],表示平面方程ax + by + cz + d = 0 |
n_total_points/n_candidates/n_inliers | 拟合点云规模 → 候选点 → RANSAC 内点数,可用于判断拟合质量 |
foot_plane_dist_stats | 双脚到平面的距离统计(均值约 3.5 cm,接近袜子+鞋底的合理厚度,说明拟合可信) |
3. 关键坐标系:源 OpenCV 世界系
info.json中ground_plane_convention明确写着:
ax+by+cz+d=0 in source OpenCV world frame
即平面系数与 parquet 里的observation.object.pose(world_T_object,四元数 w 在前)使用同一个 OpenCV 世界坐标系。注意两点:
- OpenCV 坐标系是Y 向下、Z 向前,上面例子中法向约
(0.02, 1.0, 0.05),说明"竖直方向"在 Y 轴附近,地面绝不是简单的z = 0; - 官方文档特别警告:复现 retargeted 训练参考时,不要用水平世界平面去替换这份拟合平面(见 tier_1 的 README)。SOMA 到 G1 的重定向会把这个平面沿首帧锚点变换,替换掉它会直接破坏脚-地接触关系。
💡 小技巧:判断某点在地面哪一侧、离地面多远,直接算
a·x + b·y + c·z + d即可(系数已归一化,结果就是带符号的垂直距离)。
三、USD 支撑面:给机器人一张"不会穿模的桌子"
1. 文件格式
支撑面文件是 USD 静态碰撞场景,例如 spray_bottle 的支撑面:
#usda 1.0 ( defaultPrim = "support_surfaces" metersPerUnit = 1 upAxis = "Z" ) def Xform "support_surfaces" { def Cylinder "object_0" ( prepend apiSchemas = ["PhysicsCollisionAPI"] ) { uniform token axis = "Z" double height = 0.04 double radius = 0.0466 double3 xformOp:translate = (-0.670, 0.759, 0.858) } }要点一览:
- 单位是米,Z 轴朝上(
metersPerUnit = 1、upAxis = "Z"),与 OpenCV 系的地面 JSON 不同,它工作在G1 重定向世界(support_surface_frame = "g1_retarget_world"); - 碰撞体带
PhysicsCollisionAPI,是 Isaac 系仿真器可直接加载的静态碰撞几何;30 个 episode 里共 12 个含支撑圆柱,其余 18 个是"纯地面"任务; - 纯地面 episode 也有一份合法的空 stage(根节点
support_surfaces下没有子物体),例如 white_desk 的空支撑面——路径必须存在,不能跳过。
2. 放置位置的官方约定
README 给出的落盘路径是:
<motion-root>/whole_body/reconstructed_stage/<sequence_id>_support.usda即:在 grounding 或训练之前,把声明的那份 USD 文件与 G1 重定向后的运动数据集放在一起,仿真器就能读到与演示一致的桌面/支撑几何。多物体场景下(如 cyan_water_bottle 的支撑面)会包含多个Cylinder碰撞体,逐一描述各个支撑面。
四、实战工作流:三步建立物理一致的训练参考
- 读元数据:从 episodes_metadata.jsonl 取
sequence_id、ground_plane、support_surface三个字段,建立 episode ↔ 物理资产映射; - 校验姿态可见性:
observation.object.visible为 false 时物体姿态是全零(零四元数不是合法旋转),先过滤可见性再使用姿态;物体名即网格目录,如white_desk→mesh/white_desk/white_desk.glb; - 保持坐标系配对:地面 JSON 用于 OpenCV 世界系下的脚-地距离校验与 retarget 锚定;USD 用于 G1 世界下的仿真碰撞。两者坐标系不同,切勿混用。
📌 由于 Tier 1 与 Tier 2 的物理锚点逐字节相同,在噪声层级间做消融对比时,你可以确信差异只来自轨迹本身。
五、总结
| 文件 | 坐标系 | 用途 | 常见坑 |
|---|---|---|---|
ground_plane/*.json | 源 OpenCV 世界系 | 拟合地面平面,retarget 锚定、脚-地校验 | 误当成水平面z=0或y=0 |
support_surface/*.usda | G1 重定向世界(米、Z-up) | 静态碰撞,防穿模 grounding/训练 | 空 stage 也要按约定路径放置 |
把这两类文件用对,你的重定向参考就能"踩实地面、站得住桌子"——这正是 V2D Challenge Track 2 评分(AUC、SP-SR、MP-SR、MPPE)背后物理合理性的关键来源。更多数据细节可参考 track_2/README.md 与各 tier 的 meta/info.json。
【免费下载链接】video_to_data_challenge
相关推荐
MCreator 生物群系地面方块(Ground Block)参数详解:选材规则、生成原理与性能优化
MCreator 生物群系地面方块(Ground Block)参数详解:选材规则、生成原理与性能优化 在 MCreator 的 Biome(生物群系)元素中,"
低代码代码生成桌面应用游戏开发trajectory.npz与metadata.json深度解读:120帧物理真值如何支撑视频模型的物理推理
trajectory.npz与metadata.json深度解读:120帧物理真值如何支撑视频模型的物理推理 object permanence 是 WROP(
数据集人工智能Amlogic S905L3B 机顶盒刷入 Armbian 并安装到 eMMC:从 U 盘验证到独立运行的完整避坑指南
Amlogic S905L3B 机顶盒刷入 Armbian 并安装到 eMMC:从 U 盘验证到独立运行的完整避坑指南 手头有一台 Amlogic S905L3
嵌入式固件开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考