崔鵬 燕天天
摘 要:提出了一種將人臉膚色檢測與改進的Adaboost算法相結合的人臉檢測方法。將人臉圖像從RGB顏色空間映射到YCbCr顏色空間,建立膚色模型進行人臉相似度求取,通過形態(tài)學處理得到候選人臉區(qū)域。在訓練階段,通過調整加權誤差分布限制目標類權重的擴張,通過修改目標權重更新抑制訓練退化和訓練目標類權重分布過適應現(xiàn)象。用改進的Adaboost算法對得到的人臉候選區(qū)域進行檢測,提高了檢測速度。實驗結果表明,該算法抑制了訓練目標類權重過適應現(xiàn)象,有效的提高了檢測率和檢測速度。
關鍵詞:人臉檢測;膚色檢測;YCbCr顏色空間;Adaboost算法;權重
DOI:10.15938/j.jhust.2018.02.016
中圖分類號: TP391.4
文獻標志碼: 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)有的人臉檢測技術主要有三大類:基于膚色的檢測方法[1]、基于形狀的檢測方法[2]和基于統(tǒng)計的檢測方法[3]?;诮y(tǒng)計的檢測方法用得比較多?;诮y(tǒng)計的人臉檢測方法主要有:Adaboost、神經(jīng)網(wǎng)絡方法、支持向量機方法、隱馬爾可夫模型等。其中最成熟的方法是Adaboost方法。1995年Freund和Schipare[4-5]提出了Adaboost算法,它是第一個實時的人臉檢測算法。2001年,Paul Viola 和Michael Jones[6]提出基于Haar-like特征的Adaboost人臉檢測算法,雖然提高了檢測速度,但是有一些缺點,比如訓練樣本時花費時間過長。隨后出現(xiàn)了很多改進了的Adaboost算法用于人臉檢測,在人臉檢測速度和檢測率等都有了一定的提高。
本文結合了YCbCr膚色模型方法,并在傳統(tǒng)的Adaboost算法的基礎上,針對在訓練過程中可能出現(xiàn)的退化現(xiàn)象和正負樣本權重出現(xiàn)嚴重扭曲影響訓練精度從而影響檢測率等問題,提出了一種改進的Adaboost算法,通過調整誤差分布和改正權重更新機制達到了很好的效果。
1 膚色檢測
人臉的主要特征是膚色,人臉膚色和環(huán)境存在較大的顏色差異,通過膚色很容易將人臉和背景區(qū)分開?;谀w色來進行人臉檢測是最常用的方法,該方法需要選取合適的顏色空間和建立膚色模型。
1.1 顏色空間和膚色模型選取
在顏色空間選擇時,應該注意該顏色空間的顏色和亮度是否能夠分離,膚色在該顏色空間是否具有較好的聚類性。在RGB顏色空間,為了除去光照的影響,人臉膚色需要亮度歸一化。歸一化后的顏色分量分別為:
其中r+g+b=1,且三者相互獨立。由于這種歸一化僅僅去除了R、G、B中的相對亮度成分R+G+B,而r、g、b仍然存在亮度信息,所以不能選取RGB作為顏色空間。因此我們需要找到一種顏色空間不僅具有較好的聚類性,顏色和亮度是否能夠分離外,還需要考慮RGB空間轉到該空間的難易程度。綜合分析下,我們選取YCbCr顏色空間。因為它不僅膚色聚類性好,分割效果好,而且容易從RGB空間轉換。在從RGB到YCbCr的轉換中,轉換公式如下:
R、G、B為RGB顏色空間中紅綠藍3個顏色通道的顏色值。
常用的膚色模型有橢圓模型、統(tǒng)計直方圖模型、簡單高斯模型等。其中簡單高斯模型具有較好的特性,能夠較好的表示膚色的分布,檢測率高并且具有較快的計算速度。本文采用簡單高斯模型。在YCbCr色彩空間歸一化色度直方圖后,采用簡單高斯模型對膚色進行建模。建立高斯模型M=(m, c),其中,m是均值,m=E(x),x=(Cb, Cr)T,C=E(x-m)(x-m)T,C表示協(xié)方差矩陣。通過該模型來檢測任意一個像素是否為膚色的概率為:
該概率越大說明該像素點屬于膚色像素點的概率就越大,反之越小。
1.2 膚色分割
因為光照會影響圖片的亮度,所以在檢測膚色之前需要對待檢測的RGB圖像進行亮度補償,用中值濾波消除噪聲的影響。然后將人臉圖像從RGB顏色空間映射到YCbCr空間,利用高斯模型最后得到人臉相似度灰度圖像。人臉相似度灰度圖像如圖1所示:
在圖1中人臉區(qū)域和背景區(qū)域在灰度上具有明顯差別,采用二值化得到人臉輪廓,其中二值化閾值采用的是整幅圖像的灰度均值。分割后的二值圖像會包含一些誤認為膚色的小塊區(qū)域,因此對圖像進行形態(tài)學濾波消除圖像中小塊噪聲。得到候選人臉區(qū)域如圖2所示:
2 基于Adaboost的人臉檢測
2.1 傳統(tǒng)的Adaboost算法
本文在Viola的形變的Adaboost算法的基礎上進行改進。該算法的主要特點是在訓練分類器的同時可進行特征選擇。每個特征對應一個弱分類器。用于人臉檢測時,是對含有人臉的正樣本和不含人臉的負樣本的矩形特征進行訓練。由于正負樣本的Haar特征遠遠大于圖像像素數(shù)目,故該算法引入了積分圖,能夠很快的計算出每個Haar特征,從這個很大的特征積中選擇很小一部分關鍵特征,由此產(chǎn)生一個比較有效的分類器。要想得到最終的分類器,最重要的是找到這些特征。在設計分類器時,需要從正負樣本進行分類的所有弱分類器中選擇錯誤率最低的那個,這樣在經(jīng)過T次迭代,選擇出了T個特征值,并且產(chǎn)生了一個最終的弱分類器。
2.2 改進原因
Adaboost算法最大的缺點是樣本的權重更新,該算法能夠保證在樣本訓練的過程中專注于那些處理比較困難的樣本。但是如果訓練集中含有噪聲樣本和罕見的特殊樣本,該算法在得到每一個弱分類器時會逐漸加大這些難分類樣本的權重,在訓練過程中就會加大對這些樣本的重視,而忽略其他樣本。如果這些困難樣本數(shù)量很大,那么在經(jīng)過幾輪弱分類器訓練后,這些樣本權重的增長幅度就會明顯增大。這樣訓練下去必然會導致那些被錯分圖像的弱分類器的權值變大,在最后加權投票形成強分類器時所占的權重變得很小,對其他訓練目標的判斷形成干擾。而那些被正確分類的樣本的權重則會不斷降低,導致不被分類器重視。隨著迭代次數(shù)的增加,權重分布會嚴重扭曲。更嚴重情況下,當最小加權誤差大于0.5時,將會導致Adaboost算法訓練結束。為了顯示正樣本和負樣本的權重分布情況我們運用傳統(tǒng)的Adaboost訓練MIT人臉圖像庫。其中弱分類器的分類誤差可分為正誤差和負誤差,把含有人臉圖像的樣本稱為正樣本,含有非人臉圖像的樣本稱為負樣本。正樣本被劃分為負樣本,記為正誤差,負樣本被劃分為正樣本,記為負誤差。實驗結果圖3所示:
由圖3可以看出,隨著弱分類器數(shù)量的增加,樣本的正負誤差比曲線逐漸上升。即隨著訓練次數(shù)的增加,正樣本誤差與負樣本誤差之比越來越大,說明被分錯的正樣本的權重偏大,負樣本的權重偏小,正樣本被劃分為負樣本的樣本越來越多。經(jīng)過多次訓練,逐漸出現(xiàn)權重分配不平衡現(xiàn)象,最終導致權重分配嚴重扭曲。對訓練精度產(chǎn)生極大影響。
針對難分樣本過適應、對其他樣本產(chǎn)生忽視性偏見,從而導致算法性能的降低等問題,很多研究者做了大量的改進工作。文[7]提出多步校正算法,在調整當前分類器權值時考慮前面多個分類器的情況,訓練出來的分類器有小幅度提升。文[8]提出通過設定最大樣本權重的閾值,來限制樣本權重過分配現(xiàn)象。Cid[9]等提出了RADA算法,用來抑制原算法中出現(xiàn)的分類樣本的權值?,F(xiàn)在我們需要找到一種權重更新算法,去抑制該問題的發(fā)生。
2.3 權重更新改進方法
我們把訓練過程中出現(xiàn)的正誤差記為ξ+,負誤差記為ξ-。經(jīng)過j輪迭代訓練后,得到的正誤差,負誤差分別為:
其中amount為當前樣本在前k次訓練過程中被錯分的次數(shù)??芍猘mount越大,被錯分的樣本權重增大幅度減小,有效的控制了權重分配不均衡問題。由式(13)可知在樣本的訓練過程中,不僅對FPR敏感,而且對amount敏感。FPR或者amount的增大都會使被錯分的樣本權重增大幅度減小,從而更加有效的限制權重過分配問題。
2.3 改進的Adaboost人臉檢測
在傳統(tǒng)方法中,利用本文改進的Adaboost算法的級聯(lián)分類器對整幅圖像進行掃描,檢測速度較慢。而利用本文所提的膚色分割人臉檢測方法,把膚色的候選區(qū)域提取出來作為本文改進的Adaboost算法的級聯(lián)分類器的輸入。可以提高檢測速度。算法流程如圖4所示:
3 實驗結果與分析
3.1 權重更新后的結果
訓練過程中,訓練樣本選自MIT共享人臉圖像庫,采用正負樣本比為1000∶2000,取λ1=0.5,λ2=1.5。用本文提出的權重更新后的Adaboost算法對樣本進行訓練。得到的正負誤差比曲線如圖5。
上圖是權重修改后得到的正負誤差比曲線。取λ1=0.5,λ2=1.5訓練樣本。由上圖權重修改后的正負誤差比曲線要比傳統(tǒng)Adaboost算法的正負誤差比曲線上下波動幅度要小,即限制了權重分配過適應。并且,修改后的Adaboost算法在訓練工程中能夠產(chǎn)生更多的弱分類器。而傳統(tǒng)的Adaboost算法提前就結束了訓練。因此改進后的Adaboost算法能夠提高檢測率。結果如表1所示:
3.2 本文檢測方法的實驗結果
本文在VisualStudio2013和Opencv2.4.9進行編程測試。使用MIT人臉和非人臉庫作為正負樣本訓練Adaboost分類器。測試圖像來源于互聯(lián)網(wǎng)上隨機搜索的圖像。檢測結果如圖6所示:
如下表2為本文提出的檢測方法與傳統(tǒng)的Adaboost算法在檢測率,檢測時間的對比。實驗表明,本文提出的檢測方法比傳統(tǒng)的Adaboost算法具有更高檢測率和檢測速度。檢測結果數(shù)據(jù)統(tǒng)計如表2所示:
4 結 論
本文分別介紹了膚色檢測和改進的Adaboost算法。針對傳統(tǒng)Adaboost算法存在訓練退化和訓練目標類權重分布過適應現(xiàn)象,提出了一種新的權重更新方法,該方法能夠很好地根據(jù)錯分樣本的錯分次數(shù),達到不同程度地對其權重進行限制,同時提高了檢測率。對待檢測圖像進行膚色分割等一系列操作,得到候選人臉檢測區(qū)域,將其作為本文改進Adaboost算法分類器的輸入,從而縮小了檢測區(qū)域,提高了檢測速度。
參 考 文 獻:
[1]陳鍛生,劉政凱.膚色檢測技術綜述[J].計算機學報,2006,29(2):194-207.
[2]王文寧,李慧娟,師磊.一種基于顏色和形狀特征的人臉檢測方法[J].計算機系統(tǒng)應用,2008,7:58-61.
[3]張明慧,張明超,張堯禹.基于統(tǒng)計的人臉檢測方法研究[J].電腦編程技巧與維護,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]蔣焰,丁曉青.基于多步校正的改進Adaboost算法[J].清華大學學報,2008,48(10):1609-1612.
[8]房宜汕.基于改進Adaboost的快速人臉檢測算法[J].計算機應用與軟件,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].臺北:臺灣清華大學,2005.
[11]曹瑩,苗啟廣,劉家辰,等.AdaBoost算法研究進展與展望[J].自動化學報,2013,19(6):745-758.
[12]袁雙,呂賜興.基于PCA 改進的快速Adaboost 算法研究[J].科學技術與工程,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ū)域標記的人臉檢測算法研究[J].軟件導刊,2016,15(2):41-43.
[16]慶偉,應自爐.一種基于 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è)控制計算機,2016,29(1):91-95
[19]張君昌,李倩,賈靖.基于分類器相關性的 A daboost人臉檢測算法[J]. 計算機應用,2009,29(12):3346-3348
[20]孫曉燕,張化祥,計華. 基于AdaBoot的欠抽樣集成學習算法[J]. 山東大學學報,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.
(編輯:關 毅)