李 凱
(江西理工大學理學院,江西贛州 341000)
隨著互聯(lián)網(wǎng)絡的快速發(fā)展,人們對智能化人臉檢測技術越來越重視。人臉檢測就是檢測一幅圖像中人臉所在的位置[1]。常用的人臉檢測方法有基于知識的方法[2]、基于特征的方法[3]、基于模板匹配的方法[4]、基于統(tǒng)計的方法[5]。在視頻中的檢測需要滿足實時性,Viola等[6-7]提出了一種基于AdaBoost的人臉檢測算法,同時建立了第一個真正實時的人臉檢測系統(tǒng),從根本上解決了檢測速度問題,具有較好的識別效果。但利用AdaBoost算法的人臉檢測具有一定的局限性,算法對于側(cè)面及多姿態(tài)的人臉檢測誤檢率較高。針對這個問題,本文提出了一種動態(tài)視頻流實時多人臉檢測算法,并對該法的檢測效率和速度進行了評價。
膚色是表征人臉的顯著特征信息,具有相對的穩(wěn)定性。視頻圖像的大小、表情、姿態(tài)等因素不會對膚色特征造成較大的影響。因為膚色與背景顏色存在較大差別,所以能夠運用膚色特征分割視頻圖像中的人臉區(qū)域。本文選擇在能夠?qū)D像的亮度與色度分離的YCbCr色彩空間中建模,并使用簡單門限的方法分割膚色的區(qū)域,然后運用膨脹處理,將離散的像素點以一定規(guī)則連接起來,并運用腐蝕的方法腐蝕掉較小的噪聲點。最終分割出視頻圖像的膚色區(qū)域。圖1是一幅圖像分割膚色區(qū)域的過程圖。圖1a是一幅原始的圖像。圖1b將RGB色彩空間中的圖像轉(zhuǎn)化YCbCr色彩空間中并運用簡單門限的方法分割的效果圖。從圖中可以看出分割出來的二值化圖像眼睛部分是黑色的,臉部的其他部分是白色的,需要將圖像中離散的像素點連接起來,以分割出全部的膚色區(qū)域。圖1c是經(jīng)過膨脹處理后二值化圖像的效果圖,從圖中可以看出一些很小的非膚色區(qū)域的較小噪聲點也連接在一起。圖1d是通過腐蝕處理,減小圖像中噪聲點后的效果圖。從圖1可以看出,通過以上的處理,膚色區(qū)域被完整地從圖像中分割出來。
圖1 圖像分割的過程
AdaBoost[8-9]算法是研究人員提出的一種通過不斷學習提高分類性能的算法。算法采用了一種Haarlike[10]特征選擇策略,通過灰度變化選取人臉特性。圖2中列舉了幾種比較常見的特征。Lienhart和Maydt在2002年擴展了幾種Haar-like特征。Haar-like特征能夠很好地選取視頻圖像中的數(shù)據(jù)特征點,但這種選取方式運行耗費時間過多,為了加快特征選取的速度,可以使用數(shù)學中常用的積分圖的方法。AdaBoost算法首先提取樣本圖像中的Haar-like特征,然后將圖像的特征數(shù)據(jù)作為訓練數(shù)據(jù)訓練弱分類器。假設樣本空間為(x,y),從樣本空間中選擇m組訓練樣本,訓練樣本的權重為1/2m。選擇一個弱學習算法迭代運算T次,每次運算后都按照分類結(jié)果調(diào)整訓練樣本的權重,并且賦予分類錯誤的訓練樣本更大的權重,在迭代運算中更加注意上次分類錯誤的訓練樣本的分類情況。弱分類器經(jīng)過不斷迭代最終獲得一個分類函數(shù)序列(f1,f2,…,fT)。賦予分類函數(shù)一個權重,分類效果差的分類函數(shù)賦予較小的權重。經(jīng)過T次迭代運算,最終得到一個由弱分類器加權形成的強分類器F。
圖2 幾種基本的Haar-like特征
AdaBoost算法的詳細工作步驟如下:
1)輸入n個訓練樣本:{(x1,y1),(x2,y2),…,(xn,yn)},其中i=1,2,…,n,yi為訓練樣本類別標簽(yi=0,1)分別表示l個負樣本(非人臉)、m個正樣本(人臉),l+m=n。
2)初始化權重
3)設t=1,2,…,T。
(1)歸一化訓練樣本的權值為
(2)每個特征j對應一個弱分離器hj為
用該弱分離器對所有樣本進行分類,然后計算對所有樣本進行分類的錯誤率的和ξj,即
(3)選擇具有最小錯誤率ξt的弱分離器ht(x)作為本次迭代得到的最佳弱分類器。
(4)更新樣本對應的相應權重,即
4)經(jīng)過T次迭代,選出T個最佳弱分類器,形成最后的強分類器,即
式中:at=lg(1/βt)。
針對傳統(tǒng)的AdaBoost人臉檢測算法對側(cè)面及多姿態(tài)人臉檢測誤檢率較高且檢測速度較慢等問題,為了得到性能更好的人臉檢測算法,本文提出了一種動態(tài)視頻流實時多人臉檢測算法。該算法在YCbCr空間中建立簡單的膚色模型,運用簡單門限以及一些形態(tài)學的運算,分割視頻圖像中的膚色區(qū)域,縮小AdaBoost算法的搜索范圍以降低算法的運行時間。最后運用AdaBoost方法在該區(qū)域內(nèi)精確地尋找出人臉所在的位置。
算法的詳細工作步驟如下:
1)攝像頭實時采集視頻圖像。
2)將RGB色彩空間中的視頻圖像轉(zhuǎn)化到Y(jié)CbCr色彩空間中。
3)運用簡單門限的方法分割視頻圖像中的膚色區(qū)域。
4)運用腐蝕和膨脹等形態(tài)學的方法處理分割出來的膚色區(qū)域。
5)運用AdaBoost算法構造的分類器,在膚色區(qū)域內(nèi)精確地定位人臉所在的位置。
6)標記出人臉所在的位置。
動態(tài)視頻流多人臉檢測算法的流程圖如圖3所示。
圖3 動態(tài)視頻流多人臉檢測算法流程圖
為驗證算法的有效性,本文在實驗環(huán)境為Inter(R)Core(TM)i5 CPU 2.53 GHz,2 Gbyte 內(nèi)存的計算機上,運用MATLAB2012和OpenCV2.3.1[11]混合編程實現(xiàn)了一個人臉檢測系統(tǒng)。并通過兩個實驗驗證本文所提出的算法在靜態(tài)圖像和動態(tài)視頻流中的算法性能。
實驗一:用本文提出的檢測方法檢測靜態(tài)圖像。圖5為使用該算法的人臉檢測效果圖。圖4a中包含4個人臉,檢測出4個、誤檢0個。圖4b包含8個人臉,檢測出8個、誤檢0個。圖4c包含19個人臉,檢測出18個人臉、誤檢0個。通過實驗一能夠得出,該算法在人臉數(shù)較少時檢測效果較好,但人臉數(shù)較多時有一定的漏檢。由于在膚色區(qū)域內(nèi)檢測人臉區(qū)域,算法的誤檢率也有所降低。
圖4 靜態(tài)圖像的人臉檢測效果圖
實驗二:為進一步驗證本文提出算法在實時動態(tài)視頻流中的有效性,本文運用筆記本式計算機自帶的攝像頭實時獲取動態(tài)視頻流并且檢測人臉區(qū)域,調(diào)節(jié)視頻圖像大小為320×240,幀頻為20 f/s(幀/秒)。實時動態(tài)檢測的效果如圖5、圖6所示。
圖5為實時動態(tài)視頻流單人臉檢測效果圖。圖6是實時動態(tài)視頻流多人臉檢測效果圖。從圖5和圖6中可以看出本文提出的實時動態(tài)視頻流多人臉檢測算法對有遮擋、側(cè)面以及多人臉檢測都具有較好的檢測效果。該算法克服了AdaBoost算法對側(cè)面及多姿態(tài)人臉檢測誤檢率較高的問題,能夠很好地跟蹤檢測人臉區(qū)域。
為了得到算法的具體性能數(shù)據(jù),本文分別采用Adaboost算法和本文方法定位動態(tài)視頻流中單個和多個人臉所在的位置。表1、表2為相應的數(shù)據(jù)信息。
圖5 實時動態(tài)視頻流單人臉檢測效果圖
圖6 實時動態(tài)視頻流多人臉檢測效果圖
表1 動態(tài)視頻中單人臉測試結(jié)果比較
表2 動態(tài)視頻中多人臉測試結(jié)果比較
從表中可以看出本文的算法降低了視頻中人臉檢測的誤檢率。文中沒有被檢測出人臉的視頻幀主要發(fā)生在只有部分人臉在攝像頭范圍內(nèi)的情況。該算法對側(cè)臉以及多人臉檢測效果良好。由于算法僅僅在膚色區(qū)域內(nèi)搜索人臉所在的位置,因此算法的運行時間也明顯減少。綜上所述,本文提出的算法具有良好的性能與可行性。
本文提出一種動態(tài)視頻流實時多人臉檢測算法,并實現(xiàn)了一個動態(tài)視頻流人臉檢測系統(tǒng)。該算法先在YCb-Cr色彩空間中建立膚色模型,然后運用簡單門限以及腐蝕和膨脹的方法分割視頻圖像中的膚色區(qū)域,最后運用AdaBoost算法在該膚色區(qū)域內(nèi)精確定位出人臉所在的位置。仿真實驗表明,該算法比傳統(tǒng)的算法有更低的誤測率和更快的檢測速度,算法能夠在動態(tài)視頻流中實時檢測,具有較高的實用價值。
:
[1]YANG M H,KRIEGMAN D,AHUJA N.Detecting faces in images:a survey[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,24(1):34-58.
[2]HUANG T S,YANG G Z.Human face detection in a complex background[J].Pattern Recognition,1994,27(1):53-63.
[3]PENV P S,ARICK J J.Local facture analysis:a general statistical theory for object representation[J].Network:Computation in Neural Systems,1996,7(3):477-500.
[4]SAKAI T,NAGAO M.Line extraction and pattern detection in a photograph[J].Pattern Recognition,1969(1):233-248.
[5]ROWLEY H A,BALUJA S,KANADE T.Neural network-based face detection[J].IEEE Trans.Pattern Analysis and Machine Intelligence,1998,20(1):23-38.
[6]VIOLA P,JONES M.Rapid object detection using a boosted cascade of simple features[C]//Proc.the IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Hawaii,USA:IEEE Press,2001:511-518.
[7]VIOLA P,JONES M.Robust real-time face detection[J].International Journal of Computer Vision,2004,57(2):137-154.
[8]徐品,童癸,瞿靜.基于AdaBoost算法和人眼定位的動態(tài)人臉檢測[J].電視技術,2011,35(9):114-117.
[9]韓帥,王景存.基于AdaBoost的檢測與跟蹤技術在電子警察中的應用[J].電視技術,2012,36(1):118-121.
[10]LIENHART R,MAYDT J.An extended set of haar-like features for rapid object detection[J].IEEE ICIP,2002(1):900-903.
[11]BRADSKI G,KAEHLAER A.Learning OpenCV:computer vision with the OpenCV library[M].[S.l.]:O’Reilly,2008.