周 洋, 宋長明
(中原工學(xué)院 理學(xué)院, 河南 鄭州 450007)
人臉識別是圖像識別中研究最為廣泛的一種技術(shù),它通過比對人的臉部特征信息實現(xiàn)身份識別。但是,在光照、遮擋和采樣不足等情況下,傳統(tǒng)方法的人臉識別效果較差。因此,提高光照、遮擋和采樣不足等情況下人臉識別算法的性能具有現(xiàn)實意義。
當(dāng)前,稀疏表示方法在人臉圖像識別領(lǐng)域得到了廣泛研究[1-2]。WRIGHT等在2009年提出基于稀疏表示的分類(Sparse Representation-based Classification,SRC)框架[3],將稀疏表示成功引入圖像識別領(lǐng)域。該算法以訓(xùn)練圖像作為基準(zhǔn)字典,采用稀疏表示對測試圖像進行分類,能夠較好地識別受噪聲和遮擋等因素干擾的人臉圖像。在WRIGHT等研究的基礎(chǔ)上, DENG等在2012年提出了ESRC(Extended Sparse Representation-based Classification)算法[4]。該算法除基準(zhǔn)字典外,以訓(xùn)練圖像和測試圖像之間可能的誤差作為輔助字典,提高了采樣不足情況下人臉識別算法的性能。2018年,DENG等受線性判別分析的啟發(fā),提出疊加線性表示分類(Superposed Linear Representation Classification,SLRC)的人臉識別算法[5]。該算法將測試樣本表示為類中心矩陣和類內(nèi)變化矩陣的疊加,有效地提高了對人臉單一樣本圖像的識別精度。以上算法在求解時均采用l1范數(shù)正則化方法,因此時間復(fù)雜度較高。而ZUO等研究認(rèn)為,lp范數(shù)(0
目前很多主流的人臉識別算法都依賴于深度學(xué)習(xí),例如DeepFace[9]、DeepID2+[10]、VGGFace[11]和FaceNet[12]等算法。雖然這些算法在實際應(yīng)用中取得了很好的效果,但是深度神經(jīng)網(wǎng)絡(luò)往往需要大量的訓(xùn)練樣本。此外,用于常規(guī)人臉識別的深度神經(jīng)網(wǎng)絡(luò)在遮擋等因素影響下并不具有很好的魯棒性。
針對以上問題,本文從不犧牲算法運行時間的角度出發(fā),在SLRC算法的基礎(chǔ)上,基于lp范數(shù)正則化方法的優(yōu)勢,提出一種基于lp范數(shù)(0
在人臉圖像識別應(yīng)用中,稀疏表示方法是一種有效工具。通常情況是以給定訓(xùn)練圖像來稀疏表示測試圖像的。假設(shè)k類訓(xùn)練樣本矩陣為A,且A=[A1,A2,…,Ak]∈Rn×m,其中,子矩陣Ai表示第i類樣本,則任意測試樣本y都可以通過訓(xùn)練樣本矩陣A表示出來,即y=Ax。最初,在稀疏表示時,采用以下極小化目標(biāo)函數(shù),求得y=Ax的解。
(1)
式中:λ為正則化參數(shù);‖·‖0為l0范數(shù),用于計算x中非零元素的數(shù)量。
式(1)中l(wèi)0范數(shù)極小化是NP難問題,研究者通常采用與l0范數(shù)最為接近的l1范數(shù)進行代替,即
(2)
SRC算法采用式(2)作為目標(biāo)函數(shù),雖然在人臉識別方面取得了令人可信的結(jié)果,但是選取樣本圖像作為基準(zhǔn)字典,在采樣不足情況下的識別率仍會受到影響。在式(2)的基礎(chǔ)上,SLRC算法首先將訓(xùn)練樣本矩陣A∈Rn×m分解,得到類中心矩陣P∈Rn×k和類內(nèi)變化矩陣V∈Rn×m,然后將測試樣本表示為類中心矩陣和類內(nèi)變化矩陣的疊加。該算法在描述樣本差異的同時解決了單樣本的字典完備性問題,改善了人臉識別算法在采樣不足情況下的性能。
以上方法均采用l1范數(shù)求解稀疏性問題,雖然l1范數(shù)具有一定的有效性,但是并不能保證所獲得的模型在多數(shù)情況下都具有最好的稀疏性。文獻[13]認(rèn)為,lp范數(shù)(0
(3)
目前,有許多求解lp范數(shù)稀疏編碼的算法,如迭代重加權(quán)最小二乘(IRLS)[14]、迭代重加權(quán)l(xiāng)1極小化(IRL1)[15]、迭代閾值(ITM-lp)[16]、查找表(LUT)[17]和廣義迭代閾值(GISA)[6]等算法。在某些情況下,前3種算法無法求得全局最優(yōu)解,LUT算法需要計算存儲查找表。相比之下,GISA算法更可靠,可以獲得更精確的解。在文獻[6]中,ZUO等采用GISA算法求解原始的SRC模型,展示SRC算法對于不同p值的識別率,取得了很好的效果。因此,在一定程度上,lp范數(shù)要優(yōu)于l1范數(shù)。
本文基于lp范數(shù)(0
(1) 將訓(xùn)練樣本圖像矩陣A∈Rn×m分解為類中心矩陣
P=[c1,…,ci,…,ck]∈Rn×k
(4)
和類內(nèi)變化矩陣
(5)
式中:ci表示第i類的質(zhì)心;ei=[1,1,…,1]T∈Rni×1。
(2) 融合類中心矩陣P和類內(nèi)變化矩陣V,作為融合字典[P,V]∈Rn×(k+m),則融合字典可稀疏表示待測定的樣本y,即y=[P,V][α,β]T。融合字典采用類中心矩陣描述光照、遮擋情況下樣本的誤差,采用類內(nèi)變化矩陣來增強采樣不足情況下字典的完備性。當(dāng)一類訓(xùn)練樣本不足時,融合字典中的類內(nèi)變化矩陣V來自訓(xùn)練集外的其他圖像。因此,基于lp范數(shù)(0
(6)
(7)
即
(8)
這里借鑒文獻[6]提出的一種泛化軟閾值算法(Generalized Soft-Thresholding,GST),可以有效求解該問題。
給定p和λ,存在如下閾值:
(9)
(1) GST算法(算法1):
(a) 輸入:測試樣本y,參數(shù)λ>0,p值,迭代次數(shù)J;
按照GST算法原理,式(8)可轉(zhuǎn)化為如下形式:
(10)
(2) 求解式(6)的算法可總結(jié)如下(算法2):
(a) 輸入:測試樣本y,參數(shù)λ>0,p值,迭代次數(shù)J;
(c) 循環(huán)以下步驟:
在解決式(6)的求解問題后,與第i類相關(guān)的測試樣本可近似表示為:
(11)
(12)
進而給出如下分類方法:
label(y)=arg miniri(y)
(13)
式中,label(y)為測試樣本y的類標(biāo)簽。
綜上所述,本文提出如下基于lp范數(shù)(0
(a) 輸入:訓(xùn)練樣本矩陣A=[A1,A2,…,Ak]∈Rn×m,測試樣本y,參數(shù)λ>0;
(b) 利用式(4)和式(5)計算融合字典[P,V];
(c) 利用主成分分析(PCA)法計算投影矩陣Φ∈Rd×p,并將融合字典[P,V]降維,[P,V]←ΦT[P,V];
(d) 將融合字典[P,V]歸一化;
(f) 利用式(12)計算殘差ri(y);
(g) 輸出:測試樣本y的類標(biāo)簽label(y)=arg miniri(y)。
為檢驗算法的性能,可選擇SRC、ESRC、SLRC、SRC-p算法和本文算法進行仿真,并采用PCA法降低樣本的特征維度。實驗在Matlab R2011a軟件環(huán)境下Intel Core i5-4200 M 2.50 GHz計算機上進行。
為了測試參數(shù)p取不同值時本文算法的性能,在Extended Yale B數(shù)據(jù)庫上進行了實驗。該數(shù)據(jù)庫包含64種不同光照條件下38個人2 432張正面人臉圖像,每張圖像的分辨率為168×192。圖1所示為Extended Yale B 數(shù)據(jù)庫的部分圖像。
圖1 Extended Yale B數(shù)據(jù)庫的部分圖像
為了降低各種算法的計算成本和內(nèi)存占用量,可將這些圖像裁剪為32×32維。實驗中針對每個人選擇16張樣本圖像用于訓(xùn)練,剩余樣本圖像用于測試。本文選用100維的特征空間進行實驗。p取不同值時的人臉識別率如圖2所示。
圖2 p取不同值時的人臉識別率
分析圖2可知:SRC、ESRC和SLRC算法對應(yīng)曲線為水平線,均是采用l1范數(shù)求解的,識別率不受p值影響;SRC-p和本文算法采用lp范數(shù)求解,因此識別效果會隨參數(shù)p的變化而改變;從整體來看,本文算法的識別率在多數(shù)情況下要優(yōu)于其余4種算法。具體來說,當(dāng)p=0.5時,本文算法的識別率達到最高,為67.33%,分別較SRC、ESRC、SLRC以及SRC-p方法提高了5.15%、2.58%、1.43%、1.97%。因此,以下實驗中將設(shè)置p=0.5。
為了檢驗采樣不足條件下本文算法的性能,從Extended Yale B數(shù)據(jù)庫中先后選擇8張、12張、16張樣本圖像用于訓(xùn)練,剩余樣本圖像用于測試。圖3所示為SRC、ESRC、SLRC、SRC-p和本文算法在采樣不足條件下的識別率。
(a) 8張訓(xùn)練樣本
(b) 12張訓(xùn)練樣本
(c) 16張訓(xùn)練樣本圖3 采樣不足條件下的識別率
從圖3可以看出,對比其他4種算法,本文算法的識別率在不同特征維數(shù)下均有顯著提高。由此可見,基于lp范數(shù)和融合字典的人臉識別算法是非常有效的。
為了進一步比較采樣不足條件下各種算法的性能,本文選擇4~16張不同數(shù)量的訓(xùn)練樣本進行實驗。圖4為1 024維下5種算法對不同數(shù)量訓(xùn)練樣本圖像的識別率。
圖4 5種算法對不同數(shù)量訓(xùn)練樣本圖像的識別率
從圖4可以看出,在訓(xùn)練樣本數(shù)量變化的情況下,本文算法較其他算法的識別率均有顯著提高。由此可見,采樣不足條件下本文算法具有更好的魯棒性。
為了進一步對比不同算法的性能,本文將測試不同算法的總運行時間,并計算單張圖像的運行時間。從Extended Yale B數(shù)據(jù)庫中針對每個人,選擇16張樣本圖像用于訓(xùn)練,剩余樣本圖像用于測試,并將圖像裁剪為32×32維。表1所示為Extended Yale B數(shù)據(jù)庫上不同算法的識別率和運行時間。
表1 Extended Yale B數(shù)據(jù)庫上不同算法的識別率與運行時間
從表1可以看出,本文算法和SRC-p算法明顯耗時較短,并且識別率均高于SRC、ESRC和SLRC算法。這是因為lp范數(shù)正則化方法容易求解,能夠得到比l1范數(shù)更稀疏的解。與SRC-p算法相比,本文算法識別率提高了2.25個百分點,總運行時間縮短了5.58 s,單張圖像運行速度提高了1.39倍(按8.21÷5.92計算)。這進一步表明,本文算法無論在識別率還是運行速度上均具有明顯優(yōu)勢,更適合在大規(guī)模的人臉識別中應(yīng)用。
同樣,可在ORL數(shù)據(jù)庫上進行實驗。ORL數(shù)據(jù)庫是由40個人、每人10張、像素92×112的正面人臉圖像構(gòu)成的。這些圖像均受不同光照和面部表情的影響。圖5所示為ORL數(shù)據(jù)庫的部分圖像。
圖5 ORL數(shù)據(jù)庫部分圖像
實驗時從ORL數(shù)據(jù)庫中針對每個人選取5張樣本圖像進行訓(xùn)練,剩余樣本圖像用于測試。表2所示為ORL數(shù)據(jù)庫上不同算法的識別率和運行時間。
表2 ORL數(shù)據(jù)庫上不同算法的識別率和運行時間
從表2可以看出:SRC、ESRC和SLRC算法的識別率相同,這是因為本實驗選用的是ORL數(shù)據(jù)庫,雖然同類樣本中間存在差異,但是差異并不明顯;SRC-p算法的識別率較前3種算法提升了3.5個百分點;本文算法的識別率較前3種算法提升了4個百分點,仍為最優(yōu);從運行時間上看,SRC-p算法運行時間最短,本文算法次之,時間上毫秒級的延遲對于識別率的提升來說可以忽略。由此看出,本文算法同樣適用于受光照、遮擋等因素影響較小的人臉識別。
為了測試本文算法在每人只有一個訓(xùn)練樣本情況下的性能,實驗方案按照經(jīng)典文獻中ESRC算法采用的AR人臉數(shù)據(jù)庫實驗[4]來確定。AR人臉數(shù)據(jù)庫包括在表情、光照和遮擋等因素影響下的126人4 000多張正面臉部圖像,每張圖像的分辨率為165×120。圖6所示為AR數(shù)據(jù)庫部分圖像。
圖6 AR數(shù)據(jù)庫部分圖像
實驗樣本圖像來自50名男性和50名女性構(gòu)成的子數(shù)據(jù)庫。首先選擇80個人、每人13張樣本圖像,使用自然表情和光照的單張樣本圖像進行訓(xùn)練,而將其余12張受光照、表情和遮擋影響的樣本圖像用于檢測;然后從剩余的20人中選擇每人12張樣本圖像,組建類內(nèi)變化矩陣。為方便測試,將圖像裁剪為27×20維。表3所示為AR數(shù)據(jù)庫上單一訓(xùn)練樣本實驗不同算法的識別率。
表3 單一訓(xùn)練樣本的不同算法識別率 %
注:實驗采用AR數(shù)據(jù)庫。
SRC和ESRC算法的識別率與文獻[4]中的數(shù)據(jù)相吻合。雖然SLRC算法將訓(xùn)練樣本矩陣作為類中心矩陣,ESRC算法將訓(xùn)練樣本矩陣作為類內(nèi)變化矩陣,但由于二者均采用單一樣本訓(xùn)練,因此SLRC和ESRC的識別率一樣。本文算法的識別率,與SRC相比提高了34.9個百分點,與ESRC和SLRC相比提高了3.44個百分點,與SRC-p相比提高了34.48個百分點。因此,本文算法在單一訓(xùn)練樣本的實驗中具有更好的效果。
針對傳統(tǒng)人臉識別算法在光照、遮擋和采樣不足等情況下識別率低、運行速度慢的問題,本文提出一種基于lp范數(shù)(0