MotionLatentDiffusion
Motion Diffusion in Latent Space
Introduction
条件人体运动生成,根据各种条件输入生成合理的人体运动序列。
本文首先设计了一个 VAE,为人体运动序列获得了具有代表性的低维潜在编码;然后对运动潜在空间执行扩散过程,学习从条件到代表性运动潜在代码的概率映射。
两种学习从纹理描述符到运动序列的概率映射函数的方法:
- 运动和语言之间的跨模态兼容潜在空间
学习 motion VAE 和 text VE,通过 KL 散度将两个编码器约束到兼容的潜在空间中。
- 条件扩散模型
提出了用于人体运动合成的条件扩散模型,学习从文本描述符到人体运动序列的更强大的概率映射。
本文采用两种运动表示:
- 基于经典 SMPL 的运动参数——广泛应用于动作捕捉
- 结合关节特征的冗余手工运动特征——主要应用于角色动画
Methods
输入的条件包括:
- textual descriptions:\(w^{1:N}=\{w^i\}^N_{i=1}\),描述动作的句子
- action labels:\(a \in A\),取自预定义动作类别集的动作标签
- empty conditions:\(c=\empty\)
MLD 旨在以非确定性方式生成人体运动 \(\hat{x}^{1:L}=\{\hat{x}^i\}^L_{i=1}\),其中 \(L\) 表示运动长度或帧号。
本文在 3D 关节旋转、位置、速度和脚接触的组合中应用 motion representation。
- 使用运动编码器 \(\mathcal{E}\) 将运动序列 \(x^{1:L}=\{x^i\}^L_{i=1}\) 编码成潜在的 \(z=\mathcal{E}(x^{1:L})\)
- 使用运动解码器 \(\mathcal{D}\) 将 \(z\) 解码为运动序列 \(\hat{x}^{1:L}=\mathcal{D}(z)=\mathcal{D}(\mathcal{E}(x^{1:L}))\)
Motion Representation in Latents
本文基于 transformer-based 架构,构建 motion VAE(之后记作 MAE),由 transformer encoder \(\mathcal{E}\) 和 transformer decoder \(\mathcal{D}\) 组成,\(\mathcal{V}=\{\mathcal{E,D}\}\) 由仅使用 MSE-loss 和 KL-loss 的运动 \(x^{1:L}\) 重建进行训练。此外,对 \(\mathcal{E,D}\) 使用长跳跃连接结构,进一步增强潜在表示。
放一个 VAE 的图:
什么是长跳跃连接?
长跳跃连接是指在神经网络中,将较早层的输出直接连接到较后层的输入,跨越多个中间层。
实现方式:直接相加,将早期层的输出直接加到后面层的特征图上;拼接,将早期层的输出与后面层的特征图在通道维度上拼接。
Transformer encoder \(\mathcal{E}\)
输入:可学习的分布标记,和具有任意长度的逐帧运动特征 \(x^{1:L}\)
输出:\(\mu\) 和 \(\sigma\),作为高斯分布的两个参数,随后用于重参数化 \(z\)
Transformer decoder \(\mathcal{D}\)
输入:长度为 \(L\) 的零运动标记作为查询,潜在变量 \(z\in R^{n\times d}\) 作为记忆
处理:交叉注意力机制允许每个查询根据潜在记忆 \(z\) 中的信息,动态地调整关注点,每一步输出不仅依赖于先前的输出,还依赖于从潜在空间中提取的整体上下文信息
输出:包含 \(L\) 帧的人体动作序列 \(\hat{x}^{1:L}\)
Motion Latent Diffusion Model
Diffusion probabilistic models
能够学习长度为 \(T\) 的马尔可夫噪声过程,\(\{x_t\}^T_{t=1}\),把噪声从高斯分布逐渐退火到数据分布 \(p(x)\)
For Motion Generation
输入:随机噪声,时间步 \(t\),表示当前在扩散过程中的位置
输出:运动序列 \(\{\hat{x}_t^{{1:N}}\}^T_{t=1}\)
处理:模型从纯随机噪声开始,使用 transformer-based 去噪器 \(\epsilon_{\theta}(x_t,t)\) 来预测并去除部分噪声,迭代 \(T\) 次将随机噪声退火成有意义的运动序列
改进:扩散过程和去噪过程在低维的运动潜在空间中进行,最后模型将低维空间的结果映射回完整的运动序列。
Denoiser \(\epsilon_{\theta}\)
输入:噪声化的潜在表示 \(z_t\) 和时间步 \(t\)
输出:预测的去噪后的潜在表示 \(z_{t-1}=\epsilon_{\theta}(z_t,t)\)
潜在空间扩散过程
- 使用马尔可夫噪声过程建模:\(q(z_t|z_{t-1})=N(\sqrt{\alpha_t}z_{t-1},(1-\alpha_t)I)\)
- \(\alpha_t \in (0,1)\) 是采样的超参数
- \(\{z_t\}^T_t\) 表示噪声序列
训练阶段
- 使用无条件生成目标 \(L_{MLD}=E_{\epsilon,t}\left[||\epsilon-\epsilon_{\theta}(z_t,t)||^2_2\right]\) 来训练去噪器 \(\epsilon_{\theta}\)
- \(\epsilon \sim \mathcal{N}(0,1)\),\(z_0=\mathcal{E}(x^{1:L})\)
- 目标函数的意思是:最小化预测的噪声和实际添加的噪声之间的均方误差
- 训练过程中,模型学习如何从给定的噪声化数据中预测原始的噪声。
生成阶段
- 从纯噪声 \(z_T\) 开始,逐步应用去噪器
- 在每一步,使用 \(z_{t-1}=\epsilon_{\theta}(z_t,t)\) 预测,重复 \(T\) 次得到 \(z_0\)
Conditional Motion Latent Diffusion Model
通过应用 \(p(z|c)\) 的条件分布可以生成条件运动 \(\mathcal{G}(c)\)。
\(\mathcal{G}(c)\) 使用条件降噪器 \(\epsilon_{\theta}(z_t,t,c)\) 实现。
- 对于不同的条件,只需要学习 \(\epsilon_{\theta}(z_t,t,c)\)
- 为了处理不同的 \(c\),使用用于条件嵌入的域编码器 \(\tau_{\theta}(c)\in \mathbb{R}^{m\times d}\) 来优化去噪器 \(\epsilon_{\theta}(z_t,t,\tau_{\theta}(c))\)
什么是域编码器?
本文提到的域编码器 \(\tau_{\theta}(c)\) 是一个将条件信息 \(c\) 映射到一个固定维度向量空间的函数。
不同类型的条件(如文本、动作类别)可以被转换成相同格式和维度的向量。
具体实现:
- 文本条件:使用预训练的 CLIP 文本编码器 \(\tau_{\theta}^w(w^{1:N}) \in \mathbb{R}^{1\times d}\)
- 动作类别:使用可学习的嵌入 \(\tau_{\theta}^a(a)\in \mathbb{R}^{1\times d}\)
条件注入
把嵌入的条件注入 transformer-based 的 \(\epsilon_{\theta}\) 中:
- 使用连接 (concatenatin) 和交叉注意力 (cross-attention) 两种方法
- 连接更有效。
什么是连接 concatenation?
连接是将两个或多个向量或张量在特定维度上合并的操作。
假设有两个向量 A 和 B,连接操作会创建一个新向量 C,其中包含 A 和 B 的所有元素。
在扩散模型中,可以将条件向量直接连接到噪声潜在表示上,让模型同时处理这两种信息。
什么是交叉注意力 cross-attention?
一种注意力机制,允许模型在处理一种输入时关注另一种输入的相关部分。
- 有三个关键组件:Query,Key,Value
- Q 来自一个输入源,K 和 V 来自另一个输入源
- 模型计算 Q 和 K 之间的相似度,然后使用这些相似度来加权值
在扩散模型中,可以让噪声潜在表示作为查询,条件信息作为键和值,从而让模型根据当前生成的内容动态地关注条件的不同方面。
放一个 self-attention 的图
Self-Attention:输入来源于单一输入序列
Cross-Attention:输入来源于两个不同的输入序列
条件目标函数
\(L_{MLD}:=\mathbb{E}_{\epsilon,t,c}\left[||\epsilon-\epsilon_{\theta}(z_t,t,\tau_{\theta}(c))||^2_2\right]\)
训练策略
- 冻结 \(\tau_{\theta}^w\)
- 通过条件目标函数,联合优化 \(\tau_{\theta}^a\) 和 \(\epsilon_{\theta}\)
- 使用无分类器扩散指导来学习 \(\epsilon_{\theta}\)
什么是无分类器扩散指导?
一种在条件扩散模型中改善生成质量的技术,不需要额外的分类器。通过在训练和采样过程中结合条件和无条件模型来实现。
工作原理:
- 训练阶段:同时学习条件分布 \(p(x|c)\) 和无条件分布 \(p(x)\)
- 采样阶段:通过线性组合生成样本
为什么说是一种权衡?
通过增强条件信息的影响,生成的样本更符合给定的条件;
强化条件信息使生成过程更确定性,可能导致生成结果的变化减少,多样性降低。
采样策略
- 学习条件分布和无条件分布,在 \(10\%\) 的样本中丢弃条件信息
- 使用线性组合 \(\epsilon_{\theta}^s(z_t,t,c)=s\epsilon_{\theta}(z_t,t,c)+(1-s)\epsilon_{\theta}(z_t,t,\empty)\)
- \(s\) 是指导比例,\(s\gt 1\) 可以增强指导效果
\(s\) 值是什么?
\(s\) 是指导比例 guidance scale,控制条件模型和无条件模型输出的混合比例,通常 \(s\ge 1\)
这个线性组合用来干什么?
这个线性组合在每一个去噪步骤中都会被使用,我们用 \(\epsilon_{\theta}^s(z_t,t,c)\) 来预测噪声,并用于更新 \(z_t\) 到 \(z_{t-1}\)
生成过程
完成了条件控制下的逐步去噪过程后,模型得到预测的潜在表示 \(z_0\),然后解码器 \(\mathcal{D}\) 将这个潜在表示转换为实际的运动数据。
所以!条件运动潜在扩散模型到底做了什么?
- 输入:原始运动数据和对应的条件信息,如文本描述或动作类别
- 编码:使用编码器 \(\mathcal{E}\) 将原始运动数据 \(x^{1:L}\) 映射到潜在空间,得到初始潜在表示 \(z_0=\mathcal{E}(x^{1:L})\)
- 条件嵌入:使用 \(\tau_{\theta}(c)\) 将条件信息 \(c\) 嵌入到适当的向量空间
- 扩散过程(训练阶段):使用马尔可夫噪声过程,从 \(z_0\) 开始逐步添加噪声,生成噪声序列 \(\{z_t\}^T_{t=0}\)
- 去噪器训练:训练去噪器 \(\epsilon_{\theta}\) 来预测和移除噪声
- 同时学习条件去噪和无条件去噪
- 在 \(10\%\) 的样本中丢弃条件信息,以学习无条件生成
- 目标函数:条件目标函数 \(L_{MLD}\),联合优化 \(\epsilon_{\theta}\) 和 \(\tau_{\theta}\)
- 生成过程:开始于纯噪声 \(z_T\),逐步去噪
- 使用无分类器扩散指导
- 解码阶段:使用解码器 \(\mathcal{D}\) 将最终的潜在表示 \(z_0\) 转换回原始运动数据空间,\(x^{1:L}=\mathcal{D}(z_0)\)
Experiments
Datasets and Evaluation Metrics
数据集
Text to motion
-
HumanML3D
-
KIT
Action to motion
- HumanAct12
- UESTC
Implementation Details
TODO
评价指标
Motion quality
- FID,Frechet Inception Distance
- MPJPE and PAMPJPE
- ACCL,Acceleration Error
Generation diversity
- DIV
- MM,MultiModality
Condition matching
- R Precision,motion-retrieval precision
- MM Dist,Mult-modal Distance
Time costs
- AITS,Average Inference Time per Sentence
Ablation Studies 消融研究
什么是消融研究?
用于评估模型中各个组件的重要性,通过系统地移除模型的某些部分,然后观察这种改变对模型性能的影响,从而了解每个组件的贡献。
MLD 包括 \(\mathcal{V}\) 和潜在扩散模型 \(\epsilon_{\theta}\)。
首先关注 \(\mathcal{V}\),用生成和重构指标来评估它的组件。
Latents 在运动序列表示中的有效性
首先在受控装置中烧蚀 \(\mathcal{V}\) 的几个组件,研究 \(z\) 的形状,跳跃连接和 transformer 层数。
\(z\) 是 \(\mathcal{V}\) 和 \(\tau_{\theta}\) 之间的桥梁。将位姿 \(x^i\) 的嵌入维数锁定为 256,探索 \(z\in \mathbb{R}^{i\times 256}\),给出 \(MLD-i\)。然后在最佳的 \(MLD-7\) 上评估 skip connection 和 transformer 层。
Latents 在 latent-based 扩散模型中的有效性
\(MLD-i\) 指的是潜在变量 \(z\in \mathbb{R}^{i\times 256}\) 的形状,其中 \(MLD-1\) 使用最小的潜在变量,在大多数指标上取得了最佳性能。
之后给出对 \(\epsilon_{\theta}\) 的评价,级联嵌入的编码器设计比交叉注意力嵌入的更好。
跳跃连接对运动潜在扩散模型有显著改进。
然后,通过扩散采样评估 \(MLD\) 的生成,而不是通过潜在采样在 \(\mathcal{V}\) 中生成。最小潜在连接和跳跃连接的 \(MLD\) 优于其他方法。
Inference time
运动扩散模型的一个显著限制是推理时间较长。采用去噪扩散隐式模型 DDIM 提供推理时间、浮点运算和 FID 的详细评估。
Discussion
本文提出的 MLD 仍然存在以下局限性:
- 可以生成任意长度的结果,但仍然低于数据集中的最大长度
- MLD 关注的是关节型的人体,但没涉及面部运动、手部运动和动物运动