祝 敏,劉 偉,周 航,俞 路,郭 挺
(1.西安交通大學電子與信息工程學院,陜西 西安 710049;2.西安交通大學蘇州研究院,江蘇 蘇州 215123;3.蘇州少士電子科技有限公司,江蘇 蘇州 215128)
人臉檢測技術(shù)近年來發(fā)展迅速,應(yīng)用的領(lǐng)域也越來越廣。如智能視頻監(jiān)控、高級人機交互、視頻會議等,從之前的人臉識別到現(xiàn)在數(shù)碼相機中普遍使用的人臉自動對焦技術(shù),還有最近社交網(wǎng)站上應(yīng)用的自動“圈人”功能,都是人臉檢測技術(shù)直接或間接的應(yīng)用。
目前,在監(jiān)控領(lǐng)域人臉檢測技術(shù)并沒有得到很廣泛的應(yīng)用,主要原因是檢測過程中需將所有監(jiān)控錄像進行保存,這樣實時人臉檢測并不具非常必要性,然而將所有錄像進行保存需要巨大存儲空間,硬件成本會極大提高。為節(jié)約成本,業(yè)界通常使用的方法有兩點:一是縮短錄像存儲的時間(一般為一周),二是降低監(jiān)控存儲錄像的分辨力(多為QCIF等)。所以這樣保存的視頻資料可能整個過程中只有那么幾幀是清晰的,實際也就造成了資源的浪費,其實可以探尋在視頻流中直接識別人臉,并且將其中分辨力較高清晰可辨識的一幀或某幾幀人臉圖像進行保存,這樣就能大大減少存儲所需要的空間,而且提高保存資料的質(zhì)量。
因此,在對速度要求比較高的實時監(jiān)控系統(tǒng)中,采用快速有效的人臉圖像識別方法顯得尤為重要。筆者在膚色檢測[1-4]的基礎(chǔ)上,采用 AdaBoost算法進行人臉識別的方法,速度上比單獨使用AdaBoost算法進行人臉識別有顯著提高,加上對檢測到的人臉區(qū)域再進行倒譜域的清晰度判斷,將人臉識別效率大大提高。
膚色是人體表面的重要特征,利用膚色進行檢測可以忽略一些個別的人體特征,而只需要對這一統(tǒng)一的特征進行檢測,這樣就降低了算法的難度和復雜度。膚色在YCbCr空間具有聚類的特性[4],即膚色在該顏色空間的分布比較集中,不同種族之間的膚色差異主要是由亮度引起的,而與Cb,Cr分量無關(guān)。YCbCr色彩空間的優(yōu)點是將亮度分量與色度分量分離開來,這樣就使其受亮度變化的影響較小,降低了兩者的相關(guān)性。
本文采用的是Rein-Lien Hsu提出的基于YCbCr空間的加入亮度補償?shù)哪w色模型[1]。Rein-Lien Hsu通過研究發(fā)現(xiàn)膚色在YCbCr色彩空間并不完全由Cb與Cr決定,Y的取值同樣也會影響膚色區(qū)域的形狀。通過一些非線性變換,將膚色在YCbCr的分布映射到Y(jié)Cb'Cr'中,在YCb'Cr'色彩空間中,膚色在Cb'-Cr'二維平面上的分布相對很集中,其形狀類似于一個橢圓,所以可以用橢圓模型來描述這種分布。
用以下兩個公式來描述橢圓模型
通過膚色建模得到二值化圖像以后,要想得到膚色區(qū)域,需對二值化圖像進行連通,將一個個的孤立的像素點連接起來,形成一個連通域。得到一系列的連通區(qū)域后,由于這些區(qū)域可能包括膚色區(qū)域以及與膚色顏色相近的背景區(qū)域。在復雜背景下,有可能存在很多與人臉膚色相近的非人臉區(qū)域被分割出來(如手、胳膊等),這就需對這些膚色區(qū)域作進一步的處理。首先對分割出來的皮膚區(qū)域進行腐蝕與膨脹操作,除去噪聲對膚色分割的影響;然后進行濾波,去除孤立的噪聲點;人臉區(qū)域是具有一定大小的,可以設(shè)置分割區(qū)域的大小為整個圖像的1/100,因為如果區(qū)域太小,即使通過下一步檢測到人臉,也是難以辨識的;最后將得到的膚色區(qū)域的外接矩形求出,設(shè)置為感興趣區(qū)域(Region of Interest,ROI),再將得到的ROI作為參數(shù)傳遞給人臉識別部分,檢測該區(qū)域中是否包含人臉。
人臉識別模塊采用的AdaBoost算法是一種迭代運算方法,AdaBoost算法在訓練弱分類器過程中,對人體面部特征的提取,采用的是Haar特征。Haar特征在灰度圖像中便于計算,容易提取。Haar特征分為邊緣特征、線性特征、中心特征和對角線特征,這些特征組合成特征模板。弱分類器就是對組合成的特征模板進行訓練的。Adaboost算法通常首先選擇大量的Haar特征,通過訓練和測試選出比較好的特征,然后由這些特征獲得圖像的矩形特征,并由這些矩形特征構(gòu)成簡單的弱分類器,最后通過訓練由一系列弱分類器通過權(quán)重系數(shù)組合出一系列強分類器,最終用于人臉識別[5]。
單獨使用AdaBoost算法進行人臉識別,存在兩個問題:
1)由于需對整幅圖像進行窗口搜索,檢測速度受高復雜度運算影響;
2)由于該算法使用的是人體的面部特征進行匹配,如果在圖片中出現(xiàn)類似人體面部特征的區(qū)域,就會造成誤檢。
所以,采用膚色檢測結(jié)合AdaBoost算法進行人臉識別,可以有效減小搜索區(qū)域,只需對膚色特征區(qū)域進行匹配即可,大大降低了對整幀圖片進行全窗口搜索的運算復雜度。同時對于圖像中出現(xiàn)的類似人體臉部特征的區(qū)域,由于在膚色檢測過程中可能已經(jīng)拋棄,所以該方法也有效減少了AdaBoost的誤檢情況。
圖1a為單獨使用AdaBoost算法進行人臉識別的結(jié)果,圖1b為將膚色檢測與AdaBoost算法相結(jié)合進行人臉識別的結(jié)果。
圖1 AdaBoost算法和該算法與膚色檢測結(jié)合對人臉識別結(jié)果的對比
對比可見,單獨使用AdaBoost進行人臉檢測時,產(chǎn)生了誤檢,在原本只有一個面部的圖像中檢測到了2個面部,而使用膚色檢測與AdaBoost算法相結(jié)合的方法,則正確檢測出了人臉,比單獨使用AdaBoost算法進行人臉識別精度高,因此本文選擇膚色檢測與Adaboost算法相結(jié)合的方式進行人臉識別。
在經(jīng)過人臉識別之后,可以發(fā)現(xiàn)有些面部不太清晰的圖片中人臉也被識別出來,但清晰度不夠?qū)е氯四樧R別困難。所以該部分的目的是對檢測到的人臉區(qū)域進行清晰度檢測[6-7]。設(shè)定一個清晰度得閾值T,如果檢測到的人臉區(qū)域在清晰度檢測后,其清晰度高于T,則認為該人臉是清晰可識別的;若低于設(shè)定閾值T,則認為該人臉不可識別,放棄該圖片,重新從視頻流中獲得一幀圖像進行檢測。
判定圖像清晰度得方法主要有倒譜域方法、Sobel算子方法和小波變換方法等。本文中采用倒譜域方法。倒譜(cepstrum)是指一種信號的傅里葉變換譜經(jīng)對數(shù)運算后再進行的傅里葉反變換。由圖5可以看出,清晰圖像的倒譜圖像都集中于一點。在倒譜域內(nèi),模糊圖像的倒譜可分解為清晰圖像的倒譜和點擴散函數(shù)的倒譜的線性疊加。而點擴散函數(shù)的倒譜為一些散列的點。所以模糊圖像的倒譜域可以看作是清晰圖像的倒譜和點擴散函數(shù)的倒譜的簡單疊加。如圖2 a-d,b-e,c-f對比所示,模糊圖像的倒譜圖中的高能量亮點散布在整幅圖中。
圖2 3幅清晰度不同的圖及其倒譜圖對比
可見,清晰度越高的圖片,其倒譜圖中亮點分布越集中;清晰度越低的圖片,其倒譜圖中亮點分布越分散。
二值化倒譜域中亮點的平均能量E可定義為
式中:權(quán)值W(i,j)定義為點(i,j)到中心點(ic,jc)的距離,C(i,j)定義為點(i,j)的二值化實倒譜值,即
式(3)中:Cep(i,j)為點(i,j)的倒譜值,T為選取的二值化閾值,這里取180。
對同一幅待評價圖像來說,當T值一定時,圖像越清晰,E值越小。通過預(yù)先設(shè)定好閾值E0值,根據(jù)公式計算圖像的E值,當圖像的E值大于E0時,認為該圖像是清晰的,反之,則認為圖像不清晰,需重新采集。
實驗中開發(fā)工具為Visual Studio 2008+OpenCV2.1。對人臉檢測模塊測試采用攝像頭拍攝的兩段視頻:第一段是正面的清晰的場景,第二段是人由背對攝像頭慢慢轉(zhuǎn)至正面面向攝像頭。視頻的大小都是640×480,對這兩段視頻處理結(jié)果如圖3所示。
圖3 對兩段視頻的處理結(jié)果
表1 得到清晰正面圖像的計算時間比較
因此可得出結(jié)論:處理具有正面人臉的圖像時,速度很快,完全可以達到實時要求,得到的圖像也是剛轉(zhuǎn)到正面時所抓拍的第一張圖片,而頭部轉(zhuǎn)至正面之前的圖像均被丟棄。處理時間主要是人臉從背對攝像頭轉(zhuǎn)至正對攝像頭的時間。
另外,在實驗中還發(fā)現(xiàn),當一幀圖片檢測不到膚色區(qū)域、檢測不到人臉或者人臉不清晰時,那么它隨后的幾幀圖像都有相同的情形,所以可以設(shè)定一個跳過的幀數(shù)N來實現(xiàn)跳幀操作,以跳過那些不能檢測到膚色區(qū)域、人臉或圖像不清晰的圖像幀,從而進一步提高獲取清晰圖像的速度。
本文通過將膚色檢測、人臉檢測和清晰度3種方法相結(jié)合結(jié)合,實現(xiàn)了在視頻流中截取清晰正面的人臉圖像。通過將膚色檢測和人臉檢測結(jié)合,避免了單獨使用膚色或人臉檢測誤檢率高的問題,通過增加清晰度檢測方法,摒棄了視頻中不清晰的幀,只保存視頻流中的清晰圖像,極大減小了存儲所需空間,實現(xiàn)了一定應(yīng)用領(lǐng)域的視頻監(jiān)控實時人臉識別。
[1]HSU R,MOHAMED A,JAIN A K.Face detection in color images[J].IEEE Trans.Pattern Analysis and Machine Intelligence,2007,24(5):696-706.
[2]HEISELE B,SERRE T,PRENTICE S,et al.Hierarchical classification and feature reduction for fast face detection with support vector machines[J].Pattern Recognition,2003,36(9):2007-2017.
[3]GUO D,ZHANG H J.Boosting for fast face recognition[EB/OL].[2010-09-18].http://research.microsoft.com/pubs/69834/tr-2001-16.ps.
[4]周敬利,王志強,陳加忠,等.基于膚色分割、區(qū)域分析和模板分布的人臉檢測研究[J].計算機工程與應(yīng)用,2004,40(16):61-64.
[5]凌旭峰,楊杰,葉晨洲.彩色序列圖像的人臉檢測和識別系統(tǒng)[J].電子學報,2003,31(4):544-547.
[6]李科,劉允才.視頻運動圖像中人臉清晰度的分析與捕捉[J].微型電腦應(yīng)用,2010,26(4):40-41.
[7]陳曉娟,陳淑榮.實時視頻圖像的清晰度檢測算法研究[J].微型機與應(yīng)用,2010,26(17):36-38.