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