鄭 穎
(西安電子科技大學數(shù)學與統(tǒng)計學院,陜西西安 710126)
人臉識別中特征提取方法的研究一直備受關注,傳統(tǒng)的特征提取一般分為兩類:基于整體臉的方法[1]和基于局部特征的方法。整體臉的方法如 PCA[2]、2DPCA[3]等,而基于局部特征的方法中,自1999年Lee和Seung提出非負矩陣分解方法以來,由于整體臉的方法對光照、姿態(tài)等外部條件比較敏感,而基于局部特征方法更具魯棒性,能更好地分類,故而此方法已被用于人臉識別[4]。但由于在人臉識別中,此方法需要首先將二維圖像矩陣拉成向量,當圖像分辨率較高時,導致拉成的向量具有較高的維數(shù),分解過程時間花費大。因此文獻[5]將非負矩陣分解與主成分分析思想融合,從整體特征和局部特征兩方面,提出非負二維主成分分析算法,使得識別性能提高,且更具魯棒性。為進一步提高識別率,文獻[6]提出了非負矩陣分解的改進算法,實驗表明:二維非負矩陣分解算法(2DNMF)以及將基矩陣對角化,都能有效的提高人臉識別率。為提高識別速度和精度,文獻[7]又提出新的(2D)2NMF算法,該方法從行列方向共同壓縮數(shù)據(jù)矩陣,使得壓縮后的數(shù)據(jù)維數(shù)更小,包括的數(shù)據(jù)行列信息更全面,文中在此基礎上還將圖像進行不規(guī)則處理,對投影矩陣正交化等,進一步提高識別率。
線性判別分析是一種有效的降維方法,該方法通過最大化Fisher準則,尋找類間散度最大、類內(nèi)散度最小的投影方向,使得降維后的數(shù)據(jù)類內(nèi)聚合度最高,類間離散度最大,數(shù)據(jù)更精確分類。2DLDA[8-10]是直接對圖像矩陣執(zhí)行判別分析方法,無需將圖像矩陣拉成向量,類內(nèi)散度矩陣與類間散度矩陣維數(shù)僅為圖像行數(shù)或列數(shù),因此投影方向易于計算,節(jié)省時間。
本文提出將二維判別分析方法與非負矩陣分解方法融合,提出一種雙邊非負矩陣分解方法。該方法先執(zhí)行一次行非負矩陣分解,求出行基矩陣,為提高識別精度,再將此基矩陣正交化,作為一個投影矩陣,再由2DLDA方法求出另一投影矩陣。由于2DLDA計算時矩陣維數(shù)小,因而較文獻[6]先對圖像矩陣執(zhí)行行非負矩陣分解,得到行基矩陣與行系數(shù)矩陣,再將行基矩陣正交化,得到一個投影矩陣,再對行系數(shù)矩陣執(zhí)行一次非負矩陣分解,得到另一投影矩陣和文獻[7]通過對圖像按行或按列的不同排列方式,執(zhí)行兩次非負矩陣分解的雙邊非負矩陣分解算法,提出方法樣本訓練時間大幅減小。更進一步,由于非負矩陣分解算法只是提取局部信息進行分類,而將判別分析算法引入,使得整體信息類內(nèi)高度聚合,類間最大距離分開,進一步加強了分類效果,而且2DLDA得到的投影矩陣列是正交的,較非負矩陣分解中非正交的基矩陣,能較好地消除矩陣列間的相關性,因而相比執(zhí)行兩次非負矩陣分解的雙邊2LDNMF和2RNMF算法,提出算法對人臉的識別率也有所提高。
非負矩陣分解(NMF)的思想是:在誤差最小的準則下,將一非負矩陣,分解成兩個非負矩陣的乘積。設xi∈(i=1,2,L,N)是訓練集中的 N 個非負樣本,構成樣本集 X=[x1,x2,L,xN]∈,將其分解為非負基矩陣W∈與非負系數(shù)矩陣 H∈即 X≈WH式中壓縮維數(shù)r應滿足(m+nN)<mnN。
分解中要求產(chǎn)生的矩陣沒有負元,這就使得分解后的矩陣具有可解釋性。而且分解過程是通過迭代法在逼近程度局部最小,且矩陣非負約束下,應用乘性迭代規(guī)則得到。其中W和H的更新過程如下
按照上式迭代,直到損失函數(shù)
達到局部最小,此處距離用歐氏距離評價。
二維非負矩陣分解(2DNMF)無需將圖像矩陣拉成向量,而是對矩陣直接應用非負分解,未破壞圖像數(shù)據(jù)結構,能較好地保持圖像信息,較向量的非負矩陣分解方法,其識別率大幅提高,此方法包括行非負矩陣分解和列非負矩陣分解兩種。
1.1.1 列非負矩陣分解
設Ai∈(i=1,2,L,N)是 N 個訓練樣本圖像,按行排列構成集合 A=[A1,A2,L,N]∈在乘性迭代規(guī)則下對矩陣A執(zhí)行非負矩陣分解(2DLNMF)過程,將其分解為非負基矩陣W∈和非負系數(shù)矩陣H∈的乘積,即
將矩陣H分塊為N個矩陣Hi∈,H=[H1,H2,L,HN]則Hi是圖像矩陣Ai的系數(shù)矩陣,第i幅圖像被表示成
1.1.2 行非負矩陣分解
對于行非負矩陣分解(2DRNMF)提出了兩種方法,一種是串行的方法,即利用兩次非負矩陣分解,計算出行投影基矩陣,具體方法如下:在列非負矩陣分解X=WH 后,由系數(shù)矩陣構造新矩陣 HT=[H1T,H2T,L,HTN]∈再次應用非負矩陣分解方法,得到行非負基矩陣R∈和非負系數(shù)矩陣C∈使得 HT≈RC 將 C 矩陣分塊為 C=[C1,C2,L,CN]對每個
將式(6)代入式(5)得
線性判別分析(2DLDA)的思想是通過尋找最大化Fisher準則的最優(yōu)投影變換矩陣,將高維數(shù)據(jù)投影到低維子空間。2DLDA的具體做法為:設訓練樣本集為A={A1,A2,L,AN}訓練樣本總數(shù)為假設訓練樣本分為C類,Aki(i=1,2,L,N)是第 i類中的第 k個訓練樣本,第i類Ci共有Ni個樣本,即則Fisher準則為
其中類間散度矩陣
類內(nèi)散度矩陣
雖然文獻[6]已充分說明基于局部臉的非負矩陣分解方法(2DLDANMF)對遮擋和光照等外交條件變化不太敏感,非負性具有可解釋性,進而使得識別率較整體臉方法有所提高。文獻[7]實驗結果顯示雙邊非負矩陣分解方法較單邊的非負矩陣分解,識別率進一步提高。但由于它是通過迭代方法獲得基矩陣,當樣本維數(shù)較高時迭代過程十分緩慢,計算一次基矩陣相當耗時。雙邊非負矩陣分解需兩次執(zhí)行非負矩陣分解過程,時間復雜度進一步提高。本文將非負矩陣分解方法與判別分析方法融合,提出一種雙邊非負矩陣分解算法,非負分解使得矩陣具有可解釋性,將判別分析思想融入其中,使數(shù)據(jù)聚類分離效果更加準確,進一步提高識別率。而且較雙邊非負矩陣分解方法,只需執(zhí)行一次非負矩陣分解的迭代過程,再執(zhí)行一次2DLDA過程,由于2DLDA矩陣維數(shù)小,故可降低計算時間。具體做法如下:對訓練樣本集A∈先通過行非負矩陣分解方法計算出行基矩陣R∈,將其正交化,得到左投影矩陣U=orth(R)再對訓練樣本集執(zhí)行2DLDA過程求出樣本集的右投影矩陣V∈,最后得到樣本投影特征Yi=UTAiV(i=1,2,L,N)對于任一測試樣本t∈求出測試樣本特征為 ty=UTt V∈其中非負矩陣分解列數(shù) r應滿足(m+n)r< mn,l應滿足(r+m)l<rn,最后運用歐氏距離分類。
算法 用于人臉識別的快速非負矩陣分解算法。
輸入 輸入N個樣本圖像矩陣,分解的列數(shù)r,迭代次數(shù)matxier,右投影向量個數(shù)l。
步驟1 將圖像矩陣排列構造樣本集X=[A1,A2,L,AN]。
步驟2 執(zhí)行行非負矩陣分解求出基矩陣R,求出左投影矩陣U=orth(R)。
步驟3 構造類內(nèi)散度矩陣Sw和類間散度矩陣Sb。
步驟4 求出Sw-1Sb的前L個最大特征值對應的單位正交特征向量v,得到右投影矩陣V=[v1,v2,L,v]T。N
步驟5 求出樣本圖像和測試圖像投影特征,利用歐氏距離分類。
實驗環(huán)境:Windows 7+Matlab2012,計算機的CPU為Intel(R)Core(TM)i5 2.5 GHz,共2.00 GB 內(nèi)存,對于所有人臉識別實驗,使用基于歐氏距離的1-NN[17-18]算法來分類。對于兩個參數(shù) r和 l為了方便實驗均設定 r=l=d2其中為圖像維數(shù)。
在實驗中,使用如下兩個數(shù)據(jù)庫:
(1)Yale人臉數(shù)據(jù)庫由15人、每人11幅共165幅人臉圖像組成。每幅圖像灰度級為256,分辨率為100×100。Yale數(shù)據(jù)庫中人臉圖像光照條件變化較大,而且人的臉部表情和細節(jié)也有一定的變化。
(2)AR人臉數(shù)據(jù)庫是一個大型的人臉圖像數(shù)據(jù)集。包括200個人、每人14幅共2 800幅人臉圖像組成部分圖像由于存在的太陽鏡和圍巾,可能會包含大面積的遮擋,這增加了類內(nèi)的差異和識別難度。
實驗中,在Yale人臉數(shù)據(jù)庫上,隨機選取每個人的6張圖像做訓練,5張圖像做測試,在AR人臉數(shù)據(jù)庫上,隨機選取每個人的8張圖像做訓練,6張圖像做測試。
如圖1所示,在Yale和AR人臉數(shù)據(jù)庫上,在d取相同的值時,2DLDANMF算法的識別率高于(2D)2LNMF算法和(2D)2RNMF算法的識別率。其次,在d取相同值時,(2D)2LNMF算法和(2D)2RNMF算法的識別率較接近,說明行方向和列方向的非負矩陣分解識別率相近;最后,AR人臉數(shù)據(jù)庫上的識別率顯然高于Yale人臉數(shù)據(jù)庫上的識別率。
圖1 3種算法識別率比較
從訓練時間和檢測時間兩個方面對2DLDANMF、(2D)2LNMF和(2D)2RNMF算法進行比較。訓練時間即獲得左右投影變換矩陣和投影特征矩陣所需的時間,測試時間即對未知數(shù)據(jù)的投影特征矩陣和已知數(shù)據(jù)的投影特征矩陣進行對比,判斷其屬于哪一類所需的時間。在實驗中,使用10次訓練時間的平均時間來作為訓練時間,10次檢測時間的平均時間作為檢測時間。實驗結果如圖2和圖3所示。
圖2 3種算法訓練時間比較
如圖2所示,在Yale和AR人臉數(shù)據(jù)庫中,2DLDANMF算法訓練時間大幅小于(2D)2LNMF和(2D)2RNMF算法訓練時間。且隨著 d的增大,(2D)2LNMF和(2D)2RNMF兩種算法的訓練時間隨之增加,而且增加較快,但2DLDANMF算法訓練時間保持在較低范圍內(nèi),增加不明顯。這主要是由于2DLDA方法的融入,使得計算右投影矩陣時,矩陣維數(shù)低,d的增加只是線性復雜度的增加,幾乎不耗費額外時間。
如圖3所示,2DLDANMF算法檢測時間遠小于(2D)2LNMF和(2D)2RNMF算法檢測時間,且隨著d的增大,3種算法的檢測時間隨之增加。
本文提出了一種快速的非負矩陣分解算法。實驗結果表明:當d相同時,2DLDANMF算法在節(jié)省了大量訓練時間和檢測時間的同時,取得了高于二維非負矩陣分解算法的識別率。但是必須認識到,對于壓縮率的選擇,沒有提出理論性的可行方法,只是經(jīng)驗性選擇,這需要進一步探討。
圖3 3種算法檢測時間比較
[1]Turk M,Pentland A.Eigenfaces for recognition[J].Journal of Cognitive Neurosci,1991,3(1):71 -86.
[2]Jolliffe I T.Principal component analysis[M].2nd Edition.Berlin:Springer,2002.
[3]Yang J,Zhang D,F(xiàn)rangi A F,et al.Two - dimensional PCA:A new approach to appearance based face representation and recognition[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,2004,26(1):131 -137.
[4]劉維湘,鄭南寧,游曲波.非負矩陣分解及其在模式識別中的應用[J].科學通報,2006,35(1):241 -250.
[5]嚴慧,金忠,楊靜宇.非負二維主成分分析及其在人臉識別中的應用[J].模式識別與人工智能,2009,6(22):809 -814.
[6]高紅娟,潘晨.基于非負矩陣分解的人臉識別算法的改進[J].計算機技術與發(fā)展,2007,17(11):63 -66.
[7]高紅娟,潘晨.基于(2D)2NMF及其方法的改進[J].計算機應用,2007,27(7):1160 -1166.
[8]Yang J,Zhang D,Yong X.Two - dimensional discriminant transform for face recognition [J].Pattern Recognition,2005,28(7):1125 -1129.
[9]Ming L,Zong Y B.2D - LDA:A statistical linear discriminant analysis for image matrix[J].Pattern Recognition Letters,2005,26(12):527 -532.
[10]Kong H,Teoh E K.Generalized 2D fisher discriminant analysis[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,2012,71(19):5244 -5251.