一种融合改进型AdaBoost和肤色模型的人脸检测方法∗
2018-04-26姚子怡张清勇李雪琪
姚子怡 张清勇 李雪琪
(1.水果湖高级中学 武汉 430070)(2.武汉理工大学自动化学院 武汉 430070)
1 引言
人脸检测[1~2]即判断待测图像或视频中是否存在人脸,是人脸图像分析的重要内容,它是人脸识别系统实现的前提和基础,其检测结果会对后续面部的特征提取和人脸的分类识别产生重大的影响。人脸图像中包含颜色特征、模板特征、直方图特征、结构特征及Harr特征等多种模式特征。其中肤色特征[3]是人脸的一个重要特征,它与大多数背景区域相比,其颜色有着明显的区别,并且具有更好的稳定性。但对于复杂的背景图像而言,肤色检测的效果并不理想,且误检率高、精度有限[4]。2001年,Paul Viola和Michael Jones提出了基于Ad⁃aBoost算法的人脸检测方法[5],是第一个在真正意义上建立了实时人脸检测的系统,从根本上解决了人脸检测的速度问题。AdaBoost方法虽然检测率很高,能达到95%以上,但它仅利用人脸灰度特征,没有综合考虑肤色分布等问题,因此对某些和人脸相似的物体,误检率很高,并且检测速度也有待提升。姚建[6]采用单阈值法训练弱分类器,在阈值选取合适的情况下能够得到质量较好的弱分类器,但是当训练样本较大时,不仅训练周期长且准确率会有所降低。
为了提高检测算法的准确性和效率,本文首先给出了双阈值的搜索方法,并由此得到了双阈值AdaBoost分类器算法,从而得到分类质量更好的弱分类器。其次提出了一种融合高斯肤色模型和改进型AdaBoost的人脸检测算法。先研究了基于Haar矩形特征的迭代训练学习的改进型AdaBoost算法,并将其作用于待测图像中,分割出候选人脸区域;其次建立了YCbCr空间下肤色色度分量Cb-Cr二维分布的单高斯模型,依此模型构建肤色似然图,并进行形态学滤波及人脸先验知识判断得到相应的二值化图像,依此图像对人脸候选区域进行筛选,以剔除非人脸区域。
2 基于Harr特征的改进型Ada⁃Boost的人脸检测
2.1 人脸Harr特征
人脸Harr特征是一种简单的矩形特征,它基于图像的特征值进行图像的分类[7]。如图1是三种典型的Harr特征,定义为白色矩形框内像素点灰度值与黑色矩形框内像素点灰度值之间的差值,它能反映检测对象特征局部灰度变化。
图1 三种典型的Haar特征
采用上述Harr特征对人脸进行检测时,将上面任一矩形放置在待检测图片上,然后用白色矩形框的像素灰度和减去黑色矩形框的像素灰度和,获得的值称之为Harr特征值。人脸区域的Harr特征值和非人脸区域的Harr特征值存在较大的差值,所以上述矩形框作为检测和区分的依据,其目的就是用数值表示人脸特征。
2.2 改进型AdaBoost分类器
AdaBoost算法是选用一系列分类能力较弱的分类器,将它们联合起来,构成一个分类性能优秀的强分类器[8]。在每一轮训练迭代中,要不断地对样本权重值进行调整,分类正确的样本,需要降低其权重,分类出错的样本,需要增加其权重,这样训练算法将分类重点放在分类困难程度较高的样本上。每次进行样本权重修改后,会将修改值引入下一个分类器继续分类,不断训练迭代得到若干分类能力较优的弱分类器,想要要得到分类能力强的强分类器,只需将弱分类器串联起来。但是基于Ada⁃Boost的特征选择算法在进行特征选择时,每个弱分类器仅使用了单阈值[9~10],这必然导致单个弱分类器的误分率较高。本文采用双阈值的弱分类器代替原有的单阈值弱分类器,即每个弱分类器使用上下两个阈值,提高了单个特征的分类能力,减少了训练时间。
1)弱分类器两个阈值的选取
步骤如下:
(1)计算某个Harr特征(所)在所有样本(中)的特征值,并对样本中所有特征值进行从小到大的排序找出最小值 fmin和最大值 fmax,然后从小到大依次计算每个特征值所对应的正负样本数n1和n2。
(2)由公式T=n1/(n2+1)计算每个特征值所对应的正样本数n1与负样本数n2的比值T。
(3)计算出T最大时对应的特征值x。
(4)从 x向左右分别搜索过渡点 θ1,θ2(θ1<θ2)。即 T=1时所对应的特征值;如果不存在这样的特征值,那么就取边界点。则这样的两个点就是弱分类器的两个阈值θ1、θ2。
2)改进型双阈值AdaBoost算法具体操作步骤如下:
(1) 给 定 训 练 样 本 集 :(x1,y1),(x2,y2),…,(xn,yn),其中xi为人脸样本向量,yi为样本类别,其取值为0或1,若样本为人脸,则 yi=1,若样本非人脸,则 yi=0,设定样本的总数为n。
(2)初始化样本权重,假设第t次循环中第i个样本的权重 ωt,i,人脸样本的初始权重为ω1,i=1/2m ,非人脸样本的起始权重为 ω1,i=1/2l,其中,m是人脸正样本的个数,l是人脸负样本集的个数[11],且满足 n=m+l。
(3)t=1,…,T(T为训练过程的最大循环次数)
①归一化权重:
②按照上述双阈值搜索法计算双阈值分类器的两个阈值。训练中的每一个特征 j的弱分类器记为hj,然后根据样本分类情况,依照下式得出该分类器对应的加权偏差率:
③从所有的弱分类器中挑选分类错误率εt相对更小的弱分类器ht。
④根据找出的最优弱分类器,对样本权重进行调整,每一代权重系数均与前一代有关,调整公式如下
(4)将获得的T个最优弱分类器按不同的权值叠加成一个强分类器,加权公式如下
对每一个Harr特征所对应的弱分类器采用上下限双阈值法,使弱分类器的质量得以提升,再由这些质量较高的弱分类器联合成为强分类器,这样训练出来的强分类器性能肯定也是有所提升的。当训练出强分类器后,对待测图片进行人脸检测,即让获得的各个最优弱分类器参与决策,再对决策结果根据分类误差值的大小进行叠加,比较加权的决策结果和平均决策结果之间的大小,得出最终的判定结果,即强分类器的输出结果。本文采用MIT人脸数据库中的训练样本用于AdaBoost分类器的训练,MIT人脸数据库中人脸样本和非人脸样本的数量分别为2429和4581,从人脸样本中抽取246个作为分类器检测样本,剩余样本用作训练样本,图像大小为19×19像素,其中样本背景比较丰富,包括肤色、姿态、遮挡等。本文测试环境为Win7操作系统,在Matlab R2012a平台实现编程。表1是传统AdaBoost算法与本文改进的AdaBoost算法在分类器检测率和检测时间上的比较,由表可见本文方法在检测率和检测时间上优于传统算法。
3 基于YCbCr色彩空间的高斯肤色模型
肤色是区分人与外界背景区域的一个相对明显的特征,因此可作为人脸检测的依据。通常待检测图片像素点以RGB色彩空间表示,但此空间对光照敏感,人脸检测结果受光照影响较大。本文使用YCbCr色彩空间建立高斯肤色模型进行人脸检测,先将待测图片从RGB色彩空间映射到YCbCr色彩空间,再根据采集到的肤色样本建立相应的高斯肤色模型,依此模型作为肤色判定的依据,其组成框图如图2所示。
图2 肤色模型检测组成框图
3.1 YCbCr色彩空间
YCbCr色彩空间被广泛地应用于电视色彩显示、数字摄影等领域中。由于YCbCr色彩空间中亮度信息和色度信息可以相互分离,且Cb、Cr两个向量相互独立,能够较好地反映肤色的聚类性,因而,用于人脸检测时,往往将图像的像素点从RGB色彩空间转换到YCbCr色彩空间。
该模型与RGB模型的转换关系如下:
3.2 肤色分布高斯模型
肤色信息在一定的光照条件下以正态分布的形式存在,而高斯模型是利用高斯概率密度函数(正态分布曲线)来量化事物,因此,采用高斯模型进行肤色分割具有一定的合理性和优越性[12~13]。一般情况下,在YCbCr色彩空间建立高斯肤色模型有如下步骤:
1)收集一定数目的人脸图像,进行光照补偿,提取面部同一位置的皮肤区域,构成肤色样本集。本文选取了不同人种、性别、年龄以及不同光照条件下共100幅人脸图像作为样本,对前额上的皮肤进行提取并归一化为相同的大小。
2)将肤色样本从RGB空间映射到YCbCr空间,去除亮度分量Y,统计肤色像素点的色度分量Cb和Cr。
3)根据以下公式计算出Cb和Cr的均值及协方差矩阵C。
式中,x表示样本像素点的色度向量(C b,Cr)T,m表示样本计算分析得到的肤色均值,C是与之对应的协方差矩阵,本文所得到的m和C分别为
建立好高斯肤色模型后,需要判断待测图片中每一个像素点是否属于肤色像素点,即求出像素点的肤色似然概率,公式如下:
得到似然概率后,对每个肤色似然概率值进行归一化操作,以保证各个像素点的似然概率在[0,1]之间,并且使肤色区域亮度更加明显。选取合适的阈值对肤色似然图进行二值化处理,本文仿真实验中选取阈值为0.5。由于采集图像或处理图像时会引入背景和噪声,则阈值分割后的二值图像中会包含一些被误判为肤色的小块区域。利用数学形态学[14-15]可解决这一问题,即对图像进行先腐蚀后膨胀的操作方式以消除人脸图像中的散点,并对图像进行平滑处理并填充肤色区域中的孔洞。
对于处理后的二值化图像,仍然有可能存在非人脸的肤色区域和类似肤色的背景区域,为了滤除这些非人脸部分,可依照人脸先验知识中的几何特征对疑似人脸区域进行筛选,使人脸区域尽可能完整地保留下来。本文设计如下筛选条件:
1)根据区域的填充率进行筛选。若填充率大于等于0.5,则保留该区域,这样可以滤除手脚、胳膊等与人脸肤色类似的非人脸区域。
2)根据面积比进行筛选。计算每块候选区域与最大候选区域的比值,若大于等于0.2则保留该区域,这样可以滤除一些较小的非人脸区。
3)根据区域的长宽比进行筛选。本文设定人脸的长与宽的比值在0.8~2之间,若疑似人脸区域长宽比在0.8~2之间,则判定该区域是人脸区域。
4 基于融合改进型AdaBoost和高斯肤色模型的人脸检测方法
基于Harr特征和AdaBoost的检测算法速率快,效果好,但存在着误检率高的缺点,基于高斯肤色模型的检测算法容易受到外界光照、背景环境的影响。为了提高检测算法的准确性和鲁棒性,本文提出了一种融合高斯肤色模型和改进型AdaBoost的人脸检测算法,其检测流程框图如图3所示。
图3 人脸检测流程框图
图4 肤色检测示意图
先用基于Harr特征和改进型AdaBoost的人脸检测算法对输入图片进行预检测,再用基于高斯肤色模型的检测算法加以验证,以剔除误检的人脸区域。为提升检测的准确率和效率,减小计算量,本文采用如下验证方式,如图4所示。先划定Harr特征和改进型AdaBoost算法检测出的疑似人脸矩形框(图中黑线包围部分),统计框中全部肤色像素点的数目sum,即统计肤色二值化图像的矩形框中像素点值为1的像素点数目。若sum<(w idth×weight)2,则判定该区域为非人脸区域,否则判定该区域为人脸区域并用蓝实线标记。基于肤色和改进型AdaBoost算法的人脸检测仿真结果,如图5所示。
图5 基于肤色和改进型AdaBoost算法的人脸检测仿真图
5 仿真对比分析
为了验证本文所提出的融合改进型AdaBoost和肤色模型的人脸检测算法的有效性,本文将其与一些常规的人脸检测算法进行对比。实验对多人脸图像测试集和复杂背景多人脸图像测试集分别进行检测。测试图像源自于生活中的数码照片及从互联网上随机搜集的图像。多人脸图像测试结果举例如图6所示,复杂背景多人脸图像测试结果举例如图7和8所示。其中,图(a)为只采用基于Harr特征和AdaBoost的检测算法进行人脸检测的结果。图(b)为只采用基于肤色模型的检测算法进行人脸检测的结果。图(c)为基于SNOW的人脸检测[16],首先采用局部连续均值量化变化算法对灰度图像进行处理,对处理后的图像通过SNOW分类器实现人脸检测。图(d)为本文提出的检测算法检测效果图。
图6 多人脸检测效果图
图7 复杂背景多人脸示例一检测效果图
图8 复杂背景多人脸示例二检测效果图
由上图可知,AdaBoost算法检测率虽然较高,但有较多的非人脸背景区域被误检为人脸。基于肤色分割的检测方法可检测到图中大部分人脸区域,但是人脸的定位不够准确,并且也能够检测到部分非人脸肤色区域与类肤色区域,对于具有复杂背景的图像,误检率较高。SNOW算法通过对大量正样本和负样本的学习,使得系统存在较低的误检率,但漏检情况比较突出。本文将改进型AdaBoost算法和肤色模型融合起来,既利用了AdaBoost在多人脸检测方面的优势,又使用肤色模型进行二次筛选,使得系统存在较高的检测率和较低的误检率。4种方法分别在多人脸图像测试集和复杂背景多人脸图像测试集上的实验结果如表2和3所示。
表2 多人脸图像测试人脸检测结果比较
表3 复杂背景多人脸图像测试人脸检测结果比较
由上表可知AdaBoost算法检测较高,但误检率也较高;肤色模型检测对比AdaBoost方法检测率有所提升且误检率较低;SNOW算法虽然误检率较低,但检测率也较低;本文检测方法对比其他三种不仅在检测率上有所提升,并且降低了误检率,具有良好的检测效果。
6 结语
本文先提出了一种改进的双阈值AdaBoost算法,并给出了阈值搜索的方法,通过双阈值的方法来提升弱分类器的质量,然后提出了一种融合改进的AdaBoost和肤色模型的人脸检测方法。先采用改进型AdaBoost算法进行初步的人脸检测,针对AdaBoost算法存在误检率高的缺陷,对检测出的疑似人脸区域采用高斯肤色模型进一步判定,以剔除被误检为人脸的非人脸区域。最后将本文方法与AdaBoost人脸检测方法、高斯肤色模型人脸检测方法以及基于SNOW分类器的人脸检测方法进行了对比实验,结果表明,本文方法检测率高、误检率低,具有可靠的检测性能。
[1]邓亚峰,苏光大,傅博.一种基于AdaBoost的快速动态人 脸 检 测 算 法[J].计 算 机 工 程 ,2006,32(11):222-224.DENG Yafeng,SU Guangda,FU Bo.A fast dynamic face detection algorithm based on AdaBoost.Computer Engi⁃neering,2006,32(11):222-224.
[2]李明瑞,傅明,曹敦.基于肤色检测的AdaBoost人脸检测算法改进[J].计算机工程,2012,38(19):147-150.LI Mingrui,FU Ming,CAO Dun.Improvement of Ada⁃Boost face detection algorithm based on skin color detec⁃tion.Computer Engineering,2012,38(19):147-150.
[3]李智勇,田贞.基于肤色模型的人脸检测研究[J].现代电子技术,2011,34(3):131-133.LI Zhiyong,TIAN Zhen.Study on Face Detection Based on Skin Color Model[J].Modern Electronics Technique,2011,34(3):131-133.
[4]毕雪芹,惠婷.基于肤色分割与AdaBoost算法的人脸检测[J].国外电子测量技术,2015,34(12):82-86.BI Xueqin,HUI Ting.Face detection based on skin color segmentation and AdaBoost algorithm.Foreign Electronic Measurement Technology,2015,34(12):82-86.
[5]Viola P,Jones M.Robust real time object detection[C]//Proceedings of 2nd international workshop on statistical and computational theories of vision,2001:905-910.
[6]姚建,赵勋杰.结合肤色模型和Adaboost算法的人脸检测[J].苏州大学学报(自然科学版),2009,25(3):63-67.YAO Jian,ZHAO Xun-jie.Full Face Detection Based on Skin Color Model and Adaboost Algorithm[J].Journal of Suzhou University(Natural Science Edition),2009,25(3):63-67.
[7蔺广逢,范引娣,张媛.主成分分析与BP神经网络的人脸识别方法研究[J].现代电子技术,2007,30(2):53-55.LIN Guangfeng,FAN Zhendi,ZHANG Yuan.Research on Principal Component Analysis and Face Recognition Meth⁃od Based on BP Neural Network.Modern Electronics Tech⁃nology,2007,30(2):53-55.
[8]Yang M,Crenshaw J,Augustine B,et al.AdaBoost-based face detection for embedded systems[J].Computer Vision&Image Understanding,2010,114(11):1116-1125.
[9]房宜汕.基于改进AdaBoost的快速人脸检测算法[J].计算机应用与软件,2013,30(8):271-274.FANG Yishan.A fast face detection algorithm based on im⁃proved AdaBoost.Computer application and software,2013,30(8):271-274.
[10]何强,马文.基于双阈值的改进型Adaboost人脸检测算法[J].微型机与应用,2016,35(19):41-43.HE Qiang,MA Wen.Improved Adaboost face detection algorithm based on double threshold.Microcomputer and Application,2016,35(19):41-43.
[11]Navabifar F,Yusof R,Emadi M.Using rotated asymmet⁃ric haar-like features for non-frontal face detection[J].Advanced Science Letters,2013,19 (12) :3520-3524.
[12]王航宇.基于YCbCr高斯肤色模型的人脸检测技术研究[J].现代电子技术,2008,31(22):102-105.WANG Hangyu.Research on Face Detection Technology Based on YCbCr Gaussian Skin Color Model.Modern Electronics Technology,2008,31(22):102-105.
[13]刘春生,常发亮,陈振学,等.改进的高斯肤色模型及其在人脸检测中的应用[J].仪器仪表学报,2012,33(5):1117-1121.LIU Chunsheng,CHANG Faliang,CHEN Zhenxue,et al.An Improved Gaussian Skin Color Model and Its Ap⁃plication in Face Detection[J].Chinese Journal of Scien⁃tific Instrument,2012,33(5):1117-1121.
[14]曾维.手势识别系统中手指及指尖检测方法[J].国外电子测量技术,2013,32(4):39-42.ZENG Wei.Test and fingertip detection method in ges⁃ture recognition system.Foreign Electronic Measurement Technology,2013,32(4):39-42.
[15]苗姣姣,徐望明.HSV空间和形态学处理相结合的车牌定位方法[J].电视技术,2015,39(5):146-149.MIAO Jiaojiao,XU Wangming.A license plate location method based on HSV spatial and morphological process⁃ing[J].Technology of Television,2015,39 (5):146-149.
[16]苑岩岩,惠晓威.基于YCbCr肤色模型和SNOW分类器的人脸检测[J].计算机系统应用,2010,19(1):157-160.YUAN Yanyan,HUI Xiaowei.Face Detection Based on YCbCr Skin Model and SNOW Classifier[J].Applica⁃tion of Computers,2010,19(1):157-160.