鄭 穎,蔡燦輝,朱建清
(1.華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建廈門361021;2.中國(guó)科學(xué)院自動(dòng)化研究所,北京100190)
膚色是人體表面最顯著的特征之一,它對(duì)姿勢(shì)、旋轉(zhuǎn)、表情等變化不敏感,因此可以利用膚色檢測(cè)從圖像中有效分割出前景目標(biāo),減小待搜索范圍。隨著計(jì)算機(jī)視覺(jué)和圖像處理的快速發(fā)展,膚色檢測(cè)顯得越來(lái)越重要,它在人臉檢測(cè)[1]、手勢(shì)識(shí)別、基于內(nèi)容的圖像檢索和色情圖像識(shí)別及過(guò)濾等方面都有著重要的應(yīng)用。
研究表明,盡管不同種族、年齡、性別的人臉膚色看上去不同,但這種不同主要體現(xiàn)在亮度而非色度上。而大部分由CCD攝像機(jī)采集得到的圖像都是亮度和色度高度相關(guān)的RGB形式,膚色對(duì)光照的變化很敏感,從而導(dǎo)致膚色像素的檢測(cè)變得困難,特別是在高亮度條件下。高亮度膚色像素的檢測(cè)是膚色檢測(cè)的一個(gè)難點(diǎn),原因有兩點(diǎn):
1)高亮度情況下膚色和非膚色具有很高的相似度。人類視覺(jué)在高亮度情況下對(duì)顏色不敏感,各種顏色往往都是一片白亮。這個(gè)時(shí)候僅靠色度差異來(lái)區(qū)分膚色和非膚色是十分困難的。
2)高亮度膚色像素的色度和亮度不完全獨(dú)立。
現(xiàn)有的研究中主要有兩類方法解決上述問(wèn)題:①建立更精確的膚色模型;②減小亮度和色度的相關(guān)性。經(jīng)典的膚色檢測(cè)算法一般先進(jìn)行線性或非線性顏色空間變換,以減小亮度和色度的相關(guān)性,從而降低光照對(duì)膚色的影響。然后在變換后的顏色空間上利用二維色度子空間進(jìn)行膚色建模,建模的方法有劃定膚色范圍[2]、單高斯模型[3]、直方圖查找表[4]、混合高斯模型[5]、橢圓邊界法[6]等?,F(xiàn)有的各種顏色空間不能完全消除亮度和色度的相關(guān)性,且經(jīng)典算法僅使用二維色度信息進(jìn)行膚色建模,在高亮度情況下極易發(fā)生漏檢。為了克服膚色檢測(cè)的這些難點(diǎn),人們?cè)赮CbCr顏色空間上提出了一些改進(jìn)算法[7-9]。文獻(xiàn)[7]對(duì)可見(jiàn)亮度范圍內(nèi)的每一個(gè)亮度Y,統(tǒng)計(jì)出其對(duì)應(yīng)色度的范圍,根據(jù)每個(gè)像素的Y分量,索引出其相應(yīng)色度范圍,若該像素的色度落入這個(gè)范圍,則判斷為膚色。文獻(xiàn)[8]采用Y_Cb和Y_Cr兩個(gè)子空間的直方圖查找表建立膚色模型,并使用貝葉斯準(zhǔn)則建立膚色分類器,這需要比文獻(xiàn)[4]多一倍的內(nèi)存空間。文獻(xiàn)[9]把滿足 Y>120,Cb>95和 Cr>100條件的像素判斷為膚色像素,該算法的不足之處是會(huì)把非膚色的高亮區(qū)域判別為膚色區(qū)域。為了提高高亮度區(qū)域膚色像素檢測(cè)的正確率,文中在分析高亮度膚色像素的鄰域和邊緣信息的基礎(chǔ)上,提出一種基于亮度連續(xù)性準(zhǔn)則的高亮度膚色像素檢測(cè)算法。實(shí)驗(yàn)結(jié)果表明該算法能在不增大對(duì)膚色樣本數(shù)量和內(nèi)存空間需求的前提下,準(zhǔn)確地檢測(cè)出圖片中高亮度區(qū)域的膚色像素。
由于高亮度情況下膚色和非膚色像素的分布非常近似,看起來(lái)都是“白亮一片”,因此僅僅靠色度信息區(qū)別膚色和非膚色十分困難。為了說(shuō)明當(dāng)亮度足夠高時(shí),亮度對(duì)膚色檢測(cè)的影響,文中從網(wǎng)上下載132張圖片,對(duì)每張圖片手工截取高亮度膚色和非膚色區(qū)域,做出如圖1所示的Cb和Cr色度直方圖。其中,實(shí)線曲線為膚色分布,虛線曲線為非膚色分布。從圖1中可以看出,在高亮度情況下,膚色像素的色度主要集中在130>Cb>100,160>Cr>128 范圍;非膚色像素的色度主要集中在144>Cb>106,147>Cr>112范圍。膚色和非膚色的色度有較大的重疊,所以很難用固定區(qū)間來(lái)劃定膚色。因此,必須對(duì)高亮度區(qū)域膚色像素的特性進(jìn)行深入的分析,找出其內(nèi)在的規(guī)律,從而實(shí)現(xiàn)更準(zhǔn)確的高亮度區(qū)域膚色像素檢測(cè)。
圖1 膚色和非膚色的色度子直方圖Fig.1 Chroma histogram of skin color and non-skin color
圖2給出了高亮度區(qū)域膚色像素分布特點(diǎn)示意圖。圖2(a)為一幅包含高亮度膚色像素的圖像,其中肩膀的大部分像素處于高亮度區(qū)域。圖2(b)給出了圖2(a)中肩膀部分的放大圖,從中可以看出高亮度膚色像素周圍是正常亮度膚色像素。圖2(c)給出了圖2(b)的亮度分布圖。從圖2(c)不難看出,由正常亮度的膚色像素到高亮度的膚色像素之間的變化是一種漸變過(guò)程。
通過(guò)實(shí)驗(yàn)我們發(fā)現(xiàn)類似的現(xiàn)象在自然圖像中普遍存在。換言之,自然圖像中高亮度膚色區(qū)域的分布通常具有如下兩個(gè)特點(diǎn):
1)圖像中膚色區(qū)域的亮度是漸變而不是劇變的,在正常情況下,人體膚色區(qū)域內(nèi)部不會(huì)出現(xiàn)明顯的亮度邊緣。
2)高亮度膚色區(qū)域的外圍通常存在正常亮度的膚色像素。
上述兩個(gè)特點(diǎn)分別表明了膚色區(qū)域的亮度連續(xù)性和空間連續(xù)性,文中稱之為人體膚色區(qū)域亮度和空間連續(xù)性原理。基于這個(gè)原理,可以利用邊緣檢測(cè)在亮度子空間中有效地分割出膚色區(qū)域和非膚色區(qū)域,進(jìn)一步地,采用區(qū)域生長(zhǎng)法在已檢測(cè)到的正常亮度的膚色區(qū)域中檢測(cè)出高亮度的膚色像素。
圖2 高亮度區(qū)域膚色像素分布特點(diǎn)示意Fig.2 Distribution diagram of skin color pixels in high illuminated region
圖3給出了一張具有高亮度膚色區(qū)域的照片及相應(yīng)的邊緣分布圖以說(shuō)明膚色區(qū)域的亮度和空間連續(xù)性特點(diǎn)。其中圖3(b)是圖3(a)的亮度Canny邊緣檢測(cè)圖,從圖3(b)可以看出在高亮度膚色區(qū)域和低亮度膚色區(qū)域之間并沒(méi)有明顯的邊緣。因此,在膚色檢測(cè)時(shí)如果把人體膚色的這兩個(gè)特點(diǎn)也考慮進(jìn)去,就可以更好地解決高亮度膚色像素漏檢的難題。
圖3 膚色區(qū)域亮度和空間連續(xù)性Fig.3 Spatial and luminance continuity of skin color region
為此,文中提出一種基于人體膚色區(qū)域亮度和空間連續(xù)性原理的膚色檢測(cè)算法,該算法分成兩個(gè)階段:圖像中正常亮度區(qū)域的膚色像素檢測(cè)階段和圖像中可能存在的高亮度膚色像素檢測(cè)階段。正常亮度的膚色區(qū)域檢測(cè)可根據(jù)使用環(huán)境和條件選擇文獻(xiàn)[2-6]中的任何一種方法??紤]到文獻(xiàn)[3]采用的單高斯模型(SGM,Single Gaussian Model)方法在小樣本情況下的膚色聚類效果顯著,不需要大量的膚色樣本,在檢測(cè)時(shí)計(jì)算量不大不用建立查詢表,而且檢測(cè)效果比較好,所以文中采用單高斯建模方法進(jìn)行正常亮度膚色檢測(cè)。高亮度膚色像素檢測(cè)階段則是在前一階段檢測(cè)結(jié)果的基礎(chǔ)上采用人體膚色區(qū)域亮度和空間連續(xù)性原理檢測(cè)出高亮度膚色像素。
基于單高斯模型的膚色檢測(cè)算法主要包括顏色空間的選取、膚色建模、膚色分割三個(gè)部分,下面從這三個(gè)方面詳細(xì)介紹基于單高斯建模的膚色檢測(cè)算法。
1.2.1 顏色空間的選取
RGB顏色空間是最常用的顏色空間,但是RGB值不僅包含色度信息也包含亮度信息,所以環(huán)境光照的變化很容易導(dǎo)致RGB值發(fā)生變化,因此不宜在RGB顏色空間中建立膚色模型。文中選擇YCbCr顏色空間,該空間色度受亮度變化的影響較小,與其他顏色空間相比具有如下優(yōu)點(diǎn):
1)YCbCr顏色空間廣泛應(yīng)用于圖像和視頻壓縮標(biāo)準(zhǔn),例如MPEG和JPEG。
2)YCbCr顏色空間是RGB空間的線性變換,轉(zhuǎn)換計(jì)算簡(jiǎn)單。
2)YCbCr顏色空間與HIS,HSL,HSV等相似,獨(dú)立表示亮度和色度分量。
4)YCbCr顏色空間是離散空間,聚類算法易于實(shí)現(xiàn)。
5)YCbCr顏色空間是感知均勻的顏色空間,同HSI相比,膚色在YCbCr的聚類更緊簇。
圖4是膚色在顏色空間上的聚類圖,其中圖4(a)是膚色在Cb-Cr子空間上的聚類,圖4(b)是膚色在H-S子空間上的聚類。從圖4容易看出,膚色在YCbCr顏色空間上聚類比在HSI顏色空間上聚類更緊湊。
YCbCr顏色空間和RGB顏色空間的轉(zhuǎn)換關(guān)系式如下:
式中,YCbCr的信號(hào)范圍是 Y∈ 16,235[ ],Cb和 Cr∈[16,235]。
圖4 膚色在不同顏色空間上的聚類Fig.4 Cluster diagram of Skin color in different color space
1.2.2 膚色建模
單高斯模型就是利用高斯分布來(lái)擬合膚色的色度概率密度分布。它的基礎(chǔ)是來(lái)自兩個(gè)觀察結(jié)果:
1)膚色是以一定的概率密度出現(xiàn),人與人之間的膚色差異導(dǎo)致其概率密度的不同。
2)在一定的光照條件下膚色色度分布呈正態(tài)分布。
圖5是膚色在CbCr顏色空間的分布情況,其中圖5(a)是直方圖,圖5(b)是單高斯概率密度圖。單高斯模型采用橢圓高斯聯(lián)合概率密度函數(shù):
式中,x是像素色度向量,均值向量μ和協(xié)方差矩陣∑是高斯分布的參數(shù),由訓(xùn)練樣本最大似然估計(jì)(ML)估計(jì)得到:
文中在IMM人臉數(shù)據(jù)庫(kù)中手工選取膚色像素,訓(xùn)練出單高斯模型參數(shù)如下:
為了減小計(jì)算復(fù)雜度,文中采用馬氏距離(Mahalanobis Distance)作為衡量輸入像素和膚色模型的接近程度:
對(duì)每個(gè)像素點(diǎn)利用式(4)計(jì)算出馬氏距離,在實(shí)驗(yàn)中先設(shè)定一個(gè)閾值θ,用以判斷當(dāng)前像素點(diǎn)是否為膚色像素。如果馬氏距離d2>θ時(shí),判定該點(diǎn)為膚色點(diǎn),否則為非膚色點(diǎn)。閾值θ的取值直接影響到膚色檢測(cè)結(jié)果,如果θ過(guò)大則膚色檢測(cè)的漏檢率大,相反,如果θ過(guò)小則膚色檢測(cè)的誤檢率大。實(shí)際上圖像內(nèi)容各不相同,只用一個(gè)固定閾值進(jìn)行膚色分割,顯然是不合理的,需要閾值θ自適應(yīng)的膚色分割算法。
圖5 膚色在CbCr顏色空間上的分布Fig.5 Distribution of skin color in CbCr color space
1.2.3 自適應(yīng)閾值分割算法
通過(guò)觀察發(fā)現(xiàn):當(dāng)分割閾值θ從大到小變化時(shí),圖像中判定為膚色像素的數(shù)量會(huì)相應(yīng)增大,在最佳閾值處的膚色像素?cái)?shù)量變化率最小。所以在0.55:0.05的預(yù)置閾值范圍內(nèi),以0.05的步長(zhǎng),依次對(duì)圖像進(jìn)行分割并記錄下閾值變化時(shí)屬于膚色像素?cái)?shù)量的變化,然后找出膚色像素?cái)?shù)量變化最小時(shí)的閾值作為最佳閾值。
根據(jù)上節(jié)所討論的基于單高斯模型的膚色檢測(cè)算法的實(shí)驗(yàn)效果,文中設(shè)定Y∈[180,235]為高亮度像素。在已檢測(cè)出正常亮度下膚色區(qū)域的基礎(chǔ)上,即可利用文中所提出的人體膚色區(qū)域亮度和空間連續(xù)性原理對(duì)高亮度區(qū)域的膚色像素進(jìn)行檢測(cè)。高亮度膚色像素檢測(cè)算法具體如下:
對(duì)每個(gè)亮度值Y滿足180<Y<235的點(diǎn),如果滿足下述三個(gè)條件:
1)其4鄰域中至少有1個(gè)膚色像素。
2)其8鄰域中沒(méi)有1個(gè)像素屬于邊緣像素。
3)當(dāng)前像素的色度同時(shí)滿足130>Cb>100和160>Cr>128。
則判定該點(diǎn)為高亮度膚色像素點(diǎn)。
綜上所述,可得文中所提出的具有高亮度膚色像素檢測(cè)的人臉檢測(cè)算法如下:
對(duì)輸入圖像f進(jìn)行低通濾波處理,濾除噪聲。
用基于單高斯模型的膚色檢測(cè)算法對(duì)圖像f進(jìn)行正常亮度區(qū)域的膚色檢測(cè),得到初始的膚色標(biāo)志圖r(膚色像素點(diǎn)置為1,其余的像素點(diǎn)置為0)。
對(duì)膚色標(biāo)志圖r進(jìn)行形態(tài)學(xué)閉運(yùn)算,填充一些細(xì)小的“空洞”。
對(duì)輸入的亮度圖像進(jìn)行Canny邊緣檢測(cè),得到亮度圖像的邊緣標(biāo)志圖e(邊緣像素點(diǎn)置為1,否則置為0)。
對(duì)每個(gè)亮度值Y滿足180<Y<235的像素點(diǎn),如果該點(diǎn)滿足下述三個(gè)條件則膚色標(biāo)志圖r的對(duì)應(yīng)位置置為1:
a.在膚色標(biāo)志圖r對(duì)應(yīng)位置的4鄰域中至少有1個(gè)非0點(diǎn);
b.在邊緣標(biāo)志圖e對(duì)應(yīng)位置的8鄰域均為0;c.當(dāng)前像素的色度同時(shí)滿足130>Cb>100和160>Cr>128。
輸出最終的膚色標(biāo)志圖r,并根據(jù)膚色標(biāo)志圖提取膚色區(qū)域。
為了驗(yàn)證所提出的基于人體膚色區(qū)域亮度和空間連續(xù)性原理的高亮度膚色像素檢測(cè)算法的效果,文中對(duì)多幅具有高亮度膚色像素區(qū)域的圖像進(jìn)行測(cè)試,并和文獻(xiàn)[6,8]中的檢測(cè)算法進(jìn)行了對(duì)比,圖6給出了部分實(shí)驗(yàn)結(jié)果。其中,圖6(a)是具有高亮度膚色的原始圖片;圖6(b)是文獻(xiàn)[6]所提出方法的檢測(cè)效果圖;圖6(c)是文獻(xiàn)[8]所提出方法的檢測(cè)效果圖;圖6(d)是基于單高斯模型算法的檢測(cè)效果圖;圖6(e)是文中產(chǎn)生的膚色標(biāo)志圖;圖6(f)是文中算法的檢測(cè)效果圖。從圖6(b)可以看出文獻(xiàn)[6]的檢測(cè)算法既會(huì)把白色區(qū)域誤檢為膚色區(qū)域,又會(huì)把不少膚色區(qū)域誤檢為非膚色區(qū)域,導(dǎo)致相當(dāng)多的黑洞產(chǎn)生。從圖6(c)可以看出文獻(xiàn)[8]提出的方法雖然可以檢測(cè)出高亮度膚色像素,但是同時(shí)也把高亮度背景像素誤檢為膚色像素,導(dǎo)致經(jīng)過(guò)文獻(xiàn)[8]提出的方法進(jìn)行膚色檢測(cè)后的結(jié)果幾乎和原始圖像一樣,導(dǎo)致算法失敗。從圖 6(d)到圖6(f)可以看到基于單高斯模型方法不能檢測(cè)出圖像中的高亮度區(qū)域的膚色像素,而在單高斯模型檢測(cè)結(jié)果的基礎(chǔ)上采用文中提出的高亮度膚色區(qū)域檢測(cè)算法可以較準(zhǔn)確地檢測(cè)出圖像中的高亮度膚色區(qū)域,同時(shí)誤檢率也比文獻(xiàn)[6]提出的方法低。
圖6 膚色分割效果比較Fig.6 Comparison of skin color segmentation performance
文中分析了高亮度膚色區(qū)域的分布特點(diǎn),提出在基于單高斯模型的膚色檢測(cè)算法基礎(chǔ)上,利用鄰域信息和亮度邊緣信息確定高亮度區(qū)域中的膚色像素點(diǎn),實(shí)現(xiàn)含有高亮度膚色區(qū)域的膚色檢測(cè),在不增加膚色樣本量和存儲(chǔ)空間的前提下,解決了只利用色度信息檢測(cè)膚色會(huì)對(duì)高亮度膚色產(chǎn)生漏檢等問(wèn)題。實(shí)驗(yàn)結(jié)果證明文中提出的方法準(zhǔn)確地檢測(cè)出圖片中高亮度膚色區(qū)域,同時(shí)降低誤檢率,可以適用于更廣的亮度范圍。
[1] 崔曉琳,蔡燦輝,朱建清.一種基于膚色后置濾波的快速人臉檢測(cè)算法[J].通信技術(shù),2013,46(08):116-119.CUI Xiao-lin,CAI Can-h(huán)ui,ZHU Jian-qing.A Fast Face-Detection Algorithm Based on Post Skin-Color-Verification[J]. CommunicationsTechnology,2013(08):116-119.
[2] CHAI D,NGAN K N.Locating Facial Region of A Head-and-shoulders Color Image[C]//Proceedings of the third IEEE International Conference on Automatic Face and Gesture Recognition.[s.l.]:IEEE,1998:124-129.
[3] YANG M H,AHUJA N.Detecting Human Faces in Color Images[C]//Proceedings of International Conference on Image Processing.[s.l.]:IEEE,1998:127-130.
[4] CHAI D,BOUZERDOUM A.A Bayesian Approach to Skin Color Classification in YCbCr Color Space[C]//Proceedings of TENCON.[s.l.]:IEEE,2000:421-424.
[5] ZHU X,YANG L,WAIBEL A.Segmenting Hands of Arbitrary Color[C]//Proceedings of the fourth IEEE International Conference on Automatic Face and Gesture Recognition.[s.l.]:IEEE,2000:446-453.
[6] HSU R L,ABDEL-MOTTALEB M,JAIN A K.Face Detection in Color Images[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,2002,24(05):696-706.
[7] 雷明,張軍英,董濟(jì)揚(yáng).一種可變光照條件下的膚色檢測(cè)算法[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(24):123-125.LEI M,ZHANG J Y,DONG J Y.A Skin Color Detecting Algorithm under Variant Light Condition[J].Computer Engineering and Applications,2002,38(24):123-125.
[8] 呂東輝,王濱.YCbCr空間中一種基于貝葉斯判決的膚色檢測(cè)方法[J].中國(guó)圖形圖象學(xué)報(bào),2006,11(01):48-52.LV Donghui,WANG Bin.A Skin Detection Method Based on Bayes Decision in YCbCr Color Space.Jounal of Image and Graphics,2006,11(1):48-52.
[9] LIN C.Face Detection in Complicated Backgrounds and Different Illumination Conditions by Using YCbCr Color Space and Neural Network[J].Pattern Recognition Letters,2007,28(16):2190-2200.