120人、每人6幅图像的数据集,识别率降为71.1%。
基于轮廓线的方法提取人脸表面的若干轮廓线作为特征,采用某种度量进行匹配。Zhang等人
[4]
用PCA从三角化的人
脸表面得到初始对称轴,
再用ICP算法对齐镜像人脸,得到人脸对称平面。由平均曲率和中轴轮廓线曲率获得鼻尖、鼻梁和鼻下三个特征点,
由这三个特征点定义新的坐标系,并定位前额轮廓线和脸颊轮廓线,连同中轴轮廓线作为人脸的表示,并用ICP算法计算相应的距离,
用线性判别分析(LDA)优化各轮廓线的权重。实验结果表明该方法对表情变化不够鲁棒。
基于其他特征的方法从人脸表面提取某种特征作为人脸的表示,再用某种度量进行匹配。
基于多分类器融合的方法从人脸表面提取多种特征,采用不同的分类器进行分类,将各分类器的结果进行融合。如Chang等人
[5]
基于人脸肤色从二维彩色照片提取人脸区域,再
用ICP算法进行姿态校正。利用高斯曲率和平均曲率找出鼻子区域,
在鼻尖周围找出三个局部区域,分别用ICP算法进行匹配,再将其结果进行融合。在FRGCv2.0数据库上,识别率达92%。文献[
6]中有更详细的阐述。基于三维点云的方法将人脸用三维点云表示,再采用某种度量对人脸点云进行匹配。Medioni等人
[7]
采用被动立体视觉
获得人脸的三维表面,
用迭代对应点(ICP)算法[8]
进行人脸表面的匹配。在100人、每人7幅不同姿态的深度图像构成的数据库上,
EER低于2%。Pan等人[9]对Hausdorff距离和主成分分析(PCA)两种方法在3DRMA数据库上进行了比较。对于Hausdorff距离,EER为3%~5%;对于PCA,EER为5%~7%。
Uchida等人[10]通过立体视觉得到人脸的三维表面数据,用ICP算法进行匹配。为加快计算,采用了由粗到细的策略,即初始迭代时用少量对应点,随着迭代的进行,逐步加入对应点。对18人、每人4个中性表情人脸表面的数据库,选取适当的阈值,识别率为92%。Russ等人
[11]
先手工选取特征点用于
粗略对齐,再用Hausdorff距离进行精细对准。该文采用了一些减少计算量的方法,
如对应点只在某个局部区域中查找,采样多分辨率的思想等。在FRGCv1.0数据库上,在FAR为
0.1%时,验证概率为93.5%,识别率为98.5%。Amor等人
[12]
采用三个角度扫描获得的完整三维人脸模型作为原型库,测试人脸为2.5D人脸模型,先在测试人脸模型和原型人脸模型上手工选择两个以上的对应点用于粗略配准,再用ICP算法精细配准,得到的平均距离作为相似度量。
本文的算法就是基于三维点云的方法。3D人脸可用三维相机取得,3D人脸实际上就是三维点云,这些点都被排列在(X,Y,Z)的空间,Z坐标指示的是每个点的深度。而传统的光学相机得到的是一个二维图像。
3D点云可投射到2.5D图像。一个2.5D形象,简单地说,就是一个三维点云到灰度图像的映射,图像的亮度和深度成反比。一个3D点云是一个真正的三维结构,但一个2.5D图像只是一个二维结构。把3D点云映射成2.5D图像存在的最大问题就是临界信息的丢失,从而影响识别率。关键点选择方法对识别率也有很大的影响。1.2SIFT算法
SIFT(scale-invariantfeaturetransform)是一种电脑视觉的
算法
[13]
,用来侦测与描述影像中的局部性特征,它在空间尺度
中寻找极值点,并提取出其位置、尺度、旋转不变量。此算法由Lowe在1999年发表,2004年完善总结。其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨
识、影像追踪和动作比对。SIFT是一种基于特征的配准方法。SIFT特征匹配算法是对图像缩放、旋转甚至仿射变换保持不变性的特征匹配算法。该算法匹配能力较强,
能提取稳定的特征,可以处理两幅图像之间发生平移、旋转、仿射变换、视角变换、
光照变换情况下的匹配问题,甚至在某种程度上对任意角度拍摄的图像也具备较为稳定的特征匹配能力,从而可以实现差异较大的两幅图像之间的特征匹配。
Mikolajczyk和Schmid针对不同的场景,对光照变化、图像几何变形、分辨率差异、旋转、模糊和图像压缩6种情况,就多种最具代表性的描述子(如SIFT、
矩不变量、互相关等10种描述子)进行了实验和性能比较。结果表明,在以上各种情况下,
SIFT描述子的性能最好。一个好的图像关键点应该具有高的区分度和低的误匹配率,
应该包容图像噪声和光照变化,也应该减少由于缩放、旋转、视角变化以及局部失真所带来的不利影响。
SIFT是最著名的关键点选择方法,它能满足上述所有标准。它用灰度等级表示图像,没有颜色信息丢失,非常适合2.5D图像。
简单地说,利用SIFT,如对于一个4×4的图像,计算像素梯度向量直方图大小,每个像素有8个可能的梯度方向,因此,对SIFT描述的总大小为4×4×8=128个元素。这些特征向量经过规范化,提高光照不变性,并确保在缩放和旋转等方面的不变性。
虽然从不同角度看有许多关键点,但只有最独特的和匹配性稳定的特征点被保留下来,而这些点往往落在边缘、角落、点,或其他的“有趣”的图像部分。1.3
关键点匹配三维人脸识别算法思路
传统上,
SIFT的关键点匹配如下:如果一个测试图像包含三个以上关键点匹配的话,那么测试图像被认为包含。但是在人脸识别方面这种匹配方法并不可行,
因为人脸在视觉上非常相似。本文方法不是匹配测试图像所有从2.5D图像上提取的关键点,而是把代表人脸的三维点云沿X、Y或Z轴旋转,反复多次地把3D人脸突出点投影到2.5D图像上,然后提取2.5D图像的关键点并进行标记,这些经过标记的关键点组合成一个数据集。对关键点在测试之前予以“投票”确定关键点的权重,通过与匹配和标记的关键点最接近的未标记的关键点进行识别。
2
多视角关键点投票算法
2.1
3D点云到2.5D图像集转换
SIFT关键点只能从二维图像提取。首先把3D点云转换
成二维图像,其中图像的亮度代表深度,即2.5D图像。然后,可以从这些图像中提取特征点。用来实现3D图像到2.5D图像转换的基本步骤如下(算法1):
Input:A3Dpointcloud
1Computetheextremaofthepointcloudalongeachofthethreeax-es,obtainingXmin,Xmax,Ymin,Ymax,Zmin,Zmax
2Createa2Dimageofwidth=(Xmax-Xmin)/2,andheight=(Ymax-Ymin)/2
3Scalethez-valueofthepointsinthecloudtotherange1…2554Projectpointsontothe2Dimagepixels,settingeachpixeltothescaledzvalue.Pixelsthatdonothaveany3Dpointsprojectedontothemaresettozero.
Output:A2.5Dimage
对于每一个点云,多次执行算法1,因为在X、
Y和Z轴上