论文笔记:A Lip Sync Expert Is All You Need for Speech to Lip Generation In The Wild

文章目录

  • 介绍
  • Wav2Lip的整体架构
    • Lip-sync Expert
    • generator
    • Visual Quality Discriminator
  • 新的lip-sync evaluation framework
  • 总结

介绍

这篇论文提出Wav2Lip的方法,做到了根据提供的语音和视频来合成嘴唇配对的新视频。

以前相关方面的方法都有一些缺点:

  1. 只能针对训练时使用的speaker来合成视频,不能做到speaker-generic;
  2. 只能对静态的图像来合成视频,无法做到输入视频来合成;
  3. 训练需要一个特定的speaker的大量的数据,或者是需要非常clean的没有noisy的数据。
  4. 能够合成的词汇量是有限的。

而Wav2Lip做到了训练完后对任意speaker、语言、视频都可以进行合成,而且合成的视频的嘴唇与audio是非常同步的。



Wav2Lip的整体架构

论文笔记:A Lip Sync Expert Is All You Need for Speech to Lip Generation In The Wild_第1张图片

从图可以看出,Wav2Lip有一个generator,还有一个pre-trained好的判断lip-sync的判别器,以及一个判断视频质量的判别器。
下面一一介绍一下这些部分。

Lip-sync Expert

论文分析,以前的方法不能做到lip-sync的原因是:对不准确的嘴唇同步的惩罚太小了。
第一,用L1 reconstruction loss来判断嘴唇是否同步是很weak的,因为嘴唇只占了一张图片的很小的一部分,那loss更加注重的是图片的其他部分。(这个原因可以从一个事实来证实:就是在训练过程中,到训练中期才开始改变嘴唇的形状。)
所以我们需要一个专门针对嘴唇是否同步的判别器。
第二,确实有方法这么做了,就是以前的LipGAN。但是它只用了一张图片来判断嘴唇是否同步,在后面的实验中可以证实一小段视频会更好地检测。而且,LipGAN把这个判别器跟生成器一起训练了,导致会有noisy generated images进入到判别器中,这会导致判别器会过于在意生成图像中的artifacts而不是嘴唇的同步。


所以,为了解决这个问题,论文提出了一个pre-trained好的expert Lip-sync discriminator。它不会在训练生成器的时候再去微调。

这个判别器是模仿SyncNet的。
SyncNet的输入是一段长度为 T v T_v Tv的连续的face frames(只有下半张脸)和大小为 T a × D T_a\times D Ta×D的speech segment,判别器判别这两个是in-sync还是out-of-sync。SyncNet有一个face encoder和一个audio encoder(都是二维卷积层组成的),SyncNet要最大化unsynced pairs的两个embeddings之间的L2 distance,最小化synced pairs之间的L2 distance。

论文的判别器做了几点改变:

  1. SyncNet输入的是灰度图像的堆叠,这里输入的是彩色图像;
  2. 网络使用残差连接,让网络可以更深;
  3. 使用不同的损失函数:cosine-similarity with binary cross-entropy loss。
    余弦相似度就是,设v和s是video and speech embeddings,计算audio-video pair同步的概率:
    P s y n c = v ⋅ s m a x ( ∥ v ∥ 2 ⋅ ∥ s ∥ 2 , ϵ ) P_{sync}=\frac{v\cdot s}{max(\Vert v \Vert_2 \cdot \Vert s \Vert_2, \epsilon)} Psync=max(v2s2,ϵ)vs

generator

生成器的结构是参考LipGAN的。有三个组成部分:identity encoder;speech encoder;face dncoder。
identity encoder是残差卷积层组成的,它的输入是:一段任意选取的reference frames R R R 和 pose prior P P P (就是遮住下半张脸)在通道维度上concatenated的。它这种输入使得生成的下半张脸可以无缝粘贴回原视频中,而不再需要后处理。
speech encoder是2维卷积层组成的,它是给 speech segment S S S 编码的。
face decoder由卷积层和反卷积层组成,输入就是前面两个encoder的输出concatenated在一起的feature map。

注意,生成器生成frames是一帧一帧生成的。假设batch size是 N N N,图像形状为 ( H , W , 3 ) (H, W, 3) (H,W,3),当要输入reference frames时,要把它们在batch size维度堆叠,即输入reference frames的形状为 ( N ⋅ T v , H , W , 3 ) (N\cdot T_v, H, W, 3) (NTv,H,W,3);当输入expert disciminator时,要把生成的frames在通道维度上堆叠,也就是是输入的形状为 ( N , H / 2 , W , 3 ⋅ T v ) (N, H/2, W, 3\cdot T_v) (N,H/2,W,3Tv)。(注意,训练生成器的时候expert disciminator是不参与训练的。)

生成器要最小化生成frames和真实frames的L1重建误差 L r e c o n L_{recon} Lrecon,以及最小化“expert sync-loss" E s y n c E_{sync} Esync


Visual Quality Discriminator

因为生成的图像会模糊或者有一些artifacts,所以要再加上一个判别图像质量的判别器,从而提高图像质量。
这个判别器是会和生成器一起训练的。
判别器要最大化 L d i s c L_{disc} Ldisc,生成器要最小化 L g e n L_{gen} Lgen

其中 L g L_g Lg对应生成器生成的图片, L G L_G LG对应真实图片。

在后面的实验中会看到,如果加入了这个质量判别器,图像的质量上去了,但是嘴唇的同步效果会受到一点点影响。所以可以根据实际情况对它们做权衡。

从而,生成器的总损失函数为:
L t o t a l = ( 1 − s w − s g ) ⋅ L r e c o n + s w ⋅ E s y n c + s g ⋅ L g e n L_{total} = (1-s_w-s_g)\cdot L_{recon} + s_w \cdot E_{sync} + s_g \cdot L_{gen} Ltotal=(1swsg)Lrecon+swEsync+sgLgen



新的lip-sync evaluation framework

在Wav2Lip的测试阶段,每一time-step,visual输入的是current face crop 和 同一段但是遮掉下半张脸的current face crop concatenate在一起的图像;audio输入的是对应的audio segment。

但是,在现在的evaluation framework中,输入的reference frames不能是current frames,而是任意选择的frames,以防泄露了真实的嘴唇形状。

但是这样是不好的一种方法。
第一,就如前面提到的,Wav2Lip在测试阶段不会改变人物的姿势。如果输入的reference frames与要嘴唇同步的current frames是不一致的话,Wav2Lip做不到改变姿势。这样就不能很好地评价模型的效果;
第二,对于不同的模型,选择的reference frames是不同的,导致评价并不公平;
第三,由于reference frames选取是随机的,时间上的一致性已被破坏;
第四,现在的metrics没有专门针对lip-sync的。

为了解决这个问题,我们不随机选取reference frames,而是随机选取speech segments,这样嘴唇真实形状就不会泄露了。那为什么以前不这样做呢?因为它们evaluate的时候需要有speech segments对应的真实视频,但这是unavailable的。

论文使用了三个metrics来评判lip-sync:

  1. 第一个是SyncNet里提出的,用来衡量生成的frames和随机选取的speech segment之间的lip-sync error。注意,这里评判并不需要对应speech segment真实的视频。
  2. 论文提出的新的metric:LSE-D(Lip Sync Error-Distance)。计算了lip和audio的representations之间的平均距离。
  3. 论文提出的新的metric:LSE-C(Lip Sync Error-Confidence)。计算了平均的 lip-sync confidence score。



总结

论文提出了能够对任意视频、演讲者、语言进行嘴唇同步的方法,且提出了新的lip-sync evaluation framework。

你可能感兴趣的:(talking,face,深度学习论文阅读,论文阅读,深度学习,计算机视觉)