APP下载

基于特征融合的三维人脸点云质量判断

2022-04-12杨红雨刘洪

计算机应用 2022年3期
关键词:曲率正确率人脸

高 工,杨红雨,2,刘洪,2*

(1.视觉合成图形图像技术国防重点学科实验室(四川大学),成都 610065;2.四川大学计算机学院,成都 610065)

0 引言

三维结构光采集的点云数据可能出现条纹、毛刺、变形等缺陷[1]。三维重建系统对于人脸点云缺陷必须控制在一定的范围内,否则会造成模型匹配不准,无法正常工作,因此三维人脸点云的质量判断对于预防三维重建系统错误具有非常重要的意义。

由于人脸是一种非刚体、不同于其他物体的具有复杂三维空间曲面的表面,人脸表面数据的获取往往会出现阴影、遮挡、条纹:阴影,在灯光下,人的面部鼻子和下巴下部会有阴影,而阴影部分的数据是测量不到的;遮挡,脸部往往有头发和衣领部分的遮挡,会造成人脸点云数据不全;条纹,彩色电荷耦合器件(Charge Coupled Device,CCD)扫描时,调节参数偏小,会造成视图偏暗,伴有数据扫描不全,参数过大,反光现象明显,参数调节不当,会导致彩条状斑纹[2]。

关于三维点云质量度量标准,可以分为基于点的度量标准和基于投影的度量标准两大类:基于点的度量考虑了原始点云和模板点云中点的对应关系,而基于投影的度量将3D点云映射到更经典的2D 平面上。点云质量判断的点对点指标[3]使用均方根差或Hausdorff 距离来估计原始点和处理后的点云之间的几何误差;点对平面指标[4]取决于一个点之间的距离和切平面对应点之间的相似性。Lee 等[5]提出了基于投影后可见顶点的显著之和为衡量标准的质量评价方法,从人的视觉感知特性出发,使用对网格上点云做高斯曲率加权,然后对网格上重要区域进行描述。在此基础上,Feixas等[6]对视点熵的评价标准进行了拓展,主要从信息论的角度提出了视点互信息(Viewpoint Mutual Information,VMI)的概念,建立了从视点到场景的信道,使用计算视点与场景之间的互信息,提出了基于视点互信息的评价标准。Lavoué[7]借鉴了二维图像基于结构相似性原理,将二维图像建模为三维模型,提出了网格结构化失真度量(Mesh Structural Distoration Metric,MSDM)概念,并将MSDM 用于评估三维模型数字水印算法产生的失真,取得了较好的效果。Meynet等[8]基于局部曲率统计,提出了一种基于结构相似性的点云几何质量度量方法,该度量计算每个点的第一曲率,并在点之间对应后建立。Javaheri 等[9]提出了一种基于投影的度量方法,即使用正投影获得二维彩色图,然后,使用峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)、结构相似度(Structural SIMilarity,SSIM)或视频质量指标(Video Quality Metric,VQM)等二维图像质量指标来平局图像质量,这个度量同时考虑几何形状和颜色。

有学者基于点云的特性结合现有的深度学习方法提出了PointNet,本文探索性地把点云数据作为输入进行特征提取作为其中一个模块,实现人脸点云质量判断任务。Qi等[10]使用三维点云作为输入结合深度学习方法提出了PointNet 网络,解决了点云的无序性和刚体变换不变性;Qi等[11]在PointNet 的基础上,结合二维卷积神经网络(2-Dimensional Convolution Neural Network,2D CNN)的网络模式,使用了采样、分组、PointNet 模块提出了PointNet++,分类精度得到了提升;Liu 等[12]提出了关系形状卷积神经网络(Relation-Shape Convolution Neural Network,RS-CNN),将规则网格CNN 扩展到不规则点云中;Wang 等[13]在PointNet++的基础上,提出了一个新的点云特征提取网络模块——边卷积(EdgeConv),在保证点云置换不变性的同时捕捉局部几何信息,在多个点云数据集上达到了分类正确率最高。

现有的三维人脸点云质量判断只使用了点云数据或投影的图像数据,缺失了二维或三维特征,准确率不高。本文使用ShuffleNet 和DGCNN 分别提取图像特征和点云特征,二维特征和三维特征优势互补,这种特征融合网络(Feature Fusion Network,FFN)提高了质量判断的正确率。

1 三维点云切割面部区域并计算曲率

三维人脸点云是采集人脸得到的最直接、最原始的数据信息。为了减少获取的点云数据有耳朵、脖子、头发等冗余数据的影响,需要基于鼻尖点切割出人脸面部区域。由于原始数据存在各种缺陷,如点云噪声、采样缺失、出现尖点与孔洞、变形等问题[14],因此,判断三维人脸点云质量对进一步人脸识别、人脸建模等有重要作用。

本文针对获取的三维人脸点云进行鼻尖点定位,以鼻尖点为球心、R=90 mm 为半径截取人脸面部区域,面部区域点云数据有80 000~90 000[15]。三维点云数据使用最远点融合曲率采样(Curvature Sampling of Farthest Fusion,CSFF)方法采样1 024 个点云作为动态图卷积神经网络(Dynamic Graph Convolutional Neural Network,DGCNN)模块的输入,点云经过一定角度旋转生成二维图像作为ShuffleNet 模块的输入。

1.1 三维人脸点切割面部区域

本文采用川大智胜研发的三维人脸采集设备获取点云数据,采集的点云信息包括三维坐标(XYZ)和颜色信息(RGB)。使用改进的鼻尖点定位算法定位鼻尖点后,以鼻尖点为球心、R=90 mm 切割出面部区域,切割出的不同质量的人脸点云面部区域如图1 所示。

图1 不同质量的三维人脸点云Fig.1 3D face point cloud with different quality

1.2 三维人脸高斯曲率计算

过曲面上某个点上具有无穷个正交曲率,其中存在一条曲线使得该曲线的曲率为极大,这个曲率为极大值Kmax,垂直于极大曲率面的曲率为极小值Kmin[16]。这两个曲率为主曲率。两个曲率的乘积即为高斯曲率,反映某点上总的弯曲程度。

对于三维人脸点云,先对每个点云的周围K近邻的点云近似在一个局部平面,本文选择k=15,之后通过最小二乘法拟合得到隐式曲面方程为F(x,y,z),则在点的高斯曲率K计算公式如下:

其中:∇F是隐式方程在x、y、z对应的梯度,H(F)是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率的Hessian 矩阵,H*(F)是对应的H(F)的伴随矩阵,高斯曲率和平均曲率均由∇F、H(F)和H*(F)计算得出。

1.3 点云投影到二维平面

从正脸生成的投影图像,不易观察到有条纹和毛刺等问题,只有将点云旋转一定角度后进行投影才可以观察出来。本文使用旋转正脸点云多个角度,生成二维图像,可以更好地用于特征提取。

使用三维人脸点云在x轴和y轴分别旋转+2.5°和-2.5°,每个三维点云生成5 张投影的二维图像,生成的图像如图2。

图2 不同角度的点云投影的图像Fig.2 Point cloud projection images from different angles

2 特征提取与融合

加权融合是最简单且应用最广泛的方法之一,其实质是对数据源进行加权处理,使用样本间的相互关系得到特征的加权系数,此系数反映了特征鉴别性的大小[17]。

2.1 三维人脸点云质量判断流程

三维点云质量判断的流程如图3,对采集到的三维人脸点云切割出人脸面部区域,然后分别使用三维点云数据和二维图像据在DGCNN 和ShuffleNet v2[18]进行训练,再对训练好的模型提取特征后进行特征融合,再微调两个网络模块,最后使用测试集数据对训练好的模型进行测试,得到质量分类结果,实现质量判断任务。

图3 点云质量判断流程Fig.3 Flowchart of point cloud quality judgment

2.2 特征融合方式

受ShuffleNet v2 和DGCNN 的启发,本文提出了特征融合网络(FFN)对三维点云质量判断任务有更好的识别结果。首先使用ShuffleNet 提取二维特征,同时使用DGCNN 提取三维特征,两个网络都获取1 024 维特征并加权进行特征融合,然后使用三层全连接层实现分类,得出类别得分,实现质量判断任务[19]。

如图4 所示,DGCNN 模块网络输入点数为N,坐标维度为3,即点云大小为N×3。DGCNN 模块使用融合曲率的最远点采样方式采样1 024 个点,输出为1 024 维特征。DGCNN模块训练好后,ShuffleNet v2 模块进行二维特征提取,ShufleNet 的输入为224×224 的二维图像,输出为1 024 维度特征。在特征融合阶段,本文使用了一种最优权值法,即将点云特征gF(xi,θP)与二维图像特征gF(xi,θI)融合,特征融合求取公式[20]为:

图4 FFN的结构Fig.4 Structure of FFN

其中:xi表示数据集中第i个样本;θF表示特征融合网络的初始化参数。

对于融合系数ε1和ε2的计算:首先使用两个神经网络模块分别训练,得到对应的分类准确率之后,根据式(3)、式(4)求出融合系数ε1和ε2的值。

式中:RP表示DGCNN 模块的准确率;RRGB表示ShuffleNet 模块的准确率。

2.3 改进的采样方式

在三维人脸点云中,在迭代最远点采样算法选取的特征点往往得到的是人脸的边缘轮廓或者噪声点,这些对于人脸是无用的,只有少数几个定位到鼻子、眼睛等重要的特征区域。本文基于最远点采样方式,融合了基于几何特征的采样,使得人脸特征的提取表现得更好。

对于给定的输入人脸点云P,用P={Pi}(i=1,2,…,n)表示,迭代最远点采样的点集可以表示为G={Gj}(j=1,2,…,k)表现。假设当前采样出的是j点,则采样的下一个样点应该是离j点最远的m点(m=Gk,1≤m≤k),点m应满足以下要求:

其中:d(j,Pi)表示两点之间的欧氏距离。从式(5)可看出,最远点采样大多采样人脸的边缘点或噪声点,因此本文将欧氏距离和人脸曲率进行融合可以更多采样出人脸的面部器官。得到公式d=d(k,P) +αcm,其中cm是指点m的曲率,α是设置的平衡欧氏距离和曲率的权重。从式(5)中可以看出曲率大的点距离大,更容易被选中,采样的点都集中在曲率变化大的地方,采样受曲率影响很大,所以本文通过一个α来控制曲率对采样的影响。

如图5 所示,图5(a)是α=0 时采样为原始的迭代最远点采样的结果;图5(b)是当α=1 时结合曲率采样的结果;本文选取α=0.1,在采样时不破坏点的均匀采样的前提下移动一些采样点。

图5 最远点采样和最远点融合曲率采样Fig.5 Farthest point sampling and curvature sampling of farthest fusion

2.4 损失函数

在分类任务中常用的损失函数是Softmax,其作用是将特征的线性组合映射到(0,1)内,使用交叉熵给出每个分类的概率[21]。为了衡量FFN 方法应用于三维点云质量判断的性能,损失函数使用Softmax 的交叉熵函数,包含了DGCNN模块、ShuffleNet 模块以及FFN 方法的损失函数,并分配对应的超参数:

其中:β、δ、γ是3 个部分损失函数的超参数。

3 实验与结果分析

本文将人脸点云样本的处理及使用深度学习框架进行训练和测试的过程、结果进行比较分析。实验分为三个部分:第一部分是在二维图像数据集上ShuffleNet v2.0 系列的三种网络进行训练和测试;第二部分对在DGCNN 上分别使用随机采样、几何采样和最远点采样方式和融合曲率的最远点采样在三维人脸点云数据上进行训练和测试;第三部分进行PointNet、PointNet++、DGCNN 等深度学习分类网络和FFN方法的训练和测试,并对质量判断结果进行分析。

3.1 参数设置

本文使用的系统为Ubuntu 16.04,在Matlab 2016 编写实现了改进的较为鲁棒的三维点云鼻尖点检测算法,并实现了多视角投影生成二维图像,使用Anaconda 开源管理器编写三维点云质量判断代码,基于Pytorch1.4 框架,在Python3.7,CUDA10.1 上进行测试。程序运行的硬件配置为CPU Intel Core i7-8700K,内存8 GB、显卡GTX1060 6 GB。DGCNN 模块中,输入点云数量为1 024,初始学习率为0.001,batchsize为8;ShufleNet 模块中,输入图片尺度为224×224,batchsize 为150;两个模块训练好之后,进行特征融合训练,学习率为0.000 1。点云采样和损失函数的超参数设置包括α、β、δ、γ,经过实验取α=0.1,β=0.4,δ=0.4,γ=0.2。

3.2 数据集

本文使用的三维人脸点云数据集可以分为5 类,分别为质量优秀、质量普通、有毛刺、有条纹、变形。

质量优秀 人脸器官全部清晰可见且没有任何扭曲。旋转多个角度后,未发现任何明显的条纹、毛刺等瑕疵。

质量普通 人脸整体完整,部分少量缺失。旋转为正脸,未发现任何非常明显的瑕疵、有轻微缺失;旋转多个角度:发现脸部有起伏。

有条纹 条纹不明显,需要旋转多个角度才能明显可见。旋转为正脸,有轻微缺失;旋转多个角度,发现脸部有条纹。

有毛刺 人脸整体没有变形,局部有毛刺。旋转为正脸,未发现任何非常明显的瑕疵;旋转为多个角度,发现脸部有多个明显毛刺。

变形 包含五官严重错误、器官模糊等。

数据集每个类别有1 200 张三维人脸点云图像,一共6 000 张点云图像。每张点云图像从正脸经过旋转生成分别5 张二维图像和5 张点云,二维图像和点云分别有30 000 张。

3.3 实验结果

本文在数据集上进行PointNet、PointNet++、RS-CNN、DGCNN、ShuffleNet v2 和FFN 等深度学习分类网络的质量判断实验。PointNet 首次使用深度学习的方法直接处理无序点云,最后输出各个输入点的全局或者部分分类标签。DGCNN 作为使用EdgeConv,结合全局特征和局部特征,特征提取能力更好。

本文使用二维图像进行质量判断实验,每个类别使用4 800 张进行训练,1 200 张进行测试,迭代了5 000 次。使用ShulfeNet v2 的三个版本(0.5x,1.0x,1.5x)进行实验,网络架构如表1,ShuffleNet v2 随着通道数量减少,分类正确率也随之降低,实验结果如图6 所示。

表1 三种不同级别复杂度的ShuffleNet v2的总体体系结构Tab.1 Overall architecture of ShuffleNet v2 for three different levels of complexities

图6 ShuffleNet v2的分类正确率Fig.6 Classification accuracy of ShuffleNet v2

从图6 可以看出,ShuffleNet v2 使用pointwise group convolution 和channel shuffle 在保证精度的同时又减少了网络参数。ShuffleNet v2 1.5x 的正确率为79.1%,与ShuffleNet v2 1.5x相比,ShuffleNet v2 1.0x 和ShuffleNet v2 0.5x随着通道数目上减少,分类正确率分别下降了为1.5 个百分点和9.1个百分点。

本文使用DGCNN 对点云数据进行特征提取,分别使用了几何采样、随机采样、最远点采样和最远点融合曲率采样(超参数设置为α=0.1),采样1 024 个点训练160 次对不同质量的三维人脸点云进行5 分类测试,实验结果如图7所示。

图7 不同采样方式的正确率Fig.7 Accuracy of different sampling methods

随机采样方式对于每个点采样概率相同,采样效率高但实验结果不稳定。几何采样在点云曲率越大的地方采样越多,有一定的抗噪能力。最远点采样方式使用欧氏距离采样出点云轮廓。改进的采样方式是基于最远点采样结合几何采样,采样出人脸曲率较大的点云。对于从图8 的实验结果可以得出结论,随机采样方式的分类正确率明显低于融合曲率的最远点采样方式。最远点融合曲率的分类正确率为81.9%,最远点采样为78.0%,几何采样方式为74.1%,而随机采样方式为75.2%。融合曲率的最远点采样方式的分类正确率比最远点采样有5.0%的提升,比几何采样有10.5%的提升。

本文分别训练DGCNN 模块和ShuffleNet v2 1.5x 网络模块之后,使用特征融合方法(超参数设置为ε1=0.491,ε2=0.509),训练整个网络,表2 是实验对比结果。

表2 不同网络的分类正确率Tab.2 Classification accuracies of different networks

本文使用了最前沿的基于三维点云质量判断方法,并进行实验得到分类正确率。PointNet 是把采样的人脸点云提取全局特征之后,用三个全连接层实验质量分类,获得了76.1%的分类正确率。PointNet++使用了采样、分组、提取特征操作,同时提取了全局体征和局部特征,对点云有更好的特征提取能力,其分类正确率为78.2%。RS-CNN 设计了一种从关系学习的卷积算子,将规则网络CNN 扩展到不规则点云中,获得了80.4% 的分类正确率。DGCNN 设计了EdgeConv,将多个EdgeConv 模块不断堆叠获得了多层次、语义更加丰富的特征,其分类正确率为81.9%。ShuffleNet 1.5x 使用二维图像进行分类任务,分类正确率为79.1%。本文使用FFN 方法分别训练DGCNN 和ShuffleNet v2 1.5x 模块,再微调整个网络,实现了83.7%的分类正确率。

总体来说,FFN 方法的分类正确率比ShuffleNet v2 1.5x提升了5.8%,比DGCNN 提升了2.2%。实验验证了融合三维特征和二维特征实现了特征互补,提高了分类正确率,进一步说明了特征融合网络对于三维点云质量判断的有效性。

4 结语

本文提出了基于特征融合的点云质量评估方法,使用DGCNN 模块和ShuffleNet v2 模块分别提取1 024 维特征,并使用加权融合训练出一个网络,提高了三维点云判断的正确率。本文使用最远点融合曲率采样进行改进,解决了三维人脸点云采样对于人脸边缘采样过多的问题。在不同的深度学习网络模型下得出判断正确率证明了特征融合的可行性,实验结果表明,特征融合方案对于提高点云质量判断正确率有明显提升。由于FFN 方法对于点云质量分类任务尚未达到实用的要求,接下来会改进特征融合网络以提升正确率。

猜你喜欢

曲率正确率人脸
一类具有消失χ 曲率的(α,β)-度量∗
个性化护理干预对提高住院患者留取痰标本正确率的影响
课程设置对大学生近视认知的影响
有特点的人脸
玻璃窗上的人脸
面向复杂曲率变化的智能车路径跟踪控制
不同曲率牛顿环条纹干涉级次的选取
生意
生意
“领家系”可爱脸VS“高冷系”美人脸