何金洋
[摘要]針對經(jīng)典的主成分分析加距離測度人臉識別算法隨著光照、角度、表情變化等干擾因素而出現(xiàn)的性能下降問題,從特征優(yōu)化選擇的角度。并結合神經(jīng)網(wǎng)絡非線性映射能力強、可以學習到數(shù)據(jù)局部分布特征的優(yōu)點。論文提出了結合稀疏濾波和神經(jīng)網(wǎng)絡(SF-BPNN)的算法,該算法先采用稀疏濾波的特征競爭特質得到緊湊的初級特征表達,然后采用反向傳播神經(jīng)網(wǎng)絡(BPNN)進行非線性分類,從而提高識別率。實驗結果表明,論文提出的算法在較FERRET數(shù)據(jù)庫下可取得較好的人臉識別效果。
[關鍵詞]人臉識別;稀疏濾波;神經(jīng)網(wǎng)絡;SF-BPNN;主成分分析
1 引言
人臉識別是一種重要的目標識別技術。能夠利用人臉圖像的視覺特征來進行身份等信息的識別,發(fā)展前景十分廣闊。由于在現(xiàn)實應用場景下,人臉姿態(tài)千差萬別,外觀的差異、物體遮擋、尺度、視角、所處背景環(huán)境不同以及光照等因素都會都對識別效果產(chǎn)生影響,許多方法或是過于依賴環(huán)境條件控制而不能達到現(xiàn)實場景下的識別精度,或是過于計算復雜而難以推廣應用。
近年來,基于特征表達理論的人臉檢測是一個富有潛力的研究方向,根據(jù)模型建立方式的不同,可以分為兩種:一種是直接數(shù)據(jù)建模的方法:另一種就是避免直接建模,間接優(yōu)化特征的方法?;谥苯咏5姆椒ň哂休^高識別率,但算法比較耗時,比如稀疏編碼(sparseCoding,SC)算法需要花費很多時間來解L1范數(shù)最小二乘問題以找到稀疏系數(shù)。而另一類直接優(yōu)化特征結構的方法就具有易于優(yōu)化求解、計算簡單快捷等優(yōu)勢,其主要代表是稀疏濾波算法(sparse Filtering,SF),它受稀疏編碼思想的啟發(fā),強調特征優(yōu)化后稀疏緊湊的特性,但采取了比前者簡單的學習方式。
2 稀疏濾波SF特征
2.1 稀疏濾波算法
稀疏濾波的方法主要是繞過對數(shù)據(jù)分布的估計,直接分析優(yōu)化特征的分布,通過優(yōu)化L2范數(shù)歸一化的特征激活值,加上L1范數(shù)的稀疏約束,直接分析優(yōu)化特征的分布,只需調整一個參數(shù)(特征數(shù)目),并且可同時滿足特征優(yōu)化的三個條件:(1)種群稀疏(Populationsparsity),每個樣本都只由有很少的非零特征來描述;(2)存在稀疏(Lifetime Sparsity),每個特征只在很少的樣本中被激活;(3)高分散性(High Dispersal),所有的特征應具有相似的分布。算法原理:首先引入一個每一行是一個特征,每一列是一個樣本的特征分布矩陣M。每個元素fj(i)表示第i個樣本的第j個特征的激活值。接著計算線性特征:
fj(i)=wjTx(i)(1)
第一步,先對M的行進行歸一化,再對列進行歸一化,然后再將M中所有元素的絕對值求和。具體過程是先歸一化每個特征為相等的激活值,將每一個特征除以其在所有樣本的2范數(shù):
(2)最優(yōu)化高分散性
特征的高分散屬性要求每個特征被恒等激活。在這里,可以直接地強制每個特征的激活值平方后的均值相等。在式(4)中,首先通過將每個特征除以它在所有樣本的L2范數(shù)來歸一化每個特征,使它們具有相同的如式(2)所示的激活值。實際上,它和約束每個特征具有相同的平方期望值有一樣的效果:
因此,它已經(jīng)隱含地優(yōu)化了高分散性。
(3)最優(yōu)化存在稀疏性
該算法的實驗證明,對種群稀疏性和高分散性的優(yōu)化就已經(jīng)優(yōu)化了特征的存在稀疏性。原因是:一個具有種群稀疏性的特征分布在特征矩陣里會存在很多非激活的元素(為0的元素),而且因為滿足高分散性,這些零元素會近似均勻地分布在所有的特征里。因此,每一個特征必然會有一定數(shù)量的零元素,從而保證了存在稀疏性。
3 SF-BPNN特征
3.1 BP神經(jīng)網(wǎng)絡
誤差反向傳播神經(jīng)網(wǎng)絡(Back-PropagationNeuralNetworks,BPNNs)從結構上講,是一種分層式的典型多層網(wǎng)絡,具有輸入層、隱含層和輸出層,層與層之間多采用全連接的方式。同一層單元之間不存在相互連接。圖1給出了一個典型的三層BP神經(jīng)網(wǎng)絡結構。
BP網(wǎng)絡可被看成是一個從輸入到輸出的高度非線性映射,即F:Rm→Rn,Y=f(X)。對于樣本集合:xi(Rm)和yi(Rn),可以認為存在某一種映射g,使g(xi)=yi,i=1,2,…,p。現(xiàn)要求有一個映射f,使得在某種意義下(通常是最小二乘意義下),f是g的最佳逼近。Hecht-Nielsen證明了如下的Kolmogorov定理:給定任一連續(xù)函數(shù)f:U→R,這里U是閉單位區(qū)間[0,1],f可以精確地用一個3層前饋網(wǎng)絡實現(xiàn)。
3.2 SF-BPNN特征
SF-BPNN特征由兩步學習構成:首先,樣本輸入經(jīng)過稀疏濾波,利用該算法產(chǎn)生特征競爭特效,得到降維的初級特征表達;然后,該初級特征被送入BP神經(jīng)網(wǎng)絡,進一步通過非線性函數(shù)映射來建立輸入數(shù)據(jù)的內(nèi)部分布模型,得到學習后的網(wǎng)絡權值。在識別的時候同樣先對測試輸入樣本進行稀疏濾波,再輸入到訓練好的BP網(wǎng)絡之后就能得到直接具有分類效果的SF-BPNN特征。針對具體的一個人臉識別任務,SF-BPNN算法的流程示意圖如圖2所示。
4 實驗結果與分析
在FERET人臉數(shù)據(jù)庫上,使用PCA加各種距離測度作為基準,來跟單獨應用的BP神經(jīng)網(wǎng)絡和本文的SF-BPNN算法進行比較。使用到的距離測度有斯皮爾曼距離(Spearman Distance)、城市街區(qū)距離(Cityblock Distance)和馬氏距離(MahalanobisDistance),其計算公式如下表1所示。分別選擇數(shù)據(jù)庫里200人的1400張圖、100人的700張圖兩種樣本容量。每人的7幅圖片里6張做訓練。1張做測試。使用7折交叉驗證取平均值的方法來計算識別率。首先使用PCA將數(shù)據(jù)集進行降維,分別保留95%、85%和75%的信息量,對應兩種容量大小的樣本集合,輸入數(shù)據(jù)維數(shù)從6400維分別降低到了171維、28維和9維以及122維、24維和8維。然后將降維后的數(shù)據(jù)分別應用各種距離測度和BP神經(jīng)網(wǎng)絡來進行人臉識別。對于本文算法,先利用稀疏濾波將維數(shù)降低到跟PCA同等的數(shù)量,然后BP神經(jīng)網(wǎng)絡采用兩個隱含層,第一個隱層120個神經(jīng)元,神經(jīng)元激活函數(shù)為tansig函數(shù),第二個隱層40個神經(jīng)元,激活函數(shù)為logsig函數(shù)。由于第一隱層采用的tansig函數(shù)值域為[-1,1],所以先把輸入數(shù)據(jù)映射到[-1,1]區(qū)間再作為網(wǎng)絡輸入。網(wǎng)絡的訓練方法采用量化共軛梯度法(Scaled Conjugate Gradient,SCG)或者是彈性BP算法(Resilient?Back Propagation,RPROP)。前面單獨應用的BP網(wǎng)絡跟這個使用相同的結構。這幾種方法計算識別率之后作出如圖3的對比圖。各種方法的識別率列于表2。
說明:以上公式是假設給定m*n的數(shù)據(jù)矩陣x。可視為m個行向量x1,x2,…,xm,兩兩行向量之間xt和xs之間的距離就被定義為dst。
從圖表可以直觀地看出,常用的PCA加距離測度的算法不穩(wěn)定,無法由統(tǒng)一的一種距離測度能在所有試驗條件下都取得最高識別率。甚至有的距離測度在不同條件下識別率差異非常大,性能極不穩(wěn)定。相比之下,神經(jīng)網(wǎng)絡的算法則性能比較穩(wěn)定,識別率基本都保持在50%以上。由于在輸入網(wǎng)絡之前增加了稀疏濾波處理,可以去除許多無關甚至是干擾的信息。因此可以從結果看到本文提出的SF-BPNN算法將單獨應用神經(jīng)網(wǎng)絡的識別率進一步提高了,并且即使濾波后特征維數(shù)只剩下9維也依舊把識別率保持在了60%以上。
5 結束語
本文提出了一種基于稀疏濾波的神經(jīng)網(wǎng)絡人臉識別算法,該算法利用良好表達特征應該具有的三種性質來進行特征稀疏優(yōu)化。從實驗結果上看,該算法的識別精度比PCA降維+距離測度的方法要高,也具有更穩(wěn)定的性能。設計的兩級級聯(lián)特征提取網(wǎng)絡在第一級快速優(yōu)化特征,降低樣本特征維數(shù),得到選擇后的初級特征。接著在第二級采用神經(jīng)網(wǎng)絡來建立輸入數(shù)據(jù)的模型并直接輸出指示類別的信號。并且在FERET人臉數(shù)據(jù)庫上驗證了此方法的有效性。