- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于双阈值的改进型Adaboost人脸检测算法
何强1,2,马文1
(1.重庆邮电大学 通信新技术应用研究中心,重庆 400065; 2.重庆信科设计有限公司,重庆 400065)
摘要:针对Adaboost人脸检测算法训练时间长以及不能有效区分特征值聚集分布的情况,提出了一种基于双阈值的改进型Adaboost人脸检测算法,并给出了双阈值的搜索算法。在MIT-CBCL和MIT+CMU人脸库上对算法进行了仿真验证。仿真结果显示,改进的双阈值Adaboost算法在不降低检测率的同时大幅度提升了训练的速度,同时检测速度也有所提升,该方法的综合性能优于单阈值算法。
关键词:Adaboost;双阈值;人脸检测
0引言
人脸检测是伴随着人脸识别的发展出现的一个课题,其可以既快速又准确地从复杂背景图片中检测出人脸,直接影响后续的识别研究。随着计算机科学技术的快速发展,研究人员提出了许多基于统计学习的方法,例如主成分分析方法[1]、人工神经网络[2]、支持向量机[3]等,Adaboost算法就是其中优秀代表。
Adaboost由FREUND Y和SCHAPIRE R E率先提出[4],其主要思想就是将大量的弱分类器通过某种方式构成强分类器。理论已经证明,弱学习可以通过训练变成强学习,可以通过增加弱分类器的数量来使强分类器的错误率下降趋于无穷小,基于此,VIOLA P和JONES M提出了将积分图和级联两个新技术与Adaboost算法相结合,检测速度能够满足实际需求,使人脸检测算法能够满足实际应用;另一方面,该算法还存在着以下缺点:(1)算法需要大量时间,VIOLA P等人为了训练一人脸检测分类器曾花费多周时间[5];(2)训练过程中可能会由于罕见样本而给该样本分配过高的权重,产生过适应等问题,进而影响整体性能指标。其缺点是由于样本数和特征数过多以及算法本身决定的。
针对以上问题,本文提出了一种基于双阈值的改进型Adaboost算法,通过提升单个弱分类器的质量,缩短训练时长,从而提高系统性能。
1Adaboost算法研究
1.1传统的Adaboost算法描述
Adaboost算法的核心思想就是经过训练得到一系列单个特征的弱分类器。其主要目的是从大量的矩形特征中挑选出更有利于人脸检测的Haar睱ike特征集。将挑选出来的Haar睱ike特征构造成弱分类器,继而采用迭代的方法从所有弱分类器当中挑选一批相对更优的弱分类器。最后将这些弱分类器按照权重进行线性叠加得到一个强分类器。由于检测的核心任务是判断图像是否是一个人脸,故而能够把检测过程视为一个模式识别的问题。训练过程初始阶段,所有的样本都被赋予相等的初始权重,接着就用该学习算法对样本进行T轮训练,一轮训练之后将所有样本权重更新,降低被正确分类样本的权重,提高被错误分类样本的权重,以便算法能够在后面的训练过程中更加针对于困难的样本。训练的结果是产生T个弱分类器,强分类器是将这些弱分类器按照权重进行一个线性叠加得到,其中分类质量更好的弱分类器对强分类器的影响比较大。
1.2算法分析与改进
在Adaboost算法中,每个Haar睱ike特征都有一个对应的弱分类器hj(j=1,2...k),其中k是分类器窗口所有的Haar睱ike特征总数。hj 的求导必须搜索全体样本的全体特征值,但是一般情况下为了保证分类器的效果,训练样本数和特征值数都很大,故一个hj的训练所花费的时间很大。另外通过统计分析发现,由于各种原因,人脸样本与非人脸样本的特征值并不满足两侧分布,而是人脸样本的特征值集中分布,非人脸样本的特征值分散分布。经过分析, 发现对于MIT睠BCL人脸训练库和MIT睠BCL非人脸训练库中的3 510个Haar睱ike特征,其中2 676个Haar睱ike特征是如此分布的,占比达76.2%[6], 也说明了这些特征对应检测更有效一些。
图1的横坐标表示Haar睱ike特征对应的所有特征值,纵轴表示某特征值的正样本数和负样本数所占样本总数值的百分比。如图1所示,两个端点形成的区间可将正负样本进行区分,所以两个端点作为双阈值分类器的阈值是可行的。为了提高单个弱分类器的质量,提出了一种基于双阈值的Adaboost训练算法,现在的问题是如何确定两个阈值,一个精确的算法是采用两层嵌套循环,然后通过比较所有可能的阈值,取其中错误率最小的两个阈值,然而这种算法的时间复杂度为O(n2)[7] ,其中n为训练的样本数目,一般n的取值都很大,由此导致一个训练过程可能会花费一个月的时间,这种方式是得不偿失的,也是不可能在实际环境下应用的。因此本文在保证正确率和训练时间的基础上提出了一种新的双阈值搜索算法。
步骤如下:
(1)计算某个Haar睱ike特征在所有样本的特征值,求出该特征在所有样本特征值中的最小值fmin和最大值fmax,然后从小到大依次计算每个特征值所对应的正负样本数n1和n2。
(2)计算每个特征值其所对应的正样本数n1与负样本数n2的比值T,T=n1/(n2+1)。
(3)计算出T最大时对应的特征值x。
(4)从x向左右分别搜索过渡点θ1,θ2(θ1<θ2)。即T=1时所对应的特征值;如果没有这样的特征值,那么就取边界点,这样的两个点就是弱分类器的两个阈值θ1、θ2。
本文提出的双阈值寻找算法极大地提高了阈值的寻找速度。双阈值分类器替代单阈值分类器,使得分类器的精度更高。单阈值分类器其实是双阈值的一种特殊情况,当x分别向左右进行搜索时,如果取的是边界,那么实际上就是减少了阈值搜索的次数,也加快了训练过程,提高了检测速度[8]。
1.3改进型Adaboost算法
改进后的双阈值Adaboost算法具体步骤如下:
(1)给定训练集:(x1,y1),…,(xn,yn),其中yi∈{0,1},yi=0表示xi是非人脸样本,yi=1表示xi是人脸样本。
(2)初始化样本权重,设定第t次循环中第i个样本的权重ωt,i,人脸样本的初始权重为ω1,i=1/2m,非人脸样本的起始权重为ω1,i=1/2l,其中,m是人脸正样本集的个数,l 是人脸负样本集的个数[9],n 是人脸样本的总数,满足n=m+l。
(3)t=1,…,T(T为训练过程的最大循环次数)
①将权重作归一化处理,
②按照本文提出的双阈值搜索算法计算双阈值分类器的两个阈值。训练中每一个特征j 的弱分类器记为hj,然后根据样本分类情况,依照下式得出该弱分类器对应的加权错误率:
③从所有的弱分类器中挑选分类错误率εt相对更小的弱分类器ht。
④将样本权重进行更新,其中βt=εt/(1-εt),第i个样本被准确分类时,
(4)根据一定原则把弱分类器构造成强分类器:
2实验结果分析
通过仿真对本文提出的算法进行验证,选择正负样本的Haar睱ike特征进行训练,在MIT睠BCL人脸训练库和非人脸训练库的样本进行训练并验证。仿真实验中人脸样本训练库共有2 429个大小为19×19的人脸样本,其中样本的背景很丰富,比如:肤色、遮挡、姿势、光线等等。4 548个负样本组成了负样本训练库。本次仿真实验所用的计算机是Inter(R) Core(TM)i32310M CPU @2.1GHz,4G安装内存。
取人脸样本中的前2 000个作为正样本训练使用,前4 000个非人脸样本作为负样本进行训练,训练得到强分类器,用强分类器对剩下的正负样本分别进行测试实验,表1给出了实验仿真结果。
从表1中可发现,原始的Adaboost算法和改进的双阈值Adaboost算法在检测率和误检个数方面是极为接近的。但是在分类器的构成以及训练时间上改进Adaboost有明显的优势,其训练时间较传统的Adaboost算法少了近40%。利用双阈值弱分类器线性叠加得到的强分类器质量更高,其中弱分类器的数量更少,因此拥有更快的收敛速度,检测速度也有所提高。
算法的优势在以上仿真中得到了验证,但是一个好的算法对于其余的图像库也应该是适用的。人脸检测最典型的图片测试库就是MIT+CMU测试库,该库含有130幅不同背景、亮度及大小的灰度图像,其中包含了507个不同民族、不同形态、光照及遮挡等情况的人脸。表2为测试效果对比。图2为部分检测效果。
3结束语
基于传统的Adaboost算法需要大量的特征来进行训练,因此其需要的训练时间非常惊人。本文提出了一种改进型双阈值Adaboost算法,通过双阈值的方法来提升弱分类器的质量,并且用一种新的阈值选择算法来减少由此增加的时间,以此使训练时间大幅度减少,也使检测时间减少,且并没有明显降低检测率。实验结果显示,改进后的双阈值算法其综合性能优于单阈值的算法。接下来的工作是进一步改善分类器的质量,进一步提高算法的检测精度。
参考文献
[1] 卢世军. 生物特征识别技术发展与应用综述[J]. 计算机安全,2013(1):63-67.
[2] Liu Kewen, Zhou Haiming, Yang Zhanyong, et al. Application of BP neural network for line losses calculation based on quantum genetic algorithm[C].4th International Symposium in Computational Intelligence and Design (ISCID).Hangzhou: IEEE Press, 2011: 3-7, 28-30.
[3] Wang Wei, Duan Hongyu. The research of SMO algorithm self adaption improvement on SVM[C].Communication Software and Networks (ICCSN).Xi’an: IEEE Press,2011:27-29.
[4] FREUND Y, SCHAPIRE R E. A short introduction to boosting[J].Journal of Japanese Society for Artificial Intelligence,1999,14(5):771-780.
[5] VIOLA P,JONES M.Robust real time face detection[J].International Journal of Computer Vision,2004,57(2):137-154.
[6] 严云洋. 图像的特征抽取方法及其应用研究[D].南京:南京理工大学,2008.
[7] ZHANG W, TONG R, DONG J. Z AdaBoost: boosting 2 thresholded weak classifiers for object detection[C]. 2008. IITA '08. Second International Symposium on Intelligent Information Technology Application, Shanghai, 2008(2):839-844.
[8] Wu Shuqiong, NAGAHASHI H. Parameterized AdaBoost: introducing a parameter to speed up the training of real AdaBoost[J]. IEEE Signal Processing Letters,2014,21(6):687-691.
[9] NAVABIFAR F,YUSOF R,EMADI M. Using rotated asymmetric haar瞝ike features for non frontal face detection[J]. Advanced Science Letters,2013,19(12):3520-3524.