如何利用一张人脸图像生成一段有趣的视频呢?

这里并不是指简单地将个人头像粘贴到GIF中。
人脸视频的生成通常依赖于人脸图像的稀疏特征点(landmarks),结合生成对抗网络(GAN)来实现。
然而,使用稀疏人脸特征点生成的人脸图像视频常常面临许多挑战。
例如,图像质量下降、失真、身份变化以及表情不匹配等问题。
为了解决这些难题,本文作者提出了利用重建的三维人脸动态信息来指导人脸视频的生成。

相关论文链接:https://ieeexploRe.ieee.oRg/abstRact/docuMent/9439899
arXiv版本链接:https://aRxiv.oRg/pdf/2105.14678.pdf
三维人脸动态能够更细致地表达面部表情和动作,成为生成高度逼真视频的重要先验知识。
在文中,作者设计了一种三维动态预测与人脸视频生成模型(FACEAniMe),旨在从单张人脸图像中预测3D动态序列。
通过稀疏纹理映射算法,进一步渲染出3D动态序列的皮肤细节,最后利用条件生成对抗网络来引导人脸视频的生成。
实验结果表明,FACEAniMe可以从单张静态人脸图像生成高保真度且身份保持不变的人脸视频,其效果优于其他方法。
背景与贡献
目前的人脸视频生成方法普遍依赖稀疏特征点引导图像或视频生成。
然而,作者指出,使用这种稀疏的二维特征点存在明显不足:
稀疏特征点无法充分表示人脸图像的几何形状,可能导致整体形状和细节缺失,从而造成合成图像失真和质量下降;稀疏特征点不包含源人脸图像的信息,这可能导致生成图像的过拟合现象;在视频生成中,需保留人脸身份信息,但稀疏特征点缺乏这一信息,易造成身份变化。
因此,本文在以下几个方面做出了贡献:
与广泛使用的2D稀疏人脸特征点不同,本文探索了包含丰富信息的3D动态数据进行人脸视频生成;设计了一个三维动态预测网络(3D Dynamic Prediction,3DDP)来预测时空连续的3D动态序列;提出了一种稀疏纹理映射算法,以渲染预测的3D动态序列,并作为先验信息指导人脸图像/视频生成;本文采用随机和可控的方式进行视频生成任务,验证了所提方法的有效性。
方法描述
本文提出的FACEAniMe由一个3D动态预测网络(3D Dynamic Prediction, 3DDP)和一个先验引导的人脸生成网络(Prior-guided Face Generation, PGFG)组成。
首先,基于三维形变模型(3D Morphable Model, 3DMM)对单张人脸图像进行3D重建,随后3DDP网络预测该图像未来的3D动态序列,最后通过稀疏纹理映射进行渲染,并利用PGFG网络完成相应的人脸生成。

FACEAniMe整体框架图,3DDP网络部分

FACEAniMe整体框架图,PGFG网络部分
3D人脸重建与稀疏纹理映射
3D形变模型(3D Morphable Model, 3DMM)用于从2D人脸图像中预测相应的3D人脸。
描述3D人脸的顶点(vertex)可以通过一系列2D人脸的正交基线性加权获得:

其中,S bar为平均脸,As是形状主成分基,as是相应的形状系数,Aexp是表情主成分基,aexp是表情系数。
反过来,3D人脸顶点也可以映射到二维图像平面,其对应公式为:

其中,V表示3D顶点在二维平面上的映射坐标,&Prod;是固定的正交映射矩阵,PR是对应的旋转矩阵,t为偏移向量。
通过最小化映射landmarks与检测到的landmarks之间的l2距离,可以得到3DMM中的系数。
给定源人脸图像(Source FACE),其3D形状可以通过调整重建的3DMM系数进行修改,目标人脸的稀疏纹理则可以由修改后的3DMM系数获得。
在重定向任务中,修改的3DMM系数可以通过参考视频帧获得,而在预测任务中,则通过LSTM模块进行预测。
为防止在纹理映射中,密集的纹理先验信息过强而影响目标动作的表现,本文采用间隔采样的稀疏纹理映射方法,以适应不同的人脸运动变化。

给定不同3DMM系数得到的不同三维人脸重建和稀疏映射结果
不同于以往针对单一任务的视频生成,本文提出了三种不同的生成任务,包括人脸视频重定向(Face Video Retargeting)、视频预测(Video Prediction)和目标驱动的视频预测(Target-driven Video Prediction)。
对于Retargeting任务,作者使用参考视频提供序列变化信息,而不依赖3DDP进行预测。
视频预测:
对于一个观察到的动态序列(3DMM coefficients),LSTM进行编码:

为了合理预测动作,LSTM需学习大量动作输入,以识别姿态序列中的运动类型及其时间变化。
在训练过程中,未来的动态序列可以通过以下公式生成:

其中,dt hat表示预测得到的3DMM系数,表示在时刻t的3D动态。
基于上述公式,模型可以从初始动态d0学习生成合理的未来序列。
目标驱动的视频预测:
为了实现目标引导的运动生成,LSTM需要两个输入,即source dynamic和target dynamic。
与视频预测不同,作者使用计时器对target dynamic进行重新赋权。
整体的LSTM预测可以通过以下公式表示:

这里dT表示target dynamic,T为预测长度,t=0表示序列开始时间,t=T为序列结束时间。
损失函数:
给定source人脸图像,作者使用2DAL模型回归出相应的3DMM系数,以表示初始的3D动态d0。接着,模型通过观察d0生成系数序列d1:T hat。
在训练过程中,作者使用3DMM coefficient loss和3D vertex loss两个损失函数进行监督学习。
3DMM coefficient loss定义为预测3DMM系数与真实3DMM系数之间的欧几里得距离:

而3D vertex loss定义为:

其中,v1+t hat和v1+t分别为预测的系数和标准系数对应的人脸三维顶点信息。总体损失函数可以表示为:

先验引导的人脸生成:基于提出的稀疏纹理映射,source人脸图像被用来渲染预测的3D动态。在此,稀疏纹理作为引导人脸生成的先验信息。
文中提到的PGFG网络(Prior-guided Face Generation Network)主要由条件GAN网络组成。
PGFG网络结构:
PGFG生成器G有三个输入,分别为source人脸图像Is、Is对应的纹理先验ps和目标纹理先验pt。
在此,作者并未直接使用目标的纹理先验pt作为引导,而是通过先验残差引导人脸生成,从特征空间中获得运动残差:E(pt)-E(ps)。最终生成的人脸为:

为了进一步利用不同空间位置的特征信息,编码器和解码器均采用Dense blocks结构。
判别器有两个输入,即目标人脸纹理先验和生成人脸、目标人脸结合的输入[pt, IT hat],[pt, IT]。
