李思琳,邵玉斌
(昆明理工大学信息工程与自动化学院,昆明 650051)
人脸检测是指给定一幅图像,然后判断其中是否存在人脸,如果有人脸存在,则返回其位置坐标和大小[1-6]。在 Viola[4]提出基于 Boosting 的快速人脸检测系统后,许多学者对基于Boosting的算法提出了改进。目前,另一种得到广泛应用的学习算法是AdaBoost。该算法的基本思想是:只要找到比随机猜测略好的弱学习算法,就可以通过一定的方式构造出任意精度的强学习算法。Ada-Boost算法能够集成多个弱分类器而成为一个强分类器。文献[2]指出,AdaBoost算法集成有限数量的弱分类器个不利于AdaBoost算法的分类精度进一步改善。文献[3]指出AdaBoost算法在理论上是可以集成无穷多个弱分类器。文献[4]提出可用支持向量机的方法实现无穷维AdaBoost算法,即需要建立一个新的支持向量机核函数,使此核函数集成无穷多个AdaBoost算法弱分类器,并用于电路故障检测。本文在该算法的基础上,将其方法用于人脸检测,在很大程度上提高了检测精度,分类结果优于一般的AdaBoost算法。
AdaBoost算法是一种基于弱分类器的分类算法。该算法根据分类结果来调整分类样本的权值,具体为降低正确分类样本的权值,增加错误分类样本的权值,以便在下一轮训练过程中,把主要精力放在前一次分类错误的样本上,最后挑选更新权值后样本分类错误最小的弱分类器,并把得到的弱分类器进行线性组合,最终形成强分类器[5-6]。
给定一个训练集(xi,yi),…,(xL,yL),其中:xi是输入的训练样本;yi是分类类别标志,yi∈(1,0)表示真假样本。初始化过程中,对所有参加训练的样本赋予相同的一个权值,再用Ada-Boost算法对参加训练的所有样本进行T轮训练。每一轮训练后,都要从很多个分类器中选择误差最小的那个作为一个弱分类器hi。在确定好所有的弱分类器后,再将它们进行线性组合,构成最终的强分类器[7]。当T个弱分类器集成时,AdaBoost分类器判别式如式(1)所示[8]。
其中:hi(x)为弱分类器;ωi为弱分类器对应的权值;f(x)为最终强分类器。可以将AdaBoost算法看作样本映射到高维特征空间,在该高维空间求一个超平面,然后将2类样本分开,且使2种样本间的间隔达到最大,如图1所示。
图1 AdaBoost算法分类超平面
那么,若要使2种样本间隔最大,即转换为求式(2)的最大值问题。
其中:yi(ωTxi+b)≥1;i=1,2,…,N;‖ω‖1=式(2)的优化问题可转化为求
当弱分类器数量趋于无穷多个,即T→∞时,式(1)可以写成式(3)的形式,这样AdaBoost算法就集成了无穷个弱分类器。
SVM的基本思想是[15-19]:在二维2类线性可分情况下,会有许多线性分类器将这组数据分开,但只存在1个使该2类的分类间隔最大的分类器,那么这个分类器就是最优分类超平面。wTx+b=0,x∈Rd,它对任意样本点都满足[9-10]:
这样,任意样本点到分类超平面的距离为margin=2/‖ω‖,因此使margin最大的超平面就是最优分类超平面。要使分类间隔2/‖ω‖最大,就意味着2/‖ω‖最小,且为非零值,。即只有支持向量影响最终的划分结果。
若训练样本为非线性可分,可以通过非线性函数φ(x)将训练样本集x映射到一个高维线性特征空间中,在这个空间中构造最优分类超平面,而这个超平面的维数可能是无穷大的[11]。在非线性情况下,分类超平面为ω×φ(x)+b=0。
最优分类面问题可描述为
其中:ξ为线性不可分问题的松弛变量;C为惩罚参数,使得
进而可得到其对偶形式为
最后
式(8)中的 K(xi,xj)=φ(xi)φ(xj)为核函数。
从以上分析可以看出,支持向量机和AdaBoost算法之间是有很大联系的。可以根据这种关系,用支持向量机的方法实现无穷多个弱分类器的Ada-Boost算法。而要实现这设想,工作重点是要重新建立一个新的核函数,而且该核函数可以集成无穷多个 AdaBoost算法弱分类器[4]。
若弱分类器组为 S= {hα:α∈C[a,b ]},则支持向量机核函数定义为
其中:φx(α)=r(α)hα(x);α 是弱分类器 hα的参数;r为实数。
把定义的新核函数代入支持向量机优化算式和分类器算式,则支持向量机的优化算式可写为
其中 ξi≥0,i=1,2,…,m。
支持向量机的分类表达式写为
α∈C[a,b],当α取不同值时,会产生不同的弱分类器 hα(x),同时 α 在空间 C[a,b]内连续,所以 α 可以取无穷多个值,因此式(9)核函数可以集成无穷多个AdaBoost算法弱分类器。
基于无穷维AdaBoost算法大部分步骤可通过SVM的方法实现,其具体步骤如下:
1)输入一个训练样本集(xi,yi),i=1,2,…,N和一个弱分类器组H。
2)根据定义,建立一个支持向量机的新的核函数,并且赋给r一个常数,此核函数集成无穷个AdaBoost算法弱分类器。
3)选择支持向量机参数C。
4)将第2)步得到的支持向量机核函数代入支持向量机计算式,计算出a和b。
5)输出判别式
本研究采用的训练样本集是从MIT CBCL数据库中选取的。考虑到大量的样本将占用很多内存空间,所以本文只选用了库中的1 000幅人脸图像,2 000幅非人脸图像。但MIT CBCL数据库中的人脸都是白种人脸图像,所以又采集了500幅黄种人脸图像,并将其标准化为19×19的尺寸。因此人脸图像共1 500幅,非人脸图像共2 000幅。本实验的测试环境为p4 2.80 GHz CPU,1G内存,操作系统为Windows XP,在Matlab 7.0的平台上编程实现。表1、图2列出了基于本文提出的算法与现有算法在MIT+CMU人脸库的检测结果比较,可以看出本文的算法较AdaBoost算法在精度上要高一些。
表1 本文算法与传统算法的对比
图2 人脸检测结果ROC曲线
图3中所有的人脸总共为11个,实际被检测出为人脸的总共有10个。有1个人脸被漏检,原因是漏检的人是侧面的,而本次实验的训练集都是正面的人脸。
可以看出本文的算法对于侧面的人脸检测情况不适用,但同时可以看出,对于微微低头的人脸、小角度旋转的人脸、戴眼镜的人脸以及微笑的人脸采用本文算法都能被检测出来。可见,本文算法除精度高以外,鲁棒性也得到了很大提升。
图3 检测结果
利用支持向量机的方法实现无穷维AdaBoost算法,即建立了一个新的支持向量机核函数,使此核函数集成无穷多个AdaBoost算法弱分类器,从而实现对人脸的检测。该算法在很大程度上提高了检测精度和鲁棒性,分类结果优于传统的Adaboost算法。
[1]任成娟,胡淑芳,刘崇文.子模式局部保持映射人脸识别算法[J].重庆理工大学学报:自然科学版,2011,25(6):84-89.
[2]肖南峰,姚永刚.基于RBF神经网络的人脸识别算法[J].重庆理工大学学报:自然科学版,2011,25(6):56-67.
[3]张南南,汪正祥.基于Gabor小波的人脸特征提取[J].自动化与仪器仪表,2011(6):138-140.
[4]闫常浩.人脸识别算法[J].四川兵工学报,2011(4):65-67.
[5]薛冰.人脸识别技术综述[J].四川兵工学报,2010(7):119-121.
[6]朱超平.基于人脸识别的门禁系统设计与实现[J].重庆工商大学学报:自然科学版,2011(4):390-393.
[7]Viola P,Jones M.Robust Real-Time Object Detection[C]//Proceeding of IEEE Workshop on SCTV.[S.l.]:[s.n.],2001.
[8]梁路宏,艾海舟,徐光祐,等.人脸检测研究综述[J].计算机学报,2002,25(5):1-9.
[9]Viola P,Jones M.Fast and Robust Classification Using Asymmetric AdaBoost and a Detector Cascade[EB/OL].[2002-09-24].http//www.merl.com/people/viola/research/publications/2002.
[10]刘冲,张均东,曾鸿,等.基于支持向量机的无穷维AdaBoost算法及其应用[J].仪器仪表学报,2010,31(4):764-768.
[11]Hjelmas E,Low B K.Face detection:A survey[J].Computer Vision and Image understanding,2001,83(1):236-274.
[12]Yang M H,Kriegan D,Ahuja N.Detection faces in image:a survey[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,24(1):34-58.
[13]Saml A,Iyentgar P A.Automatic recognition and analysis of human faces and facial expressions:A Survey[J].Pattern Recognition,1992,25(1):65-77.
[14]Vapnik V N.Statistical learning Theory[M].Berlin:Springer,1998.
[15]邬啸.基于混合核函数的支持向量机[J].重庆理工大学学报:自然科学版,2011,25(10):66-70.
[16]崔建国.基于支持向量机的飞行器健康诊断方法[J].压电与声光,2009(2):266-271.
[17]邬啸.改进的双隶属度模糊支持向量机[J].重庆师范大学学报:自然科学版,2011(5):49-53.
[18]余珺.基于多核优选的装备费用支持向量机预测法[J].四川兵工学报,2011(6):118-119.
[19]张瑞环.基于几何算法的支持向量机分类方法[J].重庆工商大学学报:自然科学版,2011(5):453-457.
[20]Cristianini N,Shawe-Taylor J.An introduction to support vector machines[M].Cambridge:Cambridge University Press,2000.
[21]白鹏,张喜斌,张斌,等.支持向量机理论及工程应用实[M].西安:西安电子科技大学出版社,2008.
[22]Freund Y,Schapire R E.A decision-theoretic generalization of online learning and an application to boosting[C]//Proc Second European Conference on Computational Learning Theory.[S.l.]:[s.n.],1995:65-70.
[23]刘栋,周激流,郎方年,等.视频图像的实时人脸检测系统[J].激光杂志,2007(2):52-54.