房夢玉,馬明棟
(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210003;2.南京郵電大學 地理與生物信息學院,江蘇 南京 210003)
自20世紀90年代以來,人臉識別逐漸成為模式識別和人工智能領域的研究熱點[1],例如身份驗證、門禁系統、刑偵破案以及醫學圖像等方面[2],對于社會經濟具有廣泛的應用價值。主成分分析和線性鑒別分析是人臉識別中常用的兩種經典算法。
主成分分析(principal component analysis,PCA)[2-3]是線性變換,一般是先把樣本矩陣變成一維向量,然后將多個樣本的向量組成一個矩陣。向量通過線性變換是線性獨立的,并且變換后的向量用于提取特征[4-5]。PCA算法存在處理后維數高的問題,使得特征提取困難,特征計算復雜。但是,二維主成分分析(two-dimensional principal component analysis,2DPCA)算法[6]不需要將矩陣轉換為矢量,而是直接將圖像矩陣構建為圖像離散矩陣。由于2DPCA方法用于直接計算人臉圖像,因此它保留了更多的結構信息,并且計算協方差的準確性更高。
線性鑒別分析(linear discriminant analysis,LDA)[7]是高維圖像投影到最能識別向量空間的基本思想,即將高維空間投影中的數據點投影到一條直線上,將維數縮小為一維,確保在投影空間之后,每個樣本還可以具有類間的最大散布距離和類內最小的散布距離。
然而,傳統的LDA算法存在“小樣本”和“邊緣類”的問題[8],這是由于類間樣本在投影時發生重疊所造成的。而存在這些問題的主要原因是因為該算法過分強調了類間距離的大小。并且傳統的LDA算法下的Fisher準則會導致“小樣本”問題的出現,因為很難找到充足的訓練樣本,以此來保證類內散布矩陣的可逆性,所以就會丟失很多有用的辨別信息。這些問題使識別率在一定的空間維數下達會到最大值,然后再當維數升高時,識別率會逐漸降低。基于以上出現的問題,“PCA+LDA”算法[3,9-10]解決了這個問題,它不僅會保持LDA算法的優勢,也會通過PCA算法改善LDA的缺陷。首先利用PCA算法實現降維,然后通過LDA算法投影到最佳方向,使Fisher準則最大,根據鄰近原則實現識別,也使得識別率隨著維數升高逐漸增加。由于PCA算法實現的降維損失是由樣本類間及樣本類內的離散矩陣的零空間來交換的,但是有用的分類信息存在于類內離散矩陣零空間中,如果它丟失了,就會失去一些有效信息。
為了保存“最有辨識力”的信息,該文提出了2DPCA融合改進的LDA算法,該算法將一維主成分分析優化為二維主成分分析,對LDA算法中的類間離散度矩陣和Fisher準則進行修改,使得該算法在提取特征時更快更好,也保存了“最有辨識力”的信息。
主成分分析方法是由M.Turk和A.Pentland提出來的[2],是一種可以對信息進行處理、壓縮和抽取的有效方法,并且在降維和特征提取上效率較高。實質上PCA方法是基于K-L變換原理[11],對數據進行特征抽取,構成特征空間,然后將測試集投影到特征空間,得到投影系數,從而對人臉圖像比對,進行識別。
如果人臉庫有N個人臉圖像,用M1,M2,…,MN表示人臉特征向量,由下式得到人臉庫中人臉圖像的平均臉:
(1)
人臉庫中人臉圖像與平均臉的均差為:
σi=Mi-Mave
(2)
PCA的構造協方差矩陣為:
(3)
求出矩陣的特征值λi和特征向量yi來構造特征臉空間,由于其維數較大,一般采用奇異值分解(singular value decomposition,SVD)[12]的方法求矩陣的特征值和特征向量。
特征值λi及其正交歸一化特征向量xi,當e的值超過90%,即認為所選的t個特征值的貢獻率已經包含了大部分信息。貢獻率指選取的特征值的與總的特征值的和的比值,即:

(4)
求出原協方差矩陣的特征向量:

(5)
特征空間:
I=(x1,x2,…,xt)
(6)
將各樣本與平均值做差投影到特征空間,即:
Ωi=ITσi,i=1,2,…,N
(7)
PCA算法訓練以及識別流程如圖1所示。

圖1 PCA算法訓練及識別流程
LDA算法是首先對特征進行提取,利用提取的特征區分不同類別,聚集相同的類別。也就是求類間和類內離散度比值最大的特征,即Fisher準則函數[13]。類間離散度越大越好,類內離散度越小越好。這就要求提取的特征最具有判斷力。
傳統的LDA算法具體定義如下:

(8)

(9)
其中,SW為類內離散度矩陣,SN為類間離散度矩陣,I為包含的類數,M為樣本總數,Mi(i=1,2,…,I)表示第i類的樣本數量,mi為各個類模式的平均值。
I類的模式可以表示為:
xi={xi1,xi2,…,xiMi}
xij(i=1,2,…,I;j=1,2,…,Mi)
(10)
LDA的目標是要尋找變換V,當SW非奇異時,使得Fisher準則最大:
(11)
由下式得到Vi(i=1,2,…,m)的解:
SNVi=λSWVi
(12)
其中,Vi(i=1,2,…,m)就是前m個較大的特征值λ所對應的特征向量組成的矩陣。
將PCA算法與LDA算法構造的特征子空間進行融合,然后將訓練樣本與測試樣本分別朝該融合特征空間投影,獲得識別特征。圖2為PCA與LDA算法融合的原理過程。

圖2 PCA-LDA算法的原理過程
二維主成分分析和PCA相似,都可以對特征進行有效的提取,但是不同于PCA方法的是2DPCA不需要將圖像矩陣轉換成向量[14],直接由原始樣本的圖像矩陣得到圖像協方差矩陣,從而得到特征值和特征向量[15]。
訓練樣本的平均圖像為:

(13)
計算樣本的協方差矩陣:

(14)
求P矩陣的特征值,對特征值排序,選取m個最大的特征值x1,x2,…,xm對應的特征向量X1,X2,…,Xm,對特征向量做正交化,求得的向量作為投影空間X。
在2DPCA中,求得的投影空間矩陣Y用來衡量準則函數F(W)中W的優劣:
F(W)=tr(CW)
(15)
其中,CW是投影矩陣Y的協方差矩陣,tr(CW)是CW的跡,且
CW=WTE{[x-E(x)]T[x-E(x)]}W
(16)
選取的特征向量為:
i≠j;i,j=1,2,…,m
(17)


(18)
2DPCA不像PCA需要將原始圖像轉成一維向量,直接利用原始圖像矩陣得到協方差矩陣,避免了圖像拉伸時,破壞圖像的結構。所以2DPCA比PCA算法保留了更多的結構信息,計算協方差更為準確。
傳統的LDA存在兩個突出問題:(1)當樣本維數大大超過訓練樣本的個數時,就會產生“小樣本”問題;(2)由“小樣本”問題導致的邊緣類的特征空間解問題[16]。
針對傳統LDA所固有的問題,該文提出了兩種改進方法:
(1)對類間離散度矩陣和Fisher準則做出修改[17]。

(19)

(20)
其中,dij是兩個類別之間的歐氏距離,wdij是加權函數。
新的Fisher準則:

(21)

(22)

(2)采用Direct-LDA(D-LDA)算法去掉SN的零空間來降維[17-18]。
(23)

對于任意矩陣,LTL矩陣的特征向量為x,特征值為λ,那么可得LTLx=λx[16]。LTL特征向量到LLT特征向量為x→Lx。那么可以推導出,LLTLx=λLx。
2DPCA算法比PCA算法識別率高,特征抽取時間短;改進的LDA算法改善了傳統的LDA算法的“小樣本問題”和“邊緣類問題”。因此,針對這兩種方法的優點,將兩種算法進行融合。文中算法第一步將訓練樣本進行2DPCA操作,產生新的特征空間矩陣,第二步使用改進的Fisher準則選擇投影軸。圖3為算法的整體流程。

圖3 算法的原理過程
實驗直接采用ORL[19]人臉庫中的圖像。
圖4是PCA-LDA算法、2DPCA算法、改進的LDA算法、2DPCA-改進的LDA算法的識別率對比結果。
傳統的PCA算法識別率較低,而傳統的LDA算法在一定的空間維度下,識別率較高,但是會出現最大值,只適用于特定維數空間。由圖4可以清楚地看到,PCA-LDA算法在15~55維數間,保持上升趨勢,顯然克服了LDA存在的缺陷, 與2DPCA達到的識別率差不多。而改進的LDA算法的識別率比PCA-LDA算法的識別率要高,所以組合2DPCA與改進算法的LDA,融合改進后算法的優點,使得文中算法識別率在任何維數,比其中任何一種算法的識別率都要高。

圖4 各算法識別率對比
提出了2DPCA融合改進的LDA算法。該算法首先將一維主成分分析優化為二維主成分分析,對訓練樣本做二維主成分分析,然后對LDA算法中的類間離散度矩陣和Fisher準則做出修改,根據改進的線性鑒別分析,按照新的Fisher準則比的大小選擇特征向量作為投影軸。該算法基于PCA-LDA算法加以改進,克服了PCA-LDA算法存在的缺陷,保存了“最有辨識力”的信息,同時還使得在特征提取時更快更好。