[论文解读] CodeTalker: Speech-Driven 3D Facial Animation with Discrete Motion Prior
CodeTalker 将语音驱动的 3D 面部动画表述为一个在学习到的离散运动代码本上的代码查询问题,产生比现有方法更生动的口型对齐动作和自然表情。
Speech-driven 3D facial animation has been widely studied, yet there is still a gap to achieving realism and vividness due to the highly ill-posed nature and scarcity of audio-visual data. Existing works typically formulate the cross-modal mapping into a regression task, which suffers from the regression-to-mean problem leading to over-smoothed facial motions. In this paper, we propose to cast speech-driven facial animation as a code query task in a finite proxy space of the learned codebook, which effectively promotes the vividness of the generated motions by reducing the cross-modal mapping uncertainty. The codebook is learned by self-reconstruction over real facial motions and thus embedded with realistic facial motion priors. Over the discrete motion space, a temporal autoregressive model is employed to sequentially synthesize facial motions from the input speech signal, which guarantees lip-sync as well as plausible facial expressions. We demonstrate that our approach outperforms current state-of-the-art methods both qualitatively and quantitatively. Also, a user study further justifies our superiority in perceptual quality.
研究动机与目标
- 通过降低跨模态不确定性,使用离散运动先验实现鲁棒且高保真的语音到 3D 脸部映射。
- 通过 VQ-VAE 从真实面部运动中学习一个有限、具有表达力的运动原语代码本,以表示运动空间。
- 开发一个时序自回归模型,结合语音和风格输入查询运动代码本以合成序列。
- 在标准基准和用户研究中展示改进的唇部同步和表达动态。
提出的方法
- 通过基于 transformer 的 VQ-VAE(编码器 E,解码器 D)自我重建真实面部运动,学习离散的面部运动代码本 Z = {z_k}。
- 将潜在运动特征量化为最近的代码本条目 Q(ĤZ),从而为有限代理空间形成运动原语。
- 冻结代码本和解码器;使用基于 wav2vec 2.0 的语音编码器和跨模态 transformer 解码器训练一个以语音 conditioned 的自回归模型,以从语音和风格向量 s 预测运动代码。
- 使用具有 M 个可学习基向量的风格嵌入,允许说话风格条件和推理时的风格插值。
- 以运动级 L1 损失加上代码本对齐损失(VQ 损失)和运动重构损失进行训练,在不可微的量化器上使用直通梯度。
- 推理阶段,从语音和风格递归预测运动令牌,通过 D 查询序列以获得运动,并累积 M1:T 以用于动画。
实验结果
研究问题
- RQ1离散运动先验是否相比连续/回归方法提升了说话驱动的 3D 面部动画的真实感和多样性?
- RQ2是否可以通过对学习到的运动代码本的跨模态自回归模型在多样的说话风格下实现准确的口型同步与自然表情?
- RQ3是否说话人无关的通用运动先验比说话人特定表示在泛化方面更有效?
- RQ4定量指标和感知研究如何将 CodeTalker 与 VOCA、MeshTalk、FaceFormer 在标准数据集上进行比较?
主要发现
| 方法 | 唇部顶点误差 (×10^-4 mm) | FDD (×10^-5 mm) |
|---|---|---|
| VOCA | 6.5563 | 8.1816 |
| MeshTalk | 5.9181 | 5.1025 |
| FaceFormer | 5.3077 | 4.6408 |
| CodeTalker (Ours) | 4.7914 | 4.1170 |
- CodeTalker 在 BIWI-Test-A 上相比 VOCA、MeshTalk 和 FaceFormer 达到更低的唇部顶点误差和上半脸动态偏差(唇部顶点误差:4.7914 对 6.5563、5.9181、5.3077;FDD:4.1170 对 8.1816、5.1025、4.6408),显示更好的唇部同步和动态表达。
- 在用户研究中,参与者更偏好 CodeTalker 相对于 VOCA(唇部同步 86.02%,真实感 84.95%),相对于 MeshTalk(唇部同步 95.70%,真实感 92.47%),相对于 FaceFormer(唇部同步 70.97%,真实感 69.89%)。
- CodeTalker 展示出更自然和富有表现力的上半脸运动统计,超越了仅唇部同步。
- 消融实验显示基于运动的代码本(相较于形状耦合编码)在重构和唇部准确性上更好,验证离散运动先验方法。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。