李明,平凱,年福忠
LI Ming,PING Kai,NIAN Fuzhong
蘭州理工大學計算機與通信學院,蘭州730050
College of Computer and Communication,Lanzhou University of Technology,Lanzhou 730050,China
人臉檢測技術來自于人臉識別中的定位需求,檢測的準確與否直接影響到后續的人臉識別進程。目前,國內外學者提出了很多有效的人臉檢測算法[1-3]。其中膚色檢測算法較為簡單但易受自然界類膚色的影響,誤檢率比較高,多用于人臉區域的粗檢。通常在其粗檢得到的區域中再用其他的方法作進一步的驗證,以降低誤檢率。驗證的方法可分為兩類:一類是根據人臉區域存在孔洞、眼睛、唇色等其他特征來進行驗證[4-5],但其不夠精確;另一類是利用如神經網絡,AdaBoost,模糊集等基于統計的方法進行驗證[6-8],此類方法算法較為復雜。本文通過整合人臉的細節色彩信息,在色彩空間建立人臉模板,并利用此模板來進行驗證,其算法復雜度相對于基于統計的方法有所降低。考慮到該算法對色彩要求較為嚴格,因此在預處理中采用了光線補償的方法來減少光照對圖片的影響,進一步提高檢測的準確性。
在低光照強度下進行膚色分割時膚色區域漏識現象比較明顯,在對圖像中的膚色進行提取之前采用文獻[9]中的光照補償法先對圖像進行預處理,可以有效減少膚色遺漏現象。其算法步驟是首先將圖像從RGB空間轉換到灰度級為255的灰度圖像空間,然后將灰度圖像中的所有像素按亮度從高到低進行排列,取亮度值的前5%像素并將它們對應色彩R、G、B分量值都調整到最大的255,最后把圖像中其他像素點的色彩值也按該調整尺度進行變換。圖1為光線補償前后膚色提取效果對比圖。

圖1 光線補償前后膚色提取效果對比圖
2.2.1 色彩空間選取
色彩空間是一個三維坐標系統,每一種顏色由一個點表示。目前常見的色彩空間有RGB,HIS,YUV以及YCbCr等。其中RGB色彩空間和YCbCr色彩空間的使用比較廣泛。在RGB顏色空間中,紅,綠,藍是基本元素,三基色(R,G,B)既代表顏色信息,又代表亮度信息,對光照變化敏感,不適合建立膚色模型。
YCbCr色彩空間是一種具有與人視覺感知同一性的空間。其中Y是指亮度分量,Cb指藍色色度分量,而Cr指紅色色度分量。YCbCr的色彩空間將圖像中的色度信息與亮度信息分開,能更好地利用皮膚顏色在色彩空間的聚類性。因此本文采用YCbCr色彩空間來建立膚色模型。YCbCr色彩與RGB色彩的線性關系如下:

YCbCr色彩格式的圖像可直接由RGB色彩格式圖像通過空間轉化得到。
2.2.2 膚色模型建立
常用的膚色模型有區域模型,橢圓模型以及高斯模型。區域模型是一種較簡單的膚色模型,便于理解和運用;橢圓模型是在區域模型上進行的一種改進;高斯模型相對區域模型能更好地表示膚色分布,膚色檢測率較高,但其算法比較復雜。考慮到本文中要提取的顏色較多,對精度要求不高的特點,為了減輕算法的復雜度,因此選擇區域模型來做膚色模型。
區域模型是統計大量膚色樣本分布分析出Cb、Cr的集中分布區域Cb∈[a,b],Cr∈[c,d]。由數學判斷公式表示人臉的膚色即

式中,P(i,j)表示一張圖像上的橫坐標為i,縱坐標為j的像素點,a,b為膚色Cb的上限值和下限值,c,d為膚色Cr的上限值和下限值,如果該像素點的Cb和Cr均落在膚色的范圍之內,則判定該像素點為膚色,否則就判定其不為膚色。
在選取大量膚色樣本進行統計和實驗后,得到膚色的Cb集中分布在[77,127]范圍內,Cr集中分布在[137,177]范圍內。
同理得到唇色中的Cb集中分布在[109,150]范圍內,Cr集中分布在[152,180]范圍內。眼色中的Cb集中分布在[120,145]范圍內,Cr集中分布在[130,150]范圍內。經上述模型提取到的膚色,唇色及眼色如圖2所示。

圖2 各顏色提取效果
2.2.3 膚色分割及人臉候選區域的確定
上面獲得的經膚色分割后得到的二值圖像由于受到噪聲的影響,存在一些孤立的小塊,或者因其他因素(如眼睛、嘴巴等)影響存在漏檢的小孔區。在進一步檢測之前,需要用膨脹、腐蝕等數學形態學算子對其進行操作。從而使輸出圖像中的待檢區邊緣平滑,有助于后續的人臉候選區域的選擇。經形態學處理前后的效果對比如圖3所示。

圖3 形態學處理前后效果對比圖
經過上述處理之后,仍會存在較多的候選區域,這些候選區域有不同的形狀,大小,有些明顯地區別于人臉的幾何特征,因此可利用幾何約束首先排除明顯的非人臉的區域。首先在圖像中人臉區域具有一定的大小,面積過小的區域則不能判定為人臉,因此可以設定一個像素點個數的閾值,將面積過小的區域濾除;其次標準的正面人臉圖像的高寬比近似為1,太長或太寬的也均不是人臉,再設定一個寬高比的閾值,將太長或太寬的區域濾除;最后對剩下的每個區域建立一個外接矩形,該矩形即為可能存在人臉的區域。
采用傳統膚色模型進行人臉檢測的方法,就是將檢測到的膚色區域進行形態學處理和簡單的幾何約束,滿足條件的膚色區域均認定是人臉,因此導致誤檢率較高。文獻[4]中所采用的方法是在膚色粗檢的區域里面檢測是否有人眼存在,再通過人眼來進行人臉的細定位,從而在一定程度上降低了誤檢率,檢測精度也得到提高。本文提出一種建立彩色人臉模板的思想,其實質是把一幅人臉圖像視為一個整體進行考慮,利用五官色彩的分布信息來進行是否為人臉的判斷,通過將五官的色彩信息模板化,然后利用此模板在膚色粗檢的區域內進行搜索比對,實現起來也較為快速,簡單。
確定一幅圖片中是否存在人臉,關鍵是要看其中是否有滿足人臉特征的部分,人臉特征中最主要的是膚色和五官特征,而這些特征在一幅彩色圖片中的體現均為色彩信息。如何利用這些色彩信息進行是否為人臉的判斷是本節研究的主要內容。
一幅人臉圖像中,除了占大部分的膚色區域外,在其上面還分布著眼眉、眼睛、鼻子以及嘴巴。人類五官的幾何分布具有一致性,而且各部分的顏色在YCbCr空間中具有很好的聚類性,據此本文將人臉五官的幾何分布信息與五官的色彩信息相融合,建立一個彩色人臉模板。模板中除了包含膚色信息以外還選擇容易提取且包含信息量較大的眼睛和嘴唇來做模板的構成元素。模板的整體框架是一個正方形,邊長為兩只眼睛外角的距離,正方形的上邊緊貼眼眉的上側。具體的幾何模板如圖4所示。

圖4 模板效果圖
在對大量的人臉進行檢測統計后發現,落在整個框架內的膚色像素占整個框架內像素的85%左右,落在左眼框的眼色像素比例約占整個框架內眼色像素的30%,落在右眼框的眼色像素比例同樣約占整個框架內眼色像素的30%,落在嘴唇框里面的唇色像素占整個框架內唇色像素的40%左右。為了加大模板的冗余度,在進行比對時應適當減少各部分所占的百分比,模板的比對流程如圖5所示。
為了提高檢測的準確性,在膚色分割出的區域中用模板進行搜索比對時,不同于傳統的逐層縮小待檢圖像的方法,本文采用大小可變的模板,從小到大按比例縮放,最大不能超過待檢區域的大小。從膚色分割出的區域的左上端開始比對,檢測完后模板向右移動一個距離,當模板的最右端移動超出區域最右端時為止,然后向下移動設定的距離從最左端開始重新搜索,直至整個區域搜索完為止。
將建立好的人臉模板比對和搜索方案嵌入到整個人臉檢測過程中,其整體流程如圖6所示。

圖5 模板比對流程圖

圖6 人臉檢測流程圖
本文的測試環境為Pentium4 2.93 GHz處理器,512 MB內存,操作系統為Windows XP,在Matlab 7.0平臺上編程實現。實驗中的人臉圖片主要來源為AR人臉庫部分圖片,數碼相機拍攝以及Internet上下載的各種不同環境、不同復雜背景下的圖片。為作比對本文設計了3組實驗,分別是單一膚色模型人臉檢測算法,文獻[4]中的人臉檢測算法,再就是采用本文提出的算法,結果對比如表1所示。
由表1可知利用單一的膚色模型檢測算法的正檢率相對于文獻[4]算法和本文算法稍高,然而在三種算法中它的誤檢率卻是最高的,從圖7(a)可以很好地看出其原因所在,主要是因為它將所有的膚色區域和自然界類膚色區域都判定為人臉;采用文獻[4]的算法對每個膚色區域都進行一個是否存在人眼的判斷,以確定此區域是否是人臉,在一定程度上降低了誤檢率;本文則利用建構的模板來進行比對,驗證其中是否存在人臉,結果表明經模板判定后誤檢率最低且運行速度也較快。

表1 實驗結果對比

圖7 部分圖像檢測效果對比
在人臉檢測中隨著對人臉的判定標準的提高,會造成如表1所示的正檢率的下降。其原因可以通過圖7(b)進行說明,文中的模板針對的是正面人臉,不能有效檢測出側面人臉,因此會存在漏檢的情況。從漏檢率,誤檢率之和這一綜合指標來說采用本文算法所得實驗結果是三種方法里最優的。
實驗中還發現采用本文算法能夠有效解決多個人臉或人臉與其他部位之間的膚色粘連問題,從而使檢測結果更加精確,從圖7(c)可以明顯看出,采用本文提出的算法框選出的人臉區域顯然要更加準確,從而為后續的人臉識別,表情分析的進程打下了良好的基礎。
本文所提出的算法是在膚色粗檢的基礎上利用文中設計的彩色人臉模板進一步地進行比對判斷以降低誤檢率。彩色人臉模板能夠很好地融合人臉五官的幾何分布信息和五官的色彩信息,而且有效解決了多個人臉或人臉與其他部位之間的膚色粘連問題,由于搜索比對的過程是通過改變模板的大小進行的,提高了檢測的精度。但目前此算法仍存在一些問題,如在對不同姿態的人臉圖像以及較為模糊的圖像進行檢測時單一的模板不能夠很好地滿足需求。建立更多姿態的人臉模板或適應性更強的彩色人臉模板將是下一步研究的主要內容。
[1] 梁路宏,艾海舟,徐光佑,等.人臉檢測研究綜述[J].計算機學報,2002,25(5):449-458.
[2] Viola,Jones.Robust real-time face detection[J].International Journal of Computer Vision,2004,57(2):137-154.
[3] Sun Hungming.Skin detection for single images using dynamic skin color modeling[J].Pattern Recognition,2010,43(4):1413-1420.
[4] 俞王新,王志中,莊珺.一種基于膚色模型和眼睛定位的人臉檢測方法[J].計算機工程與應用,2008,44(26):21-22.
[5] 齊永鋒,火元蓮.一種基于膚色的人臉檢測與定位方法[J].計算機應用,2009,29(3):785-788.
[6] 齊永鋒,張家樹,火元蓮.一種基于膚色與改進的LBP的人臉檢測方法[J].光電子·激光,2009,20(6):816-821.
[7] 曲仕茹,熊波.基于Gabor濾波和神經網絡的人臉檢測方法研究[J].西北工業大學學報,2011,29(5):690-694.
[8] Li Gang,Xu Yinping,Wang Jiaying.An improved adaBoost face detection algorithm based on optimizing skin color model[C]//Natural Computation(ICNC),2010:2013-2015.
[9] Sun Yanfeng,Liang Yongtao,Su Shiqian,et al.Face detection based on skin-color model and gravity-center template[J].Journal of Beijing University of Technology,2006,32(5):467-472.