摘 要: 提出一種結合膚色檢測和AdaBoost算法的自動調焦實時人臉檢測方法。采用膚色信息定位皮膚區域,針對AdaBoost算法對待檢人臉尺寸小于訓練樣本人臉尺寸時檢測率低的缺陷,并采用自動調焦算法調整圖像大小后再利用AdaBoost算法進行人臉檢測。實驗結果表明,結合膚色信息和自動調焦后的AdaBoost算法性能較傳統AdaBoost算法有明顯提高,同時對小人臉圖像也有更好的檢測效果。關鍵詞:人臉檢測; 皮膚檢測; AdaBoost; OpenCV
中圖分類號:TN911-34; TP391.41 文獻標識碼:A
文章編號: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
基金項目:國家自然科學基金資助項目(60272089);廣東省自然科學基金資助項目(04009464)
人臉檢測是指對輸入的靜態或視頻流圖像進行處理、判斷其中是否存在人臉的過程。人臉檢測技術在視頻監控、視頻檢索、人臉識別、人機交互等領域應用廣泛。人臉檢測方法主要分為三類[1]:基于膚色的檢測方法;基于形狀的檢測方法;基于特征的檢測方法。基于膚色的檢測方法利用膚色與周圍環境的差異來檢測人臉,基于形狀的檢測方法利用一些形狀模板與人臉和五官的形狀信息進行匹配而確定是否存在人臉,而基于特征的方法則采用諸如人臉灰度分布等特征來進行人臉檢測。近年來,涌現了很多優秀的人臉檢測方法,Paul Viola 和Michael Jones于2001年提出的AdaBoost算法[2],從根本上解決了人臉識別的實時性問題。Inalou SA等提出首先采用AdaBoost算法檢測人臉[3],然后采用膚色模型去除部分誤檢區域,最后采用支持向量機(SVM)方法作更嚴格的檢測,該方法降低了誤檢率,但是檢測時間有所增加。Peng Yuxin等人提出采用膚色信息減少待掃描區域[4],然后再用AdaBoost算法精確定位人臉;劉棟、周激流等提出先采用融合膚色信息的圖像差分方法縮小待檢圖像區域[5],然后用Adaboost算法實現人臉檢測;上述方法減少了檢測時間,同時也降低了誤檢率。但是當人臉尺寸小于訓練樣本尺寸時,上述方法檢測率并不理想,針對以上問題,文中提出首先采用HSV膚色檢測,確定可能存在人臉的區域,減少待檢測圖像區域。然后采用自動調焦算法將圖像調整到適當大小,最后采用AdaBoost算法檢測人臉。實驗結果表明,該方法優于傳統方法。
1 膚色檢測
膚色檢測中,背景的亮度經常變化,對膚色檢測帶來了一定程度的干擾,因此,選擇合適的顏色空間消除這種干擾,能有效的提高膚色檢測的性能。
HSV(hue,saturation,value)顏色空間是一種面向視覺感知的顏色模型,對應于圓柱坐標系中的一個圓錐形子集,如圖1所示。其中亮度V∈[0,1],圓錐的頂面亮度最大,對應于V=1;色度H由繞V軸的旋轉角給定,H∈[0°,360°],紅色對應于角度0°,綠色對應于角度120°,藍色對應于角度240°;飽和度S∈[0,1]。在圓錐的頂點(即原點)處,V=0,H和S無定義,代表黑色;圓錐的頂面中心處S=0,V=1,H無定義,代表白色。HSV顏色空間的優點在于將亮度(V)與反應顏色本質特征的參數色度(H)和飽和度(S)分離。選擇反應顏色本質特征的飽和度分量和色度分量進行膚色分析,不僅能有效的消除了亮度分量的影響,同時也更利于色彩的聚類分析。
通過對200張黃色人種人臉圖片進行膚色測試分析,經統計表明,比較合適的膚色分割區域為H∈[0°,53°],S∈[0.21,0.69]。程序中將RGB空間圖像轉換為HSV空間圖像后判斷H和S分量的范圍,將不屬于該范圍的像素點的HSV分量均設置為0,表示黑色,其他區域則保持不變,采用OpenCV函數cvErode和cvDilate進行形態學操作,去除離散點后再轉換為RGB空間的圖像如圖2所示。
圖1 HSV色彩空間
圖2 HSV膚色變換前后的結果
通常,皮膚區域在一副圖像中的比例為40%左右,提取出包含皮膚區域的最小矩形圖像做為待檢測的圖像,有利于減少人臉檢測的時間。采用搜索算法計算該區域并用矩形標定后的結果如圖3所示。
圖3 矩形標定皮膚區域
2 AdaBoost分類器
AdaBoost算法的基本思想是選擇一些由積分圖計算出的關鍵特征構成弱分類器,然后將多個弱分類器合成強分類器,最后將強分類器級聯起來構成最終的分類器。
2.1 擴張的Harr-like矩形特征
AdaBoost分類器采用了一組類似于Harr小波變換的濾波器來計算圖像的特征值,選取Rainer Lienhart等人提出的擴張Harr-like矩形特征[6],部分典型的矩形特征如圖4所示。
各矩形特征的特征值如式(1)所示:
featurej=∑i∈(1,2,…,N)wi×RectSum(ri)(1)
式中:featurej表示第j個矩形特征;wi表示第i個小矩形的權值;RectSum(ri)表示小矩形ri所圍的像素和;N為組成矩形特征的小矩形數。
2.2 弱分類器
每一個矩形特征對應于一個簡單的二值分類器,第j個特征的弱分類器由特征值fj,閾值θj和用于控制不等式方向的pj(只有±1兩種情況)確定,如式(2)所示。
hj(x)=1,if pjfj(x) 0,其他(2) 式中:x為24×24像素點子窗口,當hj(x)=1時表示樣本為正樣本,反之為副樣本。通過對樣本進行訓練,選擇分類出錯率最低的m個分類器最終組合成強分類器。 圖4 Harr-like矩形特征 2.3 強分類器的構造 給定n個訓練樣本(X1,Y1),(X2,Y2),…,(Xn,Yn),Yi=0,1分別代表副樣本和正樣本。采用AdaBoost算法將多個弱分類器組合成強分類器,算法具體描述如下: (1) 初始化權值。w1, i =1/2m,1/2l分別對應于正副樣本,其中m和l分別為正副樣本數。 (2) for t = 1,2,…,T ①歸一化權值,wt,i=wt,i∑ni=1wt,i。 ②對每個特征j,訓練出其弱分類器hj,也就是確定閾值θj和偏置pj,使得其加權誤差εj=∑ni=1wt,ihj(xi)-yi達到最小。 ③從②選擇具有最小分類誤差的分類器。 ④ 更新權值wt+1,i = wt,i βt 1-ei 。其中βt=εt(1-εt),ei=0表示xi被正確分類,反之xi被錯誤分類。 ⑤訓練結束后,最終得到強分類器如式(3)所示。 H(x)=1,∑Tt=1atht(x)≥12∑Tt=1at 0,其他(3) 式中:αt=lg(1/βt)。 3 自動調焦 AdaBoost算法中,選擇尺寸為24×24的訓練樣本圖片,當使用該分類器檢測人臉時,對于小于該尺寸的人臉圖像檢測效果欠佳,而視頻流人臉檢測中,小人臉情況時有發生。如果將訓練樣本縮小,在其他條件不變的情況下務必增加檢測時間,而對大部分正常尺寸人臉圖片而言則沒有必要。因此,針對存在膚色區域而該區域較小的圖像采用插值方法做適當放大調整,既兼顧了檢測時間同時也可以提高AdaBoost分類器的檢測率。常用的調焦方法主要有測距法和聚焦檢測方法[7],測距法基于鏡頭和物體之間的距離進行調焦。人臉膚色區域的像素數在某種程度上反映了被測人臉與鏡頭的距離,利用膚色區域像素數作為調焦的輸入變量,設計調焦函數如式(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表示圖像中的皮膚像素數,y表示圖像的放大倍數。當像素數小于200時,y=0表示不存在人臉。x≤1 500時,圖片不進行調焦。 4 檢測結果及分析 實驗微機配置為Pentium 4,3.0GHz,1.5 GB內存,軟件平臺為Visual C++ 6.0和OpenCV 1.0。從視頻流中提取5 000個不同形態、不同大小的人臉圖像進行檢測,統計結果如表1所示。部分檢測結果如圖5所示。 表1 視頻流人臉檢測統計結果 方法AdaBoost算法本文方法 檢測率92.52%94.78% 誤檢率4.8%2.24% 檢測時間/ms49.628 346.443 1 圖5 部分檢測結果 從結果中可以看出,經HSV模型確定膚色區域后,人臉檢測區域縮小,檢測時間平均縮短3.1 ms左右,同時,由于將膚色區域作為待檢圖像,排除了AdaBoost算法在非膚色區域檢測到人臉的誤檢情況,誤檢率降低2.56%;經調焦后,對因人臉距攝像頭較遠造成的人臉較小而檢測不到人臉的情況有所改善,檢測率提高2.26%。 5 結 語 本文提出一種將HSV膚色模型及自動調焦算法與AdaBoost算法相結合的實時人臉檢測方法。針對視頻流人臉檢測的特點,采用自動調焦方法改善了AdaBoost算法對待檢人臉小于訓練樣本時檢測率不理想的情況。與同類將膚色檢測和AdaBoost算法相結合的方法相比,結合膚色檢測、自動調焦和AdaBoost算法的方法在實時性和誤檢率相當的前提下提高了檢測率。雖然該方法在一定程度上解決了人臉過小問題,但是對于視頻流中人臉較多的情況還有待提高,這將是下一步的研究方向。 參考文獻 [1]王志良,孟秀艷.人臉工程學[M].北京:機械工業出版社,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] 劉棟,周激流,郎方年,等.視頻圖像的實時人臉檢測系統[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]姚源,譚廣通,李長春. 基于圖像處理的自動調焦的分析[J].科技信息,2009(19):72.