PriorMDM:把「短动作扩散模型」当成乐高积木,拼出长序列/双人/精细控制
🎯 为什么重要:动作生成最大的痛点是「没数据」,prior 能绕开它
动作捕捉(mocap)数据有两个先天限制:短(公开数据集几乎全是 ≤10 秒)和单(几乎只有单人)。所以「长序列」「多人交互」「精细控制」这些任务,标注数据几乎没有,专门训模型走不通。PriorMDM 给出新路线:
💡 核心思想:在扩散采样的每一步「拼」出复合动作
三种组合分别针对三类任务。它们的共同点是:都把 MDM 视为黑箱先验,只在去噪迭代的「中间状态」上动手脚。
公式上最优雅的是 DiffusionBlending:它把 classifier-free guidance 的「条件 vs 无条件」插值,推广到「条件 $c_a$ vs 条件 $c_b$」的插值——只要两个微调后的扩散模型「aligned」(结构一致),就能在去噪每步做线性组合。
🛠️ 怎么做:三个方法的实现要点
| 方法 | 训练量 | 推理时的关键操作 | 为什么能 work |
|---|---|---|---|
| DoubleTake (长序列) | 零训练(直接用现成 MDM) | Take 1:相邻 interval 强制「握手」$\tau$(~1 秒前/后缀)每步平均等值;Take 2:把过渡段 sandwich 部分加噪 + soft mask 重新去噪 | MDM 已见过短过渡片段(隐含在短动作里),通过 batch 内握手让相邻段互相感知上下文 |
| ComMDM (双人) | 10 条数据训 1 层 transformer ~240K 步 | 每去噪步从两个 MDM 的第 $n$ 层取激活,ComMDM 输出修正项 $\Delta O$ 加回;同时学初始位姿 $D$ 避免两人重叠 | 每人各自的合理性由冻结 MDM 保证;ComMDM 只学「协调」,参数极少 → 少样本可收敛 |
| DiffusionBlending (复合控制) | 每个单控制微调 MDM ≤20K 步 | 微调时把控制特征(如轨迹)的噪声 mask 掉 → 模型学会依赖它;推理时把任意两个微调模型去噪输出做线性插值 | 微调使每个模型对特定条件敏感;插值 = classifier-free guidance 的多条件版本 |
第一次 take 强制握手 → 段间确实接上了,但「走 → 跳」这种语义差异大的过渡,会产生不自然的「急刹」。第二次 take 把这段过渡当作 sandwich,部分加噪再用 soft mask 重去噪——既保留前后段的语义,又能把过渡磨平。这就是「soft inpainting」的妙用:不是「全保留 vs 全生成」,而是渐变 mask,让模型自己决定每帧的「保留度」。
📊 关键结果:三种组合全面超过「专门训练」基线
| 任务 | 方法 | 核心指标 | 对比基线 |
|---|---|---|---|
| 长序列 (BABEL) | Ground Truth | FID 0.0004 / R-prec 0.62 | — |
| TEACH(专门训) | FID 1.12 / R-prec 0.46 | — | |
| DoubleTake(零样本) | FID 1.04 / R-prec 0.43(+TransEmb 0.48) | 过渡 FID 1.88 vs TEACH 3.86(~2× 提升) | |
| 双人 (3DPW, 10 条数据) | MRT(专门训) | L2 更低,但动作「静态、不真实」 | 用户偏好 ~21-36%(ComMDM 胜出 76.7%/64.2%/79.2% 的补数) |
| ComMDM(少样本) | L2 略高,但动作流畅、语义正确 | 用户偏好 76.7% 交互 / 64.2% 完成 / 79.2% 质量 | |
| 精细控制 (HumanML3D) | MDM 原版(inpainting) | 轨迹 FID 0.98 / 左腕 FID 0.82 | 基线 |
| Finetuned MDM(轨迹) | FID 0.54 | — | |
| Finetuned MDM(左腕) | FID 0.34 | — | |
| DiffusionBlending(左腕+轨迹) | FID 0.22 | MDM 原版 inpainting FID 1.18 → 提升 5× |
| 维度 | 结论(PDF 溯源) |
|---|---|
| 长序列长度 | 论文明确演示 10 分钟流畅动作,由仅在 ≤10s 数据上训过的 MDM 生成(§3.1, §4.1) |
| 数据效率 | 双人任务:3DPW 去噪后只有 10 条训练 + 4 条验证(§4.2)。ComMDM 仅 1 层 transformer,240K 步收敛 |
| 用户研究 | 30 个用户 × 10 prefix × 10 比较,ComMDM 在交互/完成/质量三维度都 >50% 偏好率(Fig.8) |
| 精细控制 | DiffusionBlending 在「左腕+右脚」复合任务上 FID 0.18(MDM 原版 0.81,4.5× 提升) |
| 消融 | ComMDM 位置:layer 8 最佳(layer 0 性能最差);层数 1 最佳(2/4 层反而下降)——「高层语义通信」比低层更重要 |
🌐 在领域中的位置
PriorMDM 是动作生成界把「扩散先验 + 组合」思路系统化的工作——图像界有 ControlNet / classifier-free guidance,PriorMDM 把这套搬到了人体动作:串行拼长度、并行拼人数、模型拼控制。「不要为每个任务重训」这个思想,后来也被机器人动作扩散(如 Diffusion Policy 的多任务扩展)所继承。
❓ 常见误区
PriorMDM 和 MDM 是什么关系?
MDM(Tevet et al. 2023)是被复用的先验,PriorMDM 是复用 MDM 的方法论。可以理解为:MDM 是「画师」,PriorMDM 教你怎么用多个画师拼出一幅大画。论文 §3 明确说「we choose a pretrained MDM to serve as the prior」。
DoubleTake 真的不需要训练吗?
对,零样本。它直接用现成的 MDM,所有逻辑都在推理时的去噪迭代里完成:batch 内握手 + 第二 take 的 soft inpainting。论文 §4.1 说「we applied DoubleTake with a one-second-long transition length」——是超参不是训练。
ComMDM 用 10 条数据训,能泛化到什么程度?
有限。论文 §4.2 老实承认:「due to the small number of samples, generalization is fairly limited to interactions from the same type seen during training」。它能学好「同类交互」,但跨类型的文本到双人动作还是开放问题。
DiffusionBlending 和 classifier-free guidance 有什么区别?
CFG 是「条件 vs 无条件」插值;DiffusionBlending 是「条件 $c_a$ vs 条件 $c_b$」插值,两个都是有条件的微调模型。论文 §3.3 把它叫做「generalizes the core idea of the classifier-free approach to any two aligned diffusion models」。本质都是去噪每步做线性组合。
它对机器人控制有启发吗?
有。「先验 + 组合」是机器人动作生成的通用思路——Diffusion Policy 之后再做长序列、多任务、复合约束,都借鉴了这种「不要为每任务重训,而要组合」的思想。PriorMDM 在动画界证明了这条路走得通。