薛賓田
(河南牧業(yè)經(jīng)濟(jì)學(xué)院 信息工程學(xué)院,河南鄭州,450053)
在進(jìn)行人臉檢查時(shí)往往會(huì)有非常復(fù)雜的背景,這些背景會(huì)影響人臉檢查的結(jié)果。如果能夠在此前將復(fù)雜背景盡可能過濾掉,就可以減少復(fù)雜背景對人臉檢測算法的影響。由于復(fù)雜背景的顏色和人的皮膚顏色具有很大的不同,所以在人臉檢測前進(jìn)行膚色分割預(yù)處理是可行的。
膚色分割算法一般分為兩類,一種是閾值分割,另一種其他分割方法。有閾值的膚色分割一般使用基于直方圖或者高斯模型的方法,但是分割結(jié)果的好壞和設(shè)置的閾值有關(guān)。也有自適應(yīng)的閾值分割,如文獻(xiàn)使用real Adaboost算法首先求出圖像中每個(gè)像素點(diǎn)的膚色相似度,然后使用大律法確定分割閾值,但是該算法時(shí)間復(fù)雜度太高。Adaboost算法的時(shí)間復(fù)雜度比real Adaboost算法低,而且Adaboost算法直接將膚色分為膚色和非膚色兩類,而real Adaboost還要設(shè)置閾值,所以基于Adaboost膚色分割簡潔高效,且更具有魯棒性。
對于二分類問題,求出能夠?qū)⒁粋€(gè)訓(xùn)練樣本準(zhǔn)確分開的強(qiáng)分類器比較困難,即該分類器的錯(cuò)誤率較低,而求出一個(gè)弱分類器比較容易,錯(cuò)誤率高于50%的分類器為弱分類器。介于這一事實(shí),如果能夠使用弱分類和多個(gè)訓(xùn)練集合來構(gòu)建一個(gè)強(qiáng)分類,那么二分類問題便得到解決,而Adaboost算法便是這樣一種算法[1~2]。通過在同一個(gè)樣本集,不同分布概率的訓(xùn)練數(shù)據(jù)集上運(yùn)行Adaboost算法得到一系列的弱分類器并計(jì)算該分類器的錯(cuò)誤率,然后通過線性組合將這些弱分類器和該分類器權(quán)重構(gòu)成一個(gè)分類較精確的強(qiáng)分類器。弱分類的提取是在同一個(gè)樣本上進(jìn)行的,但是每次這些樣本的分布是不同的,Adaboost算法針對不同的訓(xùn)練數(shù)據(jù)分布通過學(xué)習(xí)算法學(xué)習(xí)一系列弱分類器。
對于Adaboost算法來說,有兩個(gè)問題需要解決:一是在每輪訓(xùn)練過程中如何改變訓(xùn)練樣本的權(quán)值或者概率分布;二是通過何種方法將這些得到的弱分類器組成一個(gè)具有較低錯(cuò)誤率的強(qiáng)分類器。在Adaboost算法計(jì)算過程中,算法會(huì)有針對的調(diào)整一些樣本的權(quán)值,例如上次被錯(cuò)誤分類的本次會(huì)重點(diǎn)關(guān)注,也就是加大權(quán)值,而上次被正確分類的那么說明其容易區(qū)分,本次分類就會(huì)減少其權(quán)值[3]。在這一輪訓(xùn)練過程中那些更加難以區(qū)分的樣本權(quán)重得到提升,而特征比較明顯的樣本即較容易區(qū)分樣本權(quán)重不再受重視。當(dāng)我們得到許多弱分類器后便可以將他們組合起來形成一個(gè)非常有用的分類器,雖然每個(gè)弱分類器作用不大,但是當(dāng)把他們集合起來并可以做出正確的分類,根據(jù)每個(gè)弱分類器錯(cuò)誤率的大小來確定每個(gè)分類器的權(quán)值,如果弱分類器錯(cuò)誤率高那么權(quán)值小,反之權(quán)值大,即弱分類器的權(quán)值和錯(cuò)誤率成反比。Adaboost算法示意圖如圖 1 所示。
圖1 Adaboost算法示意圖
在Adaboost算法示意圖中,左邊的柱狀圖是數(shù)據(jù)集,其中直方圖中每個(gè)條狀的不同長度表示不同的權(quán)重。在經(jīng)過一次迭代后求出一個(gè)分類并計(jì)算出該分類器的錯(cuò)誤率,該分類器的權(quán)重通過其分類錯(cuò)誤率可以得到,且權(quán)重與分類錯(cuò)誤率成反比。每個(gè)三角形中的值為該分類器的權(quán)重,最后通過線性求和得到最后強(qiáng)分類器表達(dá)式。
膚色分割主要是用膚色分類器實(shí)現(xiàn)。人臉膚色分類器的選取主要包括顏色空間的選取和弱分類器的構(gòu)造兩個(gè)步驟。首先是顏色空間的選取,如RGB色彩空間、HSV色彩空間和YCbCr色彩空間等[4~5],合適的顏色空間將使膚色具有較強(qiáng)的聚類性,這對膚色分割具有決定性的作用。其次是分類器的選擇,合適的分類器將可以直接將膚色與環(huán)境區(qū)分開。
人對色彩的感知主要通過色彩的色度、亮度和飽和度來區(qū)分。其中色度和光波的長度有關(guān),它代表顏色的基本信息,能夠用來區(qū)分不同的色彩;亮度表示人眼感覺到的相對明亮程度,它是顏色光譜的功率;飽和度是指各種色彩在光線中所在的比重,顏色種類越多飽和度越底。在計(jì)算機(jī)中色彩信息使用顏色空間來表示,不同的顏色空間側(cè)重點(diǎn)不同。
(1)RGB顏色空間
RGB顏色空間是由紅色、綠色和藍(lán)色三種基色來表示,通過改變?nèi)嫉谋壤梢缘玫讲煌念伾?。RGB顏色空間可以認(rèn)為是三維空間坐標(biāo)系中一個(gè)邊長為255的立方體,三維空間中三個(gè)坐標(biāo)軸上的值表示紅、綠、藍(lán)三基色在RGB空間的值,立方體內(nèi)沒一點(diǎn)代表RGB空間中的一種顏色。
RGB顏色空間的設(shè)計(jì)主要是為了適應(yīng)計(jì)算機(jī)圖像系統(tǒng)方便各種顏色的表示。由于RGB顏色空間中紅、綠、藍(lán)三基色間的聯(lián)系太過于緊密,這使得一些圖像處理算法難以設(shè)計(jì)和執(zhí)行,許多技術(shù)比如顏色直方圖,只能用在色彩變化比較劇烈的圖像上才起作用。
(2)HSV顏色空間
HSV(Hue, Saturation, Value)是根據(jù)顏色的直觀性為特點(diǎn)提出的一種顏色空間。HSV色彩空間構(gòu)建原理和人眼對現(xiàn)實(shí)中的色彩感知過程類似,人眼通過感受像素的亮度、色調(diào)和飽和度來判斷像素顏色。在HSV色彩空間中H、S、V分別指色調(diào)、飽和度和亮度三個(gè)分量,三個(gè)分量互不相關(guān)。其中色調(diào)分量是指顏色信息的外觀,是人的視覺系統(tǒng)對顏色種類的感覺,色調(diào)用角度來度量,取值范圍為0~360 。飽和度分量是指各種顏色分量所占的百分比即顏色的純度,取值范圍為0.1~1.0,值越大顏色越飽和,飽和度在人的視覺系統(tǒng)中表現(xiàn)為顏色的濃或淡。亮度分量指顏色在人眼觀測時(shí)的相對明暗程度,亮度的取值范圍為255(白色)~0(黑色)。
HSV分量值的計(jì)算,首先需要對RGB色彩空間進(jìn)行歸一化處理,亮度V等于R,G,B歸一化后的最大值,而色度H和飽和度S則要經(jīng)過復(fù)雜的計(jì)算得到。由于從RGB空間轉(zhuǎn)換到HSV色彩空間的計(jì)算需要對歸一化后的三個(gè)分量大小進(jìn)行判斷來確定亮度分量,所以轉(zhuǎn)換復(fù)雜計(jì)算量大,而且當(dāng)圖像飽和度低時(shí)轉(zhuǎn)換得到的色調(diào)并不穩(wěn)定,所以HSV顏色空間一般不能應(yīng)用到要求精確高和計(jì)算速度快的系統(tǒng)。
(3)YCbCr/YUV顏色空間
YCbCr顏色空間主要應(yīng)用在消費(fèi)類視頻產(chǎn)品中。YCbCr中Y是指亮度分量即光的濃度,Cb(Blue-Y)指藍(lán)色色度分量即藍(lán)色的濃度偏移量,而Cr(Red-Y)指紅色色度分量即紅色的濃度偏移量。在YCbCr色彩空間中根據(jù)三個(gè)分量在采樣是所占的比例不同形成了不同的存儲(chǔ)格式常用的YCbCr比例格式有4:2:0,4:2:2,4:4:4。這些采樣的依據(jù)主要是根據(jù)人眼對Y分量更加敏感,對于色度分量的減少并不影響人的視覺效果,而且可以減少圖像存儲(chǔ)使用的空間。從RGB色彩空間轉(zhuǎn)換到Y(jié)CbCr色彩空間線性轉(zhuǎn)換關(guān)系為:
(4)色彩空間的選取
膚色分割對圖像的色彩空間有兩個(gè)要求。首先在該色彩空間中亮度分量和色調(diào)分量能夠分離且相互獨(dú)立,這樣可以減少光照變化對膚色色調(diào)的影響,保證對膚色分割的穩(wěn)定性。其次,膚色顏色的色調(diào)分量在該色彩空間中具有聚類特征,通過某種分類方法能夠比較準(zhǔn)確的將膚色與非膚色分類。如果色彩空間滿足以上兩個(gè)條件,膚色分割算法在該顏色空間就可以得到較好膚色分割效果。
在RGB色彩空間中,三基色都包含有亮度信息,當(dāng)光照變化時(shí)三基色顏色都會(huì)有變化,膚色分割容易受光照變化影響。當(dāng)對RGB顏色分量進(jìn)行歸一化后雖然減少了亮度分量,但是仍然會(huì)受到光照影響,因此RGB色彩空間和歸一化后的RGB都不適合作為膚色分割色彩空間。
HSV 和 YCbCr 兩個(gè)色彩空間亮度分量和色度分量是相互獨(dú)立的,但是HSV色彩空間的三個(gè)分量是由R,G,B分量經(jīng)過非線性計(jì)算得到的,需要多次比較R,G,B分量大小,計(jì)算效率低,而且HSV中存在部分點(diǎn)對RGB色彩空間微小的變化會(huì)有劇烈的反應(yīng),使HSV顏色空間表現(xiàn)的很不穩(wěn)定。而YCbCr空間的三個(gè)分量是由R,G,B三個(gè)分量經(jīng)過線性變換得到的,計(jì)算效率高。
經(jīng)過對三種色彩空間的分析總結(jié)出YCbCr顏色空間具有以下優(yōu)勢:
(1)YCbCr色彩空間中亮度分量與色度分量相互獨(dú)立的。
(2)從RGB色彩空間轉(zhuǎn)換為YCbCr色彩空間是線性變換,相比于HSV的非線性轉(zhuǎn)換更據(jù)有優(yōu)勢。
(3)YCbCr色彩空間的構(gòu)成和人類視覺的色彩的認(rèn)知過程具有相似性。
(4)人臉膚色在YCbCr空間具有很好的一致性和聚類性。如圖 2 所示。使用膚色和非膚色數(shù)據(jù)來自SFA(A Human Skin Image Database based on FERET and AR Facial Image)人臉膚色數(shù)據(jù)庫。圖 2(a) 表示膚色在YCbCr空間分布,圖 2(b)表示非膚色分布,對比兩幅圖像可以發(fā)現(xiàn)膚色像素和非膚色像素在YCbCr色彩空間中的Cb和Cr分量分別在不同的區(qū)域具有聚類的特點(diǎn)。在YCbCr色彩空間通過分類算法可以將膚色和非膚色進(jìn)行分類。
圖2 YCbCr色彩空間膚色與非膚色分布圖
本文訓(xùn)練膚色分類器采用的數(shù)據(jù)來自SFA(A Human Skin Image Database based on FERET and AR Facial Image)人臉膚色數(shù)據(jù)庫,該人臉膚色數(shù)據(jù)庫包含人臉側(cè)面和正面在不同光照條件下的人臉圖像,其中有白色人種、黃色人種和黑色人種,共有1118個(gè)人臉圖像,從這些圖像中采樣得到8944個(gè)大小為35×35的樣本,其中3354個(gè)膚色樣本,5590個(gè)非膚色樣本。這些數(shù)據(jù)中,膚色像素點(diǎn)共計(jì)4108650個(gè),非膚色像素點(diǎn)共計(jì)6847750個(gè),對膚色樣本的Cb,Cr分量統(tǒng)計(jì)可以得到Cb和Cr色度分量的分布范圍:126 統(tǒng)計(jì)結(jié)果顯示所有的膚色點(diǎn)都分布在左上角定點(diǎn)為(85,175),右下角頂點(diǎn)為(129,126)一個(gè)矩形內(nèi),但膚色像素坐標(biāo)的分布范圍不能使用多個(gè)分段線性方程來表示,多個(gè)分段線性函數(shù)組成的一個(gè)密閉凸多邊形區(qū)間表示多維線性分類器。圓形分類器可以解決這種非凸多邊形范圍描述問題,所以本文選用圓形作為膚色弱分類器。 在矩形區(qū)域內(nèi),以每個(gè)像素點(diǎn)為圓心,以r為半徑,作為一個(gè)圓形弱分類器,r的取值范圍為,小于膚色矩形的一半,大于膚色區(qū)域的十分之一,即5 < r < 25。這樣弱分類器總數(shù)為45000個(gè),其數(shù)學(xué)描述為: 式(2)中 X代表待分類像素,Cb和Cr代表矩形區(qū)域內(nèi)每個(gè)點(diǎn)Cb,Cr分量值,r為圓形弱分類器半徑。對分類器的幾何意義為,如果當(dāng)前像素點(diǎn)在該弱分類器內(nèi)部則判斷為膚色即 h 等于1,否則h 等于0。 通過分析Adaboost算法流程和各種色彩空間的特點(diǎn),本文選擇使用YCbCr顏色空間描述膚色像素值,并選擇圓形圖像作為弱分類器來判斷像素點(diǎn)的類別。經(jīng)過Adaboost算法學(xué)習(xí)得到強(qiáng)膚色分類器 ()Gx,將待分類像素值作為強(qiáng)分類器的輸入?yún)?shù),經(jīng)過分類器判斷得到分類結(jié)果。強(qiáng)分類器結(jié)果由每個(gè)弱分類器權(quán)重和投票來決定,如果概率和大于0判斷為膚色,即 ()1Gx= ,反之為非膚色。 膚色分割算法實(shí)現(xiàn)的總過程可以分為幾個(gè)步驟如圖 3 所示。 圖3 膚色分割算法實(shí)現(xiàn)流程 針對一副人臉圖像,我們進(jìn)行了膚色分割實(shí)驗(yàn)。為了對比,我們也進(jìn)行了基于混合高斯模型的實(shí)驗(yàn),并設(shè)置了不同的閾值進(jìn)行對比。 實(shí)驗(yàn)結(jié)果如圖4和5所示。 圖4 GMM膚色模型分割結(jié)果 圖4是基于混合高斯模型的膚色分割實(shí)驗(yàn)結(jié)果。圖4 (a)為閾值取0.75的分割結(jié)果(假設(shè)概率密度大于0.75的像素點(diǎn)為膚色),圖4(b)為閾值取0.9的分割結(jié)果;從結(jié)果可以看出,閾值對膚色分割結(jié)果有很大的影響。 圖5是本文膚色分割算法,可以看出,本文算法結(jié)果要優(yōu)于高斯混合模型的結(jié)果。 圖5 本文算法膚色分割結(jié)果 從表1可以看出,本文膚色分類算法獲得的正確率是92.54%,虛警率是1.84%。雖然本文算法的真正類率和基于高斯混合模型的膚色分割算法的閾值取0.75時(shí)相比,稍微低一點(diǎn),但是本文算法對于不同的圖像都具有較高的檢測率同時(shí)虛警率較低。 表1 膚色分割錯(cuò)誤率 % 從圖4和表1可以看出,使用高斯混合模型時(shí),若閾值較小時(shí)基本全部膚色被正確分類,但是一些類似于膚色的像素點(diǎn)也被錯(cuò)誤分類為膚色,虛警率增加;當(dāng)閾值較大時(shí),漏檢率增加。因此膚色分割結(jié)果好壞取決于閾值的設(shè)置,而一旦閾值固定,則要么虛警率高,要么漏檢率高。但是目前并沒有很好地算法可以算出合適的閾值使用于所有情況。。 從圖5和表1可以看出,由于本文的膚色分類器是從膚色數(shù)據(jù)庫中學(xué)習(xí)得到,因此不需設(shè)閾值便可以實(shí)現(xiàn)膚色分割;其檢測率與混合高斯模型相近,但虛警率和漏檢率都有下降。 以上分析表明,與混合高斯模型相比,本文算法不需要設(shè)置閾值且具有較好的分割效果。 針對膚色分割問題,首先分析了傳統(tǒng)基于概率的膚色分割的缺點(diǎn),然后提出了基于Adaboost算法的膚色分割,并對各種色彩空間進(jìn)行分析和對比,對膚色在YCbCr色彩空間的分布規(guī)律進(jìn)行了分析,最后確定選擇YCBCr色彩空間并使用圓形作為膚色弱分類器。通過Adaboost算法,在大量膚色和非膚色的樣本中進(jìn)行學(xué)習(xí),得到了膚色的強(qiáng)分類器。最后本文通過實(shí)驗(yàn)把本文算法和其他算法進(jìn)行對比論證,實(shí)驗(yàn)結(jié)果充分證明了本文算法的有效性和魯棒性。雖然這對大部分情況本文的膚色分割算法表現(xiàn)良好,但是當(dāng)人臉受到光照變化影響時(shí)會(huì)有一些部位判斷錯(cuò)誤,所以后續(xù)如何消除光照變化的影響是本文改進(jìn)部分。2.3 改進(jìn)膚色分割算法實(shí)現(xiàn)
3 實(shí)驗(yàn)及結(jié)果分析
3.1 實(shí)驗(yàn)結(jié)果
3.2 實(shí)驗(yàn)分析
4 總結(jié)