里程碑
数据集HumanML3D, KIT-ML
输入模态language

MDM:把「人体动作」当成「序列信号」去扩散生成

Guy Tevet, Sigal Raab, Brian Gordon, Yonatan Shafir, Daniel Cohen-Or, Amit H. Bermano(特拉维夫大学)。ICLR 2023;arXiv:2209.14916v2 (2022-10)。 项目页 · 全开源 · motion generationdiffusion 线索 T05

🧠 一句话心智模型:把人体一段动作看作「一串关节帧的序列」,像扩散画图一样从纯噪声开始一步步把它「擦」出来。不套 U-Net(那是给图像的),用 Transformer 编码器;不预测噪声,直接预测干净动作——这样才能把「脚不滑」「速度连续」这些几何约束加上去。

🎯 为什么重要:文本到动作的「多对多」死结

「一段文字 → 一段人体动作」是计算机动画的圣杯。难点不是「能不能生成」,而是多对多

核心矛盾:「踢」可以是足球踢,也可以是空手道踢;反过来,同一个踢法可以用 N 种自然语言描述。
这意味着 文本 ↔ 动作 是一个固有的多模态映射。
但之前的 SOTA(JL2P / TEMOS / T2M / MotionCLIP)几乎都是 VAE / 自编码器——它们只能学到 一对一,或者强行把分布塞进一个高斯潜变量。结果:要么分布塌缩到「平均动作」,要么多样性很差。

扩散模型天生就是为多模态而生(它能表达任意形状的分布)。但直接把图像扩散搬过来不行:图像是 2D 像素,用 U-Net;动作是 1D 时间序列,每个样本是一组关节坐标。MDM 的贡献就是「针对动作域,把扩散改造对」——架构换 Transformer,预测目标换成 sample 本身,再把动作学里成熟的几何损失接进来。

💡 核心思想:Transformer 骨干 + 预测样本 + 几何损失

文本提示 c "用左腿踢" 噪声动作 x_T N 帧 × J 关节 × D 时间步 t 随机采样 t∈[1,T] CLIP 文本编码 frozen B/32 Transformer Encoder 8 层,dim=512 token z_tk = MLP(t) + MLP(c) + mask 帧嵌入 + 位置编码 输出:预测 x̂_0(不是 ε!) 干净动作 x̂_0 + 几何损失约束
图 1:MDM 单步去噪。输入是「噪声动作 + 文本编码 + 时间步」,Transformer 编码器直接预测干净动作 x̂0;然后几何损失(位置/速度/脚接触)作用在 x̂0 上。

整个采样过程:从纯高斯噪声 xT ∼ 𝒩(0, I) 开始,每步用模型预测 0,再把它「重新加噪」到 xt-1,循环 T=1000 步得到最终动作。

🛠️ 让扩散真正适配动作域的 4 个关键设计

设计具体做法为什么必要
① Transformer 骨干(非 U-Net)8 层 encoder-only,dim=512;时间步 t 和条件 c 各经 MLP 投影后相加成 token ztk动作是时间序列(非空间网格),U-Net 的卷积归纳偏置不匹配;Transformer 天然处理变长序列
② 预测样本 x̂0(非噪声 ε)网络输出直接是「干净动作估计」,损失 Lsimple = ‖x0 − G(xt, t, c)‖²只有预测样本本身,才能在它上面施加几何约束(位置、速度、脚接触)——这些是动作域的物理先验
③ 三个几何损失位置损失 Lpos(前向运动学后的关节位置)/ 速度损失 Lvel(抑制抖动)/ 脚接触损失 Lfoot脚滑(foot sliding)是动作生成最显眼的伪影;接触地面时把脚速度强制置零
④ Classifier-free guidance训练时 10% 概率把条件 c 置空;推理时用 Gs = G(∅) + s·(G(c) − G(∅))s=2.5同一个模型既能条件生成也能无条件生成;s 控制「保真度 ↔ 多样性」的权衡

最终训练损失:

$$L = L_{simple} + \lambda_{pos} L_{pos} + \lambda_{vel} L_{vel} + \lambda_{foot} L_{foot}$$

这套设计还顺带解锁了动作编辑:扩散 inpainting——把序列前 25% 和后 25% 固定,中间 50% 让模型补全(in-betweening);或者空间编辑——固定下半身,让上半身按新文本重新生成。都不需要重训。

🔮 直觉:为什么「预测样本」比「预测噪声」更利于加几何损失?
预测噪声 ε 时,损失是 ‖ε − ε̂‖²,作用在噪声空间里——但「脚不滑」「速度连续」这些约束是定义在干净动作空间的,无法直接施加。预测样本 x̂0 后,损失直接作用在估计出的动作上,几何先验立刻生效。代价:训练略不稳定,但作者证明在动作域里值得。
⚠️ 别误会:文本→动作主实验其实没开几何损失
几何损失是 MDM 的核心能力,但在 HumanML3D / KIT 的文本→动作实验中,作者并未启用它——因为这些数据集的表示已经显式包含关节位置和脚接触标签(PDF §4.1 原文:"Since foot contact and joint locations are explicitly represented in HumanML3D, we don't apply geometric losses in this section")。几何损失真正发挥作用是在动作→动作任务(HumanAct12 / UESTC,见表 3、4 的「w/o foot contact」消融)。所以下文文本→动作的 FID/Diversity/MultiModality 第一,主要来自「预测样本 + Transformer + 扩散」本身,而非几何损失。

📊 关键结果:SOTA + 42% 用户偏好超过真值

训练成本数字
硬件单张 RTX 2080 Ti
训练时长3 天
扩散步数T = 1000(余弦调度)
推理耗时每条动作 < 1 分钟

文本→动作(HumanML3D,全集 14,616 段动作 / 44,970 描述,下表为测试集指标)——MDM 在 FID(分布相似度)、Diversity(多样性)和 MultiModality(多模态性)三项同时拿到第一(R-precision 仍低于 T2M):

方法FID ↓R-precision Top3 ↑Diversity →MultiModality ↑
Real(真值)0.0020.7979.503
JL2P11.020.4867.676
T2M(前 SOTA)1.0670.7409.1882.090
MDM(本文)0.5440.6119.5592.799

文本→动作(KIT,全集 3,911 段,下表为测试集指标)——FID 同样第一:

方法FID ↓R-precision Top3 ↑
T2M(前 SOTA)2.7700.693
MDM(本文)0.4970.396

动作→动作(HumanAct12,12 类)——MDM 在 4 个指标中 3 个领先:

方法FID ↓Accuracy ↑Diversity →
ACTOR(前 SOTA)0.1200.9556.840
INR(前 SOTA)0.0880.9736.881
MDM(本文)0.1000.9906.860

用户研究(KIT,N=31)——MDM 生成的动作有 42.3% 被用户选为「比真实动作还好」:

对比用户偏好 MDM
MDM vs JL2P90.4%
MDM vs TEMOS59.4%
MDM vs T2M54.8%
MDM vs Ground Truth42.3%
关键洞察:MDM 没有堆参数(单卡 3 天就能训完),却在分布相似度(FID)、多样性(Diversity)和多模态性(MultiModality)上同时碾压前 SOTA。赢在「预测样本 + Transformer 骨干 +(动作→动作里的)几何损失」这套针对动作域的设计选择,而不是模型规模。它也证明了「多模态」不是 VAE 的专利——扩散模型更合适。

🌐 在领域中的位置

JL2P / TEMOS / T2M(VAE 路线,一对一) MDM 2022(扩散 + Transformer + 几何损失)⭐ MLD / MotionGPT / Mofusion(潜扩散 / 更快采样) 文本→动作→物理跟踪(BeyondMimic 类)

MDM 是「动作生成扩散化」的奠基。后续的 MLD(潜扩散版本)、MotionGPT(语言模型化)都站在它肩膀上;它的「预测样本 + 几何损失」思路也被机器人的扩散策略(如 Diffusion Policy)间接继承。关联线索:T05 扩散策略谱系

❓ 常见误区

MDM 是在物理模拟器里跑吗?能直接给机器人用吗?

不能直接用。MDM 生成的是运动学动作(关节位置/旋转序列),不保证物理可行(不摔、能平衡)。要给机器人用,需要再接一层「跟踪器」(如 PHC、BeyondMimic stage 1)。MDM 解决的是「生成什么样的动作」,不是「怎么执行」。

为什么 R-precision 反而比 T2M 低?

R-precision 测「文本和生成的动作有多匹配」。MDM 多样性高(MultiModality 2.799 vs T2M 的 2.090),意味着同一个文本会生成更多样的动作——其中一些可能在「字面匹配」上偏离 top-1。合理的解释是多样性 vs 准确率的内在权衡,扩散选择偏向多样性(论文仅报告数字,未展开论述此权衡)。

1000 步去噪是不是太慢?

是主要局限。单条动作 < 1 分钟可接受,但实时交互不够。后续工作(MLD 在潜空间扩散、DDIM 加速、一致性模型)正是为提速而生。

几何损失只能在「预测样本」范式下用吗?

原则上是的。预测噪声的范式(DDPM 原版)无法直接在干净动作空间施加约束,这正是 MDM 切换到「预测 x̂0」的核心动机——一个看似小的改动,却解锁了动作学里几十年积累的几何先验。