摘要:針對膚色檢測對復(fù)雜背景下的圖像誤檢率高和AdaBoost算法對多姿態(tài)#65380;多人臉圖像檢測效果不理想的問題,將基于膚色的人臉檢測與基于AdaBoost算法的人臉檢測結(jié)合起來,提出一種新的人臉檢測方法,即首先利用膚色和形態(tài)學(xué)操作分割膚色區(qū)域,再根據(jù)人臉區(qū)域的統(tǒng)計特性篩選出人臉候選區(qū)域,然后用AdaBoost級聯(lián)分類器對候選區(qū)域掃描,以精確定位人臉#65377;實驗表明,該方法同時具有膚色檢測正確率高與AdaBoost算法誤檢率低的優(yōu)點,可以有效地運用于多姿態(tài)#65380;多人臉和復(fù)雜背景的情況,具有較好的檢測效果#65377;
關(guān)鍵詞:人臉檢測; 膚色檢測; AdaBoost; 級聯(lián)分類器
中圖分類號:TP391.41文獻標志碼:A
文章編號:1001-3695(2007)10-0178-03
20 世紀90 年代以來,人臉識別成為一個熱門的研究課題,作為人臉識別的重要環(huán)節(jié)——人臉檢測也得到眾多研究者的重視[1]#65377;人臉檢測的目的是檢測圖像中的人臉并將其從背景中分割出來#65377;目前人臉檢測的主要方法分為四類:基于知識的方法;基于特征的方法;模板匹配的方法;基于外觀的方法#65377;由于圖像的復(fù)雜程度較高, 僅利用單一特征信息往往不能得到準確的檢測結(jié)果, 融合多個特征信息的檢測方法越來越受到人們的重視#65377;
針對彩色圖像的人臉檢測,人臉膚色檢測非常重要且簡單有效#65377;在人臉區(qū)域,膚色是占主導(dǎo)地位的色彩,基于膚色的人臉檢測方法利用圖像的彩色信息,在一定的色彩空間中構(gòu)造膚色模型,該方法可以在不同的視角中均能檢測到人臉,具備穩(wěn)定性,不受尺寸#65380;表情#65380;人臉姿態(tài)變化的影響#65377;但在復(fù)雜背景下的檢測效果也不是很理想,一般情況下誤檢率比較高,檢測精度也有限#65377;
Freund和Schapire于1995年提出的AdaBoost算法,其基本思想是當分類器對某些樣本正確分類時,則減少這些樣本的權(quán)值;當錯誤分類時,則增加這些樣本的權(quán)值,讓學(xué)習(xí)算法在后續(xù)的學(xué)習(xí)中集中對比較困難的訓(xùn)練樣本進行學(xué)習(xí),最終得到一個準確率理想的分類器#65377;這種方法大大提高了人臉檢測速度,可以基本實現(xiàn)實時檢測#65377;但是基于AdaBoost算法的人臉檢測同樣也有一定的局限性,即對于側(cè)面及多姿態(tài)的人臉圖像檢測正確率不高#65377;
1膚色檢測
膚色是人臉的一個非常重要的特征#65377;研究表明[2],不同的膚色的差異主要是由亮度引起的,而受色度的影響較小#65377;常用的膚色檢測空間有: 歸一化紅#65380;綠#65380;藍(RGB),色度#65380;飽和度#65380;純度(HSV)和YCbCr等#65377;本文選擇YCbCr空間[3](Y分量表示亮度,Cb#65380;Cr表示色度)作為膚色分布統(tǒng)計的映射空間#65377;該空間的優(yōu)點是可以將亮度和色度分開單獨處理,實現(xiàn)亮度和色度分量比較徹底的分離,Cb#65380;Cr是兩維獨立分布,能較好地限制膚色分布區(qū)域,膚色點能夠形成較好的聚類#65377;
1.1膚色分割
對人臉進行膚色檢測首先要對膚色建模#65377;人臉建模的方法很多,有高斯模型#65380;橢圓模型等#65377;高斯膚色模型算法相對復(fù)雜,本文采用橢圓模型[4],經(jīng)過非線性分段色彩變換得到的色彩空間用YCb′Cr′來表示#65377;膚色聚類在YCb′Cr′空間中的分布情況如圖1所示#65377;
從圖1中可以看出,膚色模型在利用非線性變換后的膚色在Cr′Cb′空間中呈明顯的橢圓分布,可用以下的公式來匹配兩個色度分量的距離[5]:
1.2膚色區(qū)域處理
經(jīng)過膚色分割得到一系列的連通區(qū)域,這些區(qū)域包括皮膚區(qū)域及與皮膚顏色相近的背景區(qū)域#65377;在復(fù)雜背景下,有可能存在很多與人臉膚色相近的非人臉區(qū)域被分割出來(如手#65380;胳膊等),這就需對這些膚色區(qū)域作進一步的處理#65377;
首先對分割出來的皮膚區(qū)域進行腐蝕與膨脹操作,除去噪聲對膚色分隔的影響;然后通過人臉膚色區(qū)域的統(tǒng)計特征分析,對分割出來的膚色區(qū)域作以下預(yù)處理,得到最為可能的人臉區(qū)域#65377;
a)對人臉來說,其長寬比一般為1左右#65377;計算膚色區(qū)域的長寬比,本文中取人臉的長寬比為0.4~0.5,長寬比不滿足此范圍的區(qū)域,被認為是非人臉區(qū)域而被剔除#65377;
b)由于人臉區(qū)域有一定的大小,將膚色區(qū)域小于400像素的區(qū)域認為是噪聲干擾而被除去#65377;
圖2為一幅圖像經(jīng)過膚色分割#65380;膚色區(qū)域處理后的效果#65377;
2基于AdaBoost的人臉檢測
2.1AdaBoost算法
AdaBoost 算法是一種分類器算法,是由Y.Freund等人[6]在1995 年提出的#65377;其基本思想是利用大量的分類能力一般的簡單分類器(weaker classifier) 通過一定方法疊加(boost) 起來,構(gòu)成一個分類能力很強的強分類器#65377; 理論證明,只要每個簡單分類器分類能力比隨機猜測要好,當簡單分類器個數(shù)趨向于無窮時,強分類器的錯誤率將趨于零#65377;
3膚色模型與AdaBoost算法相結(jié)合檢測人臉
純粹的膚色檢測可以將圖像中的大多數(shù)人臉檢測到,正確率較高,但是在檢測到人臉的同時,也會將非人臉的膚色區(qū)域檢測到,誤檢率也很高;基于AdaBoost算法的人臉檢測對于單人臉正面圖像的檢測效果較好,誤檢率也比較低,但是對于側(cè)面及多人臉圖像檢測正確率不高#65377;
針對膚色檢測和AdaBoost算法各自的優(yōu)缺點,本文將這兩種檢測方法結(jié)合起來設(shè)計一種新的人臉檢測方法,即先用膚色模型分割出圖像中的膚色區(qū)域,該區(qū)域包括人體其他部分皮膚區(qū)域以及與皮膚類似的背景區(qū)域;然后利用腐蝕#65380;膨脹操作去除噪聲對膚色分割的影響;再將這些區(qū)域作為輸入圖像用訓(xùn)練好的AdaBoost級聯(lián)分類器進行檢測,進一步去除膚色分割后包括的非人臉區(qū)域,實現(xiàn)更準確的人臉定位,從而在盡可能多地檢測到人臉的同時降低誤檢率#65377;算法流程圖如圖3所示#65377;
級聯(lián)分類器的優(yōu)點是快速地丟棄背景區(qū)域,但是如果只使用AdaBoost算法,就要掃描整幅圖像得到所有子窗口再進行判斷#65377;本文的方法是先根據(jù)膚色檢測出包含所有人臉的區(qū)域,再將這部分區(qū)域作為輸入圖像用級聯(lián)檢測器進行掃描,也即僅對可能存在人臉的區(qū)域進行掃描,提高檢測速度,而且膚色檢測出的候選人臉區(qū)域大部分只包括一張人臉,再用AdaBoost算法檢測時相當于對單人臉圖像進行檢測,從而避免了單獨使用AdaBoost算法檢測多人臉圖像時效果不理想的情況#65377;
4實驗結(jié)果及分析
本文對單人臉彩色圖像及多人臉彩色圖像用膚色模型#65380;AdaBoost算法及本文方法分別進行了實驗#65377;測試圖像來自生活中的實際數(shù)碼照片與從互聯(lián)網(wǎng)上隨機收集的圖像,包括不同人種#65380;不同年齡的正面及側(cè)面圖像,分別組成簡單測試集與復(fù)雜測試集#65377;其中簡單測試集包括100幅單人臉圖像;復(fù)雜測試集包括50多幅圖像,共計313張人臉#65377;測試環(huán)境為: P4 3.0 GHz CPU,512 MB內(nèi)存,操作系統(tǒng)為Windows XP,在Microsoft Visual C++ 6.0平臺上編程實現(xiàn)#65377;試驗結(jié)果單人臉如圖4#65380;多人臉如圖5所示#65377;
圖4#65380;5分別給出了三種方法在簡單測試圖像和復(fù)雜測試圖像上的檢測結(jié)果#65377;從中可以看出,基于膚色的方法可以檢測到圖像中的所有人臉,但是人臉的定位不夠精確,從圖4(a)和圖5(a)看到,檢測到的人臉區(qū)域還包括了頸部膚色區(qū)域,同時誤檢的區(qū)域也較多;AdaBoost算法誤檢較膚色檢測少,但正確率不高#65377;如圖4(b)和圖5(b),出現(xiàn)了在單人臉圖像中沒有檢測到人臉以及多人臉圖像中漏檢太多的現(xiàn)象#65377;膚色與AdaBoost結(jié)合的方法不但減少了膚色檢測中的誤檢區(qū)域,而且較AdaBoost算法大大減少了漏檢區(qū)域,即檢測率有了很大提高,同時對人臉的定位也更加精確,如圖4(c)和圖5(c)所示#65377;膚色與AdaBoost結(jié)合的方法定位的人臉區(qū)域去除了膚色檢測到的區(qū)域中的頸部區(qū)域#65377;三種方法分別在簡單測試集和復(fù)雜測試集上的實驗結(jié)果如表1#65380;2所示#65377;
從表1#65380;2中可以看出,膚色檢測的正確率很高,但同時虛檢率也很高;AdaBoost算法誤檢率較膚色檢測低很多,但檢測率也相應(yīng)有所下降#65377;本文方法雖然在檢測率上不及膚色檢測,但誤檢的人臉數(shù)量比另外兩種方法少了很多,同時還具有不錯的檢測效果#65377;圖6為使用本文提出的人臉檢測方法在復(fù)雜測試集上的部分檢測結(jié)果#65377;
5結(jié)束語
本文分別介紹了基于膚色和基于AdaBoost算法的人臉檢測方法,比較了兩種方法的優(yōu)缺點,提出了將膚色檢測與AdaBoost算法結(jié)合起來的人臉檢測方法#65377;該方法可以有效解決膚色檢測誤檢率較高和AdaBoost方法漏檢的問題,從而在提高檢測率的同時降低誤檢率,實現(xiàn)更準確的人臉定位#65377;
參考文獻:
[1]YANG M H, KRIEGMAN D, AHUJA N. Detecting faces in images: a survey[J]. IEEE Trans on Pattern Analysis and Machine Intelligence, 2002,24(1):34-58.
[2]YANG Jie, LU W, WAIBEL A. Skin color modeling and adaptation[C]//Proc of the 3rd Asian Conference on Computer Vision. London: SpringerVerlag, 1998:687-694.
[3]PHUNG S L, BOUZERDOUM A,CHAI D. A novel skin color model in YCrCb color space and its application to human face detection[C]//Proc of IEEE International Conference on Image Processing. New York:[s.n.], 2002:289-292.
[4]LEE J Y, YOO S I. An elliptical boundary model for skin color detection[C]//Proc of the International Conference on Imaging Science, Systems and Technology. Las Vegas:[s.n.], 2002:579-584.
[5]HSU R L,MOTTABEB M A,JAIN A K.Face detection in color image[J]. IEEE Trans on Pattern Analysis and Machine Intelligence, 2002,24(5):696-706.
[6]FREUND Y, SCHAPIRE R E. Experiments with a new boosting algorithm[C]//Proc of the 13thInternational Conference on Machine Learning. San Francisco:[s.n.], 1996:148156.
[7]VIOLA P, JONES M. Rapid object detection using a boosted cascade of simple features[C]//Proc of IEEE Conference Computer Vision and Pattern Recognition. Kauai:[s.n.], 2001:511-518.
[8]LIENHART R, MAYDT J. An extended set of Haarlike features for rapid object detection[C]//Proc of IEEE International Conference on Image Processing. New York:[s.n.], 2002:900-903.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”