Physics 评测指标¶
Physics 评测首先判断任务是否完成,再用人体跟踪、关节误差和接触指标解释成功或失败。训练 reward 不能 直接当作论文结果。
代码分层、统一配置、旋转/平移接口和旧 evaluator 迁移边界见 Physics Metric 统一架构。
每个 scheduled case×seed 只有一个 rollout¶
每个预先列入清单的 case×seed 使用一个逻辑环境并执行一次评测。num_envs 只表示能够同时运行多少个不同
case×seed,不增加重复数,也不采用多次运行中的最好结果。每个 case 的 seed 集合必须在 manifest 中预先写明。
Crash、NaN、超时、缺少输出和提前终止都计为失败。连续误差只在真实运行过的帧上计算,同时报告有效 时长和有效帧比例。
独立 Progress 指标¶
先根据 GT/reference 轨迹把任务分成 Open、Close、抽屉拉出或推回等 movement phases。 对第 \(k\) 个 phase,令 \(q_{0,k}=q^{ref}_{a_k}\) 为该 phase 的 GT 起点, \(q_{g,k}=q^{ref}_{b_k}\) 为该 phase 的 GT 终点。以 phase final 为中心取一个可配置的奇数窗口 \(\mathcal W_k\)(默认总宽度 5 帧),先计算未截断进度:
这里取的是 final 附近局部窗口内的方向性最大进度,不是整个 phase 的 max-over-time。
对于 Close phase,分母 \(q_{g,k}-q_{0,k}<0\),因此取到的仍是沿正确关闭方向进展最多的帧,
而不是直接取数值最大的角度。窗口不能读取 valid_frame_count 之后的 padding。
一条 rollout 的 Progress 按 reference movement phase 的帧数加权:
因此每个 phase 都从自己的 GT q0 重新计算,Open 和 Close 不会互相抵消。Hold 不参与。
Revolute 先 unwrap,prismatic 直接使用线位移;每段 progress 和最终 \(P_e\)
都是无量纲值。
Progress 是独立连续 metric,不参与 Success A 或 Success B。 Success A/B 继续只消费各自
配置声明的 completion、Human tracking、object-motion tracking 与可选 contact 条件。调整
final_window_frames 或 progress 聚合方式,不应改变 Success A/B。
其他正文指标¶
| 指标 | 说明 |
|---|---|
| H-MPJPE | 仿真人体与参考人体的关节位置误差 |
| Rev. Error | 转动关节的终点或轨迹误差 |
| Pri. Error | 移动关节的终点或轨迹误差 |
| Contact Sustain | 指定身体部位与指定物体部件保持接触的时间比例 |
物体根节点漂移、非活动关节漂移、跌倒、穿透、悬浮、失败阶段、运行时间和 GPU 时间放在附录。穿透和 接触只有在碰撞几何、单位和 collider pair 都经过检查后才能作为正式指标。
接触条件¶
接触判断必须知道“哪个身体部位接触了哪个物体部件”。只有手部总力或物体总力不足以证明正确接触。 在成对 collider 记录完成前,Contact-qualified success 和 Contact Sustain 只能作为开发指标; Full-horizon success 始终是独立 wrapper,不因 contact telemetry 状态而偷偷改定义。
汇总方式¶
- 每个视频样本是一个统计样本,视频帧不是独立样本。
- 失败样本保留在成功率分母中。
- 连续误差同时报告可用样本数和有效帧比例。
- 同一 CAD 的多个样本在置信区间计算时作为一组处理。
- Revolute [rad] 和 prismatic [m] 指标分开汇总。
所有方法共同遵守的规则见 共同评测规则。指标选择的文献依据和其他备选方案保留在 Physics 指标调研记录,日常实验不需要先阅读该长文档。