白燕
(四川大學計算機學院,成都 610065)
人工智能科學的產(chǎn)生要求計算機在觀察和尋找信息時具有主觀能動性,這就使得機器視覺的地位變得舉足輕重,而人臉視覺分析處理作為機器視覺的重要任務,越來越受到人們的關注和重視。當圖像處理的技術發(fā)展日趨成熟時,人臉檢測的應用隨之擴大化,在監(jiān)獄管理、海關身份認證、公安系統(tǒng)、治安監(jiān)控、視頻會議以及智能身份證等方面均得到重要應用。當前人臉檢測的主要研究難點是:如何在人臉多樣性的前提下,創(chuàng)建準確分布模型;如何在復雜背景中準確保留人臉區(qū)域;如何在人臉多樣性前提下提高系統(tǒng)識別率,使人臉檢測更加集中快速以適應社會高實時性的要求。
人臉作為一種復雜結構,臉部的細節(jié)千變萬化,因為膚色、形狀等的不同,而且可能有胡須、口罩、眼鏡、等人為所加的物品,同時人臉也可能會受光照的影響,所以人臉的模式經(jīng)常變化。在這種情況下,如果可以解決上述難題,開發(fā)出一個非常優(yōu)秀而實用的人臉檢測系統(tǒng),將具有非常巨大的價值和重要的意義。目前對靜態(tài)圖像的人臉檢測有四種基本方法,分別是:基于知識的方法(Knowledge-based Methods)、基于特征不變的方法(Feature Invariant Approaches)、基于模板匹配的方法(Template Matching Methods)、基于外觀的方法(Appearance-based Methods)。本文所述的基于Ada-Boost的人臉檢測算法就屬于所列的第二類——基于特征不變的方法,該算法在檢測速度、準確性等方面具有一定的優(yōu)勢。
AdaBoost算法作為Boosting算法的后續(xù)發(fā)展,是Boosting算法經(jīng)過改進得到的[1],它具有自適應的特點。AdaBoost算法的自適應性表現(xiàn)在它不需要預先知道其中弱分類器的分類誤差,它是由大量弱分類器組成的強分類器分類效果的好壞來決定組成強分類器的所有弱分類器的分類效果,這樣就可以探究出利用弱分類器進行分類泛化和推廣的能力。具體來說,就是從一個較大的特征中選擇少量關鍵的特征(被選取的特征應該同時滿足以下兩個特性:強獨立性及對特征具有較強的區(qū)分程度)使其變?yōu)橐粋€能夠高效進行分類的高強分類器,然后再通過一級一級聯(lián)結的方式將各個單個的高強分類器聚合為級聯(lián)分類器,從而致使圖像的背景極快的被丟棄,然后便可在圖像的可能存在區(qū)域進行相應較多的計算[2]。
這種方法的突出貢獻在于:其一,它引入一種新的圖像表示方法——積分圖,利用積分圖可快速判別出人臉檢測時所用的特征;其二,AdaBoost算法的優(yōu)點,就是能夠從一個大的特征中進行選擇,然后它會集中其中一小部分關鍵的特征來生成一個簡單有效的分類器;其三,有很多時間來計算人臉區(qū)域,因為用級聯(lián)方式來構建分類器最大的好處就是區(qū)分背景非??臁?/p>
近年來,AdaBoost算法已成為檢測技術中最流行的Boosting算法,在所有的模式識別算法中,此算法也比較流行,這是首個具有實時性的檢測方法,它的這一優(yōu)點,激勵了人們在實時性的人臉檢測算法方面的研究。2001年Viola和Jones[3]初步構建了一個基于Ada-Boost算法的用于人臉檢測的系統(tǒng)框架,這個框架在高速處理圖像的同時還具有較高的檢測率。2002年Stan Z.Li[4]提出一種FloatBoost多視角的方法,這種算法同基于AdaBoost的算法相比,能利用較少的弱分類器達到與AdaBoost算法一樣或更高的分類正確率。2007年,Duy-Dinh.Le和 Shin’ichi.Satoh[5]提出了 Ent-Boost算法,該方法是通過一種度量——熵來學習弱分類器,信息熵用來確定最優(yōu)分類區(qū)間的數(shù)目,利用Ent-Boost方法訓練的強分類器具有較好的分類能力。經(jīng)過多年的發(fā)展,基于AdaBoost的檢測算法不斷優(yōu)化,檢測率得到很大的提高。
AdaBoost算法選擇使用Haar-like特征,它是由臉部的灰度分布特征決定的,Haar-like特征是計算機視覺領域一種比較常用的特征描述算子,具有提取速度快、計算比較簡單的特點,一般應用于灰度圖像中,是基于積分圖的特征。AdaBoost算法首先提取圖像中的Haar-like特征,再通過訓練從中選出最優(yōu)的Haar-like特征,然后將訓練得到的相應特征轉換為弱分類器,最后再將上述弱分類器進行相應的優(yōu)化組合,最終用于檢測。
在基于AdaBoost的人臉檢測方法中最常用的是Haar-like特征[6],Haar-like特征是一種類似于Haar小波的簡單矩形特征,共有三種類型:邊緣特征、線性特征和中心特征,如圖1所示,特征模板中包含黑色與白色兩種矩形,特征值為白色矩形減去黑色矩形的值,體現(xiàn)了圖像的灰度變化。
(1)邊緣特征
(2)線性特征
(3)中心特征
圖1 Haar-like特征
所有的矩形特征都可以用r=(x ,y,w,h,α )這個五元組來表示,其中x,y為坐標軸的基坐標,w表示該矩形特征的寬,h則為高,而α是旋轉的角度。
鑒于矩形特征太多,而求算相應特征值也很麻煩,因此我們利用積分圖以達到快速計算的目的,此方法的優(yōu)點是不用再次計算所測區(qū)域的像素和,積分圖如圖2所示。
(1)傾角為0度的矩形特征的SAT( )x,y計算公式以及像素和Rectsum(r)的計算公式為:
其中I(x',y')表示像素點(x',y')的像素值。
(2)旋轉角度為45度的矩形特征的TSAT(x ,y)計算公式以及像素和Rectsum(r)的計算公式為:
圖2 積分圖
矩形特征數(shù)量和特征值被確定之后,我們需要對每一個特征 f訓練出一個弱分類器,定義一個弱分類器h(x ,f,p,θ),找出 f的最優(yōu)解,使得這個弱分類器對所有的訓練樣本的分類誤差最低。
其中x是待檢子窗口,f(x)是計算特征值的函數(shù),θ是通過訓練得到的特征值的閾值,p表示不等式的方向,取值為+1或-1。
(1)h(x ,f,p,θ)是弱分類器的學習算法,T是循環(huán)迭代次數(shù)。
(2)用下面的公式對所有樣本權值初始化
其中m為人臉樣本,l為非人臉樣本的數(shù)目。
(3)for t=1:T
①調用上面的弱分類器的學習算法,計算加權分類的誤差,據(jù)此選取一個弱分類器并記錄其相應的特征:f,p,θ。
②定義hi(x)=h(x,fi,pi,θi),其中 fi,pi,θi是 εi的最小化因子。
③令:
④更新權重:
AdaBoost算法因為采用了分類器的級聯(lián)而有效提升了系統(tǒng)效率,它能夠保證較快排除非人臉區(qū)域。AdaBoost算法具備速度快與精度高等優(yōu)點,系統(tǒng)性能總體十分良好,穩(wěn)定性也很高,但是也有較為明顯的缺點,例如用弱學習算法進行訓練分類器的時候,花費了大量的時間計算矩形特征值,時間復雜度比較高,若對訓練過程進行優(yōu)化會提高檢測效率,同時對噪聲極為敏感,在有背景復雜干擾時,檢測能力比較差。表1為在不同實驗環(huán)境下本算法檢測人臉的實驗結果,效果良好。表2為相同實驗環(huán)境下本算法與其他幾種經(jīng)典算法實驗結果對比,可以看出,基于AdaBoost的檢測方法相比其他算法檢測速度快,準確率高,綜合性能良好。
表1 部分實驗結果
表2 幾種方法實驗結果比較
在人臉檢測技術的發(fā)展歷程中,基于AdaBoost的算法一直是受人矚目的,它的高效優(yōu)越性能使得實時檢測得以實現(xiàn),因此在近年來被很多研究者青睞[7]。在速度和精度方面,精度的研究己經(jīng)具有較成熟的理論和模型,亦可達到良好的效果,而速度的研究則在很長一段時間內成為人臉檢測相關領域的研究熱點?,F(xiàn)在的研究方向一般集中在保證檢測系統(tǒng)精度和穩(wěn)定性的情況下,提高系統(tǒng)速度以達到實時檢測的目標。系統(tǒng)速度通常包括訓練和檢測兩個部分,而AdaBoost算法的檢測速度非常快,已能夠進行實時的檢測[8]。
隨著經(jīng)濟社會的發(fā)展,人們對人臉檢測在安全、快速、高效等方面的要求越來越高,大量有關算法陸續(xù)被提出,人臉檢測系統(tǒng)的研究也愈來愈深入。為了建立更完美更可行的人臉檢測系統(tǒng),達到通過人臉高效識別身份的目的,筆者認為以下幾個方面值得繼續(xù)深入研究:在單一的環(huán)境下檢測人臉很簡單,但是在各種復雜背景和不同光照的情況下精確檢測人臉卻很困難很復雜,如何找到這樣的方法是一個值得研究的問題;可以建立由更多人臉樣本組成的人臉數(shù)據(jù)庫,幫助解決更復雜的問題;在人臉檢測的過程中,可以把人臉與語音、指紋、虹膜等其他特征結合起來,成為一種新的身份鑒別方法,以此更精確地識別身份。