跳转至

Mitigating Error Accumulation in Co-Speech Motion Generation via Global Rotation Diffusion and Multi-Level Constraints

会议: AAAI 2026
arXiv: 2511.10076
代码: https://xiangyue-zhang.github.io/GlobalDiff
领域: 时间序列
关键词: 语音驱动动作生成, 全局旋转, 扩散模型, 误差累积, 骨骼约束

一句话总结

提出 GlobalDiff 框架,首次在全局关节旋转空间中进行扩散生成,从根本上消除层次化前向运动学中的误差累积问题,并通过关节-骨骼-运动三层约束方案弥补全局表示丢失的结构先验,在多说话人语音驱动动作生成基准上取得 SOTA,FGD 较此前最佳方法改进 46%。

研究背景与动机

语音驱动全身动作生成(Holistic Co-Speech Motion Generation)旨在将身体姿态、手势和面部表情与语音同步,是虚拟角色自然交流的关键技术,在虚拟人、互动游戏和人机协作中有广泛应用。

核心问题:层次化误差累积

现有扩散方法均在局部关节旋转空间中操作:每个关节的旋转 \(R_k^{\text{local}}\) 相对于其父关节定义。要获得全局位置,需通过前向运动学(FK)递归组合:

\[R_k^{\text{global}} = R_1^{\text{local}} R_2^{\text{local}} \cdots R_k^{\text{local}}\]
\[q_k = \left(\prod_{i=1}^{k-1} R_i^{\text{local}}\right)(t_k - t_{k-1}) + \cdots + q_1\]

这意味着:

根部或中间关节的微小误差会沿运动链传播放大,导致末端执行器(手指、手、脚)出现显著偏差 2. 关节在骨骼树中越深,涉及的变换越多,误差越大 3. 通过 FK 链的反向传播涉及深层非线性变换,导致梯度不稳定,阻碍有效训练

全局旋转的挑战

直接预测全局旋转 \(R_k^{\text{global}}\) 可以消除递归依赖,但也引入新问题: - 局部旋转通过层次化骨骼结构隐式保持关节关系 - 全局旋转将每个关节独立对待,丢失了自然的结构约束 - 没有额外引导,可能产生物理上不合理的姿态或断裂的运动链

方法详解

整体框架

GlobalDiff 采用条件流匹配(CFM)框架: - 输入:噪声运动序列 \(x_t\)、音频特征 \(a\)、说话人身份、种子动作片段 - 输出:干净的全局关节旋转和平移 \(x_1 \in \mathbb{R}^{T \times (J \times 6 + 3)}\)(6D 旋转格式) - 面部表情:由浅层 Transformer 编码器从韵律特征和说话人 ID 直接估计,利用音素-唇动的近似一一对应关系

区域分解:将运动分解为手部关节 \(\mathbf{H}_t\) 和躯干关节 \(\mathbf{B}_t\),分别与表情和音频特征拼接后通过独立的运动生成块(MGB)处理。

流匹配目标: $\(\mathcal{L}_{\text{simple}} = \mathbb{E}_{t, x_0 \sim p_0, x_1 \sim p_1} \|f_\theta(x_t, c) - x_1\|^2\)$

关键设计

1. 全局旋转预测(消除误差累积)

核心公式——全局空间中的位置计算: $\(q_k = q_{\text{root}} + \sum_{(i \to j) \in \pi(k)} R_i^{\text{global}}(t_j - t_i)\)$

其中 \(\pi(k)\) 是从根到关节 \(k\) 的唯一父子路径。

关键优势: - 位置计算是沿路径的加法运算,避免了递归旋转组合 - 每个关节对其全局旋转有直接且稳定的梯度 - 彻底消除层次化误差累积

设计动机:在局部旋转方法中,位置损失的反向传播需经过深层 FK 链的矩阵乘法,梯度不稳定。全局旋转将这一问题简化为加法路径,训练更稳定。

2. 关节结构约束(\(\mathcal{L}_j\))——虚拟锚点

问题:仅用位置损失 \(\mathcal{L}_{pos}\) 约束不充分,因为多个有效旋转可以产生相同的关节位置(旋转歧义问题),特别是末端关节的位置不涉及自身旋转。

解决方案:为每个关节 \(k\) 定义 \(N\) 个非共面虚拟锚点 \(\{v_k^n\}_{n=1}^N\),通过预测旋转变换后与真值旋转变换后的锚点对齐: $\(\hat{v}_k^n = R_k^{\text{global}} \cdot v_k^n, \quad \tilde{v}_k^n = R_k^{\text{gt}} \cdot v_k^n\)$ $\(\mathcal{L}_j = \frac{1}{KN} \sum_{k=1}^{K} \sum_{n=1}^{N} \|\hat{v}_k^n - \tilde{v}_k^n\|_2^2\)$

由于锚点跨越 3D 空间,匹配它们可以唯一约束旋转,消除歧义。

3. 骨骼结构约束(\(\mathcal{L}_s\))——角度矩阵

问题:关节级约束仅保证每个关节的局部旋转保真度,无法捕捉全局骨骼结构——人体运动受到骨骼间相互依赖的几何关系约束。

解决方案:构建配对角度矩阵(Angular Matrix, AM),捕捉所有骨骼对之间的角度关系: $\(b_{k \to j} = \frac{q_j - q_k}{\|q_j - q_k\|_2}\)$ $\(\mathcal{A}_{kj, k'j'} = b_{k \to j}^\top b_{k' \to j'}\)$ $\(\mathcal{L}_s = \frac{1}{|\mathcal{B}|} \sum_{(k,j),(k',j') \in \mathcal{B}} \|\mathcal{A}_{kj,k'j'} - \tilde{\mathcal{A}}_{kj,k'j'}\|_2^2\)$

通过对齐预测和真值的角度矩阵,约束全局骨骼关系,保持解剖学合理的骨骼配置。

4. 时序结构约束(\(\mathcal{L}_m\))——多尺度 VAE

问题:空间约束不能捕捉运动的时序结构——语音驱动动作本质上是有节奏的,需与语音韵律同步。

解决方案:使用共享的多尺度变分编码器 \(g(\cdot)\) 提取预测和真值运动的时序嵌入,对齐动态模式: $\(z^{\text{gen}} = g(\hat{X}), \quad z^{\text{gt}} = g(X)\)$ $\(\mathcal{L}_m = \|z^{\text{gen}} - z^{\text{gt}}\|_2^2\)$

损失函数 / 训练策略

总损失 = \(\mathcal{L}_{\text{simple}} + \mathcal{L}_{pos} + \mathcal{L}_j + \mathcal{L}_s + \mathcal{L}_m\)

  • 训练设备:4 × NVIDIA V100,1000 epoch,batch size 128,约 17 小时
  • 优化器:ADAM,学习率 1e-4
  • 虚拟节点数:6
  • 种子姿态帧数:8(流式推理时前一片段的最后 8 帧作为下一片段的种子)

实验关键数据

主实验

在 BEAT2 数据集上的对比(全部说话人,All Speakers):

方法 FGD↓ BeatAlign→ Diversity→ MSE↓
CaMN 0.512 0.200 5.58 -
EMAGE 0.692 0.284 6.06 6.908
HoloGest 0.646 0.803 13.53 -
RAG-GESTURE 0.487 0.514 9.94 -
GlobalDiff (Ours) 0.263 0.404 8.24 4.144

单说话人(1 Speaker):

方法 FGD↓ BeatAlign→ Diversity→ MSE↓
HoloGest 0.534 0.795 14.15 -
EMAGE 0.570 0.793 11.41 7.680
GlobalDiff (Ours) 0.478 0.705 13.73 6.330

FGD 在全说话人设置下从次佳的 0.487 降至 0.263,改进约 46%

消融实验

各组件贡献(单说话人, Speaker 2):

配置 FGD↓ BeatAlign→ Diversity→ 说明
Ours (local) 0.594 0.578 9.33 局部旋转基线
Ours (global) 0.592 0.693 13.08 切换为全局旋转
+ \(\mathcal{L}_j\) 0.574 0.665 12.30 加关节约束
+ \(\mathcal{L}_j\) + \(\mathcal{L}_s\) 0.517 0.593 13.78 加骨骼约束
+ \(\mathcal{L}_j\) + \(\mathcal{L}_s\) + \(\mathcal{L}_m\) 0.478 0.705 13.73 全部约束

关键发现

  1. 全局 vs 局部旋转:切换为全局旋转后 BeatAlign 和 Diversity 显著提升,指尖轨迹更平滑(图6对比了300帧右中指指尖轨迹,局部方法有高频振荡)
  2. \(\mathcal{L}_j\) 效果:解决手指的解剖学不合理问题(如拇指翻转、小指扭曲)
  3. \(\mathcal{L}_s\) 效果:FGD 大幅改善(0.574→0.517),解决身体倾斜、步伐不平衡等结构不协调问题
  4. \(\mathcal{L}_m\) 效果:所有指标达到最佳,确保节奏一致性和时序平滑
  5. 用户研究:28 名参与者在真实性、语义一致性、动作-语音同步三个维度上均优先选择 GlobalDiff

亮点与洞察

  • 核心洞察极为清晰:局部旋转的层次化误差累积是一个长期被忽视但根本性的问题,全局旋转是自然的解决方案
  • 三层约束设计逐级递进:关节→骨骼→运动,分别从旋转精度、空间拓扑、时序动态三个维度弥补全局表示丢失的结构先验
  • 虚拟锚点解决旋转歧义:巧妙地用非共面点将旋转约束转化为位置约束,优雅地解决了末端节点位置不涉及自身旋转的问题
  • 实用的流式推理设计:8帧种子机制使长序列生成只需初始的8帧

局限与展望

  • 全局旋转虽然消除了 FK 链的误差传播,但失去了层次结构的局部自洽性保证(需要显式约束弥补)
  • 角度矩阵 \(\mathcal{A}\) 的维度随关节数平方增长,可能在高分辨率骨骼模型上计算量较大
  • BeatAlign 在全说话人设置下从 GT 的 0.477 到本方法的 0.404 有一定差距,节奏对齐仍有改进空间
  • 仅在 BEAT2 数据集上验证,泛化性需要更多数据集验证

相关工作与启发

  • VQ-VAE 方法系列(EMAGE, SemTalk):离散化方法生成多样性有限
  • 扩散方法系列(DiffSHEG, HoloGest, RAG-Gesture):均基于局部旋转,受误差累积影响
  • MDM (Tevet et al., 2022) 提出的位置监督启发了本文的约束设计
  • 启发:在其他涉及骨骼层次结构的任务(如动作重定向、姿态估计)中,全局旋转表示+结构约束的思路也值得探索

评分

  • 新颖性: ⭐⭐⭐⭐⭐ — 首次在全局旋转空间中进行语音驱动动作的扩散生成,三层约束设计巧妙
  • 实验充分度: ⭐⭐⭐⭐ — 定量+定性+消融+用户研究,单一数据集略显不足
  • 写作质量: ⭐⭐⭐⭐⭐ — 问题定义清晰,方法推导严谨,可视化丰富
  • 价值: ⭐⭐⭐⭐⭐ — 46% FGD改进显著,方法具有通用性,对动作生成社区有重要启发