VASA-1: Lifelike Audio-Driven Talking Faces Generated in Real Time

https://www.microsoft.com/en-us/research/project/vasa-1/

微软的一篇关于 talking head 的工作,叫:VASA-1。VASA-1 是利用一段音频和一张照片,生成一段该照片说话的视频。

他的核心贡献是:

  • 结合 Diffusion 范式和 transformer 网络框架,将其利用在 talking head 领域。

下图是简介:

Training and Testing

从上图可以概括来讲:

  • 模型框架叫:motion latent diffusion。它是基于 transformer-based,结合 diffusion 范式(数据处理方式,loss)
  • 模型的生成目标是:目标条件下的人脸的 motion latents
  • 预测的时候,利用训练好的 motion latent diffusion 得到 motion latents,结合 single frame 的 app volume 和 ID latent,decode成视频帧。

细节上:

在训练的时候,会先对一段视频做音频和视频帧的处理:

  • $E_{audio}$:音频特征提取;文中利用的是 audio2wav 预训练好的模型。
  • $E_{mtn}:$ 表情动作特征提取;文中是基于另外一篇工作:MegaPortraits: One-shot megapixel neural head avatars,利用训练好的 MegaPortraits 的 motion encoder 来提取视频帧的 motion latents。
  • 本文对 MegaPortraits 的模型进行优化,主要是 loss 设计上的,后面会提到。

motion latent diffusion 训练 pipeline 很清晰明了:把 音频特征,motion latents 以及 other conditions,拼成一个大的 token,利用 transformer 结构,结合 diffusion loss 进行训练,生成目标 motion latents。

预测部分:

app.volume 和 ID latent,是利用 MegaPortraits : One-shot megapixel neural head avatars 中的方法,获取的。

其中涉及到如何把一张人脸进行属性解耦,具体是采用MegaPortraits : One-shot megapixel neural head avatars中的方法, 如下图:

简要介绍 MegaPortraits 的训练思路:

  1. 训练第一阶段,从同一段视频中采样 $x_s$ 和 $x_d$ 两帧视频帧,利用 $E_{app}$ 提取 $v_s$ 和 $e_s$. 利用 $E_{mtn}$ 分别提取 $x_s$ 和 $x_d$ $z_s$ 和 $z_d$。训练把 $x_s$ 的 motion 去掉,并投射到一个标准坐标在,然后在诸如 $x_d$ 的 motion。

  1. 此外推理时,source 图和目标动作图非同一个视频,只利用上述同视频不同帧训练,泛化效果不好。MegaProtraits 加入 cycle loss来优化这个问题。具体来说 source帧和目标帧从两个不同的视频中采样,并利用cyclegan的那种方式来进行 loss 设计和训练。

Loss

文中指出 MegaPortraits : One-shot megapixel neural head avatars 解耦效果还不够好,所以在此基础上,加了两个loss来进行优化。

$I_i$ and $I_j$ 是同一段视频中的不同两帧

定义

$\hat{I}{j,z^{pose}{i}}$ : 表示 j apply i 帧的 pose;

$\hat{I}{i,z^{dyn}{j}}$ 表示 i apply j 帧的 dyn;

目标状态的id,pose 和 dyn均一致, 然后最小化 $\hat{I}{j,z^{pose}{i}}$ 和 $\hat{I}{i,z^{dyn}{j}}$ 。

为了进一步加强ID:

$I_s$ 和 $I_d$ 为一段视频的两帧

定义

上述公式 是利用 s 帧 的 id ,volume 和 d 帧的 pose和dyn ,也就是把 d 帧的motion 迁移到 s 帧,对迁移后的结果和 $I_s$ 算人脸 cosin-similarity。

利用这两个 loss,对 One-shot megapixel neural head avatars 进行训练优化,得到更好的$E_{app}$ 和 $E_{mtn}$。

条件信号: Conditioning signals

$C = [X^{pre}, A^{pre}; A, g, d, e]$

Classifier-free guidance (CFG)

g: the main eye gaze direction

d: head to camera distance

e: emotion offset e

生成结果:

问题

(1)部分视频生成的人脸表情比较僵硬,看起不真实

(2)生成效率还是不够好,目前还没有办法在实时通信场景下应用

以上。