周恒
(天津工業(yè)大學(xué),天津300160)
人臉檢測是個非常先進(jìn)的話題,它是人臉研究的一個主要方向。人臉研究主要包括人臉識別和人臉檢測兩大方向的研究。然而最初的人臉研究工作主要集中在人臉識別方面上。人們在這個方向上的研究也持續(xù)了很長一段時間,那時研究人員的重心幾乎都放在了兩張人臉的對比上,也就是說這項工作的主要任務(wù)是探討如何在一個人臉庫中快速準(zhǔn)確地檢索到需要的人臉。由于早期的相關(guān)算法都是在假設(shè)已經(jīng)得到正面人臉或者人臉很容易獲得的前提下進(jìn)行的,因而相關(guān)研究成果的實際意義隨著人臉應(yīng)用范圍的不斷擴(kuò)大和開發(fā)實際系統(tǒng)需求的不斷提高而變得很弱。這種假設(shè)條件下進(jìn)行的研究很難滿足實際的需求。于是人臉檢測開始作為獨(dú)立的研究內(nèi)容發(fā)展起來。
人臉檢測就是對于任意一幅給定的圖像,采用一定的策略對其進(jìn)行搜索以確定其中是否含有人臉,如果是則返回人臉的位置、大小和姿態(tài)。人臉檢測作為物體檢測的一個特例,長期以來備受關(guān)注。人臉檢測的難點主要集中在兩方面:1)由人臉內(nèi)在變化所引起的,如外貌,表情,頭部飾物等,稱其為內(nèi)因;2)由外在條件變化所引起的,如成像角度、光照影響等,稱其為外因。人的外貌和表情等內(nèi)因的微妙變化會導(dǎo)致識別效果的不理想,并且人臉的遮擋物等物品會造成人臉圖像的不完整,這也是影響檢測結(jié)果的重要因素。至于外因,情況更加復(fù)雜,光照的影響在很大程度上會改變膚色的灰度范圍,增加了識別難度。其次由于成像角度的不同有可能會造成人臉的多姿態(tài)。而且圖像的成像條件,如設(shè)備的焦距、成像距離等都是不可預(yù)料的。
近年來出現(xiàn)了大量人臉檢測的方法,簡單地分為兩類:基于特征的方法和基于圖像的方法。前者指以某種特征為最小處理單元,后者指以圖像中的像素為處理單元。但他們都有一些不足。目前認(rèn)為,Pail Viola和Michael Jones在《Rapid object detection using a Boosted cascade of simple features》一文中提出的快速對象識別算法將人臉檢測推向了一個新的高度,他將Adaboost和Cascade算法綜合運(yùn)用到實時人臉檢測系統(tǒng)中,從根本上解決了檢測速度的問題,且具有較好的識別效果。經(jīng)典Adaboost算法是基于Haar特征的,也是目前正確率最高的算法之一。
系統(tǒng)構(gòu)成分為訓(xùn)練和檢測兩大部分,如圖1所示。
(1)訓(xùn)練部分:使用Adaboost算法對預(yù)先收集的正樣本(圖像中含有人臉)和負(fù)樣本(圖像中不含人臉)進(jìn)行處理;從這兩類樣本集中提取特征進(jìn)行計算,生成一個級聯(lián)分類器。級聯(lián)分類器是由若干個強(qiáng)分類器組成的。
(2)檢測部分:使用訓(xùn)練過程中得出的級聯(lián)分類器,按某個策略對待檢測圖像進(jìn)行分析;并對檢測結(jié)果進(jìn)行后處理,最后得出圖像中人臉的位置、大小等參數(shù)。
Paul viola和Michael Jones首先提出了“積分圖”的概念。這使得檢測器中的特征的計算非???。
如圖2所示,像素(x,y)點的積分圖像定義為該點左上方矩形圖像區(qū)域內(nèi)像素點的和,即
這里ii(x,y)指的是積分圖像,i(x,y)是原圖像。使用如下的迭代公式,再遍歷一遍原圖像后可以得到每個像素的積分圖像。
這里s(x,y)是像素的行累加和,并且為了計算方便,定義s(x,-1)=0,ii(-1,y)=0。
利用積分圖像就可以快速地計算上圖的矩形特征,如圖3所示矩形D內(nèi)的像素可以由四個參考矩陣計算得到。位置1的積分圖像是矩陣A的像素和,位置2的是A+B,位置3的是A+C,位置4的是A+B+C+D。所以D的像素和可以由4+1-(2+3)得到。所以二矩陣特征可以通過6個參考矩陣求得,三矩陣特征可以通過8個參考矩陣求得,四矩陣特征可以通過9個參考矩陣求得。
在人臉檢測過程中,需要對候選圖像進(jìn)行分析,判斷是否為人臉,多數(shù)人臉檢測系統(tǒng)都是使用特征對人臉模式進(jìn)行建模,這些特征都應(yīng)有一定的人臉和非人臉的區(qū)分性。Adaboost用于人臉檢測時,需要從人臉中抽取大量的簡單特征。在訓(xùn)練分類器時,利用圖像的特征空間而不是直接的像素灰度分布往往會取得更好的分類效果。因為特征空間會在一個更高維的空間內(nèi)更好地描述圖像的本質(zhì),而這是顯示的圖像本身很難具備的。如圖4就是Paul Viola和Michael Jones提出的4個Haar-like特征。其中a,b表示的是兩個矩形框的Haar-like特征,c表示的是3個矩形框的Haar-like特征,d表示的是4個矩形框的Haar-like特征。每一類矩形的特征值就是用圖中所示的灰色矩形內(nèi)的像素值之和減去白色矩形內(nèi)的像素值之和得到的。
如果圖像是由兩個矩形構(gòu)成的特征,如圖4中的A,可使用4個矩形的積分圖計算黑色框中矩形的像素之和,則可得運(yùn)算式E+A-B+C,而計算白色框中矩形的像素值,則可得運(yùn)算式F+C-D-E,因此僅需A,B,C,D,E,F(xiàn) 6個參考矩形就可計算出期望的特征值,最終特征值的計算表達(dá)式為(F+C-D-E)-(E+A-B-C).
而一幅圖像又有多少矩形特征呢?如果矩形特征原型的寬為w,高為h,圖像的寬為W,高為H,定義:
X=[W/w],Y=[H/h]
并且規(guī)定矩形特征在不同尺度下保持一定的寬高比,那么可以用如下的公式計算除矩形特征的個數(shù):
同理也可以計算出其它矩形特征原型所派生出來的特征值,把他們加在一起,就是整幅圖像所含有的特征值。
Adaboost算法是一種分類器算法。具體來說,Adaboost學(xué)習(xí)算法的核心思想是從一個很大的特征集中選擇很小的一部分關(guān)鍵的視覺特征,從而產(chǎn)生一個極其有效的分類器。它利用大量的分類能力使一般的簡單分類器通過一定的方法疊加起來,構(gòu)成一個分類能力很強(qiáng)的強(qiáng)分類器,再將若干個強(qiáng)分類器串聯(lián)成為分級分類器完成圖像搜索檢測。串聯(lián)的級數(shù)依賴于系統(tǒng)隊錯誤率和識別速度的要求。這種用“分級”來不斷組合成更復(fù)雜的分類器的方法可以使圖像的背景區(qū)域能夠很快地被排除而將更多的計算花費(fèi)在更有希望成為目標(biāo)的區(qū)域。對于每一種特征而言,弱學(xué)習(xí)器決定弱分類器的最佳的門限值,使其具有最小的誤分樣本數(shù)。全部的檢測過程的形式就是這樣的一個退化的決策樹。
其中弱分類器hi(x)由一個特征fi,一個閾值θi,和一個控制不等式方向的pi組成,如下所示:
算法的具體描述如下:
給定樣本圖像集(xi,yi)1,…(xn,yn)n,其中yi=0,1分別對應(yīng)負(fù)樣本和正樣本。
初始化權(quán)重,yi=0時ωi,t=1/(2m),yi=1時ωi,t=1/(2l),其中m,l分別為負(fù)樣本與正樣本的數(shù)量。
對于每個t=1,…,T
(1)權(quán)重歸一化
(2)對于每個特征j,生成對應(yīng)的弱分類器hi,計算相對于當(dāng)前權(quán)重的ωt的錯誤率:
(3)選擇ht,使得εt最小。
(4)更新權(quán)重,wt+1,j=wt,1βt1-ei
式中如果第i個樣本被正確分類,則ei=0,反之ei=1,
(5)最后得到的強(qiáng)分類器為:
級聯(lián)分類器是由多個強(qiáng)分類器組合而成,它的每一層都是由Adaboost算法訓(xùn)練得到的強(qiáng)分類器,從第一層分類器出來的正確結(jié)果觸發(fā)第二層分類器,而從第二層出來的正確結(jié)果將觸發(fā)第三層分類器,以此類推。相反,從任何一個結(jié)點輸出的被否定了的結(jié)果都會導(dǎo)致對這個子窗口的檢測立即停止。通過設(shè)置每層的閾值,使得絕大多數(shù)人臉都能通過,而絕大部分的非人臉不能通過,這樣靠近級聯(lián)分類器后端的層拒絕了大部分的非人臉,其整個過程如圖5所示。
進(jìn)一步的處理可以使用諸如增加其它分級分類器的級數(shù)或者用其它的檢測系統(tǒng)代替等方法。層疊分類器的特殊結(jié)構(gòu)源自人臉檢測時遇到的實際問題,其目的是盡可能使在前面的層拒絕可能多的人臉。
人臉檢測是目前非常前沿的技術(shù),Adaboost算法實現(xiàn)起來比較復(fù)雜,但應(yīng)用OPENCV提供的函數(shù)和分類器進(jìn)行人臉檢測是十分容易的。經(jīng)過編程和調(diào)試后能很好地檢測出人臉。實踐證明Adaboost算法最大的特點就是識別效果好,實時性好,具有極強(qiáng)的實用性。
如圖6所示,通過Adaboost算法進(jìn)行人臉檢測得到人臉檢測效果圖可以進(jìn)行身份識別等。
文章詳細(xì)介紹了Adaboost算法及人臉檢測的檢測方法及基本原理,用積分圖求像素值的方法對其進(jìn)行了說明與擴(kuò)展。分析了Haar-like特征和它構(gòu)造的分類器的算法。該方法從根本上解決了檢測速度的問題,具有良好的應(yīng)用前景。
[1]趙楠.基于Adaboost算法的人臉檢測[D].北京,北京大學(xué)物理學(xué)院物理學(xué)系,2005.
[2]阮秋琦.數(shù)字圖像處理學(xué)[M].北京:電子工業(yè)出版社,2001.
[3]田捷,沙飛,張新生.實用圖像分析與處理技術(shù)[M].北京:電子工業(yè)出版社,1995.
[4]劉文耀等.光電圖像處理[M].北京:電子工業(yè)出版社,2002.