APP下载

三维人脸测量与分割系统研究

2021-09-23余宗璞杨懿昕王俨铮刘雪岩周光泉

应用光学 2021年4期
关键词:人脸曲面测量

余宗璞,杨懿昕,王俨铮,刘雪岩,周 平,周光泉

(东南大学 生物科学与医学工程学院,江苏 南京 210096)

引言

人脸是现代身份识别技术的主要检测特征之一,在档案管理、安全认证、身份记录中有着广泛的应用。与指纹、血型、虹膜等生物特征不同,捕捉人脸不需要与用户接触以及保持其专注和稳定,因而样本的采集较其他生物特征更加安全与便捷[1]。二维人脸分割与识别已得到广泛、深入的研究,大量研究成果已成功实现转化。三维人脸测量、分割与识别是目前的热点研究问题。

人脸区域分割是指结合人脸信息,将人脸区域分割为不同语义标注的部分。除生物识别外,人脸区域分割在动画人脸设计与合成、皮肤美化与虚拟化妆、年龄性别等高等级特征预测等方面均有较多应用[2]。虽然对于人脸的二维图像分割研究已较为成熟,但二维人脸缺少深度,无法表达完整的人脸信息,像素级分割的准确性仍依赖于人脸姿态、光照等条件。随着计算成像的快速发展,已有多种成像方法用于三维人脸成像,如飞行时间(TOF)法[3-6]、激光扫描法等[6]。飞行时间法是通过激光光源发射脉冲信号到物体表面后按原路径返回,由接收器接收,通过激光的传播时间可以计算得到期望的三维信息[5]。但现有曝光算法对飞行时间测距精度和测量范围影响较大[4-6]。激光扫描法基于立体视觉原理,通过投射激光条纹以及使用相机同步记录反射条纹的形状,计算对应点的深度信息来完成三维测量,但激光设备成本较高,测量速度受限[6]。本文采用基于结构光的三维测量方法,具体采用多频外差结合四步相移正弦结构光的方法,实现三维人脸测量。

相较于二维图像,三维人脸数据中包含的几何信息对光照和姿态不敏感[7-8],其包含更多人脸区域分割所需的信息。2017年,Charles 等人提出了直接输入点云进行分割的深度学习网络Pointnet[9]。该网络在每个点上独立学习,解决了三维点云输入的无序性以及旋转性这2 个关键问题,但其忽略了局部结构。随后Charles 等人提出Pointnet++解决了局部结构问题[10]。2018年,Su 等人提出了SPLATNet(sparse lattice networks),将输入点云映射到稀疏晶格上,同样解决了三维数据的无序性和旋转性问题[11]。总体而言,由于三维数据的特殊性,为实现三维数据的分割,通常将三维分割模型设计为多边形网格形式,用于保存三维数据的点云与面片信息。在实际应用时,需要在三维分割网络结构、参数量和性能之间进行折衷。

针对三维人脸分割问题,本文开发了一种基于结构光的三维人脸测量系统,实现了人脸的三维采集,其数据以点云形式存储。进一步地,首先采用保角变换将三维人脸数据预处理为二维数据,然后研究了二维卷积神经网络实现了人脸分割,最后将分割后的结果反映射回三维空间,实现了二维映射-二维网络分割-三维逆映射的三维人脸分割方案。

1 三维人脸测量系统

本文开发的三维人脸测量系统由2 台相机与1 台商用投影仪组成,如图1所示。

图1 三维人脸测量系统Fig.1 3D face measurement system

对人脸的三维测量采用多频外差结合4 步相移正弦结构光的方法,系统标定采用张正友标定法[12]。

1.1 三维人脸测量系统标定

依据张正友标定法,本文将相机的成像过程表述为

式中:(XW,YW,ZW)为待测人脸在世界坐标系下的坐标;(u,v)是待测人脸在相机成像平面投影的像素坐标;dx、dy是像素的物理尺寸;(u0,v0)是相机中心点在成像平面上的像素坐标;f是相机的焦距;R、t是世界坐标系到相机坐标系的3×3 旋转矩阵和3×1 平移矩阵;Zc是待测人脸在相机坐标系下的Z坐标。忽略相机的切向畸变,在(1)式所示的成像模型中引入径向畸变校正,如(2)式所示:

式中:k1,···,kn是径向畸变系数;(x′,y′)是实际像平面坐标;(x,y)是理想像平面坐标;r是理想像平面坐标到相机中心像平面坐标的距离。相机参数可采用张正友标定法计算[12]。根据光线可逆原理,投影仪可视为反向相机,辅以完成标定的相机,可以实现投影仪的标定[13-14]。最后,根据对极几何原理,实现相机与投影仪的联合标定[15-16]。

1.2 三维人脸测量算法

三维人脸测量的关键在于空间中匹配待测点在左右相机中的成像像素点。本文采用多频外差结合4 步相移正弦结构光的方法实现上述目标,4 步相移正弦结构光如(3)式所示:

式中:I0(x,y)是平均背景灰度值;I(x,y)是正弦条纹幅值;ϕ(x,y)是相对相位;Ii(x,y)是第i次投影图像(x,y)处的灰度值。4 步相移法求解得到的表征人脸三维数据的相对相位,不具有全局唯一性性质。本文采用三频外差法求解具有全局唯一性性质的绝对相位。三频外差法通过对3 个频率的正弦结构光图像进行两两相位展开,得到频率更低的相位图像。本文选择的3 个正弦结构光的周期分别为

采用制造精度为5 μm 的标定板对本系统进行评价,本系统三维测量精度为0.5 mm。图2 为采用本系统进行三维人脸测量的过程。图2(a)为一幅光栅图像,光栅频率为36;图2(b)与2(c)分别为相对相位与绝对相位图,绝对相位采用三频外差法求得[15];图2(d)为三维人脸测量结果,因受遮挡等影响,测量结果中存在一定的孔洞,本文采用孔洞填充算法进行修补[17]。

图2 三维人脸测量Fig.2 3D face measurement

2 三维人脸分割算法

为解决三维分割网络的复杂性问题,本文采用了迂回策略,即首先采用保角变换将三维人脸数据映射为二维数据,然后采用二维卷积神经网络实现二维人脸分割,最后将二维分割后的结果逆映射回三维人脸。

2.1 基于保角变换的二维人脸数据映射

在欧式空间中,人脸可视为由多个三维点连接而成的曲面,不具有体积。从微分几何与拓扑学角度出发,若一个三维人脸数据等同于一个亏格为零的曲面,则可映射到一个拓扑球面。Gu 等人证明了拓扑球面可以采用保角变换无损地映射到一个拓扑圆盘上[18],即从欧式空间的三维曲面到二维平面的映射。

根据保角结构的概念,保角参数化就是将曲面上局部区域映射到复平面上。若采用定义梯度场,采用表示一组闭合曲线,可由这组曲线连续变换成曲面上所有闭合曲线,求出曲面的同调基,即可将此曲面沿着同调基切割到一个拓扑圆盘。对曲面与曲面上的一个三角面片[u,v,w],可用Munkres 提出的方法计算同调基[18],再将三角面片[u,v,w]的闭合方程写作:

而对于曲面上的顶点,其梯度场的Laplacian-Beltrami 算子均为0,调和方程表示为

设ku,v是每条边的权值,若 α与 β是对边的角,则有:

求解(5)~(7)式可得闭合曲面上三维点的参数化坐标。曲面是由离散三维点构成的多个三角面片,这个曲面是不可微的,但可用有限元分段线性函数逼近(等价于用有限元法解Riemann-Cauchy 方程)[19]。解得后,可用离散Hodge 算子求解保角梯度场,即实现在一个曲面上求解保角映射[20]。从人脸区域分割的角度出发,保角变换可以保证映射到二维平面后,人脸曲面上的任意两条曲线的交角不变[21]。此外,保角变换不受曲面旋转、平移的影响,对不同姿态的同一人脸曲面,其二维映射图像中的人脸特征是一致的。因此,保角变换在人脸各个区域保留了其三维特征。如图3所示,为零亏格人脸曲面参数化后的二维平面域的保角变换结果。本文采用深度学习的方法实现人脸分割,为获得足够的数据量,使用了与本文三维测量系统输出数据格式相同的BJUT 三维人脸数据库[22],图3 上方三维人脸数据来源于BJUT 数据库,下方数据来源于本文系统。

图3 三维人脸曲面与保角变换图像Fig.3 3D face surfaces and conformal transformed images

2.2 基于二维CNN 的人脸区域分割

区别于直接对三维人脸区域进行分割,本文对经保角变换后的二维人脸映射图像进行分割研究。采用encoder-decoder 结构的卷积神经网络来对二维人脸映射图像进行区域分割,具体架构如图4所示。

图4 encoder-decoder 网络架构Fig.4 Network architecture of encoder-decoder

其中,编码网络由5 个卷积层组成,每一个编码器层对应一个解码器层,因此解码器也有5 层。编码网络采用卷积加激活以及最大池化(Conv+ReLU+Maxpooling)的结构,编码器对二维人脸映射图像进行卷积产生特征图,部分结果见图5。激活层采用ReLU 函数,最大池化层用于实现图像在小空间内的平移不变性,取局部区域中最大值作为该区域的像素值。解码网络采用卷积加上采样(Conv+Upsampling)的结构。解码器将前面编码得到的抽象特征作为输入,逐层上采样恢复为与输入等大小的图像。在解码器将下采样数据恢复时,特征的大小会发生变化,此时必定会产生信息的丢失,本文在网络中加入Ronneberger 等人提出的特征融合步骤,在利用浅层的特征时对其进行裁剪,同时使用跳级连接保证上采样恢复的图像特征边缘更加精细[23]。Lu 等人通过实验证明了这种跳级结构能使网络对新的数据敏感度降低,提高边缘特征的精细程度[24]。上采样后,本文采用Softmax 层对逐个像素求其分割结果,完成二维人脸映射图像的分割,分割结果采用(8)式表示。

图5 特征图部分结果Fig.5 Partial results of feature diagrams

式中:K是像素分割类别的总数;pk(x)是第k类中像素点x的分割结果;ak(x)表示在位置x处的像素在特征图中第k层的激活值。网络训练中,采用交叉熵作为损失函数,衡量二维人脸映射图像分割结果,如(9)式所示:

式中:L表示单张图像的损失函数;yi表示样本属于人脸分割区域中第i类的概率;yˆi表示不属于第i类的概率;n为总类别数,在本文中n为2。损失函数值越小则表明网络训练的参数越符合训练集中的样本。

2.3 三维逆映射

为得到三维人脸的分割结果,本文采用将二维人脸映射图像的分割结果逆映射到三维人脸曲面的方法。保角变换将人脸区域的三维点、面片映射到拓扑圆盘得到二维人脸映射图像,本文在保角变换中增加了建立索引关系的步骤,即建立三维人脸曲面上的三维点与二维人脸映射图像中二维像素点之间的索引关系,如图6所示。

图6 三维曲面与映射图像Fig.6 3D surface and mapping image

其中图6(a)为人脸曲面网格,图6(b)为网格上一区域,假设三维人脸曲面上某个三角面片为分割区域,该区域由3 个带有纹理信息的三维点构成,映射到二维图像平面上为3 个二维坐标点,曲面上每个点都记录了其在保角变换下的二维映射坐标。本文遍历曲面以及映射图像即可将二维分割结果一一逆映射回三维曲面上,从而完成三维人脸区域分割。

3 人脸区域分割结果

对于二维CNN 分割网络而言,本文系统测量数据量仍不足以满足训练要求。鉴于本文测量三维人脸数据形式以及纹理信息等与BJUT 数据库相同,因此本文二维CNN 分割网络的训练、测试使用来自BJUT 三维人脸数据库的数据以及系统采集的数据,共505 个三维人脸数据。BJUT 三维人脸数据库共含500 个三维人脸数据,其中男女各250 人,年龄分布在16~49 岁,表情均为中性,数据包含人脸顶点信息、纹理信息以及网格信息。本文对该数据库的所有人脸数据做预处理。首先对杂散点云以及非人脸部位进行手动去除,保留原曲面点云上点的颜色信息,后采用球旋转算法对人脸点云进行曲面重构,最后使用Netfabb软件进行人工孔洞填充后得到只包含眼睛、眉毛、鼻子、嘴唇这4 个部位的零亏格曲面[25]。在本文的三维人脸区域分割研究中,将BJUT 数据集中9 个噪声较多的人脸三维数据进行了剔除,最终得到了496 个零亏格三维人脸曲面及其二维映射图像。本文随机将400 幅二维映射图像设置为训练集,63 幅设置为测试集。

本文实验的操作系统为Windows10,学习框架为Tensorflow,硬件环境CPU 为Intel(R)Xeon(R)E5-2630 2.2 GHz×20,内存256 GB;GPU 为Nvidia(R)Tesla P100-PCIE-16 GB×3。本文二维CNN 分割网络的平均训练时间为33.1 min,91 张测试图像分割总用时小于1 s,单个三维人脸曲面保角变换时间约15 s。本文用准确率 P(precision)和交并比IoU 评价二维映射图像分割结果,其中TP(true positive)为真正类,FP(false positive)为假正类,TN(true negatibe)为真负类,FN(false negative)为假负类。

部分测试集分割结果如图7所示。其中第1 行为4 个不同人脸的二维映射图像,第2 行为相应的二维映射图像分割结果,第3 行为分割准确率(红色为预测部分,蓝色为真值),第4 行为IoU 结果(蓝色为真值,绿色为预测区域,橘色是相交区域)。

图7 二维映射图像分割结果Fig.7 Image segmentation results of 2D mapping

将二维映射图像分割结果根据索引关系一一映射回三维人脸曲面,实验结果如图8所示,可见本文方法能够分割三维人脸曲面中的眉毛、眼睛、鼻子与嘴巴区域。

图8 三维人脸分割结果(不同视角)Fig.8 3D face segmentation results(from different perspectives)

本文使用PointNet 进行对比实验。由于各个三维人脸数据包含点数不同,对试验数据进行了固定点采样。对最远点采样和随机采样两种采样方式下的数据进行试验,在训练次数300 次时网络准确率与损失值趋向平稳,训练准确率稳定在0.93~0.95,损失值稳定在0.1~0.12,选取此时网络模型用作测试集分割对比。

对比结果如表1所示。本文二维CNN 分割网络的平均训练时长为33.1 min,测试集图像平均准确率为0.93,平均IoU 为0.78,完成63 张二维图像分割的平均时间小于1 s。在同样的硬件环境下,PoinetNet 网络训练时长平均为120 min,完成63 个三维测试集数据的平均分割时间为220 s,平均准确率为0.90,平均IoU 为0.68。

表1 本文方法与PointNet 分割结果对比Table 1 Comparison of proposed method and PointNet segmentation results

相较三维实验的结果而言,本文方法实验结果准确率以及IoU 更高,在网络训练时间以及预测时间上相较三维网络耗费也较少,在数据存储上,三维数据占用的空间相较二维图像较多,由此可见在三维人脸区域分割任务上,本文方法相较直接将三维数据作为输入的三维网络来说更优。

4 结论

本文提出了一种三维人脸测量与分割系统,该系统基于结构光方法实现对人脸的三维测量。考虑到三维分割网络的复杂性,提出了一种二维映射-二维分割-三维逆映射的分割策略。实验结果表明,虽然经过保角变换后的二维人脸在图像上存在视觉变化,但对人脸的区域分割并无影响,本文方法能够采用较为轻简的网络以较高的效率实现人脸区域分割。相较于传统二维人脸的分割方法,提出的三维人脸测量与区域分割系统能获取三维人脸的结构信息,不受光照条件和三维人脸姿态的影响,相较于现有的三维分割方法,本文避免了设计复杂的三维分割网络,有效地降低了在网络上的开发难度。

本文采用基于多频外差结合四步相移正弦光栅的方法实现三维人脸测量,系统采集数据时需要投射12 幅正弦光栅,测量所用时间较长。目前已有研究可实现单帧投影的三维测量,后续研究将考虑对系统在此方面进行改进。此外,受限于三维人脸数据的样本数,本文仅进行了三维人脸区域分割的研究,若能进一步增加测量数据量,一方面可以通过研究二维分割网络以提高三维人脸区域分割的准确率,另一方面可以采用本文方法开展基于保角变换与二维识别网络的三维人脸识别研究。

猜你喜欢

人脸曲面测量
有特点的人脸
一起学画人脸
把握四个“三” 测量变简单
滑动摩擦力的测量和计算
相交移动超曲面的亚纯映射的唯一性
圆环上的覆盖曲面不等式及其应用
三国漫——人脸解锁
滑动摩擦力的测量与计算
基于曲面展开的自由曲面网格划分
测量