申 冲,刘 川,张满囤,3,∗,权子洋,师子奇,史京珊,郭竹砚
(1.河北工业大学 人工智能与数据科学学院,天津 300401;2.河北省数据驱动工业智能工程研究中心,天津 300401;3.天津市虚拟现实与可视计算国际联合中心,天津 300401)
三维人脸重建作为一项基础任务在人脸识别、人脸关键点检测、人脸编辑等方面都有应用,一直是计算机视觉领域的研究热点。随着科技的发展,人们对消费级的三维人脸重建技术有着迫切的需求,而基于单张RGB 图像的三维人脸重建技术不需要复杂的设备,契合广阔的消费级应用场景,成为三维人脸重建领域的研究热点,受到研究人员的重点关注。
单张图像的获取十分简单,然而根据单张图像恢复出人脸的三维形状却面临巨大的挑战。传统的重建方法主要分为两种,一种是利用图像的明暗信息[1]通过数学建模来完成,另一种是利用三维人脸形变模型(3D Morphable Model,3DMM)[2]进行迭代拟合来完成,但是这些方法通常过程复杂且重建效果不佳。
随着深度学习在计算机视觉领域的突破性进展,许多学者开始研究将深度学习与3DMM 相结合的方法应用到三维人脸重建任务中。Tran 等[3]通过深层卷积网络直接回归3DMM 系数,并用传统多图3DMM 的方式生成大量合成数据用于训练。Richardson 等[4]从3DMM 分布中采样得到合成的三维人脸模型并通过渲染得到对应的二维图像,并以此作为训练数据通过级联卷积神经网络回归3DMM 系数。这些有监督的方法由于缺乏真实的三维数据,往往使用合成数据进行训练,而合成的数据由于缺乏真实性,可能会对算法产生不利影响。
为此人们提出了另一种方法,以无监督或弱监督的方式训练网络。Tewari 等[5]使用可微分渲染器将重建的三维模型渲染成二维图像,再与输入图像进行对比。然而,由于仅使用基于图像像素的损失函数,对极端表情和光照效果不佳。Genova 等[6]在渲染图像和原图像之间使用人脸识别网络作为高层特征约束,取得了更好的效果。Sanyal 等[7]提出的RingNet 利用一个人在不同的环境表情下的图像都有相同的身份参数,设置形状一致性损失,提高了算法的鲁棒性。
由于3DMM 模型的固有缺陷,只能在固定的线性空间进行参数估计,表示能力有限且难以恢复出皱纹、伤疤等人脸细节。Richardson 等[8]提出先预测粗糙的面部形状并将其渲染到深度图中,再对深度图进行细化以增加细节。Chen 等[9]在3DMM 模型的基础上,使用从条件对抗生成网络预测的细节位移图来增强模型细节。Feng 等[10]提出的DECA 利用同一人脸在不同环境和表情下的部分细节具有一致性,设计一种细节一致性损失将人脸特定的细节与表情相关的细节分开,通过控制表情参数实现带有个性化皱纹的人脸动画。Yang 等[11]提出了一个大规模的三维人脸数据集FaceScape,并通过预测多张位移图来合成人脸动态细节。
虽然已有算法在细节重建上取得不错的效果,但由于忽略人脸细节的复杂特性,通常采用一个图像到图像的转换网络生成细节位移图,使得重建结果容易受到遮挡的影响,生成细节的真实感较差。而依据细节一致性原理的细节一致性网络在大面积遮挡情况具有较强鲁棒性,但对细节提取的能力不足。
针对上述问题,本文提出一种兼顾细节重建质量和鲁棒性的三维人脸重建算法,可直接从一张图像恢复出带有细节的人脸模型。通过可微分渲染器和设计的多层级损失函数,可在大量无标签的二维图像中以弱监督方式监督网络模型学习。为提高算法鲁棒性和生成细节的质量,将人脸细节分为表情相关细节和表情无关细节,并设置两个子网络分别对人脸的不同细节进行提取。实验结果显示,本文算法在鲁棒性和重建细节的质量上均有较好表现。
本文算法在训练时先进行粗略重建部分的训练,再在训练好的粗略重建网络的基础上训练细节生成网络,虽然训练分为两阶段,但是在推理时仅需一个阶段便可完成。通过在细节生成部分设置两个子网络提升算法对细节的提取能力。利用一个身份多张图像之间的身份一致性和细节一致性设置损失函数,提升算法的鲁棒性和重建质量,因此在训练时需要输入一个人的多张图像进行训练,但在推理阶段仅需一张图像便可直接得出细节三维人脸模型。算法的整体流程如图1所示。
图1 算法流程图Fig.1 Algorithm flowchart
由于人脸结构复杂,很难直接从一张二维图像学习出人脸三维模型,因此广泛使用基于3DMM 的方法进行重建。目前已有多种公开的三维可变形模型可供使用,本文使用的FLAME(Faces Learned with an Articulated Model and Expressions)[12]是一种铰接式头部模型,将头部和颈部一起建模。相较于流行的FaceWarehouse 模型[13]和Basel Face Model(BFM)[14]更具表现力和真实感,并可以模拟整个头部和颈部。
1)几何模型
FLAME 是一个参数化模型,包含5 023 个顶点和4 个关节,通过线性变换来描述与身份和表情相关的形状变化。通过控制身份参数β,位姿参数θ,表情参数ψ得到5 023 个顶点的网格模型。FLAME 模型M(β,θ,ψ)可以描述为
式中,β为身份参数,θ为位姿参数,ψ为表情参数,混合蒙皮函数W(TP,J,θ,δ)使模型TP的顶点围绕关节J全局旋转。关节的位置由身份参数定义,线性平滑由混合权重δ控制。TP描述为如下公式:
式中,TP表示由原始模型T添加了形状、位姿和表情偏移的模型。形状混合变形函数BS控制身份相关的形状变化,矫正位姿混合变形函数BP纠正不能仅由线性混合蒙皮表示的变形,表情混合变形函数BE控制表情变化。Γ,Λ,Ω分别为三个混合变形函数的基。
2)外观模型
由于FLAME 缺少外观模型,于是转换BFM模型的线性纹理空间到FLAME 的UV 空间,使其与FLAME 兼容。外观模型DA根据纹理参数α生成UV 反照率贴图A(α)。
3)相机模型
由于现有数据集的图像多是从远处拍摄,因此使用正交相机模型将3D 网格投影到二维图像空间中。v = sP(Mi)+ t,其中v是二维图像顶点,Mi是M中的一个顶点,P是正交 3D-2D 投影矩阵。s和t分别表示缩放比例和二维平移量,都归为相机参数c。
4)光照模型LSH
为更加符合真实光照情况,采用球谐光照,并假设人脸表面为朗伯面。带有光照阴影的纹理贴图计算为
式中,反照率贴图A、表面法线N和纹理贴图F均以UV 坐标表示,其中Fi,j、Ai,j和Ni,j表示UV 坐标系中像素(i,j)对应的纹理贴图、反照率贴图和表面法线。Hk表示球谐函数的基,l表示光照系数,☉表示Hadamard 积。
给定几何参数(β,θ,ψ),纹理参数(α),光照系数(l)和相机参数(c),可以经过可微分渲染器得到二维图像Ir。算法的整体流程如图1所示,图中所用人脸图像来自VGGFace2[15]数据集。
粗略重建使用每个身份包含多张人脸图像的数据集,通过弱监督学习的方法训练网络模型。首先将给定的二维人脸图像I输入到一个编码解码器结构,编码器部分由目前最先进的骨干网络ConvNeXt[16]和一个全连接层组成,用来回归低维的人脸参数。其中,形状参数、表情参数和位姿参数可经FLAME 生成人脸的三维几何模型,纹理参数经外观模型生成反照率贴图。最后通过可微分渲染器的渲染得到二维图像Ir。解码器部分使用已公开的FLAME 模型,根据编码器估计的参数得到三维人脸模型,经过可微分渲染器的渲染,投影到二维平面得到生成的二维图像Ir。为最小化生成图像与输入图像之间的距离,充分考虑图像的多层级特征,设计一种针对三维人脸重建的多层级损失函数。通过最小化如下损失函数进行训练:
式中,Lcoarse表示粗略重建损失,Lpixel表示像素级损失,Lmid表示中层特征损失,Lid表示高层身份特征损失,Lsc表示形状一致性损失,Lreg表示粗略重建正则化项。
像素级损失:为使渲染图像与输入图像尽可能接近,最直接的就是计算像素间的差异。分别计算输入图像与渲染图像间的像素差异和输入图像的UV 展开与生成的纹理贴图之间的像素差异,Lpixel=Lrec+Ltex。使用人脸分割算法,不仅能检测出头发、眼镜等遮挡,还可检测出各面部器官的位置,通过设置不同权重使网络更关注某些区域,增强算法鲁棒性提高重建的真实感。输入图像和渲染图像的像素损失函数表达式为
式中,V表示由人脸分割算法得到的图像掩码。原图的UV 展开F与生成的UV 纹理贴图Ft之间的像素损失函数表达式为
式中,Vuv表示图像掩码展开到UV 空间的掩码。
中层特征损失:使用关键点约束可以有效引导网络对参数的学习,使用关键点损失Llmk和间距损失Lspa作为中层特征损失,Lmid=Llmk+Lspa。将提前在输入图像检测到的68 个关键点作为弱监督信号,为最小化与三维模型投影所得二维关键点之间的距离,使用Wing Loss[17]作为损失函数:
式中,x表示输入图像检测的关键点与重建投影所得二维关键点之间的坐标误差,w为一个正数用来限制损失函数的非线性部分,∊约束非线性区域的曲率,为一个常数用来连接分段函数的线性部分和非线性部分。
上下眼睑距离和嘴巴张开大小对面部表情影响较大,使用两个眼睛的上下眼睑之间的距离和上下嘴唇之间的距离做间距损失:
式中,G为上下眼睑和上下嘴唇关键点的集合,ki和kj分别为输入图像上下眼皮或上下嘴唇的关键点,Mi和Mj为重建模型得到的上下眼皮或上下嘴唇的关键点。
高层特征损失:单独使用低层特征可能会导致三维人脸重建的局部最小问题,充分考虑图像的高层特征,使用训练好的人脸识别网络f分别计算两图像的人脸特征向量,然后计算两者之间的余弦相似度:
身份一致性损失:同一身份的多张图像应该有相同的身份参数,通过设置身份一致性损失Lsc可提高算法鲁棒性。根据文献[10]的工作通过交换同一身份下不同图像之间的身份参数来实现身份一致性损失。
正则化项:为防止所得形状退化,分别对身份参数、表情参数、纹理参数进行正则化,表达式如下:
式中,ωid,ωexp,ωtex分别为各项权重。
为增强FLAME 模型的细节表达,在粗略重建的基础上使用细节UV 位移贴图来凸显模型细节。细节重建时使用单一网络进行细节提取无法兼顾细节重建质量和鲁棒性。因此,结合两种网络的优缺点,使用细节一致性网络作为表情相关网络提取表情相关细节,使用图像到图像的转换网络作为表情无关网络提取表情无关细节。并设计一组多层级损失函数提升细节提取能力,使皱纹等细节更加真实自然。
表情无关细节网络:同一身份的多张图像应具有相同的表情无关细节如疤痕、痣、褶皱等,利用细节一致性原理设计表情无关细节网络,可从同一身份的多张图像中提取表情无关细节。类似于粗略重建的编码解码器结构,使用ConvNeXt 作为编码器,得到128 维的细节参数τ,然后将所得细节参数和粗略重建中的表情参数及位姿参数一起送入本文设计的一个上采样解码网络中,得到表情无关细节的UV 位移图。
表情相关细节网络:使用文献[11]工作中的图像到图像网络结构,将输入图像展开到UV 空间与粗略重建生成的纹理图像相结合送入网络,得到表情相关细节的UV 位移图。
两张细节UV 位移图一同增强FLAME 几何模型得到细节人脸模型,再经渲染投影得到细节渲染图像Id。为最小化渲染图像与输入图像之间的距离,充分考虑图像的多层级特征,设计一种针对人脸细节的多层级损失函数。通过最小化如下损失函数来训练:
式中,LphoD表示细节像素级损失,LpreD表示感知损失,Lsym表示软对称损失,LregD表示细节正则化。
细节像素级损失:同粗略重建中的像素级损失,分别计算输入图像I与细节渲染图像Id间的像素差异和输入图像的UV 展开F与生成的细节纹理贴图Fdt之间的像素差异,LphoD=LrecD+LtexD,两项损失的表达式如下:
式中,LrecD表示细节图像损失,LtexD表示细节纹理损失。
感知损失:充分考虑图像的高层特征,依据Nazeri 等[18]的工作设计了感知水平上的损失LpreD。给定一对图像I和Id,计算它们在一个预先训练的网络(如VGG-19)中激活映射之间的距离:
式中,φi为网络第i层的激活映射,hi为第i层的元素数。
软对称损失:为增加对自遮挡的鲁棒性,使用软对称损失来修正不可见的人脸部分。通过最小化如下表达式实现:
式中,D表示两张细节位移图的加权组合,flip为水平翻转操作。
细节一致性损失:对于表情无关的细节,为确保一个身份的多张图像具有相同的细节参数,设置细节一致性损失Ldc,根据文献[10]的工作通过在表情相关细节网络中交换同一身份下不同图像之间的细节参数来实现。
正则化项:分别对两张位移图进行正则化:
式中,Du表示表情无关细节位移图,Da表示表情相关细节位移图,ωu和ωa分别表示两者权重。
本文算法需要利用同一身份多张人脸图像中的身份一致性和细节一致性,因此需要选用每个身份具有多张人脸图像的数据集。使用BUPTBalancedface[19]、VGGFace2、CelebA[20]和 CASIAWebFace 四个公开的数据集作为训练集,由于这些公开的数据集多是采集自白色人种,为平衡各种族的人脸数据,从互联网上收集了上百位中国名人5 千余张图像来平衡各类人群,经过筛选总计在170 余万张图像上训练。
使用目前先进的关键点检测算法[21]对数据集中所有图像进行关键点检测,每张图像得到68 个二维人脸关键点。为避免遮挡对算法的影响使用基于BiSeNet[22]的人脸分割算法进行人脸分割,根据得到的人脸分割掩码将遮挡区域和非人脸区域权重设为0。最后将得到的68 个二维关键点和人脸分割掩码随原图像一同送入网络。
使用编程语言Python 3.7,基于PyTorch 1.9.0深度学习框架,采用Adam 优化算法,初始学习率设为1×10-4,输入图像大小为224×224,UV 空间为256×256,使用PyTorch3D 作为可微分渲染器。计算机配置为AMD EPYC 7543 处理器和NVIDIA A40 显卡。
为更好的评估重建结果,使用定性和定量两种方式分别对本文的粗略重建和细节重建结果进行评估来验证算法的有效性。并对在两个数据集aflw2000[23]和NoW 数据集中的部分结果进行可视化展示。
为验证粗略重建的质量,与3DDFA-V2[24]和PRNet[25]的重建结果进行对比,如图2所示。由图可看出相较于3DDFA-V2 和PRNet,本文算法更好的重建了面部的几何形状,重建的表情也更自然。且得益于铰接式的FLAME,重建出一个完整的头部模型,更具表现力,对眼部也有较好的表现。
图2 粗略重建效果对比Fig.2 Comparison of coarse reconstruction effects
为验证细节重建的细节质量和鲁棒性,与细节人脸重建算法DECA 和Extreme3D[26]的重建结果进行对比,如图3所示,部分实验结果图来源于文献[10]。与其他先进算法相比本文的细节重建能够在保证面部细节质量的同时,增强对遮挡的鲁棒性,使得重建的结果更真实自然。从图4 中可以看出本文算法在大姿势、遮挡和极端表情下均取得了较好的结果。图5 以特写的方式分别展示了本文细节重建和粗略重建的效果,第一列到第五列分别为输入图像、粗略重建结果、细节重建结果、粗略重建特写和细节重建特写。从图5 可以看出细节重建结果包含了更丰富的细节特征。
图3 细节重建效果对比Fig.3 Comparison of detailed reconstruction effects
图4 在遮挡、极端表情、大角度情况下的重建结果Fig.4 Reconstruction results in the case of occlusion,extreme expressions,and large angles
图5 粗略重建与细节重建效果的对比Fig.5 Comparison between rough reconstruction and detailed reconstruction
本文算法在同一身份的多张图像中训练,因此具有较强的鲁棒性。对同一个人在不同环境、不同表情下的图像进行重建,结果如图6所示。结果表面,同一身份在不同的姿势、光照和表情下生成的粗略重建和细节重建结果均能明显看出同一身份。
图6 同一身份不同姿势、光照和表情下的重建结果Fig.6 Reconstruction results of the same identity under different postures,illumination and expressions
由于缺乏带有人脸细节的基准数据集,因此定量分析主要集中在粗略形状的准确性。为定量分析重建的结果,在NoW 数据集上使用NoW 基准进行评估,并与其他优秀算法进行对比。NoW数据集包括100 名受试者的2 054 张人脸图像,并对每位受试者进行单独的3D 头部扫描。评估时先将重建模型与真实模型严格的刚性对齐,再测量所有真实顶点到重建网格表面最近点的距离。为量化实验结果,在NoW 数据集的验证集上进行计算,结果取小数点后前两位。
表1 展示了不同算法在NoW 数据集中的重建误差,部分数据来源于NoW 挑战公开的数据。由表1 可看出本文粗略重建算法在精度上要优于其他算法,这是由于本文不仅采用人脸分割算法为不同分区设置不同权重使网络更关注一些重要区域,还充分考虑图像的多层特征而设计的一组多层级损失函数可以有效地约束网络训练,在一定程度上提升了模型参数回归的能力。由于基准数据集缺乏细节特征,是对模型中的低频特征进行评估计算,而细节模型是在粗略模型的基础上结合细节位移图,两者低频特征基本保持一致。因此,在此评估中细节重建的精度相对粗略重建变化不大,但细节模型在细节方面的表现要远高于粗略模型,如图6所示。
表1 在Now 基准上的重建误差Tab.1 Reconstruction error on now benchmark mm
为验证提出的为不同细节分别设置子网络是否有效,分别单独使用表情相关网络和表情无关网络进行训练,重建结果如图7所示。仅使用表情相关网络,对遮挡情况具有较强的鲁棒性但是对细节提取的能力不足。仅使用表情无关网络,对细节有较好的提取但是容易受到眼镜等遮挡的影响。同时使用两种细节提取网络的重建,既保持了较好的细节质量,对遮挡又有较强的鲁棒性。因此,本文提出的细节生成算法是有效的,兼顾算法的鲁棒性和细节重建质量。
图7 使用不同子网络的重建结果Fig.7 Reconstruction results using different subnetworks
本文提出了一个基于弱监督学习的细节三维人脸重建算法。使用基于3DMM 的粗略模型与位移贴图相结合来表示细节人脸模型。为提高算法的细节提取能力和鲁棒性,在细节生成部分为不同细节设置不同的细节提取网络。实验结果表明,本文算法重建的结果在质量和精度上均有较好的表现,对大姿势和遮挡情况有较强的鲁棒性。然而,人脸皮肤的光学特性复杂,简单的假设为朗伯面难以准确地模拟真实人脸,对重建精度和纹理恢复都有一定影响。因此在接下来的工作中,将考虑更准确的人脸光学模型和渲染方式,提升重建的精度和纹理的真实感。
猜你喜欢鲁棒性人脸损失有特点的人脸少儿美术·书法版(2021年9期)2021-10-20胖胖损失了多少元数学小灵通·3-4年级(2021年5期)2021-07-16荒漠绿洲区潜在生态网络增边优化鲁棒性分析农业机械学报(2020年2期)2020-03-09基于确定性指标的弦支结构鲁棒性评价中华建设(2019年7期)2019-08-27玉米抽穗前倒伏怎么办?怎么减少损失?今日农业(2019年15期)2019-01-03三国漫——人脸解锁动漫星空(2018年9期)2018-10-26基于非支配解集的多模式装备项目群调度鲁棒性优化项目管理技术(2016年12期)2016-06-15非接触移动供电系统不同补偿拓扑下的鲁棒性分析西南交通大学学报(2016年6期)2016-05-04一般自由碰撞的最大动能损失广西民族大学学报(自然科学版)(2015年3期)2015-12-07损失读者·校园版(2015年19期)2015-05-14扩展阅读文章
推荐阅读文章
老骥秘书网 https://www.round-online.com
Copyright © 2002-2018 . 老骥秘书网 版权所有