D3D-HOI V41R 到 HOI Align 的交接¶
日期:2026-06-27
本文档只面向接手 HOI align / interaction refinement 的同学。继续优化 object recon / articulation 的事项见:
docs/d3dhoi_v41r_recon_optimization_handoff_zh.md
完整 recon 实验状态以 docs/d3dhoi_recon_tuning_state.md 为准。
当前输入¶
建议 HOI align 先使用 V41R 作为 object trajectory reference。
- V41R run root:
output/runs/d3dhoi_recon_tuning/v041r_select_seed_track2_part75_smooth9000_full20 - V41R config:
configs/methods/recon/d3dhoi_tuning/v041r_select_seed_track2_part75_smooth9000.yaml - V41R metrics:
output/runs/d3dhoi_recon_tuning/v041r_select_seed_track2_part75_smooth9000_full20/eval/d3dhoi_result_pt/summary.json - V41R 两列 overlay 视频:
output/runs/d3dhoi_recon_tuning/v041r_select_seed_track2_part75_smooth9000_full20/eval/overlay_videos_2col_rgb_h264 - V27D baseline:
output/runs/d3dhoi_recon_tuning/v027d_normloss_hfacing_init_v25b_artic_20case
V41R 相比 V27D 的 20-case 指标:
| Method | Motion | False-close | False-open | Pred range | Jerk p90 |
|---|---|---|---|---|---|
| V27D | 12.814 | 0.172 | 0.166 | 57.717 | 0.455 |
| V41R | 9.777 | 0.128 | 0.047 | 63.039 | 0.446 |
V41R 是当前推荐给下游的平衡点:motion/false-open 明显优于 V27D,jerk 没有变差。
V41R 对 HOI Align 意味着什么¶
V41R 不是 ground truth object trajectory。它更适合作为一个有系统误差但比 V27D 好很多的 reference。
- 刚体 6D pose 和 xyz scale 仍沿用 V27D,固定不动。
- q trajectory 是 tuned articulation 结果。
- 两个 microwave case
b004-0013_cad7221、b004-0017_cad7221使用了 V38AD q-grid seed;不要把 V41R 理解成纯 qzero。 - articulation stage 不使用 full-object mask loss;主要来自 active-p2 track3d、active-p2 part mask 和 temporal smooth。
- V41R 没有在 part-mask loss 中扣 human mask;track3d 本身有可见性过滤。
第一轮 HOI Align Gate¶
建议先跑 10-11 个 case,不要直接 full20 大改。
- success-ish sanity:
b005-0024、b005-0026、b005-0045、b005-0113 - microwave hard:
b004-0013、b004-0017、b004-0032 - b007 hard / asset mismatch:
b007-0017、b007-0027 - overshoot/rebound:
b008-0026、b008-0028
第一轮目标不是再证明 recon 指标,而是判断:HOI align 能否在 V41R 这种 imperfect object trajectory 上稳定改善 hand-object interaction。
建议第一版冻结 Object¶
第一版建议把 V41R 的 object rigid pose、scale、q 都当作 fixed reference,先只看 HOI align 是否能改善 human/contact。
不要一上来同时放开 object rigid pose、scale 和 q。否则失败时无法判断是:
- hand/contact 优化本身失败;
- V41R object trajectory 阻塞;
- 放开的 object residual 又走到错误 basin;
- CAD asset / active-link geometry 本身不匹配。
第一轮应输出:
- HOI mp4 qualitative;
- hand-object distance / contact timing;
- penetration;
- contact 是否落在合理区域,如 handle、door edge、drawer front;
- 哪些 case 因 object q under-open 导致手必须穿门或抓空;
- 哪些 case 因 object depth/scale 错导致手-object 距离整体偏移。
HOI Align 需要重点关注的 Failure Mode¶
A. Object under-open 导致接触时机错¶
典型 case:
b004-0013_cad7221:V41R motion14.665,false-close0.273,range64.6。b004-0017_cad7221:V41R motion11.512,false-close0.214,range57.1。b008-0028_cad45524:false-open 被压住,但 range 只有29.3,可能偏保守。
如果这些 case 的 hand 必须跟随真实门打开,但 object reference 偏 under-open,HOI align 可能会出现手穿门、抓空或 contact timing 延迟。
B. Active-link geometry / visible surface mismatch¶
典型 case:
b004-0032_cad7221:V41R motion 数字不错,但 open-frame active-link visual/depth mismatch 明显。
已有诊断显示 b004-0032 的 full-object silhouette 可以不错,但 active-part IoU 在 open frames 仍会掉到很低。HOI align 若失败,可能不是 q 不够,而是 CAD active link 的局部几何或 hinge/visible surface 与真实观测不一致。
相关可视化:
output/runs/d3dhoi_recon_tuning/mask_render_comparisons/b004-0032_v38ad_full_part_close_open/v38ad_full_part_mask_close_open_crop_sheet.png
C. b007 asset / active-part mismatch¶
典型 case:
b007-0017_cad103776:V41R motion27.378,false-close0.133。b007-0027_cad100282:V41R motion26.301,false-close0.333,false-open0.105,有 asset mismatch 嫌疑。
这些 case 不适合作为 HOI align 的第一优先调参目标。它们更适合用来判断下游对坏 object reference 的鲁棒性。
D. Rigid pose / scale / depth mismatch¶
典型 case:
b004-0032_cad7221b004-0033_cad7221
V43 诊断显示,单帧 object-init depth residual 可以从约 17cm 降到 10cm 或 8cm,但继续压到 3-5cm 会牺牲 silhouette/yaw/scale。因此 HOI align 里如果看见整体手-object 深度偏移,不要默认通过增大 object-init depth weight 就能解决。
如果冻结 Object 失败,下一步怎么诊断¶
只在明确失败后做 object residual diagnostic,且每次只放开一个小自由度集合。
优先顺序:
- sequence-level shared
R/t/scaleresidual:整个 sequence 一个共享残差,不做 per-frame object pose。 - q residual:小范围、低频 q residual,保留 V41R 主要开合趋势。
- contact-aware q residual:只在 contact window 附近允许小幅修正。
这些诊断的目的不是马上替换 V41R recon,而是定位 HOI align 失败是否来自 object reference。
不建议 HOI Align 同学做的事¶
- 不要重新跑 full preprocess。
- 不要把 V44
apply_to_mask_loss=true当成新默认;它是 recon 侧失败 gate,不是 HOI align 输入。 - 不要为了
b007-0027单个疑似 asset mismatch case 调全局 HOI align 策略。 - 不要在第一版同时放开 object rigid pose、scale、q 和 human/contact;这样不可诊断。
- 不要把 V41R 当作无误差 GT,只看 contact loss 是否下降;必须结合可视化检查 contact 是否合理。
推荐交付物¶
每个 gate 至少保存:
- HOI overlay mp4;
- contact/penetration summary;
- 每个 case 的短诊断:hand/contact 可修,还是 object reference 阻塞;
- 对失败 case 标出主因:under-open、depth/scale mismatch、active-link geometry mismatch、asset mismatch、human pose/contact detection 问题。
如果第一轮 gate 显示 V41R 已足够支撑 HOI align,就继续扩到 full20。若多个 case 都被同一类 object mismatch 阻塞,再回到 recon 优化文档里的方向处理。