本周总结
- 精读了两篇论文,“ConvoFusion: Multi-Modal Conversational Diffusion for Co-Speech Gesture Synthesis” 和 “MambaGesture: Enhancing Co-Speech Gesture Generation with Mamba and Disentangled Multi-Modality Fusion”
- 粗读了一篇论文 “BELM: Bidirectional Explicit Linear Multi-step Sampler for Exact Inversion in Diffusion Models” 和粗略了解了 Mamba 的相关知识
- 复现 “LivelySpeaker: Towards Semantic-Aware Co-Speech Gesture Generation” 进度:20%
论文阅读收获
(1) ConvoFusion: Multi-Modal Conversational Diffusion for Co-Speech Gesture Synthesis

该方法主要分为三个阶段:
-
构建合理的动作表示:将手指关节和身体其他关节分别进行编码,并引入多项约束提高建模质量,包括重建损失 C2C_2C2、骨长正则化损失 LboneL_{bone}Lbone、KL 散度 LKLL_{KL}LKL和拉普拉斯正则化项 LlapL_{lap}Llap;将动作序列分块编码,再统一堆叠后进行解码,提高动作表示的时间细粒度

-
模态引导:使用随机模态丢弃的训练方式,有利于模型学习不同模型控制信号的影响
ϵθ(t)=ϵθ∅+λm∑c∈Cwc(ϵθc(z^(t),t,c)−ϵθ(z^(t),t,∅))\epsilon_{\theta}^{( t )}=\epsilon_{\theta}^{\emptyset}+\lambda_{m} \sum_{\mathbf{c} \in\mathbf{C}} w_{c} \big( \epsilon_{\theta}^{c} ( \mathbf{\hat{z}}^{( t )}, t, \mathbf{c} )-\epsilon_{\theta} ( \mathbf{\hat{z}}^{( t )}, t, \emptyset) \big) ϵθ(t)=ϵθ∅+λmc∈C∑wc(ϵθc(z^(t),t,c)−ϵθ(z^(t),t,∅)) -
单词激励引导:指定用于手势增强的文本标记,在每次去噪迭代中,计算对应的文本注意力矩阵。假设 AiA_iAi 是对应文本标记列的注意力最大值元素,则使用引导目标 Gexc=1S∑i=1S(1−max(Ai))G_{exc}=\frac{1}{S}\sum_{i=1}^S(1-max(A_i))Gexc=S1∑i=1S(1−max(Ai)) 来增强该注意力,然后使用 z~(t)←z^(t)−α⋅∇z^(t)Gexc\tilde{z}^{( t )} \gets\hat{z}^{( t )}-\alpha\cdot\nabla_{\hat{z}^{( t )}} G_{e x c}z~(t)←z^(t)−α⋅∇z^(t)Gexc 更新潜空间特征,最后通过 ϵθ(t)=fθ(z~(t),t,C)\epsilon_{\theta}^{( t )}=f_{\theta} \left( \tilde{z}^{( t )}, t, C \right)ϵθ(t)=fθ(z~(t),t,C) 来估计噪声。
(小 trick:在计算注意力矩阵时,使用归一化和高斯平滑等操作,可以让模型关注到单词的领域,而非指定单词本身。对于生成的动作也会更平滑,不会突变)

这篇论文吸引我的点还挺多的。主要在条件引导方面,和其他论文使用一般的 CFG 不同,论文中考虑到不同模态信号对动作序列的影响可能不同,因此使用随机丢弃模态的方式进行引导训练。后续论文中也探究了不同模态的影响,实验发现音频模态在手势生成过程中影响最大。因此我觉得可以尝试和 LiveSpeaker 先使用文本生成动作,再使用音频微调动作的相反方式,即先使用音频生成动作,再在关键文本处进行动作微调。虽然这样做的语义性可能没有 LivelySpeaker 好,但我觉得 co-speech motion 的语义性本来就比较微弱,只要在关键词处(这那个、你我他等等)做好相应的手势动作即可。
其次就是在文本细粒度引导方面,通过对文本注意力矩阵特定列的操作,来提高模型对指定文本标记的关注度。当然论文中也提到这个方法的局限性,即该方法是数据驱动的,依赖学习到的文本和其他模态的条件分布,不能确保总在重点单词或短语上做出语义手势。其实我个人觉得使用 GPT 分析文本中的重点单词就可以很好地解决这个问题。同时,论文中也提到 “the amount of focus each word/phrase attains in terms of gesture movements is dependent on the fact that speech also contains certain prosodic stress for that word.”,这可能也是为什么音频在动作生成中占据主要贡献的原因。
(2) MambaGesture: Enhancing Co-Speech Gesture Generation with Mamba and Disentangled Multi-Modality Fusion
在阅读这篇论文之前,我先在网上学习了 Mamba 的相关知识。以下是一篇很不错的相关介绍博客
https://blog.youkuaiyun.com/v_JULY_v/article/details/134923301

该方法主要分为两个阶段:
- 多模态特征融合:如上图 “Style and Emotion Aware Disentangled Feature Fusion Module” 所示。使用线性层从音频特征 faf_afa 中提取风格特征 fasf_a^sfas、情感特征 faef_a^efae 和与手势直接相关的特征 fagf_a^gfag,并通过 L1L_1L1 约束与原始风格特征和情感特征进行对齐,并进行对应的特征融合,得到对应的增强表示 fshf_s^hfsh 和 fehf_e^hfeh。然后将 fagf_a^gfag 和融合风格与情感特征的 fse′f_{se}'fse′ 通过交叉注意力的方式,得到 fghf_g^hfgh。最后将 fag,fsh,feh,ftext,ft,fgf_a^g, f_s^h,f_e^h,f_{text},f_t,f_gfag,fsh,feh,ftext,ft,fg 进行拼接,使用跨局部注意力得到融合特征 ffusef_{fuse}ffuse。
- 手势预测:如上图 “Sampling” 和 “MambaAttn Block” 所示。将多模态条件整合成综合特征表示 ffusef_{fuse}ffuse 后,使用 MambaAttn Denoiser 从噪声手势输入 xtx_txt 中预测原始手势 x0x_0x0,其中MambaAttn Denoiser 由 8 个 MambaAttn 块和一个线性投影层组成。
Lg=Ex0∈q(x0∣c),t∼[1,T][HuberLoss(x0−x^0)]Ls=∣fas−fs∣, Le=∣fae−fe∣L=Lg+αLs+βLe \begin{aligned}{\mathcal{L}}_{g}&=E_{x_{0} \in q ( x_{0} | c ), t \sim[ 1, T ]} \left[ H u b e r L o s s \left( x_{0}-\hat{x}_{0} \right) \right] \\ \mathcal{L}_s&=|f_a^s-f_s|,\ \mathcal{L}_e=|f_a^e-f_e|\\ \mathcal{L}&=\mathcal{L}_g+\alpha\mathcal{L}_s+\beta\mathcal{L}_e\end{aligned}LgLsL=Ex0∈q(x0∣c),t∼[1,T][HuberLoss(x0−x^0)]=∣fas−fs∣, Le=∣fae−fe∣=Lg+αLs+βLe

这篇文章最特殊的地方就在于使用 Mamba 架构。从消融实验中可以看出,用 MambaAttn 去噪器替换 DSG + 的 Transformer 编码器后,模型性能显著提升。(吐槽:LivelySpeaker 里也是 MLPs 框架比 Transformer 好,怎么 Transformer 都烂大街了?)
其次就是特征融合的方式,考虑到风格和情感的特点,并进行相应的处理,在多样性、真实性和节奏性方面表现不错。但可惜没有对文本进行更深入的处理,因此模型的语义性能并不突出(SRGR 分数不高)。这应该是这个模型可以改进的方向。
(3) BELM: Bidirectional Explicit Linear Multi-step Sampler for Exact Inversion in Diffusion Models
这篇论文是闲来兴致粗读的,但需要大量的数学知识,还没看懂 (×﹏×)。大体是提出了一个精确反演采样器范式 —— 双向显式线性多步(BELM)采样器。比 DDIM 反演效果更好。或许在之后的提高动作生成模型性能方面可以用上吧。
下周计划
- 精读两篇以上的论文,粗读待定
- 继续复现论文「LivelySpeaker: Towards Semantic-Aware Co-Speech Gesture Generation」或「ConvoFusion: Multi-Modal Conversational Diffusion for Co-Speech Gesture Synthesis」
4783

被折叠的 条评论
为什么被折叠?



