论文随记|Flow-guided One-shot Talking Face Generation with a High-resolution Audio-visual Dataset 基于高分辨率视听数据集的流引导单镜头说话人脸生成
任务类型:音频驱动图像
本文发表在CVPR2021
引文
贡献:
- 建立了一个大型的视听数据集,视频分辨率比以前的野外数据集更高,主题/句子比实验室数据集更多;
- 提出了一种新的特定风格的动画生成器,以产生依赖于参考身份的特定风格动画参数;
- 第一个利用具有多任务学习功能的动画生成器,在one-shot talking-head生成中同时生成嘴部、眉毛和头部姿势的动画参数;
- 提出了一个新的流引导(flow-guided)的框架,生成了比基于landmark方法质量更高的视频。
HDTF数据集
建立了一个大型的高分辨率音频视频数据集,命名为高清晰度说话人脸数据集(HDTF),用于talking-face的生成。HDTF数据集由大约362个不同的视频组成,时长为15.8小时。在本文工作中,基于Landmark将其裁剪为512*512。
然后,使用3DMM[1]将裁剪后的人脸解耦为人脸形状参数和人脸动画参数(嘴、眉毛和头部姿态)。3DMM是一个双线性变形模型。经修饰的序列表示为:
其中M(cs,ce)表示3D面部网格点。M0是平均面部网格。{Vs i }60 i=1和{Ve j }33 j=1是面部形状和面部表情的线性基础。CS和CE表示基的系数。{Ve j }33 j=1,基于嘴部的28个,基于眉部的5个。
使用正交缩放投影重建3D面部后,在每段视频中提取人脸形状参数:嘴部、眉部、头部姿势。
方法
基于本文提出的HDTF数据集,提出了一个高质量的one-shot talking-face生成框架如图。该框架由一个音频转动画模块和一个动画转视频模块组成。
Audio-to-animation
特定风格的音频到动画生成器 G a n i G^{ani} Gani
G
a
n
i
G^{ani}
Gani的结构如图所示。
目标: 将参考图像
I
r
e
f
I^{ref }
Iref和驱动音频
f
a
u
d
i
o
f^{audio}
faudio 转换为与参考面部对应的特定风格的动画参数。
参数: 嘴部、眉毛、头部姿势三个部分。
步骤一(紫色部分): 采用基于CNN的音频特征提取器提取音频特征
f
^
a
u
d
i
o
\hat f^{audio}
f^audio,然后,采用AdaIN操作将
f
^
a
u
d
i
o
\hat f^{audio}
f^audio转换为
f
^
r
e
f
a
u
d
i
o
\hat f^{audio}_{ref}
f^refaudio。具体地,使用预训练的VGG从参考图像
I
r
e
f
I^{ref}
Iref中提取身份嵌入并输入全连接层以生成AdaIN的尺度和平移参数。
步骤二(橙色部分): 通过三个解码器分支,根据
f
^
r
e
f
a
u
d
i
o
\hat f^{audio}_{ref}
f^refaudio同时生成嘴部、眉毛、头部姿势参数。Mouth分支直接将其解码得到所需参数;在眉毛和头部姿势分支中,首先采用长时间时间解码器来捕获长时间依赖性,长时间解码器基于编码器-解码器网络,具有更快的转发速度,然后再次使用CNN进行解码。
损失函数
嘴部参数损失:
使用L1损失和LSGAN损失来评估,如上方公式。
眉毛和头部姿势损失:
这两个部分具有相同形式的损失,SSIM和LSGAN。SSIM是结构相似性感知,模拟人类视觉感知,具有提取结构信息的优点。其中 µi/ ˆμi 和 σi/ ˆσi 是 pebro/ˆpebro 第 i 维的平均值和标准差。 covi 是协方差。 δ1和δ2是两个小常数。
此模块的损失函数如上。所有的GAN结构都是conditional GAN, D m o u / e b r o / h e d D^{mou/ebro/hed} Dmou/ebro/hed 将 ${f^{audio}, \hat p^{mou/ebro/hed}} $作为输入。
Animation-to-video
在动画转视频模块中,首先通过3DMM将动画参数转换为近似密集运动流 F a p p F^{app} Fapp。然而,受限于3DMM的能力, F a p p F^{app} Fapp不够准确。为了解决上述问题,提出了流引导视频生成器 G v i d G^{vid} Gvid。 G v i d G^{vid} Gvid可以修改 F a p p F^{app} Fapp并合成高视觉质量的视频。
近似密集运动流 F a p p F^{app} Fapp:
F
a
p
p
F^{app}
Fapp描述了两帧之间每个像素的大致运动方向。图 5 (a) 以伪彩色显示
F
a
p
p
F^{app}
Fapp。在
F
a
p
p
F^{app}
Fapp的生成中,给定一对面部动画参数,3DMM能够在内面部生成精确的密集运动流(图5(b)中的绿色部分)。然而,3DMM 无法描述面部区域之外的运动(图 5 (b) 中的蓝色和橙色部分)。为解决这个问题,我们估计面部区域的近似运动流。
如图5(b)所示,将面部图像裁剪为三个部分:内面部部分(绿色)、上躯干部分(橙色)和头部相关部分(蓝色)。
- 内面部部分的密集运动流是根据 3DMM 计算的。
- 假设上躯干随着头部运动,因此取内面部的平均运动作为上躯干部分的运动值。
- 与头部相关的部分,我们关注头发、耳朵和其他装饰品,并假设它们严格地遵循最近的面部边缘移动。头部相关部分的每个像素的流向与其最近的面部边缘像素相同。
结合三部分的流程,我们得到了最终的 F a p p F^{app} Fapp。但是 F a p p F^{app} Fapp的构建中忽略了背景,背景的流量值是不正确的。此错误将在 G v i d G^{vid} Gvid 中修正。
流引导视频生成器 G v i d G^{vid} Gvid:
G
v
i
d
G^{vid}
Gvid的结构如图6所示。
G
v
i
d
G^{vid}
Gvid的目的:修改
F
a
p
p
F^{app}
Fapp,进一步合成高分辨率的说话人脸视频。
G
v
i
d
G^{vid}
Gvid在网络内部包含两个步骤:第一步(图6中的紫色部分):网络修正
F
a
p
p
F^{app}
Fapp,并产生精确的密集运动流F、中间抠图图像g和抠图掩模Mm。第二步(图6中的橙色部分):使用F、g和Mm来合成高质量视频。
第一步(图6中的紫色部分):为了修正 F a p p F^{app} Fapp背景中的错误流,本文假设背景是静态的。基于此假设,生成前景mask将 F a p p F^{app} Fapp变换为密集流 F F F,变换过程可用如下公式表示, M f M^{f} Mf在0-1之间:
M f M^{f} Mf将背景修改为静态。为了生成 M f M^{f} Mf,首先使用 F a p p F^{app} Fapp 扭曲参考图像 I r e f I^{ref} Iref 以获得扭曲图像 I w a r p r e f I^{ref}_{warp} Iwarpref 。然后, I r e f I^{ref} Iref、 F a p p F^{app} Fapp 和 I w a r p r e f I^{ref}_{warp} Iwarpref连接成一个 Hourglass 网络以生成 M f M^{f} Mf。此外,Hourglass网络还输出g和 M m M^{m} Mm用于第二步。
第二步(图6橙色部分):通过结合 I r e f I^{ref} Iref和g(抠图图像)的扭曲版本来合成图像。该组合通过消光mask M m M^{m} Mm 进行平衡。为了减少网络的参数,上述组合在特征图空间中完成,并写为如下公式。 f r e f f^{ref} fref 表示基于 CNN 的编码器对 I r e f I^{ref} Iref 进行编码的特征图。 F ( . ) F(.) F(.) 是与F 的扭曲操作。 f ^ r e f \hat f^{ref} f^ref 是组合结果。最后, f ^ r e f \hat f^{ref} f^ref被输入到基于CNN的解码器中以合成面部图像。
损失函数:
在训练阶段,
G
v
i
d
G^{vid}
Gvid采用了LSGAN损失和特征匹配损失。
GAN损失如下:
感知损失如下:
其中Ni代表了VGG-19中的i层中Wi * Hi * Ci。
特征匹配损失如下公式:
其中Dvidj (.)是 D v i d D^{vid} Dvid第j层。
最终损失如下:
实验与结果
生成结果
图 7 显示了由相同音频驱动的一些高分辨率合成帧。进一步在图8中绘制了三个不同身份的动画参数曲线。图8(a)绘制了控制嘴巴张开的嘴巴参数序列。虽然口腔参数存在轻微的时间偏移和轻微的尺度变化,但不同受试者的序列趋势仍然相似。这意味着嘴型主要取决于讲话内容。
可视化了动画转视频模块的中间结果如图。
与sota方法对比
与sota的方法进行定量和定性比较,在HDTF数据集上对比的结果如下,可以观察到,本文的方法具有很强的竞争力。此外,还可以在嘴唇同步情况较好的情况下,生成分辨率较高的视频。
子模块评估
验证音频到动画模块,与最先进方法进行比较,评估 p m o u p^{mou} pmou,使用了嘴唇Landmark的MSE、SSIM和CCA作为评价指标。
验证动画到视频模块在高分辨率one-shot谈话视频生成方面的优越性。在 HDTF 数据集上重现了之前基于Landmark的作品,并与它们进行定量和定性比较。 PSNR、SSIM 和 CPBD被用作衡量视觉质量的指标。本文的方法也获得了最好的结果。
消融实验
在第一个子模块:(1)删除从 f ^ a u d i o \hat f^{audio} f^audio到 f ^ r e f a u d i o \hat f^{audio}_{ref} f^refaudio的转换;(2)单独合成动画参数(无多任务训练)。上方表3中展示了实验结果,证明了这两者都有利于动画生成,
在第二子模块:(1)去除 F a p p F^{app} Fapp并使用一个网络(无 F a p p F^{app} Fapp)从内表面的密集流中生成F,该条件放弃了运动从面部流出的假设;(2)去除抠图操作。如表4所示,证明了两种条件的有效性。如果没有 F a p p F^{app} Fapp,网络可能会在面部区域之外生成不准确的密集运动流,从而导致模糊的结果。没有抠图操作,如图11(f)所示,面部区域丢失了一些纹理细节。这表明抠图操作能够细化前景
结论
本文构建了一个大型的高分辨率数据集,命名为HDTF。提出了一个新的流引导的框架,由一个动画生成器和一个流引导的视频生成器构成。优于sota方法。