论文解决的问题:大多数现有的3D人脸生成方法只能生成静态头部姿势的3D面部,只有少数几篇文章关注头部姿势的生成,但这些文章也忽略了个体属性。
解决方法:框架由两个独立模块组成:PoseGAN和PGFace。给定输入音频,PoseGAN首先为3D头部生成一个头部姿势序列,然后PGFace利用音频和姿势信息生成自然的面部模型。通过结合这两个部分,可以构建一个具有动态头部运动的3D说话头部。

Gpose表示3D头部姿势序列的生成器,Dpose是鉴别器。人脸形状参数由PGFace生成。
在生成阶段,首先使用深度语音对输入音频进行编码,然后将提取的特征馈送到两个之前提出的模块中:头部姿势生成对抗网络(PoseGAN)模块和姿势引导面部(PGFace)生成模块。如上图所示,PoseGAN模块用于提取具有旋转和平移参数的跨模态头部姿势序列。PGFace模块使用头部姿势参数来生成与音频相对应的面部形状参数。通过结合音频、头部姿势序列和面部形状参数,可以合成具有动态姿势的最终3D说话脸。
数据集:如果简单地应用OpenFace在原始视频中检测到的头部姿势序列,可能会在一些高频区域引起不稳定的效果,使头部运动看起来不令人满意。因此,我们提出了一种高斯滤波方法,通过在时间维度上对头部姿势参数进行滤波,以产生令人满意的结果。

蓝色曲线表示原始音高参数。橙色曲线表示平滑的音高参数。
Head Pose Sequence Generation Network:

在U-net 之前设计了一个增强型CNN编码器,用于构建生成器G,并将初始头部姿势p嵌入输入层和U-net输出层,以约束生成的头部姿势序列的初始位置和方向。在训练阶段,采用第一帧的姿势作为头部姿势序列中的初始姿势p。在推理阶段,采用相同身份的其余姿势作为 p 来生成第一个头部姿势序列。对于后续的头部姿势序列生成,采用前一个序列的最后姿势作为初始姿势p。CNN结构被应用于区分真实和虚假的头部姿势序列,这里采用生成的头部姿势序列 G(x, p) 结合音频 x 作为输入。
4.2 姿势引导人脸生成网络
我们提出了一种姿势引导的人脸形状生成方法(PGFace),该方法包括头部姿势参数作为输入,用于估计人脸形状的变化以弥补差异。我们将音频特征 x∈R_29*16 和头部姿势参数 p∈R_6 拼接在一起,作为每帧的输入送入网络。网络的输出是相应的面部形状参数aid,aexp。