基于Adaboost的人脸检测算法研究
2014-10-21覃远霞
覃远霞
【摘要】Paul Viola和Michael Jones曾提出的基于积分图象和Adaboost算法构建层叠式(cascade)人脸检测器,是人脸检测算法上的里程碑事件。先利用积分图象在常数时间内快速计算矩形特征,再用Adaboost算法训练这些矩形特征组成强分类器,从而使分类器的速度大大提高。此外,构造层叠分类器,首先简单的强分类器排除大多数非人脸窗口,减轻复杂分类器的负担,进而提高速度。
【关键词】Adaboost;人脸检测
1.人脸特征的选取
Haar-Like特征是Viola等提出的一种简单矩形特征,因类似于Haar小波而得名。Haar-Like特征的定义是由两个或多个全等的矩形相邻组合而成,特征模板内有白色和黑色两种矩形。
将此特征模板的特征值定义为白色矩形像素灰度和减去黑色矩形像素灰度和。可见,它反映了图像局部的灰度变化。最终系统使用数千个一维简单分类器,组合起来达到很好的分类效果。在实际使用时,将每一特征在图像子窗口中进行滑动计算,从而获得各个位置的多个Haar-Like特征。
脸部一些特征能够由这些矩形特征简单地描述,都有一定的人脸和非人脸区分性。例如,通常眼睛比脸颊颜色更深,鼻梁两侧比鼻梁颜色更深,眼睛比中间鼻梁颜色更深等等。
2.特征计算
得训练和检测的速度大大提升。在一幅图像中,计算原图像任意两个矩形内部象素灰度值求和之差只需要积分图中8个点的积分值相加减。考虑到上面矩形特征中矩形相邻性,这里需要的点更少。比如二矩形特征只需要要积分图6个点的积分值加减得到;三矩形特征只需要8个积分值;四矩形特征只要9个积分值。
3.构建弱分类器
利用Haar-Like特征可以构造出弱分类器,即分类正确率稍大于50%的分类器。设每个待测物体有k个矩形特征,特征值记为fj(x),1≤j≤k;则第j个特征fj(x)定义一个二值弱分类器形式为:
(4)
其中为阈值,具有最小分类错误率的特征值;pj表示不等号的方向,取±1。
构造一个弱分类器,即在样本当前权值分布下,确定fj(x)的最优阈值,使得这个弱分类器对所有训练样本的分类误差最低。而训练时所选取的弱分类器就是在样本当前权值分布下,分类误差在所有已构造的弱分类器中最低的那个弱分类器。
4.训练强分类器
使用AdaBoost算法在人脸样本集和非人脸样本集上挑选弱分类器,将他们训练成一个强分类器。
Viola的Adaboost算法的主要特点是在训练分类器的同时进行特征选择。它使得每个特征对应于一个弱分类器,而Freund的Adaboost算法是以弱学习算法(例如一个弱的预测)来构造弱分类器的。因此,此算法的弱分类器的数目是与矩形特征数目相等的,训练过程中从大量的弱分类器中选择一个在当前样本权重分布情况下分类错误最小的弱分类器作为本轮训练结果,这样经过T次迭代,选择出了T个特征,并且产生了一个最终的强分类器。这里的特征选择算法就是贪心算法,实际上是Freund的Adaboost算法的一种形变形式。
5.生成级联分类器
Paul Viola等针对人脸检测问题提出了一种级联分类器(Cascade Classifier),级联分类器的每一“层”是一个由Adaboost算法训练得到的强分类器,我们在这里称之为层分类器。
位置越靠前的层分类器越简单,用于排除大量容易排除的非人脸窗口;位置越靠后的层分类器越复杂,即包含越多的弱分类器,因而也具有更强的分类能力。级联分类器的结构事实上就是一个退化了的决策树,只有最终通过所有层分类器的样本才被接受为人脸。
级联分类器与层分类器的关系不同于强分类器与弱分类器的关系。强分类器的分类输出结果是由构成强分类器的所有弱分类器投票决定的,根据票数的多少确定当前检测窗口是否为人脸,类似于“少数服从多数”。而级联分类器只有在所有的层分类器全票通过时,才将当前窗口判别为人脸,任意一个层分类器投反对票,则级联分类器就将该窗口判为非人脸,类似于“一票否决”。
如果级联分类器共有10层,希望最终的检测率在0.9以上,那么每一级的检测率就要在0.99以上才行,因为0.910≈0.9910。而每一级对于误检率的要求并不高,假设每一级的误检率为0.5,那么10级的级联分类器的误检率为0.510=9.76×10-4,显然如果层数越大,那么其误检率将会越低。因此我们在训练每一级分类器时,应该更加重视检测率,而对误检率的要求无需太高,只要在0.5左右甚至稍高均可。通過上述算法就能得到符合要求的级联分类器。
参考文献
[1]邓亚峰,苏光大,傅博.一种基于AdaBoost的快速动态人脸检测算法[J].计算机工程,2006,32(11).
[2]MA Yong,DING Xiaoqing Real-Time Multi-View Face Detection and Pose Estimation Based on Cost-Sensitive AdaBoost[J].清华大学学报(英文版),2005年02期.
[3]刘明宝,姚鸿勋,高文.彩色图像的实时人脸跟踪方法[J].计算机学报,Vol.21,No.6,pp.527-532,1998.