EDGE:用「扩散模型」给音乐编舞,还能编辑
🎯 为什么重要:动作生成「扩散化」的早期典范
音乐→舞蹈是个独特的动作生成任务。它既要自由表达(舞蹈本身就是创意的),又要严格受音乐结构约束(节拍、风格)。之前的工作:
EDGE 的洞察:diffusion 模型天生就解决了所有这些问题。它是生成式(多样),它能在关节角空间工作(骨长天然固定),它的 inpainting 机制直接提供编辑能力,而且「去噪」目标简单稳定。把方法换一下,原本互相冲突的需求全消化掉了。
💡 核心思想:DDPM + Jukebox 音乐特征 + inpainting 编辑
EDGE 的架构很干净:DDPM 扩散模型(Transformer 解码器骨干)+ 冻结的 Jukebox(预训练音乐大模型)做音乐条件。一个直觉:把舞蹈序列 $\mathbf{x} \in \mathbb{R}^{N \times 151}$(24 关节 × 6-DoF + 根节点平移 + 双脚接触标签)当作「图像」,把音乐 $c$ 当作「文字 prompt」——剩下的就是标准的条件 diffusion。
编辑能力是 diffusion 的「白送」。在每一步去噪时,把用户指定的「已知部分」(如某些关节某些帧)直接替换回 forward-noising 后的样本(Eq.8)——这就是图像 inpainting 的标准技巧。因此 EDGE 无需任何额外训练就支持:给定起舞姿势续跳 / 中间打关键帧 / 锁定上半身让下半身自由 / 锁定根轨迹只让肢体舞 / 把 5 秒片段重叠 2.5 秒拼成无限长。
🛠️ 三个关键工程决策
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① 用 Jukebox 抽音乐特征 | 不自己设计音频特征,直接用 OpenAI 的 Jukebox(在 1M 首歌上预训练的音乐生成大模型)抽 embedding | 类比 text-to-image 的经验:「缩放条件编码器」比缩放扩散模型本身更重要(Saharia et al. Imagen,EDGE 论文 ref [48])。Jukebox 带来强大的 in-the-wild 泛化(Tab.2) |
| ② Contact Consistency Loss (CCL) | 对模型自己预测的接触帧,惩罚脚部位置帧间位移(Eq.5),鼓励「接触时脚不动」 | 相比旧工作只在「真值有接触」时惩罚,CCL 让模型学会自己决定何时接触并保持一致——这是舞蹈里脚滑/锁脚的关键。消融:去掉 CCL,PFC 翻倍变差(1.54→3.08) |
| ③ Classifier-Free Guidance (CFG) | 训练时随机丢 25% 条件(c=∅),推理时 $\tilde{x} = w\cdot \hat{x}(c) + (1-w)\cdot \hat{x}(\emptyset)$ | 用单一标量 $w$ 调「保真 vs 多样」tradeoff:$w=2$ 高保真 Elo 1751,$w=1$ 接近 GT 的多样性。这是扩散模型的标配 |
人体骨头长度是固定的。如果你在关节位置空间生成(直接预测每个关节的 xyz),模型很容易让骨长飘忽——Bailando 就是这样,骨长平均变化 ±20%。EDGE 在关节角空间(24 关节 × 6-DoF 旋转 + 根平移)生成,骨长天然固定(运动学 FK 时骨架是刚体)。这是「选对表示空间」省掉一大堆麻烦的典型例子。
📊 结果:人评 Elo 1751,甚至超过 Ground Truth
| 维度 | 数字(PDF 溯源) |
|---|---|
| 数据 / 训练 | AIST++(1408 舞段);5 秒片段,30 FPS;模型 49M 参数;4× A100 训 16 小时(§4) |
| 主结果(Tab.1) | Elo(人评,147 评分员 / 11610 对决):EDGE(w=2) 1751 > Ground Truth 1653 > EDGE(w=1) 1601 > Bailando 1397 > FACT 1325 |
| 对人胜率 | EDGE vs Bailando 91.1%;vs FACT 90.0%;甚至 vs Ground Truth 65.7%(人更偏好 EDGE 而非真舞蹈!) |
| 物理合理性 PFC(↓越好) | EDGE 1.5363 vs Bailando 1.754 vs FACT 2.2543;接近 GT 1.332(Tab.1) |
| 节拍对齐(↑越好) | EDGE 0.26/0.27 > Bailando 0.23 > FACT 0.22(即便 Bailando 有 RL 模块专门优化节拍) |
| In-the-wild 音乐(Tab.2) | EDGE Elo 1747;去 Jukebox 跌到 1603(w/o Jukebox 83.3% 被 EDGE 击败)—— Jukebox 是泛化的命脉 |
| CCL 消融(Tab.3) | EDGE 带 CCL:vs 无 CCL 胜率 61.8%;PFC 1.5363 vs 3.0806(翻倍) |
| 编辑能力 | 支持 in-betweening / 关节条件化 / 长片段拼接(5 秒 → 任意长,通过 2.5 秒重叠)(Fig.3, Fig.4) |
(1) 「FID 在 AIST++ 上不可靠」——论文实测:FIDg 在真值上是 41.4,反而比 FACT(12.75)/Bailando(24.82)/EDGE(23.08) 都高;FIDk 训练后期反而变差。说明当时社区主流指标是坏的。
(2) 提出 PFC——一个无需物理模拟的物理合理性指标,核心观察:「重心水平加速度必须有脚踩地;垂直正加速度必须有脚踩地」(§4.1)。这个指标后来被多个动作生成工作沿用。
🌐 在领域中的位置
EDGE 是「动作生成扩散化」的奠基工作之一(和 text-to-motion 的 MDM 几乎同期)。它证明「diffusion + 预训练条件编码器 + inpainting 编辑」这套 CV 配方在动作生成上同样有效,并且更简单、更通用、更可编辑。后续的 MDM、MLD、MotionDiffuse 等都继承了这条路线。在 rl-control 知识库里,它代表「动作生成的扩散范式」一极,和 Diffusion Policy(动作控制的扩散范式)共同支撑了 T05 扩散谱系。
❓ 常见误区
EDGE 是在做「机器人控制」吗?
不是。它生成的是纯运动学舞蹈序列(24 关节角度 + 根平移),没有物理仿真、没有重力学约束、没有控制器。它属于「动作生成」(action generation),主要用于动画/游戏/VR/影视。和机器人控制(要考虑动力学、接触、力)是两个领域。但它在「用 diffusion 表示动作分布」上和 Diffusion Policy 是同源的——所以放在同一知识脉络下。
为什么用人评 Elo 而不是 FID?
因为论文用实验证明FID 在 AIST++ 上是坏的:FIDg 给真值打 41.4 分,反而比所有模型都差;FIDk 在训练后期不降反升。这是「数据集小 + 启发式特征提取器 superficial」导致的。所以作者选择相信大规模用户研究(147 人,11610 对)的 Elo 评分,并把它作为主指标。这是本文方法论上的重要贡献。
「人评超过 Ground Truth」是怎么回事?难道 EDGE 比真人跳得好?
不是。Ground Truth 是 AIST++ 数据集里的真人 mocap。65.7% 的胜率反映的是:在「看片段哪个更像样」这个主观任务上,EDGE 的输出更「干净、稳定、节奏感强」。真人的舞蹈有更多微妙、复杂的细节,但片段化展示时人眼可能更喜欢 EDGE 这种「工整」的输出。这个结果也提醒:用户研究本身也有偏置。
它能生成多长的舞蹈?5 秒是不是太短了?
能生成任意长。EDGE 训练在 5 秒片段上,但用「重叠拼接」:每段 5 秒,相邻段重叠 2.5 秒,重叠部分用线性衰减权重融合(Fig.3)。这样能拼出几分钟甚至更长的连贯舞蹈。这是扩散模型「整段一次生成」(而非自回归)的特点带来的——拼接处不会有 autoregressive 误差累积。
Jukebox 为什么这么重要?
Jukebox 是 OpenAI 在 1M 首歌上预训练的音乐生成大模型——它内部表征已经懂音乐结构(节拍、和声、风格)。EDGE 把它当「音乐特征提取器」冻结用,相当于借到了 1M 首歌的音乐先验。消融显示:去 Jukebox,in-the-wild 泛化 Elo 从 1747 跌到 1603——这正是 text-to-image 那条「缩放条件编码器 > 缩放扩散模型」经验在音乐领域的复现。