基于改进的MBLBP人脸检测算法设计与实现
2022-09-14薛宾田
薛宾田
(河南牧业经济学院 信息工程学院,河南郑州,450053)
0 引言
人脸检测在计算机视觉研究中是一个具有挑战性的课题。因为人脸检测的环境复杂多样,特别是在图像背景比较复杂的情况下,人脸检测的错误率很高,许多背景被错误检测为人脸,针对此问题人们提出进行基于特征的人脸的方法。基于特征的人脸检测是使用扫描窗口扫描整个图像,并计算扫描窗口中的特征向量[1],然后使用强分类器对这些特征向量进行判断该特征向量是否符合人脸特征。通过分析和对比Haar特征和MBLBP(Multi block Local Binary Pattern)特征作为人脸特征在人脸检测算法中的优缺点[2~3],本文选择使用MBLBP作为人脸特征并对该特征进行改进。改进后的基于MBLBP特征人脸检测不仅提高了在复杂环境下检测的准确率,而且与基于Haar特征人脸检测算法相比检测速度更快。
1 问题分析及人脸特征分析
■ 1.1 复杂背景下人脸检测问题分析
通常复杂背景下基于特征的人脸检测算法会将背景中的一些区域判断为人脸,因为此时许多特征和人脸特征具有相似性,从而将背景错误判断为人脸,因此误检率或虚警率较高。
针对复杂背景情况下检测错误率较高的问题,有两种解决办法。一种是寻找更加具有区分度的特征来描述人脸,或者使用特征融合进行人脸描述,Yuseok Ban等将Haar特征和LBP特征进行融合建立人脸分类器,但是特征数量的增加会降低人脸检测的速度,同时对人脸特征强度要求太过于严格会造成人脸漏检的情况。因此简单增加人脸特征数量是行不通的,这会导致计算速度以及检测准确率等问题。
另一种方法就是利用肤色特征,先利用肤色与背景明显不同的颜色特征将人脸和相似的肤色区域和图形中复杂的背景部分分离出来,然后在这些被分离出的肤色区域进行基于特征的人脸检测[4~5]。这样可以提高人脸检测的准确率;为提高检测速度,我们还需要一种寻找能保持人脸检测准确率的同时检测速度也较快的特征。经过分析本文采用经过改进的MBLBP特征作为人脸检测的新特征。
■ 1.2 Haar特征和MBLBP特征
Haar特征也称为矩形特征,该特征是由Papageorgiou等人进行科研时提出的,主要应用于人脸特征的表示。Viola等人对Haar特征进行了扩展,并成功地应用到人脸检测中,主要有5种。这五种特征共分为三类,分别为二矩形组成的特征、三矩形组成的特征和四矩形组成特征,每个矩形中的子矩形大小和形状都是相同的。Haar特征的特征值是矩形特征中白色矩形框和黑色矩形框所对应检测窗口中灰度图像所有像素点值的和的差值。这些特征能够很好地刻画人脸的一些具体特征。
Haar特征中的二矩形特征主要用来描述垂直或者水平方向有变化的特征,在人脸中表现为人的眼睛部分和脸颊部分的变化;三矩形特征主要表示这两个方向中更复杂的变化,在人脸中表现为人的鼻梁和两边脸颊的变化,因为鼻梁灰度值一般比两侧的脸颊较低,如图 1所示。从图中可以看出,上述Haar特征可以很好的反应人脸特征,但是这些Haar特征数量很大,必须使用相应算法从这些特征中挑选出最佳特征。若需要计算这些Haar特征,则需要计算出每个特征相对于矩形内灰度值的和,这个过程是非常耗时的,这将大大降低人脸训练和检测的速度。针对此问题,Viola等人引入了积分图(Integral Image)概念。
图1 人脸Haar特征
积分图是将图像上任意一点到图像起始点形成的矩形内像素点灰度值的和作为一个二维数组的值保存,得到的二维数组就是积分图。当要计算图像上某个矩形区域内像素值的和时,可以直接引用数组的值利用这些数组的值直接进行加减就可以得到矩形面积,而不用每次都计算矩形区域内像素灰度值的和。对于图像内一点a(x,y),其积分图ii(x,y) 的定义如下,式中i(x',y')表示原图像中在该点的灰度像素值:
根据积分图的定义可知,每个像素点的积分值是从当前像素点到起始点坐标(1,1)形成的矩形内所有像素灰度值总和。所以ii(x,y)可以通过以下迭代式得到。
式 2 中s(x,y)代表当前像素点i(x,y)和y轴方向上所有像素点的和。用数学公式表示为:
并且定义ii(0,y)=0,s(x,0)=0。图2是人脸灰度图和积分图图像。从图中可以看出积分图越到底部亮度越大,因为图像的矩形区域越大灰度值和越大,所以图像像素越亮。
图2 灰度图与积分图
尽管积分图的提出解决了Haar特征值计算较慢的问题,但是当Haar特征数量非常巨大时,这些特征值的计算仍然要花费很长时间。而通常情况下Haar特征的数量确实很大,如在19×19的图像中,Haar特征就有近16万个,特征数量巨大导致训练和检测速度降低。另外Haar只能对边缘、线条和中心特征进行描述,人脸的其他特征Haar特征往往无能为力,如人脸的两个眼睛和鼻子构成的三角特征Haar就无法表示,而使用纹理特征则要可以。
纹理特征是图像中由于灰度和颜色的不同而表现出的一种特征,在人的直观上纹理显示的是图像的平滑性、稀疏性和规则性等特点。纹理特征和其他特征相比,不仅包含了灰度信息的空间特性,还包含了图像表面信息和周围像素点的信息。LBP特征(Local Binary Pattern)是一种算子,可以用来描述图像局部纹理特征,能够很好的描述图像的局部信息和全局信息。MB-LBP特征是LBP的一种推广。MBLBP在LBP窗口的基础上分别在垂直和水平方向进行放大,尺寸不固定,但是还是分为9个方块。MBLBP的这一特征能够很好的描述人脸的局部细节特征和全局特征。
原始的LBP算子是一个3×3的窗口,并以窗口中心像素作为阈值,然后与其他八个像素点进行比较,若像素点大于中心像素点的值就标记为1,否则标记为0,这样一个3×3的窗口可以产生一个八位的二进制数,表示的特征种类有256个,可以用来代表纹理信息。
MBLBP特征也是一个3×3的方格,但是每个方格并不是一个像素而是由很多像素组成。MBLBP特征值是通过中心区域矩形内像素的平均值gc和该矩形区域的八邻域矩形{g1,...,g8}进行比较,同LBP特征计算规则一样,如果八邻域矩形平均值大于中心区域像素点平均值标记为1,反之标记为0,将八个邻域标记进行组合得到 MBLBP二进制编码值。
MBLBP特征由于可以放大缩小窗口,适于描述从微观到宏观的特征,因而比Haar特征更适合作为人脸特征。根据MBLBP特征的定义,也可以使用积分图来提高MBLBP特征值的计算速度。MBLBP特征和Haar相比能够描述的图像特征比较多,在图像的不同位置,以不同大小的特征分别可以描述边、线、点和角等。通常情况下,MBLBP特征的数量比Haar少的多,如在一个20乘20的窗口内只有3969个MBLBP,此时Haar特征有45891个,因此基于MBLBP特征的人脸训练和检测速度都比Haar特征快。
2 改进的MBLBP人脸检测算法
■ 2.1 MBLBP特征存在的问题
将肤色分割预处理与基于特征的人脸检测两种方法结合起来能够很好地解决复杂环境下人脸检测问题。肤色分割将图像中复杂的背景过滤掉减少背景对检测算法的干扰,然后由基于特征的人脸检测算法对分割结果进行检测。
尽管MBLBP特征能描述更加丰富的人脸特征,而且特征总量少,训练分类器和检测速度都比较快,但是MBLBP特征也有一些问题,如当中心矩形灰度值比所有相邻矩形的灰度值都大或小时,就不能准确的描述中心像素与周围像素的细微差别,因为此时只使用了中心矩形的灰度值与相邻矩形的灰度值进行比较,比如在图 3所示情况下,MBLBP特征的计算结果为0,没有反映这个差别。
图3 特殊MBLBP值
所以本文在MBLBP的基础上对其进行改进使MBLBP特征能够更加细致的描述人脸特征,从而提高人脸在复杂环境或者光照变化情况下检测准确率。
■ 2.2 MBLBP特征的改进
在灰度图像中灰度值变化较大的地方,通常具有较多的纹理信息,而灰度值均匀分布的区域纹理信息较少,原来的MBLBP特征无法区分一些灰度值变化较大的特殊特征。比如现在有两个MBLBP特征,每个特征的八邻域矩形区域灰度均值都比中心矩形灰度均值点小,两个MBLBP特征值都是0,但是第一个MBLBP特征的第一行中三个矩形区域内的灰度均值比第三行内三个矩形内的灰度均值大,第二个MBLBP特征正好相反,所以两个MBLBP特征是有区别的。
本文改进的地方是,让邻域内每个矩形区域灰度均值和九个矩形灰度值的全局均值µ进行比较,如果差值的绝对值大于这个九个矩形区域灰度均值的均方差δ,该区域标记为1,反之标记为0。
改进后的MBLBP特征值不仅可以描述中心矩形区域灰度均值较大的特征,而且也可以描述较小的灰度均值特征,同时可以过滤掉一些灰度均值基本和中心区域均值相同的纹理信息。所以改进后的MBLBP特征能够更细致的描述人脸特征。
图4 是对人脸原MBLBP特征和改进后MBLBP特征值分布进行对比试验。从实验结果可以看出,原MBLBP特征中特征值集中在0和255的比较多(图b最左和最右两侧),这样使其他特征值的区分度降低;而改进后的MBLBP特征将原来特征值为0和255的特征进行了更加细致的区分(峰值不再集中到0和255)。
图4 原MBLBP和改进MBLBP特征值分布对比
3 实验及结果分析
实验一主要证明改进MBLBP特征具有描述更多特征的优点。基于Haar特征、MBLBP特征和改进的MBLBP特征在人脸数据库MIT上学习并生成分类器,MIT人脸数据库中共有7087个训练样本,其中人脸图像有2706张,非人脸图像有4381张。
实验二对基于Harr特征、基于肤色分割算法和本文基于改进的MBLBP特征的三种人脸检测算法进行对比试验。实验平台:matlab R2013a,实验数据:MIT人脸数据库,由麻省理工大学提供。
■ 3.1 实验一及结果分析
图5(a)是三个由不同数量弱分类器构成的强分类器的检测错误率对比,检测错误率指将人脸检测为非人脸和将非人脸检测为人脸的总数量与总测试样本数量的比值。
图5 不同特征分类器误检率对比
从图5(a)中可以看出,在使用相同数量的特征进行检测时,改进后的MBLBP特征分类器具有较低的错误率。图5(b)是三种特征类型分类器的ROC曲线,即在虚警率和相应的检测率形成的曲线,从图中可以看出当虚警率为0.25时,改进MBLBP特征形成的分类器检测率比Haar特征分类器大约高0.07,比原来MBLBP特征分类器检测率高0.04。以上实验说明,基于改进后的MBLBP特征对人脸更具有区分度,主要因为改进的MBLBP特征能够描述更多图像的纹理信息。
■ 3.2 实验二及结果分析
图6 是基于Haar特征人脸检测,基于肤色分割算法人脸检测和本文算法的对比试验。
图6 多人脸检测结果
图6只是部分实验结果,为了对比三个算法检测率和误检率,本文一共在50张多人脸图片,共350个人脸的测试样本上进行了实验,分别统计了基于Haar特征人脸检测,基于肤色分割人脸检测和本文提出的人脸检测算法的检测率和误检率,统计结果如表 1所示。
表1 人脸检测统计表
试验结果表明,本文算法与基于Haar特征的人脸检测算法相比具有较高检测率同时,也降低了将背景错误检测为人脸的数量。由于基于Haar特征的人脸检测要在整幅图像中扫描人脸,而有些背景特征与人脸特征比较相似,所以会将一些背景错误的判断为人脸。基于肤色的人脸检测检测率很高,但是错误率也比较高,主要是因为人的手部或者其他肤色区域容易被错误的判断为人脸,如图6(b)实验结果。
尽管在肤色分割情况下人脸检测错误率很高,但是当肤色检测与基于改进MBLBP特征人脸检测结合后人脸检测效果很好,如图 6 (c)实验结果,因为基于改进MBLBP特征人脸检测方法会在肤色区域进行再次检测剔除非人脸候选区域。而且由于肤色分割过滤掉了大部分背景区域,基于特征的检测方法总的扫描窗口数量和检测区域大小是成正比,所以基于改进MBLBP特征的人脸检测只是针对肤色区域进行人脸检测而不用去检测非肤色区域,这样便缩短了检测时间。所以,本文算法在保证正确率的同时也加快了检测速度。
4 总结
针对复杂背景下人脸检测存在的一些问题进行分析,并提出了相应的解决办法。然后对Haar特征和MBLBP特征进行详细的分析和比较,并将积分图应用到求解MBLBP特征值中,提高了MBLBP特征值的计算速度。由于MBLBP特征存在对纹理特征灰度变换较大的特征点无法详细描述的缺点,本文对MBLBP特征进行了改进,并比较了原MBLBP特征和改进后MBLBP特征值分布,改进后的MBLBP特征能够更加细致的描述人脸纹理特征。最后,将肤色分割和基于改进MBLBP特征的人脸检测结合起来,利用两者的优点成功解决了人脸在复杂背景下无法准确检测的问题。虽然本文能够在一定程度上提高检查速度和降低误检率,但是在人脸出现旋转或者部分遮挡情况时本文会出现误判情况,所以后期本文会针对人脸旋转和部分遮挡问题改进本文算法。