傅文林,胡福喬
對于頭發(fā)的自動分割進行試驗研究,并提出自己的算法框架。算法利用mean shift和混合高斯模型,結(jié)合顏色,紋理,頭發(fā)位置特征來檢測頭發(fā)。本方法分為三步。首先利用adaboost算法檢測人臉及人眼,人臉及人眼的位置確定可進行人臉大小歸一化及得到頭發(fā)位置模板。其次,抽取頭發(fā)特征向量并利用mean shift對頭部區(qū)域所有像素進行聚類,得到聚類區(qū)域。最后,利用混合高斯模型判定聚類區(qū)域是否為頭發(fā)區(qū)域,進而檢測出頭發(fā)。試驗證明本方法運行速度快,并可在簡單及復雜背景下有效檢測頭發(fā)。
近年來,人臉檢測與識別成為熱點,且逐漸走向成熟,對于人臉識別比較常用的方法可見文獻[1]。主流的人臉識別算法主要是通過抽取人臉全局特征作為特征向量進行匹配識別。但全局特征向量在特征空間中容易存在向量對齊問題,故常采用抽取局部特征向量(如頭發(fā))作為輔助識別。頭發(fā)是個很重要的局部外表特征,同樣的,頭發(fā)分析在以下的領域存在很大應用價值:身份識別,年齡和性別估計,圖像檢索。由于頭發(fā)本身具有顏色多樣性及形狀變化性,故頭發(fā)的分割及分析具有很大的困難,而于 對于頭發(fā)檢測研究比較少,近年來相關的論文如下:
Yacoob和Davis[3]利用rgb信息構建簡單的頭發(fā)和皮膚顏色模型,然后使用此顏色模型去判別人臉區(qū)域附近的像素是否為頭發(fā)像素。此算法簡單,快速,但僅能分割簡單,歸一化背景下的頭發(fā)。
在Lee的方法[4]中,他利用頭發(fā)顏色和位置信息構建高斯混合模型,然后再用圖割算法最小化能量函數(shù),從而得到頭發(fā)和人臉的分割。然而在他的方法中同樣存在缺陷。首先,在算法上構建能量函數(shù)中的頭發(fā)位置信息采用的是絕對位置,因此它要求測試圖片中人臉必須位于圖片的正中間,否則會產(chǎn)生大量誤檢。其次如論文所述,對于頭發(fā)與昏暗背景的判斷容易產(chǎn)生誤差。最后,因為基于像素單位的多類圖割算法具有復雜的計算度,需要較長的運算時間。
C.Rousset[5]結(jié)合頻域掩膜(frequential mask)和顏色掩膜去分割頭發(fā)。在簡單背景下此方法有一定效果,但在復雜背景及光照條件下,此方法同樣存在大量誤檢。
我們目標是設計一種方法,能夠在簡單和復雜背景下較好的分割頭發(fā)。方法還需考慮些特殊條件,如變化的光照,與目標相似的顏色背景。同樣的,它要能夠處理彩色圖片和灰度圖片,灰度圖片中僅利用顏色信息時不夠的。本文算法分為三步。首先,檢測人臉及人眼。其次,抽取頭發(fā)特征向量,利用mean shift算法對像素聚類,聚成一個個區(qū)域。最后,構建混合高斯模型,判斷步驟二聚類而成的區(qū)域是否為頭發(fā)像素區(qū)域。在頭發(fā)特征向量的抽取過程中,一些典型的特征,如顏色,位置及紋理都在被考慮中。在實驗過程中,發(fā)現(xiàn)頭發(fā)顏色易受變化的光照影響,因此,為了提高頭發(fā)檢測正確率及讓算法能適應不同光照條件,用不同光照條件下的頭發(fā)區(qū)域去訓練混合高斯模型。本文用不同光照,不同人臉尺寸大小,和不同環(huán)境下的圖片測試算法,結(jié)果證明算法具有快速性,較高的準確率,及較好的魯棒性。具體的算法流程如下所述:
本文算法,如圖1描述,是個多步驟方法,算法中的每步都去除部分非頭發(fā)像素(或頭發(fā)區(qū)域),最后得到頭發(fā)像素(頭發(fā)區(qū)域)。
人臉檢測及眼睛定位存在很多成熟算法[6],本文采用基于boosted分類器的方法檢測人臉及人眼。人臉及人眼的檢測可以減少環(huán)境因素的干擾,同時能歸一化人臉圖片,以便頭發(fā)位置模板的提取及匹配,更好的進行頭發(fā)分割。
通過人臉及人眼的檢測及定位,可歸一化人臉到某一大小??紤]到頭發(fā)是環(huán)繞在人臉這一事實,本文提出定義頭部區(qū)域這一概念,其中頭部區(qū)域包含了人臉和頭發(fā)。在C.Rousset的方法中,它用Viola和Jones[7]的人臉盒子及人體學數(shù)據(jù)來定義頭部區(qū)域公式。在本文中,采用許多歸一化后的頭發(fā)訓練圖片來形成可能的頭發(fā)區(qū)域,由此頭發(fā)區(qū)域來定義頭部區(qū)域公式,具體流程如下圖所示:
圖2 頭部區(qū)域定義
從頭發(fā)的聚類結(jié)果,可以得到包含頭發(fā)和臉的頭部區(qū)域定義公式如下:“頭發(fā)和人臉”區(qū)域?qū)挾?= 3.6*人臉寬度“頭發(fā)和人臉”區(qū)域高度 = 3.7*人臉高度
考慮到一些特殊狀況,如灰度圖像包含較少的顏色信息,頭發(fā)顏色與背景圖像類似,僅利用顏色特征信息是不夠的,故我們抽取紋理特征,顏色特征及x,y坐標位置來表征頭發(fā)特征向量。
抽取紋理特征,本文采用高斯差分濾波器DOG 和高斯偏移差分濾波DOOG。DOG和DOOG是計算機視覺和圖像處理領域常用的一種濾波器,它的傳遞函數(shù)是兩個不同寬度的高斯函數(shù)的差分。DOG和DOOG在許多方面表現(xiàn)出了優(yōu)良的性能,例如對人眼視覺中感受視野的研究表明,視神經(jīng)細胞的輸出可以用DOG和DOOG來描述。DOG和DOOG的運算相對于Gabor來說也很簡單。
模型包含三個步驟(1)用高斯差分濾波器和高斯偏移差分濾波器對圖像做卷積,得到響應 (2)強化空域上的強響應 (3) 得到紋理邊緣本文中,采用兩個不同幅值的DOG和六個不同方向的DOOG濾波器。濾波器如下圖所示。
圖3 DOG和DOOG濾波器
Mean shift 算法是基于核密度估計的爬山算法。它在很多領域都有所使用,比如聚類,圖像分割,目標跟蹤。它的基本算法思想如下:
數(shù)據(jù)集{xi, i = 1,…..n}, xi 為d維的特征向量。頭發(fā)特征向量的抽取如2.3.1所述。某樣本點的Mean Shift向量可定義如下:
w為樣本點的權值,在本文中,用頭發(fā)相對位置概率P(rd|s)取代權值。這意味著增加可能頭發(fā)區(qū)域中像素的權值,使得頭發(fā)像素聚集更緊密,快速。像素相對位置概率P(rd|s)為0時被聚成非頭發(fā)類,P(rd|s)越大越傾向于聚集成頭發(fā)類。G(X)為核函數(shù),由核函數(shù)形成的特征空間如下:
其中hs,hr控制著平滑的解析度,hs 表示空間域窗口半徑,hr 表示顏色域窗口半徑。通過實驗,當hs=4 和hr=6.5時,可獲得較好的結(jié)果。
用mean shift 聚類后,可獲得許多區(qū)域,需對區(qū)域做進一步精確分類判斷,判斷其是否為頭發(fā)區(qū)域,其中非頭發(fā)區(qū)域包括人臉區(qū)域,衣服區(qū)域,帽子區(qū)域。
構建高斯混合模型。頭發(fā)特征包括顏色和紋理特征。本文用頭發(fā)特征訓練高斯混合模型。訓練圖片包含各種光照情況圖片,如下圖所示。訓練混合高斯模型包含2個步驟,離線訓練和在線更新步驟。本文圖象庫頭發(fā)顏色類型主要為黑,白,灰顏色。但頭發(fā)顏色易受光照,年齡和性別等條件影響,故我們采用多維混合高斯模型。
圖4 強,弱光條件下的頭發(fā)圖像
在應用GMM前,使用k-means算法聚類訓練頭發(fā)像素,并獲得初始化GMM參數(shù)。每個聚類中心分別代表頭發(fā)在不同的條件下(光照,顏色,性別)的特征。經(jīng)過試驗,設k=5,即五維混合高斯模型可獲得較好的分割頭發(fā)結(jié)果。在訓練過程中,應用EM算法更新GMM參數(shù)。
區(qū)域分割經(jīng)由高斯混合模型概率。通過頭發(fā)特征高斯混合模型,可計算像素屬于頭發(fā)的概率,進而判斷像素是否為頭發(fā)像素,得到頭發(fā)模板。
判別函數(shù)如下:
p(x,μ,σ)為通過如下公式計算得到的高斯后驗概率
當像素屬于頭發(fā)模型的概率低于一設定閾值時,此像素將判定為非頭發(fā)類型。在本文中,一個合適的閾值設為0.0023.
GMM 和EM算法有一定復雜度。如果每個像素都計算混合高斯模型概率,則計算復雜度將增加,同時將存在大量空洞在高斯判斷后。所以本文用mean shift聚類成的區(qū)域代替像素來計算頭發(fā)混合高斯模型概率,并在線更新高斯模型參數(shù)。其中每個區(qū)域可用mean shift聚類而成的中心點來表征。如果中心點的混合高斯概率大于閾值,這整個區(qū)域都將判定為頭發(fā)區(qū)域。如此計算復雜度將大大減少。
實驗采用的圖像庫都是關于正面人臉的。為了得到混合高斯模型的初始參數(shù)和頭發(fā)位置模板,采用400張擁有簡單背景的人臉圖片(640*480 像素)作為訓練圖像。接著,對這些圖片進行手動頭發(fā)分割,用這些手動分割好的頭發(fā)像素訓練高斯混合模型,并且得到頭發(fā)位置模板及各類發(fā)型模板。為了測試算法的有效性,采用2個不同的圖像測試庫。第一個圖像測試庫由300張圖片(640*480像素),具有簡單,歸一化的背景。它用來測量算法對于頭發(fā)的顏色多樣性及頭發(fā)形狀的變化性的檢測正確率由多少。第二個圖像測試庫包含200張不同大小的人臉圖片,圖片具有復雜背景,用來測量算法在復雜背景,變化光照,不同人臉尺寸下的魯棒性。部分典型圖片可見頭發(fā)分割結(jié)果圖。
本文算法處理一副圖片(大小 640*480),在2GHz Core2 PC上耗費約900ms。人臉檢測約需50至60ms,mean shift較耗時間,本文僅在頭部區(qū)域運行mean shift算法,故耗時約600ms。因為使用mean shift聚類后的區(qū)域做混合高斯判斷,故GMM僅耗時50ms。而Lee的方法因為采用圖割(graph-cut)做多類分割,故由很高的計算復雜度,約需耗時3秒。
通過彩色圖像和灰度圖像頭發(fā)分割各一個例子,并與Lee[4]和 Yacoob[3]進行對比,如圖所示,可以看出在彩色圖像中,本文算法結(jié)果類似于Lee的方法。Yacoob僅利用簡單的顏色聚類算法,因此它無法去除類似頭發(fā)顏色的衣服的干擾,把衣服誤檢成頭發(fā)。
圖5 (a)輸入圖像 (b)本文方法 (c)Yacoob方法 (d) Lee方法
在灰度圖像中,正如預期的當在頭發(fā)與背景顏色相一致的情況下,僅利用位置與顏色信息的 Lee的算法產(chǎn)生了誤檢。而Yacoob的檢測結(jié)果類似于Lee算法。由于本文算法綜合考慮了紋理,顏色及位置信息,故得到個更好的分割結(jié)果,如下圖所示。
圖5 (a)輸入圖像 (b)本文方法 (c)Yacoob方法 (d) Lee方法
本文采用誤檢率及漏檢率來衡量算法性能。誤檢率表示誤把背景像素當成頭發(fā)像素的百分率,漏檢率表示把頭發(fā)像素當成背景像素的百分率。
表格1 頭發(fā)分割結(jié)果表
從結(jié)果表中,本文算法在某些復雜環(huán)境下:變化光照,復雜背景,不同人臉尺寸,都具有較好的頭發(fā)分割效果。但當人臉檢測錯誤,背景顏色及紋理與目標頭發(fā)相似,容易產(chǎn)生頭發(fā)像素誤檢及漏檢。
在本文中,我們提出了一種具有較好的實時性的檢測頭發(fā)的方法,本文中的算法能將頭發(fā)與易混淆的背景區(qū)分開來。通過實驗我們發(fā)現(xiàn),當場景簡單時,文中的算法能得到較好的結(jié)果,但當場景與頭發(fā)顏色與紋理相一致的時候,本文中的算法所得到的結(jié)果不盡理想,所以,未來我們的工作將集中于解決如何更好的提高算法的魯棒性上。
[1] Chellappa R, Wilson C L, and Sirohey S.Human and machine recognition of faces: A survey. Proceedings of the IEEE, 83(5):705–740, 1995.
[2] Cai J, Goshtasby A. Detecting human faces in color images. Image and Vision Computing, 1999(1), 18: 63-75.[3] Yaser Yacoob and Larry S. Davis: Detection and Analysis of Hair. IEEE Trans. Pattern Analysis and Machine Intelligence, 28(7), 2006.
[4] Kuang-chih Lee,Dragomir Anguelov, Baris Sumengen,Salih: MarkovRandom Field Models for Hair and Face Segmentation,IEEE Conf. On Automatic Face and Gesture Recognition, September 17-19, 2008.
[5] Rousset C and Coulon P Y.Frequential and Color Anaysis for Hair Mask Segmentation. ICIP 2008.
[6] Lienhart R, Liang L, and Kuranov A.A Detector Tree of Boosted Classifiers for Real-Time Object Detection and Tracking. Proc. IEEE Int’l Conf. Multimedia & Expo, July 2003.
[7] Viola P and Jones M.Compositing Rapid object detection using a boosted cascade of simple features. IEEE Computer vision and Pattern recognition, 511-518, 2001.