穆新亮
(西安電子科技大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,陜西西安 710126)
目前,人臉識別算法中較為主流的是Turk等[1]提出了一種較為經(jīng)典的特征人臉法,其利用主成分分析法(PCA)進(jìn)行人臉特征提取,而且取得了較好的效果,且有眾多研究者對該方法進(jìn)行了改進(jìn)[2-5]。由于圖像像素之間存在非線性相關(guān)性,而PCA只對圖像數(shù)據(jù)線性關(guān)系處理的效果較好,PCA對非線性相關(guān)性的數(shù)據(jù)信息卻得不到良好的處理。
針對此問題,Vpink等人根據(jù)統(tǒng)計(jì)學(xué)習(xí)理論的相關(guān)知識提出了一種基于支持向量機(jī)(SVM)學(xué)習(xí)方法,同時引入了核空間。Scholkopf[6]首先提出了作為PCA的非線性推廣KPCA,由于核主成分分析(KPCA)考慮了非線性信息,使得識別效果比PCA更好。目前,KPCA已廣泛應(yīng)用于人臉識別中。對未來人臉識別技術(shù)發(fā)展奠定了基礎(chǔ)。其中利用KPCA方法把輸入空間不可線性分類問題變換到特征空間實(shí)現(xiàn)線性分類。此方法的識別效果明顯高于主成分分析方法。同樣對于采用KPCA法進(jìn)行人臉特征提取,利用線性支持向量機(jī)(SVM)設(shè)計(jì)分類器,使得人臉識別率也明顯得到提高。但單一使用核函數(shù)會使得特征提取的數(shù)據(jù)有一定的缺陷和不足。針對此問題,本文首先通過提出的快速的KPCA方法的詳細(xì)推導(dǎo)過程,使得研究者更加具體的從原理上得到理解,然后再利用基于混合核函數(shù)KPCA進(jìn)行特征提取與分類識別
PCA[7-9]已廣泛應(yīng)用于人臉識別中,其主要特點(diǎn)是將每一張人臉圖像按列拉成一列向量,即隨機(jī)向量x,在保證重建誤差最小的情形下,尋找一個投影方向v,使這些隨機(jī)向量在該方向上投影后的方差最大。對于給定 N 張訓(xùn)練圖像 x1,x2,…,xN,xi∈Rn,i=1,2,…,N,N·n,C為訓(xùn)練圖像的協(xié)方差矩陣
問題轉(zhuǎn)化為求協(xié)方差矩陣最大特征值所對應(yīng)的特征向量,但是由于C的維數(shù)是n×n,維數(shù)較大,所以計(jì)算特征值分解時相當(dāng)費(fèi)時,通常采用奇異值分解(SVD)[10]進(jìn)行轉(zhuǎn)換,最終得到協(xié)方差矩陣的主特征向量,從而可方便地求出經(jīng)過線性降維后的數(shù)據(jù)。
首先一個非線性Φ被用來將輸入數(shù)據(jù)空間Rn映射到特征空間 F∶Φ∶Rn→F,xi|→Φ(xi),i=1,2,…,N,設(shè)M=[Φ(x1),Φ(x2),…,Φ(xN)],隨機(jī)向量Φ(x)協(xié)方差矩陣為,其中,然而在特征空間中中心化數(shù)據(jù)較為困難,因此可首先考慮非中心化的協(xié)方差矩陣,在高維的特征空間中計(jì)算協(xié)方差矩陣C的特征向量幾乎不可能,因此使用核技巧來處理。設(shè)kij=k(xi,xj)=(Φ(xi)·Φ(xj)),則核矩陣K=MTM,而核矩陣的維數(shù)遠(yuǎn)小于協(xié)方差矩陣的維數(shù),因此可先計(jì)算核矩陣K的特征向量,然后由奇異值分解定理可推導(dǎo)出協(xié)方差矩陣C的特征值,但要求的是中心化的協(xié)方差矩陣CΦ的特征向量,可知當(dāng)核矩陣K通過下面的公式中心化
只要求K出的前m個最大特征值σ1≥σ2≥…≥σm所對應(yīng)的特征向量 μ1,μ2,…,μm,也可推到出 CΦ相應(yīng)的m個特征向量v1,v2,…,vm,則樣本Φ(xj)經(jīng)非線性降維后變?yōu)?y=[y1,y2,…,ym],其中
根據(jù)KPCA的計(jì)算過程可知:假設(shè)有個訓(xùn)練樣本,構(gòu)成了N個樣本矢量,每個矢量的維數(shù)為n,則核矩陣K為N×N方陣,對于大樣本集識別問題,訓(xùn)練和識別會占用較長的時間。
針對上述問題及文獻(xiàn)[11],本文提出一種用樣本的均值矢量代替所有樣本來生成核矩陣的方法?;舅枷胧羌僭O(shè)這些樣本分為C類,每個類別的樣本數(shù)為L個,稱之為有L組訓(xùn)練樣本,如果從中提取T(T<L)組樣本進(jìn)行計(jì)算核矩陣,當(dāng)T·L時,計(jì)算時間將會大幅縮減,從而將KPCA應(yīng)用于實(shí)時的人臉識別系統(tǒng)成為可能,均值矢量可表示為
定理 1[12]ke)T],其中 e=[1,1,…,1]。
定理2[13]設(shè) K1和 K2是 χ× χ上核函數(shù),x∈Rn。設(shè)常數(shù)a≥0,則下面的函數(shù)均是核函數(shù):
(1)K(x,x')=K1(x,x')+K2(x,x')
(2)K(x,x')=aK1(x,x')
(3)K(x,x')=aK1(x,x')K2(x,x')所以本文使用的混合核函數(shù)為
本文提出基于混合核函數(shù)的FKPCA進(jìn)行人臉識別。
FKPCA算法:
步驟1 首先要確定使用的核函數(shù),且需給核函數(shù)中的參數(shù)以確定的值。
步驟2 計(jì)算訓(xùn)練樣本的均值矢量,然后建立核矩陣 K=MTM,M:=K+δI
步驟3 根據(jù)(MTM)-1CIα=λα,可求出矩陣的前m個特征值和特征向量
步驟 4 特征提取:記 U=[α1,α2,…,αm],V=[v1,v2,…,vm]則
Y=[y1,y2,…,yN],其中 yi∈Rm×N表示第 i張圖片經(jīng)非線性降維后的圖像向量
步驟5 分類識別:比較待識別的一張圖片yc和訓(xùn)練集中的所有圖片 ti的歐氏距離,若 d(yc,tl)=,則認(rèn)為該測試圖像 yc和 ti是同一類的
實(shí)驗(yàn)環(huán)境:Windows 7+Matlab 2009b,計(jì)算機(jī)的CPU:Dual Core Processor 2.4 GHz,1.87 GB 內(nèi)存。在實(shí)驗(yàn)中,使用如下兩個數(shù)據(jù)庫:(1)ORL人臉數(shù)據(jù)庫包含40個人,每個提供10種不同的圖像。部分圖像是在不同時間拍攝的,面部表情和面部細(xì)節(jié)各有所不同。所有灰度圖像分辨率為112×92;(2)AR[14]人臉數(shù)據(jù)庫(http://rvl1.ecn.purdue.edu/aleix/aleix face DB.html)是一個大型人臉圖像數(shù)據(jù)集。部分圖像由于存在太陽鏡和圍巾,可能會包含大面積遮擋,這增加了類內(nèi)的差異和識別難度。本文使用AR的一個子集,包含40個人的200張人臉圖像,灰度圖像分辨率為40×50。
圖1 ORL人臉數(shù)據(jù)庫中一組人臉圖像
在本次實(shí)驗(yàn)中通過實(shí)驗(yàn)選取較優(yōu)的參數(shù)σ2=1 000,在ORL數(shù)據(jù)庫中比較傳統(tǒng)的KPCA中核矩陣K=K-1NK-K1N+1NK1N與本文提出的K-INK的特征值,發(fā)現(xiàn)完全相等,且相應(yīng)計(jì)算出的人臉圖像識別率也幾乎完全相等,如圖2所示。
圖2 兩種方法的特征值與相應(yīng)識別率比較圖
因此,可使用本文推導(dǎo)出的方法計(jì)算協(xié)方差矩陣的特征向量,此方法計(jì)算復(fù)雜度明顯減小。若要處理大數(shù)據(jù)的識別問題,為能提高識別率和運(yùn)行時間采用混合核函數(shù)并用均值矢量構(gòu)建核矩陣的方法。
傳統(tǒng)的 KPCA采用高斯核,其中2σ2=188,在FKPCA算法中混合核函數(shù),經(jīng)多次實(shí)驗(yàn)最終選擇較優(yōu)的參數(shù)a=2,b=1,c=0,d=1/4,2σ2=188,然后在AR數(shù)據(jù)庫中進(jìn)行實(shí)驗(yàn),取編號為奇數(shù)的圖像作為訓(xùn)練集,選定均值矢量圖像作為訓(xùn)練集,如圖3所示。
圖3 兩種特征值貢獻(xiàn)率與識別率的運(yùn)行時間對比圖
從圖3可看出,在這種混合函數(shù)情況下,提出的方法比傳統(tǒng)的KPCA方法擁有較高的識別率,且穩(wěn)定性較好。此外,更重要的是時間成本節(jié)省較多,人臉的識別速度更快。
3.3.1 多式核與高斯核之積的混合核函數(shù)
實(shí)驗(yàn)在ORL人臉數(shù)據(jù)庫中進(jìn)行,在FKPCA中混合核函數(shù)采用式(8),其中參數(shù)通過大量實(shí)驗(yàn)取最優(yōu)為2σ2=200,a=6e-4,b=d=1,c=0,均值矢量只取所有訓(xùn)練樣本的均值,傳統(tǒng)KPC采用高斯核函數(shù),其中2σ2=200,得到的實(shí)驗(yàn)結(jié)果如圖3所示。
圖4 兩種特征值貢獻(xiàn)率與識別率的運(yùn)行時間比較
如圖4所示,這兩種算法在識別率方面接近,但運(yùn)行時大幅降低,從而在處理大數(shù)據(jù)的人臉識別問題時就具有優(yōu)勢,為實(shí)時識別系統(tǒng)提供了便捷。
3.3.2 多項(xiàng)式核與高斯核加權(quán)和的混合核函數(shù)
實(shí)驗(yàn)在ORL人臉數(shù)據(jù)庫中進(jìn)行,在FKPCA中混合核函數(shù)采用式(7),選擇最優(yōu)的參數(shù)為a=4,b=1,c=0,d=1/4,2σ2=200,均值矢量只取所有訓(xùn)練樣本的均值,傳統(tǒng)KPC采用高斯核函數(shù),其中2σ2=200,得到的實(shí)驗(yàn)結(jié)果如圖5所示。
從圖5也可明顯看出,通過加權(quán)混合核函數(shù)的FKPCA算法在較大程度上提高了人臉識別率,而且隨著特征值累積貢獻(xiàn)率的增加,識別率保持穩(wěn)中有升的態(tài)勢,但傳統(tǒng)的KPCA在這方面出現(xiàn)了擺動現(xiàn)象,因此還有FKPCA算法較為高效,識別時間短,且大幅減少了時間成本,從而在大數(shù)據(jù)時代具有一定的應(yīng)用前景。
圖5 兩種特征值貢獻(xiàn)率與識別率的運(yùn)行時間比較圖
提出了基于混合核函數(shù)的快遞核主成分分析的人臉識別方法。該方法對人臉數(shù)據(jù)進(jìn)行降維,刪除圖像固有的冗余,獲得有效的人臉特征矩陣,再利用圖像的相似性和NN分類器來進(jìn)行分類識別。該方法的特點(diǎn)是用訓(xùn)練樣本的均值矢量代替原有的訓(xùn)練樣本,從而建立核矩陣,實(shí)驗(yàn)結(jié)果表明,本文方法獲得較高的識別率;同時和其他現(xiàn)存的方法相比,本文的方法識別率比較穩(wěn)定,且時間復(fù)雜度大幅降低,從而在大數(shù)據(jù)時代將發(fā)揮應(yīng)有的作用。但是,必須認(rèn)識到FKPCA算法的局限性,其主成分在一些實(shí)際問題中無法合理解釋。因此,研究稀疏PCA是下一步要進(jìn)行的任務(wù),其主要思路是在原始的PCA的優(yōu)化模型中增加一個約束條件≤k,k是一個常正整數(shù),這個優(yōu)化模型求解出來的方向向量是稀疏的,最多有k個非零元素,雖然這一問題是NP難問題,但其在新聞數(shù)據(jù)分類、選票統(tǒng)計(jì)和股票市場數(shù)據(jù)中應(yīng)用廣泛,目前常用的算法是將其轉(zhuǎn)化為半定規(guī)劃模型來解決,但是它的模型推導(dǎo)復(fù)雜并且解的精度并不理想,因此值得繼續(xù)研究。
[1]Turk Pentland M.Eigenfaces for recognition[J].Cognitive Science,1991,1(3):71 -86 1991.
[2]Jolliffe I T.Principal component analysis[M].2nd Edition.Berlin:Springer,2002.
[3]Yang J,Yang JY.From image vector to matrix:A straightforward image projection technique-IMPCA versus PCA[J].Pattern Recognition,2002,35(9):1997 -1999.
[4]Chen S,Zhu Y.Subpattern - based principal component analysis[J].Pattern Recognition,2004,37(5):1081 -1083.
[5]Gottuumukkal R,Asari V K.An improved face recognition technique based on modular PCA approach [J].Pattern Recognition Letter,2004,25(4):429 -436.
[6]Scholkopf B,Smola A,Muller K R.Nonlinear component analysis as a kernel eigenvalue Problem[J].Neural Computer,2011(3):1299 -1319.
[7]Yang Minghsuan.Kernel eigenfaces vs.kernel fisherfaces:face recognition using kernel methods[C].In Proceedings of the Fifth IEEE International Confernce on Automatic Face and Gesture Recognition,2002:215 -220.
[8]Wang Yanmei,Zhang Yanzhu.Facial recognition base on kernel PCA[C].2010 Third International Conference on Intelligent Networks and Intelligent Systems,2010.
[9]Zhao Lihong,Zhang Xili,Xu Xinhe.Face recognition base on KPCA with polynomial krnel[C].Beijing,China:Proceedings of the 2007 International Conference on Wavelet Analysis and Pattern Recognition,2007.
[10]Du G,Zhu W J.Face recognition method based on singular value decomposition and fuzzy decision[J].Journal of Image and Graphics,2006,11(10):1456 -1459.
[11]吳成東,樊玉泉,張?jiān)浦?,?基于改進(jìn)KPCA算法的車牌字符識別方法[J].東北大學(xué)學(xué)報(bào):自然科學(xué)版,2008,29(5):629-632.
[12]Gopi ES,Palanisamy P.Fast computation of PCA bases of image subspace using its inner-product subspace[J].Applied Mathematics and Computation,2013,21(9):6729 -6732.
[13]鄧乃揚(yáng),田英杰.數(shù)據(jù)挖掘中的新方法—支持向量機(jī)[M].北京:科學(xué)出版社,2004.
[14]Martinez A,Benavente R.The AR face database[R].MA USA:Technical Report Computer Vision Center,1998.