楊 磊
(山西大同大學(xué)物理與電子科學(xué)學(xué)院,山西大同 037009)
人臉檢測(cè)憑借其在身份驗(yàn)證系統(tǒng)、人機(jī)交互系統(tǒng)、公共安全系統(tǒng)識(shí)別等方面的巨大應(yīng)用前景而逐漸成為人工智能領(lǐng)域的一個(gè)研究熱點(diǎn)。目前,雖然人臉檢測(cè)技術(shù)研究已取得了一定的成果,但是在實(shí)際運(yùn)用中仍存在諸多較為復(fù)雜的問題,比如:有些人臉具有遮擋物,如眼鏡、圍巾等,這些必然會(huì)對(duì)人臉檢測(cè)的結(jié)果造成一定的干擾;成像角度不同,如正臉、側(cè)顏等;光照角度不同,如光源的方向、角度、強(qiáng)弱等因素均會(huì)產(chǎn)生影響;不同算法還存在精確度的差別等。
人臉部信息的處理與分析技術(shù)包含人臉檢測(cè)、人臉識(shí)別、人臉定位、身份判斷等要素。其中,人臉檢測(cè)在內(nèi)容檢索,圖像處理等領(lǐng)域具有很強(qiáng)的實(shí)用價(jià)值;人臉檢測(cè)技術(shù)在人機(jī)交互、移動(dòng)支付等方面的應(yīng)用達(dá)到了新的高度。人臉檢測(cè)技術(shù)研究主要分為以下三個(gè)部分:
首先是樣本的選取,人臉樣本的選取是關(guān)鍵,由于像素大小不同、光線強(qiáng)弱差距、背景環(huán)境復(fù)雜程度均會(huì)引起實(shí)驗(yàn)誤差。同時(shí),訓(xùn)練樣本數(shù)量龐大,無法及時(shí)找出不合格的樣本,耗費(fèi)大量實(shí)驗(yàn)時(shí)間,所以需要對(duì)樣本進(jìn)行篩選。通過在同等采樣條件下進(jìn)行多組頭像照片的信息采集,構(gòu)建滿足實(shí)驗(yàn)要求的數(shù)據(jù)庫。對(duì)采集照片進(jìn)行裁剪后使其像素為20 × 20,然后進(jìn)行統(tǒng)一灰度化處理。實(shí)驗(yàn)所需的人臉樣本數(shù)據(jù)庫如圖1所示。
圖1 人臉樣本數(shù)據(jù)庫
實(shí)驗(yàn)所需的非人臉樣本數(shù)據(jù)庫如圖2所示。
圖2 非人臉樣本數(shù)據(jù)庫
其次是訓(xùn)練樣本,將提前選取好的人臉樣本與非人臉樣本進(jìn)行分類標(biāo)記,并利用MATLAB 軟件[1]通過Haar-like 模型積分圖[2]轉(zhuǎn)換實(shí)現(xiàn)AdaBoost 算法[3]。明確人臉為正樣本,非人臉為負(fù)樣本,利用選擇的算法對(duì)樣本進(jìn)行訓(xùn)練,通過多次迭代訓(xùn)練,結(jié)果會(huì)依據(jù)權(quán)值不同形成強(qiáng)分類器。
最后是檢測(cè)部分,針對(duì)一副目標(biāo)圖片(可以不包含人臉),同樣要轉(zhuǎn)化為該圖的積分圖,然后經(jīng)過特征值的計(jì)算、匹配,會(huì)產(chǎn)生一個(gè)結(jié)果。如果找到人臉,會(huì)將圖片中的人臉用框子框起來。若沒有找到人臉,則返回沒有找到。
1.1.1 基于先驗(yàn)知識(shí)的檢測(cè)方法
人臉特征[4]是根據(jù)先前經(jīng)驗(yàn)的積累或人們所達(dá)成的共識(shí)來指定出一些規(guī)范:人臉是具有輪廓的,人的臉部器官分布是具有規(guī)律的,鼻子的高度不會(huì)超過眼睛,嘴巴的寬度不會(huì)長于兩眼角之間的距離,人臉器官分布遵循軸對(duì)稱性。
基于先驗(yàn)知識(shí)方法存在人臉檢測(cè)成功率較低,如果背景區(qū)域復(fù)雜或者存在與人臉區(qū)域十分相似的地方,則一定會(huì)導(dǎo)致誤檢,描述該方法的算法不易設(shè)計(jì)。
模板匹配的檢測(cè)方法是需要提前存儲(chǔ)一些人臉模板作為統(tǒng)一標(biāo)準(zhǔn),如圖3所示。但其缺點(diǎn)是檢測(cè)前需要根據(jù)待測(cè)人物的臉型對(duì)模板的輪廓進(jìn)行修正。一旦檢測(cè)對(duì)象變換了,人臉模板也需要跟著替換,耗費(fèi)大量的時(shí)間和精力。基于模板匹配的人臉檢測(cè)方法能夠和其他方法搭配混合使用從而提高檢測(cè)率,達(dá)到高效、便捷的目的。
圖3 模板匹配人臉板塊圖
1.1.2 基于統(tǒng)計(jì)原理的檢測(cè)方法
隨著深度學(xué)習(xí)方法和人工智能的廣泛應(yīng)用,不論是在高新科技領(lǐng)域還是日常生活中,基于深度神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)技術(shù)已經(jīng)漸漸成熟。
BΡ 神經(jīng)網(wǎng)絡(luò)[5]是含有2 層隱藏層的反向傳輸結(jié)構(gòu)。包含輸入層,輸出層,卷積層,激勵(lì)函數(shù),隱藏層,如圖4 所示。理想的激活函數(shù)是階躍函數(shù),階躍函數(shù)具有不連續(xù)、不光滑的特點(diǎn),所以經(jīng)常用Sigmoid 函數(shù)作為激活函數(shù),如圖5 所示。則整個(gè)網(wǎng)絡(luò)可以構(gòu)建出一個(gè)數(shù)學(xué)模型:yi=f(∑iωixi-θj)。
圖4 BΡ網(wǎng)絡(luò)結(jié)構(gòu)
圖5 Sigmoid函數(shù)
1.2.1 基于直方圖粗分割的人臉檢測(cè)算法
基于直方圖粗分割[6]的人臉檢測(cè)算法是根據(jù)人臉統(tǒng)一灰度的特殊模式以及眼、口、鼻的結(jié)構(gòu)分布特點(diǎn)而設(shè)計(jì)的。具體步驟如下:
第一:利用一維正太分布函數(shù)對(duì)直方圖h(x)進(jìn)行平滑處理。
(1)構(gòu)造一維正太分布模板
(2)利用該模板對(duì)直方圖進(jìn)行卷積運(yùn)算
(3)對(duì)卷積結(jié)果做二次差分運(yùn)算
(4)求峰值的集合{xi|φ'(x)=0,φ″(x)<0},并令K=|{xi} |,根據(jù)φ(x)的結(jié)果估算σi,從而算得灰度區(qū)間。
第二:定位雙眼。
(1)根據(jù)每段定位區(qū)間(x-3σi,x+3σi),i=0,1,2…k-1,對(duì)圖像進(jìn)行分割能得到N種可能值。
(2)根據(jù)人眼處灰度平均值與眼四周灰度平均值不同的特點(diǎn),可以將近似人眼區(qū)域選出保存,進(jìn)行下一步的驗(yàn)證。
第三:根據(jù)奇異值特征進(jìn)行人臉檢測(cè)驗(yàn)證。
由于人臉樣本的特征值與非人臉樣本的特征值具有較大差距,所以這是一種很好的評(píng)判人臉與非人臉的方法。
1.2.2 基于AdaBoost的人臉檢測(cè)算法
Viola 和Jones 提出了基于Haar-like 模型積分圖計(jì)算的AdaBoost 人臉檢測(cè)算法,將人臉膚色特征與AdaBoost 算法[5]結(jié)合,同時(shí)囊括了人臉特征的要素,準(zhǔn)確定位了人臉的位置。檢測(cè)效率高以及抗噪性能強(qiáng)是他的較為突觸的優(yōu)點(diǎn)。該方法的具體流程圖如圖6所示:
圖6 基于Adaboost算法的人臉檢測(cè)流程圖
第一:膚色區(qū)域檢測(cè)。對(duì)膚色進(jìn)行簡(jiǎn)單處理,可以得到期望的檢測(cè)結(jié)果。
式(4)中的各參量都有確定的值,若滿足上式,則認(rèn)為它是要尋找的點(diǎn),找到的點(diǎn)標(biāo)記為1,未找到的點(diǎn)標(biāo)記為0。
第二:人臉區(qū)域分割。由于人臉與人眼的灰度值相差比較大,眼睛的灰度值較低。根據(jù)整個(gè)人臉的色彩以及亮度區(qū)分出人臉的區(qū)域。
第三:人臉區(qū)域分類。利用AdaBoost 算法在MATLAB 中將人臉和非人臉樣本進(jìn)行積分圖的轉(zhuǎn)換,高效計(jì)算出特征。最終把弱分類器以不同權(quán)值的方式組合在一起形成強(qiáng)分類器。
訓(xùn)練樣本的目的是能夠生成相應(yīng)的學(xué)習(xí)器,從適合的訓(xùn)練樣本中獲得可靠的學(xué)習(xí)能力。ΡAC 學(xué)習(xí)可以衡量學(xué)習(xí)能力優(yōu)劣。
2.1.1 ΡAC可學(xué)習(xí)(ΡAC Learnable)
對(duì)0 <ε,σ<1,所有c∈C和分布D,若存在學(xué)習(xí)算法L,其輸出假設(shè)h∈H(假設(shè)空間)應(yīng)該滿足:
則稱L能從H中辨識(shí)到C。
令m表示從分布D中獨(dú)立同分布采樣得到的樣例數(shù)目,0 <ε,σ<1,對(duì)所有的分布D,若存在學(xué)習(xí)算法L和多項(xiàng)函數(shù)poly(.,.,.,.),使得對(duì)于任何m滿足
式(6)表明學(xué)習(xí)算法L能夠從規(guī)定樣本中得到一個(gè)成功的映射,稱概念類C是可學(xué)習(xí)的[7]。滿足(式6)中最小的m,稱為學(xué)習(xí)算法L的樣本復(fù)雜度。
2.1.2 ΡAC模型描述
ΡAC 理論[8]的核心在于如何從虛擬的H空間獲得映射h。
如圖7 所示,ΡAC 學(xué)習(xí)時(shí)需要規(guī)定基本條件,即概念類C、準(zhǔn)確度ε、置信度δ以及分布D 和目標(biāo)概念C。由學(xué)習(xí)器向樣本序列發(fā)送請(qǐng)求信號(hào),樣本產(chǎn)生器響應(yīng),發(fā)出樣本序列供學(xué)習(xí)器訓(xùn)練。最終以學(xué)習(xí)器得到的結(jié)果為標(biāo)準(zhǔn),與準(zhǔn)確度,置信度進(jìn)行比對(duì),若滿足條件則為ΡAC可學(xué)習(xí)。
圖7 ΡAC學(xué)習(xí)模型描述
ΡAC 學(xué)習(xí)可以允許學(xué)習(xí)結(jié)果出現(xiàn)有錯(cuò)誤的存在,只需要滿足E(h)≤ε。同時(shí)ΡAC 學(xué)習(xí)也不要求所得結(jié)果對(duì)于所有的樣本都能達(dá)到理想的要求,只需要小于置信度δ。
2.2.1 特征計(jì)算方法
積分圖的運(yùn)算過程就是用矩形特征的淺色區(qū)域所有像素和減去深色區(qū)域的像素和,如圖8所示。
圖8 Haar-like特征
圖9 區(qū)域積分圖
Haar-like 特征的數(shù)量是相當(dāng)龐大的,例如:?jiǎn)我痪匦问亲畛R姷腍aar-like 模型,單一矩形(0 度傾角)特征的數(shù)量為:
式中:W表示寬;H表示長。
式中:X是指特征模板在水平的最大比例;Y表示垂直方向最大的比例。而45度的特征數(shù)量為:
其中
2.2.2 積分圖
要求點(diǎn)(x,y)的積分圖SAT(x,y),即:
式中:I(x,y)表示圖像(x,y)位置的像素值。那么積分圖的結(jié)果可以通過不斷地迭代的方式來實(shí)現(xiàn):
可知,特定積分圖的獲得可以通過計(jì)算矩形區(qū)域像素的和來實(shí)現(xiàn):
已知矩形窗口D的四個(gè)頂點(diǎn)用a、b、c、d來表示,則D的像素和為:
給定一個(gè)訓(xùn)練數(shù)據(jù)集:
第一步:獲得樣本權(quán)值。
第二步:進(jìn)行多輪迭代,用m=1,2,…,M表示迭代的第多少輪。
(a)使用Dm的樣本學(xué)習(xí),可以得到弱分類器:
(b)計(jì)算函數(shù)Gm(x)的誤檢率[22]:
可知,樣本更新的權(quán)值隨著誤檢率的減小而增大,換言之,在強(qiáng)分類器的構(gòu)成中檢測(cè)率越高的弱分類器權(quán)重越大。
(d)更新訓(xùn)練數(shù)據(jù)集的權(quán)值分布,用于下一輪迭代
分類錯(cuò)誤的樣本會(huì)在下一次訓(xùn)練中權(quán)值增大,更容易被選取,而被正確分類樣本則相反。從而使得AdaBoost 算法能著力于那些被分類不準(zhǔn)確的樣本上。
第三步:組合各個(gè)弱分類器:
從而得到最終的分類器:
圖10中將人臉檢測(cè)分為訓(xùn)練部分與檢測(cè)部分。
圖10 人臉檢測(cè)算法流程圖
訓(xùn)練部分:將篩選好的人臉樣本與非人臉樣本分類標(biāo)記(人臉樣本標(biāo)記為1,非人臉樣本標(biāo)記為0),并在MATLAB 中實(shí)現(xiàn)積分圖的轉(zhuǎn)換,求取各類Haarlike 模型的特征數(shù)目。利用樣本特征值,依據(jù)所選算法進(jìn)行弱分類器的訓(xùn)練。最后按照分類水平高則機(jī)器權(quán)重越高的思想組成強(qiáng)分類器。
檢測(cè)部分:將要檢測(cè)人臉的圖片輸入到程序中,同樣的,需要轉(zhuǎn)換為積分并且計(jì)算特征值。將結(jié)果與人臉樣本集輸出的結(jié)果進(jìn)行比對(duì)。如果在圖片中找到人臉,那么程序會(huì)將圖片中的人臉用方框框起來。若沒有找到人臉,則輸出無。
弱分類器訓(xùn)練的目的就是從具有簡(jiǎn)單能力的機(jī)器中獲得多個(gè)具有優(yōu)良性能的、可以稍微提高判斷能力的機(jī)器。
式中:hj(x)就是要訓(xùn)練的弱分類器的結(jié)果,如果特征值(fi(x))與偏置位(p)i的乘積小于判斷閾值(θ)i與偏置位(pi)的乘積,那么稱弱分類器訓(xùn)練有效。其他結(jié)果出現(xiàn),弱分類器均訓(xùn)練無效。pi起到控制不等號(hào)方向的作用。
獲取性能優(yōu)良的弱分類器,核心在于判斷閾值的設(shè)置,而判斷閾值的選擇來源于特征值的計(jì)算,所以說找到快速計(jì)算特征值的方式,是訓(xùn)練弱分類器成功關(guān)鍵。
設(shè)置以下四個(gè)概念:
(1)所有人臉樣本的權(quán)重之和T+;
(2)所有非人臉樣本的權(quán)重之和T-;
(3)先前的人臉樣本的權(quán)重之和S+;
(4)先前的非人臉樣本的權(quán)重之和S-;
基于上述四個(gè)概念,可以求得弱分類器的系統(tǒng)誤差函數(shù)(平均錯(cuò)誤率)如下:
通過對(duì)誤差函數(shù)的比對(duì),挑選出最優(yōu)秀的弱分類器,組成強(qiáng)分類器。
第一步:定義有N個(gè)訓(xùn)練樣本(x1,y1),(x2,y2),...,(xn,yn),其中yi表示樣本分類。yi=1 為正樣本,yi=0 為負(fù)樣本。
第二步:經(jīng)過T次迭代,最終算得最佳弱分類器集合hj(x)。第一次運(yùn)行的步驟:
(1)令初始化權(quán)值為wj,k;
(3)求得樣本特征值與閾值的偏差,即錯(cuò)誤率:
(5)獲得的強(qiáng)分類器[28]H(x)結(jié)果如下:
將原尺寸的圖像按比例縮小,經(jīng)過Haar-like 特征值提取,積分圖的計(jì)算求得圖片特征值。迭代T次,訓(xùn)練樣本獲得弱分類器,將弱分類器按照性能優(yōu)劣組合成強(qiáng)分類器。從而對(duì)于一幅隨機(jī)圖片能夠檢測(cè)出人臉,如圖11所示。
圖11 人臉檢測(cè)流程圖
采用AdaBoost 算法和MATLAB 軟件平臺(tái)進(jìn)行人臉檢測(cè)。檢測(cè)過程中需要進(jìn)行人臉樣本和非人臉樣本的采集、特征值和積分圖的求解、訓(xùn)練強(qiáng)弱分類器等,通過分類器優(yōu)化訓(xùn)練使其敏感性、檢測(cè)率有所提高,誤檢率減低,實(shí)驗(yàn)結(jié)果能夠?qū)崿F(xiàn)較高檢測(cè)效率和較快檢測(cè)速度,應(yīng)用于智能安防有一定的現(xiàn)實(shí)意義。