随着视听内容消费的指数级增长,快速的视频内容创作已经成为一种典型的需求。与此同时,将这些视频翻译成不同的语言也是一个关键的挑战。
有两种方式可以实现视频内容的翻译:
(1) 使用某个人几个小时的说话素材,根据演讲内容直接生成图像。
(2) 精准改变口型
方法
造成口型不同步的关键原因在于L1 重建的损失函数和LipGAN中的鉴别器的损失函数不足以惩罚不准确的口型生成。决定使用与训练的专家对口型鉴别器来准确检测实时视频中的同步,SyncNet就是被用来纠正创建大型口型同步数据集错误的模型。
SyncNet概述
SyncNet中输入的是时间窗口$V$中连续的一系列脸部下方图像$T_v$,和语音片段S,其中为一系列的$T_a \times D$的音频。
- 通过随机采样音频窗口来区分音频和视频之间的同步,该窗口要么与视频对齐,要么来自不同的时间步。
- 包含一个人脸编码器和一个音频编码器,两者都由2d卷积堆栈组成,从这些编码器生成的嵌入之间计算L2距离,并使用最大边际损失(Hinge Loss)来训练模型,以最小化或者最大化同步或不同步之间的距离。
口型纠错器
基于改进过的SyncNet实现口型纠错,变更如下:
输入模型的不是灰度图像,而是彩色图像;
使用残差连接加深模型深度;
使用具有二元交叉熵损失的余弦相似度;
计算relu激活的视频和语音嵌入v, s之间的点积,为每个样本产生一个在[0,1]之间的单个值,表示输入音频-视频对同步的概率:
$$
P_{sync} = \frac{v\cdot s}{max(|v|_2\cdot|s|_2,\epsilon)}
$$使用Adam优化器,初始学习率1e-3,$T_v=5帧$,在LRS2数据集上训练(大约29小时),batch为64。
嘴唇同步纠错专家指导同步口型生成
生成器架构
结构和LipGAN类似,包括三个模块:
- Identity Encoder : 编码一个随机参考帧$R$,沿着通道的axis拼接一个pose-prior $P$(目标脸,下半部分被遮蔽)
- Speech Encoder :2维卷积的堆叠,用于编码语音段S,将其与面部表示连接
- Face Decoder :同样是卷积层的堆叠,用于上采样的转置卷积
生成器的训练目标是最小化生成的frames$L_g$和ground-truth$L_G$之间的L1重建损失:
$$
L_{recon} = \frac{1}{N}\sum^N_{i=1}|L_g-L_G|_1
$$
训练阶段,口型纠错器一次处理$T_v=5$个连续帧,所以生成器$G$来生成所有的$T_v=5$帧,对参考帧的随机连续窗口进行采样,确保帧数与训练时保持一致。
由于生成器独立处理每一帧,我们在提供参考帧的同时,沿着批次唯独叠加时间步,得到$(N\cdot T_v,H,W,3)$形状的数据,N、H、W代表Batch size、高和宽。在将生成的帧馈送给专家鉴别器的同时,时间步长沿着信道维度进行串联,这也是鉴别器训练过程中所做的。专家鉴别器的最终输入形状为$(N,\frac{H}{2},W,3\cdot T_v)$,仅使用生成的人脸的下半部分进行鉴别。生成器还经过训练,以最小化来自专家鉴别器的“专家同步损失”$E_{sync}$。
$$
E_{sync} = \frac{1}{N}\sum^N_{i=1}-log(P^i_{sync})
$$
其中,$P^i_{sync}$由第一个公式计算得到,在生成器的训练过程中,专家鉴别器的权重保持不变。这种纯粹基于从真实视频中学习到的对口型概念的强烈辨别,迫使生成器也实现真实的对口型,以尽量减少对口型损失。
生成逼真的人脸
在我们的实验中,我们观察到使用一个强大的唇同步鉴别器迫使生成器产生准确的唇形。然而,它有时会导致变形区域稍微模糊或包含轻微的伪影。为了减轻这种轻微的质量损失,我们在GAN设置中与生成器一起训练了一个简单的视觉质量鉴别器。因此,我们有两个鉴别器,一个用于同步精度,另一个用于更好的视觉质量。由于3.2中解释的原因,在GAN设置中没有训练口型同步鉴别器。另一方面,由于视觉质量鉴别器不执行对口型的任何检查,只惩罚不真实的面部生成,因此它是在生成的面部上进行训练的。
鉴别器D由一堆卷积块组成。每个块由一个卷积层和一个Leaky ReLU激活组成[20]。训练鉴别器使目标函数$L_{disc}$最大化:
$$
L_{gen} = E_{x~L_g}[log(1-D(x)]
$$
$$
L_{disc} = E_{x~L_G}[log(D(x))] + L_{gen}
$$
对应生成器$G$的图像,$L_G$对应于真实图像。生成器的最终优化目标为:
$$
L_{total} = (1-s_w-s_g)\cdot L_{recon}+ s_w\cdot E_{sync} + s_g \cdot L_{gen}
$$
其中$s_w$是同步惩罚权重,$s_g$是对抗损失,在我们所有的实验中,依照经验设置为0.03和0.07。因此,我们的完整网络使用两个不相交的鉴别器进行了优化,以获得更高的同步精度和质量。
我们只在LRS2训练集上训练模型,批量大小为80。使用Adam优化器,初始学习率为1e−4,β1 = 0.5, β2 = 0.999,用于生成器和视觉质量鉴别器$D$。注意,口型同步鉴别器没有进一步微调,因此其权重被冻结。我们通过解释它在真实视频推理过程中的工作原理来总结我们提出的架构的描述。与LipGAN类似,该模型逐帧生成会说话的人脸视频。每个时间步的视觉输入是当前人脸裁剪(来自源帧),与相同的当前人脸裁剪(下半部分被遮罩用作姿态先验)连接在一起。因此,在推理过程中,模型不需要改变姿态,大大减少了伪影。将相应的音频片段作为输入输入到语音子网络中,该网络生成输入的人脸裁剪,但嘴巴区域发生了变形。
$$