崔鵬 燕天天
摘 要:提出了一種將人臉膚色檢測與改進(jìn)的Adaboost算法相結(jié)合的人臉檢測方法。將人臉圖像從RGB顏色空間映射到Y(jié)CbCr顏色空間,建立膚色模型進(jìn)行人臉相似度求取,通過形態(tài)學(xué)處理得到候選人臉區(qū)域。在訓(xùn)練階段,通過調(diào)整加權(quán)誤差分布限制目標(biāo)類權(quán)重的擴(kuò)張,通過修改目標(biāo)權(quán)重更新抑制訓(xùn)練退化和訓(xùn)練目標(biāo)類權(quán)重分布過適應(yīng)現(xiàn)象。用改進(jìn)的Adaboost算法對得到的人臉候選區(qū)域進(jìn)行檢測,提高了檢測速度。實驗結(jié)果表明,該算法抑制了訓(xùn)練目標(biāo)類權(quán)重過適應(yīng)現(xiàn)象,有效的提高了檢測率和檢測速度。
關(guān)鍵詞:人臉檢測;膚色檢測;YCbCr顏色空間;Adaboost算法;權(quán)重
DOI:10.15938/j.jhust.2018.02.016
中圖分類號: TP391.4
文獻(xiàn)標(biāo)志碼: A
文章編號: 1007-2683(2018)02-0091-06
Abstract:This paper proposed a new face detection method which based on the Adaboost and the face skin color detection. Firstly, face images are mapped from RGB color space to the YCbCr color space, and thenthe skin color model is established to obtain the similarity of the face, the face region of the candidate isobtained by the morphological processing. In the training stage, the expansion of the target weight is restrictedby adjusting the weight of the error distribution. The phenomenon, training degradation and over adapt the distribution of the training target weight, is suppressed by modifying the renewal of the weight. The improved Adaboost algorithm is used to detect the candidate region of the face, which can improve the detection speed.The experimental results show that the proposed algorithm can effectively improve the detection rate and the detection speed, which can restrain the over adaptation of the training object.
Keywords:face detection; skin color detection; YCbCr color space; Adaboost algorithm; weight
0 引 言
現(xiàn)有的人臉檢測技術(shù)主要有三大類:基于膚色的檢測方法[1]、基于形狀的檢測方法[2]和基于統(tǒng)計的檢測方法[3]?;诮y(tǒng)計的檢測方法用得比較多?;诮y(tǒng)計的人臉檢測方法主要有:Adaboost、神經(jīng)網(wǎng)絡(luò)方法、支持向量機(jī)方法、隱馬爾可夫模型等。其中最成熟的方法是Adaboost方法。1995年Freund和Schipare[4-5]提出了Adaboost算法,它是第一個實時的人臉檢測算法。2001年,Paul Viola 和Michael Jones[6]提出基于Haar-like特征的Adaboost人臉檢測算法,雖然提高了檢測速度,但是有一些缺點,比如訓(xùn)練樣本時花費時間過長。隨后出現(xiàn)了很多改進(jìn)了的Adaboost算法用于人臉檢測,在人臉檢測速度和檢測率等都有了一定的提高。
本文結(jié)合了YCbCr膚色模型方法,并在傳統(tǒng)的Adaboost算法的基礎(chǔ)上,針對在訓(xùn)練過程中可能出現(xiàn)的退化現(xiàn)象和正負(fù)樣本權(quán)重出現(xiàn)嚴(yán)重扭曲影響訓(xùn)練精度從而影響檢測率等問題,提出了一種改進(jìn)的Adaboost算法,通過調(diào)整誤差分布和改正權(quán)重更新機(jī)制達(dá)到了很好的效果。
1 膚色檢測
人臉的主要特征是膚色,人臉膚色和環(huán)境存在較大的顏色差異,通過膚色很容易將人臉和背景區(qū)分開?;谀w色來進(jìn)行人臉檢測是最常用的方法,該方法需要選取合適的顏色空間和建立膚色模型。
1.1 顏色空間和膚色模型選取
在顏色空間選擇時,應(yīng)該注意該顏色空間的顏色和亮度是否能夠分離,膚色在該顏色空間是否具有較好的聚類性。在RGB顏色空間,為了除去光照的影響,人臉膚色需要亮度歸一化。歸一化后的顏色分量分別為:
其中r+g+b=1,且三者相互獨立。由于這種歸一化僅僅去除了R、G、B中的相對亮度成分R+G+B,而r、g、b仍然存在亮度信息,所以不能選取RGB作為顏色空間。因此我們需要找到一種顏色空間不僅具有較好的聚類性,顏色和亮度是否能夠分離外,還需要考慮RGB空間轉(zhuǎn)到該空間的難易程度。綜合分析下,我們選取YCbCr顏色空間。因為它不僅膚色聚類性好,分割效果好,而且容易從RGB空間轉(zhuǎn)換。在從RGB到Y(jié)CbCr的轉(zhuǎn)換中,轉(zhuǎn)換公式如下:
R、G、B為RGB顏色空間中紅綠藍(lán)3個顏色通道的顏色值。
常用的膚色模型有橢圓模型、統(tǒng)計直方圖模型、簡單高斯模型等。其中簡單高斯模型具有較好的特性,能夠較好的表示膚色的分布,檢測率高并且具有較快的計算速度。本文采用簡單高斯模型。在YCbCr色彩空間歸一化色度直方圖后,采用簡單高斯模型對膚色進(jìn)行建模。建立高斯模型M=(m, c),其中,m是均值,m=E(x),x=(Cb, Cr)T,C=E(x-m)(x-m)T,C表示協(xié)方差矩陣。通過該模型來檢測任意一個像素是否為膚色的概率為:
該概率越大說明該像素點屬于膚色像素點的概率就越大,反之越小。
1.2 膚色分割
因為光照會影響圖片的亮度,所以在檢測膚色之前需要對待檢測的RGB圖像進(jìn)行亮度補(bǔ)償,用中值濾波消除噪聲的影響。然后將人臉圖像從RGB顏色空間映射到Y(jié)CbCr空間,利用高斯模型最后得到人臉相似度灰度圖像。人臉相似度灰度圖像如圖1所示:
在圖1中人臉區(qū)域和背景區(qū)域在灰度上具有明顯差別,采用二值化得到人臉輪廓,其中二值化閾值采用的是整幅圖像的灰度均值。分割后的二值圖像會包含一些誤認(rèn)為膚色的小塊區(qū)域,因此對圖像進(jìn)行形態(tài)學(xué)濾波消除圖像中小塊噪聲。得到候選人臉區(qū)域如圖2所示:
2 基于Adaboost的人臉檢測
2.1 傳統(tǒng)的Adaboost算法
本文在Viola的形變的Adaboost算法的基礎(chǔ)上進(jìn)行改進(jìn)。該算法的主要特點是在訓(xùn)練分類器的同時可進(jìn)行特征選擇。每個特征對應(yīng)一個弱分類器。用于人臉檢測時,是對含有人臉的正樣本和不含人臉的負(fù)樣本的矩形特征進(jìn)行訓(xùn)練。由于正負(fù)樣本的Haar特征遠(yuǎn)遠(yuǎn)大于圖像像素數(shù)目,故該算法引入了積分圖,能夠很快的計算出每個Haar特征,從這個很大的特征積中選擇很小一部分關(guān)鍵特征,由此產(chǎn)生一個比較有效的分類器。要想得到最終的分類器,最重要的是找到這些特征。在設(shè)計分類器時,需要從正負(fù)樣本進(jìn)行分類的所有弱分類器中選擇錯誤率最低的那個,這樣在經(jīng)過T次迭代,選擇出了T個特征值,并且產(chǎn)生了一個最終的弱分類器。
2.2 改進(jìn)原因
Adaboost算法最大的缺點是樣本的權(quán)重更新,該算法能夠保證在樣本訓(xùn)練的過程中專注于那些處理比較困難的樣本。但是如果訓(xùn)練集中含有噪聲樣本和罕見的特殊樣本,該算法在得到每一個弱分類器時會逐漸加大這些難分類樣本的權(quán)重,在訓(xùn)練過程中就會加大對這些樣本的重視,而忽略其他樣本。如果這些困難樣本數(shù)量很大,那么在經(jīng)過幾輪弱分類器訓(xùn)練后,這些樣本權(quán)重的增長幅度就會明顯增大。這樣訓(xùn)練下去必然會導(dǎo)致那些被錯分圖像的弱分類器的權(quán)值變大,在最后加權(quán)投票形成強(qiáng)分類器時所占的權(quán)重變得很小,對其他訓(xùn)練目標(biāo)的判斷形成干擾。而那些被正確分類的樣本的權(quán)重則會不斷降低,導(dǎo)致不被分類器重視。隨著迭代次數(shù)的增加,權(quán)重分布會嚴(yán)重扭曲。更嚴(yán)重情況下,當(dāng)最小加權(quán)誤差大于0.5時,將會導(dǎo)致Adaboost算法訓(xùn)練結(jié)束。為了顯示正樣本和負(fù)樣本的權(quán)重分布情況我們運用傳統(tǒng)的Adaboost訓(xùn)練MIT人臉圖像庫。其中弱分類器的分類誤差可分為正誤差和負(fù)誤差,把含有人臉圖像的樣本稱為正樣本,含有非人臉圖像的樣本稱為負(fù)樣本。正樣本被劃分為負(fù)樣本,記為正誤差,負(fù)樣本被劃分為正樣本,記為負(fù)誤差。實驗結(jié)果圖3所示:
由圖3可以看出,隨著弱分類器數(shù)量的增加,樣本的正負(fù)誤差比曲線逐漸上升。即隨著訓(xùn)練次數(shù)的增加,正樣本誤差與負(fù)樣本誤差之比越來越大,說明被分錯的正樣本的權(quán)重偏大,負(fù)樣本的權(quán)重偏小,正樣本被劃分為負(fù)樣本的樣本越來越多。經(jīng)過多次訓(xùn)練,逐漸出現(xiàn)權(quán)重分配不平衡現(xiàn)象,最終導(dǎo)致權(quán)重分配嚴(yán)重扭曲。對訓(xùn)練精度產(chǎn)生極大影響。
針對難分樣本過適應(yīng)、對其他樣本產(chǎn)生忽視性偏見,從而導(dǎo)致算法性能的降低等問題,很多研究者做了大量的改進(jìn)工作。文[7]提出多步校正算法,在調(diào)整當(dāng)前分類器權(quán)值時考慮前面多個分類器的情況,訓(xùn)練出來的分類器有小幅度提升。文[8]提出通過設(shè)定最大樣本權(quán)重的閾值,來限制樣本權(quán)重過分配現(xiàn)象。Cid[9]等提出了RADA算法,用來抑制原算法中出現(xiàn)的分類樣本的權(quán)值?,F(xiàn)在我們需要找到一種權(quán)重更新算法,去抑制該問題的發(fā)生。
2.3 權(quán)重更新改進(jìn)方法
我們把訓(xùn)練過程中出現(xiàn)的正誤差記為ξ+,負(fù)誤差記為ξ-。經(jīng)過j輪迭代訓(xùn)練后,得到的正誤差,負(fù)誤差分別為:
其中amount為當(dāng)前樣本在前k次訓(xùn)練過程中被錯分的次數(shù)??芍猘mount越大,被錯分的樣本權(quán)重增大幅度減小,有效的控制了權(quán)重分配不均衡問題。由式(13)可知在樣本的訓(xùn)練過程中,不僅對FPR敏感,而且對amount敏感。FPR或者amount的增大都會使被錯分的樣本權(quán)重增大幅度減小,從而更加有效的限制權(quán)重過分配問題。
2.3 改進(jìn)的Adaboost人臉檢測
在傳統(tǒng)方法中,利用本文改進(jìn)的Adaboost算法的級聯(lián)分類器對整幅圖像進(jìn)行掃描,檢測速度較慢。而利用本文所提的膚色分割人臉檢測方法,把膚色的候選區(qū)域提取出來作為本文改進(jìn)的Adaboost算法的級聯(lián)分類器的輸入。可以提高檢測速度。算法流程如圖4所示:
3 實驗結(jié)果與分析
3.1 權(quán)重更新后的結(jié)果
訓(xùn)練過程中,訓(xùn)練樣本選自MIT共享人臉圖像庫,采用正負(fù)樣本比為1000∶2000,取λ1=0.5,λ2=1.5。用本文提出的權(quán)重更新后的Adaboost算法對樣本進(jìn)行訓(xùn)練。得到的正負(fù)誤差比曲線如圖5。
上圖是權(quán)重修改后得到的正負(fù)誤差比曲線。取λ1=0.5,λ2=1.5訓(xùn)練樣本。由上圖權(quán)重修改后的正負(fù)誤差比曲線要比傳統(tǒng)Adaboost算法的正負(fù)誤差比曲線上下波動幅度要小,即限制了權(quán)重分配過適應(yīng)。并且,修改后的Adaboost算法在訓(xùn)練工程中能夠產(chǎn)生更多的弱分類器。而傳統(tǒng)的Adaboost算法提前就結(jié)束了訓(xùn)練。因此改進(jìn)后的Adaboost算法能夠提高檢測率。結(jié)果如表1所示:
3.2 本文檢測方法的實驗結(jié)果
本文在VisualStudio2013和Opencv2.4.9進(jìn)行編程測試。使用MIT人臉和非人臉庫作為正負(fù)樣本訓(xùn)練Adaboost分類器。測試圖像來源于互聯(lián)網(wǎng)上隨機(jī)搜索的圖像。檢測結(jié)果如圖6所示:
如下表2為本文提出的檢測方法與傳統(tǒng)的Adaboost算法在檢測率,檢測時間的對比。實驗表明,本文提出的檢測方法比傳統(tǒng)的Adaboost算法具有更高檢測率和檢測速度。檢測結(jié)果數(shù)據(jù)統(tǒng)計如表2所示:
4 結(jié) 論
本文分別介紹了膚色檢測和改進(jìn)的Adaboost算法。針對傳統(tǒng)Adaboost算法存在訓(xùn)練退化和訓(xùn)練目標(biāo)類權(quán)重分布過適應(yīng)現(xiàn)象,提出了一種新的權(quán)重更新方法,該方法能夠很好地根據(jù)錯分樣本的錯分次數(shù),達(dá)到不同程度地對其權(quán)重進(jìn)行限制,同時提高了檢測率。對待檢測圖像進(jìn)行膚色分割等一系列操作,得到候選人臉檢測區(qū)域,將其作為本文改進(jìn)Adaboost算法分類器的輸入,從而縮小了檢測區(qū)域,提高了檢測速度。
參 考 文 獻(xiàn):
[1]陳鍛生,劉政凱.膚色檢測技術(shù)綜述[J].計算機(jī)學(xué)報,2006,29(2):194-207.
[2]王文寧,李慧娟,師磊.一種基于顏色和形狀特征的人臉檢測方法[J].計算機(jī)系統(tǒng)應(yīng)用,2008,7:58-61.
[3]張明慧,張明超,張堯禹.基于統(tǒng)計的人臉檢測方法研究[J].電腦編程技巧與維護(hù),2012(18):86-119.
[4]FREUND Y, SCHIPARE RE.A Decision-theoretic Generalization of On-line Learning and an Application to Boostiong[C]// Computational Learning Theory:Second European Conference,1995:23-37.
[5]FREUND Y, SCHIPARE RE. Experiments with a New Boosting Algorithm[C]// International Conferenceon Machine Learning,1996:148-156.
[6]VIOLA P, JONES M. Rapid Object Detection Using a Boosted Cascade of Simple Fetures[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2001:511-518.
[7]蔣焰,丁曉青.基于多步校正的改進(jìn)Adaboost算法[J].清華大學(xué)學(xué)報,2008,48(10):1609-1612.
[8]房宜汕.基于改進(jìn)Adaboost的快速人臉檢測算法[J].計算機(jī)應(yīng)用與軟件,2013,30(8):271-274.
[9]CID HA,SALAS R, ALLENDE H, et al. Robust Alternating Adaboost[J]// Progress in Pattern Recognition, Image Analysis and Applications, CIARP, Chile, Novermber 13-16, 2007: 427-436.
[10]蔡忠志. 使用新特征的人臉偵測系統(tǒng)[D].臺北:臺灣清華大學(xué),2005.
[11]曹瑩,苗啟廣,劉家辰,等.AdaBoost算法研究進(jìn)展與展望[J].自動化學(xué)報,2013,19(6):745-758.
[12]袁雙,呂賜興.基于PCA 改進(jìn)的快速Adaboost 算法研究[J].科學(xué)技術(shù)與工程,2015,15(29):62-66.
[13]PEI Zhen, XU Zhong-ren. A New Face Detection Method Based on the Improved AdaBoost, Skin Color and 2DPCA[J]. Electronic Design Engineering, 2014,22(8):116-119.
[14]PAN Qi-ming, ZHU Yi-qiang. A New Algorithm of Updating Samples Weight of Adaboost[J]. Journal of Chongqing Institute of Technology, 2008, 22(6):65-69.
[15]楊恒,張再軍,楊東,等.融合YCbCr膚色模型與區(qū)域標(biāo)記的人臉檢測算法研究[J].軟件導(dǎo)刊,2016,15(2):41-43.
[16]慶偉,應(yīng)自爐.一種基于 Haar-Like T 特征的人臉檢測算法[J].模式識別與人工智能,2015,28(1):35-41.
[17]LI Wen-hui, NI Hong-yin. An Improved Adaboost Training Algorithm[J]. Journal of Jilin University (Science Edition).2011, 49(3):498-504.
[18]滕秋霞,楊金霄,方永佳.多種頭部姿態(tài)下的人臉檢測系統(tǒng)研究[J]. 工業(yè)控制計算機(jī),2016,29(1):91-95
[19]張君昌,李倩,賈靖.基于分類器相關(guān)性的 A daboost人臉檢測算法[J]. 計算機(jī)應(yīng)用,2009,29(12):3346-3348
[20]孫曉燕,張化祥,計華. 基于AdaBoot的欠抽樣集成學(xué)習(xí)算法[J]. 山東大學(xué)學(xué)報,2011,41(4):91-100
[21]CUI Hua, ZHANG Xiao, GUO Lu, YUAN Chao, et al. Cascade AdaBoost Pedestrian Detector with Multi-features and Multi-thresholds[J]. Journal of Traffic and Transportation Engineering.2015, 15(2):109-117.
(編輯:關(guān) 毅)