周鵬
摘 要:人臉自動識別是圖像識別[1]領域的一個研究熱點,有著廣泛的應用前景。對于靜態人臉識別問題,BP神經網絡方法有較強的適應性和易于實現等優點。但采用BP神經網絡進行人臉識別也存在學習時間長,識別率不高等缺點。本文根據BP神經網絡的基本原理,自行設計了一個簡單且易于實現的BP神經網絡,該網絡在訓練樣本數較為充足并且學習較為充分的條件下能獲得較好的人臉識別效果。并在此基礎上,通過對原樣本數據進行NMF特征提取操作,再結合該BP網絡用于人臉識別。該網絡克服了單一BP神經網絡學習時間長、識別效率低的缺點,獲得了更加有效的識別效果。
關鍵詞:BP神經網絡;NMF;人臉識別
一、BP神經網絡
BP(Back Propagation)是一種按誤差反向傳播算法訓練的多層前饋網絡。它的學習規則是使用梯度下降法,通過反向傳播來不斷調整網絡的權值和閾值,使網絡的誤差平方和最小。BP神經網絡模型拓撲結構包括輸入層、隱含層和輸出層。本文BP神經網路根據樣本數據維數大小,預先隨機設定各網絡層權值、閾值向量。根據輸入的樣本數據,計算輸出層和隱含層的誤差項,再根據誤差項反向調節各層的網絡權值和閾值。根據設定的迭代運算次數終止BP神經網絡的學習。本文自行設計的BP神經網絡也共分為3層,并根據單個樣本數據的大小,設定BP網絡輸入層節點數。由于該BP網絡只被用于判斷4個不同的人臉,所以該網絡的輸出層節點數設為4個。
下面具體介紹該BP網絡識別人臉的實現過程。本試驗使用的數據是來自CMU_PIE人臉數據庫,取其中4個不同的人,每個人有170幅神情、光照、拍照角度等不同的人臉圖像。將這不同的170幅人臉樣本分成訓練樣本和測試樣本,訓練樣本數和測試樣本數均比較充裕。而BP神經網絡正需要較為充足的樣本數據進行訓練才會獲得不錯的學習效果,同時也只有對較多的測試樣本進行識別,這種識別結果才具有一定的說服力。其次是要對試驗數據進行預處理,將不同的四個人臉圖像添加標簽,即給四個不同的人取名,方便后面的學習和最后的識別。取每人170幅人臉圖像中的90幅作為訓練數據,剩下的80幅作為測試數據。需要重點說明的是如何將這360個人臉矩陣輸入到BP網絡并依此迭代學習。首先我們要將所有樣本數據按順序讀入到一個矩陣中,將每一個樣本矩陣首尾相連,變成新矩陣B中的一行。經過這樣的處理,則B矩陣中的每一行數據就代表一個原二維圖像矩陣數據。然后選擇矩陣B中前360行數據隨機帶入BP網絡進行學習,360個數據完全學習完一次,即是BP網絡迭代學習了1次。訓練完之后可以使用該網絡判別B矩陣的后320幅數據(測試樣本)。根據一定的判別規則和事先的人臉命名來判斷識別的正確與否,最后統計識別正確的人臉個數,得出網絡的正確識別率。
然而當樣本數據維數較大時,直接使用BP網絡對原數據訓練測試時,使得運算量巨大,BP網絡學習時間過長,識別效果也不能令人滿意。所以我們在使用BP網絡之前,先對原數據進行特征提取,提取得到較好的少量數據用于BP網絡計算,不僅減少了訓練時間,還提高了BP網絡的識別率。特征提取要達到的目的就是通過映射的方法,將高維空間中的數據用更易于分類的低維空間中的數據來表示。
二、NMF(Non-negative Matrix Factorization)
非負矩陣分解(NMF)[2][3]是在矩陣中所有元素均為非負數約束條件之下的矩陣分解方法。經典的NMF算法是將一個大小為m·n的原樣本矩陣V分解成一個大小為m·r的非負矩陣W和另一個大小為r·n的非負矩陣H的乘積,使得Vm·n·Wm·rHr·n。當r滿足一定條件,可以使得分解后的矩陣小于原樣本大小,從而達到降維的目的。最后再使用分解后得到的系數矩陣H來代替原矩陣V,帶入BP網絡計算就可以了。這里需要注意,兩個非負矩陣Wm·r和Hr·n初始值由計算機隨機賦值,分解降維后的特征數r和分解的乘性迭代次數n需要根據實驗效果自行設定。一般來說迭代次數不需要設定太大,設定的值越大,迭代運算的時間則越長。同時降維后的特征數r也不應選擇太接近原樣本維數,否則不能達到降維目的。
三、實驗結果與分析
本文使用的BP神經網絡,迭代學習次數設為10,學習速率設為0.1。取680幅原樣本中360幅作為訓練樣本,其余作為測試樣本。這里還需注意一點,由于BP網絡權值、閾值是計算機隨機選取的,使得每次實驗結果呈現出一定隨機性。為了便于更好地反應網絡識別效果的好壞,我們將每個網絡各實驗10次,并計算10次結果的平均值。通過10次識別率的平均值大小和10次中的最高、最低識別率來衡量網絡的識別效果。單一的BP網絡和NMF+BP網絡10次識別結果如下:
從實驗結果可以看出,使用NMF方法預處理后,使得BP網絡的正確識別率更高。當NMF分解迭代次數選擇40,維數r選擇173時,NMF+BP網絡識別效果相對最好,網絡平均正確識別率高達98.7%,最小一次識別率為96.6%,最高識別率達到100%。而單獨使用BP網絡的平均識別率只有93.3%,且第九次的正確識別率只有75.9%。由此可見,在進行BP網絡訓練識別前,先使用NMF方法處理原樣本數據,將原樣本大小壓縮至173,這樣既簡化了計算,也簡化了BP網絡結構。同時還提高了學習速率和平均正確識別率,提升了網絡的整體穩定性。
四、結束語
基于NMF和BP神經網絡的人臉識別方法,相比較于單獨的BP網絡人臉識別方法,識別效果得到了較大提高。然而NMF分解算法的迭代次數和提取特征數的選取仍然是經過大量的組合選取實驗得來的,缺乏科學性的選擇方法。下一步研究應是以如何科學地選擇提取特征數和分解迭代次數為目標,以獲得更加簡單高效的NMF+BP網絡用于人臉識別。(作者單位:河南財經政法大學)
參考文獻:
[1] 許錄平. 數字圖像處理[M]. 北京: 科學出版社. 2007.
[2] Lee D D,Seung H S. Learning the parts of objects by non-negative matrix factorization. Nature,1999,401(6755):788–791.
[3] 劉維湘,鄭南寧,游屈波. 非負矩陣分解及其在模式識別中的應用[J].科學通報,2006.51(3):241-250.