MotionGRPO: Overcoming Low Intra-Group Diversity in GRPO-Based Egocentric Motion Recovery¶
会议: ICML 2026
arXiv: 2605.05680
代码: https://github.com/3DAgentWorld/MotionGRPO/ (有)
领域: 人体理解 / 第一人称 3D 动作恢复 / 扩散模型 + 强化学习
关键词: 全身动作恢复、HMD、GRPO、扩散模型、Perlin 噪声注入
一句话总结¶
MotionGRPO 把 head-mounted 设备的第一人称全身动作恢复转化为扩散采样上的 MDP,用 GRPO 配合"轨迹条件感知模型 + 4 个 joint-level 子奖励"的混合奖励做后训练;同时识别出"输入条件太强、组内样本几乎一样导致 advantage 方差消失"这一致命瓶颈,并用 Perlin 噪声注入条件来恢复组内多样性,在 AMASS/RICH 上把 MPJPE 从 EgoAllo 的 124.985 mm 降到 114.207 mm。
研究背景与动机¶
领域现状:第一人称(HMD)全身动作恢复主流是基于 head SLAM 信号的扩散模型(EgoEgo、EgoAllo 等),用条件扩散去模拟"可能的人体动作分布",再从纯高斯噪声反向采样。
现有痛点:(1)扩散目标本质是分布匹配,缺乏对单个关节位置的强约束,预测出来经常关节位置偏移、脚滑、地面穿透、抖动;(2)这些视觉/几何瑕疵又无法在扩散框架内简单加 loss——早期 timestep 还都是噪声,硬加 joint loss 会震荡;(3)已有 RL 方案(PPO 在物理模拟器里训练)不稳定且算力惊人。
核心矛盾:要么走分布匹配(精度差),要么走 RL(不稳定/贵)。GRPO 看似是省 value-net 的优雅 RL,但作者发现"动作恢复任务条件太强 → 组内输出几乎相同 → advantage std≈0 → 梯度消失",让 vanilla GRPO 直接失效。
本文目标:(1)把 GRPO 引入扩散动作恢复并设计有意义的混合奖励;(2)破解"低组内多样性 → 梯度消失"这一新瓶颈。
切入角度:作者把扩散采样视为多步 MDP,状态是 \((c,t,x_t)\)、动作是 \(x_{t-1}\),sparse reward 只在 \(t=0\) 给;并提出"强 condition 是输出 diversity 的根因,所以要在 condition 上注入噪声"这一逆向思路。
核心 idea:用 SDE-based 扩散采样 + 共享初始噪声拉出一组样本,奖励层面用感知模型 + 4 个 joint metric,再用时空平滑的 Perlin 噪声扰动头部条件来恢复 GRPO 所需的组内方差。
方法详解¶
整体框架¶
MotionGRPO 解决的是 HMD 第一人称全身动作恢复,做法是把整个扩散采样过程看成一个多步 MDP,然后在预训练好的 EgoAllo 上做强化学习后训练。输入是 HMD 的 CPF 头部轨迹 \(\mathbf{H}_{cpf}^{1:T}=\{R^{1:T},\tau^{1:T}\}\),经 EgoAllo 的 invariant function \(g(\cdot)\) 转成 condition \(\mathbf{c}\),扩散主干用 transformer 输出 SMPL-H 表示 \(\mathbf{M}=\{\Theta,\beta\}\)。后训练阶段,模型先对每个 condition 用 SDE 反向采样配合共享初始噪声拉出一组样本,再用"学习的视觉感知模型 + 4 个 joint 级几何度量"给每个样本打分,按 GRPO 的组内相对归一化算 advantage 并用 PPO-style importance ratio 更新策略;与此并行,它在头部条件上注入 Perlin 噪声来把组内方差重新撑起来,避免 GRPO 失效。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["HMD 头部轨迹"] --> B["Perlin 噪声注入<br/>扰动头部平移、恢复组内多样性"]
B --> C["不变函数 g(·) 编码为条件 c"]
C --> D["SDE 采样(共享初始噪声)<br/>拉出 G 个 SMPL-H 样本"]
D --> E["混合奖励<br/>视觉感知模型打分 + 4 个关节子奖励"]
F["在线硬负例对比训练<br/>负例取自末 3 个采样步"] -.->|更新感知模型| E
E --> G["GRPO 组内相对 advantage<br/>各子奖励独立归一化后求和"]
G -->|PPO 比值更新| H["策略网络(扩散主干)"]
H -.->|后训练循环| D
关键设计¶
1. 混合奖励:学习的视觉感知模型 + 4 个 joint 子奖励,同时管"自然"和"准"
扩散目标本质是分布匹配,对单个关节没有强约束,预测结果常出现脚滑、穿模、抖动这类几何瑕疵,而这些伪影又无法在扩散框架里简单加 loss。MotionGRPO 借 GRPO 能优化不可微目标的特性,把奖励拆成两路。视觉级用一个 trajectory-conditioned 感知模型 \(\phi\)(spatial-attention + temporal-attention transformer),输入 SMPL-H skeleton + head trajectory,输出 plausibility 分数,对应奖励 \(\mathcal{R}_{vis}=\exp(\omega_{vis}\cdot s)\),专门抓"看上去就别扭"的 foot skating / jitter / 穿模。joint 级则直接对齐 GT,含四项:\(\mathcal{R}_{rot}\)(局部旋转 L1)、\(\mathcal{R}_{pos}\)(全局位置 L2)、\(\mathcal{R}'_{pos}\)(per-frame Procrustes 对齐后位置 L2)、\(\mathcal{R}_{vel}\)(速度差 L2),均用 \(\exp(-\omega\cdot\text{err})\) 压到 \((0,1]\)。
关键在归一化方式:每个子奖励独立做组内相对归一化得到各自的子 advantage,再相加 \(\hat A_i=\sum_k \hat A_{i,k}\),总奖励 \(\mathcal{R}_{total}=\mathcal{R}_{vis}+\mathcal{R}_{joint}\)(其中 \(\mathcal{R}_{joint}=\mathcal{R}_{rot}+\mathcal{R}_{pos}+\mathcal{R}'_{pos}+\mathcal{R}_{vel}\))。这样视觉自然性和关节精度被同一套 GRPO 优化器一起塞进策略,消融也证明只留单路都不如双路。
2. 在线硬负例对比训练,让感知模型不被策略攻击
如果感知打分模型静态训完就冻住,策略很快会找到它的漏洞做 reward hacking,让分数虚高。MotionGRPO 让感知模型随策略一起演化:正样本是 (GT motion, head),硬负样本不是手工加噪声,而是从当前 policy 最后 3 个 sampling timestep 实时采出来——这些样本结构上很接近 GT,却带着策略当下的 typical 瑕疵,因此恰好是"难分但该判低分"的样本。训练用 InfoNCE,温度 \(\delta=0.07\):
负例随策略一起更新,奖励信号才能持续保持区分度,本质上是把"online preference model"的自博弈思路落到动作恢复里。
3. Perlin 噪声注入头部条件,破除低组内多样性这一 GRPO 死结
这是全文最关键的诊断。motion recovery 由强条件 \(\mathbf{c}\) 主导,同一条件下采出的一组样本几乎一模一样,于是 advantage 公式 \(\hat A_i=(\mathcal{R}_i-\mu)/\sigma\) 在 \(\sigma\to 0\) 时数值爆炸、梯度消失,vanilla GRPO 直接训不动。解法是在头部 translation 上注入时间连续的 Perlin 噪声 \(\mathcal{P}(t)\) 得到扰动输入 \(\tilde{\mathbf{H}}=\{R,\tau+\lambda\mathcal{P}(t)\}\),再过 \(g(\cdot)\) 得到略偏分布外的扰动 condition,让策略面对的输入有了差异,输出方差自然回升、\(\sigma\) 重新非零。
之所以选 Perlin 而不是高斯白噪声,是因为白噪声会引入高频抖动、破坏头部轨迹的时间平滑性,与人头运动的物理先验冲突;Perlin 噪声天然平滑、频谱可控,能在不违反物理合理性的前提下扩出一圈"近邻条件"。消融里缩放系数 \(\lambda\) 存在最佳值——太小撑不出 diversity,太大破坏先验,印证它是"恰到好处的扰动"。
损失函数 / 训练策略¶
GRPO 目标为 \(\mathcal{J}_{GRPO}(\theta)=\mathbb{E}\left[\frac{1}{G}\sum_i\frac{1}{n}\sum_t \frac{\pi_\theta(o_{i,t}|\mathbf{c})}{\pi_{old}(o_{i,t}|\mathbf{c})}\hat A_i\right]\)(省略 clip 与 KL),reward 只在 \(t=0\) 的 sparse 处给出。算法外层循环为:采一个 batch → 复制旧策略 → 在头部条件上注入 Perlin 噪声扰动 → 共享初始噪声做 SDE 采样拉出 \(G\) 个样本 → 算各子奖励的 \(\mu/\sigma\) → 求 advantage → 跨 \(n\) 个 sampling step 做 importance-weighted 更新;感知模型与策略交替/并行更新。
实验关键数据¶
主实验¶
| 数据集 | 方法 | MPJPE↓(mm) | PA-MPJPE↓(mm) | MPJVE↓(mm) | MPJRE↓(°) | Jitter↓ | GP↓(m) | FS↓(m) |
|---|---|---|---|---|---|---|---|---|
| AMASS | EgoEgo | 177.231 | 152.125 | 588.661 | 9.457 | 2.643 | 1.331 | 1.241 |
| AMASS | EgoAllo | 124.985 | 103.958 | 553.221 | 8.777 | 2.394 | 1.143 | 1.290 |
| AMASS | EgoAllo\(^\aleph\)(带 test-time 优化) | 121.651 | 101.034 | 483.471 | 8.728 | 1.455 | 1.099 | 0.479 |
| AMASS | MotionGRPO | 114.207 | 95.512 | 531.217 | 8.413 | 2.000 | 0.901 | 1.169 |
| AMASS | MotionGRPO\(^\aleph\) | 111.776 | 93.702 | 461.702 | 8.330 | 1.309 | 0.963 | 0.399 |
| RICH | EgoAllo | 192.686 | 172.724 | 506.992 | 12.734 | 4.135 | 4.145 | 1.094 |
| RICH | MotionGRPO\(^\aleph\) | 184.992 | 167.032 | 378.423 | 11.886 | 1.614 | 3.156 | 0.199 |
消融实验¶
| 配置 | 关键指标 | 说明 |
|---|---|---|
| Vanilla GRPO(无 Perlin 噪声) | 组内 diversity 几乎为 0,advantage std≈0,loss 不下降 | 直接验证"低组内多样性 → vanishing gradient"假设 |
| 只用视觉奖励 / 只用 joint 奖励 | 视觉级看起来好但 MPJPE 提升有限 / 反之;两者结合最优 | 混合奖励必要 |
| 在线硬负例 vs 静态噪声负例 | 在线硬负例使感知模型对 policy-typical 瑕疵更敏感,长期奖励更稳 | 防止 reward hacking |
| Perlin noise 缩放 \(\lambda\) | \(\lambda\) 太小 diversity 不够、太大破坏先验,存在最佳值 | 表明 Perlin 是"恰到好处的扰动" |
关键发现¶
- "低组内多样性 → advantage 方差消失"是把 GRPO 从 generation 任务搬到 reconstruction 任务时几乎必然出现的死结,本文是首批正面提出并解决的工作之一。
- 学习的视觉感知模型 + 显式 joint metric 的组合,比单纯加几个手工 loss 项更能压住 jitter/foot skate/穿模这种"看上去就别扭"的伪影。
- 测试时优化(标 \(\aleph\))能进一步把 Jitter 从 2.0 砍到 1.3、FS 从 1.17 砍到 0.40,说明 MotionGRPO 后训练 + EgoAllo 的 test-time refinement 是互补的。
亮点与洞察¶
- 把"GRPO 在 reconstruction 任务上失败的具体数学原因"讲透——advantage 公式分母 \(\sigma\to 0\),这一论证清晰、可复用到任何 RL+条件强约束任务。
- 用 Perlin 噪声而不是高斯,是非常 domain-aware 的选择:保留时间平滑性 = 保留人头运动的物理先验,避免训练信号自我矛盾。
- 在线 contrastive reward model 把"reward hacking"问题用 self-play 思路解掉,思路可平移到 video generation、TTS 等评分难的扩散任务。
- 整体设计是 RL 后训练叠在扩散预训练上、感知 reward + 几何 reward 双轨——这是当下"diffusion + RLHF"流派在结构化任务上的范式样板。
局限与展望¶
- 评估主要在合成 device pose(AMASS)和半真实数据(RICH)上,对真实 Project Aria 长时序、多人、强光线变化的复杂场景未做大规模验证。
- Perlin 噪声尺度 \(\lambda\) 是手调超参,没有自适应调节机制,过大可能破坏物理先验、过小则恢复不到足够 diversity。
- 感知模型在线对比训练的稳定性依赖 policy 演化速度;如果 policy 跑得过快,负样本质量可能跟不上。
- 当前只用 head 轨迹,没充分利用可选的 egocentric image 或 hand observation;与多模态融合的潜力未挖尽。
- 视觉指标里 FS 显著降到 0.4 m 看起来仍有改进空间,离真正"看不到脚滑"的体感仍差。
相关工作与启发¶
- vs EgoAllo (Yi et al., 2025): MotionGRPO 把 EgoAllo 当作 base policy,仅做 RL 后训练就拿到 MPJPE 约 8% 降幅;说明 EgoAllo 的预训练 prior 还有大量未释放潜力。
- vs PPO 在物理模拟器中训练: 传统 RL 物理 sim 慢且不稳定;GRPO 省 value-net,结合扩散 SDE 采样直接在动作空间里训,效率高得多。
- vs DDPO / DPO for image generation: 同样是把扩散转 MDP + RL,但 image generation 天然多样,本文核心 contribution 反而是"补回 diversity",呈现 reconstruction vs generation 的根本差异。
评分¶
- 新颖性: ⭐⭐⭐⭐ 首批把 GRPO 引入扩散 motion recovery 的工作,并真正诊断+解决"低组内多样性"问题;Perlin 注入策略与在线感知 reward 的组合都很有想法。
- 实验充分度: ⭐⭐⭐⭐ AMASS/RICH 主比较 + ADT 真实测试 + 多个消融,但缺与 PPO/物理模拟器、DPO 等其它 RL 路线的直接对比。
- 写作质量: ⭐⭐⭐⭐ 把"GRPO 为什么失败"用 advantage 公式讲清楚,pipeline 图与算法伪代码齐备;reward 公式较多,对读者有一定门槛。
- 价值: ⭐⭐⭐⭐ 对 VR/AR 全身追踪、扩散 + RL 后训练范式都有直接借鉴价值;代码开源进一步降低复现门槛。