姚子怡 張清勇 李雪琪
(1.水果湖高級中學(xué) 武漢 430070)(2.武漢理工大學(xué)自動化學(xué)院 武漢 430070)
人臉檢測[1~2]即判斷待測圖像或視頻中是否存在人臉,是人臉圖像分析的重要內(nèi)容,它是人臉識別系統(tǒng)實(shí)現(xiàn)的前提和基礎(chǔ),其檢測結(jié)果會對后續(xù)面部的特征提取和人臉的分類識別產(chǎn)生重大的影響。人臉圖像中包含顏色特征、模板特征、直方圖特征、結(jié)構(gòu)特征及Harr特征等多種模式特征。其中膚色特征[3]是人臉的一個(gè)重要特征,它與大多數(shù)背景區(qū)域相比,其顏色有著明顯的區(qū)別,并且具有更好的穩(wěn)定性。但對于復(fù)雜的背景圖像而言,膚色檢測的效果并不理想,且誤檢率高、精度有限[4]。2001年,Paul Viola和Michael Jones提出了基于Ad?aBoost算法的人臉檢測方法[5],是第一個(gè)在真正意義上建立了實(shí)時(shí)人臉檢測的系統(tǒng),從根本上解決了人臉檢測的速度問題。AdaBoost方法雖然檢測率很高,能達(dá)到95%以上,但它僅利用人臉灰度特征,沒有綜合考慮膚色分布等問題,因此對某些和人臉相似的物體,誤檢率很高,并且檢測速度也有待提升。姚建[6]采用單閾值法訓(xùn)練弱分類器,在閾值選取合適的情況下能夠得到質(zhì)量較好的弱分類器,但是當(dāng)訓(xùn)練樣本較大時(shí),不僅訓(xùn)練周期長且準(zhǔn)確率會有所降低。
為了提高檢測算法的準(zhǔn)確性和效率,本文首先給出了雙閾值的搜索方法,并由此得到了雙閾值A(chǔ)daBoost分類器算法,從而得到分類質(zhì)量更好的弱分類器。其次提出了一種融合高斯膚色模型和改進(jìn)型AdaBoost的人臉檢測算法。先研究了基于Haar矩形特征的迭代訓(xùn)練學(xué)習(xí)的改進(jìn)型AdaBoost算法,并將其作用于待測圖像中,分割出候選人臉區(qū)域;其次建立了YCbCr空間下膚色色度分量Cb-Cr二維分布的單高斯模型,依此模型構(gòu)建膚色似然圖,并進(jìn)行形態(tài)學(xué)濾波及人臉先驗(yàn)知識判斷得到相應(yīng)的二值化圖像,依此圖像對人臉候選區(qū)域進(jìn)行篩選,以剔除非人臉區(qū)域。
人臉Harr特征是一種簡單的矩形特征,它基于圖像的特征值進(jìn)行圖像的分類[7]。如圖1是三種典型的Harr特征,定義為白色矩形框內(nèi)像素點(diǎn)灰度值與黑色矩形框內(nèi)像素點(diǎn)灰度值之間的差值,它能反映檢測對象特征局部灰度變化。
圖1 三種典型的Haar特征
采用上述Harr特征對人臉進(jìn)行檢測時(shí),將上面任一矩形放置在待檢測圖片上,然后用白色矩形框的像素灰度和減去黑色矩形框的像素灰度和,獲得的值稱之為Harr特征值。人臉區(qū)域的Harr特征值和非人臉區(qū)域的Harr特征值存在較大的差值,所以上述矩形框作為檢測和區(qū)分的依據(jù),其目的就是用數(shù)值表示人臉特征。
AdaBoost算法是選用一系列分類能力較弱的分類器,將它們聯(lián)合起來,構(gòu)成一個(gè)分類性能優(yōu)秀的強(qiáng)分類器[8]。在每一輪訓(xùn)練迭代中,要不斷地對樣本權(quán)重值進(jìn)行調(diào)整,分類正確的樣本,需要降低其權(quán)重,分類出錯的樣本,需要增加其權(quán)重,這樣訓(xùn)練算法將分類重點(diǎn)放在分類困難程度較高的樣本上。每次進(jìn)行樣本權(quán)重修改后,會將修改值引入下一個(gè)分類器繼續(xù)分類,不斷訓(xùn)練迭代得到若干分類能力較優(yōu)的弱分類器,想要要得到分類能力強(qiáng)的強(qiáng)分類器,只需將弱分類器串聯(lián)起來。但是基于Ada?Boost的特征選擇算法在進(jìn)行特征選擇時(shí),每個(gè)弱分類器僅使用了單閾值[9~10],這必然導(dǎo)致單個(gè)弱分類器的誤分率較高。本文采用雙閾值的弱分類器代替原有的單閾值弱分類器,即每個(gè)弱分類器使用上下兩個(gè)閾值,提高了單個(gè)特征的分類能力,減少了訓(xùn)練時(shí)間。
1)弱分類器兩個(gè)閾值的選取
步驟如下:
(1)計(jì)算某個(gè)Harr特征(所)在所有樣本(中)的特征值,并對樣本中所有特征值進(jìn)行從小到大的排序找出最小值 fmin和最大值 fmax,然后從小到大依次計(jì)算每個(gè)特征值所對應(yīng)的正負(fù)樣本數(shù)n1和n2。
(2)由公式T=n1/(n2+1)計(jì)算每個(gè)特征值所對應(yīng)的正樣本數(shù)n1與負(fù)樣本數(shù)n2的比值T。
(3)計(jì)算出T最大時(shí)對應(yīng)的特征值x。
(4)從 x向左右分別搜索過渡點(diǎn) θ1,θ2(θ1<θ2)。即 T=1時(shí)所對應(yīng)的特征值;如果不存在這樣的特征值,那么就取邊界點(diǎn)。則這樣的兩個(gè)點(diǎn)就是弱分類器的兩個(gè)閾值θ1、θ2。
2)改進(jìn)型雙閾值A(chǔ)daBoost算法具體操作步驟如下:
(1) 給 定 訓(xùn) 練 樣 本 集 :(x1,y1),(x2,y2),…,(xn,yn),其中xi為人臉樣本向量,yi為樣本類別,其取值為0或1,若樣本為人臉,則 yi=1,若樣本非人臉,則 yi=0,設(shè)定樣本的總數(shù)為n。
(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ù)[11],且滿足 n=m+l。
(3)t=1,…,T(T為訓(xùn)練過程的最大循環(huán)次數(shù))
①歸一化權(quán)重:
②按照上述雙閾值搜索法計(jì)算雙閾值分類器的兩個(gè)閾值。訓(xùn)練中的每一個(gè)特征 j的弱分類器記為hj,然后根據(jù)樣本分類情況,依照下式得出該分類器對應(yīng)的加權(quán)偏差率:
③從所有的弱分類器中挑選分類錯誤率εt相對更小的弱分類器ht。
④根據(jù)找出的最優(yōu)弱分類器,對樣本權(quán)重進(jìn)行調(diào)整,每一代權(quán)重系數(shù)均與前一代有關(guān),調(diào)整公式如下
(4)將獲得的T個(gè)最優(yōu)弱分類器按不同的權(quán)值疊加成一個(gè)強(qiáng)分類器,加權(quán)公式如下
對每一個(gè)Harr特征所對應(yīng)的弱分類器采用上下限雙閾值法,使弱分類器的質(zhì)量得以提升,再由這些質(zhì)量較高的弱分類器聯(lián)合成為強(qiáng)分類器,這樣訓(xùn)練出來的強(qiáng)分類器性能肯定也是有所提升的。當(dāng)訓(xùn)練出強(qiáng)分類器后,對待測圖片進(jìn)行人臉檢測,即讓獲得的各個(gè)最優(yōu)弱分類器參與決策,再對決策結(jié)果根據(jù)分類誤差值的大小進(jìn)行疊加,比較加權(quán)的決策結(jié)果和平均決策結(jié)果之間的大小,得出最終的判定結(jié)果,即強(qiáng)分類器的輸出結(jié)果。本文采用MIT人臉數(shù)據(jù)庫中的訓(xùn)練樣本用于AdaBoost分類器的訓(xùn)練,MIT人臉數(shù)據(jù)庫中人臉樣本和非人臉樣本的數(shù)量分別為2429和4581,從人臉樣本中抽取246個(gè)作為分類器檢測樣本,剩余樣本用作訓(xùn)練樣本,圖像大小為19×19像素,其中樣本背景比較豐富,包括膚色、姿態(tài)、遮擋等。本文測試環(huán)境為Win7操作系統(tǒng),在Matlab R2012a平臺實(shí)現(xiàn)編程。表1是傳統(tǒng)AdaBoost算法與本文改進(jìn)的AdaBoost算法在分類器檢測率和檢測時(shí)間上的比較,由表可見本文方法在檢測率和檢測時(shí)間上優(yōu)于傳統(tǒng)算法。
膚色是區(qū)分人與外界背景區(qū)域的一個(gè)相對明顯的特征,因此可作為人臉檢測的依據(jù)。通常待檢測圖片像素點(diǎn)以RGB色彩空間表示,但此空間對光照敏感,人臉檢測結(jié)果受光照影響較大。本文使用YCbCr色彩空間建立高斯膚色模型進(jìn)行人臉檢測,先將待測圖片從RGB色彩空間映射到Y(jié)CbCr色彩空間,再根據(jù)采集到的膚色樣本建立相應(yīng)的高斯膚色模型,依此模型作為膚色判定的依據(jù),其組成框圖如圖2所示。
圖2 膚色模型檢測組成框圖
YCbCr色彩空間被廣泛地應(yīng)用于電視色彩顯示、數(shù)字?jǐn)z影等領(lǐng)域中。由于YCbCr色彩空間中亮度信息和色度信息可以相互分離,且Cb、Cr兩個(gè)向量相互獨(dú)立,能夠較好地反映膚色的聚類性,因而,用于人臉檢測時(shí),往往將圖像的像素點(diǎn)從RGB色彩空間轉(zhuǎn)換到Y(jié)CbCr色彩空間。
該模型與RGB模型的轉(zhuǎn)換關(guān)系如下:
膚色信息在一定的光照條件下以正態(tài)分布的形式存在,而高斯模型是利用高斯概率密度函數(shù)(正態(tài)分布曲線)來量化事物,因此,采用高斯模型進(jìn)行膚色分割具有一定的合理性和優(yōu)越性[12~13]。一般情況下,在YCbCr色彩空間建立高斯膚色模型有如下步驟:
1)收集一定數(shù)目的人臉圖像,進(jìn)行光照補(bǔ)償,提取面部同一位置的皮膚區(qū)域,構(gòu)成膚色樣本集。本文選取了不同人種、性別、年齡以及不同光照條件下共100幅人臉圖像作為樣本,對前額上的皮膚進(jìn)行提取并歸一化為相同的大小。
2)將膚色樣本從RGB空間映射到Y(jié)CbCr空間,去除亮度分量Y,統(tǒng)計(jì)膚色像素點(diǎn)的色度分量Cb和Cr。
3)根據(jù)以下公式計(jì)算出Cb和Cr的均值及協(xié)方差矩陣C。
式中,x表示樣本像素點(diǎn)的色度向量(C b,Cr)T,m表示樣本計(jì)算分析得到的膚色均值,C是與之對應(yīng)的協(xié)方差矩陣,本文所得到的m和C分別為
建立好高斯膚色模型后,需要判斷待測圖片中每一個(gè)像素點(diǎn)是否屬于膚色像素點(diǎn),即求出像素點(diǎn)的膚色似然概率,公式如下:
得到似然概率后,對每個(gè)膚色似然概率值進(jìn)行歸一化操作,以保證各個(gè)像素點(diǎn)的似然概率在[0,1]之間,并且使膚色區(qū)域亮度更加明顯。選取合適的閾值對膚色似然圖進(jìn)行二值化處理,本文仿真實(shí)驗(yàn)中選取閾值為0.5。由于采集圖像或處理圖像時(shí)會引入背景和噪聲,則閾值分割后的二值圖像中會包含一些被誤判為膚色的小塊區(qū)域。利用數(shù)學(xué)形態(tài)學(xué)[14-15]可解決這一問題,即對圖像進(jìn)行先腐蝕后膨脹的操作方式以消除人臉圖像中的散點(diǎn),并對圖像進(jìn)行平滑處理并填充膚色區(qū)域中的孔洞。
對于處理后的二值化圖像,仍然有可能存在非人臉的膚色區(qū)域和類似膚色的背景區(qū)域,為了濾除這些非人臉部分,可依照人臉先驗(yàn)知識中的幾何特征對疑似人臉區(qū)域進(jìn)行篩選,使人臉區(qū)域盡可能完整地保留下來。本文設(shè)計(jì)如下篩選條件:
1)根據(jù)區(qū)域的填充率進(jìn)行篩選。若填充率大于等于0.5,則保留該區(qū)域,這樣可以濾除手腳、胳膊等與人臉膚色類似的非人臉區(qū)域。
2)根據(jù)面積比進(jìn)行篩選。計(jì)算每塊候選區(qū)域與最大候選區(qū)域的比值,若大于等于0.2則保留該區(qū)域,這樣可以濾除一些較小的非人臉區(qū)。
3)根據(jù)區(qū)域的長寬比進(jìn)行篩選。本文設(shè)定人臉的長與寬的比值在0.8~2之間,若疑似人臉區(qū)域長寬比在0.8~2之間,則判定該區(qū)域是人臉區(qū)域。
基于Harr特征和AdaBoost的檢測算法速率快,效果好,但存在著誤檢率高的缺點(diǎn),基于高斯膚色模型的檢測算法容易受到外界光照、背景環(huán)境的影響。為了提高檢測算法的準(zhǔn)確性和魯棒性,本文提出了一種融合高斯膚色模型和改進(jìn)型AdaBoost的人臉檢測算法,其檢測流程框圖如圖3所示。
圖3 人臉檢測流程框圖
圖4 膚色檢測示意圖
先用基于Harr特征和改進(jìn)型AdaBoost的人臉檢測算法對輸入圖片進(jìn)行預(yù)檢測,再用基于高斯膚色模型的檢測算法加以驗(yàn)證,以剔除誤檢的人臉區(qū)域。為提升檢測的準(zhǔn)確率和效率,減小計(jì)算量,本文采用如下驗(yàn)證方式,如圖4所示。先劃定Harr特征和改進(jìn)型AdaBoost算法檢測出的疑似人臉矩形框(圖中黑線包圍部分),統(tǒng)計(jì)框中全部膚色像素點(diǎn)的數(shù)目sum,即統(tǒng)計(jì)膚色二值化圖像的矩形框中像素點(diǎn)值為1的像素點(diǎn)數(shù)目。若sum<(w idth×weight)2,則判定該區(qū)域?yàn)榉侨四槄^(qū)域,否則判定該區(qū)域?yàn)槿四槄^(qū)域并用藍(lán)實(shí)線標(biāo)記?;谀w色和改進(jìn)型AdaBoost算法的人臉檢測仿真結(jié)果,如圖5所示。
圖5 基于膚色和改進(jìn)型AdaBoost算法的人臉檢測仿真圖
為了驗(yàn)證本文所提出的融合改進(jìn)型AdaBoost和膚色模型的人臉檢測算法的有效性,本文將其與一些常規(guī)的人臉檢測算法進(jìn)行對比。實(shí)驗(yàn)對多人臉圖像測試集和復(fù)雜背景多人臉圖像測試集分別進(jìn)行檢測。測試圖像源自于生活中的數(shù)碼照片及從互聯(lián)網(wǎng)上隨機(jī)搜集的圖像。多人臉圖像測試結(jié)果舉例如圖6所示,復(fù)雜背景多人臉圖像測試結(jié)果舉例如圖7和8所示。其中,圖(a)為只采用基于Harr特征和AdaBoost的檢測算法進(jìn)行人臉檢測的結(jié)果。圖(b)為只采用基于膚色模型的檢測算法進(jìn)行人臉檢測的結(jié)果。圖(c)為基于SNOW的人臉檢測[16],首先采用局部連續(xù)均值量化變化算法對灰度圖像進(jìn)行處理,對處理后的圖像通過SNOW分類器實(shí)現(xiàn)人臉檢測。圖(d)為本文提出的檢測算法檢測效果圖。
圖6 多人臉檢測效果圖
圖7 復(fù)雜背景多人臉示例一檢測效果圖
圖8 復(fù)雜背景多人臉示例二檢測效果圖
由上圖可知,AdaBoost算法檢測率雖然較高,但有較多的非人臉背景區(qū)域被誤檢為人臉?;谀w色分割的檢測方法可檢測到圖中大部分人臉區(qū)域,但是人臉的定位不夠準(zhǔn)確,并且也能夠檢測到部分非人臉膚色區(qū)域與類膚色區(qū)域,對于具有復(fù)雜背景的圖像,誤檢率較高。SNOW算法通過對大量正樣本和負(fù)樣本的學(xué)習(xí),使得系統(tǒng)存在較低的誤檢率,但漏檢情況比較突出。本文將改進(jìn)型AdaBoost算法和膚色模型融合起來,既利用了AdaBoost在多人臉檢測方面的優(yōu)勢,又使用膚色模型進(jìn)行二次篩選,使得系統(tǒng)存在較高的檢測率和較低的誤檢率。4種方法分別在多人臉圖像測試集和復(fù)雜背景多人臉圖像測試集上的實(shí)驗(yàn)結(jié)果如表2和3所示。
表2 多人臉圖像測試人臉檢測結(jié)果比較
表3 復(fù)雜背景多人臉圖像測試人臉檢測結(jié)果比較
由上表可知AdaBoost算法檢測較高,但誤檢率也較高;膚色模型檢測對比AdaBoost方法檢測率有所提升且誤檢率較低;SNOW算法雖然誤檢率較低,但檢測率也較低;本文檢測方法對比其他三種不僅在檢測率上有所提升,并且降低了誤檢率,具有良好的檢測效果。
本文先提出了一種改進(jìn)的雙閾值A(chǔ)daBoost算法,并給出了閾值搜索的方法,通過雙閾值的方法來提升弱分類器的質(zhì)量,然后提出了一種融合改進(jìn)的AdaBoost和膚色模型的人臉檢測方法。先采用改進(jìn)型AdaBoost算法進(jìn)行初步的人臉檢測,針對AdaBoost算法存在誤檢率高的缺陷,對檢測出的疑似人臉區(qū)域采用高斯膚色模型進(jìn)一步判定,以剔除被誤檢為人臉的非人臉區(qū)域。最后將本文方法與AdaBoost人臉檢測方法、高斯膚色模型人臉檢測方法以及基于SNOW分類器的人臉檢測方法進(jìn)行了對比實(shí)驗(yàn),結(jié)果表明,本文方法檢測率高、誤檢率低,具有可靠的檢測性能。
[1]鄧亞峰,蘇光大,傅博.一種基于AdaBoost的快速動態(tài)人 臉 檢 測 算 法[J].計(jì) 算 機(jī) 工 程 ,2006,32(11):222-224.DENG Yafeng,SU Guangda,F(xiàn)U Bo.A fast dynamic face detection algorithm based on AdaBoost.Computer Engi?neering,2006,32(11):222-224.
[2]李明瑞,傅明,曹敦.基于膚色檢測的AdaBoost人臉檢測算法改進(jìn)[J].計(jì)算機(jī)工程,2012,38(19):147-150.LI Mingrui,F(xiàn)U Ming,CAO Dun.Improvement of Ada?Boost face detection algorithm based on skin color detec?tion.Computer Engineering,2012,38(19):147-150.
[3]李智勇,田貞.基于膚色模型的人臉檢測研究[J].現(xiàn)代電子技術(shù),2011,34(3):131-133.LI Zhiyong,TIAN Zhen.Study on Face Detection Based on Skin Color Model[J].Modern Electronics Technique,2011,34(3):131-133.
[4]畢雪芹,惠婷.基于膚色分割與AdaBoost算法的人臉檢測[J].國外電子測量技術(shù),2015,34(12):82-86.BI Xueqin,HUI Ting.Face detection based on skin color segmentation and AdaBoost algorithm.Foreign Electronic Measurement Technology,2015,34(12):82-86.
[5]Viola P,Jones M.Robust real time object detection[C]//Proceedings of 2nd international workshop on statistical and computational theories of vision,2001:905-910.
[6]姚建,趙勛杰.結(jié)合膚色模型和Adaboost算法的人臉檢測[J].蘇州大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,25(3):63-67.YAO Jian,ZHAO Xun-jie.Full Face Detection Based on Skin Color Model and Adaboost Algorithm[J].Journal of Suzhou University(Natural Science Edition),2009,25(3):63-67.
[7藺廣逢,范引娣,張媛.主成分分析與BP神經(jīng)網(wǎng)絡(luò)的人臉識別方法研究[J].現(xiàn)代電子技術(shù),2007,30(2):53-55.LIN Guangfeng,F(xiàn)AN Zhendi,ZHANG Yuan.Research on Principal Component Analysis and Face Recognition Meth?od Based on BP Neural Network.Modern Electronics Tech?nology,2007,30(2):53-55.
[8]Yang M,Crenshaw J,Augustine B,et al.AdaBoost-based face detection for embedded systems[J].Computer Vision&Image Understanding,2010,114(11):1116-1125.
[9]房宜汕.基于改進(jìn)AdaBoost的快速人臉檢測算法[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(8):271-274.FANG Yishan.A fast face detection algorithm based on im?proved AdaBoost.Computer application and software,2013,30(8):271-274.
[10]何強(qiáng),馬文.基于雙閾值的改進(jìn)型Adaboost人臉檢測算法[J].微型機(jī)與應(yīng)用,2016,35(19):41-43.HE Qiang,MA Wen.Improved Adaboost face detection algorithm based on double threshold.Microcomputer and Application,2016,35(19):41-43.
[11]Navabifar F,Yusof R,Emadi M.Using rotated asymmet?ric haar-like features for non-frontal face detection[J].Advanced Science Letters,2013,19 (12) :3520-3524.
[12]王航宇.基于YCbCr高斯膚色模型的人臉檢測技術(shù)研究[J].現(xiàn)代電子技術(shù),2008,31(22):102-105.WANG Hangyu.Research on Face Detection Technology Based on YCbCr Gaussian Skin Color Model.Modern Electronics Technology,2008,31(22):102-105.
[13]劉春生,常發(fā)亮,陳振學(xué),等.改進(jìn)的高斯膚色模型及其在人臉檢測中的應(yīng)用[J].儀器儀表學(xué)報(bào),2012,33(5):1117-1121.LIU Chunsheng,CHANG Faliang,CHEN Zhenxue,et al.An Improved Gaussian Skin Color Model and Its Ap?plication in Face Detection[J].Chinese Journal of Scien?tific Instrument,2012,33(5):1117-1121.
[14]曾維.手勢識別系統(tǒng)中手指及指尖檢測方法[J].國外電子測量技術(shù),2013,32(4):39-42.ZENG Wei.Test and fingertip detection method in ges?ture recognition system.Foreign Electronic Measurement Technology,2013,32(4):39-42.
[15]苗姣姣,徐望明.HSV空間和形態(tài)學(xué)處理相結(jié)合的車牌定位方法[J].電視技術(shù),2015,39(5):146-149.MIAO Jiaojiao,XU Wangming.A license plate location method based on HSV spatial and morphological process?ing[J].Technology of Television,2015,39 (5):146-149.
[16]苑巖巖,惠曉威.基于YCbCr膚色模型和SNOW分類器的人臉檢測[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010,19(1):157-160.YUAN Yanyan,HUI Xiaowei.Face Detection Based on YCbCr Skin Model and SNOW Classifier[J].Applica?tion of Computers,2010,19(1):157-160.