方承志 袁海峰
(南京郵電大學電子科學與工程學院 江蘇 南京 210023)
?
基于CMYK-H-CbCr膚色檢測和改進型AdaBoost算法的人臉檢測
方承志 袁海峰
(南京郵電大學電子科學與工程學院 江蘇 南京 210023)
針對復雜背景和高分辨率的人臉檢測問題,提出一種多顏色空間下的膚色檢測和改進型AdaBoost算法結合的人臉檢測方法。首先,為了提高檢測速度,采用多顏色空間的膚色檢測作為預處理,結合CMYK、HSV、YCbCr三種顏色空間下的膚色閾值分割,得到人臉候選區(qū)域;其次,為了克服人臉相似區(qū)域容易導致的退化現(xiàn)象,將樣本和弱分類器閾值的距離結合到權重更新中,提出一種改進型的AdaBoost算法。實驗證明,二者結合后的新方法,在保證檢測率的同時,大幅降低了計算復雜度和誤檢率。
人臉檢測 CMYK-H-CbCr膚色檢測 改進型AdaBoost 退化現(xiàn)象
人臉檢測是人臉圖像分析(主要包括人臉識別[1]、人臉跟蹤[2]、人臉表情和行為識別[3])的基礎。現(xiàn)下比較流行的人臉檢測算法主要有傳統(tǒng)人臉檢測基于滑動窗口+手工設計特征以及候選區(qū)域+深度學習。傳統(tǒng)的人臉檢測中訓練樣本的算法主要有SVM和AdaBoost,Osuna 將SVM 算法應用在人臉檢測中[4], 但 SVM 的非線性能力比較差且計算復雜度較高。相對SVM, Adaboost[5]不僅非線性表示能力強,而且結構簡單。Viola等提出基于矩陣特征的Adaboost算法[5],才將人臉檢測應用到實際中。近一段時間非常火熱的候選區(qū)域+卷積神經網絡[6],采用候選區(qū)域解決了滑動窗口帶來的問題。
Viola等提出的人臉檢測器對于高分辨率的圖片,檢測是逐像素進行的,計算復雜度較高[5]。而且實際情況中,尤其某些嵌入式系統(tǒng)場合,往往要求分辨率較高的圖片,而且背景也比較復雜,同時對檢測速度以及檢測率都有很高的要求。在這樣的高分辨率的圖片中,人臉區(qū)域往往只占了小部分,這也就意味著只需要排除圖片中的大量非人臉區(qū)域就可以提高檢測速度。本文結合文獻[6]中的候選區(qū)域,所謂候選區(qū)域就是圖中人臉可能出現(xiàn)的位置,候選區(qū)域利用了圖像中的紋理、邊緣、顏色等信息,綜合考慮本文采用了膚色來進行區(qū)域選擇。而膚色候選區(qū)域中最常用的是在YCbCr空間中的簡單閾值分割[7]。在文獻[8]中使用HSV空間來進行閾值分割,文獻[9]中描述10 種顏色空間的聚類分割,其中提到了CMY顏色空間,但是忽略了K對整個顏色空間的影響。上述方法都沒有考慮光照等不確定因素對人臉檢測的影響,本文引入CMYK顏色空間并分析了光照強度對人臉的影響,結合HSV和YCbCr提出一種新的閾值算法,從而快速得到可能的人臉候選區(qū)域。雖然膚色檢測速度快,排除了大部分的非人臉區(qū)域,但剩下的都是一些和人臉相似的區(qū)域稱之為候選區(qū)域。
在傳統(tǒng)的AdaBoost算法,訓練所得的分類器很難將候選區(qū)域區(qū)分,特別是經過膚色檢測過濾的候選區(qū)域,這些區(qū)域大多與人臉很難區(qū)分,此時,“退化”現(xiàn)象對檢測率的影響將會很大[10]。解決的方法主要有修改權重更新,與其他算法結合得到新算法。Zakaria等提出了將神經網絡和AdaBoost結合的人臉檢測算法[11]。該方法使用BP神經網絡作為AdaBoost的弱分類器,改善了弱分類器的性能,但是神經網絡的復雜性使得檢測速度下降。由于AdaBoost人臉檢測訓練樣本中正樣本和負樣本的數(shù)據(jù)不均衡,Viola等提出了一個非對稱的 AdaBoost 方法[12],出現(xiàn)誤檢時增大正樣本的比重,減小負樣本的比重,文中也提到該方法檢測效果不好。綜合以上問題,本文提出了一種新的權重更新方法,將樣本到閾值的距離增加到權重更新,使得當分類正確時,樣本距離閾值越近權重則越小;分類錯誤時,樣本距離閾值越近權重越大,從而提出了MWR-AdaBoost算法。
1.1 光照補償
我們所看到的顏色都是反射所得的,因此光照會給人臉檢測帶來很多不確定性。所以本文采用基于參考白算法解決人臉檢測中的光照問題,即對人臉圖像進行光照補償預處理,減少光照對人臉的影響。參考白是由Hsu等在文獻[13]中首次提出的,是當下最流行的光照補償方法。
由文獻[13]可得,參考白算法可以簡單描述為: 當圖像像素的數(shù)量足夠多(>100) 時,將這些像素亮度非線性γ校正后取5%亮度的像素值作為參考白。彩色圖像中的R、G、B分量被調整以致參考白像素的平均灰度值線性調整為 255。i∈[lu,255]是前5%的亮度水平,fi是i像素的灰度值,因此修改后的RGB值如式(1)所示,其中x是圖像中的每個像素點。

(1)
1.2 顏色空間分析
CMYK顏色空間是一種負的顏色空間,每個坐標的描述如下:
C是藍綠色,一種帶陰影的藍色,有一點灰白又很淡,有的時候也描述為灰天空藍或者是深藍。
M是品紅色,是一種包含藍色和紅色的合成色,通常被描述為深紅色、紫紅色。
Y是黃色,和黃色顏料非常相似,但是又有一些淡,是紅色和綠色的合成色。
K是黑色,黑色要比其他顏色的花費更少。
由于CMYK是具有很強的設備依賴性,所以沒有一個通常的方法用來轉換RGB和CMYK。為了簡化這個問題本文使用式(2)來轉換RGB和CMYK,其中R、G、B的范圍是[0,255],K:[0,255],C,M,Y:[0,1]。

(2)
文獻[14]中第一次將CMYK顏色空間使用到實際中,文中提出與文獻[10]中的CMY顏色空間的不同,坐標K的加入使得CMYK顏色空間發(fā)生了變化。但是文獻[14]中沒有考慮到光照強度對膚色的影響。CMYK是打印機的色彩方式,對光照強度敏感,容易受到光照強度的影響。在此分析了膚色的構成后,發(fā)現(xiàn)膚色和亮度相關性不高,因此可以利用色度空間HSV,YCbCr進行分析,從而排除了光照強度的影響。圖1表現(xiàn)了H-V和H-S在膚色區(qū)域的分布。圖2可以看出膚色在Y、Cb、Cr坐標上的分布。

圖1 H-S,H-V的分布圖

圖2 Y,Cb,Cr坐標的膚色分布
1.3 顏色空間閾值邊界
在CMYK顏色空間中,文獻[13]中詳細描述了CMYK顏色空間和RGB的區(qū)別,并且從光學角度進一步闡述了這個問題,從而得到了一個閾值式(3):

(3)
在HSV空間中,閾值分割如式(4):

(4)
在YCbCr顏色空間中閾值表達式為,圖3可以看到CbCr空間的閾值分割,可以簡化為式(5):

(5)

圖3 Cb-Cr空間的膚色分布
將式(3)-式(5)進行并操作,即可獲得最后的閾值表達式。利用改進的閾值分割結果如圖4 所示,其中(a)為原始圖片,(b)為經過上述公式閾值分割后的圖片,(c)為經過形態(tài)學處理后的圖片。

圖4 膚色分割后的結果
用在人臉檢測上的AdaBoost算法,主要是基于積分圖和級聯(lián),文獻[5,12]中表明了AdaBoost算法就是在許多弱分類器中找到一個強分類器,具體過程如下。
步驟1輸入
N個訓練樣本:{x1,y1},{x2,y2},…,{xn,yn},其中xi∈X,yi∈{-1,+1}。

步驟3訓練T輪
(1) 訓練弱分類器,使得錯誤率εt最小,弱分類器如式(6)所示,錯誤率εt的計算公式如式(7):

(6)
(7)
(2) 計算αt,計算公式如式(8):
(8)
(3) 更新權重

(9)
其中:
(10)
步驟4輸出
輸出的強分類器為:
(11)
在原始AdaBoost算法的權重更新過程中,那些難以區(qū)分的樣本,隨著訓練的進行,權重會越來越大甚至會影響訓練的檢測率,這就是“退化現(xiàn)象”。為了解決退化現(xiàn)象,對權重更新作出了改進。
對于一個弱分類器,如圖5所示,θ是閾值,偏置p=1,f1、f2比閾值θ小,判斷為人臉,而f3、f4比閾值θ大,判斷為非人臉。由圖5可以明顯發(fā)現(xiàn),f1和θ的距離要大于f2,但是f1和f2都被判斷為人臉,所以f1的判斷準確度要比f2高,若樣本權重更新,f1權重的下降幅度是否應該大于f2。同理,f4和f3都被判定為非人臉,此時f4的錯誤率明顯要比f3高,那么權重更新時就應該讓f4的權重上升更多。

圖5 弱分類器的形象描述
針對以上情況,本文將閾值到樣本的距離加入到權重更新中,從而提出一種新的權重更新方法:

(12)
其中,F(xiàn)=max{f(xi)},Zt是歸一化因子。
當分類正確時,也就是yiht(xi)=1時,

(13)
其中,若f(xi)>f(xj),則ωt+1,i<ωt+1,j。
當分類錯誤時,也就是yiht(xi)=-1,

(14)
其中,若f(xi)>f(xj),則ωt+1,i>ωt+1,j。
改進型AdaBoost算法流程如圖6所示。

圖6 改進型AdaBoost算法的流程圖
AdaBoost算法關注的是分類錯誤的樣本,如果存在一些很難被區(qū)分的非人臉,在訓練過程中,它的權值將會逐步增大,進而會影響分類器的精度,導致“過擬合”現(xiàn)象。本文通過增加樣本和閾值之間的距離,從而抑制了這種退化現(xiàn)象。此外,本文提出新的權重更新方法不僅考慮了全部樣本的分類情況,更是將每個樣本的分類情況及其不確定性都考慮到,在此基礎上提出了一種新的MWR-AdaBoost算法。
算法的具體過程如下:
步驟1輸入
訓練樣本為(x1,y1),(x2,y2),…,(xN,yN),其中N=l+m;yi∈{+1,-1},分別用來標記正樣本和負樣本,其中l(wèi)是正樣本數(shù)量,m是負樣本數(shù)量。
步驟2初始化

步驟3訓練T輪
(1) 找出性能最好的弱分類器,εt最小的弱分類器性能最好:

(15)
找到目標ht(x)=h(x,ft,pt,θt),也就是使得εt最小的ft、pt、θt。
(3) 更新權重

(16)
其中Zt是歸一化因子。
步驟4輸出
(17)
3.1 預處理
本文采用CMYK-H-CbCr混合顏色空間對圖片進行預處理,這樣既可以提高檢測速度,又可以提高AdaBoost算法的誤檢率。首先是對圖片進行參考白處理,處理其中的噪聲和對圖片進行光照補償,在一定程度上,減輕了光照強度對膚色檢測的影響。然后分別將RGB顏色空間轉換為CMYK、HSV和YCbCr空間,使用第二節(jié)所提出的閾值分割方法,分割圖像,再對圖像做形態(tài)學處理,去除那些很小的點。
3.2 訓練樣本提取
本實驗的訓練樣本來采集自各種主流的人臉檢測數(shù)據(jù)庫以及萬維網, 共4 000 個人臉、 12 000個非人臉。所有提取的人臉是都轉為從人眼到嘴巴的一個24×24的矩形。
3.3 訓練算法
本實驗采用的是灰度haar-like矩形特征,主要采用圖7所示的5種haar-like特征。基本樣本為24×24,提取該窗口的所有haar-like特征,共有162 336種特征。而AdaBoost算法就是從這160 000多個特征中找到最適合多個特征。

圖7 haar-like特征
本文是對經過膚色檢測后圖像進行處理,也就是提取灰度haar-like特征,由于haar-like的積分圖降低了計算復雜度,所以本文還是計算了所有的積分圖,以加快haar-like特征的提取。此后,本文則是采用所提出的MWR-AdaBoost算法對樣本進行訓練,從而獲取所需的特征和其所提取的位置,這樣也可以加快檢測速度。
3.4 級 聯(lián)
級聯(lián)思想是來源于決策樹算法的,級聯(lián)強分類器的策略是,將若干個強分類器由簡單到復雜排列,希望經過訓練使每個強分類器都有較高檢測率,而誤識率可以放低。比如幾乎99%的人臉可以通過,但50%的非人臉也可以通過,這樣如果有20個強分類器級聯(lián),那么他們的總識別率為0.9920,約等于98%,錯誤接受率也僅為0.520,約等于0.000 1%。級聯(lián)結構圖8所示。

圖8 級聯(lián)結構圖
對本文方法進行仿真實驗,使用的開發(fā)平臺為Matlab2014,Intel core i5處理器。首先本實驗用3種人臉數(shù)據(jù)庫對MWR-AdaBoost算法進行檢測,分別為:MIT CBCL數(shù)據(jù)庫, 包括2 106個人臉樣本和4 381個非人臉樣本;BioID數(shù)據(jù)庫,包括1 521個人臉樣本;AT&T數(shù)據(jù)庫,包括400個人臉樣本和45個非人臉樣本。檢測結果如表1所示。

表1 MWR-AdaBoost在不同數(shù)據(jù)庫中的分類結果
實驗結果如圖9所示,(a)為原始圖片;(b)為使用原始AdaBoost算法的檢測結果,由圖中可以看出許多背景被誤檢為人臉;(c)為使用原始AdaBoost和本文新膚色閾值法得到的檢測結果,和(b)相比已經沒有將背景誤檢為人臉了,但是出現(xiàn)一些人臉被漏檢了;(d)為使用本文提出的CMYK+H+CbCr閾值算法和改進型的AdaBoost算法結合的到的結果,與(b)相比也沒有誤檢,和(c)相比也沒有漏檢了。

圖9 本文方法的檢測結果
此外,本文還在AR彩色人臉數(shù)據(jù)庫上實驗了本文提出的方法,并且做出了比較。AR數(shù)據(jù)庫一共包含126張彩色人臉圖片,但是具有不同光照和表情變化。檢測結果如表2所示。

表2 各方法在AR庫中檢測結果
本實驗檢測結果與Zakaria等的AdaBoost+CNN[11]的檢測結果進行比較,結果如表3所示。從表中可以發(fā)現(xiàn),雖然二者的檢測率和誤檢率相差不多,但是Adaboost+CNN的檢測時間過長,主要是由于神經網絡的復雜度高造成的。

表3 MWR-AdaBoost與AdaBoost+CNN比較
最后本實驗對本文提出的CMYK-H-CbCr+MWR-AdaBoost與膚色檢測+AdaBoost[15]進行了比較,結果如表4所示。從表中可以發(fā)現(xiàn),在不影響檢測時間和檢測率的情況下,進一步降低了誤檢率。

表4 本文方法與膚色檢測+AdaBoot比較
通過實驗可以得到,本文提出的CMYK-H-CbCr閾值分割法,在一定程度上可以減弱光照強度對膚色的影響,在與MWR-AdaBoost算法結合后更是減少了誤檢率。使用MWR-AdaBoost算法,該算法在權重更新時,不僅僅考慮全體樣本,更加考慮了每一個樣本的獨立性,將權重的更新與每一個樣本和閾值的距離結合起來,從而解決了AdaBoost訓練過程中的“退化”現(xiàn)象。通過這些改變,在保證一定檢測率的前提下,不僅縮減了誤檢率,還縮短了檢測時間。
[1] Karczmarek P,Kiersztyn A,Rutka P,et al.Linguistic descriptors in face recognition:A literature survey and the perspectives of future development[C]//Witold PedryczSignal Processing:Algorithms,Architectures,Arrangements,and Applications (SPA),2015:98-103.
[2] Kalal Z,Mikolajczyk K,Matas J.Face-TLD:Tracking-Learning-Detection applied to faces[C]//IEEE International Conference on Image Processing.IEEE,2010:3789-3792.
[3] Pantic M,Rothkrantz L J M.Automatic Analysis of Facial Expressions:The State of the Art[J].Pattern Analysis & Machine Intelligence IEEE Transactions on,2000,22(12):1424-1445.
[4] Osuna E,Freund R,Girosit F.Training support vector machines:an application to face detection[C]//Computer Vision and Pattern Recognition,1997.Proceedings.1997 IEEE Computer Society Conference on,2002:130-136.
[5] Viola P,Jones M.Robust Real-time Face Detection[J].International Journal of Computer Vision,2004,57(2):137-154.
[6] Girshick R,Donahue J,Darrell T,et al.Region-Based Convolutional Networks for Accurate Object Detection and Segmentation[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2015,38(1):142-158.
[7] Basilio J A M,Torres G A,Perez G S,et al.Explicit image detection using YCbCr space color model as skin detection[C]//American Conference on Applied Mathematics and the,Wseas International Conference on Computer Engineering and Applications.World Scientific and Engineering Academy and Society (WSEAS),2011:123-128.
[8] Alabbasi H A,Moldoveanu F.Human face detection from images,based on skin color[C]//System Theory,Control and Computing (ICSTCC),2014 18th International Conference,2014:532-537.
[9] Chaves-González J M,Vega-Rodríguez M A,Gómez-Pulido J A,et al.Detecting skin in face recognition systems:A colour spaces study[J].Digital Signal Processing,2010,20(3):806-823.
[10] Kutin S,Niyogi P.The interaction of stability and weakness in AdaBoost[J].Journal of Immunology,2001,118(3):971-980.
[11] Zakaria Z,Suandi S A.Face detection using combination of Neural Network and Adaboost[C]//TENCON 2011-2011 IEEE Region 10 Conference.IEEE,2011:335-338.
[12] Viola P,Jones M.Fast and Robust Classification using Asymmetric AdaBoost and a Detector Cascade[J].Advances in Neural Information Processing Systems,2001,14:1311-1318.
[13] Hsu R L,Abdelmottaleb M,Jain A K.Face Detection in Color Images[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2002,1(5):696-706.
[14] Sawicki D J,Miziolek W.Human colour skin detection in CMYK colour space[J].Iet Image Processing,2015,9(9):751-757.
[15] Ji S,Lu X,Xu Q.A fast face detection method combining skin color feature and AdaBoost[C]//International Conference on Multisensor Fusion and Information Integration for Intelligent Systems,2014:1-5.
FACEDETECTIONBASEDONCMYK-H-CBCRSKINCOLORDETECTIONANDIMPROVEDADABOOSTALGORITHM
Fang Chenzhi Yuan Haifeng
(CollegeofElectronicScienceandEngineering,NanjingUniversityofPostsandTelecommunications,Nanjing210023,Jiangsu,China)
Aiming at complex background and high resolution face detection problem, a face detection method combining skin color detection and improved AdaBoost algorithm in multi-color space is proposed. First, in order to improve the detection speed, this paper uses the skin color detection of multi-color space as the pretreatment, and combined with CMYK, HSV, YCbCr three color space under the skin color threshold segmentation to get the face candidate area. Second, in order to overcome the degradation caused by the similarity of the similarity region, this paper combines the distance between the sample and the weak classifier threshold into the weight update, and proposes an improved AdaBoost algorithm. The experimental results show that the new method greatly reduces the computational complexity and false detection rate, while ensuring the detection rate.
Face detection CMYK-H-CbCr skin color detection Improved AdaBoost Degradation
2016-07-04。國家自然科學基金項目(61271334)。方承志,副教授,主研領域:模式識別,嵌入式系統(tǒng),信號處理。袁海峰,碩士生。
TP391.41
A
10.3969/j.issn.1000-386x.2017.08.030