◆徐凌风
(中国人民公安大学 北京 100038)
人脸检测技术作为计算机视觉中的重要一环,被广泛应用于各行业领域。在公安工作中,人脸检测技术一方面可应用于关键视频帧的人脸识别、人群筛选、安防预警的面部检索阶段;另一方面,人脸检测也可应用于图像真伪性鉴别的自动取证过程中。现有人脸检测技术可做如下分类[1]:第一类是基于先验知识的方法,通过利用面部五官的几何关系来对人脸的特征进行规则描述,并使用此规则来对待检测人脸进行判定;第二类是基于特征的方法,通过使用人脸所固有的几何特征、肤色特征、纹理特征来对人脸进行检测;第三类则是基于表象的方法,其主要依靠寻找人脸与非人脸图像中的相关特征来构建人脸特征库,此类方法可进一步分为[2]贝叶斯分类器,Winnows稀疏网络、支持向量机法(SVM)、神经网络法、Adaboost算法、隐马尔科夫模型法(HMM)等。然而,由于人脸自身所具有的特性以及不同环境给面部所带来的检测干扰,现有的人脸检测器检测精度仍受其制约。针对人脸检测中的难点,Ashu Kumar等人[3]将其分为面部形态、复杂背景、光照条件以及图像质量四类。其中,人脸形态主要包括人脸遮挡、旋转、表情变化等方面,该条件下所导致的人脸特征部分消失及改变使得检测器需要具备更高的鲁棒性;另一方面,复杂背景的存在使得背景中具有与人脸特征类似分布的区域易被误判为人脸,导致误检率的提升;光照条件的干扰可以分为色温、光强、光位三方面:色温的干扰来自入射光谱色光比例的不同,进而使得人体肤色偏离正常色调。不同的光位及光强条件则易导致人脸面部出现亮度不均、过明或过暗的情况。最后,较低的图像质量将会加大检测器提取并识别人脸特征的难度,造成检测精准度的下降。本文针对图像中的复杂背景、光照条件可能对人脸检测带来的干扰,提出了使用单峰高斯模型的肤色分割方案进行图像的预处理以去除图像中存在的部分复杂背景,并对分割后图像进行伽马校正,最后使用结合Haar特征的Adaboost算法进行人脸检测,以得到框选后人脸图像。
由于图像中具有复杂图案的地板、墙壁、家具,以及场景内人所穿戴的衣物等存在灰度分布的多变性,对于以图像中灰度分布为特征来检索人脸区域的Adaboost算法来说,这将导致人脸检测器的误检率上升。另外,考虑到某些图像场景(如室内场景)中光源的分布较为分散且光照强度不一,易导致人脸亮度的分布不均,即产生“阴阳脸”的情况。对此,本文设计使用伽马校正来确保人脸灰度分布处于较为合理的灰度层级内,以便于后期的人脸检测。图1为人脸检测中的图像预处理流程:
图1 人脸检测图像预处理流程
Angelopoulou等人[4]经研究发现,不同种族、性别及年龄的群体,其皮肤的光谱反射率曲线具有较强的关联性。肤色分割即是依据皮肤独特的反射性质在特定的颜色空间内构建肤色模型以区分背景与肤色区域。目前,肤色分割较常使用的颜色空间有RGB色彩空间、HSV色彩空间以及YCbCr色彩空间。其中,RGB色彩空间内的R、G、B三色分量由于均包含不同比例的亮度成分,难以通过简单的线性关系进行肤色与背景的区分,故不采用此色彩空间。针对HSV色彩空间以及YCbCr色彩空间,本文采用FDDB人脸数据库中的5016张人脸图像在其各自的空间内建立肤色模型,各色彩空间内皮肤像素的三维统计图如下(图2、图3):
图2 HSV色彩空间内肤色分布
图3 YCbCr色彩空间内肤色分布
通过比较可以发现,相比于HSV色彩空间,人体肤色在YCbCr色彩空间内的紧密度更高,故本文选择在YCbCr色彩空间内构建肤色模型。
根据肤色在YCbCr色彩空间内的分布关系,本文选择使用Cb、Cr分量来构建肤色的二维高斯模型,高斯模型计算公式如下:
m与C分别为模型的均值与协方差矩阵,通过对样本的统计,本文所确定的均值m与协方差C的值为:
图4为肤色像素Cb、Cr值的二维高斯分布图:
根据该二维高斯分布模型可求得图像中每点像素对应的所属皮肤概率,通过OTSU对概率图进行二值化后即可分割出图像中的肤色区域。由于人脸中包含眼睛、眉毛此类非肤色区域,故需对二值化图像进行形态学操作以获得完整的面部区域,本文所做形态学处理流程如图5:
图5 形态学处理流程图
图6、图7为原始图及其肤色分割后的结果:
图6 肤色分割原图
图7 肤色分割效果图
在部分场景中,由于光源方向及亮度的不确定性,易导致人面部出现光照不均的现象。另外,当嫌疑人佩戴帽子等装饰品时,也易出现面部的灰度分布改变,给人脸检测带来干扰。针对以上问题,本文采用了伽马变换来进行图像灰度值的非线性变换。伽马校正的公式如下:
经实验,gamma值取0.45时对图像的灰度校正效果较好,图8为原图及经伽马校正后的图像:
图8 伽马校正效果图
Haar特征是由Viola和Jones于2001年提出,基于灰度分布来表征人脸特征的一组矩形框。通过以不同的位置、大小及方向在人脸区域进行排列,并使用Adaboost算法对其筛选,进而可以得到那些对人脸及背景具有良好区分度的Haar特征。该类矩形特征所具有的辨识力可用图9来解释。
图9 Haar特征面部表述示意图
由于人面部的灰度值分布不均,某些部位如眼睛的平均灰度值要明显低于其周围部位的平均灰度值。当某一Haar矩形特征以上图所示大小及方向处于图像中的位置时,若使白色区域的平均灰度值减去黑色区域的平均灰度值,易知所得特征值将趋于某一正值k。而当该Haar矩形特征处于杂乱的背景之中时,可知其值应该趋向于0[5]。由于特征值的明显不同,此类Haar特征将会对背景及人脸具有较好的辨识度。不同类型的Haar特征如图10所示,除此之外,亦有针对人脸灰度分布做改进后的Haar矩形特征。
图10 Haar矩形特征
Adaboost算法的作用即是从上述海量的Haar矩形特征中,筛选出对人脸具有良好表达性质的矩形特征作为人脸检测中的弱分类器来使用。弱分类器的判定公式如下[6]:
其中,x、f、p、θ分别代表待检测窗口、特征值、不等式方向、阈值。针对样本集以训练并筛选最优弱分类器的步骤如下:
(1)针对样本集M=(x1,y1),(x2,y2),…(xn,yn),x1至xn代表训练样本,y1至yn代表样本的正负性,初始化其样本权重为1/n。
(2)For t=1,2…T:
①样本权值归一化:
② 针对每一个Haar矩形特征计算其错误率并选择具有最小加权错误率的作为最优弱分类器:
③更改样本权重,使得那些被错分的样本具有更大的权重:
其中,ei=0代表样本被错误分类,ei=1代表被正确分类。
(3)T类最佳弱分类器叠加以得到强分类器:
由数个最优弱分类器合成的强分类器虽然已具备了较高的检测率,但其误检率仍较高。然而,通过对最优弱分类器数量的累加以提高强分类器的性能,一方面对检测率的提升贡献较小;另一方面则易导致检测的时间过长。对此,Viola等人提出使用强分类器的级联结构来实现快速的人脸检测。该方案将多个强分类器分组并以级联形式排列,待检测窗口需通过上组分类器判定后才会进入下一层的判定。该方案使得大部分的待检测窗口在前几轮的判定中即被拒绝并不再进行检测,在保证了检测率没有较大降低的程度下使得误检率大幅减小,同时提高了人脸检测的速度。
本文实验在CPU为 Inter(R)Core(TM)i7-8750h 2.21GHz,内存为16G的PC机上使用Matlab语言进行编程实现。
实验选自FDDB人脸数据库中200幅包含人脸的图像,部分图像检测结果如下(图11):
图11 人脸检测效果图
本文以交并比IOU指数对人脸检测结果做二分类,并以精准率与召回率作为检测器的评价标准。IOU计算方式如下:
其中,A代表检测器标注人脸区域,B代表真实标注人脸区域。一般认为,当IOU>0.5时即为标注成功,图12为200例图像中检测器标注区域IOU值:
图12 检测器标注区域IOU值
可以看出,本文所采用检测器的绝大多数标注区域处于虚线上方。根据上述分类方式可以将检测结果加以区分,针对该检测结果计算精准率与召回率,设True为检测器检出人脸数量、Detection为检测器标注人脸数量Ground Truth为真实标注人脸数量。精准率(Precision)与召回率(Recall)的计算方式如下:
针对FDDB内200幅图像,其精准度与检测率如表1所示:
表1 精准度与检测率
针对公安行业内对图像中人脸自动检测的需求,设计了一种联合肤色分割模型的Adaboost算法人脸检测方案。其中,本文采用的高斯肤色分割模型可有效去除非人脸背景区域,避免后续人脸检测器对人脸的误检。另外,对分割后区域进行灰度化并应用伽马校正,则可以有效减弱面部的光照不均的现象,提高人脸检测器的鲁棒性。经实验,该方案对于图像中人脸具有较高的精准度以及召回率,可用于公安领域中的人脸检测任务。