跳转至

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_cad7221b004-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-0024b005-0026b005-0045b005-0113
  • microwave hard:b004-0013b004-0017b004-0032
  • b007 hard / asset mismatch:b007-0017b007-0027
  • overshoot/rebound:b008-0026b008-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 motion 14.665,false-close 0.273,range 64.6
  • b004-0017_cad7221:V41R motion 11.512,false-close 0.214,range 57.1
  • b008-0028_cad45524:false-open 被压住,但 range 只有 29.3,可能偏保守。

如果这些 case 的 hand 必须跟随真实门打开,但 object reference 偏 under-open,HOI align 可能会出现手穿门、抓空或 contact timing 延迟。

典型 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 motion 27.378,false-close 0.133
  • b007-0027_cad100282:V41R motion 26.301,false-close 0.333,false-open 0.105,有 asset mismatch 嫌疑。

这些 case 不适合作为 HOI align 的第一优先调参目标。它们更适合用来判断下游对坏 object reference 的鲁棒性。

D. Rigid pose / scale / depth mismatch

典型 case:

  • b004-0032_cad7221
  • b004-0033_cad7221

V43 诊断显示,单帧 object-init depth residual 可以从约 17cm 降到 10cm8cm,但继续压到 3-5cm 会牺牲 silhouette/yaw/scale。因此 HOI align 里如果看见整体手-object 深度偏移,不要默认通过增大 object-init depth weight 就能解决。

如果冻结 Object 失败,下一步怎么诊断

只在明确失败后做 object residual diagnostic,且每次只放开一个小自由度集合。

优先顺序:

  1. sequence-level shared R/t/scale residual:整个 sequence 一个共享残差,不做 per-frame object pose。
  2. q residual:小范围、低频 q residual,保留 V41R 主要开合趋势。
  3. 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 优化文档里的方向处理。