问题定义
这篇文章着重的是解耦, 通过唇读这个点可以知道视频帧本身有语义信息, 不同的人也肯定有身份信息, 把视频帧的语义和身份信息解耦然后和声音的语义信息拼接, 理论上就可以得到不同的说话人脸视频.
- 下图中给定身份图片解耦出身份信息, 可以和解耦的声音的语义信息结合生成视频, 也可以和其他的视频提取出的语义信息结合生成视频, 所以在这里的应用是使用音频或者视频驱动图片, 这是最后能达到的效果.
数据集
-
LRW with 1-of-500 diverse word labels( 这个是有标签的)
-
For each class, there are more than 800 training samples and 50 validation/test samples
Each sample is a one-second video with the target word spoken -
MS-Celeb-1M dataset 这个是同一类人然后有不同的照片的数据集, 这里用来训练identity-preserving module, 应该是用在那个person id的判断上
-
音频是mdcc, 采样率100hz, 应该是取了0.2s, 也就是20个, 输入是12*20
贡献
- 通过联合几个监督信息, 可以得到audio-visual 的联合表征
- 可以解耦出语义信息和身份信息
- 通过利用唇读工作和音画同步工作, 实现了可以从音频或者视频输入驱动图片的方法
想法
- 这里并没有语音的身份解耦, 应用的时候没法保证是否正好解耦出语义信息
- 但是视频和音频是共用的所以问题不是很大
方法
总览
解耦部分
-
作者提出的模型叫 Disentangled Audio-Visual System (DAVS), 整个网络可以分成两部分, 一个是 解耦, 一个是最后的生成, 作者的重点在解耦阶段.
-
下图是总的结构图 , 先注意左边的解耦的部分, 输入是音频与视频, 音频是mfcc, 类似12*20这种维度表示. 解耦时有三个编码器, 对视频有两个编码, 分别对应语义和身份, 音频有一个, 就是语义.
-
对于视频的语义编码, 想要其只有语义信息, 给定配对的音频帧与视频帧, 它们可以映射到一个公共的空间, 然后通过同一个分类器Cw, 分类器对应的是单词标签, 类似LRW是词构成的数据集, 可以构建一个大的分类器
-
对于音频的语义编码, 这个部分编码器的权重和视频的语义提取是一致的, 所以可以认为能提取出同样的语义信息而没有身份信息, 因为上面已经对身份信息完成约束了
-
对于视频的身份编码, 这个是通过一个分类的对抗网络得到的.
-
总结: 整个架构的流程就是首先从公共表达中分出身份信息和语义信息, 然后可以组合两部分的信息得到新的视频.
-
对于提取语义信息的部分, 使用了三个监督信息:
- 音频和视频的语义信息通过一个权重共享的分类器 C w C_w Cw
- 对比损失 L c L_c Lc 让配对的视频和音频更接近
- 分类的对抗训练使得视频的语义和身份信息分的更开
- 对于身份信息, 有两个监督信息:
- 一个是一个身份分类器 C p C_p Cp
- 一个是分类的对抗训练
生成部分
对于生成使用了两个损失, 一个是 L1损失, 一个是temporal GAN loss L G A N L_{GAN} LGAN
- 首先想要从语音和视频帧这两种模态中提取出同样的语义信息, 它们必须有一个shared的空间,
具体介绍
音视频联合表达
这个部分是想要音频和视频提取的语义信息接近, 实现如下图:
左边的 L w L_w Lw 是一个权重共享的分类器, 同时用对比损失约束提取出的特征(这里的负类应该要自己构建, 也就是音视频不配对的数据对, sync那个同步判别器提到过 输入的语义特征首先需要normalized), 右边是个Domain 分类器, 想要区分出两种语义信息的来源, 然后两个语义encoder尽量不让它分辨出来源.
潜在空间的解耦对抗
从身份信息种择干净语义信息
- 这个部分是从联合表达空间解耦出语义信息和身份信息.
- 首先是让身份信息把语义信息摘干净. 这个地方是构建了一个分类器, 让视频身份信息作为输入, 然后看看能不能分类出语义信息, 也就是分类出对应的单词. 分类器是 C p w C_p^w Cpw , 输入是 F p v F_p^v Fpv , 输出是 N w N_w Nw 单词类别, 这个部分的分类公式如下:
这里的训练方式挺重要, 首先固定编码器权重, 然后训练分类器, 分类器然后固定去训练编码器, 最后的目标是让分类出每种单词的可能性相同
这里的问题是上面的分类损失不够好, 因为始终会有梯度存在, 所以这里改进了一下, 变成下面的公式:
- 因为分类共有 N w N_w Nw 种所以最后的概率是它的倒数就完美了
从语义信息中择干净身份信息
使用的还是类似的函数类似的对抗训练方法
训练过程如下图:
对话人脸视频生成
- 这里主要用了两个两个损失, 一个是L1, 一个是temporal GAN loss, 其中 f p ( k ) v f_{p(k)}^v fp(k)v 是随意第k帧的身份信息, 然后
其中语义信息可以是来自视频的, 也可以是来自音频的, 正好对应开头的任务定义.
后面是一些实验部分
作者给定test audio , 试图在所有test samples中去查找最近的视频帧, , 反过来也可以查找audio帧, R@5,即计算前5个预测结果里面正确结果出现的次数,Median rank(Med r),表示第一次正确检测到关系时的平均排序, 下面是结果
- 下面还表示了两个任务的准确率, Containing the task of visual recognition (lip reading) and audio recognition (speech recognition)