费建伟,夏志华,余佩鹏,戴昀书
1.南京信息工程大学 计算机与软件学院,南京210044
2.暨南大学 网络空间安全学院,广州510632
人脸作为身份认证信息的特殊属性,是众多计算机领域的研究对象。除人脸检测、识别以及活性检测等方向外,人脸合成领域同样具有很高的活跃度,且伴随着近年来深度学习技术的突破性进展,这一类技术也经历着飞速的发展,在隐私保护、影视动画、娱乐商用等各个领域得到了广泛的应用。相较于人脸检测与识别,人脸合成是一个更加开放的领域。这一领域不仅涉及到如建模、形变与渲染等诸多图形学技术,还涉及到深度学习中关于图像生成的革新技术。不同的人脸合成方法虽然可能具有类似的框架与技术路线,但在具体细节以及实现方法上可能千差万别。因此,人脸合成领域的研究与探索也在为技术本身的发展开拓空间。另外,利用人脸合成技术制作的图像或视频是多媒体篡改取证领域的重点关注对象。推动人脸合成技术发展,对数字取证领域的进步也将产生积极的推动作用[1]。
在推动技术进步的同时,人脸合成领域的研究也带来了许多实际应用。例如,谷歌全景地图在拍摄到未经授权的人脸时,可以借助人脸合成技术自动地将其替换为授权人脸。这不仅避免了对个人隐私的侵犯,而且相比于人脸马赛克,具有更好的视觉效果[2]。在一些特殊的纪录片中,利用换脸技术也能够保护主人公的隐私[3]。如今,公共场合遍布着各类公共摄像头与监控设备,人们通过简单的授权就可以直接获取其捕获内容[4],由此带来的隐私侵犯问题也越来越值得关注。通过替换这些公开内容中的人脸,不仅能保留视频中人物的行为数据,还起到了保护个人隐私的作用。
在影视行业,逼真的人脸合成技术可以以较低的成本实现翻拍或补拍影视片段,或者配音等工作。例如电影《黑客帝国》中利用人脸面部动作合成技术创造了同一个演员不同表情的多个副本[5]。还有一些作品借助这类技术合成老年或年轻版本的演员,节省了化妆与道具成本。当影视作品中需要呈现高危险性的特技镜头时,通过这类技术合成高质量的面部图像,不仅能够保证演员的人身安全,还避免了使用昂贵的特效带来的额外成本。很多影视作品在全世界范围内流通,虽然可以利用不同语言对作品进行重新配音,但嘴型与声音的不统一仍然会降低作品的观赏质量,因此借助面部操作技术,依照本土配音的嘴型对影片中人物嘴型进行操控,也是一项非常有潜力的应用。
在商用领域,通过合成不存在的具有吸引力的人脸作为代言人或广告角色,也是当前人脸合成技术比较有潜力的应用方向,既可以避免高昂的代言与广告成本,也降低了侵犯肖像权的风险。人脸属性合成以及美化任务也是近年来比较火热的研究方法[6-7],因此一些基于人脸合成技术的换妆换脸手机应用同样存在巨大的潜在市场。一些娱乐软件提供了零门槛换脸或实时操控动画角色面部的功能,然而这类软件一旦被恶意使用,同样会带来严重的负面影响,包括隐私以及版权问题。
现有技术制作的细节丰富的高分辨率人脸图像已经具有比较理想的视觉效果[8-9]。各类新颖的应用逐渐开始走进人们的日常生活,但有些应用不仅对合成人脸的真实度与分辨率有要求,还要求合成人脸视频中的动作连贯平滑,或者对角度、动作以及环境光照变化具有高鲁棒性。虽然研究人员已经探索了各类方法来合成人脸视频,但这些方法大多基于图形学技术,需要大量的人工干预以及计算资源,而且过度依赖专业特效人员的预处理与后处理,导致人力成本巨大,价格高昂。与此同时,深度学习技术的飞速发展则为人脸合成领域带来了新的思路与解决方案。
本文对人脸图像与视频的合成技术进行了总结,讨论了该技术发展过程中各类方法间的联系与差异,为合成更加逼真的人脸指明了方向。人脸合成具有非常广泛的含义,本文将其归为图1 所示的四类,并在表1 中列举了近几年来国际顶级会议上人脸合成的相关工作。
(1)人脸身份合成(face identity synthesis)。人脸身份合成试图通过换脸的方式在保持背景不变的情况下更改图像或视频中人物的身份。早期技术虽然实现了身份修改,但也更改了原有面部动作。而近年来,一些技术不仅实现了身份的编辑,还保留了原有面部动作。
Fig.1 Four types of face synthesis图1 人脸合成的四种类型
(2)人脸动作合成(face movements synthesis)。人脸动作合成旨在改变人物原有的面部动作。目前,一些技术已经可以实现平滑地改变面部动作,而其中一类称为人脸重演(face reenactment)的技术,能够利用目标人脸的动作来操纵源人脸,使其做出相应的面部动作,一些工作甚至能够实现实时操纵,或者驱动动画角色的面部表情[10]。
(3)人脸属性合成(face attributes synthesis)。人脸属性合成是指对原始人脸的某些属性进行编辑,这里的人脸属性指具有明确语义的人脸面部特征,主要分为局部与全局特征,前者包含是否佩戴眼镜,是否留有胡须等,后者包含人的年龄、性别等。
(4)人脸生成(face generation)。人脸合成与人脸生成的不同处在于,前者试图对已有人脸进行修改,而后者生成现实中不存在的人脸,或者尝试根据素描、文本描述等给定条件生成对应的逼真人脸图像。对于人脸超分辨率以及人脸的艺术风格化等工作,本文同样将其列为人脸生成的范畴。
虽然技术本身是中立的,但人脸合成在近年来带来了相当多的争议,因此为了防止人脸合成技术带来的不良影响,美国参议院与众议院于2019 年提出了《2019 年深度伪造报告法案》[11],要求有关部门对这类技术可能带来的风险进行评估,并提前做出防御。类似的,中国网络空间管理局在2020 年也发布了相关法规,来遏制伪造人脸视频传播带来的负面影响[12]。这些法律以及规范的约束降低了人脸合成相关技术的负面影响,使其更多在生产生活中发挥积极作用。
Table 1 Studies on face synthesis at top conferences in recent years表1 近年来顶级会议上人脸合成相关工作
人脸合成领域虽然方法众多,但总体而言,基于三维人脸以及生成对抗网络技术的方法占据着重要地位,前者在人脸动作合成方面具有很大的技术优势,而后者在生成特定属性方面能够产生逼真的视觉效果。因此本章将对这两种技术进行简单阐述。
三维人脸技术属于图形学的范畴,在人脸合成领域中,尤其是人脸动作或身份的合成,主要借助三维人脸重建与三维人脸形变技术,通过建立人脸的三维模型并对其形变或改变身份参数,渲染出合成的人脸图像。三维人脸技术是人脸合成领域不可或缺的基石之一,因此本节将对其进行简要介绍,包括三维人脸重建与形变的技术原理。
1.1.1 三维人脸重建
三维人脸重建旨在建立人面部或头部的三维模型,是图形学领域的基本问题。在以往研究中,借助高分辨率扫描设备实现三维重建的方法虽然能够获取精细的三维人脸模型[13],但其代价昂贵,过程复杂。而基于多张图像的重建方法虽然不依赖额外设备,但需要多张不同视角的照片[14],且精度欠缺。因此人脸合成任务往往借助基于单张图像的三维人脸重建方法,这类方法依赖预先收集好的三维人脸数据集来建立人脸的参数化模型,因此不仅受到参数化模型的影响,还受到三维数据采集设备的影响。
Blanz 等人[15]在1999 年所提出的三维人脸形变模型(3D morphable model,3DMM)是最早用于解决根据二维人脸图像估计三维人脸问题的参数化模型。该算法对预先收集的三维人脸数据进行主成分分析,以获得表示人脸形状和纹理的主成分,并用形状和纹理主成分的线性组合来表示新人脸的模型。通过调整该线性组合的系数以及渲染参数,来优化渲染得到的人脸图像与原人脸图像的差异,即可从单张人脸图像重建其三维模型。为了增强三维模型的面部动作表现力,Cao 等人[16]构建了表情更加丰富的三维人脸数据集,并在3DMM 的基础上加入了表情分量。Paysan 等人[17]则借助更先进的设备,捕获更加细致的三维人脸数据集。数据集规模与多样性是影响三维人脸重建效果的重要因素,因此Booth 等人[18]构建了包含9 663 名不同角色的大规模人脸模型数据集,极大地提升了三维人脸模型的多样性与精度。重建三维人脸模型的一大难点在于求解模型参数,以及渲染模型过程中涉及的包括相机位置、角度、距离、环境光照以及反照率等参数,因此后续工作提出了各种参数计算方法[19-20]。
深度学习兴起后,许多工作转向利用深度神经网络从二维人脸图像中推断三维人脸模型[21]。Tran等人[22]利用卷积神经网络直接从人脸图像中推断3DMM 的形状和纹理系数。Chen 等人[23]提出了一种基于条件生成对抗网络的深度面部细节网络,成功从二维图像中直接合成细节更加丰富的三维人脸。Gecer 等人[24]将生成对抗网络与可微渲染器相结合,实现了高保真的人脸纹理重建。训练基于神经网络的三维人脸重建模型需要大量的数据,而带三维标注的人脸数据较为缺乏,因此许多工作期望以无监督或半监督的训练方式,例如Deng 等人[25]就仅借助面部关键点与面部皮肤掩膜实现了半监督的三维人脸重建。
1.1.2 三维人脸形变
对于人脸合成而言,三维人脸形变主要研究的是两个具有相同拓扑结构的人脸模型间的形状变化,这一技术不仅能够实现人脸表情间的迁移,甚至可以通过调整人脸形状来实现身份变换。为了达到这一目标,需要解决两个主要的技术挑战:(1)精确地跟踪源人脸面部的刚性和非刚性运动;(2)将提取的参数映射到目标人脸以实现表情迁移。以参数化三维人脸模型为例,通过追踪源人脸的面部动作变化并调节目标人脸的形状参数,即可实现目标人脸的表情控制[26]。早期三维形变算法要求两个模型间的稠密对齐,为了规避这一难题,大多数工作将面部表情变化嵌入到低维空间中,如Vlasic 等人[27]设计了基于三维人脸的多线性模型,将人脸的身份、表情与口型特征分别参数化与解耦,进而实现了人脸表情的定向形变。Thies 等人[28]则采用了Cao 等人的三维人脸参数模型,并计算源人脸的表情和目标人脸的表情参数的差值,进而通过修改目标人脸模型的参数实现表情迁移。
生成对抗网络(generative adversarial network,GAN)[29]自提出以来,就凭借能够生成多样的、逼真的图像的能力成为近年来的研究热点[30],被广泛应用于人脸图像处理的各类任务,是人脸合成技术至关重要的组成部分。人脸合成领域一直以输出可控制的、高分辨率的逼真人脸图像为目标,因此本节围绕这两方面介绍GAN 的相关技术。
1.2.1 生成图像内容控制
原始GAN 将噪声作为生成器的输入,无法控制生成图像的内容,因此Mirza 等人[31]提出了条件化生成对抗网络(conditional GAN,CGAN)。与原始GAN不同的是,CGAN 在对生成器输入噪声的同时输入一个标签作为辅助信息来约束生成图像的内容。Odena等人[32]在CGAN 的基础上提出了ACGAN(auxiliary classifier GAN),使判别器不仅可以判断图像的真实性,还能够对图像进行分类。Perarnau 等人[33]所提出的ICGAN(invertible conditional GAN)利用额外的编码网络提取图像的属性标签,并对其修改后再输入生成网络,实现了更加明确的语义修改。
虽然CGAN 能够生成特定类别的图像,但输入的噪声仍然不具语义上的可解释性。因此Chen等人[34]提出的InfoGAN(information maximizing GAN)将输入噪声分解为隐变量和输入噪声,通过最大化隐变量与生成器的输出的互信息,使输入噪声具有特定且连续的语义特征,如人脸的不同姿态以及手写字符的粗细等。
1.2.2 高分辨率图像生成
原始的DCGAN 只能生成64×64 分辨率的图像,一直以来,研究者试图设计能够生成更高分辨率图像的GAN 模型。Denton 等人[35]结合图像金字塔与CGAN,逐步提高生成图像的分辨率,将最终生成图像的分辨率提高至96×96。Karras 等人[36]提出了PGGAN(progressive growing GAN),使用步进训练方式,从低分辨率开始逐渐添加新的层来提升生成图像的分辨率,并最终生成分辨率高达1 024×1 024的逼真图像。在此基础上,Style GAN[37]将输入噪声利用多层全连接映射到潜空间,并利用自适应实例标准化控制生成器中每一层的激活值,实现了更加逼真且可控的高分辨率图像生成。值得注意的是,一些风格迁移任务中的GAN 虽然也能够生成高分辨图像[38-39],但其生成器的输入是已有图像,而以上几种GAN 则将随机噪声作为输入。
人脸身份合成,亦称人脸交换,旨在将目标图像中的人脸无缝逼真地替换源图像中的人脸,部分工作甚至可以在替换后保留源人脸的表情与动作,在这种情况下,人脸交换就不仅涉及身份信息,还需要算法同时处理面部属性。近几年来,由于DeepFakes的出现,该领域的研究得到了广泛的关注,成为了热点话题,带来了关于个人隐私与伦理问题的热烈争议。根据所使用的算法基础,人脸身份合成的研究主要可以分为三类:(1)基于三维人脸模型的方法;(2)基于图像编辑的方法;(3)基于深度学习的方法。而基于深度学习的方法又可分为基于自动编码器与基于生成对抗网络的方法。
基于三维人脸模型的方法本质上是利用图形学技术,对图像或者视频中源人脸的形状进行形变,以在外观上能够模拟目标人脸的身份,同时将源人脸贴图进行替换以保证肌肤的一致性。另外,图像中的全局光照特征也是影响人脸合成效果的重要因素,因此有必要估计源与目标图像的光照特征,并将源光照特征应用于生成人脸图像的渲染。三维人脸模型的优点在于,不同人脸具有相同的拓扑结构,简化了源人脸与目标人脸间的转化。而参数化三维人脸模型还能够严格明确地分离面部几何形状、皮肤纹理和场景参数。
利用三维人脸模型实现人脸身份修改的方法主要遵循以下几个步骤:(1)同时对源和目标视频中的人脸进行跟踪和对齐,得到包括眼睛、鼻子以及嘴巴等关键位置的人脸特征点;(2)从图像中估计人脸的三维形状与纹理,某些情况下还需估计人脸的姿态参数;(3)利用特征点,将源人脸模型形变匹配目标人脸模型;(4)估计源视频的环境光照参数;(5)利用估计的照明参数对换脸图像进行重新照明并渲染,某些情况还会使用图像融合方法来降低源人脸与目标人脸肌肤上的颜色差异。
目前可追溯的最早尝试人脸身份交换的工作来自于2003年一篇未发表的文章[40]。在该工作中,Malik利用三维模型手动地提取面部纹理,在进行光照调整后与原始图像粘合并对混合边界进行调整。虽然该方法无需大规模数据集,但需要手动进行三维模型的面部对齐,且最终的换脸图像逼真度较低。
Blanz 等人[41]同样借助了三维人脸模型,他们利用源人脸估计得到的渲染参数对目标人脸进行渲染,得到了与源人脸姿态表情相同的目标人脸。然后将目标人脸与源人脸的背景、头发以及面部区域进行融合得到最终的换脸图像。虽然该工作的视觉效果要远高于Malik 的方法,但仍然需要手动的面部对齐以及头发区域的标记。类似的,为了防止源图像与目标图像的光照差异带来的换脸图像真实感损失,Cheng 等人[42]不仅提出了一种三维人脸模型表情参数估计算法来对源人脸进行拟合,还额外对换脸渲染后的人脸进行重光照以保证目标人脸与源图像背景的光照一致性。为了防止过大的源人脸与目标人脸姿态差异导致的换脸失真,Lin 等人[43-44]则从正面照片建立完整的三维头部模型并结合姿态估计,成功实现了在任意姿态下将目标头部模型渲染到源图像中的目的。
上述方法仅仅考虑了图像层面的人脸交换,对于视频中的人脸交换缺乏额外的时域约束。为了解决该问题,Dale 等人[45]不仅考虑了源视频与目标视频的人脸身份与外观差异,还考虑了说话人的动作连贯性问题。该方法使用三维多线性模型追踪并将源面部动作形变到目标面部动作,随后对两者进行空间对齐。为了保持人脸动作的动态一致性,作者额外施加了重定时步骤,利用动态时间规整将源与目标序列相匹配,消除了帧间不连续性的同时,还保持了足够的同步率。并最终提出了一种最优拼接区域估计算法,来防止拼接造成的伪影。
人脸身份合成任务要求尽可能逼真的视觉效果,而基于三维模型的方法在这一目标上具有多重局限。首先,基于三维模型的方法在预处理阶段要求精确地追踪头部姿态,以在换脸后匹配图像中的人脸背景,防止人脸中心区域与周围区域不一致而导致的瑕疵。这就使得这类方法在处理不同头部姿态的源与目标人脸时存在天然劣势,尤其是涉及包含面部遮罩的情况。因此近几年的工作倾向借助深度学习生成模型对视角差异带来的遮挡进行补全,这一点将在2.3 节中详细介绍。其次,光照是影响生成图像真实度的主要因素。然而在基于三维模型的人脸身份合成方法中,根据二维图像估计三维人脸模型以及光照条件都是一个病态问题,因此该类方法常常会由于估计误差导致最终的换脸图像中存在明显的伪影瑕疵。而过于简单的光照模型,以及对镜面反射、阴影以及表面光散射等细节的处理不当,也会严重限制合成的效果。因此,此类方法最大的困境在于源与目标人脸具有不同光照条件以及不同环境背景时,如何精确估计光照以及人脸反照率的同时,对目标人脸图像进行重光照。与照明鲁棒性和单幅人脸图像的可靠三维重建相比,降低换脸过程中的手工干预,构建自动化的管线也同样是一个需要解决的问题。
相比于复杂的基于三维人脸模型的身份合成方法,一些传统的图像编辑技术也可以用来实现人脸交换。这些基于图像编辑的方法主要依赖图像融合技术,如泊松融合[46-47]将两幅不同的图像进行融合以实现面部交换。这类方法首先将相应的面部区域分割出来[48],再利用图像融合技术对源图像与目标人脸进行拼接。一般而言,绝大部分基于图像编辑技术的人脸身份修改算法的一般流程包含以下三个主要步骤:
(1)分别对源图像与目标图像进行人脸与关键点检测,利用面部关键点对两幅人脸进行对齐并剪裁出适当的面部区域。
(2)将从目标图像剪裁得到的人脸区域粘贴到源图像上,根据对应的关键点进行对齐。
(3)调整人脸交换后的源图像的色彩,使人脸肤色光照与源图像相匹配,调整图像混合边界,使其更加平滑自然。
早在2008 年,Bitouk 等人[49]就提出了一种完全基于图像编辑的人脸交换方法。作者预先准备了大规模的目标人脸数据集,对于一张源人脸,首先从数据集中选择外貌与姿态最相似的人脸,然后进行姿态、光照以及肤色的调整,来进一步将两者差异降低,最终将处理后的人脸融合到源图像中。Mosaddegh等人[50]也从预先建立的数据集中选择换脸目标,他们将人脸分为不同区域,并从数据集中选择各个区域最相似的进行融合来进行人脸交换。虽然以上两者不能够控制换脸目标的身份,但在无此需求的隐私保护领域中,具有真实高效的优势。类似的,Kemelmacher-Shlizerman[51]对于用户给定的关键字,从互联网中搜集大量的相关人脸图像并利用其中最相似的进行人脸交换。
虽然以上方法能够产生非常逼真的换脸效果,但十分依赖预先准备的数据集,在数据集规模有限或者无法检索到与源人脸相似的人脸时,换脸效果会产生严重下跌。同时这类方法也无法控制换脸目标的身份以及表情,但由于其较高的效率以及无需人工手动干预的特性,在一些特殊场景中具有较高的实用价值。
为了提高换脸算法对于源与目标人脸形状与姿态差异的容忍度,可以在检测到人脸以及关键点后,利用关键点的形变与对齐来弥补二者之间的差异。如Min 等人[2]就借助主动形状模型(active shape models,ASM)[52]进行人脸对齐,并通过匹配源人脸与目标人脸的二维模型来减少面部形状的失真,最终进行肤色调整与泊松融合[46]来进一步提升真实度。他们的方法完全无需人工干预,且由于匹配了源人脸的面部动作,达到了更加可接受的视觉效果。但源人脸与目标人脸差异过大时仍然缺乏足够的真实感。Wang 等人[53]提出了一种基于主动外观模型(active appearance mode,AAM)[54]的人脸交换框架。该方法首先利用AAM 对人脸图像进行形状和纹理解析得到面部区域特征,然后将源人脸与目标人脸对齐并利用泊松方程生成最终的换脸图像。Garrido 等人[55]利用非刚性人脸跟踪算法跟踪源视频与目标视频中的人脸并标记关键点,然后将关键区域编码为局部二值模式直方图,通过最近邻搜索对源帧和目标帧进行匹配。最后,根据源人脸关键点将目标人脸进行形变以匹配源头部姿态,并利用泊松融合消除换脸边界。
人脸交换的一个难题是当源人脸与目标人脸的肤色或光照存在较大差异时,会导致换脸后的图像具有明显的融合边界[56]。因此为了产生逼真的人脸合成效果,确保源图像与目标人脸区域之间边界的无缝和自然就十分重要。平滑的边界可以通过Alpha Matting 或像素梯度域合成技术来实现,但不同的人脸图像通常来自不同的环境,由不同的相机在不同的条件下拍摄得到,这就使得人脸在多种视觉外观上具有差异,包括对比度、纹理、噪声和模糊等,而单纯的图像融合已不足以应对该需求。为了解决这一问题,Sunkavalli 等人[57]提出了图像协调融合算法。该方法同时将源、目标与一张均匀随机噪声图像分解为图像金字塔,并迭代地使用平滑直方图来匹配三张图像的图像金字塔,来对源图像与目标图像的纹理、噪音、对比度与模糊度进行建模。最终从金字塔系数中合成最终图像,极大地提升了换脸边界的真实度。Zhang 等人[58]提出了一种自适应边界融合算法。首先通过在Lab 颜色空间中将源图像的方差与均值调整为目标图像的方差与均值。对于每个像素,根据其与人脸核心区域(眼、鼻、口)的距离自适应地调整两图像的像素融合权重,也实现了更加平滑的边界效果。
由于基于图像编辑的方法没有涉及到三维人脸模型的建立,在姿态以及视角问题的处理上显得较为薄弱。对于两幅拍摄于不同视角或姿态的人脸图像,进行身份交换的难度则会大大增加。同时,该类方法换脸过程是完全基于RGB 空间的操作,缺乏渲染步骤使其在光照的处理上无法比拟三维人脸模型的方法,最明显的后果就是立体感的缺失。但基于图像编辑的方法步骤简单,不仅效率更高,在制定算法流程后可以不依赖过多的人工干预,而且由于人脸关键点检测与图像融合技术均较为成熟,产生极端失败例子的可能性也更低。
随着深度学习在计算机领域中的兴起,大量人脸合成相关工作尝试用深度卷积网络,尤其是生成对抗网络来实现人脸交换的目的。与基于三维人脸与图像编辑技术的方法类似,基于深度学习的人脸交换同样有较为统一的流程。但不同的是,这类方法在检测并分割源人脸与目标人脸的待交换区域后,利用模型将源人脸的身份转换为目标人脸(部分方法甚至可以保持源表情)。最终将转换后的人脸粘合至源图像上,并进行与图像编辑方法中相同的包括边缘融合以及光照调整等后处理,进一步增加真实性。
近几年,以一种名为DeepFakes 为代表的基于深度学习的换脸算法大大降低了生成人脸视频的门槛。只要有足够的数据,任何没有专业知识的业余人员都可以创造出人眼难辨的生成人脸图像或视频。这种零门槛的服务导致换脸视频在社交媒体上广泛传播,不仅会严重破坏公众对大众传媒的信任,也威胁到社会公信力、司法公正,甚至国家安全。由于DeepFakes 的出现以及其带来的危害,基于深度学习的换脸技术引发了广泛的热议。文献中习惯将DeepFakes(图2 所示)代指基于深度学习的换脸技术,但值得注意的是,许多方法采用的是与原始DeepFakes 不同的架构。根据依赖的模型,基于深度学习的人脸交换方法主要可以分为基于自动编码器以及基于生成对抗网络的两类方法。
Fig.2 Single encoder-multi decoder architecture图2 单编码器-多解码器架构
2.3.1 基于自动编码器的方法
图2 中展示的是最早期的DeepFakes 的架构,主体是基于Y 形的单编码器-双解码器架构,即一对权值共享的编码器以及权值不共享的解码器。在训练过程中,首先将预先收集好的源与目标人脸进行剪裁得到不包含背景的人脸图像块,然后利用仿射变换将源与目标人脸图像扭曲变形,并试图让两个独立的自动编码器分别重建未变形的源与目标图像。在测试阶段,将源图像输入编码器得到潜变量,并用目标图像对应的解码器进行解码,即可得到换脸图像[59]。然而单纯的Y 型结构存在两个问题:(1)生成的换脸图像的分辨率有限,受到自动编码器结构的限制,一般不超过96×96。在此架构下,过高的分辨率会导致无法实现身份的完全交换。(2)生成的换脸图像相比于真实图像较为模糊,由于自动编码器以重建图像与输入图像的均方误差为优化目标,天然具有模糊性,在细节方面比较欠缺。
针对分辨率有限的问题,Naruniec 等人[8]提出了一种与原始DeepFakes 相似的共享编码器-独立解码器架构,并采用步进训练的方式逐步提高分辨率,直到将图像的分辨率提高至1 024×1 024,这也是换脸领域首个超过百万像素的结果。
针对图像模糊的问题,Korshunova 等人[60]受到纹理合成与风格迁移技术[61-62]的启发,将人脸的身份视作风格特征,将表情视作内容特征。利用多尺度纹理网络,以一张源人脸图像以及一组目标人脸图像作为输入,作者希望生成的人脸与源人脸的风格特征要尽可能相同,同时与目标人脸的内容特征也要尽可能相同。为了保证生成的人脸与源人脸具有相似的光照环境,作者在优化目标中施加了额外的光照感知损失。但该方法不涉及任何三维人脸技术,导致生成的人脸缺乏一定立体感,并且对眼镜与头发等遮罩十分敏感。该方法的另一个缺点在于,对新的目标人脸,同样需要重新训练模型。
人脸交换任务的一个难题是由于头发或眼镜等遮挡带来的换脸失真。为了提升对于遮挡的鲁棒性,Li等人[63]采用了额外的生成网络去推断被遮住的部分。该方法使用一种多级属性编码器,提取了更加全面的身份无关信息,并利用自适应注意力去正则化生成器将这些信息与身份特征融合,生成了更加精细的结果。类似的,Nirkin 等人[64]利用预训练的全卷积图像分割网络分割出目标图像未被遮挡的面部区域,防止换脸融合时因遮挡带来的错误结果。该方法同时表明,一个逼真的人脸交换方法,并不一定要求估计人脸的三维形状。
基于深度学习的方法借助深度生成模型的优势,为人脸合成任务提供了新的范式。深度模型带来了前所未有的完全自动化的换脸流程,大大降低了对于人工干预以及专业技能的需求。然而,与基于图像编辑的方法相同,这类方法同样具有换脸图像融合的边界失真问题,同时也导致了分辨率以及真实度方面的不足。针对前者,一般通过引入更加高级的模型结构,如1.2.2 小节中所介绍的相关技术能够有效地提升生成图像分辨率。而针对细节以及真实度的提升,则需要通过施加额外的真实性判别器或者损失函数如感知损失来实现。
2.3.2 基于生成对抗网络的方法
生成对抗网络在近几年逐渐取代了自动编码器在图像生成领域的重要地位,在人脸交换任务中也展示出独一无二的优势。相比于基于自动编码器的方法,这类方法最大进步在于借助CGAN 的形式,可以无须对每一对源与目标人脸重新训练模型[65]。例如,Dong 等人[66]提出了一种基于CGAN 的无监督转换模型来实现人脸交换,实现了多个人脸身份的交换。模型的训练分为两个步骤:(1)利用ACGAN 学习多个域之间的共享特征z,得到训练完成的生成器。作者认为对于不同域,其中类别无关的信息应该是相似的。(2)对于固定的z以及生成器,通过改变标签信息c来生成图像,并作为编码器的输入图像,利用均方误差优化编码器的输出与z。在换脸阶段,通过给定目标身份标签,模型即能够生成对应身份的人脸图像,并保持源人脸的面部动作。
一些工作不仅期望提高生成图像的质量,还希望降低对数据的依赖,如实现训练数据外的不同身份不同角度的人脸交换。为了达到这一目的,Olszewski等人[67]首先提取源人脸与目标人脸的UV 贴图,并将两者进行通道叠加作为生成网络的输入。训练前,他们首先构建了多人的相同面部动作数据库,对于a、b表情下的源人脸和目标人脸分别用Sa与Tb表示。值得注意的是训练数据中存在Sb图像,因此优化目标除了对抗损失,还包含生成图像与Sb的重构误差。该方法仅需要一张目标图像,就能够实现对源视频的换脸,并且能生成源视频中不存在的口腔区域。虽然该方法面向的是视频换脸,但缺乏时间上的约束,因此会产生闪烁等现象,且对头部姿态的要求较高。Nirkin 等人[65]则通过用单个模型统一换脸和表情操控两种任务,解决了侧脸带来的问题并提高了对于未知人脸的鲁棒性,但该方法对于光照的处理仍然会导致一定程度的失真。
与2.3.1 小节中基于Y 形自动编码器架构相比,基于GAN 的换脸方法也存在缺陷,即在潜空间中人脸身份信息和表情等信息是相互纠缠、并未解耦的,这就导致在改变身份的同时会干扰到其他面部特征。因此,一些基于GAN 的换脸方法尝试将身份信息与其他信息分离[60,68]。Natsume 等人提出的FSNet(face swapping net)[69]中将身份和面部几何信息分离,在不同的人脸方向和光照条件下达到了更好的换脸效果。Bao 等人[70]提出的IPGAN(identity and pose disentangled GAN),通过引入两个并行的编码网络,也实现了将人脸和属性分离,再利用生成器将人脸和属性信息作为输入合成图像。作者使用了一个额外的判别器来衡量生成图像身份的后验概率来约束人脸身份。该方法对于训练集中未出现的人脸,也能够达到很好的效果。
人脸动作合成主要可以分为表情修改以及面部重演,前者通过给定的标签对人脸表情动作进行合成,后者则利用驱动图像/视频中的人脸动作对源视频中的人脸动作进行对应的修改。相比于图像中的人脸动作合成,视频中的人脸动作合成面临更多难题:(1)复杂的人脸几何形状以及精确的形变匹配;(2)动态皮肤纹理产生的细微失真。因此像DeepFakes这样的技术虽然能够用来制作视频,但由于没有帧间一致性的约束,人脸存在着明显的动作僵硬以及闪烁等问题。人脸重演根据驱动视频来进行表情合成,一定程度上减缓了帧间不连续的问题,但人脸重演所依赖的三维重建以及匹配问题仍然难以优化。因此,最近的一些方法将传统图形学管线与深度学习相结合,借助各自的优势一定程度上弥补了各自的瓶颈。
3.1.1 基于深度生成模型的方法
人脸表情编辑旨在不影响身份属性的情况下,将给定源人脸图像的表情转换为目标表情。由于微妙的皮肤运动难以用图像编辑方法来实现,传统方法很难生成自然的面部表情。而深度生成模型在这一方面则具有明显优势,但深度生成模型的训练十分依赖数据以及对应的标签,因此在表情编辑任务中,就需要提供表征表情特征的辅助信息。这类辅助信息可以是人脸表情分类标签的形式,如微笑、平静、生气或者难过等离散的标签[71],或者连续的人脸表情特征如面部动作单元(action units,AU)来对人脸动作进行连贯描述。
Pumarola 等人[72-73]提出了一种将面部动作信息作为辅助标签的对偶WGAN(Wasserstein GAN),将AU作为条件化标签,来控制生成人脸的表情。并通过额外的表情分类器保证合成人脸的表情与输入标签的相关性。该方法利用循环一致性损失构建对偶网络,将生成人脸复原为原始人脸图像,保证身份不变性与生成质量。虽然循环一致性损失可以带来逼真的结果,但由该损失训练的网络的目标域与输入域存在一定偏差,无法实现渐进式的生成过程。因此Sanchez 等人[74]提出了三重一致性损失来弥补输入域和目标域的分布之间的差异,并借助面部关键点实现了大幅度面部动作的合成。Pham 等人[75]也借助AU 系数,利用预训练的AU 估计器保证生成指定的表情。Zhou 等人[76]提出了一种用于面部表情合成的条件差分对抗自编码器(cross domain adversarial auto encoder,CDAAE),同样结合了AU 标注。该模型通过在编码器输出的潜空间中加入目标表情的标签来生成目标人脸,并通过在编解码器中引入跳跃链接将表征人脸身份的低层特征与表征表情的高层特征解耦,进一步约束模型在合成表情时保证相同的人脸身份。
虽然基于AU 的方法实现了连续的表情动作操控,但依赖脸部动作编码系统(facial action coding system,FACS),而该系统中的AU 标注仍然比较有限,难以满足精细且全局的逼真面部表情变化。为了摆脱如AU 这种预先定义的表情监督信息,Bozorgtabar 等人[77]将面部关键点与源图像作为编码器的输入,来提取不同图像的共同潜在表征,然后利用解码器实现源域到目标域上的转换。其中,表情用独热码形式的向量进行表示,在测试阶段只需要更改表情表征并结合人脸的共同潜在表征即能够合成目标人脸表情。然而该方法只能实现特定表情间的转换,无法控制不同表情的强度。为了能够同时摆脱对于人脸动作标注的依赖,并将表情变换推广到训练集外,Ding 等人[78]提出的ExprGAN(expression GAN)中除了常规的编解码与判别器外,额外引入了表情控制器网络来将输入标签转化为描述表情强度的变量,并通过最大化生成图像与强度变量间的互信息来保证两者的对应关系。
基于深度生成模型的方法在缺乏足够辅助信息的情况下,很容易陷入合成图像分辨率低、缺乏精细细节以及模糊的窘境。虽然表情标签可以一定程度地充当辅助信息,但大多数工作只能把表情转换到不同的类别,而现实中的面部表情强度往往在一个较大的范围内。如何能够生成丝滑连续的表情变化,是人脸表情编辑需要解决的重要问题。
3.1.2 基于人脸统计模型的方法
除了基于生成对抗网络的方法外,三维人脸模型技术由于能够操纵模型的形变,在表情编辑中也具有一定潜力。但这类方法在编辑源人脸表情时需要一个参考目标人脸,同时如前文所述,这类方法面临的任意多边形模型之间的形变也是十分困难的问题之一。Pighin 等人[79]提出了一种创建三维面部纹理模型与不同模型间平滑形变过渡的技术,并使用离散插值法将通用人脸网格模型形变以匹配目标人脸模型的形状。人脸网格模型具有相同的拓扑结构,作者对不同的面部表情标记了统一的面部特征点,使这些特征点在不同表情中均对应相同的顶点,使得仅借助线性插值法就可以得到希望的源到目标的形变。
人脸动作合成中有许多方法不借助生成对抗网络或人脸三维模型,而是通过利用基于人脸统计模型的方法如AAM 模型(不借助其他中间模型)来对源图像的表情进行任意动作控制[80-81]。由于表情变化不仅表现在面部运动,还表现在光照和皱纹的细微变化,但这些细节难以被三维或外观模型所精确地捕获。因此Liu 等人[82]提出了一种面部表情映射技术来捕捉不同人脸表情的光照变化,并与面部形状形变同时映射到源人脸上。与基于三维模型方法中的重光照不同,作者解决了恒定光照下的几何变形问题,合成了更有表现力的面部表情。
在实际应用中,许多人脸动作合成技术主要针对嘴型与特定语音的匹配,Bregler等人[83]通过跟踪目标视频中的嘴部关键点,并利用变形技术将嘴部动作合成到源视频中。为了达到类似的目的,Suwajanakorn等人[84]成功利用网络学习前总统奥巴马的声音特征到嘴型的映射,并实现了根据给定的音频生成相应的奥巴马说话片段,甚至生成了不存在的口腔区域。然而,表情是面部五官动作的全局结果,通过单一地修改局部动作往往导致该区域与其他面部区域的不兼容。为了解决这一问题,Yang 等人[85]提出了一种类光流的表情流,将目标人脸自然地进行全局扭曲,使其与修改后的局部动作兼容。该方法首先计算源图像与目标图像的关键点,根据关键点与三维面部表情数据集进行三维人脸重构。通过将两个三维模型相减后投影到二维来创建期望的表情流来对源图像进行形变。但该方法只能够实现同一个人不同表情间的转换。Blanz 等人[86]计算了人脸在不同表情时的三维形状和纹理差异,并将该差异迁移到中性表情的源人脸中以实现面部动作的合成。该方法利用人脸模型的向量空间差异的可加性进行表情合成,因此需要提前计算得到各类表情与中性表情的差异值。
与基于深度模型的表情编辑方法在低维嵌入空间对人脸表情特征进行操纵不同,人脸统计模型的方法一般在RGB 像素空间对人脸图像进行操纵。虽然这类方法不要求大规模训练数据以及辅助信息,但往往需要目标人脸图像作为参照,对源人脸进行转换,无法实现完全自由的表情变化控制。
人脸重演与表情编辑的核心区别在于,表情编辑通过明确有限的标签来改变目标人脸的面部动作,而人脸重演给定的是一段源人脸视频,要求目标角色做出源人脸的面部甚至头部动作,同时保持人脸身份不变。
3.2.1 基于图形学的方法
如3.1.2 小节中所述,三维人脸模型技术可以通过源到目标模型的形变来实现表情编辑,因此自然地具有人脸重演的功能。基于图形学的面部重演技术有着久远的历史。早在1990 年,Williams[87]就通过追踪驱动视频中的人脸运动与表情变化,并映射到生成的动画角色中来实现表情操控。Vlasic 等人[27]结合多线性人脸模型,将扫描得到的人脸三维模型数据重构成数据张量,并使用N-模式奇异值分解计算面部几何形状及其身份和表情变化模型,从视频中提取人脸姿态、表情和嘴型等参数,来实现人脸操控。Garrido 等人[88]设计了一种结合了单目跟踪、逆向绘制、光照与细节估计的目标和配音演员动作映射,旨在使视频中的人物嘴部运动与音轨相匹配。该方法利用混合变形模型将两者的面部动作捕获,并将驱动人脸的模型的嘴部运动迁移到源人脸模型上。Suwajanakorn 等人[89]分别从预先收集的源人脸与驱动人脸图像中拟合出各自的平均三维模型与纹理模型。对驱动视频中的每一帧,将其三维模型叠加到源人脸模型中并减去驱动人脸的平均模型,得到形变后的源人脸模型。与单纯使用参数化模型的方法不同的是,闫衍芙等人[90]在其方法中借助了面部动作单元,利用调整后的VGG-Face 获取24 个AU 参数,并利用该参数驱动形变模型,进而生成人脸动画。
为了实现实时的人脸重演,Thies 等人[28]使用3DMM 从RGB-D 图像中捕捉头部动作,将静态的脸变成可控制的视频。对每一帧,该方法联合对输入的图像和深度数据进行身份、表情和皮肤反射率的参数拟合并进行场景光照重建。随后计算源表情和目标表情在参数空间中的差值,并修改源人脸相应的参数以匹配目标表情。然而该方法需要RGB-D 摄像头来提供额外的深度信息。因此该工作在文献[91]中被进一步扩展,作者提出了Face2Face,实现了基于单目摄像头的实时的人脸重演。该工作解决了单目视频中人脸三维重建身份约束不足问题,并利用鲁棒变分优化联合重建三维人脸模型参数以及渲染参数,同时使用密集光度一致性度量追踪源视频和目标视频的面部表情。最终,提出了一种子空间形变迁移技术来实现对源人脸模型的扭曲。为了达到对眼球运动更加精细的控制,Thies 等人进一步提出了FaceVR[92],使用虚拟现实设备进行实时的视线提取,来辅助合成更加逼真的面部重演。作者后续又提出了HeadOn[93],与Face2Face 相比,该方法不仅实时地迁移了面部运动,还将完整的头部姿态以及上半身的动作进行了迁移,达到了完整的人体躯干、头部运动、表情与眼神的重演。
基于图形学的方法在人脸重演任务中具有显著优势,然而当目标视频出现张嘴或扭头等动作时,很可能导致源视频中不存在对应的区域,使源人脸模型形变后缺乏对应的贴图,在渲染后出现明显瑕疵,而常见的长发和胡子遮住脸的场景也同样会带来类似的挑战[94]。人脸重演是人脸合成领域中非常具有前景的方向之一,实际应用中对实时性有很高的要求,但从二维图像中估计三维模型再进行形变的过程非常耗时,因此往往需要借助额外的设备,如能够获取深度信息的特殊摄像头。虽然降低三维人脸模型的维度能够有效提升效率,但对人脸面部细节的表达上会产生致命影响。
3.2.2 基于深度学习的方法
基于图形学的方法十分依赖高质量的三维人脸模型,但单目重建得到的模型通常并不完美。因此Theis 等人[95]提出了延迟神经渲染技术将图形学与深度学习相结合。该技术对传统UV 贴图进行改进,对其维度进行增广,通过训练,使其包含更多有效信息并可以被作者所提出的一种基于U-Net 的神经渲染器渲染得到目标图像。在Face2Face 的基础上,该方法在人脸重演任务中可以更好地解决人脸几何重建问题。类似的,Kim 等人[96]同样借助深度学习模型对传统渲染管线进行优化。对驱动视频与源视频进行三维人脸重建后,通过结合驱动视频的光照身份参数与原视频的头部姿态、表情以及眼神参数,进行初步渲染得到神经网络渲染器的输入,最终利用神经网络渲染器合成得到逼真的人脸图像。Koujan 等人[97]提出的Head2Head 具有类似的流程。该方法首先对源视频与驱动视频进行人脸重建,提取归一化的平均面部坐标与独立的视线特征,与前一帧生成的人脸同时输入到生成器中,保证了帧间连续性。Doukas等人[98]在Head2Head++中提出了一种新的网络来解决三维人脸模型的归一化平均坐标估计问题,并达到了几乎实时的速度。
虽然引入三维模型能够很好地解决姿态问题,但这些方法继承了源图像的纹理,因此无法合成驱动图像中不存在的特征如张开的嘴。因此,Nagano等人[99]提出了PaGAN(photoreal avatar GAN),对给定的人脸图像,该方法首先拟合对应的3DMM 模型,并将法线贴图、中性表情与目标表情的人脸贴图作为GAN 的输入,合成出原本不存在的区域。该模型可以仅根据单张图像,合成具有任意面部表情和视角的逼真视频。
最近的一些工作尝试使用驱动视频对有限数量的源人脸图像进行训练并实现面部重演。Zakharov等人[100]提出了一种元学习GAN 架构,额外引入一个嵌入器来提取人脸姿态五官的内容向量,生成器接收目标表情的面部姿态标记作为输入,并在生成过程中借助内容向量进行自适应实例正则化。为了达到类似的目的,Geng 等人[101]提出了一种基于面部形变的人脸重演框架。该方法首先依据驱动图像的面部特征点对源图像进行全局形变,并将形变的人脸图像以及关键点位移图进一步优化,补充出逼真的面部细节。随后将优化过后的人脸推断遮罩区域(例如闭嘴→张嘴时的牙齿部分)。最后将生成的人脸融合到变形后的图像中。该方法仅需要一张源人脸图像,就可以利用驱动视频对其进行面部重演。
一些面部重演工作遵循了人脸身份合成中的思想,将人脸身份与姿态表情信息进行分离。如Whiles等人[102]提出了一种轻量级人脸重演模型Xface,实现了完全自监督的训练方式。该模型包含一个嵌入网络学习将源图像映射到中立人脸的像素流,以及一个驱动网络将驱动图像作为输入并编码姿态与表情信息,以实现中立表情人脸到目标表情的转换。Siarohin 等人[103]提出了MonkeyNet 将形态与动态信息解耦。该方法首先提取驱动图像关键点,并生成运动热图,最终使用运动热图将源图像进行形变。作者后续提出了一阶运动模型[104],借助关键点局部仿射变换的一阶近似来辅助生成密集运动场,解决了MonkeyNet 无法对关键点邻域的变换进行建模的难题。
人脸属性合成技术主要对肤色、年龄、眼镜、胡须、发色、发型等面部特定特征进行修改。人脸属性合成方面的工作同样具有非常悠久的历史,在深度学习兴起前,人脸属性修改工作注重于年龄合成,尤其是面部老化[105]。随着GAN 的出现,许多基于GAN的工作实现了对于特定属性的修改。
2016 年,Li 等人[106]将具有相同属性不同值的人脸图像作为两个不同的类,设计了一种基于GAN 的能够保留身份信息的面部属性转换模型。他们的生成器包括预测待合成区域的掩模网络以及负责图像生成的转换网络,还额外增加了去噪网络保证生成图像的平滑性以及一个人脸识别网络约束生成图像中人脸的身份。同样的,Shen 等人[107]也约束生成器只修改部分面部区域。他们的方法中,生成器负责输出特定属性区域的残差图像,与原图相加后得到最终的生成图像。而判别器不仅判断图像是否为生成,还需要判断输入图像的属性值。Kapania 等人[108]则采用了支持向量机进行属性分类。Shen 等人[109]的方法中存在两个相同的生成器用来执行正向修改以及反向任务,该思想在后来被形式化为循环一致性损失[110]。
以上两种方法都只能够修改单一的属性,必须重新训练模型才能修改新的属性,因此效率较低,且只能够合成128×128 的低分辨率图像。He 等人[111]提出了一种AttGAN(attribute GAN),与以往工作不同的是,该方法将人脸属性分类约束应用于生成图像,而不是对潜在特征表示施加约束,同样保证了源图像到目标属性的转换。然而当人脸属性复杂程度较高时,AttGAN 在属性描述精度方面体现出明显的劣势,因此Liu 等人[112]提出了STGAN(selective transfer GAN),该网络在生成器的跳接中引入了一种基于门控循环单元的迁移模块,选择性地将编码器中的不同层级特征与解码器特征互补,在提高生成质量的同时还保证了无关属性的完整保留。为了实现更加精确的属性转换,Zhu 等人[113]提出了UGAN(untraceable GAN),借助额外的源分类器来区分生成图像的源域,并决定生成器是否保留源域的特征。通过这种方式,UGAN 实现了生成图像的不可溯源,对于目标属性的转换更加彻底。
为了达到多个属性的同时转换,Choi 等人[114]提出一种多域转换的条件GAN,实现了同时修改多种属性。该模型将域标签作为辅助信息指导生成图像,并利用额外的掩模向量来控制具有不同标签的多个数据集。Liu 等人[115]提出的ClsGAN(classification GAN)同样达到多属性转换的目的,通过引入上卷积残差网络来有选择地从源图像和目标标签中提取信息。该方法解决了编解码器间跳跃连接干扰属性转换效果的问题。Huang 等人[116]提出的IPM-Net(identity preservation makeup net)不仅实现了人脸全局上妆,同时能够合理地保留源人脸身份,该方法将人脸身份与妆容特征解耦,并利用背景残差限制了不必要的变化。类似的,Jin 等人[117]在妆容合成的流程中通过分层的方法将人脸结构、色彩与细节进行分离,达到了更加精细的合成效果。
虽然现有许多基于条件GAN 的人脸合成工作通过将潜在特征表达映射到对应属性,并且实现了平滑的转换控制,但仍然缺乏足够的可解释性工作。因此Shen 等人[109]提出了InterFaceGAN,作者发现GAN 学习的潜在表示实际上是线性变换后的解耦表示。根据这一发现,作者利用子空间投影来对已经耦合的一些语义进行解耦,实现了对面部属性更加精准的操控。Qian 等人[118]提出了加性焦变分自动编码器AF-VAE(additive focal variational auto encoder),通过几何引导将人脸的外观结构在潜空间中解耦,分离得到了外观表征和结构表征,给潜变量赋予了具体的语义含义。Karras 等人[37]受到风格迁移的启发,提出了一种基于风格特征的生成器架构,实现了高级属性(如人脸的姿势和身份)和随机变化(如雀斑、头发)的无监督分离与学习,成功生成出细节丰富的高清人脸图形。Liu 等人[119]通过共享编码器和解码器卷积层中的部分权重来实现对隐空间的共享,同时利用变分自编码器将不同域的输入图像和转换图像联系起来,实现了多种人脸属性的修改。Lample 等人[120]利用编码-解码器,通过将图像的显著信息与隐藏空间中的属性值分离来进行图像重构,并通过改变属性值来生成不同图像。Shu 等人[121]将人脸生成视作渲染问题,并使用GAN 从输入图像中创建表面法线、反照率、光照和等信息,实现了更加逼真的属性修改。
人脸属性合成主要依赖基于GAN 以及其他深度生成模型[122-123]的方法,然而这类模型有一个重要缺陷,即人脸的属性特征在其潜空间是相互纠缠的,这就导致改变某些局部特征,会或多或少地影响其他面部特征。虽然通过解纠缠可以一定程度地缓解不同属性的混叠,以实现明确的定向修改,但仍然无法缓解由于数据集引入的偏差。由于人脸属性合成更加倾向于色彩或纹理风格的修改,对人脸形状的影响比较微弱,这就不仅要求模型能够实现属性间的解纠缠,还要能够将形状与纹理相分离。
除以上三种人脸合成技术外,本文还总结了第四种工作,即人脸生成。与人脸合成不同的是,人脸生成不从任何已有人脸上修改而来,而是根据有限的信息或者噪声生成真实人脸。这类工作涵盖了更加广泛、复杂的子类别,包括但不限于整张人脸生成、人脸超分辨率、人脸修复、文字人脸转换以及条件化人脸生成等。
在生成现实中不存在的人脸方面,绝大多数生成对抗网络都能够在利用人脸数据训练后,从噪声生成人脸图像。早期,生成的人脸不仅分辨率较低,大多停留在128×128 级别,且缺乏足够的细节。随着GAN 在架构上的创新性变革,这方面工作经历了爆发式的进步。更高的分辨率意味着生成图像在细节上存在不可避免的丢失,使判别器更加容易将其与真实图像区分,导致模型难以训练。Brock 等人[124]通过增大GAN 的规模,同时对输入噪声进行适当的截断处理,将生成图像的分辨率提高到了512。得益于PGGAN 所提出的步进训练技术,生成的人脸图像直接提高到了1 024 分辨率。英伟达提出的Style GAN以及其改进版[125]达到了同样的分辨率,并解决了图像中明显的伪影瑕疵问题。Karnewar等人[126]借助多尺度梯度方法,也将生成人脸的分辨率提高到了1 024。
人脸超分辨率,旨在从低分辨率输入中生成高分辨率人脸图像。通过提升人脸分辨率,可以促进与人脸相关的多种任务的性能,包括人脸识别、人脸解析与人脸重建等。人脸具有特殊的固定结构以及纹理特征,借助这两种重要信息,结合深度生成模型,可以有效地针对人脸超分问题进行特殊的设计。例如,考虑到不同人脸具有相似局部结构的特点,呼延康等人[127]创造性地将图神经网络引入人脸超分任务,将图结构中的结点表示为局部特征描述子,在保留空间信息的同时,更好地捕捉了局部纹理特性。许若波等人[128]认为不同人脸区域在超分重建时具有不同的重要性,因此利用独立的GAN 对不同面部区域进行超分,并对背景进行额外的处理,最终使用融合网络将各个GAN 的输出组装成高分辨率人脸图像。Chen 等人[129]则将人脸解析图与关键点作为辅助信息,让模型在尽心超分训练的同时保持人脸的先验结构。
对人脸缺失区域的修复工作同样可以被认为是人脸生成,这一任务旨在目标人脸图像的缺失区域中插入符合上下文的内容。与低级图像处理任务不同,人脸修复需要对图像的高层次理解,不仅需要对纹理进行修复,还需要保证几何结构的合理性。Iizuka 等人[130]利用全卷积神经网络填充任何形状的缺失区域的人脸图像。Chen 等人[131]利用步进训练方式对高分辨率人脸图像进行修复。而Zhang 等人[132]提出了一种仅从少许区域就可以推断出完整人脸的图像合成方法。周华强等人[133]提出了一种多判别器循环生成对抗网络,通过引入额外的判别器对多个尺度进行监督,产生了更精细的局部细节。蒋斌等人[134]将包含缺失的人脸图像作为输入,完整人脸图像作为ground-truth,利用U-Net学习人脸的整体一致性,来修复局部的缺失区域,并引入了额外的判别器来提升修复图像的视觉真实度。
图像理解或图像标注,即通俗意义上的看图说话,可以生成给定图像的文本描述。与此相反的是根据给定文本描述生成相应的图像,这类任务也是图像生成领域的热点之一,是多模态领域的一个分支,与人脸属性合成类似,同样涉及到属性控制。Zhang 等人[135-136]提出的StackGAN 与StackGAN++通过两个生成阶段,首先根据给定的文本描述绘制出基本形状和颜色,生成低分辨率图像,再将其结合本文描述生成逼真的高分辨率图像。Nasir等人[137]提出的Text2FaceGAN,将文本到人脸生成的多模态问题视作在相同的潜空间中学习人脸的文本条件分布。Chen等人[138]对文本编码器和图像解码器进行同时训练,实现了更细粒度的文本人脸图像生成,分辨率达到了256 像素。Di等人[139]根据给定的多个属性标签,通过多阶段生成器利用噪声生成符合条件的人脸图像。Bao 等人[140]提出的CVAE-GAN(conditional variational auto encoder GAN)可以根据给定身份标签生成对应的多样人脸图像。Wang等人[141]提出了TTF-HD(textto-face-HD),该方法首先从噪声中生成随机人脸并利用解码器提取属性信息,然后通过优化人脸图像属性与目标文本所描述属性的差异,逐步地修改人脸图像,以生成期望的人脸。
一些工作将人脸素描肖像或者语义分割图作为条件信息,从中生成逼真的人脸图像。Isola 等人[38]提出了pix2pix 模型,允许以肖像作为输入,输出逼真的人脸图像。Wang 等人[39]进一步提出了pix2pixHD,以人脸语义图作为输入,生成最高2 048×1 024 像素的图像。根据给定的人脸素描视频,Lu 等人[142]通过利用GAN 学习素描人脸与真实人脸的联合分布,将不完美的素描转换为真实人脸,并在保证两者相关性的同时允许外观上的一定自由度。Sangkloy 等人[143]同样利用GAN 实现了以稀疏的彩色素描为输入来生成真实人脸。Kazemi 等人[144]实现了同样的功能,并借助CycleGAN[119]摆脱了成对数据依赖问题。Chen等人[145]利用嵌入模块从人脸草图的不同面部区域学习独立的特征,并使用特征映射和合成模块对其进行融合,推断出真实人脸。为了保证从素描视频中生成连贯的人脸视频,Wang 等人[146]借助辅助的帧序列生成器以及时空判别器,同时引入了光流约束来生成逼真流畅的人脸视频。为了对人脸缺失部分进行补全,Jo 等人[147]提出了SC-FEGAN(sketch and colorface editing GAN),根据素描图像提供的边缘与形状信息对真实图像进行修复。刘昌通等人[148]将RGB 人脸图像映射到Lab 色彩空间中,并将循环一致损失推广为联合一致循环损失,使不同通道单独处理、联合优化,保证了不同区域色彩的连续性。
深度学习技术在方法以及模型结构上的可塑性极大地推广了人脸合成方法的可能性,将其从数字图像处理以及三维人脸的局限中解放出来,同时也给这些传统方法带来了新的思路。尤其在近几年计算机视觉技术的积累下,合成的人脸图像或视频在视觉效果上有了显著的提升。在各类技术中,根据不同的人脸合成任务,所依赖的方法也显示出不同的偏好,并且具有各自的优缺点。
人脸身份合成可以直接借助数字图像处理技术中的图像拼接与融合实现,因此早期的工作比较依赖这类朴素方法,并且探索了一些解决拼接失真问题的方法。然而这类方法并不能够实现对换脸后图像的表情控制,且在源图像与目标图像的肤色与姿态差异过大时会产生明显异常的结果。借助预先收集好的数据集,通过检索相似度最高的人脸进行交换,可以在不要求指定身份的条件下实现比较好的视觉效果,且时间消耗很低。因此可以用于一些要求保护人物隐私,且对于真实度要求不高但要求高效性的应用。为了保证源人脸与目标人脸五官形状与肌肤在具有显著差异的条件下换脸结果的真实度,可以引入主动形状以及纹理模型等二维面部结构建模方法来迭代地对目标人脸进行调整,匹配源图像中的人脸形状,使其与头部轮廓相符合。而基于三维人脸的方法由于引入了渲染与重光照步骤,故表现出了对光照更强的鲁棒性,且具有更强的立体感。但从二维图像中估计三维人脸是一个病态的问题,过大的偏差同样会造成换脸后的失真。深度学习中生成模型的介入则带来了更多思路,并借助逼真的生成能力对以往难以解决的遮挡问题提出了可靠的方案。这类方法通常遵循着编码器-解码器网络的架构,将身份特征与其他特征解耦,因此在换脸的同时能够保持目标人脸的原有表情。越来越多的工作在此架构的基础上进行了大量的改进,由于早期工作对于任何一对源-目标人脸的交换都需要重新训练得到特有模型,多人脸交换以及更高分辨率的图像生成是目前该领域中的一个热点问题。
在人脸动作合成方面,由于涉及到面部形状与结构变化,与身份合成相比,基于图形学的方法占据了更多的比重。其中大多数方法通过目标至源人脸模型的形变来对源人脸进行驱动,利用已有人脸作为驱动的优势在于能够保证帧间的连贯性,且无需手动控制不同帧之间的表情变化幅度。研究者不断对人脸模型拟合以及形变匹配方法进行优化改良,在精度和时间消耗方面都取得了显著的进步,目前已经达到了实时的人脸重演。而深度学习在这一领域能够借助面部动作的抽象表征来实现表情的平滑控制,在一定程度上缓解了模型对数据集的过度依赖,不仅能利用驱动视频实现人脸重演,甚至对单张图像也能够合成出平滑连贯的动作视频。深度学习模型还实现了对传统图形学方法管线的优化,例如对不完美的人脸贴图进行修补,一定程度缓解了三维人脸重建中的固有缺陷。
人脸属性合成方面的研究非常依赖生成模型的发展,并且大多数方法通过将身份与面部属性特征解耦,在合成新属性的同时最大化保留了原始特征。然而,依赖生成模型的方法在编辑人脸属性的过程中实质是在给定人脸的基础上进行重新生成,当身份特征与属性特征解耦程度有所欠缺时,所生成人脸的身份特征极易被扰动,从而产生与原始人脸无法控制的偏差。类似的,当期望编辑单个人脸属性时,许多方法往往会对其他属性产生扰动。例如对人脸进行性别编辑时,对肤色或年龄等特征产生显著的影响。这类问题一般是由于训练数据的特性所引起,当数据集中的各个人脸属性间存在普遍的联系,如男性人脸常常包含胡须,而女性人脸一般不包含胡须,就会导致性别编辑过程中对胡须这一属性的影响。为了解决该问题,一个行之有效的方案是引入注意力机制,利用与目标属性相关区域的掩膜来约束人脸生成过程。当期望同时编辑多个属性时,则不仅要解决这种干扰问题,还需要实现对于属性的标签化以及控制。虽然条件化GAN 已经可以实现定向的属性修改,但同样十分依赖数据集中的给定的有限的标签,且对于某种属性难以实现进一步的细化控制,例如颜色深浅与形状的控制。
人脸生成包含多种多样的任务形式,但在如今深度学习的浪潮下,总体而言比较依赖深度生成模型。对于整张人脸生成,生成图像的效果几乎完全依赖于现有的生成模型的技术水平,但对于人脸超分辨率这样的任务而言,由于人脸具有固定的拓扑结构且主要以细微纹理为主,因此和一般自然图像的超分辨率显著不同。直观而言,通过引入人脸特有的先验如面部结构作为辅助信息能大大缩减模型的搜索空间,提升生成图像的视觉效果。与人脸超分类似,人脸修复具有重要实际价值的应用,虽然不要求辅助信息,但期望模型能够学习上下文信息,同时捕捉高层的几何结构以及低层的纹理模式。对于艺术化、条件化等生成任务而言,关键问题是如何彻底摆脱大规模的成对数据依赖,为此,半监督或无监督学习是有望给这一问题带来解决方案的新思路。
人脸合成由于其较高的应用价值,一直以来吸引着众多研究者的开发与探索,加之近年来深度学习在计算机视觉方面的飞速增长,各类新框架与技术层出不穷,持续推动着该领域的发展。本文系统地回顾了人脸合成领域的工作,对各类方法及其优缺点进行了总结,梳理了多个子领域中的最新进展。现如今,人脸合成技术已经初步达到了实际应用的水准,自动化的逼真人脸合成效果能够显著节约人力成本以及为用户提供个性化的服务。然而,这一领域仍然存在诸多问题,如深度学习所带来的过度数据依赖问题始终没有被完全解决。本文在归纳领域内普遍难题的同时,展示了一些现有的解决方案,并且总结了人脸合成在未来发展过程中具有潜力的研究方向。