APP下载

基于遗传算法和AdaboostSVM的人脸检测算法∗

2017-08-01边航汪友生

计算机与数字工程 2017年7期
关键词:权值分类器人脸

边航 汪友生

(北京工业大学电子信息与控制工程学院北京100124)

基于遗传算法和AdaboostSVM的人脸检测算法∗

边航 汪友生

(北京工业大学电子信息与控制工程学院北京100124)

将遗传算法用于以SVM为弱分类器的Adaboost人脸检测算法。先根据样本训练集中的人脸和非人脸样本训练出弱分类器SVM,然后利用Adaboost算法将多个SVM弱分类器级联组合成一个强分类器,并且在组合的过程中采用遗传算法对各个弱分类器权值进行全局寻优,最终得到检测结果。通过与传统Adaboost以及AdaboostSVM进行对比试验,表明论文方法具有更高的检测效果。

Adaboost;SVM;人脸检测;遗传算法

Class NumberTP391

1 引言

针对人脸检测的算法有很多。1989年,Schap⁃ire最早提出了Boosting算法[1],一年以后Freund提出了一种效率更高的Boosting算法[2]。1995年Freund和Schapire改进Boosting算法,提出了Ada⁃boost(Adaptive Boosting)[3],即自适应学习算法。1999年,Robert E.Schapire和Yoram Singer提出了更具一般性的Adaboost形式[4],采用自信率来改善Adaboost的性能,并设计出能够解决多标签问题的Adaboost.MH和Adaboost.MR算法。2001年Viola.P和Jones.M提出了Cascade级联方式[5],每一级的特征从少到多,在粗检的几级就排除了大量的非人脸区域,因此该系统有效地提高了Adaboost的检测速度,但误检率高。由于SVM算法[6]对于人脸和非人脸的两类分类问题具有较好的鲁棒性,因此可以考虑将两种方法结合起来,其次,为使集成后的强分类器具有更好的精确度,采用遗传算法对弱分类器的权值进行优化,使弱分类的分类精度既能略大于随机猜测,又能和其他弱分类器有尽可能大的差异性,提高强分类器的泛化能力。该方法可以有效解决Adaboost方法中的精度和多样性的两难问题。

2 Adaboost算法及其局限性

Adaboost人脸检测[7]实际上是一种基于积分图、级联检测器和Adaboost算法的方法。Adaboost算法的核心思想就是针对不同的训练集训练出识别率不高的弱分类器,然后将这些大量的分类能力一般的弱分类器通过一定的方法集合起来,构成一个强分类器的过程。

传统的基于Adaboost算法的人脸检测方法具有较好的检测效果,它有效地提高了人脸检测精度和速度。但同时也存在着问题,虽然Adaboost算法通过样本权值的调节加强了分类器对错分样本的学习能力,但它同时也导致了过学习的问题,导致算法性能的下降。而SVM算法对于两类分类问题表现出了良好的鲁棒性,它作为Adaboost算法的弱学习分类器能够有效地改善其在特征选择和泛化能力方面的效果,达到降低Adaboost算法复杂性的要求,比较适合用于区分人脸和非人脸这种两类分类预测问题。

3 支持向量机算法

支持向量机理论[8](Support Vector Machine,SVM)最早是在统计学习理论基础上发展起来的一种基于结构风险最小化原理的模式识别方法。其基本思想就是寻找到一个最优超平面,能够使得分类间隙最大,从而将不同类样本分开。为避免高维空间的计算,SVM利用事先定义好的核函数实现样本到特征空间的映射。核函数的选择工作大致分为两步:一是核函数类型的选择,二是核函数相关参数的选定。目前常用的核函数有:线性核函数、多项式核函数、径向基核函数(RBF)、傅里叶核函数、样条核函数和Sigmoid核函数。

4 AdaboostSVM算法

本文选用RBFSVM作为Adaboost的弱分类器。RBFSVM有两个参数,分别为高斯宽度α以及规则化参数C。通过调整两个参数可以影响RBFS⁃VM分类器分类能力的强弱。通过对分类器性能分析发现:如果C的取值很小,训练器的分类精度不好,会出现欠学习的情况,但是当C过大时又会出现过学习状况。如果α过大,就会导致SVM弱分类器性能太弱,分类精度达不到50%,即不能满足Adaboost对弱分类器的要求;若α值过小,将会导致SVM分类器性能过强,每个弱分类器的差异性会变小,无法进行进一步的增强,Adaboost集成将会失去意义。本文采用一种折中的方法来调整参数C和α的值。首先定义第m个弱分类器的多样性值为[9]

其中,gm(xi)为第m个弱分类器对样本i进行分类的结果,f(xi)为除去第m个弱分类器之外的其他所有分类器对样本i进行分类的结果。假设M个分类器对N个样本进行分类的多样性可以表示为

传统Adaboost算法只是简单将弱分类器加权求和,没有考虑它们之间的差异性对集成造成的影响。当训练一个新的SVM弱分类器时,需要同时计算弱分类器的多样性值,若所求得的多样性值小于预先设定的阈值并且小于给定的精度,则认为该分类器不符合要求,那么就抛弃它;反之,则采用它。这样产生的分类器集在分类精度和复杂度上是折中的。

5 AdaboostSVM算法的优化改进

遗传算法[10]是模拟生物在自然环境中优胜劣汰、适者生存的遗传和进化过程而形成的一种具有自适应能力以及全局性的概率搜索算法。近年来,遗传算法作为一种寻优方法已成为解决各类复杂问题的有力工具。遗传算法中的每一个解决方案都对应着其中一条染色体,因此从一个基因组到其解的适应度就形成了一个映射。当初始种群产生之后,根据问题域中个体的适应度大小选择个体基因交叉变异,产生子代,逐代演化产生最优个体,经过解码即为问题的近似最优解。也就是把遗传算法的过程看作是一个在多元函数里面求最优解的过程。

为了把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间[11],本文选用浮点数编码方式,基因组表示为Y={w1,w2,…,wM},其中:

基因组的初始化为Adaboost已经得到的权值。

为了更好地选择优质个体而抛弃劣质个体,提高全局收敛性和计算效率,本文采用基于概率模型的选择算子[12],每个基因被选择的概率为

其中,q表示最好的基因被选择的概率,r表示为基因的等级。

遗传算法中产生新个体的主要操作过程即为交叉运算。本文采用非均匀交叉算子[13],首先从父亲基因Y中随机选取一个元素wk,通过计算得到新的基因组Y′={w1,w2,…,wk′,…,wM},其中:

式中,r1,r2为由均匀分布得到的随机数;G为当前代基因总数;Gmax为全部代中最大的基因数;b为控制函数f(G)形状的因子。

变异是防止个体过早收敛,陷入局部优化的算子。本文选用的是启发式交叉算子[13]:

每次仅产生一个新的子代个体Y′,且Y的适应度大于X,式中r∈(0,1)。

遗传算法优化弱分类器权值的流程图如图1所示。

图1遗传算法优化弱分类器权值流程图

6 试验结果及分析

试验运行环境:硬件平台为:AMD Athlon(tm)Dual Core Processor 5200B 2.70GHz,2GB内存;软件平台:Windows XP Professional;采用VS2010以及OpenCV2.4.10作为开发工具。

从一些人脸库以及网络图片中选取5000张人脸图像以及10000张非人脸图像作为训练样本集。训练前对样本图像进行预处理,主要包括尺寸的调整以及灰度归一化等,图2为部分训练集。试验采用130张图像作为测试集,每张图像包含一张或多张人脸,共431张人脸。遗传算法的参数设置如下:种群最大迭代次数为100,交叉概率0.9,变异率0.001,适应度函数设为识别的正确率。

图2部分训练样本

在试验中,分别采用了Adaboost算法、Ada⁃boostSVM算法以及结合遗传算法的AdaboostSVM算法训练的分类器进行试验,均采用相同的训练样本。结果如表1所示。

表1 算法定量比较结果

从该表的数据中可以看出,本文算法的训练识别率相比传统的Adaboost和AdaboostSVM算法有所提高,并且在保证检出率的基础上误检率比前两者减少了一个数量级,使得检测率和误检率都有较大的改进,这说明通过本文的算法,分类器的性能得到了有效的提高。本文算法部分检测结果如图3、图4所示。

图3单人人脸检测结果

图4多人人脸检测结果

7 结语

本文在Adaboost算法的基础上,提出一种结合Adaboost和SVM来构建弱分类器,并引入遗传算法对弱分类器的权值进行全局寻优的人脸检测方法。这种方法采用RBFSVM作为分量分类器,通过调整RBF核的参数,从而使每个分量分类器在准确率和差异性之间得到平衡,再通过遗传算法对分量分类器的权值进行优化,最后通过Adaboost算法把这些分量分类器整合起来,构建成一个强分类器。试验结果表明,该算法能够有效地提高正确检出率同时降低误检率。

[1]SCHAPIRE R E.The Strength of Weak Learnability[J]. Machine Learning,1990,5(2):197-227.

[2]FREUND Y.Boosting a Weak Learning Algorithm by Ma⁃jority[J].Information and Computation,1995,121(2):256-285.

[3]FREUND Y,SCHAPIRE R.A decision-theoretic Gener⁃alization of On-line Learning and an Application to Boost⁃ ing[J].Journal of Computer and System Sciences,1997,55(1):119-139.

[4]SCHAPIRE R,SINGER Y.Improved Boosting Algorithms Using Confidence-rated Predictions[J].Machine Learn⁃ing,1999,37(3):297-336.

[5]VIOLA P,JONES M.Rapid Object Detection Using a BoostedCascade of Simple Features[C]//Proceedings of the 2001 IEEE Computer Society Conference.Kauai:IEEE,2001:511-518.

[6]Burges CJC.A tutorial on support wector machines for pat⁃tern recognition[J].Data Mining and Knowledge Discov⁃ery,1998,2(2):121-167.

[7]李闯,丁晓青,吴佑寿.一种基于直方图特征和Ada⁃Boost的图像中的文字定位算法[J].中国图象图形学报,2006,11(3). LI Chuang,DING Xiaoqing,WU Youshou.A histogram feature and AdaBoost based text localization algorithm of the image[J].Journal of image and graphics,2006,11(3).

[8]Li Xuchun,Wang Lei Sung Eric.A Study of Adaboost with SVM basedweak Learners[C]//Proceedings of internation⁃al Joint on Neural Net-works.Montreal Canada,2005:196-201.

[9]MELVILLEP,MOONEY R J.Creating Diversity in Ensem⁃bles Using Artificial Data[J].Information Fusion,2005,6(1):99-111.

[10]HOUK C R,JOINES J,KAY M.A Genetic Algorithm for Function Optimization:A Matlab Implementation[R]. North Carolina State University,1995.

[11]马永杰,云文霞.遗传算法研究进展[J].计算机研究与应用,2012,4(29). MA Yongjie,YUN Wenxia.The development of Genetic algorithm[J].Research and application of computer,2012,4(29).

[12]KIM H C,PANG S,JE H M,et al.Constructing Support Vector Machine Ensemble[J].Pattern Recognition,2003,36(12):2757-2767.

[13]GAO G H,ZHANG Y Z,ZHU Y,et al.Hybrid Support Vector Machines-based Multi-fault Classification[J]. Journal of China University of Mining and Technology,2007,17(2):246-250.

Face Detection Based on Genetic Algorithms and AdaboostSVM Algorithm

BIAN HangWANG Yousheng
(College of Electronic and Control Engineering,Beijing University of Technology,Beijing100124)

An algorithm using genetic algorithm to improve the face detection in Adaboost with SVM based weak classifiers is proposed.Firstly,the method trains the weak classifier of support vector machine(SVM)according to human face samples and nonface samples in the training sample set,then uses Adaboost algorithm to embody the weak classifiers into a strong classifier,while using genetic algorithm to optimize weights of weak classifiers for global optimization,and final detection result is given.Experimen⁃tal result demonstrates that GA-AdaboostSVM achieved better detection performance than the traditional Adaboost and AdaboostS⁃VM methods.

Adaboost,SVM,face detection,genetic algorithm

TP391

10.3969/j.issn.1672-9722.2017.07.037

2017年1月11日,

2017年2月23日

边航,女,硕士研究生,研究方向:像处理分析等。汪友生,男,博士,副教授,研究方向:像处理、模式识别等。

猜你喜欢

权值分类器人脸
一种融合时间权值和用户行为序列的电影推荐模型
学贯中西(6):阐述ML分类器的工作流程
有特点的人脸
一起学画人脸
基于5G MR实现Massive MIMO权值智能寻优的技术方案研究
基于朴素Bayes组合的简易集成分类器①
一种基于互连测试的综合优化算法∗
三国漫——人脸解锁
程序属性的检测与程序属性的分类
基于差异性测度的遥感自适应分类器选择