论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

转载请注明本文出处,谢谢。

论文链接:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation 

代码:GitHub

视频:Video

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

这是一篇AAAI 2019的文章。文章的题目是通过对抗分解语音和视频的表征来生成说话的人脸。

1. Introduction

一个人脸正在说话的这样一段视频。如果说这个视频是没有声音的,只有视频帧。那么这样一个没有声音的视频可以被分解为两部分,一部分是人物身份信息,还有一部分是语音信息。这里的语音信息指的主要是人物嘴部的动作传递给我们的这个人物所说的语音信息,而不是我们通常认为的听得到的语音信息。这是文章的主要贡献之一,就是能够从视频中把人物身份信息和语音信息完全分解开。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

把刚才那个图缩小放在这。我们从视频中分解出人物信息和声音信息。然后丢掉分解出来的人物信息,只保留声音信息。当有一个新的人物出现的时候,我们可以把新的人物和之前从视频中提取的语音信息结合,生成新的人物说话的视频。除此之外,还可以直接输入音频,这个音频就是我们通常认为的听得到的语音信息。新的人物和这段语音结合也可以生成这个人说话的视频。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

那么也就是说这篇文章做到了既可以输入视频,提取其中的语音信息,然后结合任意人物形象输出新的视频;也可以直接输入音频,结合任意人物形象输出新的视频。这是文章的第二个创新点。如果想要做到这一点,那么这两个不同种类的语音信息必须在相同的特征空间里,具有相同的特征分布。那么这就是文章的第三大贡献,把视频-音频中的语音信息联合表征,让他们处于同一个特征空间。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

2. Overview

这是后面的主要内容。首先是大概看一下网络结构。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

这是整篇文章的网络结构图。看起来乱糟糟的。他其实可以分为这样几个部分。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

这两个分别是输入的视频和输入的语音。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

左半边是对输入的视频和音频的特征提取。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

其中包括三部分。第一部分是从输入视频中提取人物身份信息,也就是从视频中分离出人物身份特征。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

第二部分是从输入视频中提取语音信息,也就是从视频中分离出语音特征。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

第三部分是从输入音频中提取语音信息。这个语音信息和上一页的视频中提取出来的语音信息都可以作为后续生成的语音输入。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

右半边是使用GAN的视频生成部分。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

其中包括分别可以结合视频或者音频中的语音信号和新的人物身份特征生成视频。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

以及一个输入整个生成序列的判别器。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

3. Learning Joint Audio-Visual Representation

下面一部分是怎样使两个不同种类的语音信息具有相同的特征分布 。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

我们首先看一下第一个创新点。从视频提取的语音信号和从音频提取的语音信号怎样能学习到联合的共享特征空间的表征。现在高亮的部分的左侧两个E分别是两种语音信号的特征提取器。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

上面是提取音频中的语音编码器EAW,输入的是非常短的语音片段。比如说对于一段一秒的视频,它会滑窗截取非常多语音帧,依次对他们提特征,再concat起来。下面是提取视频中的语音编码器EVW,输入的是连续视频帧。对每一帧图像提特征,再concat起来。为了迫使这两个编码器提取的特征处于同一个特征空间,作者一共提出了三种限制。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

第一个限制是让他们两个提取出来的特征共享同一个分类器,强迫他们共享分布空间。作者用的数据集是单词级别的视频,一个视频只有一秒钟,数据集里的视频按照不同单词分类。所以这里也可以视为一个视频分类的任务,迫使语音编码器和视频编码器提取出来的特征使用同一个分类器进行分类。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

第二个限制是对比损失。比如说一个batch有多个样本,只有第m个和第n个样本具有相同的标签,定义样本间的欧氏距离,然后计算下面这个损失函数。在这里的话也是希望音频特征和视频特征的欧氏距离越来越近。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

第三个是音频和视频这两个不同域之间的一个对抗训练。简单来说就是额外增加两个分类器,这两个分类器的目的是区分特征是从哪个编码器提取的。然后固定额外增加的分类器,再训练编码器,阻止分类器能成功分类,就达到目的了。下一页讲如何从视频中分解出语音信息和人物信息的时候也用到了这种对抗训练。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

4. Adversarial Training for Latent Space Disentangling

下面一部分讲的是使用对抗训练来分解视频中的人物和语音特征。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

在分解视频中的人物和语音特征的时候,输入一个视频,分别有提取人物特征和提取语音特征的两个编码器对他提特征。我们希望人物特征中不包含语音信息,语音特征中不包含人物信息。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

比如说现在要训练人物特征提取器,那么我们先固定提取人物特征的编码器Evp,额外训练一个分类器Cwp,这个分类器做的是把人物特征分类到单词的类别,榨取人物特征中的语音特征。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

然后,固定这个分类器,再去训练这个提取人物特征的编码器,这个时候让每一个单词的类别都是1/N,都是一样的。迫使编码器提取出来的特征不能进行单词的分类,从而达到从人物特征中分离其中的语音信息。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

5. Inference: Arbitrary-Subject Talking Face Generation

最后一部分是怎么做人脸生成。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

之前我们做的都是为了提取更具有代表性的特征。那么在最后的生成过程中涉及到了两个损失,一个是输入和输出的L1损失,还有一个是判别器的损失,这个D的输入是生成的整个序列,判断整个序列是否真实。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

6. Results of Arbitrary-Subject Talking Face Generation

最后是结果。首先是PSNRSSIM,这两个都是用来评价图像质量的,右边这两个加入了GAN损失的PSNRSSIM都比只用L1要高一点。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

这组实验是为了证明视音频联合特征的确是处于同一个特征空间。这部分是对视频音频提取的特征做单词分类的准确率。这部分是视音频特征互相做检索的召回率。(我们采用[email protected],即计算前5个预测结果里面正确结果出现的次数,同时我们采用Median rankMed r),这个指标表示第一次正确检测到关系时的平均排序。)▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

这组实验是为了证明可以有效地从视频中分解出语音和人物。分别使用音频驱动的和视频驱动的生成出来的视频对数据集里面的原始视频做检索。可以看到使用了分解的编码器提取的特征可以取得更好的检索结果。除此之外,还加了一个方法,把身份图像复制,去做检索,以证明检索结果并不依赖人物的外观。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

这组实验是用户对视频真实度的调研。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

附上定性可视化结果以及对比效果。▼▼▼

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation

 

论文阅读:Talking Face Generation by Adversarially Disentangled Audio-Visual Representation