張向鵬,魏 江
(西北工業(yè)大學(xué) 電子信息學(xué)院,陜西 西安 710072)
基于多級聯(lián)不對稱增強(qiáng)和遺傳算法的人臉檢測
張向鵬,魏 江
(西北工業(yè)大學(xué) 電子信息學(xué)院,陜西 西安 710072)
提出了一種基于多級聯(lián)不對稱增強(qiáng)和遺傳算法的AdaBoost人臉檢測方法??砂颜J(rèn)假率和拒真率反饋給當(dāng)前訓(xùn)練階段,并通過閾值比較來控制級聯(lián)層數(shù)和局部最佳弱分類器權(quán)值。用遺傳算法訓(xùn)練選取的局部最佳弱分類器,實(shí)現(xiàn)用較少的弱分類器達(dá)到高檢出率。仿真實(shí)驗(yàn)結(jié)果表明,該算法可以有效避免過擬合和特征冗余現(xiàn)象,獲得較高的檢測速度和精度。
人臉檢測;AdaBoost算法;多級聯(lián)不對稱增強(qiáng);遺傳算法
人臉檢測是指在輸入圖像中確定所有人臉 (如果存在)的位置、大小和位姿的過程[1]。人臉檢測作為人臉信息處理中的一項(xiàng)關(guān)鍵技術(shù),近年來成為模式識別、計(jì)算機(jī)視覺等領(lǐng)域內(nèi)一項(xiàng)受到普遍重視、研究十分活躍的課題。
Viola和Jensen等人采用AdaBoost算法構(gòu)建的級聯(lián)式人臉檢測算法[2]使人臉檢測在實(shí)時(shí)檢測方面有了長足的發(fā)展。其基本思想是:通過給定數(shù)量的樣本集的反復(fù)訓(xùn)練,對分類性能好的弱分類器賦予較高權(quán)重,對分類性能差的弱分類器賦予較低權(quán)重,經(jīng)過循環(huán)比較,自動挑選出若干關(guān)鍵分類器并級聯(lián)起來,構(gòu)成一個(gè)分類能力強(qiáng)的分類器,從而得到較好的分類效果[3]。因此,在訓(xùn)練中如何選取有效的樣本特征、如何更新樣本權(quán)值以及如何選取最佳弱分類器構(gòu)建級聯(lián)分類器是算法的基本問題。傳統(tǒng)的AdaBoost算法在處理上述問題時(shí)有明顯的不足:1)當(dāng)樣本數(shù)量多的時(shí)候,不同樣本的特征發(fā)生冗余的可能性很大[4];2)雖然選出的弱分類器是每輪訓(xùn)練過程中局部最優(yōu)的,但最終構(gòu)成級聯(lián)分類器的弱分類器并不是全局最優(yōu)的,這將會影響檢測的精度[5]。針對以上不足,許多學(xué)者提出了改進(jìn)算法。文獻(xiàn)[6]把Floating算法同AdaBoost算法相結(jié)合,提出了FloatBoost算法,用較少的分類器達(dá)到更優(yōu)的分類性能;文獻(xiàn)[7]從分類器的相關(guān)性出發(fā),提出一種基于多步校正的改進(jìn)AdaBoost方法,通過選取相關(guān)性較小的最佳弱分類器構(gòu)成強(qiáng)分類器。
文中提出一種新的基于多級聯(lián)不對稱增強(qiáng)的方法,并在弱分類器的選取過程中,將遺傳算法與傳統(tǒng)的AdaBoost算法相結(jié)合,達(dá)到了較理想的訓(xùn)練和檢測效果。實(shí)驗(yàn)結(jié)果表明,本文方法可以有效地縮短訓(xùn)練時(shí)間,提高檢測的速度和精度。
Viola等人提出的多層級聯(lián)分類器結(jié)構(gòu)如圖1所示,可以有效地對輸入圖像中的非目標(biāo)區(qū)域進(jìn)行排除,從而提高對目標(biāo)的檢測速度[8]。在檢測的初始階段矩形特征數(shù)較少,因此用少量計(jì)算就可快速排除大量非目標(biāo)區(qū)域;隨著逐層檢測的進(jìn)行矩形特征越來越多,由于目標(biāo)窗口越來越少計(jì)算量不會顯著增加,從而有效提高檢測的速度。文中也采用此架構(gòu),先利用AdaBoost算法來挑選局部最佳弱分類器,再利用多級聯(lián)不對稱增強(qiáng)方法來更新弱分類器的權(quán)值,最后利用遺傳算法消除特征冗余、構(gòu)建強(qiáng)分類器。
AdaBoost算法的具體步驟如下:
1) 給定一系列訓(xùn)練樣本(x1,y1),(x2,y2),…,(xn,yn),其中yi=0表示為負(fù)樣本(非人臉),yi=1表示為正樣本(人臉);
2)初始化權(quán)重w1,i=D(i),設(shè)正樣本有m個(gè),負(fù)樣本有 l個(gè),則相應(yīng)的權(quán)重為:
圖1 多層級聯(lián)式分類器模型Fig.1 Structure diagram of the multi cascade classifier model
4)最終的強(qiáng)分類器為:
由AdaBoost算法原理可以看出,它的訓(xùn)練目標(biāo)就是通過不斷增加弱分類器的數(shù)量來達(dá)到較高的檢測精度。因此如何用少量的弱分類器構(gòu)建多層級聯(lián)分類器來達(dá)到較高的檢測精度是此算法需要改進(jìn)的重要方面。針對這一問題,文中從級聯(lián)層數(shù)控制和權(quán)值更新以及分類器選擇策略等方面提出改進(jìn)措施。
對輸入樣本進(jìn)行T輪訓(xùn)練后,檢測系統(tǒng)將會產(chǎn)生T個(gè)局部最佳弱分類器,但最終構(gòu)成級聯(lián)分類器的弱分類器并不是全局最優(yōu)的[4-5]。為解決權(quán)值更新問題,文中采用多級聯(lián)不對稱增強(qiáng)(Multi Exit Asymmetric Boosting)函數(shù)控制級聯(lián)層數(shù),并根據(jù)之前設(shè)定的認(rèn)假率閾值η0和拒真率閾值γ0來實(shí)現(xiàn)權(quán)值的自適應(yīng)更新。權(quán)值自適應(yīng)更新的具體步驟為:
1)初始化樣本權(quán)重;
2)對第 t輪訓(xùn)練(t=1,2,…,T):
歸一化權(quán)重;計(jì)算 εt、βt以及 ηt和 γt;根據(jù)初始設(shè)定的認(rèn)假率閾值和拒真率閾值進(jìn)行弱分類器權(quán)重調(diào)整,具體實(shí)現(xiàn)過程為:
其中,γ0為拒真率閾值(文中取0.01,即正樣本的檢出率至少為0.99),η0為認(rèn)假率閾值(文中取0.4,即負(fù)樣本的誤判率最大為 0.4),1-ηt/nbexit與 1-γt/nbexit為權(quán)值調(diào)節(jié)因子,γ0、η0和 nbexit由 MEAB 函數(shù)決定,nbexit為最終的級聯(lián)層數(shù)(文中取 8)。
遺傳算法是按適應(yīng)度函數(shù)通過遺傳中的選擇、交叉和變異對個(gè)體進(jìn)行篩選,使適應(yīng)度好的個(gè)體被保留,適應(yīng)度差的個(gè)體被淘汰,新的群體既繼承了上一代的信息又優(yōu)于上一代[10]。由于遺傳算法是以隨機(jī)的方式進(jìn)行全局搜索,它可以較大的概率搜索到全局最優(yōu)解[9],而且遺傳算法能夠?qū)崿F(xiàn)并行處理[8],故文中采用遺傳算法求解全局最佳弱分類器。
文中借鑒已有的編碼方式,將權(quán)值更新后的T個(gè)弱分類器看作遺傳算法中的一條染色體。每條染色體由T個(gè)弱分類器及相應(yīng)的權(quán)系數(shù)和閾值b組成[4-5,8],結(jié)構(gòu)如圖2所示。
圖2 基于遺傳算法的個(gè)體結(jié)構(gòu)Fig.2 Structure diagram of the weak classifier based on genetic algorithm
圖中k1~kT表示T個(gè)弱分類器,ki=0表示弱分類器不存在,ki=1表示弱分類器存在。對于k1~kT采用二進(jìn)制編碼,而權(quán)系數(shù)α和閾值b為實(shí)數(shù)。
構(gòu)建強(qiáng)分類器的目的是使用少量的弱分類器來獲得較高的檢出率和較低的誤檢率,因此取評價(jià)函數(shù):
其中,d_rate表示期望的人臉正確檢出率(文中取);Npos、Nneg分別表示正、負(fù)樣本總數(shù);mtr表示分類器正確檢出的人臉數(shù);nfa表示負(fù)樣本被錯判為人臉的個(gè)數(shù)。
遺傳算法的適應(yīng)度函數(shù)可由F1和F2加權(quán)組合產(chǎn)生:
式中,權(quán)系數(shù)ω1和ω2由模型大小和分類精度決定,且滿足ω1+ω2=1。通過調(diào)整ω1和ω2的值可以控制強(qiáng)分類器的模型大小和檢測精度[9],文中取 ω1=0.2,ω2=0.8。
文中采用類輪盤賭法,基于適應(yīng)比例的選擇策略選擇個(gè)體。個(gè)體被選擇的概率為:
式中,Vali為第i個(gè)個(gè)體的適應(yīng)度值。假設(shè)種群規(guī)模為N,首先計(jì)算這N個(gè)個(gè)體的適應(yīng)度值并將相應(yīng)的被選擇概率pi按從大到小排序。選取概率值排在后面的N/2個(gè)個(gè)體進(jìn)行交叉、變異產(chǎn)生子代個(gè)體,然后計(jì)算子父代組成的新種群中每個(gè)個(gè)體的被選擇概率并按概率大小排序,選擇新種群中概率值排在前面的N/2個(gè)個(gè)體與原始種群中概率值排在前面的N/2個(gè)個(gè)體組成新的種群。將新種群個(gè)體按被選擇概率大小排序,繼續(xù)按上述方法進(jìn)行選擇、交叉和變異,直到選出符合要求的最優(yōu)解。文中采用實(shí)數(shù)交叉法和單點(diǎn)變異法完成個(gè)體的交叉和變異。文中遺傳算法的相關(guān)參數(shù)如下:交叉概率為0.9,變異概率為0.01,種群規(guī)模為81,進(jìn)化次數(shù)為500次。
文中采用Viola_Jensen圖像庫對本文算法、傳統(tǒng)AdaBoost算法、文獻(xiàn)[6]的FloatBoost算法和文獻(xiàn)[7]的多步校正方法進(jìn)行仿真實(shí)驗(yàn)。從圖像庫中隨機(jī)選取500個(gè)人臉樣本作為訓(xùn)練正樣本,為達(dá)到更好的訓(xùn)練和分類效果,非人臉樣本采取“自舉”方式從設(shè)定路徑的非人臉樣本文件夾中隨機(jī)產(chǎn)生500個(gè)訓(xùn)練負(fù)樣本。訓(xùn)練過程中加入了由R.Lienhart和J.Maydt提出的方向角的Haar特征(如圖3所示)。測試集正樣本包含:取自MIT圖像庫的500幅不同光照、不同姿態(tài)和不同角度的人臉圖像,取自Yale圖像庫的110幅不同光照和不同表情的人臉圖像,取自網(wǎng)絡(luò)的人臉圖像200幅;負(fù)樣本包含:MIT中200幅非人臉圖像及網(wǎng)絡(luò)圖像190幅。實(shí)驗(yàn)前將圖像歸一化處理為像素的圖像,每幅圖像提取86 400個(gè)矩形特征。
圖3 45°方向的 Haar特征Fig.3 The Haar feature at 45°
為方便比較,文中訓(xùn)練了兩個(gè)人臉檢測系統(tǒng),基于傳統(tǒng)AdaBoost的人臉檢測和基于本文算法的人臉檢測,在相同訓(xùn)練指標(biāo)的前提下 (各級檢測正確率大于0.995,誤判率小于0.4),分類器各層所用的弱分類器個(gè)數(shù)如表1所示。從表中可以看出,在達(dá)到相同訓(xùn)練指標(biāo)的前提下,文中算法各層弱分類器個(gè)數(shù)比AdaBoost減少近,也比兩種文獻(xiàn)中的方法有所減少,當(dāng)級聯(lián)層數(shù)較多的時(shí)候,比兩種文獻(xiàn)算法的各層弱分類器個(gè)數(shù)有大幅減少,有效縮短了檢測時(shí)間。
表1 級聯(lián)分類器各層弱分類器個(gè)數(shù)比較Tab.1 The number of the weak classifier for each stage of the cascade classifier
表2列出了傳統(tǒng)AdaBoost算法、FloatBoost算法、多步校正算法及本文算法在測試集上的檢測結(jié)果。從表中可以看出,當(dāng)分類器個(gè)數(shù)較少的時(shí)候(表中81個(gè)),本文算法的檢測正確率高于FloatBoost算法而略低于多步校正算法,但當(dāng)弱分類器個(gè)數(shù)較多時(shí)(表中183個(gè)),本文算法的檢測精度明顯優(yōu)于另外兩種算法。本文的人臉檢測方法有效改善分類器的訓(xùn)練結(jié)果,優(yōu)化特征參數(shù)及權(quán)值,使得級聯(lián)檢測系統(tǒng)的檢測性能得到進(jìn)一步提高。
表2 算法檢測結(jié)果比較Tab.2 The testing result of different algorithms
文中在MatlabR2008a實(shí)驗(yàn)平臺下,每幅圖像提取100個(gè)最優(yōu)特征,構(gòu)成8層級聯(lián)分類器,以像素為檢測子窗口,部分檢測結(jié)果如圖4所示。
圖4 部分檢測結(jié)果圖像Fig.4 The human face detection result using the algorithm proposed in this paper
文中提出了一種基于多級聯(lián)不對稱增強(qiáng)的自適應(yīng)權(quán)值更新算法,并將遺傳算法與傳統(tǒng)AdaBoost算法相結(jié)合構(gòu)建人臉檢測系統(tǒng)。前者將認(rèn)假率和拒真率引入樣本權(quán)值更新中,使分類器的權(quán)值與分類效果結(jié)合起來,實(shí)現(xiàn)對分類器結(jié)構(gòu)的有效控制;后者在前一步的基礎(chǔ)上優(yōu)化特征參數(shù),提高檢測的精度。兩種算法的結(jié)合,很好地解決了人臉檢測中的檢測速度和精度問題。實(shí)驗(yàn)結(jié)果表明,文中算法通過有效改善分類器的訓(xùn)練結(jié)果,搜索出全局最優(yōu)特征,使人臉檢測的速度和精度得到進(jìn)一步的提高。
[1]Zhang L J,Liang Y L.A fast method of face detection in video images[J].IEEE Advanced Computer Control,2010(4):490-494.
[2]Viola P,Jones M.Rapid object detection using a boosted cascade of simple features[J].IEEE Proceedings of the Computer Vision and Pattern Recognition Conference,2001(1):511-518.
[3]雷蘊(yùn)奇,柳秀霞,宋曉冰,等.視頻中運(yùn)動人臉檢測與特征定位方法[J].華南理工大學(xué)學(xué)報(bào),2009,37(5):31-37.
LEIYun-qi,LIU Xiu-xia,SONG Xiao-bing,etal.Face detection and feature location of moving men in video[J].Journal of South China University of Technology,2009,37(5):31-37.
[4]張君昌,張譯.基于自適應(yīng)權(quán)重更新和遺傳算法的人臉檢測[J].西北工業(yè)大學(xué)學(xué)報(bào),2011,29(2):290-294.
ZHANG Jun-chang,ZHANG Yi.A new and effective adaptive sample weight updating and genetic algorithm for human face detection[J].Journal of Northwestern Polytechnical University,2011,29(2):290-294.
[5]張君昌,張譯.基于改進(jìn)AdaBoost算法的人臉檢測[J].計(jì)算機(jī)仿真,2011,28(7):240-244.
ZHANG Jun-chang,ZHANG Yi.Human face detection based on improved AdaBoost algorithm[J].Computer Simulation,2011,28(7):240-244.
[6]Li S Z,Zhang Z Q.Floatboost learning and statistical face detection[J].IEEE Pattern Analysis and Machine Intelligence,2004,26(9):1112-1123.
[7]蔣焰,丁曉青.基于多步校正的改進(jìn)的AdaBoost算法[J].清華大學(xué)學(xué)報(bào),2008,48(10):1613-1614.
JIANG Yan,DING Xiao-qing.AdaBoost algorithm using multi-step correction[J].Journal of Tsinghua University,2008,48(10):1613-1614.
[8]唐旭晟,歐宗瑛,蘇鐵明,等.基于AdaBoost和遺傳算法的快速人臉定位算法[J].華南理工大學(xué)學(xué)報(bào),2007,35(1):64-69.
TANG Xu-sheng,OU Zong-ying,SU Tie-ming,et al.Fast human face-detection algorithm based on adaBoost and genetic algorithm[J].Journal of South China University of Technology,2007,35(1):31-37.
[9]Li L,Li M,Lu Y M,et al.Genetic algorithm based feature selection for fracture surface images classification[J].IEEE Measuring Technology and Mechatronics Automation,2009(138):214-217.
[10]史峰,王小川,郁磊,等.Matlab神經(jīng)網(wǎng)絡(luò)30個(gè)案例分析[M].北京:北京航空航天大學(xué)出版社,2010.
Human face detection based on multi exit asymmetric boosting and genetic algorithm
ZHANG Xiang-peng,WEI Jiang
(School of Electronics and Information,Northwestern Polytechnical University,Xi’an710072,China)
A novel AdaBoost algorithm based on the multi exit asymmetric boosting and genetic algorithm is proposed in this paper.Both false acceptance rate and false rejection rate are fed back into current training stage,the cascade stages and the weight of local optimum weak classifiers are restricted by threshold comparison.The genetic algorithm with strong search ability is adopted for training local optimal weak classifiers,so most human faces in images and video sequences can be determined by less weak classifiers.Experimental results show that the proposed algorithm can achieve higher detection speed and more accuracy,effectively avoid overfitting and feature redundancy.
human face detection;AdaBoost algorithm;multi exit asymmetric boosting;genetic algorithm
TP391.4
A
1674-6236(2012)05-0122-04
2011-12-29稿件編號:201112156
張向鵬(1983—),男,山西晉中人,碩士研究生。研究方向:圖像處理。