沈陽理工大學信息科學與工程學院 魏英姿 張天浩 TETE Komlan Senyo
基于深度置信網絡的人臉識別方法研究
沈陽理工大學信息科學與工程學院 魏英姿 張天浩 TETE Komlan Senyo
利用深度學習進行人臉識別已成為了當今人工智能領域的重要研究方向。本文采用深度學習的DBN網絡進行人臉識別,融合了局部二值模式LBP算子的穩定特征,將提取到的局部紋理特征作為DBN輸入特征,有助于DBN對圖像特征分布的理解,降低網絡學習到不利的特征的。訓練時采用無監督貪婪訓練的方法逐層訓練限制玻爾茲曼機(RBM),得到權重、偏置等參數并利用訓練結果初始化整個網絡,計算出代價函數,設置一層誤差反向網絡,進行微調。用ORL人臉數據庫,并添加隨機采樣的人臉數據進行識別,識別正確率是令人滿意的。
限制玻爾茲曼機;深度置信網絡;LBP算子;人臉識別
人臉識別是基于人的臉部特征信息進行身份識別的一種生物識別技術。深度學習是機器學習研究中的一個新的領域,其動機在于建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,分為卷積神經網絡、深度置信網絡以及稀疏自編碼網絡三大模塊[1]。
本文實驗將LBP與DBN相結合,克服了深度置信網絡不能學習到人臉圖像局部結構特征的缺點,使得深度置信網絡學習到的抽象特征受光照、微小平移等的影響較小。通過DBN對輸入數據進行訓練,并進行判別,有效避免了部分因素干預。并且在網絡中,沒有設置相關學習率,而是通過誤差網絡以及代價函數,讓網絡得到一個最優解。通過對ORL人臉數據庫的實驗,我們可以得到結論,將局部二值模式與DBN網絡相結合可以更好的提取人臉特征,展現了其他網絡不具有的優越性。
原始的LBP算子定義為在3*3的窗口內,其閾值為窗口中心像素,將相鄰的8個像素的灰度值與閾值進行對比,如果周圍像素值大于中心像素值,則這一點的像素位置標記為1,否則標記為0[2]。這樣,3*3窗口相鄰范圍內的8個點經比較就可以產生8位二進制數(通常轉換為十進制數即LBP碼,共256種)。原始LBP算子如圖1-1所示。

圖1-1 原始LBP
新的LBP算子LBP(P,R)不僅可以計算不同半徑鄰域大小的特征值還可以計算不同像素點數的特征值,其中P表示周圍像素點個數,R表示鄰域半徑,如圖1-2所示,為擴展后的LBP[3]。

圖1-2 擴展后的兩種LBP
深度置信網絡是深度學習的一個分支,其目的是模擬人類的大腦進行分析學習。深度置信網絡是一種概率生成模型,由多個受限玻爾茲曼機構成,具有強大的非監督學習能力,與傳統的判別模型的神經網絡相對,用于建立一個觀察數據和標簽之間的聯合分布。
RBM是深度信念網絡的重要組成部分,具有一個可見層,一個隱藏層,層內神經元無連接,層間神經元全連接。可見層負責接收輸入信號,隱藏層的作用是作為輸入信號的特征提取器。2002年Hinton提出對比散度算法(CD算法),使限制玻爾茲曼機具有快速學習的能力。我們用v表示RBM的可見單元,用h表示隱藏單元,那么聯合組態的能量可以表示為:

其中W為連接可見單元與隱層單元的權重,b為可見單元偏置,a為隱藏單元的偏置。最重要的部分是如何求出。
我們可以將某個組態聯合概率分布表示為:

因為隱藏節點間是相互獨立的,所以對于給定可見層v每個隱層節點為0或1的概率可以表示為:

同理,每個可見層節點為0或1的概率為:

然后對以下最大化似然函數求W,a,b的偏導數,即可得出相關參數值。

DBN訓練過程大致分為兩步:
1)讀入數據文件,用train_x,train_y訓練每一層RBM,將第一隱層輸出作為可見層的輸入,再將可見層的輸出作為下一隱層輸入逐層進行無監督訓練,每一層單獨訓練可使特征向量能更多的保留特征信息在不同的特征空間中。
2)最后一層設置BP網絡,接收RBM的輸出作為BP網絡的輸入,通過自頂向下進行有監督的微調,調整整個DBN網絡,使整個DBN的特征向量映射達到最優。
本文結合LBP與深度信念網絡的人臉識別模型圖如圖3-1所示[4]。

圖3-1 人臉識別模型
該實驗包括以下幾個步驟:
步驟1:對人臉數據庫進行預處理,train_x將ORL庫中每人7張圖片用于訓練,3張用于測試(即test_x),train_y將人臉庫的每人8張圖片用于訓練,2張圖片用于測試(即test_y),并且將測試樣本,訓練樣本歸一化到[0,0.5];
步驟2:將人臉圖片進行4*4分塊,LBP的P設為8,R設置為1,分別對每塊進行LBP人臉特征提取;
步驟3:讀取train_x,train_y,逐層訓練RBM網絡,再將訓練結果進行調優,訓練整個DBN網絡,并且在程序中,運用了反向傳播算法和代價函數,使用fmincg函數去得到最優解;
步驟4:統計識別錯誤的樣本數,得到識別結果。
ORL人臉庫有40個人,每個人有10種不同方向,表情的圖片(圖4-1)。本次實驗還添加了隨機圖片進行識別。將這些圖片進行預處理,并將其分成測試集與訓練集去訓練DBN網絡。

圖4-1 實驗新增部分人臉數據
表1顯示了本次實驗的識別結果,并列舉了迭代次數所對應的花費時間及錯誤率。從此表可以得到結論:當網絡迭代3000次時,識別錯誤率為0.025,即正確率可達97.5%。

表1 識別結果
本文融合了LBP算子的DBN網絡人臉識別,將ORL人臉庫分為訓練集和測試集,采用LBP算子4*4分塊模式進行特征提取,DBN網絡設為4層結構。通過實驗可以看出訓練樣本以及隱層節點的錯誤率都在0.5%以下,通過識別結果可以得出結論,在迭代次數3000次時,識別正確率可達97.5%。驗證了結合LBP與DBN的人臉識別具有較好的識別效果。
[1]Hinton G.E,Osindero S,Yw.T.A Fast Learning Algorithm for Deep Belief Nets[J].Neural Computation 2006,18(7).
[2]梁淑芬,劉銀華,等.基于LBP與深度學習的非限制條件下人臉識別算法[J].通信學報,2014.
[3]Song K,Yan Y,Chen W,et.Local binary pattern method research and prospects[J].Journal of Automatic Sinica,2013,39(6):730-744.
[4]Luo P,Wang X,Tang X.Hierarchical face parsing via deep learning [C]Computer Vision and Pattern Recognition(CPVR).2012 IEEE Conference on IEEE,2012:2480-2487.