程耀瑜,豐 婧,李樹軍,賀 磊
(1.中北大學 信息與通信工程學院, 太原 030051;2.寧波軍鴿防務科技有限公司, 浙江 寧波 315000; 3.中北大學 機電工程學院, 太原 030051)
隨著信息技術飛速發展,人臉檢測和人臉識別技術已經成為當前的研究熱點。人臉檢測屬于計算機視覺的范疇,主要用在人臉識別的預處理,在復雜背景下人臉檢測的需求越來越大,人臉檢測也逐漸發展為一個單獨的研究方向。目前大多數的人臉檢測都是針對正面、準正面人臉圖像的研究,而對于發生俯仰或者左右側的情況下人臉姿態研究相對較少。
人臉檢測技術不僅包括檢測圖像中是否存在人臉,還需要標記出人臉的所在位置,但現實中往往由于人臉內在的變化(嘴的開閉、人臉的遮擋等)和外在條件的變化(光照的變化、圖像的成像條件等),給人臉檢測造成了一定的難度。常用的人臉檢測方法可以分為以下3種:基于知識的方法、基于統計模型的方法、基于模板匹配的方法[1]。其中,基于知識的方法又包含灰度特征、結構特征、紋理特征、膚色特征、輪廓特征等,而利用膚色特征信息來實現人臉和背景的分離是目前最常用的人臉分割方法。
閆河等[2]提出了一種新的Haar-like特征實現人臉檢測;林國軍等[3]通過空間顏色轉換實現膚色定位人臉檢測。本文采用Haar特征算法進行人臉檢測,在無法正確檢測的情況下,引入GrabCut圖像分割算法消除人像背景對膚色分割的影響,繼而使用膚色分割算法進行人臉檢測。實驗結果表明,利用上述方法對人臉進行檢測,可以很好地避免漏檢、誤檢的問題,降低了環境對人臉檢測的影響,在很大程度上提高了人臉檢測的準確率,為后續的人臉識別提供了條件。
系統對單人臉圖像進行檢測,在通過Haar特征檢測之后,對人臉檢測結果進行判斷,若人臉檢測個數為1,則認為檢測成功;若人臉檢測個數不為1,則認為Haar特征檢測失效,轉而使用GrabCut算法提取目標前景,將其轉換到YCrCb空間,利用Otsu算法進行自動閾值分割,得到膚色分割圖像,并對其進行閾值二值化、中值濾波等預處理,通過幾何特征篩選人臉特征,最終得到人臉檢測的圖像。需要說明的是,誤檢也存在檢測結果個數為1的情況,但檢測到的對象不是人臉,由于其發生的概率較小,在這里忽略不計。算法流程如圖1所示。

圖1 算法流程框圖
Haar特征也稱Haar-like特征,是一種簡單且高效的圖像特征,其基于矩形區域相似的強度差異Haar小波。C.P.Papageorgiou等[4]在2002年提出將Haar-like特征用于人臉檢測;后來P.Viola和M.Jones[5]將其擴展,定義了4個基本特征結構,并分為3類:邊緣特征、線性特征和對角線特征,組合成特征模板,如圖2所示。

圖2 4個基本特征結構
Haar特征模板內有白色和黑色2種矩形,用白色區域中的像素值之和減去黑色區域中的像素值之和,得到的就是一個特征值,Haar特征值反映了圖像的灰度變化情況。為了快速計算Haar特征,他們還提出積分圖的方法,如圖3所示。在積分圖像上任意位置(x,y)處的ii(x,y)表示該點左上角所有像素之和,即:

(1)
則區域A的像素值可以表示為:
SumA=ii(x,y)+ii(u,v)-ii(x,v)-ii(u,y)
(2)

圖3 積分圖
后續經過改進與發展,R.Lienhart等[6-7]提出引入45°傾斜特征,擴展至14個特征原型:4個邊緣特性、8個線特性和2個中心環繞特性,以及一個特殊的對角線特性,以便能夠提取到更豐富的邊緣信息,如圖4所示。

圖4 Haar特征原型示意圖
圖像分割是計算機視覺領域中一個重要的研究內容,目前基于圖論的分割技術已經成為新的研究熱點,此方法基于能量優化算法,將圖像分割問題轉換為圖的最小割優化問題。其中GrabCut[8-9]是一種基于圖論的分割方法,廣泛應用于前景分割(image segmentation)、醫學處理(medical treatment)、紋理分割(texture segmentation)及立體視覺(stereo vision)等方面。GrabCut是對GraphCut的改進版,采用RGB三通道混合高斯模型(gaussians mixture model,GMM)建模,根據分割模型參數不斷迭代更新完成學習過程,實現能量函數收斂于最小值,輸入包含目標前景的區域就可以完成前景與背景的分離。
整個圖的Gibbs能量函數為:

(3)
式(3)中:U函數部分表示能量函數的區域數據項;V函數表示能量函數的光滑項(邊界項)。
使用混合多高斯模型D(x)表示某個像素屬于前景或背景的概率,這里K=5,有:

(4)
(5)
式(4)、(5)中:πi表示第i個單高斯函數對概率貢獻的權重系數;gi為第i單高斯函數;μi為第i個單高斯函數的均值; ∑i為第i個單高斯函數的協方差。
區域數據項U函數為:
(6)

(7)
光滑項V函數為:
(8)
式(8)中:C是相鄰顏色對的集合;γ是一個常量值,γ=50;β=(2〈(zm-zn)2〉)-1。
本文設計通過鼠標選取人臉所在位置標注前景框,提取前景消除周圍環境的影響。具體的實現步驟為:
步驟1通過鼠標框選人臉所在位置,矩形外的區域自動認為是背景像素,矩形內視為“可能是目標”的像素;
步驟2Grabcut算法對目標區域進行初始化標記,前景區域的標簽為αn=1,背景區域的標簽為αn=0;
步驟3使用高斯混合模型(GMM)對前景和背景建模;
步驟4對每個像素分配GMM中的高斯分量;
步驟5根據Gibbs能量函數公式不斷學習更新優化GMM模型中的參數;
步驟6使用最小割與最大流算法(mincut & maxflow)對圖片進行分割;
步驟7重復步驟4~步驟6,直至能量函數收斂。
目前,在人臉檢測中常用的色彩空間主要有3種:RGB空間、HSV空間和YCrCb空間。其中,基于RGB范圍來判定皮膚容易受到光線的影響,魯棒性不好;而YCrCb顏色空間(亦稱YUV)是被歐洲電視系統所采用的一種顏色編碼方法,主要用于優化彩色視頻信號的傳輸,不容易受到光線強弱的干擾,而且具有很好的聚類性,也容易從RGB空間轉換,分割效果良好。轉換公式為:

(9)
式(9)中:Y為顏色的亮度成分;Cb和Cr為藍色和紅色的濃度偏移量成分。
確定了YCrCb彩色空間,接下來要建立膚色模型,目前膚色建模的方法有很多種,其中最流行的是非參數化膚色模型,它是一種基于直方圖統計的方法,可以根據膚色樣本自動調節分割閾值,不需要人為設定參數,本文采用最大類間方差法[10-11],此方法是Otsu在1979年提出的,亦稱Otsu方法,此方法基于灰度值給出的類間分離閾值是最佳閾值,容易計算,不受圖像亮度和對比度的影響,可以達到很好的分割效果,效果圖如圖5所示,為后續進行人臉檢測縮小范圍。

圖5 原圖和膚色分割效果
在對膚色提取后的圖像進行Haar特征檢測之后,正臉一般都會檢測出來,但是對于非正對人臉的檢測率就不是很高,因此對于沒有檢測出的對象還要進行下一步的操作,得到非正對人臉的檢測結果。
閾值化圖像就是對灰度圖像進行二值化操作,首先利用最大類間方差法求出一個閾值,并設定此閾值為門限,然后遍歷圖像中的像素點依次與閾值比較,判斷圖像像素為0還是255,最終形成二值圖像,使整個圖像呈現黑白的效果,以便凸顯出目標的輪廓。效果如圖6所示。

圖6 二值化效果
平滑濾波也稱模糊處理,可以減少圖像上的噪聲,實質是對像素點領域的像素值施于某種算法,以其結果替代錨點處對應的像素值。中值濾波法是一種非線性平滑技術,對脈沖噪聲有良好的濾除作用,特別是在濾除噪聲的同時,能夠很好的保護信號邊緣,使之不被模糊。
經過以上步驟的操作,已經基本確定了疑似膚色的區域,接下來要根據人臉的幾何特征進行篩選,去掉干擾項,最終確定人臉區域的位置。具體規則如下:
1) 設置目標區域外接矩形的最小尺寸為100×100;
2) 目標區域的長寬之比的區間為[0.6,2.5],以消除胳膊等狹長區域的影響;
3) 目標區域與其外接矩形的面積大于0.5。
試驗環境:軟件平臺為Visual Studio 2015專業版,硬件配置為Windows10操作系統(Intel i7,8GB內存),編程語言為 C++,使用OpenCV開源庫作為算法的開發工具包。
人臉檢測的結果如圖7所示。本文采用的實驗數據是不同背景條件下的單人臉圖像,共計400張,有3部分來源:① 網絡上搜索的不同背景、不同姿勢的人臉圖像100張;② 從包含人臉的視頻圖像中,取出視頻幀圖像100張;③ 人臉數據集FDDB中選取圖像200張。
實驗結果表明,使用Haar單一算法漏檢率偏高,通過GrabCut和膚色檢測算法結合使用對Haar特征檢測不理想的結果進一步檢測,可以有效降低單一算法的誤檢率和漏檢率,也進一步提高了人臉檢測的準確率。算法對比結果見表1。雖然本文引入了GrabCut的迭代能量最小化分割算法,較大地增加了分割圖像的時間,卻能更準確地得到目標圖像,從而提高了人臉檢測的準確性。人臉檢測算法的時間對比見表2。

圖7 人臉檢測結果

表1 人臉檢測算法的對比結果

表2 人臉檢測算法的時間對比
為了進一步驗證該算法對人臉檢測的有效性,本文在對圖像進行人臉檢測的基礎上引入了實時的人臉檢測,實時檢測結果表明:本文算法對多個角度的人臉檢測均具有很好的魯棒性。部分實時人臉檢測視頻幀效果如圖8所示。

圖8 部分人臉檢測的實時視頻幀效果
提出一種新的算法來進行人臉檢測,即先使用Haar特征算法進行人臉檢測,在其無法得到正確結果的情況下,再使用GrabCut分割算法消除了人像背景的影響以提高人臉檢測的準確性,繼而使用膚色檢測算法提高側臉、低頭等情況下人臉檢測的成功率。實驗結果表明使用該算法可以很好地解決使用Haar單一算法進行人臉檢測造成的檢測率低、容易漏檢誤檢等問題,可為后續成功進行人臉識別提供參考。