何強(qiáng)1,2,馬文1
(1.重慶郵電大學(xué) 通信新技術(shù)應(yīng)用研究中心,重慶 400065; 2.重慶信科設(shè)計(jì)有限公司,重慶 400065)
摘要:針對(duì)Adaboost人臉檢測(cè)算法訓(xùn)練時(shí)間長(zhǎng)以及不能有效區(qū)分特征值聚集分布的情況,提出了一種基于雙閾值的改進(jìn)型Adaboost人臉檢測(cè)算法,并給出了雙閾值的搜索算法。在MIT-CBCL和MIT+CMU人臉庫(kù)上對(duì)算法進(jìn)行了仿真驗(yàn)證。仿真結(jié)果顯示,改進(jìn)的雙閾值A(chǔ)daboost算法在不降低檢測(cè)率的同時(shí)大幅度提升了訓(xùn)練的速度,同時(shí)檢測(cè)速度也有所提升,該方法的綜合性能優(yōu)于單閾值算法。
關(guān)鍵詞:Adaboost;雙閾值;人臉檢測(cè)
0引言
人臉檢測(cè)是伴隨著人臉識(shí)別的發(fā)展出現(xiàn)的一個(gè)課題,其可以既快速又準(zhǔn)確地從復(fù)雜背景圖片中檢測(cè)出人臉,直接影響后續(xù)的識(shí)別研究。隨著計(jì)算機(jī)科學(xué)技術(shù)的快速發(fā)展,研究人員提出了許多基于統(tǒng)計(jì)學(xué)習(xí)的方法,例如主成分分析方法[1]、人工神經(jīng)網(wǎng)絡(luò)[2]、支持向量機(jī)[3]等,Adaboost算法就是其中優(yōu)秀代表。
Adaboost由FREUND Y和SCHAPIRE R E率先提出[4],其主要思想就是將大量的弱分類器通過(guò)某種方式構(gòu)成強(qiáng)分類器。理論已經(jīng)證明,弱學(xué)習(xí)可以通過(guò)訓(xùn)練變成強(qiáng)學(xué)習(xí),可以通過(guò)增加弱分類器的數(shù)量來(lái)使強(qiáng)分類器的錯(cuò)誤率下降趨于無(wú)窮小,基于此,VIOLA P和JONES M提出了將積分圖和級(jí)聯(lián)兩個(gè)新技術(shù)與Adaboost算法相結(jié)合,檢測(cè)速度能夠滿足實(shí)際需求,使人臉檢測(cè)算法能夠滿足實(shí)際應(yīng)用;另一方面,該算法還存在著以下缺點(diǎn):(1)算法需要大量時(shí)間,VIOLA P等人為了訓(xùn)練一人臉檢測(cè)分類器曾花費(fèi)多周時(shí)間[5];(2)訓(xùn)練過(guò)程中可能會(huì)由于罕見(jiàn)樣本而給該樣本分配過(guò)高的權(quán)重,產(chǎn)生過(guò)適應(yīng)等問(wèn)題,進(jìn)而影響整體性能指標(biāo)。其缺點(diǎn)是由于樣本數(shù)和特征數(shù)過(guò)多以及算法本身決定的。
針對(duì)以上問(wèn)題,本文提出了一種基于雙閾值的改進(jìn)型Adaboost算法,通過(guò)提升單個(gè)弱分類器的質(zhì)量,縮短訓(xùn)練時(shí)長(zhǎng),從而提高系統(tǒng)性能。
1Adaboost算法研究
1.1傳統(tǒng)的Adaboost算法描述
Adaboost算法的核心思想就是經(jīng)過(guò)訓(xùn)練得到一系列單個(gè)特征的弱分類器。其主要目的是從大量的矩形特征中挑選出更有利于人臉檢測(cè)的HaarLike特征集。將挑選出來(lái)的HaarLike特征構(gòu)造成弱分類器,繼而采用迭代的方法從所有弱分類器當(dāng)中挑選一批相對(duì)更優(yōu)的弱分類器。最后將這些弱分類器按照權(quán)重進(jìn)行線性疊加得到一個(gè)強(qiáng)分類器。由于檢測(cè)的核心任務(wù)是判斷圖像是否是一個(gè)人臉,故而能夠把檢測(cè)過(guò)程視為一個(gè)模式識(shí)別的問(wèn)題。訓(xùn)練過(guò)程初始階段,所有的樣本都被賦予相等的初始權(quán)重,接著就用該學(xué)習(xí)算法對(duì)樣本進(jìn)行T輪訓(xùn)練,一輪訓(xùn)練之后將所有樣本權(quán)重更新,降低被正確分類樣本的權(quán)重,提高被錯(cuò)誤分類樣本的權(quán)重,以便算法能夠在后面的訓(xùn)練過(guò)程中更加針對(duì)于困難的樣本。訓(xùn)練的結(jié)果是產(chǎn)生T個(gè)弱分類器,強(qiáng)分類器是將這些弱分類器按照權(quán)重進(jìn)行一個(gè)線性疊加得到,其中分類質(zhì)量更好的弱分類器對(duì)強(qiáng)分類器的影響比較大。
1.2算法分析與改進(jìn)
在Adaboost算法中,每個(gè)HaarLike特征都有一個(gè)對(duì)應(yīng)的弱分類器hj(j=1,2...k),其中k是分類器窗口所有的HaarLike特征總數(shù)。hj 的求導(dǎo)必須搜索全體樣本的全體特征值,但是一般情況下為了保證分類器的效果,訓(xùn)練樣本數(shù)和特征值數(shù)都很大,故一個(gè)hj的訓(xùn)練所花費(fèi)的時(shí)間很大。另外通過(guò)統(tǒng)計(jì)分析發(fā)現(xiàn),由于各種原因,人臉樣本與非人臉樣本的特征值并不滿足兩側(cè)分布,而是人臉樣本的特征值集中分布,非人臉樣本的特征值分散分布。經(jīng)過(guò)分析, 發(fā)現(xiàn)對(duì)于MITCBCL人臉訓(xùn)練庫(kù)和MITCBCL非人臉訓(xùn)練庫(kù)中的3 510個(gè)HaarLike特征,其中2 676個(gè)HaarLike特征是如此分布的,占比達(dá)76.2%[6], 也說(shuō)明了這些特征對(duì)應(yīng)檢測(cè)更有效一些。
圖1的橫坐標(biāo)表示HaarLike特征對(duì)應(yīng)的所有特征值,縱軸表示某特征值的正樣本數(shù)和負(fù)樣本數(shù)所占樣本總數(shù)值的百分比。如圖1所示,兩個(gè)端點(diǎn)形成的區(qū)間可將正負(fù)樣本進(jìn)行區(qū)分,所以兩個(gè)端點(diǎn)作為雙閾值分類器的閾值是可行的。為了提高單個(gè)弱分類器的質(zhì)量,提出了一種基于雙閾值的Adaboost訓(xùn)練算法,現(xiàn)在的問(wèn)題是如何確定兩個(gè)閾值,一個(gè)精確的算法是采用兩層嵌套循環(huán),然后通過(guò)比較所有可能的閾值,取其中錯(cuò)誤率最小的兩個(gè)閾值,然而這種算法的時(shí)間復(fù)雜度為O(n2)[7] ,其中n為訓(xùn)練的樣本數(shù)目,一般n的取值都很大,由此導(dǎo)致一個(gè)訓(xùn)練過(guò)程可能會(huì)花費(fèi)一個(gè)月的時(shí)間,這種方式是得不償失的,也是不可能在實(shí)際環(huán)境下應(yīng)用的。因此本文在保證正確率和訓(xùn)練時(shí)間的基礎(chǔ)上提出了一種新的雙閾值搜索算法。
步驟如下:
(1)計(jì)算某個(gè)HaarLike特征在所有樣本的特征值,求出該特征在所有樣本特征值中的最小值fmin和最大值fmax,然后從小到大依次計(jì)算每個(gè)特征值所對(duì)應(yīng)的正負(fù)樣本數(shù)n1和n2。
(2)計(jì)算每個(gè)特征值其所對(duì)應(yīng)的正樣本數(shù)n1與負(fù)樣本數(shù)n2的比值T,T=n1/(n2+1)。
(3)計(jì)算出T最大時(shí)對(duì)應(yīng)的特征值x。
(4)從x向左右分別搜索過(guò)渡點(diǎn)θ1,θ2(θ1<θ2)。即T=1時(shí)所對(duì)應(yīng)的特征值;如果沒(méi)有這樣的特征值,那么就取邊界點(diǎn),這樣的兩個(gè)點(diǎn)就是弱分類器的兩個(gè)閾值θ1、θ2。
本文提出的雙閾值尋找算法極大地提高了閾值的尋找速度。雙閾值分類器替代單閾值分類器,使得分類器的精度更高。單閾值分類器其實(shí)是雙閾值的一種特殊情況,當(dāng)x分別向左右進(jìn)行搜索時(shí),如果取的是邊界,那么實(shí)際上就是減少了閾值搜索的次數(shù),也加快了訓(xùn)練過(guò)程,提高了檢測(cè)速度[8]。
1.3改進(jìn)型Adaboost算法
改進(jìn)后的雙閾值A(chǔ)daboost算法具體步驟如下:
(1)給定訓(xùn)練集:(x1,y1),…,(xn,yn),其中yi∈{0,1},yi=0表示xi是非人臉樣本,yi=1表示xi是人臉樣本。
(2)初始化樣本權(quán)重,設(shè)定第t次循環(huán)中第i個(gè)樣本的權(quán)重ωt,i,人臉樣本的初始權(quán)重為ω1,i=1/2m,非人臉樣本的起始權(quán)重為ω1,i=1/2l,其中,m是人臉正樣本集的個(gè)數(shù),l 是人臉負(fù)樣本集的個(gè)數(shù)[9],n 是人臉樣本的總數(shù),滿足n=m+l。
(3)t=1,…,T(T為訓(xùn)練過(guò)程的最大循環(huán)次數(shù))
①將權(quán)重作歸一化處理,
②按照本文提出的雙閾值搜索算法計(jì)算雙閾值分類器的兩個(gè)閾值。訓(xùn)練中每一個(gè)特征j 的弱分類器記為hj,然后根據(jù)樣本分類情況,依照下式得出該弱分類器對(duì)應(yīng)的加權(quán)錯(cuò)誤率:
③從所有的弱分類器中挑選分類錯(cuò)誤率εt相對(duì)更小的弱分類器ht。
④將樣本權(quán)重進(jìn)行更新,其中βt=εt/(1-εt),第i個(gè)樣本被準(zhǔn)確分類時(shí),
(4)根據(jù)一定原則把弱分類器構(gòu)造成強(qiáng)分類器:
2實(shí)驗(yàn)結(jié)果分析
通過(guò)仿真對(duì)本文提出的算法進(jìn)行驗(yàn)證,選擇正負(fù)樣本的HaarLike特征進(jìn)行訓(xùn)練,在MITCBCL人臉訓(xùn)練庫(kù)和非人臉訓(xùn)練庫(kù)的樣本進(jìn)行訓(xùn)練并驗(yàn)證。仿真實(shí)驗(yàn)中人臉樣本訓(xùn)練庫(kù)共有2 429個(gè)大小為19×19的人臉樣本,其中樣本的背景很豐富,比如:膚色、遮擋、姿勢(shì)、光線等等。4 548個(gè)負(fù)樣本組成了負(fù)樣本訓(xùn)練庫(kù)。本次仿真實(shí)驗(yàn)所用的計(jì)算機(jī)是Inter(R) Core(TM)i32310M CPU @2.1GHz,4G安裝內(nèi)存。
取人臉樣本中的前2 000個(gè)作為正樣本訓(xùn)練使用,前4 000個(gè)非人臉樣本作為負(fù)樣本進(jìn)行訓(xùn)練,訓(xùn)練得到強(qiáng)分類器,用強(qiáng)分類器對(duì)剩下的正負(fù)樣本分別進(jìn)行測(cè)試實(shí)驗(yàn),表1給出了實(shí)驗(yàn)仿真結(jié)果。
從表1中可發(fā)現(xiàn),原始的Adaboost算法和改進(jìn)的雙閾值A(chǔ)daboost算法在檢測(cè)率和誤檢個(gè)數(shù)方面是極為接近的。但是在分類器的構(gòu)成以及訓(xùn)練時(shí)間上改進(jìn)Adaboost有明顯的優(yōu)勢(shì),其訓(xùn)練時(shí)間較傳統(tǒng)的Adaboost算法少了近40%。利用雙閾值弱分類器線性疊加得到的強(qiáng)分類器質(zhì)量更高,其中弱分類器的數(shù)量更少,因此擁有更快的收斂速度,檢測(cè)速度也有所提高。
算法的優(yōu)勢(shì)在以上仿真中得到了驗(yàn)證,但是一個(gè)好的算法對(duì)于其余的圖像庫(kù)也應(yīng)該是適用的。人臉檢測(cè)最典型的圖片測(cè)試庫(kù)就是MIT+CMU測(cè)試庫(kù),該庫(kù)含有130幅不同背景、亮度及大小的灰度圖像,其中包含了507個(gè)不同民族、不同形態(tài)、光照及遮擋等情況的人臉。表2為測(cè)試效果對(duì)比。圖2為部分檢測(cè)效果。
3結(jié)束語(yǔ)
基于傳統(tǒng)的Adaboost算法需要大量的特征來(lái)進(jìn)行訓(xùn)練,因此其需要的訓(xùn)練時(shí)間非常驚人。本文提出了一種改進(jìn)型雙閾值A(chǔ)daboost算法,通過(guò)雙閾值的方法來(lái)提升弱分類器的質(zhì)量,并且用一種新的閾值選擇算法來(lái)減少由此增加的時(shí)間,以此使訓(xùn)練時(shí)間大幅度減少,也使檢測(cè)時(shí)間減少,且并沒(méi)有明顯降低檢測(cè)率。實(shí)驗(yàn)結(jié)果顯示,改進(jìn)后的雙閾值算法其綜合性能優(yōu)于單閾值的算法。接下來(lái)的工作是進(jìn)一步改善分類器的質(zhì)量,進(jìn)一步提高算法的檢測(cè)精度。
參考文獻(xiàn)
[1] 盧世軍. 生物特征識(shí)別技術(shù)發(fā)展與應(yīng)用綜述[J]. 計(jì)算機(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] 嚴(yán)云洋. 圖像的特征抽取方法及其應(yīng)用研究[D].南京:南京理工大學(xué),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 haarlike features for non frontal face detection[J]. Advanced Science Letters,2013,19(12):3520-3524.