王 茹,贺兴时
(西安工程大学理学院,陕西西安 710048)
基于生物特征的识别是计算机视觉、机器学习和图像处理等研究领域的一个热门课题.人脸识别、指纹识别、语音识别等基于生物特征的识别已经大规模应用于实际生活中.比如许多门禁系统、摄像监视系统、身份辨识、支付系统等都以人脸作为识别依据.然而,有些问题也正是因为以人脸作为生物特征造成的,如光照条件、遮挡(口罩、墨镜等)等外界因素,年龄等自身因素都会对人脸识别产生一定影响.人脸检测作为人脸识别的重要阶段,是改善识别能力的一个关键环节,在检测过程中减少、排除外界因素及自身因素干扰将提高识别的准确率.因此,为解决人脸检测阶段外界因素干扰导致的识别结果不理想问题,许多学者针对传统检测算法对各类干扰鲁棒性差的特点做了改进.如:李新战[1]改进了基于Haar-Like特征的Adaboost人脸检测算法存在漏检率和误检率较高、检测效率较低等不足,通过改变弱分类器的权重更新规则,级联构建成强分类器,实现对传统Adaboost人脸检测算法的改进[1-2];何芳州[3]利用色度和亮度特征融合的方法提高了存在色度和亮度差异的彩色人脸识别的准确率;文献[4-5]分别通过构建特征显著点对人脸区域进行检测;随着深度学习的完善,基于神经网络的人脸检测算法[6]逐步成为检测的主流算法.在实际应用中发现,以往基于特征的人脸检测算法对正面人脸的检测效果明显,对存在角度、干扰因素的人脸检测效果一般,泛化能力较弱.因此,本文提出基于黄金分割的人脸检测算法,利用黄金分割对人脸五官进行划分,构建比例关系,从而实现人脸检测;利用Biometrics Ideal Test人脸数据库和FDDB人脸数据库进行对比试验,考察检测效果.
黄金分割在数学上被定义为把一条线段分割为两部分,使较大部分与全长的比值等于较小部分与较大部分的比值,则这个比例(近似比为1∶0.618)即为黄金分割.在不同领域,已广泛借助了黄金分割方法严格的比例性、艺术性、和谐性的特点.如在艺术领域,希腊雅典的帕萨农神庙、达·芬奇的《维特鲁威人》及《蒙娜丽莎》等都应用了基于黄金矩形的构图理念;在数学领域,解决了譬如十等分、五等分圆周等数学难题;在军事领域,利用黄金分割控制器实现了对无人机姿态的控制等[7];在图像识别领域,景立森等[8]通过在BP神经网络改进中加入黄金分割提升了网络对手写字体识别的收敛速度和泛化能力.因此,本次研究利用黄金分割划分人脸、抓取显著特征实现人脸检测,以此提升对存在角度、干扰样本中人脸检测的泛化能力.
人脸检测算法已取得了一定成果,如经典的Viola-Jones(称VJ)算法,因检测高效、快速至今仍被广泛使用.VJ[9]算法使用haar特征与Adaboost算法对分类器进行训练,以此建立级联分类器,并提出了积分图,能够对haar特征进行更快速运算.虽然实时过程表现出色,但大量研究也表明,该算法在实际应用中的检测效率会显著降低.因此,提升检测阶段的泛化能力,即使在处理受多变因素影响的人脸样本时,算法仍可以保持较好的鲁棒性.
现实生活中对人脸的检测不存在理想状态,往往受多种因素影响,如光照、角度、遮挡[10]等.因此,在检测过程中就需要抓取人脸在视觉上能够迅速引起“观察者”注意的一种“突出性”即显著特征,这种“突出性”很难受到外界干扰而发生改变,如五官位置、尺度不变性和旋转不变性[11]等,可为抓取显著特征提供相对稳定的基础,使得对可变因素具有相对的把控能力,也使构建的算法框架在检测过程中具有较好的鲁棒性[12].
本次研究利用黄金分割法分割五官,抓取特征显著的区域实现人脸检测.研究思路来源于达·芬奇创作的世界著名素描——挪威鲁威人(图1).这幅由钢笔和墨水绘制的手稿主要描绘了一个男人在同一位置上的“十”字形和“火”字形姿态,这两种姿态被分别嵌入到一个矩形和一个圆形中,形成了完美的黄金矩形[13].由此,构建人脸检测的大体框架:人脸识别窗口(矩形窗口)、人脸(类椭圆)及分割线,见图2.其中,蓝色矩形为人脸检测窗口,黑色椭圆为人脸,红色实线为分割线,绿色为辅助线(后期在测试中加入了以中心交点为圆心,半径为参数的辅助圆).
图1 达·芬奇挪威鲁威人Fig.1 Da Vinci’s Vitruvian man
图2 人脸检测框架Fig.2 Framework of face detection
Step1:读取待检测人脸样本;
Step2:检测并标示样本中出现的人脸数量并绘制分割线;
Step3:输出检测结果及交点坐标(px,py).
其中,步骤2实现对算法框架的构建,即在检测算法提取样本中的人脸区域并用矩形窗口标注后,通过对标注后的人脸窗口进行分割完成对框架的构建.
由于人脸样本之间存在姿态差异,在检测过程中需要自适应地更改矩形检测窗口的大小以标示人脸,依据矩形检测窗口进行相应分割[14].这个阶段需要通过大量训练,不断完善检测过程,从而解决算法中可能存在的问题,使检测到的人脸在分割后抓取的特征之间可以形成严格的比例关系.
将分割线及辅助线形成的交点作为检测原点,再以分割后的五官相对差异作为检测依据,完成检测.
设第k个检测到的人脸中心交点坐标为(x(k),y(k));矩形检测框的长为l(k),宽为w(k),面积为S(l(k),w(k));辅助线与眼左、右两个交点的坐标分别为(x1,y1),(x2,y2),与嘴左、右两个交点坐标分别为(x3,y3),(x4,y4).令
其中:αk为相关性因子;d(k)(xk,yk)为中心交点分别到4个交点的距离;S(l(k),w(k))为矩形检测框的面积.
设定阈值threshold约束分割后的准则函数.若J(i,j)>threshold,则分割后的检测效果较好;反之,分割效果较差,即未提取到人脸区域[15-16].对比每一次检测的结果可知,分割效果显著的样本在检测速度上同样具备明显优势.因此,提升本文提出的算法在分割阶段的优势会大大提高检测速度,同时也可提升整体算法的检测性能.
本文试验的运行环境为Windows 10操作系统下python 3.6的OpenCV开源计算机视觉库.数据集分为训练集和测试集.其中,训练集为开源程序中提供的训练人脸数据,试验最终呈现的效果是样本中4张人脸被准确检测并标注,然后实现分割得出检测结果.由于是小样本训练,得到的检测效果也比较理想.测试集分别为Biometrics Ideal Test人脸数据库和FDDB人脸数据库.在Biometrics Ideal Test人脸数据库中的待检测样本为一个人不同角度的人脸数据,主要是通过测试了解算法对于不同角度人脸检测的效果;在FDDB人脸数据库中测试了100个待检测样本,其中每个待检测样本中人脸数目各异,检测目的主要是了解算法对Faces in the Wilds的检测效果.通过对这两种人脸数据库的测试,了解算法在对不同角度或in the wilds检测人脸的优异性,验证算法在实际应用中的检测性能.
图3 训练集及检测结果Fig.3 Training sets and results
分别选取训练集和测试集中的个例演示算法的检测效果.
1)训练集人脸数据的检测结果见图3.从训练集的检测结果可以看出,4张待检测人脸均被检测出来,并且算法的分割得到了较好的效果.由于检测样本脸部存在的角度差较小,并没有对检测效果产生影响.因此,选取的测试集数据可以很好地验证算法对不同角度、光照、遮挡等人脸检测的效果.
2)在Biometrics Ideal Test人脸数据对其中某一样本测试得到的结果见图4.测试集1的原图为两个人各4张存在光照和角度差异的8张人脸样本.检测结果显示:第1行的4张人脸检测分别呈现出一定的角度差并且存在光照差异,提取的人脸区域分割之后得到了比较好的效果;第2行相比第1行中增加了角度的影响,试验结果给出前3张的检测和分割效果较好,而第4张则未被检测出来.
3)在FDDB(Face Detection Data Set and Benchmark)人脸数据中对某一样本进行测试得到的结果见图5.测试集2的原图中存在4张人脸样本,其中存在人脸部分区域被遮挡的样本.测试结果显示,4张人脸均被成功检测和分割;检测和划分的效果较为显著.
图4 测试集1及检测结果Fig.4 Test sets 1 and results
图5 测试集2及检测结果Fig.5 Test sets 2 and results
对于人脸检测算法来说,评价其是否优异的一个重要标准是是否具有较高的正确检测率和较小的漏检率.其中,正确检测率(Correct Detection Rate)
其中:nc和nf分别为正确检测到的人脸数量和漏检人脸数量;N为待检测人脸数量.
两个数据集的检测结果见表1.结果显示:不同角度的人脸均可以被检测出来并进行分割,但有个别测试样本由于角度问题未被检测出来,即漏检人脸样本.在in the wilds中影响人脸检测的因素较多,如眼镜、双下巴等遮挡,但仍具备较好的检测和分割效果.因此,接下来需要改进的方向就是训练算法对于角度、光照、遮挡等外界因素的鲁棒性,使得每一张人脸可以快速被检测并得到分割.
光照强度及遮挡影响下的检测对比见图6.由图6可见:在光照影响下,随着光照强度的增加,传统检测算法检测的正确率急剧下降;由本文提出的检测算法在光照强度影响下的正确检测率折线可以看出变化较为缓慢,说明算法对光照影响具有一定的鲁棒性.相比传统算法漏检率随着人脸遮挡面积的增加而剧烈递增的劣势,本文算法则保持着70%以下的漏检率.因此,相比传统检测算法,本文提出的算法对光照、遮挡等因素影响的人脸的检测性能较好.
通过试验可知基于黄金分割的人脸检测算法在人脸数据库中的检测效果:在单张人脸不同角度及遮挡条件下的检测效果均比较理想;每一次检测后对人脸的分割比较理想,达到了预期效果;算法存在的不足是对含多张人脸图像的检测效果存在一定的瑕疵,鲁棒性较差;对某些不可控遮挡(如大面积遮挡、角度严重变形)等表现欠佳.完善检测的每一个步骤,使算法构建的分割框架可以在检测到人脸之后能够完成分割人脸并抓取特征点是本文算法的核心思想,也是改进传统检测算法的缘由.因此,本文提出的检测算法还需要不断增强算法的学习机能,使每次检测都能快速检测到人脸区域并进行有效分割.未来的研究方向是在优化算法的同时,提高算法的泛化能力,即对不同人脸数据集中的人脸样本均可以达到较高的速度和精度.
图6 光照强度及遮挡影响下的检测对比Fig.6 Detection comparison under the influence of light intensity and occlusion