嚴春滿,張昱瑤,張 迪
(西北師范大學物理與電子工程學院,甘肅 蘭州 730070)
人臉檢測與識別是圖像處理領(lǐng)域的熱門研究課題,也是具有挑戰(zhàn)性的計算機視覺問題。人臉作為一種生物特征,能夠直觀地反映個體之間的差異,是進行個人身份識別的載體。人臉識別率容易受到表情、光照變化和年齡等因素[1 - 3]的影響。早在20世紀50年代,學者們就開始關(guān)注人臉識別相關(guān)內(nèi)容的研究。到了60年代,研究人員主要通過分析面部特征點(如眼睛、鼻子和嘴巴)之間的距離和拓撲關(guān)系實現(xiàn)人臉識別[4,5]。這種方法簡單直觀,但識別精度易受影響。1991年,特征臉Eigenfaces[6]算法將人臉圖像投影到低維特征空間,在識別效果上得到有效提升,這一創(chuàng)新思路為后續(xù)的研究奠定了基礎(chǔ)。Belhumeur等[7]提出基于線性判別分析的Fisherface算法,能夠在低維子空間中產(chǎn)生良好的分離效果。2009年,Wright等[8]將稀疏表示應用到人臉識別領(lǐng)域并提出了基于稀疏表示分類的人臉識別SRC(Sparse Representation based Classification)算法,在含噪聲污染及光照變化等復雜環(huán)境下的人臉識別問題上取得了較好的識別率。該算法利用所有樣本來構(gòu)成字典,測試樣本依據(jù)最小殘差分類。與傳統(tǒng)的識別方法相比,SRC無需提取精確的臉部特征,但該算法的字典生成需要用到所有的訓練樣本,當訓練樣本數(shù)量多且圖像的維數(shù)較大時,字典維數(shù)相應增加,導致稀疏分解部分耗時較長。為了解決這一實際問題,又提出了一系列改進SRC的算法。擴展稀疏表示分類ESRC(Extended Sparse Representation-based Classifier)算法在SRC的基礎(chǔ)上構(gòu)造了一個類內(nèi)差異字典,可以與其它類別共享類內(nèi)差異[9]。Deng等[10]提出了一種基于疊加模型的稀疏表示分類SSRC(Superposed Sparse Representation-based Classifier)算法,該算法從每一類的訓練樣本中提取共性特征和相對特征構(gòu)造字典。基于Gabor特征稀疏表示算法GSRC(Gabor-feature based SRC)改善了人臉遮擋情況下的計算復雜度[11]。以上算法在人臉識別問題中取得了較好的識別效果,但當訓練樣本過多時會增加算法的復雜度,占用更多的存儲空間。所以,通過字典學習來解決人臉識別問題受到越來越多研究者的關(guān)注。
目前,字典學習算法主要分為2大類:無監(jiān)督式字典學習和監(jiān)督式字典學習。在無監(jiān)督式字典學習算法中,Engan等[12]提出了最優(yōu)方向方法MOD(Method of Optimal Direction),該方法旨在選擇一個誤差減小最快的最優(yōu)方向,是最早提出的經(jīng)典字典學習方法之一。Aharon等[13]提出了KSVD算法,該算法在最優(yōu)方向方法的基礎(chǔ)上對字典更新階段進行了優(yōu)化。Mairal等[14]提出了Online字典學習算法,獲得了更高的運行速度。與無監(jiān)督式字典學習算法不同,監(jiān)督式字典學習算法在訓練階段用到了樣本的類別標簽信息。 Yang等[15]提出了一種基于 Fisher 判別準則的字典學習FDDL(Fisher Discrimination Dictionary Learning)算法,該算法將 Fisher 判別準則融入到字典學習過程中,學習字典原子與類標簽對應的結(jié)構(gòu)化字典,利用稀疏編碼后的重建誤差進行分類。Zhang等[16]提出了判別KSVD字典學習算法D-KSVD(Discriminative KSVD),該算法將分類誤差引入到目標函數(shù)中來擴展K-SVD算法。Jiang等[17,18]在D-KSVD算法的基礎(chǔ)上進一步提出了標簽一致KSVD字典學習算法LC-KSVD(Label Consistent K-SVD),在判別性字典學習算法的基礎(chǔ)上新增了稀疏碼誤差來提高字典的判別能力,但是該算法只考慮了字典原子的類標特征,而忽略了它們之間的相似性特征,對提高字典的判別性能有限。
本文提出一種基于改進標簽一致KSVD字典學習的算法并應用于人臉識別,在有光照變化的Extend Yale B人臉庫、表情變化以及遮擋影響的AR人臉庫上的實驗結(jié)果表明,本文算法相比于對比算法有較高的識別率,同時對噪聲污染條件下的人臉識別具有較好的魯棒性。
從數(shù)學角度看,稀疏表示是針對不確定方程組Ym×n=Dm×KXK×n求解提出的。當m min‖X‖0 s.t.DX=Y (1) 其中‖X‖0是X的L0范數(shù),表示非零元素的個數(shù)。 在實際應用中,多數(shù)情況下是近似表示的情形,因此把式(1)的求解問題轉(zhuǎn)化為: min‖X‖0 s.t. ‖DX-Y‖2≤ε (2) 其中,ε是與噪聲相關(guān)的參數(shù)。求解min‖X‖0是一個NP-hard問題,L0范數(shù)最小化問題可以近似等價于求解L1范數(shù)的最小化問題,式(2)可以轉(zhuǎn)化為如下形式: min‖X‖1 s.t. ‖DX-Y‖2≤δ (3) 稀疏分解求解分為貪婪算法和凸優(yōu)化算法。貪婪算法有匹配追蹤MP(Matching Pursuit),正交匹配追蹤OMP(Orthogonal Matching Pursuit)等。凸優(yōu)化算法有基追蹤基追蹤BP(Basis Pursuit),同倫算法等。 KSVD算法在字典更新階段的核心思想是使字典中的每一列字典原子都發(fā)揮自身的價值以最小化重構(gòu)誤差,學習到的字典僅用來求解稀疏表示系數(shù),但在分類過程中缺乏判別能力。為了得到一個具有判別性的訓練字典,文獻[17]提出標簽一致KSVD(LC-KSVD)算法,引入了樣本類別標簽,加強了字典原子與標簽之間的對應關(guān)系。另外,在目標函數(shù)中加入了稀疏編碼誤差約束項和分類誤差約束項,最終使學習到的字典同時具有表示和判別能力。 2.2.1 LC-KSVD1 令樣本矩陣Y=[y1,…,yi,…,yN],yi表示第i個樣本,字典D=[d1,…,dk,…,dK],K表示字典原子總數(shù),dk表示字典中的第k列原子。分類器的性能取決于稀疏編碼的判別性,為了得到具有判別性的稀疏編碼,LCKSVD1的目標函數(shù)定義如式(4)所示: s.t. ?i,‖xi‖0≤T (4) 2.2.2 LC-KSVD2 為了得到更有利于分類的字典,LC-KSVD2在目標函數(shù)中添加了分類誤差項,相比較于LC-KSVD1,新引入了線性預測分類器f(X;W)=WX,目標函數(shù)如式(5)所示: s.t. ?i,‖xi‖0≤T (5) KSVD算法能夠同時找到所有參數(shù)的最優(yōu)解,式(5)可以被重新寫為: s.t. ?i,‖xi‖0≤T (6) s.t. ?i,‖xi‖0≤T (7) 在字典更新階段,KSVD算法采用奇異值分解SVD(Singular Value Decomposition)的方法隨機更新字典的某一列原子,式(7)可以寫為: (8) (9) 其中,U是主成分矩陣,Λ是特征值矩陣,將Λ中最大的特征值對應的U中的特征向量作為字典原子dk的更新。 算法1改進標簽一致KSVD字典學習的人臉識別算法 輸入:訓練樣本Y={yi},i=1,…,N,判別矩陣Q,樣本類別標簽矩陣H,稀疏閾值T,控制參數(shù)α,β。 輸出:字典D,線性變換矩陣A,分類器參數(shù)W,識別率。 Step1初始化得到D0,A0,W0,設(shè)定參數(shù)值α,β。根據(jù)KSVD算法分別計算每一類圖像的初始字典,合并得到D0,求解稀疏表示系數(shù)X0,采用多元脊線回歸模型初始化: Step2根據(jù)改進的LC-KSVD字典學習過程計算Ynew和Dnew,然后分離出D=[d1,…,dK],A=[a1,…,aK]和W=[w1,…,wK]: Step4輸入測試樣本yj; AR人臉庫包含了來自126個人超過4 000幅的正面人臉圖像,每個人有26幅圖像,每幅圖像的尺寸為165×120,分別在不同光照變化、表情以及面部遮擋條件下拍攝,遮擋包括墨鏡(眼鏡)遮擋和圍巾遮擋,分2個時期采集,每個時期13幅,包括7幅具有表情和光照變化圖像,6幅遮擋圖像,AR人臉庫中部分人臉圖像如圖1所示。 Figure 1 Some face samples in the AR database圖1 AR人臉庫中部分人臉圖像 本節(jié)實驗選擇100人的圖像庫(50名男性,50名女性),共計2 600幅圖像進行實驗,將每幅圖像的大小標準化為55×40。進行以下3組實驗(重復5次,取平均值作為最終的識別率): (1)關(guān)鍵參數(shù)選取。式(5)中參數(shù)α和β是2個相互獨立的控制參數(shù)。α調(diào)節(jié)目標函數(shù)中稀疏編碼誤差項所占比重,β調(diào)節(jié)分類誤差。當β=0時,即為2.2.1節(jié)中的LC-KSVD1。顯然,不同的α值和β值對算法性能有不同的影響,為了探討參數(shù)α和β對實驗結(jié)果的影響,分別選取不同值進行對比實驗,結(jié)果如圖2所示。從圖2中可以看出,α和β分別取4和2時,算法識別率較好。 Figure 2 Recognition results on AR database with different parameters α and β圖2 AR人臉庫上取不同參數(shù)值α,β時的識別結(jié)果 (2)為驗證不同的訓練樣本數(shù)對于識別率的影響,從每類人臉圖像中隨機抽取p(p=10,13,16,19,22)幅共5組組成訓練集,剩余樣本組成測試集。本文算法對比經(jīng)典的SRC算法、Fisherface算法、KSVD算法以及識別率較好的LC-KSVD2算法,表1為5種算法在不同的訓練樣本數(shù)下的識別率。 Table 1 Recognition results on AR dataset with different training samples (3)字典大小的設(shè)置也會對識別率產(chǎn)生影響,當字典原子數(shù)較少時,不能充分反映訓練樣本的信息,字典原子較多時也會消耗時間和占用資源。第3組實驗隨機選擇每人22幅圖像組成訓練集,剩下樣本組成測試集,總共訓練樣本2 200幅,測試樣本400幅。分別設(shè)置字典大小為100,200,300,400,實驗結(jié)果如表2所示。 Table 2 Recognition results on AR dataset with different dictionary sizes 從表1和表2的對比結(jié)果可以看出,KSVD算法在對比實驗中識別率最低,因為KSVD算法學習到的字典在分類中沒有判別能力。當訓練樣本數(shù)取最小(10)時,LC-KSVD和本文算法識別率明顯高于其他對比算法的,隨著訓練樣本數(shù)的增加,各算法識別率呈上升趨勢。對于數(shù)量不同的訓練集,本文算法都有著較高的識別率。表2的結(jié)果表明,字典越大,識別率越高,因為字典中囊括不同類別的訓練樣本圖像越多,張成的類別子空間越準確。在固定訓練集樣本數(shù)只改變字典大小的實驗中,再一次驗證本文算法在字典大小取值一致的情況下識別率依然高于其他對比算法的。 根據(jù)本節(jié)實驗2和實驗3結(jié)果可知,本文算法對含表情、遮擋變化的人臉圖像有較好的識別率。 Extended Yale B人臉庫包含38人(包括男性人臉和女性人臉),每類64幅人臉樣本圖像,一共2 432幅,分別為不同光照條件下大小為192×168的圖像。Extended Yale B人臉庫中部分人臉圖像如圖3所示。與4.1節(jié)一樣,本節(jié)進行3組實驗。 Figure 3 Some face samples in the Extended Yale B database圖3 Extended Yale B人臉庫中部分人臉圖像 (1)同樣進行關(guān)鍵參數(shù)的對比實驗,通過分別選取不同的α和β值進行對比,結(jié)果如圖4所示,結(jié)果表明:α取4或5,β取2時,實驗識別率較高。 Figure 4 Recognition results on Extended Yale B dataset with different parameters α and β圖4 Extended Yale B人臉庫上取不同參數(shù)值α,β時的識別結(jié)果 (2)依次從每個人臉圖像中隨機抽取p(p=30,40,50,60)幅圖像組成訓練集,剩余樣本組成測試集。表3顯示的是不同算法在Extended Yale B人臉庫上的識別率情況。 Table 3 Recognition results on Extended Yale B dataset with different training samples (3)隨機選擇每人60幅圖像組成訓練集,分別改變字典大小為100,200,300,400,實驗結(jié)果如表4所示。 Table 4 Recognition results on Extended Yale B dataset with different dictionary sizes 實驗結(jié)果表明,在有不同的光照影響的人臉庫上,本文算法在改變訓練樣本數(shù)量和改變字典大小的實驗中都表現(xiàn)出較好的識別性能。隨著訓練樣本數(shù)量的增加,改進算法的識別率保持上升的趨勢,反映出改進算法識別性能穩(wěn)定,具有較好的字典學習效果。 為全面評估本文改進算法的性能,對Extended Yale B人臉庫中的圖像分別添加了如圖5所示不同等級的椒鹽噪聲(10%,20%,30%,40%),進行噪聲對比實驗。實驗時,分別從每個人的全部人臉圖像中隨機抽取30幅組成訓練集,剩余圖像組成測試集,在4.2節(jié)實驗的基礎(chǔ)上,取字典大小為400,α和β的值為4和2。圖6給出了在固定訓練樣本數(shù)的情況下,本文算法與其它4種對比算法隨噪聲等級變化的識別率對比曲線。從圖6中可以看出,在噪聲等級較小時,本文算法與對比算法識別率接近,隨著噪聲等級逐漸加大,本文算法在噪聲環(huán)境下有一定的魯棒性。 Figure 5 Samples with different noise levels圖5 不同噪聲等級下的樣本圖像 Figure 6 Recognition results with different noise levels圖6 不同噪聲等級下的識別率 本文提出一種基于改進標簽一致KSVD字典學習算法并應用于人臉識別。用主成分分解的方式提取其主成分分量,作為字典中每列原子的更新,代替了字典學習過程中對殘差項進行K次奇異值分解的方式,再利用學習到的具有表示和判別能力的字典對樣本進行分類。在人臉圖像存在遮擋、光照和表情變化等復雜情況下的AR和Extend Yale B人臉庫上的實驗結(jié)果表明,本文算法有著較高的識別率。同時,噪聲實驗表明本文算法在噪聲存在的情況下依然保持較好的魯棒性。2.2 標簽一致字典學習算法
3 改進標簽一致字典學習算法
4 實驗與結(jié)果分析
4.1 AR人臉庫實驗
4.2 Extended Yale B人臉庫實驗
4.3 噪聲環(huán)境實驗
5 結(jié)束語