Contribution
- 正式定义了手势空间中的扩散和去噪过程,以合成高保真的音频对齐手势
- 设计具有隐式无分类器引导的 Diffusion Audio-Gesture Transformer,以更好地处理多个连续模态的条件信息,保证时序对齐
- 采用退火采样策略,以消除时间不一致性
Method
Problem Formulation
- 数据准备:
- 对于 N N N 帧的视频片段,提取出对应的语音音频序列 a = { a 1 , … , a N } a=\{a_1,\dots,a_N\} a={a1,…,aN}
- 使用 O p e n P o s e OpenPose OpenPose 标记每一帧的骨架 x = { p 1 , … , p N } x=\{p_1,\dots,p_N\} x={p1,…,pN}
- 数据预处理:
- 将骨架数据转换为单位方向向量的串联,其中 p i p_i pi 表示第 i i i 帧的骨架, J J J 是关节的总数, d i , j d_{i,j} di,j 表示第 i i i 帧中第 j j j 个和第 ( j + 1 ) (j+1) (j+1) 个关节之间的单位方向向量。
- 模型目标:
- 训练一个模型 G G G,其参数化为 θ \theta θ,目标是合成人体骨架序列 x x x,该序列受语音音频序列 a a a 和初始姿势 { p 1 , … , p M } \{p_1,\dots,p_M\} {p1,…,pM} 的条件限制。
- arg min θ ∥ x − G θ ( a , p 1 , … , p M ) ∥ \arg \min_{\theta}\| x-G_{\theta}(a,p_1,\dots,p_M) \| argminθ∥x−Gθ(a,p1,…,pM)∥
Diffusion Audio-Gesture Transformer
将噪声手势序列和上下文信息并入特征通道,利用注意力机制捕捉时序信息
Attention(Q,K,V)=softmax
(
QK
T
l
)
V
\text{Attention(Q,K,V)=softmax}(\frac{\text{QK}^T}{\sqrt{l}})\text{V}
Attention(Q,K,V)=softmax(lQKT)V
Diffusion Gesture Stabilizer
在 DDPM 中独立随机噪声 z z z 的引入有利于提高多样性,但是在时序上 z z z 会破坏一致性(为什么
阈值化(Thresholding)
- 目的:限制时间变化以避免不一致性。
- 方法:设置一个时间阈值 t 0 t_0 t0。对于 t < t 0 t<t_0 t<t0,使用原始采样策略为每个时间步 t t t 生成一个独立的高斯噪声 z z z。对于 t ≤ t 0 t\le t_0 t≤t0,所有帧使用相同的噪声 z 0 z_0 z0,确保时间维度上没有变化。
- 效果:通过减少早期时间步的噪声变化,可以提高手势序列的时间一致性。
平滑采样(Smooth Sampling)
- 目的:通过平滑退火过程进一步控制时间变化,以在多样性和一致性之间取得平衡。
- 方法:
- 对于每个时间步 t t t,在反向过程中只生成一个噪声 z 0 ( t ) z_0(t) z0(t),该噪声是从 N ( 0 , σ a ( t ) 2 I ) N(0,\sigma_a(t)^2I) N(0,σa(t)2I) 中采样得到。
- 给定 z 0 ( t ) z_0(t) z0(t),为每帧 i i i 生成条件噪声 z i ( t ) z_i(t) zi(t),其中 z i ( t ) z_i(t) zi(t) 从 N ( z 0 ( t ) , ( 1 − σ a ( t ) 2 ) I ) N(z_0(t),(1-\sigma_a(t)^2)I) N(z0(t),(1−σa(t)2)I) 中采样。
- 函数 σ a ( t ) \sigma_a(t) σa(t) 是一个非递减函数,用于实现方差退火。
- 效果:通过在时间步中引入更平滑的噪声变化,该方法在保持一定多样性的同时减少了时间的不一致性。
Implicit Classifier-free Guidance
ϵ ^ θ = ϵ θ ( x t , t ) + s ⋅ ( ϵ θ ( x t , c , t ) − ϵ θ ( x t , t ) ) \hat{\epsilon}_{\theta}=\epsilon_{\theta} ( x_{t}, t )+s \cdot( \epsilon_{\theta} ( x_{t}, c, t )-\epsilon_{\theta} ( x_{t}, t ) ) ϵ^θ=ϵθ(xt,t)+s⋅(ϵθ(xt,c,t)−ϵθ(xt,t))
Experiments
Evaluation Metrics
-
Fréchet Gesture Distance (FGD):测量生成手势序列和真实手势序列的数据分布差异
-
训练一个手势序列自编码器来提取真实手势序列 X X X 和生成手势序列 X ^ \hat{X} X^ 的特征。
-
F G D ( X , X ^ ) = ∣ ∣ μ r − μ g ∣ ∣ 2 + Tr ( Σ r + Σ g − 2 ( Σ r Σ g ) 1 / 2 ) FGD(X,\hat{X})=||\mu_r-\mu_g||^2+\text{Tr}(\Sigma_r+\Sigma_g-2(\Sigma_r\Sigma_g)^{1/2}) FGD(X,X^)=∣∣μr−μg∣∣2+Tr(Σr+Σg−2(ΣrΣg)1/2),其中 μ \mu μ 和 Σ \Sigma Σ 分别表示特征分布的一二阶矩。
-
-
Beat Consistency Score (BC):衡量动作与音频节奏之间的相关性
-
运动节拍检测:由于不同关节的运动速度不同,因此采用骨骼之间夹角的变化来追踪运动节拍。
-
相邻帧之间的平均绝对角变化(MACC)为:
M A A C ( θ j ) = 1 S 1 T − 1 ∑ s = 1 S ∑ t = 1 T − 1 ∥ θ j , s , t + 1 − θ j , s , t ∥ 1 \mathrm{MAAC}(\theta_j) = \frac{1}{S} \frac{1}{T-1} \sum_{s=1}^S\sum_{t=1}^{T-1}\|\theta_{j, s, t+1} - \theta_{j, s, t}\|_1 MAAC(θj)=S1T−11∑s=1S∑t=1T−1∥θj,s,t+1−θj,s,t∥1
其中,夹角 θ j \theta_j θj 为第 j j j 根骨髓与第 ( j + 1 ) (j+1) (j+1) 根骨髓之间的夹角, S S S 是数据集中片段的总数, T T T 是每个片段的帧数。
-
角度变化率:
计算第 s s s 个片段在某一帧 t t t 的角度变化率: 1 J − 1 ∑ j = 1 J − 1 ( ∥ θ j , s , t + 1 − θ j , s , t ∥ 1 M A A C ( θ j ) ) \frac{1}{J-1}\sum_{j=1}^{J-1}(\frac{\|\theta_{j, s, t+1} - \theta_{j, s, t}\|_1}{\mathrm{MAAC}(\theta_j)}) J−11∑j=1J−1(MAAC(θj)∥θj,s,t+1−θj,s,t∥1)
这里 J J J 是关节的总数。这个公式的意义在于衡量在时间上,关节之间的运动变化相对于其平均变化的比率。
-
提取运动节拍:通过提取一阶差分高于某个阈值的局部极值,来获得运动节拍。
-
-
音频节拍检测:参考 Danceformer 论文,使用音频的起始强度(onset strength)来检测音频节拍。
-
计算节拍一致性评分(BC):
B C = 1 n ∑ i = 1 n exp ( − min ∀ t j y ∈ B y ∥ t i x − t j y ∥ 2 2 σ 2 ) \mathrm{BC} = \frac{1}{n}\sum_{i=1}^n\exp (-\frac{\min_{\forall t_j^y\in B^y}\|t_i^x - t_j^y\|^2}{2\sigma^2}) BC=n1i=1∑nexp(−2σ2min∀tjy∈By∥tix−tjy∥2)
其中, t i x t_i^x tix 是第 i i i 个音频节拍, B y = { t i y } B^y=\{t_i^y\} By={tiy} 是运动节拍的集合, σ \sigma σ 是用于归一化的参数。该公式的核心思想是计算每个音频节拍与其最近的运动节拍之间的距离,距离越小,表明手势与音频的节奏越同步。
-
-
Diversity:衡量对应不同输入生成的手势之间的变化程度
- 使用与FGD相同的特征提取器将生成的手势映射到潜在特征向量。
- 计算这些特征向量之间的平均特征距离,距离越大,表明生成的手势越多样化。
Result
从图 3 可以看出,基于 GAN 的方法容易出现『模型坍塌』的现象,使得模型的输出手势样式单一。而基于 Diffusion 方法的 DiffGesture 不会出现这种现象。
Ablation Studies
去除 Diffusion Gesture Stabilizer 的模型版本在 FGD、BC 和多样性指标上的表现均不如完整模型。这表明 Diffusion Gesture Stabilizer 在提高生成手势的时间一致性和整体质量方面起到了关键作用。
而没有使用隐式分类器自由引导的模型版本在评估指标上的表现有所下降。这说明隐式分类器自由引导有助于在生成过程中平衡多样性和样本质量。