基于几何形状的AdaBoost人脸检测算法研究

2017-04-14 08:44陈奋张晓兰张宁
福建工程学院学报 2017年1期
关键词:掩码人脸分类器

陈奋, 张晓兰, 张宁

(1.厦门城市职业学院 电子与信息工程系, 福建 厦门 361008;2.沈阳熙康阿尔卑斯科技有限公司, 辽宁 沈阳 110179)

基于几何形状的AdaBoost人脸检测算法研究

陈奋1, 张晓兰2, 张宁2

(1.厦门城市职业学院 电子与信息工程系, 福建 厦门 361008;2.沈阳熙康阿尔卑斯科技有限公司, 辽宁 沈阳 110179)

介绍了AdaBoost人脸检测算法以及人脸符合的几何规则。考虑到使用AdaBoost人脸检测算法存在计算量比较大的问题,因此文中提出基于几何形状的AdaBoost人脸检测算法,改进了人脸检测分类器训练方法,降低了误检率,提高了人脸检测的计算速度。

AdaBoost算法; 人脸检测; 几何形状

1 基于AdaBoost算法的人脸检测

2001年Paul Viola和Michael Jones提出了基于AdaBoost算法的人脸检测方法[1]。该方法采用“积分图像”的图像表示方法,这种表示法能够快速计算出检测中用到的Haar特征[2]。简单说就是利用AdaBoost算法,从特征集中先把少量的关键Haar特征挑选出来,再生成1个高效的分类器,然后通过级联的方式把单个分类器合成1个更为复杂的分类器。AdaBoost人脸检测的模型如图1所示。

图1 AdaBoost人脸检测模型Fig.1 AdaBoost face detection model

1.1 积分图像与Haar特征

积分图像是指把原图中的任意一点左上方所有像素的灰度值之和作为当前点像素值,其公式如式(1)所示。

(1)

其中,i为原始图像,ii为积分图像。sum是原图像中D区域内的像素灰度值之和,ii1、ii2、ii3、ii4分别是积分图像中点1、点2、点3和点4的值。ii1点的值表示区域A的灰度级总和,用A来表示,ii2点的值是A+B,ii3点的值是A+C,ii4点的值是A+B+C+D,因此,通过公式可以算出图2中D区域内像素灰度值之和如式(2)所示。

(2)

图2 积分图像举例Fig.2 Example of integral image

矩形区域内所有像素灰度值之和可以由公式(2)计算得出。在Viola提出的人脸检测算法中,使用的就是Haar特征。常用的4个Haar特征如图3所示,每个特征分为2个部分:黑块和白块。Haar特征的值为两部分像素灰度值之和的差。

图3 常用的Haar特征Fig.3 Common Haar features

1.2 AdaBoost算法原理

AdaBoost算法是一种迭代算法,其核心思想是针对同1个训练集训练不同的弱分类器,然后把这些弱分类器集合起来,构成1个强分类器[3]。在AdaBoost算法中,每一个训练样本都被赋予一个权重,每个样本权值确定根据上一轮的总体分类的准确率以及每轮训练中判断样本分类正确与否。通过判断,被错误分类的样本,它的权值将在下一轮训练中增加,否则减少。这样,便对分类难度大的样本赋予了更高的权值,最终能够得到一个比较理想的分类器。

己知有n个训练样本(x1,y1),…,(xi,yi),…,(xn,yn),其中yi∈{1,0},表示样本的真假。在训练集合中有l个真样本,m个假样本,待分类物体有k个简单的特征,对于每个样本其特征值为fj(xi),其中i∈{1,2,…,n},j∈{1,2,…,k}。对每一个输入特征又有1个简单的二值分类器。例如,第j个特征的弱分类器由一个特征值fj,一个指示不等式方向的pj,和一个阈值θj构成:

(3)

AdaBoost的具体训练方法如下:

(1)初始化样本权重为1/n,也就是训练样本的初始概率分布;

(2)次数t从1到T循环,T为训练的最大循环次数;

①将权重归一化;

③根据②计算得出一个具有最小错误εt的弱分类器ht;

④修改每个样本所对应的权重;

(3)经T次循环后,得到T个弱分类器,按更新的权重叠加,最后形成的强分类器为:

(4)

1.3 级联分类器

在AdaBoost人脸检测中,虽然由关键特征组成的强分类器是通过AdaBoost算法生成,但由于在检测过程中要扫描待检测图像的每个位置的所有规模的窗口,因此人脸检测一个具有众多特征的强分类器,那么将会花费很多的时间用于检测的整个过程。因此,在实际的人脸检测过程中可以采用级联分类器的思想[4-5]。级联分类器的工作原理是通过分级联合很多的分类器,将分类器按照特征重要性由高到低的顺序分类,将特征重要性高的一些分类器构成强分类器,用来排除人脸的窗口,然后将特征重要性稍小一些的构成强分类器,用来排除非人脸,以此类推。依据特征重要性逐级递减的顺序进行排查,则出现越来越多的分类器,而留下越来越少的待测窗口。其检测示意图如图4所示。

图4 级联分类器检测示意图Fig.4 Sketch of cascade classifier

2 人脸的几何规则

世界上没有两片完全相同的叶子,同样人脸也没有完全相同的,但人脸还是有很多共同的特征。例如人类都有一个嘴巴和一双眼睛。在基于内容的敏感图像过滤系统中,虽然掩码图像在经过皮肤检测后失掉了许多信息,但实验证明,掩码图像中的人脸还是有着很多相同的几何特征。例如,人脸区域符合椭圆面积准则、人脸的外接矩形存在着一定的比例关系、人脸区域是1个凸多边形等等。本文选取了150多幅包含不同人脸的图像,对其进行皮肤检测,在皮肤检测后的掩码图像上统计得出了下面两个重要的人脸几何特征。

2.1 椭圆面积准则

人脸的形状类似于椭圆,在掩码图像中,被测肤色区域内的人脸像素点仍呈椭圆分布。经研究表明,椭圆的中心就是该区域内所有像素点坐标向量的均值,主轴方向与其协方差矩阵的特征向量方向一致,椭圆轴长则由协方差矩阵的特征值决定。像素点坐标向量的均值与协方差矩阵的计算公式如下所示[6]:

(5)

(6)

其中,N是该区域内的肤色像素的总数;Xi是该区域内的像素点在掩码图像中的坐标向量;μ代表像素点坐标向量的均值;C表示像素点坐标向量的协方差矩阵[7]。

椭圆是一种规则的形状,因此有其面积计算公式,根据椭圆的面积公式得出掩码图像中的椭圆面积准则,如式(7)所示。其中,l1,l2分别表示椭圆的长轴和短轴;πl1l2/4表示椭圆的面积;N是该肤色区域内的像素数;S是该肤色区域是否与人脸相似的度量。

(7)

2.2 外接矩形长宽比

外接矩形长宽比也是人脸的一个重要几何特征,根据该特征能够过滤掉很多非人脸的肤色区域。掩码图像中除了人脸区域为肤色区域,还存在其他的肤色区域。为了统计人脸外接矩形的长和宽,先对掩码图像进行去除非人脸肤色区域的处理;然后在处理后的图像上寻找人脸区域的4个方向的边界点,即上下左右的4个边界点,依据边界点计算外接矩形的宽和长,这样就可以得出外接矩形长宽比。设外接矩形的长为L,宽为W,实验得出人脸的长宽比L/W∈[0.5,1.5]。

3 基于几何形状的AdaBoost人脸检测

基于AdaBoost算法的人脸检测虽然已经达到了不错的检测效果,但是还存在着一些不足,例如在训练分类器时存在训练时间比较长的问题;在使用基于内容的图像过滤系统进行皮肤检测后,掩码图像中仍然存在着一些人脸信息。因此,提出基于几何形状的AdaBoost人脸检测。

3.1 AdaBoost人脸检测的不足

在实际应用中,把AdaBoost人脸检测算法应用在基于内容的敏感图像过滤系统中,仍然存在以下几个方面的不足:

(1)彩色图像Haar特征的计算量大。现在的图像大多是彩色图像,而在AdaBoost人脸检测算法中,使用的Haar特征是基于灰度图像的,那么要对彩色图像进行人脸检测,有两种提取Haar特征的方法:一、将彩色图像转换成灰度图像。任何一种将彩色图像转换成灰度图像的算法都会存在误差,也会增加训练时间与检测时间;二、直接提取Haar特征。利用图像的颜色信息直接提取Haar特征,但颜色信息比灰度信息要复杂,计算量必然会增加。一个特征增加的计算时间可以忽略,但对于一幅 24×24 像素的图像,使用图3中常用的4种Haar特征,特征数目将超过 160 000,这些特征累计的计算量是很大的,是不可能忽略的。

(2)检测时间长 使用AdaBoost人脸检测算法对一幅图像进行人脸检测时,需要对整幅图像的每个位置的像素进行计算,对于一幅200×200的图像,计算量很大。在基于内容的图像过滤系统中,引入人脸检测已经降低了系统的检测速度,若这部分消耗的检测时间过多,将会使系统的整体检测时间增加很多。在很多图像中,人脸的比例很小,对于这样的图像来说,对整幅图像检测是浪费的,若能只计算图像的某一部分则检测,速度可以提高很多。

(3)训练时间长 对于彩色图像来说,Haar特征的计算量比灰度图像的要大,根据AdaBoost算法,在分类器的训练过程中,需要对每幅图像的每个位置各个规模的窗口进行扫描计算其特征,这样就使分类器的训练时间增长。虽然训练过程是与检测过程分开的,但训练时间过长会长时间占用系统资源。

3.2 AdaBoost人脸检测算法的改进

针对上述不足,本文将人脸的几何规则与基于内容图像过滤系统所具有的优势二者结合起来,改进AdaBoost人脸检测算法,具体表现在以下几个方面:

(1)引入皮肤检测 皮肤检测是基于内容的图像过滤系统中必不可少的一部分。因为通过皮肤检测后所获得的掩码图像将很大一部分非肤色区域过滤掉,因此在进行人脸检测之前先进行皮肤检测,而人脸区域也属于皮肤区域,这样只需在皮肤检测后的肤色区域进行人脸检测,不必再对整幅图像进行检测,从而提高了检测速度。

(2)引入人脸几何规则 因为通过皮肤检测后的掩码图像中人脸仍然符合一定的几何规则。所以通过对掩码图像使用人脸几何规则,可以过滤掉大部分非人脸肤色区域,从而获取人脸的候选区。本文所采用的几何规则有:椭圆面积准则、人脸外接矩形长宽比,先使用人脸外接矩形长宽比规则,对符合这一规则的区域再使用椭圆面积准则,最后获得最终的人脸候选区域,以供后续检测使用。

(3)提取掩码图像Haar特征 掩码图像只有黑白两种颜色,在掩码图像上提取Haar特征,相当于在灰度图像上提取,甚至还会比在灰度图像中提取的效果更好。因此,可以说在掩码图像上提取Haar特征,实际上是充分利用了Haar特征的优势。在AdaBoost算法中,是在未进行处理的图像上进行Haar特征的提取,而彩色图像Haar特征的计算量大,因此,在掩码图像上提取Haar特征。

(4)采用掩码图像进行分类器的训练 由于要在掩码图像上计算Haar的特征,因此训练分类器也要在掩码图像样本集中进行。而正因为采用掩码图像样本集,这将大大简化了Haar特征计算的工作量,那么分类器的训练时间也相应减少了。本文采用了200幅图像大小为24×24人工标记的掩码图像作为样本集,人脸图像150幅,非人脸图像50幅。样本集示例如图5所示。

图5 人脸训练样本示例Fig.5 Example of face training samples

3.3 基于几何形状的AdaBoost人脸检测模型的建立

虽然AdaBoost人脸检测是一种快速的人脸检测算法,但还存在着一些不足。通过分析AdaBoost人脸检测算法的不足,提出改进AdaBoost人脸检测的算法,进而搭建一种更为有效快速的人脸检测模型:基于几何形状的AdaBoost人脸检测模型。在该模型中,仍然使用AdaBoost算法,其具体算法如下:

(1)使用皮肤检测模型对图像进行皮肤检测,得到掩码图像;

(2)将人脸几何规则应用在掩码图像中的肤色区域:

①设人脸外接矩形长为L,宽为W,则外接矩形长宽比为L/W,若L/W∈[0.5,1.5]接②,否则判断为非人脸;

(3)对上面得到的人脸候选区使用AdaBoost人脸检测算法进行人脸验证,验证成功则判断此候选区域为人脸区域,否则判断为非人脸区域。

基于几何形状的AdaBoost人脸检测模型如图6所示。该模型首先利用皮肤检测过滤掉了大量的非肤色区域,再对肤色区域进行人脸检测。然后将人脸几何规则使用在皮肤检测后的掩码图像,得到人脸候选区,最后使用AdaBoost算法验证人脸候选区。虽然也提取Haar特征,使用AdaBoost算法,但是,与AdaBoost人脸检测相比,减少了检测与训练过程中的计算量。该模型使用掩码图像样本集,即其特有的训练样本集,大大减少了训练时间。

图6 基于几何形状的AdaBoost人脸检测模型Fig.6 AdaBoost face detection model based on geometry

4 实验结果及比较

利用2种人脸检测算法分别对基于几何形状的AdaBoost人脸检测模型与AdaBoost人脸检测模型进行检测,从而加以比较。这2种检测模型分别建立了2个训练样本集,分别对分类器进行训练。基于几何形状的AdaBoost人脸检测模型的训练样本集包括150幅24×24的掩码图像,其中人脸掩码图像120幅,非人脸掩码图像30幅;AdaBoost人脸检测模型的训练样本集包括150幅24×24的原图像,其中人脸图像110幅,非人脸图像40幅。为了对检测效果进行比较与统计,再建立了一个包含200幅原图像的样本集。

首先,分别在2个训练样本集上对基于几何形状的AdaBoost人脸检测模型与AdaBoost人脸检测模型进行训练。经过训练得出人脸检测分类器。2种模型都能达到不错的检测效果。基于几何形状的AdaBoost人脸检测效果图如图7所示,AdaBoost人脸检测效果图如图8所示。

(a)原始图像 (b)人脸检测图图7 基于几何形状的AdaBoost人脸检测效果图Fig.7 Effect of AdaBoost face detection based on geometry

图8 基于AdaBoost人脸检测上效果图Fig.8 The effect of face detection based on AdaBoost

通过将“AdaBoost人脸检测”及“基于几何形状的AdaBoost人脸测”这2种人脸检测模型分别应用在已经建立的检测样本集上,进行统计数据来比较分析二者的性能,从检测时间、检测正检率、检测误检率等3个方面对进行比较,得出如表1所示实验结果。

从表1可以看出,在检测正检率上“AdaBoost人脸检测”比“基于几何形状的AdaBoost人脸检测”模型要差一些,同时在检测误检率和检测时间上都劣于“基于几何形状的AdaBoost人脸检测”。由此看出,还是基于几何形状的AdaBoost人脸检测适用于图像过滤系统。基于几何形状的AdaBoost人脸检测不但正检率提高了,同时也降低了误检率。综合考虑,选用“基于几何形状的AdaBoost人脸检测模型”要好于“AdaBoost人脸检测模型”。

表1 两种人脸检测模型检测的对比结果

5 结语

研究了基于AdaBoost算法的人脸检测,介绍了AdaBoost算法原理、积分图像、Haar特征、级联分类器;在掩码图像的基础上研究了椭圆面积准则和人脸外接矩形长宽比,经过统计与分析,得出了2个人脸几何规则中的参数值;同时通过分析AdaBoost人脸检测算法不足提出了改进的方法,从而建立基于几何形状的AdaBoost人脸检测模型;并对2种人脸检测模型进行了比较与分析,得出了基于几何形状的AdaBoost人脸检测模型误检率更低。

[1] Viola P,Jones M.Rapid object detection using a boosted cascade of simple features[J].TEEE Conf on Computer Vision and Pattern Recognition,2001(1):511-518.

[2] Treptow A,Zell A.Combining Adaboost learning and evolutionary search to select features for real-time object detection[J]. Computer Vision and Pattern Recognition 2001. VPR 2001. CEC 2004 Congress on IEEE,2004(2):2107-2113.

[3] 姚忠清.视频监控中的人脸检测与跟踪[D].成都:四川大学,2005.

[4] Bo Wi, Ai Haizhou, Huang Chang,et al.Fast rotation invariant multi-view face detection based on real Adaboost[J]. Sixth IEEE International Conference on Automatic Face and Gesture Recognition,IEEE Xplore,2004,29(4):79-84.

[5] Zhang Zhenqiu, Li Mingling,Li S Z,et al. Multi-view face detection with F1oatBoost[C]//Sixth IEEE Workshop on Applications of Computer Vision,2002:184-188.

[6] Seshadrinathan M, Ben-Arie J. Pose invariant face detection[C]//Eurasip Conference Focused on Video/image Processing & Multimedia Communications, IEEE Xplore,2003(1):405-410.

[7] 高环宇.网络敏感图像过滤系统的设计与实现[D].沈阳:东北大学,2008:13-29.

(特约编辑:黄家瑜)

Study on AdaBoost face testing algorithm based on geometry

Chen Fen1, Zhang Xiaolan2, Zhang Ning2

(1. Electronics and Information Engineering Department, Xiamen City University, Xiamen 361008, China; 2. Shenyang Xi Kang Alps Technology Co., Ltd., Shenyang 110179, China)

The AdaBoost algorithm for human face detection and the geometric rules for the human face were described. A geometry-based Adoboost face testing algorithm was proposed to deal with the large amount of computation involved in the AdaBoost face testing algorithm. The results indicate that the modified algorithm can improve the face testing classifier training, reduce the false detection rate and upgrade the computing speed of face testing.

AdaBoost algorithm; face testing; geometry

10.3969/j.issn.1672-4348.2017.01.011

2016-12-23

福建省教育厅科技研究项目(JB13679S);厦门城市职业学院课题(KYKJ2016-4)

陈奋(1980- ),男,福建仙游人,讲师,硕士, 研究方向:模式识别、Web开发。

TP391.4

A

1672-4348(2017)01-0049-06

猜你喜欢
掩码人脸分类器
有特点的人脸
一起学画人脸
低面积复杂度AES低熵掩码方案的研究
三国漫——人脸解锁
基于布尔异或掩码转算术加法掩码的安全设计*
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
基于掩码的区域增长相位解缠方法
基于掩码的AES算法抗二阶DPA攻击方法研究
长得象人脸的十种动物