基于单张图像的三维人脸重建技术研究
2022-11-16侯珂尚梦莹
侯珂 尚梦莹
(郑州工业应用技术学院 河南省新郑市 451100)
1 一般人脸模型概述
人脸最突出的特点即个性化,民族、肤色、性别等不同,人们的面部特征也存在较大差异,而这种个性化的特征差异正是我们区分不同个体人脸的重要因素。当然,即使不同的人脸都有着基本相同的面部结构和相近的面部动作,比如两只眼睛、一个鼻子、一张嘴巴,眼睛的开闭、鼻翼扇动、嘴巴的张合等,这些基本特征就是构建人脸模型的生理基础。人脸模型技术发展至今基本可以总结出,一个完整的一般人脸模型要具备参数化、形象化、简单化的特点,其中参数化是指能够根据人脸信息对人脸模型的各种参数进行灵活调节,将人脸的个性化特征准确描述出来,生成特定的三维人脸模型;形象化特征是指能够将人脸的基本形状特征、动作表情特征等准确、方便的描述出来;简单化特征是指在满足特定环境精度需要的前提下尽量简化模型,虽然选择的人脸模型顶点越多,三维人脸精度就越高,但是计算也会越复杂,反之顶点过少则无法将人脸的细节精确的描述出来,因此要在计算复杂度与结果精度之间做好平衡。一个典型的三维人脸建模系统包括三维人脸数据的获取、一般人脸模型的导出及特定人脸模型的生成等三个部分,通过三维扫描设备可直接获取三维人脸数据,一般人脸模型则是一张利用计算机图形学、统计学、人体测量学等学科知识设计出的中性人脸,其不具备任何明显特征,主要进行人脸共有结构及行为特征的描述;特定人脸模型则是以一般人脸模型为基础,通过间接获取的三维数据按照特定的人脸进行匹配、调整。
深度学习技术中最具发展前景的关键技术就是其可以发现丰富的分层模型,在人工智能应用中,比如自然图像、语音音频波形、自然语言语料库中的符号等各类数据的概率分布均可以通过这些模型呈现出来。三维人脸重建技术所涉及到的图像生成,一直以来都是计算机视觉研究领域的重要课题,图像生成技术需要利用深度学习方法大量学习图像数据,生成各种模型,捕获不同的图像分布,再将其应用于图像编辑、图像分类等各种监督学习任务中去。在图像模型生成过程中应用深度神经网络技术,主要思想就是训练数据的数量远远大于模型中有限参数的数量,因此在生成大量数据的基本信息时需要用到有限的参数。应用深度学习技术生成模型的方法主要包括生成式对抗网络、变分自动编码器等两种,其中生成式对抗网络主要是通过两个独立网络模型之间的博弈游戏进行训练,在博弈游戏中生成真实图像的生成器及区分生成数据和真实样本的判别器。变分自动编码器则是指在概率图像模型的框架中形成化生成部师,再以最大化数据的对数可能性的下限。在具体应用过程中,虽然生成式对抗网络的训练动态很难达到平衡的状态,但是生成式对抗网络模型一旦训练好,所生成的图像就会非常清晰,且能够获得与真实图片相似的分布。
2 基于图像的三维人脸重建技术
基于应用的角度而言,只是获取人脸结构信息还具有一定的困难性,只有得到人脸形状上每个位置的语义信息,才能高效控制重建的人脸模型,这就需要得到人脸形状的稠密关键点,而稠密关键点与人脸关键点有着直接相关性,在计算机视觉研究领域人脸关键点的检测一直都是一个热点问题。传统的二维检测器只能检测出二维图像中人脸可见部分的坐标位置,如果人脸角度较大则会增加人脸描述的难度,此时就需要人脸三维关键点的检测,将人脸三维形变模型或者拟合人脸模板输入二维图像,再拟合三维几何上选择对应的坐标点,从而得出三维人脸关键点。目前稀疏关键点检测任务已经有了很大的突出,研究者们将重点放在了稠密关键点的检测研究,三维稠密关键点是指输出结果不止能够得到两张二维图像人脸的语义信息,还能够将二维人脸与三维人脸模板的对应关系呈现出来。现在的技术已经可以使用深度卷积网络直接学到输入的二维图像与一个三维人脸模板之间的稠密对应关系,但是这种方法只能预测出二维图像中可见人脸的部分信息,如果人脸被遮挡,或者角度不同导致部分人脸不可见,则无法预测出这部分人脸的对应关系,因为该技术是基于投影的图像空间记录对应信息。本研究提出的UV 空间记录人脸信息能够将人脸的全部信息完整的表达出来,包括人脸角度不同、遮挡部分等在输出图像中不可见的部分。
目前基于图像的三维人脸建模技术是最受欢迎的建模技术之一,其可通过二维图片或人脸摄影片段结合视觉技术对面部三维数据进行重建,该技术对硬件设备配置要求低,数据更易获取,技术灵活性高,且人脸的真实感、准确度也相对较高。现阶段常用的基于图像的建模技术包括基于单张图像的建模、基于正交视图的建模、基于多幅图像的建模、基于单目/双目视频建模等多种。基于单张图像的建模最典型的方法就是明暗恢复形状,其又包括进化方法、最小值方法、局部方法、有限差分离散化方法等四种经典类型。虽然基于单张图像的建模技术目前已经取得了较大的进展,然而还存在一些不成熟的地方,利用二维图像信息建三维模型需要添加一定的制约条件,且该方法对物体表面高光区域的敏感度更高,因此在地形恢复、缺陷检测、数控浮雕等领域该技术的应用更加成熟。基于正交视图的建模是指从一个正视图和一个侧视图获取人面部三维信息,从正视图获取人脸特征的xy 坐标、侧视图获取yz 从标后即可建模。正交视图建模所需图片手机或照相机拍摄的照片即可,方便快捷,不过必须要求白光,人皮肤颜色与拍摄背景也不得相近。基于多幅图像的建模能够为人脸重建提供更多信息,其准确度更高,可获得更多样化的面部细节。不过这种技术需要大量的手动操作,建模过程比较复杂。基于单目/双目视频建模主要是将含有人面部的视频作为输入信号,截取视频中2 帧图像标记控制点,求出对应点之间的关系构建三维面部模型。虽然过程科单,但是从视频中提取的人脸特征点不可避免的会存在偏差,直接影响到重建效果。总之,基于图像的三维人脸重建技术优势明显,缺陷也突出,最主要的缺陷就是面部特征点的检测与提取,需要大量的人工操作来完成。本研究采用的三维形变模型(3DMM)通过单张图像重建三维人脸,该方法运用一定的几何变换构建参数化人脸,将一个三维人脸解析为多个三维人脸的线性组合,通过迭代对人脸参数进行反复调整,直至人脸投影形状与图像纹理互相匹配。
3 基于3DMM模型三维人脸重建技术
3.1 生成样本图片
多种方法都可以实现三维物体的表达,因此可以通过多种方法实现三维人脸的深度学习重建,如果用体素表达三维人脸,可以在三维物体中应用图像上的二维卷积计算方法,不过这种方法占用内存相对较大,针对这种情况,一些三维物体具有特定的结构,则可以应用一些便利的表达方式来创建,再用经典卷积神经网络进行学习。比如可以通过几何映射的方式对空间网格进行参数化处理,再将三维网格映射至二维空间,三维与二维就可以通过UV‐map 实现对应,再通过图像采用的卷积神经网络在UV‐map 上进行操作、学习。在计算机图形学的范畴三维模型向二维平面的映射是通过正交投影或透视投影实现的,正交投影没有拉伸与压缩,是一束平行光照射物体产生的投影图像,可以将物体的尺寸更加真实的反映出来;透视投影则符合人眼看事物近大远小的认知规律,本研究采用透视投影方法构建三维人脸投影模型。然后进行归一化人脸图像生成,采用Dlib 库中的正向人脸检测器提取人脸的特征点、轮廓点及五官点,通过人脸特征点的包围盒裁剪图像获取有效区域。
3.2 三维人脸参数表达
本研究采用基于卷积神经网络的级联回归方法,通过上述人脸图像投影归一化结果拟合3DMM 的234 个参数,获得三维人脸形状表示。本研究采用CNN 拟合3D 人脸模型,CNN 在对象检测及图像分类领域,有着极为出色的提取图像信息的能力。设计过程中先检测原图的特征点,根据特征点包围盒剪裁原图大小,以保证拟合过程的准确性及高效性。三维人脸模型的初始参数可以根据二维及三维特征点位置估算出来,生成投影归一化图后将其合成CNN 网络输入,此时即可更新三维人脸的相关参数,包括表情、形状、姿态等,参数更新后再生成新的投影归一化图,将原图合成输入网络,而后再重复上述步骤进行循环迭代,生成最终的参数,将其代入3DMM 模型拟合公式,三维人脸模型即建成。当然,不同阶段多次迭代级联回归所用的网络结构也存在差异,本研究采用的网络结构是统一的。低级特征由前两个卷积层提取,人脸细节及重要位置特征由后两个卷积层提取,三维人脸重建的目标是从单个人脸图像估计人脸参数集合Pall值,两个全连接层将其回归为234 维向量,所得到的人脸参数即为完成一次迭代更新后的。
3.3 基于UV位置图的重建优化方法
3DMM 模型中有5 万多个顶点的位置控制人脸,其通过人脸数据库中的200 张人脸及234 个PCA 参数还原人脸信息,然而数据库中人脸样本小,且少量的PCA 参数无法还原更高真实感的人脸,为解决该问题,本研究采用UV 位置图的人脸表示方法以端到端的方式生成三维人脸。所谓端到端方式即训练端到端的卷积神经网络,从图像直接获取经过重建的三维人脸,输出端的预测结果即为输入数据,由于结果与真实值存在误差,误差又会在模型中反向传播,系统又会根据误差调整每一层权重,直至达到预定条件后,整个迭代循环即完成,整个过程省略了复杂的转化与渲染流程。记录三维人脸的面部点云坐标采用Uvmap 生成,Uvmap 会计算Laplacian 权重的Tutte 嵌入,得到网格边界映射到正方形。通过训练编制码解码网络可以完成人脸与UV 的对应,利用加权损失函数可以实现面部细节精度的控制,最终实现三维人脸的重建。本研究中为获得更高精度点云,UV 位置图大小选择256,并忽略重采样误差,UV 位置图记录了3D人脸密集点云信息及语义含义,采用CNN 直接回归位置图,同时获得3D 人脸结构与密集对齐结果,大大简化了网络体系结构。UV 位置图中包含了整个面部的信息,并能够推断出人脸不可见的部分,将一个完整的3D 人脸还原出来,再从原图采集三维人脸上每个顶点的颜色值,最终获取彩色的三维人脸。
4 三维人脸纹理补全
三维人脸模型包括形状与纹理两部分,在图形学中的纹理贴图一般是以特定方式存储了所有空间点云对应的颜色信息的一幅图像,如果物体表面的几何形状没有太大的区别,则纹理可以将表面细节更有效的展示出来。不过在BFM 数据库中,与肤色相近的颜色才能通过数据库中所存储的人脸纹理模型拟合出来,且结果与实际的五官、面部细节纹理有着很大的区别。上文针对人脸模型形状的构建进行研究,下文主要探讨三维人脸的纹理补全方法。
4.1 基于UV位置图的纹理提取
为更好的观察三维人脸模型的完整纹理,本研究采用UV 纹理图表示人脸表面的颜色信息,由于完整的UV 纹理图与人脸姿态没有关系,因此姿态因素不会对纹理特征的提取产生影响。我们可以从任意一张二维人脸图像中回归得到UV 位置图,并提取出UV 纹理图像,实际由于人脸可能会发生自遮挡导致部分区域纹理不可见,如果得到完整的UV纹理图,再与上述重建的完整的人脸几何结构相结合,即可生成任意角度的人脸图像。此外,周围环境的光照也会对人脸外观产生直接影响,导致人脸的对称性被破坏,针对这一问题,本研究采用统计平均人脸纹理减绘光照的影响,减去拟合的带光照人脸纹理外现,增加平均人脸纹理,既可以更好的保持人脸的对称属性,所获得的新纹理图中又包含原始纹理细节,既保持了人脸纹理表现的特性,又减少了光照的负面影响。
4.2 基于生成式对抗网络的纹理图补全
在获得了给定二维人脸图像可见的部分纹理后,可选择生成对抗网络补充完整纹理,使用完整的UV 纹理图作为训练数据,输入模拟不同姿态下二维人脸的纹理缺失图:
4.2.1 纹理补全网络结构
纹理补全网络结构包括两个部分,一是生成器,其主要作用是接受缺失的纹理图作为输入,再输出补全的纹理图;U‐net 结构是图像输入与输出时常用的网络结构,因此本研究采用编码器‐解码器网络架构生成纹理。二是判别器,其主要作用是区分图像是真实的还是生成的。本研究设计两个判断器进行纹理补全,即全局判别器Dglobal 和眼睛判别器Deye,其中全局判别器的主要作用是区分经过生成器补全的纹理与真实完整纹理,眼睛判别器则用于保持眼睛的特殊对称性。
4.2.2 损失函数
本研究采用重建误差损失函数最大程度上减少补全纹理与真实纹理每个像素值的差异,使用L1 损失函数可以保留更多的纹理信息:
Lrec=‖G(x)‐xgt‖
上式中,G(x)为补全的纹理;xgt为真实纹理。
人脸上的纹理经过光照处理后基本对称,遮挡区域的纹理生成可利用对称损失函数进行改善:
对抗性损失函数可以增加生成图像分布与真实纹理图像的相似性,其函数表达式如下:
上式中,p(x)表示输入数据分布;p(xgt)表示真实数据分布;
式中λi(i=1,2,3)表示超参数,主要用于平衡各损失函数的影响。
4.3 人脸纹理修复结果对比
本研究对一些非正面的人脸图像进行测试,以验证本方法的效果及鲁棒性,测试图片采用人脸数据库中的人脸图片。分析处理结果可知,原始图像人脸由于向右30 度,会导致半侧人脸被遮挡大部分,因此纹理贴图存在纹理混乱、缺失等问题,修复后缺失部分的纹理基本自然衔接,不存在断裂现象;为保证彩色三维人脸能够具备原图的纹理,可针对纹理贴图中的人脸顶点,将其像素颜色值还原至三维人脸模型,修复后的三维人脸姿态角可设置为能够展示被遮挡部分人脸的姿态角,三维人脸经过修复后,原本遮挡部分混乱或缺失的纹理已经基本消除,不过还存在某种程度的模糊问题。由此可见,采用本研究提出的纹理修复算法,缺失的人脸纹理能够得到有效修复,且适用于不同角度的人脸纹理修复,稳定性较好。
5 训练数据及后处理
三维人脸的信息收集难度远远大于二维人脸图像,因此很难获取大量的、完整的、逼真的三维人脸纹理数据。上述三维人脸形变模型中的合成纹理无法将所有细节完整的呈现出来,因此从正面人脸图像中能够提取更多逼真的纹理。本研究在确定训练目标图像时,正面图像可以从CelebA 数据集中提取,人脸纹理信息可以从MultiPIE数据集中提取出来,人脸形状与姿态可以通过三维形变模型随机生成,然后进行计算,即可得到蒙版图处理目标图像及训练模型,最后再进行全无光照纹理补全即可。整个过程中需要注意,由于训练数据本身也不完善,故此可能侧脸颊区域的生成效果相对较差,针对该问题可先从可见区域提取高频信息,再将完成的区域混合对称细节,利用人脸对称进行纹理后处理。在获得完整的无光照纹理后,将平均纹理减去的同时添加照明纹理,逆过程处理光照获得完整、逼真的人脸图像纹理。
接下来进行定量分析与不同光照分析,定量分析是将已经进行纹理补全的人脸重建方法与未进行纹理补全的人脸重建方法进行比较,由比较结果可知,人脸重建结果经过纹理补全后,其真实性、完整性大大提升,由此可见,纹理补全十分必要。为了验证光照处理部分的有效性,同样要测试不同光照下的人脸图像重建结果,以MutiPIE 数据集中的同一人、同一姿态在不同光照条件下的图片作为测试对象,以排除人脸形状、姿态等其他因素对测试结果的影响。
最后进行人脸识别分析。完整的三维人脸模型重建完成后,就大大降低了人脸图像的呈现难度,且人脸图像的姿态、光照也更丰富。不过需要注意一点,人脸图像需要与人脸身份信息相对应,人脸的几何结构、补全的纹理都需要保留输入人脸的身份信息,否则三维人脸模型就无法准确的应用于人脸识别与面部重视。因此需要对人脸识别效果做进一步验证。具体操作中可以利用训练好的人脸识别模型进行验证,从重建的三维人脸中生成不同角度的人脸图像,再用输出的二维人脸图像与之对比,比较二者的相似性。
总之,随着人脸识别技术的不断发展,基于深度学习算法的人脸几何任务重建技术也得到了很大的发展,但是人脸几何表示方法对于计算机算法而言存在天然的局限性,无法利用卷积神经网络的强大学习能力进行高效的几何重建,而利用立体栅格、三维形变模型参数等表达方法进行人脸重建,则存在重建效率低、缺乏细节信息导致重建效果差的不足。本研究提出的使用UV 空间表示人脸几何信息的方法,能够从单张二维人脸图像中直接回归出人脸的形状,并能够明确形态上每个点的语言信息,大大提高了三维人脸重建的效率及效果。经过在多个测试集上的定性分析与定量分析可知,本研究提出的方法不仅能够实现更高效的人脸几何信息重建,而且结果也更加精确。