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