基于AdaBoost算法和色彩信息的脸部特征定位

2016-06-08 05:48戴李君
计算机应用与软件 2016年5期
关键词:脸部人脸分类器

宁 娟 朱 敏 戴李君

(华东师范大学信息科学技术学院 上海 200062)



基于AdaBoost算法和色彩信息的脸部特征定位

宁娟朱敏*戴李君

(华东师范大学信息科学技术学院上海 200062)

摘要针对脸部特征定位提出一种新型的基于AdaBoost算法和色彩信息的方法。首先用参考白光照补偿法对脸部区域进行光线补偿,然后用AdaBoost算法的级联分类器快速定位图像中的脸部区域,最后根据脸部肤色与脸部特征在色彩信息上的区别,建立眼部模型和嘴部模型,实现眼睛与嘴巴定位。实验结果表明,基于该方法的脸部特征定位具有较高检测率和实用性,同时嘴巴定位不易受到表情变化的影响。

关键词AdaBoost算法人脸检测脸部特征定位色彩信息

0引言

脸部特征定位,即在给定的图像区域内搜索部分或所有脸部特征(如眼睛、鼻子、嘴巴等)的位置[1]。脸部特征定位是人脸识别应用中的一个重要组成部分。人脸识别广泛运用于人脸信息提取、处理以及分类,具体应用包括镜头聚焦、人脸考勤、图像分类以及身份识别等。而脸部特征定位则作为人脸检测[2]、人脸识别的重要依据,提供丰富的定位信息,为后期识别和处理人脸信息打下良好的基础。

Rein-Lien Hsu等[3]在YCbCr色彩空间中利用非线性颜色变换定位肤色区域,然后根据脸部特征的色彩信息在肤色区域上定位所有可能的眼睛与嘴巴,最后利用霍夫变换抽取眼睛与嘴巴形成的最佳椭圆,达到人脸检测[2]以及精确定位脸部特征的效果。文献[4]通过AdaBoost算法首先定位人脸,然后在人脸区域用训练人眼样本得出的人眼检测器定位眼睛。文献[5]通过结合改进的AdaBoost算法和模板匹配的方法定位眼睛。

本文提出基于AdaBoost[6-8]算法和色彩信息的脸部特征定位方法。首先对待测图片进行参考白光照补偿改善图片色彩偏差,其次基于AdaBoost算法快速定位脸部区域排除大量非脸部区域,然后在检测到的区域内利用脸部特征的色彩信息建立眼睛与嘴部模型,最后利用阈值分割定位眼睛和嘴巴。脸部特征定位流程如图1所示。

图1 脸部特征定位流程图

1光线补偿

由于肤色、脸部特征等色彩信息容易被光源和图像采集设备所影响,容易导致图像在整体上偏离本质色彩。Anil K.Jain提出的参考白光照补偿法能够有效改善这一问题。首先在YCbCr色彩空间中按照从大到小的顺序排列图像中所有的亮度色彩分量,提取前5%的像素点(像素数量足够多),将这些像素点对应在RGB色彩空间的R、G、B分量值调整为最大的255,即所谓“参考白”。计算当前的调整因子,按照这一调整因子调整图像中所有其他像素。实验结果表明,基于参考白光照补偿法能够很好的改善图像的整体色彩偏离。

2人脸检测

2.1Haar-like特征和积分图像

基于AdaBoost算法的人脸检测将表征样本图像的矩形特征,也就是Haar-like特征,作为分类的依据。Haar-like特征有许多种类,常见的四类Haar-like特征如图2所示。

图2 Haar-like特征的四种常见模型

将一个Haar-like特征模型置于人脸样本的任意位置,用白色矩形对应的样本像素值之和减去黑色矩形对应的像素值之和,并将计算得到的值作为一个Haar-like特征值。为了能够快速计算Haar-like特征值,Viola[6]等人提出了积分图像的概念。点(x,y)的积分图像定义如下:

ii(x,y)=∑x′≤x,y′≤yi(x′,y′)

(1)

其中,i(x′,y′)表示当前像素点的灰度值;

利用式(2)、式(3)两个递推公式,可以在只遍历一次样本的前提下即得出所有点的积分图像。s(x,y)表示当前行的前(x-1)个像素点灰度值之和。

s(x,y)=s(x,y-1)+i(x,y)

(2)

ii(x,y)=ii(x-1,y)+s(x,y)

(3)

2.2 AdaBoost算法

基于AdaBoost算法的人脸检测是结合积分图像和AdaBoost算法的一种快速人脸检测方法。该方法使用Haar-like特征描述人脸样本,然后用AdaBoost算法训练所有特征,每轮训练结束可以得到一个最佳的描述人脸样本的特征,与此同时提高当前分类错误样本图像的权重。经过数轮训练后,得到若干个弱分类器,最后通过加权弱分类器获得一个强分类器。

具体的算法描述如下所示:

1) 输入:(x1,y1),(x2,y2),…,(xL,yL),其中,xi∈X,X表示样本集合,yi∈Y={0,1},Y表示样本类别。在人脸检测的相关应用中,0表示非人脸类别,1表示人脸类别。

2) 初始化所有样本的权重,具体公式如下:

(4)

其中,j表示样本类别;m表示正类样本的个数,n表示负类样本的个数;L=m+n。

3) 进行T轮训练,t=1,2,3,…,n:

① 归一化所有样本的权重:

(5)

② 针对每一个特征j,训练一个简单的弱分类器:

(6)

其中,θj表示阈值;pj=±1,表示不等式方向;

③ 计算弱分类器对应的分类误差:

(7)

④ 选择分类误差最小的弱分类器,记录当前弱分类器的错误率εt,同时利用式(8)更新所有样本权重:

(8)

4) 加权组合T个弱分类器,构成一个强分类器:

(9)

其中:αt=-logβt;

AdaBoost算法在进行T轮迭代后,形成的强分类器具有较好的分类效果,然而在实际应用中一个强分类器远远无法满足需求,不论是检测时间还是检测效率。这时通过使用级联分类器可以有效改善这一问题。

级联分类器是一系列强分类器的组合,其中弱分类器的个数随着级联分类器层数的增加而增加。也就是说越靠前的层中使用的强分类器越简单,计算速度越快。虽然随着层数的增加强分类器会变得越来越复杂,但这时需要检测的样本数量却越来越少,检测的速度仍然能够加快,因此级联分类器具有较好的实时性与较高的检测率。

本文使用C++与OpenCV实现基于AdaBoost算法人脸检测,检测效果如图3所示。

图3 基于AdaBoost算法的人脸检测结果

3脸部特征定位

3.1眼睛定位

在YCbCr色彩空间,眼睛的蓝色色度分量较高而红色色度分量较低,同时瞳孔与眼白的亮度反差较大。根据这两个特点,建立两个独立的眼部模型,分别基于色度和亮度分量,然后对两个独立模型实现 “与”操作,强调出公共眼睛部位。眼睛定位过程如图4所示。

图4 眼睛定位过程

具体定位过程如下:

1) 建立基于色度分量的眼部模型:

(10)

2) 由于眼睛在亮度分量上既有深色像素又有亮色像素,为了能够突出眼睛亮度的这一特征,可以通过使用形态学操作[9]强调亮色像素和深色像素。形态学操作包括膨胀与腐蚀操作,膨胀操作强调亮色像素,腐蚀操作则强调深色像素。形态学操作将结构元素作用于输入图像获得输出图像。本文选用的结构元素为半球状的灰度级结构元,如图5所示。

图5 半球状的灰度级结构元

建立基于亮度分量的眼部模型:

(11)

其中,P2(x,y)表示当前像素点(x,y)的灰度值,Y(x,y)表示图像在YCbCr色彩空间的亮度分量。⊕表示灰度范围内的膨胀操作,⊖表示腐蚀操作,G(x,y)表示形态学的结构元。

3) 将P1(x,y)直方图均衡化后再与P2(x,y)进行乘积操作,即:

P(x,y)=P1(x,y)×P2(x,y)

(12)

4) 对图像进行膨胀与滤波操作,扩展图像亮区的同时去除噪音。

5) 阈值分割,定位人眼。

3.2嘴巴定位

由于嘴部区域的色彩分量比脸部的其他区域包含更多的红色像素而含有更少的蓝色像素。因此可推测出在YCbCr色彩空间的嘴部区域内表征红色色度分量的Cr值要明显大于表征蓝色色度分量的Cb值,进一步可推断出嘴部区域的Cr/Cb值偏小,而Cr2的值则相对偏大。通过重构嘴部区域的色度分量,强调嘴部的色彩特征,建立嘴部模型,实现定位。定位过程如图6所示。

图6 嘴巴定位过程

具体定位过程如下:

1) 根据公式建立嘴部模型:

(13)

P′(x,y)表示像素点(x,y)的灰度值,Cr2和Cr/Cb都已被归一化至[0,255]范围之内。

(14)

其中,n表示脸部区域的像素数量,η表示脸部区域Cr2和Cr/Cb的均值之间的比例系数。

2) 对图像进行膨胀与滤波操作,扩展图像亮区的同时去除噪音。

3) 阈值分割,定位嘴巴。

4实验结果

针对本文提出的基于AdaBoost算法和色彩信息的脸部特征定位方法,选用CLV Face Database以及NLPR Face Database进行实验测试。CLV Face Database中为彩色人脸图片,包含114个人的表情、姿势变化的797幅图片,每个人分别具有正面、正面微笑、正面露齿笑、左右侧身以及45度左右侧身的7幅图片(个别缺失)。NLPR Face Database包括27个人在不同光照和背景下的450张人脸图片。

本文针对眼睛和嘴巴定位,在CLV Face Database和NLPR Face Database的基础上建立3个实验图库。第一组自建图库选取100张NLPR Face Database包含人脸的图片;第二组自建图库选取正面、正面微笑以及45度左右侧身的100张CLV Face Database的彩色人脸图片。第三组自建图库选取正面、正面微笑、正面露齿笑的三组包括50人的150张CLV Face Database的彩色人脸图片。部分测试图片如图7、图8、图9所示。

图7 第一组自建图库的部分测试图片

图8 第二组自建图库的部分测试图片

图9 第三组自建图库的部分测试图片

实验测试环境为Windows 7系统,基于C++与OpenCv。

实验1包含两组对比实验,实验的主要目的是研究在光照的影响下,使用基于AdaBoost算法和色彩信息的脸部特征定位对眼睛定位的影响。对比实验1使用自建图库1,对比实验2使用自建图库2。实验结果见表1与表2所示。部分实验结果如图10、图11所示。

表1 左眼与右眼定位检测率对比

图10 基于AdaBoost算法和色彩信息的眼睛定位检测结果图

算法左眼定位检测率右眼定位检测率基于Adaboost算法和色彩信息的脸部特征定位85%60%

图11 基于AdaBoost算法和色彩信息的眼睛定位检测结果图

实验2使用自建图库3,实验的主要目的是研究在表情变化时,使用基于Adaboost算法和色彩信息的脸部特征定位对嘴巴定位的影响。实验结果见表3所示。

表3 嘴巴定位检测率

部分实验结果如图12所示。

图12 嘴巴定位检测结果图

实验3使用自建图库1,包含一组对比实验,实验的主要目的是对分别使用基于AdaBoost算法和色彩信息的脸部特征定位以及文献[4]提出的基于AdaBoost算法的人眼定位的检测率进行对比。实验结果见表4所示。

表4 人眼定位检测率

部分实验结果如图13和图14所示。

图13 基于AdaBoost算法和色彩信息的眼睛定位检测结果图

图14 基于AdaBoost算法的人眼定位检测结果图

5结语

本文利用基于AdaBoost算法和脸部特征的色彩信息定位眼睛与嘴巴。该方法首先对待测图片进行光照补偿,其次通过AdaBoost算法快速定位脸部区域,然后根据肤色与脸部特征在色彩信息上的差异,建立眼部与嘴部模型,实现眼睛与嘴巴定位。

实验1的结果表明,基于AdaBoost算法和色彩信息的眼睛定位具有较高的检测率。第一组实验的自建图库均为脸部光照均匀的彩色人脸图片,左眼与右眼的色彩特征能够很好地被表现出来,具有较高检测率。第二组实验的自建图库中,大部分图片的光源来自于脸部左侧,实验的最初虽然已经对待测图片进行了光线补偿,但仍然无法消除光照不均带来的影响。因此在建立眼部模型时,左眼的色彩信息特征能够被很好地表现出来,而右眼模型由于受到光照的影响产生了偏差,因此不能很好地表现出色彩信息特征,检测率远不及左眼。经过对比分析两组实验发现,基于本文方法的眼睛定位容易受到光照影响,通用性较差。然而本文的眼睛定位是基于眼部在亮度和色度上的色彩信息特征而提出的,光照影响无法避免,但可以通过进一步研究改进眼部模型,适当减小亮度信息在眼部模型中所占比例,从而减小光照不均带来的影响。

实验2的结果表明,嘴巴表现出的色彩信息较为特殊,所受到的环境干扰较小,因此基于本文方法的嘴巴定位具有较高的检测率。且嘴巴定位的检测率高于眼睛定位。

实验3的结果表明,基于文献[4]的人眼定位方法对于光照的影响较小,这一点毋庸置疑优于本文提出的人眼定位方法;然而对于部分戴眼镜的人脸图片、表情发生变化的人脸图片以及眼睛特征较不明显的人脸图片来说,基于文献[4]的人眼定位方法没有办法实现定位,这是由于训练集缺失和人眼的特征较于人脸来说更加难以表征所导致,针对这一点来说,基于AdaBoost算法和色彩信息的脸部特征定位则能够更加准确的定位到人眼目标。

总而言之,基于AdaBoost算法和色彩信息定位脸部特征具有较高的检测率,实现起来简单易行,具有一定的实用性以及后续研究拓展性。

参考文献

[1] 林维训,潘纲,吴朝晖,等.脸部特征定位方法[J].中国图象图形学报,2003,8(8):849-859.

[2] 梁路宏,艾海舟,徐光祐,等.人脸检测研究综述[J]. 计算机学报,2002,25(5):449-458.

[3] Hsu R,Abdel Mottaleb M,Jain A K.Face Detection In Color Images[J].IEEE Transactions On Pattern Analysis And Machine Intelligence,2002,24(5):696-706.

[4] 王基帆,钱艺,童卫青.基于AdaBoost算法的人眼定位[J]. 现代计算机(专业版),2009(9):73-75.

[5] 王江波,李绍文.基于AdaBoost算法和模板匹配的人眼定位[J].计算机测量与控制,2012,20(5):1347-1353.

[6] Viola P, Jones M. Rapid Object Detection Using a Boosted Cascade of Simple Features[C]//Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2001,1:511-518.

[7] Schapire R.E.A Brief Introduction of Boosting[C]//Proceedings of 16thInternational Joint Conference on Artificial Intelligence,1990,14:377-380.

[8] 董乐红,耿国华,高原.Boosting 算法综述[J].计算机应用与软件,2006,23(8):27-29.

[9] Rafael C Gonzalez,Richard E.Woods.数字图像处理[M].阮秋琦,阮宇智,等译.3版.北京:电子工业出版社,2013.

LOCALISATION OF FACIAL FEATURES BASED ON ADABOOST ALGORITHM AND COLOUR INFORMATION

Ning JuanZhu Min*Dai Lijun

(CollegeofInformationScienceandTechnology,EastChinaNormalUniversity,Shanghai200062,China)

AbstractWe proposed a novel method for facial features localisation, which is based on AdaBoost algorithm and colour information. First, we used the “reference white” illumination compensation approach to compensate the light on face area; then we used the cascaded classifier of AdaBoost to rapidly locate the face area in image. Finally, according to the difference of colour information between complexion and facial features, we built eyes model and mouth model to realise the location of eyes and mouth. Experimental result showed that the facial feature localisation based on this method has higher detection rate and practicability, at the same time the mouth localisation is less conducive to be affected by face expressions as well.

KeywordsAdaBoostFace detectionFacial features localisationColour information

收稿日期:2015-07-24。宁娟,硕士生,主研领域:图像处理,模式识别。朱敏,高工。戴李君,工程师。

中图分类号TP391

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.05.052

猜你喜欢
脸部人脸分类器
脸部美容须知
有特点的人脸
一起学画人脸
三国漫——人脸解锁
基于实例的强分类器快速集成方法
The Lovely Face
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
长得象人脸的十种动物
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别