摘 要: 提出一種結(jié)合膚色檢測(cè)和AdaBoost算法的自動(dòng)調(diào)焦實(shí)時(shí)人臉檢測(cè)方法。采用膚色信息定位皮膚區(qū)域,針對(duì)AdaBoost算法對(duì)待檢人臉尺寸小于訓(xùn)練樣本人臉尺寸時(shí)檢測(cè)率低的缺陷,并采用自動(dòng)調(diào)焦算法調(diào)整圖像大小后再利用AdaBoost算法進(jìn)行人臉檢測(cè)。實(shí)驗(yàn)結(jié)果表明,結(jié)合膚色信息和自動(dòng)調(diào)焦后的AdaBoost算法性能較傳統(tǒng)AdaBoost算法有明顯提高,同時(shí)對(duì)小人臉圖像也有更好的檢測(cè)效果。關(guān)鍵詞:人臉檢測(cè); 皮膚檢測(cè); AdaBoost; OpenCV
中圖分類號(hào):TN911-34; TP391.41 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)22-0094-03
Human-face Autofocus Detection Based on Complexion and AdaBoost Algorithm
LIU Qi, HUANG Ying, LIU Yun-feng
(School of Automation, Guangdong University of Technology, Guangzhou 510006, China)
Abstract: An autofocus and human face real-time detection method combining complexion detection with AdaBoost algorithm is proposed. The complexion information is adopted to locate the area of skin, and then the autofocus algorithm is utilized to adjust the image size before using AdaBoost algorithm to detect human-face in view of the low detection rate when the size of human-faces is smaller than that of training samples. The experiment results show that in comparison with the performance of traditional AdaBoost algorithm, the performance of AdaBoost algorithm combining skin color information with autofocus method is significantly improved. Tthe better effect of small face image detection is also acquired.
Keywords: human-face detection; skin detection; AdaBoost; OpenCV
收稿日期:2010-06-26
基金項(xiàng)目:國家自然科學(xué)基金資助項(xiàng)目(60272089);廣東省自然科學(xué)基金資助項(xiàng)目(04009464)
人臉檢測(cè)是指對(duì)輸入的靜態(tài)或視頻流圖像進(jìn)行處理、判斷其中是否存在人臉的過程。人臉檢測(cè)技術(shù)在視頻監(jiān)控、視頻檢索、人臉識(shí)別、人機(jī)交互等領(lǐng)域應(yīng)用廣泛。人臉檢測(cè)方法主要分為三類[1]:基于膚色的檢測(cè)方法;基于形狀的檢測(cè)方法;基于特征的檢測(cè)方法。基于膚色的檢測(cè)方法利用膚色與周圍環(huán)境的差異來檢測(cè)人臉,基于形狀的檢測(cè)方法利用一些形狀模板與人臉和五官的形狀信息進(jìn)行匹配而確定是否存在人臉,而基于特征的方法則采用諸如人臉灰度分布等特征來進(jìn)行人臉檢測(cè)。近年來,涌現(xiàn)了很多優(yōu)秀的人臉檢測(cè)方法,Paul Viola 和Michael Jones于2001年提出的AdaBoost算法[2],從根本上解決了人臉識(shí)別的實(shí)時(shí)性問題。Inalou SA等提出首先采用AdaBoost算法檢測(cè)人臉[3],然后采用膚色模型去除部分誤檢區(qū)域,最后采用支持向量機(jī)(SVM)方法作更嚴(yán)格的檢測(cè),該方法降低了誤檢率,但是檢測(cè)時(shí)間有所增加。Peng Yuxin等人提出采用膚色信息減少待掃描區(qū)域[4],然后再用AdaBoost算法精確定位人臉;劉棟、周激流等提出先采用融合膚色信息的圖像差分方法縮小待檢圖像區(qū)域[5],然后用Adaboost算法實(shí)現(xiàn)人臉檢測(cè);上述方法減少了檢測(cè)時(shí)間,同時(shí)也降低了誤檢率。但是當(dāng)人臉尺寸小于訓(xùn)練樣本尺寸時(shí),上述方法檢測(cè)率并不理想,針對(duì)以上問題,文中提出首先采用HSV膚色檢測(cè),確定可能存在人臉的區(qū)域,減少待檢測(cè)圖像區(qū)域。然后采用自動(dòng)調(diào)焦算法將圖像調(diào)整到適當(dāng)大小,最后采用AdaBoost算法檢測(cè)人臉。實(shí)驗(yàn)結(jié)果表明,該方法優(yōu)于傳統(tǒng)方法。
1 膚色檢測(cè)
膚色檢測(cè)中,背景的亮度經(jīng)常變化,對(duì)膚色檢測(cè)帶來了一定程度的干擾,因此,選擇合適的顏色空間消除這種干擾,能有效的提高膚色檢測(cè)的性能。
HSV(hue,saturation,value)顏色空間是一種面向視覺感知的顏色模型,對(duì)應(yīng)于圓柱坐標(biāo)系中的一個(gè)圓錐形子集,如圖1所示。其中亮度V∈[0,1],圓錐的頂面亮度最大,對(duì)應(yīng)于V=1;色度H由繞V軸的旋轉(zhuǎn)角給定,H∈[0°,360°],紅色對(duì)應(yīng)于角度0°,綠色對(duì)應(yīng)于角度120°,藍(lán)色對(duì)應(yīng)于角度240°;飽和度S∈[0,1]。在圓錐的頂點(diǎn)(即原點(diǎn))處,V=0,H和S無定義,代表黑色;圓錐的頂面中心處S=0,V=1,H無定義,代表白色。HSV顏色空間的優(yōu)點(diǎn)在于將亮度(V)與反應(yīng)顏色本質(zhì)特征的參數(shù)色度(H)和飽和度(S)分離。選擇反應(yīng)顏色本質(zhì)特征的飽和度分量和色度分量進(jìn)行膚色分析,不僅能有效的消除了亮度分量的影響,同時(shí)也更利于色彩的聚類分析。
通過對(duì)200張黃色人種人臉圖片進(jìn)行膚色測(cè)試分析,經(jīng)統(tǒng)計(jì)表明,比較合適的膚色分割區(qū)域?yàn)镠∈[0°,53°],S∈[0.21,0.69]。程序中將RGB空間圖像轉(zhuǎn)換為HSV空間圖像后判斷H和S分量的范圍,將不屬于該范圍的像素點(diǎn)的HSV分量均設(shè)置為0,表示黑色,其他區(qū)域則保持不變,采用OpenCV函數(shù)cvErode和cvDilate進(jìn)行形態(tài)學(xué)操作,去除離散點(diǎn)后再轉(zhuǎn)換為RGB空間的圖像如圖2所示。
圖1 HSV色彩空間
圖2 HSV膚色變換前后的結(jié)果
通常,皮膚區(qū)域在一副圖像中的比例為40%左右,提取出包含皮膚區(qū)域的最小矩形圖像做為待檢測(cè)的圖像,有利于減少人臉檢測(cè)的時(shí)間。采用搜索算法計(jì)算該區(qū)域并用矩形標(biāo)定后的結(jié)果如圖3所示。
圖3 矩形標(biāo)定皮膚區(qū)域
2 AdaBoost分類器
AdaBoost算法的基本思想是選擇一些由積分圖計(jì)算出的關(guān)鍵特征構(gòu)成弱分類器,然后將多個(gè)弱分類器合成強(qiáng)分類器,最后將強(qiáng)分類器級(jí)聯(lián)起來構(gòu)成最終的分類器。
2.1 擴(kuò)張的Harr-like矩形特征
AdaBoost分類器采用了一組類似于Harr小波變換的濾波器來計(jì)算圖像的特征值,選取Rainer Lienhart等人提出的擴(kuò)張Harr-like矩形特征[6],部分典型的矩形特征如圖4所示。
各矩形特征的特征值如式(1)所示:
featurej=∑i∈(1,2,…,N)wi×RectSum(ri)(1)
式中:featurej表示第j個(gè)矩形特征;wi表示第i個(gè)小矩形的權(quán)值;RectSum(ri)表示小矩形ri所圍的像素和;N為組成矩形特征的小矩形數(shù)。
2.2 弱分類器
每一個(gè)矩形特征對(duì)應(yīng)于一個(gè)簡(jiǎn)單的二值分類器,第j個(gè)特征的弱分類器由特征值fj,閾值θj和用于控制不等式方向的pj(只有±1兩種情況)確定,如式(2)所示。
hj(x)=1,if pjfj(x) 0,其他(2) 式中:x為24×24像素點(diǎn)子窗口,當(dāng)hj(x)=1時(shí)表示樣本為正樣本,反之為副樣本。通過對(duì)樣本進(jìn)行訓(xùn)練,選擇分類出錯(cuò)率最低的m個(gè)分類器最終組合成強(qiáng)分類器。 圖4 Harr-like矩形特征 2.3 強(qiáng)分類器的構(gòu)造 給定n個(gè)訓(xùn)練樣本(X1,Y1),(X2,Y2),…,(Xn,Yn),Yi=0,1分別代表副樣本和正樣本。采用AdaBoost算法將多個(gè)弱分類器組合成強(qiáng)分類器,算法具體描述如下: (1) 初始化權(quán)值。w1, i =1/2m,1/2l分別對(duì)應(yīng)于正副樣本,其中m和l分別為正副樣本數(shù)。 (2) for t = 1,2,…,T ①歸一化權(quán)值,wt,i=wt,i∑ni=1wt,i。 ②對(duì)每個(gè)特征j,訓(xùn)練出其弱分類器hj,也就是確定閾值θj和偏置pj,使得其加權(quán)誤差εj=∑ni=1wt,ihj(xi)-yi達(dá)到最小。 ③從②選擇具有最小分類誤差的分類器。 ④ 更新權(quán)值wt+1,i = wt,i βt 1-ei 。其中βt=εt(1-εt),ei=0表示xi被正確分類,反之xi被錯(cuò)誤分類。 ⑤訓(xùn)練結(jié)束后,最終得到強(qiáng)分類器如式(3)所示。 H(x)=1,∑Tt=1atht(x)≥12∑Tt=1at 0,其他(3) 式中:αt=lg(1/βt)。 3 自動(dòng)調(diào)焦 AdaBoost算法中,選擇尺寸為24×24的訓(xùn)練樣本圖片,當(dāng)使用該分類器檢測(cè)人臉時(shí),對(duì)于小于該尺寸的人臉圖像檢測(cè)效果欠佳,而視頻流人臉檢測(cè)中,小人臉情況時(shí)有發(fā)生。如果將訓(xùn)練樣本縮小,在其他條件不變的情況下務(wù)必增加檢測(cè)時(shí)間,而對(duì)大部分正常尺寸人臉圖片而言則沒有必要。因此,針對(duì)存在膚色區(qū)域而該區(qū)域較小的圖像采用插值方法做適當(dāng)放大調(diào)整,既兼顧了檢測(cè)時(shí)間同時(shí)也可以提高AdaBoost分類器的檢測(cè)率。常用的調(diào)焦方法主要有測(cè)距法和聚焦檢測(cè)方法[7],測(cè)距法基于鏡頭和物體之間的距離進(jìn)行調(diào)焦。人臉膚色區(qū)域的像素?cái)?shù)在某種程度上反映了被測(cè)人臉與鏡頭的距離,利用膚色區(qū)域像素?cái)?shù)作為調(diào)焦的輸入變量,設(shè)計(jì)調(diào)焦函數(shù)如式(4)所示: y=0,x<200 7-3200(x-200),200≤x<400 4-3600(x-400),400≤x<700 2.5-1800(x-700),700≤x<1 500 1,1 500≤x(4) 式中:x表示圖像中的皮膚像素?cái)?shù),y表示圖像的放大倍數(shù)。當(dāng)像素?cái)?shù)小于200時(shí),y=0表示不存在人臉。x≤1 500時(shí),圖片不進(jìn)行調(diào)焦。 4 檢測(cè)結(jié)果及分析 實(shí)驗(yàn)微機(jī)配置為Pentium 4,3.0GHz,1.5 GB內(nèi)存,軟件平臺(tái)為Visual C++ 6.0和OpenCV 1.0。從視頻流中提取5 000個(gè)不同形態(tài)、不同大小的人臉圖像進(jìn)行檢測(cè),統(tǒng)計(jì)結(jié)果如表1所示。部分檢測(cè)結(jié)果如圖5所示。 表1 視頻流人臉檢測(cè)統(tǒng)計(jì)結(jié)果 方法AdaBoost算法本文方法 檢測(cè)率92.52%94.78% 誤檢率4.8%2.24% 檢測(cè)時(shí)間/ms49.628 346.443 1 圖5 部分檢測(cè)結(jié)果 從結(jié)果中可以看出,經(jīng)HSV模型確定膚色區(qū)域后,人臉檢測(cè)區(qū)域縮小,檢測(cè)時(shí)間平均縮短3.1 ms左右,同時(shí),由于將膚色區(qū)域作為待檢圖像,排除了AdaBoost算法在非膚色區(qū)域檢測(cè)到人臉的誤檢情況,誤檢率降低2.56%;經(jīng)調(diào)焦后,對(duì)因人臉距攝像頭較遠(yuǎn)造成的人臉較小而檢測(cè)不到人臉的情況有所改善,檢測(cè)率提高2.26%。 5 結(jié) 語 本文提出一種將HSV膚色模型及自動(dòng)調(diào)焦算法與AdaBoost算法相結(jié)合的實(shí)時(shí)人臉檢測(cè)方法。針對(duì)視頻流人臉檢測(cè)的特點(diǎn),采用自動(dòng)調(diào)焦方法改善了AdaBoost算法對(duì)待檢人臉小于訓(xùn)練樣本時(shí)檢測(cè)率不理想的情況。與同類將膚色檢測(cè)和AdaBoost算法相結(jié)合的方法相比,結(jié)合膚色檢測(cè)、自動(dòng)調(diào)焦和AdaBoost算法的方法在實(shí)時(shí)性和誤檢率相當(dāng)?shù)那疤嵯绿岣吡藱z測(cè)率。雖然該方法在一定程度上解決了人臉過小問題,但是對(duì)于視頻流中人臉較多的情況還有待提高,這將是下一步的研究方向。 參考文獻(xiàn) [1]王志良,孟秀艷.人臉工程學(xué)[M].北京:機(jī)械工業(yè)出版社,2008. [2]VIOLA P,JONES M. Rapid object detection using a boosted cascade of simple features[C]//Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. China: Huazhong University of Science and Technology, 2001(1): 151-158. [3] INALOU SA,KASAEI S. AdaBoost-based face detection in color images with low 1 alarm[C]//2010 International Conference on Computer Modeling and Simulation [S.l.]:ICCMS, 2010(2):107-111. [4]PENG Yu-xin,JIN Yu-xin, HE Ke-zhong,et al. Color model based real-time face detection with AdaBoost in color image[C]//2007 International Conference on Machine Vision.[S.l.]: ICMV, 2007: 0-45. [5] 劉棟,周激流,郎方年,等.視頻圖像的實(shí)時(shí)人臉檢測(cè)系統(tǒng)[J].激光雜志,2007,28(2):52-54. [6]LIENHART R,MAYDT J. An extended set of haar-like features for rapid object detection[C].2002 International Conference on Image Processing.[S.l.]: ICIP, 2002(1):900-903. [7]姚源,譚廣通,李長(zhǎng)春. 基于圖像處理的自動(dòng)調(diào)焦的分析[J].科技信息,2009(19):72.