楊定禮,白秋產(chǎn),張宇林,趙正敏,唐中一
(淮陰工學院電子與電氣工程學院,江蘇 淮安 223003)
人臉檢測在智能人機接口、基于內(nèi)容檢索、數(shù)字視頻處理、安全訪問控制、模式識別等領域有著極為廣泛的應用。目前,人臉的檢測方法有很多[1-4],其中,最為有效的方法是 Viola于 2001 年提出的基于Adaboost算法的人臉檢測方法[5]。這種方法首先采用一種“積分圖”的方法快速地計算出大量的簡單矩形特征;其次,采用Adaboost學習算法從一個較大的矩形特征集中選出少量關鍵的分類能力較強的矩形特征構(gòu)造出一系列弱分類器;再次,通過線性組合將這些弱分類器組合成一個強分類器,最后通過級聯(lián)算法將多個強分類器合成一個更加復雜的人臉檢測器。一般在檢測時,用訓練好的分類器對圖像按照逐個像素的順序進行檢測,找出人臉區(qū)域。這種方法準確度高,但是消耗的時間較多[6]。本文結(jié)合視頻編碼中尋找最佳匹配塊的方法,提出在對圖像進行檢測時,采用zigzag字形掃描法及預先終止技術,并用實驗證明利用zigzag字形掃描法和預先終止技術檢測的速度比按照逐個窗口檢測速度大約提高了11.3%。
矩形特征值是指圖像中兩個或多個形狀大小相同的矩形內(nèi)所有像素的灰度值之和的差值。矩形特征也叫Harr類特征,能有效地區(qū)別人臉與非人臉。為了更好地檢測人臉,Rainer、Lienhart等人將矩形特征進行擴展,引入了旋轉(zhuǎn)的矩形特征,這種擴展的矩形特征共有三類,分別如圖1、圖2、圖3所示。第一類是邊緣特征,反映了圖像邊緣的信息。第二類是線性特征,反映圖像在線性方向上的特征。第三類是中心特征,反映了圖像周圍和中心的差異。本文采用基于擴展的矩形特征[7]。
圖1 邊緣特征
圖2 線性特征
圖3 中心特征
積分圖是圖像從左上角點開始到右下角點所形成的矩形區(qū)域內(nèi)像素之和。對于圖像內(nèi)一點i(x,y),其積分圖像值為:
圖4中的陰影部分為圖像內(nèi)一點i(x-1,y)的積分圖像值ii(x-1,y),積分圖像值可以通過下式迭代求得:
其中,s(x,y)是圖像中的點i(x,y)所在列縱坐標不超過該點的所有像素灰度值之和,如圖4中垂直線所示。得到積分圖之后,圖像中任何區(qū)域內(nèi)像素點的和可以通過各點的積分圖像值簡單的計算求得。如圖5中,設RectSum(1)為區(qū)域A的像素值,RectSum(2)為區(qū)域(A+B)的像素值,RectSum(3)為區(qū)域(A+C)的像素值,RectSum(4)為區(qū)域(A+B+C+D)的像素值,則區(qū)域D的像素值為:
圖4 點i(x,y)處的積分圖像值
圖5 區(qū)域D的像素值
根據(jù)上式可以計算出任何矩形特征的值。如圖1中的邊緣特征,其特征值計算方法如下:
矩形特征值 =黑色區(qū)域的像素值的和-白色區(qū)域的像素值的和
Adaboost算法主要是從大量矩形特征中挑選一些重要的矩形特征,構(gòu)成一系列弱分類器,再把多個弱分類器合成一個強分類器,最后將幾個強分類器串聯(lián)成級聯(lián)分類器[8]。
1.3.1 弱分類器
弱分類器就是一些分類能力不強,但是分類精度必須大于50%的分類器。一個矩形特征對應一個弱分類器。弱分類器的構(gòu)造方法如下:對于每個特征j,對應一個弱分類器hj(x),則
其中,x是20×20的圖像窗口,hj(x)表示x圖像在第j特征下的特征值。Pj=+1或-1,用來控制不等式方向,θj是閾值。
1.3.2 強分類器
通過訓練得到T個分類能力較強的弱分類器,把這T個弱分類器以一定的權重組合起來就可以得到強分類器,其算法如下:
(1) 給定一系列訓練樣本(x1,y1),(x2,y2),… ,(xn,yn),yi=1和0分別代表人臉和非人臉。
(2) 初始化權重,當 yi=0 時,wt,i=1/2m;當yi=1 時,wt,i=1/2l。其中,m 和 l分別是非人臉樣本和人臉樣本的個數(shù)。
(3)For t=1,2,…T
b)對每一個特征j訓練一個分類器hj,使得該分類器只用這個特征進行分類,相應的錯誤率為:εj=
c)選擇最小錯誤率εt最小的分類器ht;
d) 更新權值:wt+1,i=,其中 ei=0 表示xi被正確分類,ei=1表示被錯誤分類,βt=
(4)形成一種強分類器
1.3.3 級聯(lián)分類器
為了進一步提高檢測精度,在得到了強分類器之后,使用一種級聯(lián)的結(jié)構(gòu)將強分類器串聯(lián)成級聯(lián)分類器,在這個級聯(lián)結(jié)構(gòu)中,強分類器一級比一級復雜,前面幾級只有少數(shù)幾個分類器,而后面的分類器數(shù)目越來越多。由于非人臉圖像會在前面幾級被排除掉,因此,雖然后面的分類器數(shù)目多,但是需要檢測的時間并不多。
在檢測時,將圖像按照逐個像素的順序來掃描,并且是逐個像素掃描,這種方法比較準確,但是比較耗時。如果采用如圖6所示的zigzag字形掃描法,可以提高檢測速度。先沿著垂直方向隔一個點進行檢測,然后沿著45度方向檢測,再沿著垂直方向隔一個點進行檢測,如此往復循環(huán),則檢測速度提高一倍。
圖6 Zigzag字形掃描路徑
由于訓練樣本的大小為20*20,一旦檢測到人臉,則其相應的右邊與下面的(20-1)*(20-1)個點應該在剛檢測的人臉的區(qū)域內(nèi),即使檢測為人臉,也是與前面檢測到的人臉是同一個臉,所以可以直接將其標記為非人臉。這樣不需要進行檢測,既加快檢測的速度,又解決了人臉重復檢測的問題。
圖7 正方形掃描路徑
整個檢測過程是:首先將待檢測圖像預處理為大量的20*20的小窗口,然后按照zigzag字形與正方形掃描方法及預先終止技術進行檢測,在經(jīng)過第一級分類器之后,只有很少的窗口被檢測為人臉,再讓它們經(jīng)過第二級分類器、第三級分類器、…、第N級分類器,只有通過所有的分類器,才能確定其為人臉。改進后的人臉檢測過程見圖8,所檢測的圖像如圖9所示。
實驗運行環(huán)境是:Genuine Intel(R)CPU 1.66GHz,2.25GB 的內(nèi)存。操作系統(tǒng)為 WINDOWS XP,軟件環(huán)境為 VC++6.0,OPENCV。實驗時,對100幅圖像進行檢測,先用逐點掃描檢測方法,測得所用的時間,然后用改進后的方法,即zigzag字形掃描方法及預先終止技術,測得所用的時間。實驗結(jié)果表明,用改進的方法比用逐點掃描方法,在檢測速度方面平均提高了11.3%。檢測時間的比較結(jié)果見表1。
圖8 改進后的人臉檢測過程
圖9 檢測的圖像
表1 檢測時間比較
在進行人臉檢測時,如果采用逐點掃描方法對檢測窗口進行檢測,則會浪費大量的時間,同時還因為相鄰點的相關性,同一個臉會被檢測幾次。為了解決這個問題,還要作相應的后續(xù)處理。如采用zigzag字形掃描方法及預先終止技術,既提高了檢測速度,又解決了人臉被重復檢測的問題。
[1]Nicolas Farrugia.Fast and Robust Face Detection on a Parallel Optimized Architecture Implemented on FPGA[J].IEEE Transactions on Circuits and Systems For Video Technology,2009,19(4):597-602.
[2]Junsu Jang,JongHwan Kim.Fast and Robust Face Detection Using Evolutionary Pruning[J].IEEE Transactions on Evolutionary Computation,2008,12(5):562-571.
[3]Prathap Nair,Andrea Cavallaro.3D Face Detection Landmark Localization and Registration Using a Point Distribution Model[J].IEEE Transactions on Multimedia,2009,11(4):611-623.
[4]Christopher A,Waring,Xiuwen Liu.Face Detection Using Spectral Histograms and SVM[J].IEEE Transactions on Systems Man and Cybernetic- Part B:Cybernetics,2005,35(3):467-476.
[5]Paul Viola,Michael Jones.Robust Real- time Object Detection[C].Second International Workshop on Statistical and Computational Theories of Vision-Modeling,Learning,Computing,and Sampling(SCTV '01),Canada,2001:1-25.
[6]范一峰.基于Adaboost算法的人臉檢測研究[D].杭州:浙江工業(yè)大學,2008.
[7]Liying Lang,Weiwei Gu.Study of Face Detection Algorithm for Real- time Face Detection System[C].2009 Second International Symposiun on Electronic Commerce and Security.2009:129-132.
[8]Jianxin Wu,S Charles Brubaker,Matthew D.Fast Asymmetric Learning for Cascade Face Detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2008,30(3):369-382.