P-MaskedMimic-2024 · 统一物理角色控制(motion inpainting)
一句话定位:把物理角色控制统一成「masked motion inpainting」——一个 transformer + CVAE 单一 controller 直接吃"任意被部分遮挡的目标(关键帧 / 文本 / 物体 / 高度图)",无需为每个任务训专门的 policy,无需手写 reward;用"goal-engineering"取代 reward engineering。
完整引用:Chen Tessler, Yunrong Guo, Ofir Nabati, Gal Chechik, Xue Bin Peng. MaskedMimic: Unified Physics-Based Character Control Through Masked Motion Inpainting. ACM Transactions on Graphics 43(6), Article 209, December 2024 (SIGGRAPH Asia 2024). arXiv:2409.14393.
机构:NVIDIA (Israel / Canada) + Bar-Ilan University + Simon Fraser University
项目页:research.nvidia.com/labs/par/maskedmimic/
在线索中的位置:见 T08-action-gen-physics.md(物理角色控制统一化)+ T04-motion-prior-amp-to-bfm.md(motion prior → 统一 controller 路线,与 PHC/PULSE/BeyondMimic 同列)。
动机:每个任务一个 policy 不可持续
物理角色控制的历史一直是「一个任务一个 controller」:Wang et al. 2020 / DeepMimic 训练一个 tracker、PACER 专攻不规则地形、InterPhys 专攻人-物交互、Winkler et al. 2022 专攻 VR tracking。每一个新任务都需要:(a) 挑选对应 MoCap 子集;(b) 手写 reward;(c) 训练并调参。这套流程对游戏、数字人、VR 这种需要数千种行为组合的场景根本走不通。
latent generative controller(ASE [Peng et al. 2022, arXiv:2205.01906]、CALM [Tessler et al. 2023, arXiv:2305.02195]、PULSE [Luo et al. 2024])试图通过"先学技能库、再学高层调度"解决,但 latent 太抽象、用户没法直观指挥,每个新任务还得训一个高层 policy。
MaskedMimic 的洞察是:所有这些任务都可以看作同一个问题的实例——给定一个"部分被遮挡的 motion 描述"(如 VR 只有头和手、text-to-motion 只有文字、object interaction 只有物体位姿),生成满足约束的完整物理 motion。这就是「motion inpainting」。如果训练时就把所有目标随机 mask 一下让 controller 学会"补全",部署时不需要任何额外训练就能接受任意组合的约束。论文标题里的 "Unified" 即此意。
方法核心
1. 两阶段框架:先训 FC tracker,再蒸馏出 PC controller
Stage 1 · Fully-Constrained Controller $\pi^{\text{FC}}$(Sec.5):用 RL(PPO)训一个「吃全部目标、输出动作」的标准 motion tracker。这个 tracker 只见完整目标 $g_t^{\text{full}}$(未来 $K$ 帧的全关节位置+旋转),输出 PD 控制目标。它的作用是为 Stage 2 提供 teacher 标签,而不是直接部署。架构是 transformer-encoder(每个 modality 一个 token encoder),critic 是 FC 网络。
Stage 2 · Partially-Constrained Controller $\pi^{\text{PC}}$ = MaskedMimic(Sec.6):用 DAgger-style 在线蒸馏 把 $\pi^{\text{FC}}$ 蒸馏成"只见部分目标"的 $\pi^{\text{PC}}$。形式上是 conditional VAE:
| 组件 | 输入 | 输出 |
|---|---|---|
| Encoder $E$(仅训练用) | $s_t$ + $g_t^{\text{full}}$ + mask | $E(z_t \mid s_t, g_t^{\text{full}})$ |
| Prior $\rho$(推理用) | $s_t$ + $g_t^{\text{partial}}$ | $\rho(z_t \mid s_t, g_t^{\text{partial}})$ |
| Decoder $D$ | $s_t$ + sampled $z_t$ | deterministic action $a_t$ |
Encoder 被建模为 prior 的残差(Eq.7):$E(\cdot) = \mathcal{N}(\mu_\rho(\cdot) + \mu_E(\cdot),\,\sigma_E)$,保证训练时 encoder 不离 prior 太远,推理时丢掉 encoder 也能用。
训练目标(Eq.8):最大化 $\pi^{\text{FC}}$ 输出动作的 log-likelihood(用 $D(a_t \mid s_t, z_t)$ 近似)+ KL 项让 $E$ 对齐 $\rho$。
2. Masking 是核心:structured + temporal-consistent
每条训练样本的目标 $g_t^{\text{full}}$ 被随机 mask 函数 $M$ 处理:$g_t^{\text{partial}} = M(g_t^{\text{full}})$。Mask 的对象包括:
- Keyframe 目标:把某些 joint 的位置/旋转置零,并附 mask flag;时间 $\tau$(到目标帧的时差)保留;
- 文本指令:整段 XCLIP embedding 被 mask;
- 场景信息:heightmap / object bbox 被 mask;
- 任意组合:可以同时只露 head + text + object。
⚠️ 关键细节:mask 不是逐步随机重采——否则不同帧露的 joint 不同,跨帧信息泄漏让任务变得太容易,泛化差。论文用「temporally structured masking」:一个 mask 模式被重复采样到连续多帧上,确保某些 joint 在整段窗口内持续隐藏。
3. 三种 modality 的 token 表示
| Modality | 表示 |
|---|---|
| Keyframe $\hat q_{t+\tau}$ | 每关节 4 个分量(相对当前关节与相对 root 的旋转差 + 位置差,Eq.4)+ 时间 $\tau$;mask 后置零 |
| Object $o_t$ | bbox 8 角点(角色局部坐标系)+ object type index(chair/sofa/stool/...) |
| Text $w_t$ | XCLIP embedding(用视频-语言对训练,比纯文本 CLIP 更能捕捉时序) |
| Terrain $h_t$ | heightmap(沿角色 facing direction) |
| History $q_{t-\tau}$ | 过去 40 步里子采样 5 帧(关键于 text-conditioned 长 motion) |
Prior 是 transformer-encoder,每个 modality 一组 token;mask 的 token 通过 attention mask 直接排除(而非填 0)。Encoder/Decoder 都是 FC 网络,因为它们的输入维度固定。
4. RL 阶段($\pi^{\text{FC}}$)的 reward(Eq.5)
$$r_t = w_{gp}r^{gp}_t + w_{gr}r^{gr}_t + w_{rh}r^{rh}_t + w_{jv}r^{jv}_t + w_{jav}r^{jav}_t + w_{eg}r^{eg}_t$$
六项:全局关节位置、全局关节旋转、root 高度、关节线速度、关节角速度、能量惩罚(鼓励流畅不抖动)。每项典型为指数形式(具体见 supplementary)。
5. 训练 playground(Sec.5.4 + Fig.4)
单一训练场景分三区域:
- Flat terrain:模仿原始 MoCap 最忠实;
- Irregular terrain:stairs / slopes / 粗糙地面(gravel-like);
- Object playground:椅子/桌子/沙发,只在 imitate 物体交互 motion 时初始化。
Early termination:flat 上 joint 偏差 > 0.25m 终止;irregular 上 > 0.5m 终止(给 adaptation 留余地)。还做 prioritized motion sampling——按失败率加权采样难动作,但只在 flat 上的失败才算(不在 stair 上要求 flip)。
6. 关键训练 trick(Sec.6.3)
- Deterministic action sampling during distillation:FC 和 PC 都采样 mean action,减小数据收集随机性;
- KL-scheduling(β-VAE 风格):KL 系数从 $0.0001$ 线性升到 $0.01$——前期让 encoder-decoder 紧贴 FC,后期逼 latent 空间结构化便于 prior 推理;
- Episodic latent noise:每条 episode 采一个 $\epsilon\sim\mathcal{N}(0,I)$ 在整段 episode 内固定($z_t^\tau = \epsilon^\tau\sigma_t^\tau + \mu_t^\tau$),保证时序一致性;
- Observation history:5 帧子采样(从过去 40 步),对 text-conditioned 长 motion 至关重要;
- Action 分布:高斯,固定对角协方差 $\sigma_\pi = \exp(-2.9)$(与 CALM 同设置);
- PC 也用 early termination:防止 PC 进入 FC 没见过的 state。
7. 训练规模(Sec.7)
- Isaac Gym,16,384 个并行环境,跨 4 张 A100 GPU;
- ~2 周训练;$\pi^{\text{FC}}$ 约 300 亿步、$\pi^{\text{PC}}$ 约 100 亿步;
- 控制器 30 Hz,仿真 120 Hz。
8. Goal-engineering:用 FSM 把任务"拼"出来(Sec.8.2)
部署时不需要重训,而是为每个任务搭一个有限状态机(FSM),根据当前 state 选择给 MaskedMimic 喂哪一种 partial goal。例如"sit on chair":先在 FSM 状态 1 用 any-joint-any-time(接近物体),距离 < 阈值后切到状态 2 用 object bbox(坐下)。论文明确类比为 LLM 的 prompt-engineering("a process akin to prompt-engineering for language models")。
关键实验
数据集(Sec.7.1):AMASS(keyframe,按 PHC 流程过滤)+ HumanML3D(文本切片)+ SAMP(坐椅子等场景交互)。镜面翻转作 data augmentation。
(A) Full-body tracking(Table 1,flat terrain):
| 模型 | Train 成功率 | Train MPJPE (mm) | Test 成功率 | Test MPJPE |
|---|---|---|---|---|
| $\pi^{\text{FC}}$ (ours) | 99.96% | 30.4 | 99.9% | 31.3 |
| PHC+ | 100% | 26.6 | 99.2% | 36.1 |
| MaskedMimic (ours) | 99.4% | 32.9 | 99.2% | 35.1 |
| PULSE | 99.8% | 39.2 | 97.1% | 54.1 |
⚠️ 注意 PHC+ 的 train MPJPE 更低(26.6),但 test MPJPE 反而更高(36.1 vs FC 的 31.3)——说明 PHC+ 的 mixture-of-experts 过拟合训练 motion,而 MaskedMimic 的单一 monolithic network 泛化更好。论文原文:"a single monolithic network offers better generalization capabilities."
(B) VR tracking(Table 2,flat terrain)——MaskedMimic 没专门训过这个任务:
| 模型 | Train 成功率 | Test 成功率 | Test MPJPE |
|---|---|---|---|
| MaskedMimic | 98.6% | 98.1% | 58.1 |
| PULSE | 99.5% | 93.4% | 88.6 |
| ASE | 79.8% | 37.6% | 120.5 |
| CALM | 16.6% | 10.1% | 122.4 |
CALM 在 VR 任务上几乎崩盘(10% 成功),因为它需要专门训高层 policy,从未训过的任务直接零能力。MaskedMimic 没专门训过 VR tracking,test 成功率却优于专门训过的 PULSE(98.1% vs 93.4%,MPJPE 58.1 vs 88.6mm)。
(C) Joint sparsity(Table 3,test 成功率,按难度从易到难):Pelvis (98.4%) > VR (98.1%) > Head (97.9%) > Hands (93.4%) > Feet (91.8%)。脚比手难追,pelvis 反而最容易。
(D) Irregular terrain(Table 4)——训练时 flat only 的 motion,部署到 stairs/slopes/gravel,成功率几乎不掉(flat 98% vs terrain 95.4% MPJPE 62.9mm)。这是 MaskedMimic 区别于所有前作的关键能力。
(E) Goal-engineering 任务套件(Table 5)——所有任务共享同一个模型,仅靠 FSM 切换 goal:
| 任务 | Flat 成功率 | Flat 误差 | Terrain 成功率 | Terrain 误差 |
|---|---|---|---|---|
| Locomotion (path-follow) | 96.3% | 11.2 cm | 96.3% | 12.5 cm |
| Steering (joystick) | 97.8% | 8.4 cm/s | 93.8% | 8.4 cm/s |
| Reach (单手) | 88.7% | 20.3 cm | 87.3% | 21.7 cm |
为什么重要
- 第一个真正的"unified"物理角色 controller。ASE/CALM/PULSE 走 latent skill 路线,每个下游任务还要训高层;MaskedMimic 是单模型 zero-shot 支持所有任务,部署成本数量级降低。论文 Sec.1 明确:"a single unified model…without requiring tedious reward engineering for all behaviors of interest."
- 把"reward engineering"换成"goal engineering"。后者类比 prompt engineering——意味着物理角色控制从"为每个行为手写目标函数"转移到"为每个任务组合约束"。这是物理动画领域接口范式的转变,对应 LLM 领域从 fine-tune 到 in-context learning 的转变。
- 单一 network 战胜 mixture-of-experts。PHC 用 MoE + gating network 才能在 AMASS 上跑通 universal tracking;MaskedMimic 的 FC tracker 用单一 transformer 在 test motion 上把失败率降 62.5%(论文 Sec.8.1 原文:"Our fully-constrained tracker FC outperforms PHC+...reducing the tracking failure rate on unseen motions by 62.5%")。这给后续 humanoid control(OmniH2O、HOVER、BeyondMimic)吃下定心丸:scaling 单模型就够了,不必走 MoE。
- 为 humanoid teleop / VR avatar 铺路。VR tracking 98.1% test 成功率、加 pelvis sensor 还能进一步提升——这成了后续 [OmniH2O, arXiv:2406.08858] 等 humanoid teleop stack 的技术底座之一(见 T07-humanoid-teleop-stack.md)。
- AMASS + HumanML3D + SAMP 联合训练范式:把 locomotion、text、object 三类数据塞进同一 controller 的配方,被 BeyondMimic、HOMIE 等后续工作直接继承。
局限
- 依赖大规模 MoCap:本质上还是 reference-motion-tracking,没有 MoCap 的 skill(比如机器人特有的精细 manipulation)学不到。
- C-VAE 的固有 mode collapse 风险:尽管 episodic latent noise 缓解了时序不一致,但 text-conditioned 长 motion 还是容易"漂"——论文自承需要 observation history 才能稳。
- 训练成本惊人:4 × A100 × 2 周 × 16k envs,~30B + 10B steps。只有大厂能复现。
- object interaction 局限于"sit on" 类(chair/sofa/stool)——更复杂的 manip(拎起、搬动、开门)没验证。本质上还是 loco + 简单交互。
- 没用 residual force / residual control(论文 Sec.5.1 明确舍弃)。这让模型在某些极端 motion(如 heavy contact)上鲁棒性不足。
- 文本依赖 XCLIP——只接 text token,不能用自由长指令;SuperPADL 走得更远但任务范围窄。
- 没有部署到真实机器人——MaskedMimic 是纯仿真角色,与 humanoid robot 的 sim2real 链条还需后续工作(HOVER、BeyondMimic)补。
复现要点
以下要点基于论文 Sec.5–7 + Fig.3-5 + Table 1-6,可直接作为复现起点。
- 两阶段不可省:直接从零训 PC 会失败(没有 teacher 信号),必须先训 $\pi^{\text{FC}}$。
- $\pi^{\text{FC}}$:transformer encoder,输入 token = (current pose, K future target poses, heightmap, object bbox);K 默认按 PHC 设置;reward 用 Eq.5 的六项加权(具体权重见 supplementary);action 高斯 $\sigma_\pi = \exp(-2.9)$;Isaac Gym 16,384 envs、4×A100、2 周。
- $\pi^{\text{PC}}$:
- C-VAE = prior (transformer) + encoder (FC, residual to prior) + decoder (FC);
- 输入 token 化:每 modality 独立 encoder + attention mask 排除被 mask 的 token;
- structured masking:mask 模式跨多帧重复,不是逐步独立采样——这是泛化关键;
- KL-scheduling:$0.0001 \to 0.01$ 线性升;
- episodic latent noise:每 episode 一个固定 $\epsilon$;
- observation history:过去 40 步里子采样 5 帧,对 text 任务必备;
- deterministic action sampling:FC 和 PC 都采样 mean;
- PC 也加 early termination。
- 数据:AMASS(按 PHC 过滤掉 floating/penetration)+ HumanML3D(text 切片)+ SAMP(坐椅子);镜面翻转 augmentation。
- 训练 playground:单场景分 flat / irregular / object playground 三区,按 motion 类型初始化到对应区。
- Early termination:flat 上 0.25m / irregular 上 0.5m;prioritized sampling 仅按 flat 失败加权。
- 推理:丢掉 encoder,只从 prior 采 latent(论文用 prior 的 mean,效果最稳;sample 会增多样性但降成功率)。
- 任务部署:每个新任务搭 FSM 切换 goal,不重训。
- 联合 conditioning 子集:训练时只在 6 个关键 joint 上做 any-joint-any-time masking(Left/Right Ankle、Pelvis、Head、Left/Right Hand)——不是全部 joint 都参与,这是工程上的妥协。
- 常见坑:(1) 逐步随机 mask → 泛化垮,必须 temporally structured;(2) KL 系数起步太大 → encoder-decoder 无法紧贴 $\pi^{\text{FC}}$;(3) 没 observation history → text 任务漂移;(4) 试图用单一 reward 跨所有地形 → 失败率拉高,论文用三区 playground 隔离。
延伸
- 建立在:PHC [Luo et al. 2023, arXiv:2305.06456](universal tracking + AMASS 过滤流程,本仓库 P-PHCUHC-2023.md)、ASE [Peng et al. 2022, arXiv:2205.01906](latent skill,本仓库 P-ASE-2022.md)、CALM [Tessler et al. 2023, arXiv:2305.02195](条件化 latent,本仓库 P-CALM-2023.md)、PULSE [Luo et al. 2024, arXiv:2310.04582](universal motion representation,本仓库 P-PHCUHC-2023.md)、DAgger [Ross et al. 2011, arXiv:1011.0686](online distillation,本仓库
P-DAgger无,见notes/)。 - 引出:OmniH2O [2024, arXiv:2406.08858](humanoid teleop,吸收 VR tracking + scene-aware 思路,本仓库 P-OmniH2O-2024.md)、BeyondMimic [Liao et al. 2025, arXiv:2508.08241](guided diffusion 把 MaskedMimic 的 inpainting 思想搬到 humanoid + 生成模型,本仓库 P-BeyondMimic-2025.md)、HOVER [2024, arXiv:2410.21229](humanoid 统一控制,受 MaskedMimic "unified controller" 启发,本仓库 P-HOVER-2024.md)。
- 对比:PADL/SuperPADL [Juravsky et al. 2022/2024](text-conditioned 物理控制,任务范围窄)、PACER++ [Wang et al. 2024a](kinematic diffusion + 物理,两阶段而非 unified)、InterPhys/UniHSI [Hassan et al. 2023; Xiao et al. 2024](专攻 HOI)。
- 本仓库笔记:T08-action-gen-physics.md(物理角色控制统一化代表)、T04-motion-prior-amp-to-bfm.md(与 PHC/PULSE 同列转折)、T07-humanoid-teleop-stack.md(VR tracking 数据底座)。