AAMDM: Accelerated Auto-regressive Motion Diffusion Model
论文信息: CVPR 2024, Tianyu Li et al., Georgia Tech/UBC/SFU
Link: CVF Open Access
一、核心问题
1.1 研究背景
在视频游戏和虚拟现实等娱乐应用中,交互式动作合成对于创造沉浸式体验至关重要。然而,生成既高质量又具有上下文响应能力的动画仍然是一个巨大挑战。
游戏工业的传统方法:
- Motion Matching:通过在大数据集中搜索最合适的动画片段
- 优点:高质量、响应式
- 缺点:计算成本高、内存占用大、扩展性差
学习型神经网络的局限:
- 优点:内存占用小、运行时性能好
- 缺点:训练不稳定、动作质量妥协、难以生成多样化动作
扩散模型的困境:
- 优点:可以生成多样化高质量动作、内存需求低
- 缺点:反向扩散过程昂贵,推理速度慢,无法用于实时应用
1.2 核心问题
如何构建一个动作合成框架,能够同时实现:
- 高质量 - 生成自然、真实的角色动作
- 多样性 - 能够生成多模态的动作变化
- 高效率 - 交互式帧率(实时运行)
1.3 现有方法及其局限性
| 方法 | 代表工作 | 质量 | 多样性 | 效率 | 局限性 |
|---|---|---|---|---|---|
| Motion Matching | [Kolsi et al. 2018] | 高 | 中 | 中 | 内存需求大、搜索成本高 |
| VAE | [Ling et al. 2020] | 中 | 低 | 高 | 模式坍塌、多样性差 |
| 标准扩散 | [Tevet et al. 2022] | 高 | 高 | 低 | 推理速度慢(多次去噪) |
| 快速扩散 | [Shi et al. 2023] | 中 | 中 | 中 | 样本质量下降 |
1.4 本文方法
论文提出了 AAMDM (Accelerated Auto-regressive Motion Diffusion Model) 框架:
核心思想:
- 低维嵌入空间操作 - 在学到的紧凑 latent space 中建模,而非完整姿态空间
- Generation Module - 使用 Denoising Diffusion GANs (DD-GANs) 快速生成初始草稿
- Polishing Module - 使用自回归扩散模型 (ADM) 进行质量优化,仅需 2 步额外去噪
关键创新:
- 结合 DD-GANs 的速度优势和 ADM 的质量优势
- 在低维嵌入空间操作,降低训练复杂度和推理成本
- 仅需 5 步去噪即可生成高质量动作(标准扩散需要 100+ 步)
二、核心贡献
-
AAMDM 框架
- 首个在交互式帧率下生成长序列动作的扩散模型
- 结合 Denoising Diffusion GANs 和 Auto-regressive Diffusion Models
- 在紧凑嵌入空间中操作
-
全面对比分析
- 在多个指标上超越基线方法(LMM、MotionVAE、AMDM)
- 运动质量、多样性、运行时效率全面领先
-
多模态动作合成演示
- 展示新颖的高质量多模态动作
- 实现之前方法无法达成的效果(如用户控制根节点轨迹 + 多样化手臂动作)
三、大致方法
3.1 框架概述
┌─────────────────────────────────────────────────────────────────┐
│ AAMDM Architecture │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 输入:用户命令(轨迹、方向等) │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Autoencoder (编码器/解码器) │ │
│ │ - Encoder: 完整姿态 y → 低维嵌入 xz │ │
│ │ - Decoder: 低维嵌入 xz → 完整姿态 y │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Generation Module (DD-GANs) │ │
│ │ - 从噪声生成初始动作草稿 │ │
│ │ - 仅需 3 步反向扩散 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Polishing Module (ADM) │ │
│ │ - 优化 Generation Module 的输出 │ │
│ │ - 仅需 2 步自回归去噪 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ 输出:低维嵌入 xz → Decoder → 完整姿态 y │
│ │
│ 总去噪步数:T_GAN + T_ADM = 3 + 2 = 5 步 │
│ (标准扩散需要 100+ 步) │
│ │
└─────────────────────────────────────────────────────────────────┘
3.2 核心组件
(1) 低维嵌入空间构建
问题:在完整姿态空间(338 维)建模复杂度高、违反运动学约束
解决方案:学习紧凑嵌入向量 \(x_z \in \mathcal{X}_Z\)
自编码器结构:
-
Encoder: \(E_{AE}(y) \to z\)
- 输入:完整姿态 \(y \in \mathbb{R}^{338}\)
- 输出:潜在向量 \(z \in \mathbb{R}^{52}\)
-
Decoder: \(D_{AE}(x_z) \to \hat{y}\)
- 输入:嵌入向量 \(x_z = [x; z] \in \mathbb{R}^{64}\)
- 输出:重建姿态 \(\hat{y}\)
训练损失: $$\mathcal{L}{D,E} = w{val}^{D,E}\mathcal{L}{val}^{D,E} + w{vel}^{D,E}\mathcal{L}{vel}^{D,E} + w{reg}^{D,E}\mathcal{L}_{reg}^{D,E}$$
其中:
- 位置损失:\(\mathcal{L}_{val}^{D,E} = ||\hat{y} \ominus y|| + ||F(\hat{y}) \ominus F(y)||\)
- 速度损失:\(\mathcal{L}_{vel}^{D,E} = ||\frac{F(\hat{y}_0) \ominus F(\hat{y}_1)}{\delta n} - \frac{F(y_0) \ominus F(y_1)}{\delta n}||\)
- 正则化:\(\mathcal{L}_{reg}^{D,E} = ||z||_2^2\)
\(F\) 是正向运动学函数,\(\ominus\) 计算两姿态差异
(2) 自回归扩散模型 (ADM) - Polishing Module
为什么用扩散模型:
- 角色动画本质是多模态的(同一姿态可有多种后续姿态)
- 传统 MSE 损失的网络只能学习一对一映射,无法捕捉多模态
前向扩散: $$q(xz_n^t | xz_n^{t-1}) = \mathcal{N}(\sqrt{\alpha_t} xz_n^{t-1}, (1-\alpha_t)I)$$
反向扩散: $$\hat{xz}n^0 = G{ADM}(xz_n^t, xz_{n-1}, t)$$
- 输入:带噪声的嵌入 \(xz_n^t\)、前一帧嵌入 \(xz_{n-1}\)、时间步 \(t\)
- 输出:干净的嵌入预测 \(\hat{xz}_n^0\)
训练损失(h 帧序列): $$\mathcal{L}{ADM} = w{val}^{ADM}||\hat{xz}{1:h}^0 - xz{1:h}|| + w_{vel}^{ADM}||\frac{\hat{xz}{1:h}^0 - \hat{xz}{0:h-1}^0}{h \cdot \delta n} - \frac{xz_{1:h} - xz_{0:h-1}}{h \cdot \delta n}||$$
(3) Denoising Diffusion GANs (DD-GANs) - Generation Module
问题:标准扩散假设去噪是高斯分布,需要多步去噪
解决方案:用多模态分布参数化反向扩散
反向扩散生成器: $$\hat{xz}n^0 = G{GAN}(xz_n^T, xz_{n-1}, r_t, t)$$
- 额外输入:潜在变量 \(r_t \sim \mathcal{N}(0, I)\)
- 将反向扩散参数化为条件 GAN
判别器训练: $$\mathcal{L}_{DGAN} = -\mathbb{E}q[\log(D{GAN})] - \mathbb{E}p[\log(1 - D{GAN})]$$
生成器训练: $$\mathcal{L}_{GGAN} = -\mathbb{E}p[\log(D{GAN})]$$
(4) 组合 ADM + DD-GANs
关键洞察:
- 扩散早期:从噪声生成样本(需要多模态能力)
- 扩散晚期:对预测做小幅调整(需要精确性)
两阶段生成:
Generation Module (DD-GANs):
输入:随机噪声 xz_n^T ~ N(0, I)
过程:T_GAN = 3 步反向扩散
输出:初始草稿 xz_n^{T_ADM}
Polishing Module (ADM):
输入:初始草稿 xz_n^{T_ADM}
过程:T_ADM = 2 步自回归去噪
输出:最终嵌入 xz_n^0
总步数:T_AA = T_GAN + T_ADM = 5 步
优势:
- DD-GANs 提供快速草稿生成(单步)
- ADM 提供质量优化(自回归精修)
- 两者结合实现速度 + 质量的平衡
(5) 用户命令引导
引导扩散公式: $$\hat{xz}_{n}^{0,*} = \hat{xz}n^0 - \epsilon \alpha_t \nabla{xz_n^t} \mathcal{J}(\hat{xz}_n^0, \bar{x}_n)$$
- \(\bar{x}_n\): 用户查询(如目标轨迹)
- \(\mathcal{J}\): 目标函数,测量生成特征与用户查询的距离
- \(\epsilon\): 步长参数
- \(\alpha_t\): 扩散噪声参数
四、训练细节
4.1 数据集
LaFAN1 Dataset:
- 包含多样化角色动作
- 用于主要评估和对比
4.2 模型配置
| 组件 | 维度/参数 |
|---|---|
| 完整姿态 \(y\) | 338 维 |
| 潜在向量 \(z\) | 52 维 |
| 工程特征 \(x\) | 12 维(未来轨迹 + 朝向) |
| 嵌入向量 \(x_z\) | 64 维 |
| Generation 步数 \(T_{GAN}\) | 3 步 |
| Polishing 步数 \(T_{ADM}\) | 2 步 |
| 总步数 \(T_{AA}\) | 5 步 |
4.3 训练策略
- Generation Module 和 Polishing Module 分开训练
- 使用引导扩散方法进行用户控制
- 在低维嵌入空间训练,降低复杂度
五、实验与结论
5.1 定量对比
对比基线:
- LMM (Learned Motion Matching)
- MotionVAE
- AMDM (Auto-regressive Motion Diffusion Model)
评估指标:
- 运动质量:姿态误差、速度误差
- 多样性:多模态生成能力
- 运行效率:推理时间
结果:AAMDM 在所有指标上均优于基线方法
5.2 消融实验
验证各组件贡献:
- 低维嵌入空间:加速训练和推理
- DD-GANs Generation:提供快速草稿
- ADM Polishing:提升运动质量
5.3 人工多模态数据集分析
目的:验证模型捕捉多模态转换的能力
结果:
- AAMDM 能成功捕捉多模态转移模型
- 比现有方法更适合复杂动作合成
5.4 演示效果
展示 novel motions:
- 用户控制根节点轨迹 + 多样化手臂动作
- 之前方法无法实现的多模态合成
六、局限性
-
仍需要 5 步去噪
- 虽然比标准扩散(100+ 步)快很多
- 但对于某些超低延迟应用可能还不够
-
两模块分开训练
- Generation 和 Polishing 独立训练
- 可能不是全局最优
-
对训练数据依赖
- 动作质量受限于训练数据集多样性
- 数据集中没有的动作类型难以生成
-
引导强度调节
- 需要手动调节引导参数 \(\epsilon\)
- 过强可能导致不自然动作
七、启发
7.1 方法学启发
-
速度 - 质量权衡的设计哲学
- 不追求单模块完美,而是组合多个模块的优势
- DD-GANs(速度)+ ADM(质量)= AAMDM(平衡)
-
低维嵌入空间的价值
- 降低建模复杂度
- 提升训练和推理效率
- 隐含学习运动学约束
-
自回归 + 扩散的结合
- 自回归保证时序连贯性
- 扩散保证多模态能力
- 两者互补
7.2 工程实践启发
-
分阶段生成策略
- 先生成草稿(快速、粗糙)
- 再精修(慢速、精细)
- 类似人类绘画的"先铺色再细化"
-
5 步去噪的实用价值
- 在质量和速度间找到平衡点
- 对于实时应用至关重要
7.3 与相关工作对比
| 方法 | 去噪步数 | 质量 | 多样性 | 速度 |
|---|---|---|---|---|
| 标准扩散 | 100+ | 高 | 高 | 低 |
| DDIM | 50 | 高 | 高 | 中 |
| AAMDM | 5 | 高 | 高 | 高 |
| LMM | 1 | 中 | 低 | 高 |
八、遗留问题
8.1 开放性问题
-
能否进一步减少去噪步数?
- 能否做到 1-2 步生成?
- 一致性模型 (Consistency Models) 是否适用?
-
端到端训练可能性?
- Generation 和 Polishing 联合训练
- 可能获得更好的全局最优
-
更长时序建模?
- 当前是自回归,长序列可能累积误差
- 能否结合 Transformer 等长程建模?
-
与物理引擎结合?
- 加入物理约束引导
- 生成物理合理的动作
8.2 未来方向
-
实时交互应用
- 游戏角色控制
- VR/AR虚拟人
-
多模态条件化
- 文本 + 语音 + 动作联合生成
- 更丰富的用户控制
-
大规模预训练
- 类似ASE的预训练范式
- 通用动作生成模型
九、关键公式总结
| 公式 | 含义 |
|---|---|
| \(\mathcal{L}{D,E} = w{val}\mathcal{L}{val} + w{vel}\mathcal{L}{vel} + w{reg}\mathcal{L}_{reg}\) | 自编码器训练损失 |
| \(q(xz_n^t | xz_n^{t-1}) = \mathcal{N}(\sqrt{\alpha_t} xz_n^{t-1}, (1-\alpha_t)I)\) |
| \(\hat{xz}n^0 = G{GAN}(xz_n^T, xz_{n-1}, r_t, t)\) | DD-GANs 生成 |
| \(\hat{xz}_{n}^{0,*} = \hat{xz}_n^0 - \epsilon \alpha_t \nabla \mathcal{J}\) | 引导扩散 |
| \(T_{AA} = T_{GAN} + T_{ADM} = 3 + 2 = 5\) | 总去噪步数 |
十、代码与资源
- 项目主页: 待公开
- 代码: 论文发表时开源
- 视频: 项目主页提供演示
十一、与 Locomotion 控制的关系
AAMDM 是运动生成的通用框架,可应用于 locomotion 任务:
-
作为上层规划器:
- 生成角色移动轨迹
- 作为底层控制器的输入
-
与物理控制器结合:
- 类似 CLOSD、PDP 的架构
- AAMDM 生成动作 → PD 控制器执行
-
与扩散模型工作的对比:
- DiffuseLoco: 专注于 locomotion,离线 RL 蒸馏
- UniPhys: 统一规划 + 控制
- AAMDM: 通用动作生成,强调速度优化
笔记说明:本文是 CVPR 2024 关于快速动作扩散模型的工作,核心贡献是结合 DD-GANs 和 ADM 实现 5 步去噪的实时动作生成。理解本文有助于学习扩散模型在角色动作生成中的加速方法,与 DiffuseLoco、PDP 等工作形成对比和互补。