沈陽理工大學(xué)信息科學(xué)與工程學(xué)院 魏英姿 張?zhí)旌?TETE Komlan Senyo
基于深度置信網(wǎng)絡(luò)的人臉識別方法研究
沈陽理工大學(xué)信息科學(xué)與工程學(xué)院 魏英姿 張?zhí)旌?TETE Komlan Senyo
利用深度學(xué)習(xí)進行人臉識別已成為了當今人工智能領(lǐng)域的重要研究方向。本文采用深度學(xué)習(xí)的DBN網(wǎng)絡(luò)進行人臉識別,融合了局部二值模式LBP算子的穩(wěn)定特征,將提取到的局部紋理特征作為DBN輸入特征,有助于DBN對圖像特征分布的理解,降低網(wǎng)絡(luò)學(xué)習(xí)到不利的特征的。訓(xùn)練時采用無監(jiān)督貪婪訓(xùn)練的方法逐層訓(xùn)練限制玻爾茲曼機(RBM),得到權(quán)重、偏置等參數(shù)并利用訓(xùn)練結(jié)果初始化整個網(wǎng)絡(luò),計算出代價函數(shù),設(shè)置一層誤差反向網(wǎng)絡(luò),進行微調(diào)。用ORL人臉數(shù)據(jù)庫,并添加隨機采樣的人臉數(shù)據(jù)進行識別,識別正確率是令人滿意的。
限制玻爾茲曼機;深度置信網(wǎng)絡(luò);LBP算子;人臉識別
人臉識別是基于人的臉部特征信息進行身份識別的一種生物識別技術(shù)。深度學(xué)習(xí)是機器學(xué)習(xí)研究中的一個新的領(lǐng)域,其動機在于建立、模擬人腦進行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機制來解釋數(shù)據(jù),分為卷積神經(jīng)網(wǎng)絡(luò)、深度置信網(wǎng)絡(luò)以及稀疏自編碼網(wǎng)絡(luò)三大模塊[1]。
本文實驗將LBP與DBN相結(jié)合,克服了深度置信網(wǎng)絡(luò)不能學(xué)習(xí)到人臉圖像局部結(jié)構(gòu)特征的缺點,使得深度置信網(wǎng)絡(luò)學(xué)習(xí)到的抽象特征受光照、微小平移等的影響較小。通過DBN對輸入數(shù)據(jù)進行訓(xùn)練,并進行判別,有效避免了部分因素干預(yù)。并且在網(wǎng)絡(luò)中,沒有設(shè)置相關(guān)學(xué)習(xí)率,而是通過誤差網(wǎng)絡(luò)以及代價函數(shù),讓網(wǎng)絡(luò)得到一個最優(yōu)解。通過對ORL人臉數(shù)據(jù)庫的實驗,我們可以得到結(jié)論,將局部二值模式與DBN網(wǎng)絡(luò)相結(jié)合可以更好的提取人臉特征,展現(xiàn)了其他網(wǎng)絡(luò)不具有的優(yōu)越性。
原始的LBP算子定義為在3*3的窗口內(nèi),其閾值為窗口中心像素,將相鄰的8個像素的灰度值與閾值進行對比,如果周圍像素值大于中心像素值,則這一點的像素位置標記為1,否則標記為0[2]。這樣,3*3窗口相鄰范圍內(nèi)的8個點經(jīng)比較就可以產(chǎn)生8位二進制數(shù)(通常轉(zhuǎn)換為十進制數(shù)即LBP碼,共256種)。原始LBP算子如圖1-1所示。
圖1-1 原始LBP
新的LBP算子LBP(P,R)不僅可以計算不同半徑鄰域大小的特征值還可以計算不同像素點數(shù)的特征值,其中P表示周圍像素點個數(shù),R表示鄰域半徑,如圖1-2所示,為擴展后的LBP[3]。
圖1-2 擴展后的兩種LBP
深度置信網(wǎng)絡(luò)是深度學(xué)習(xí)的一個分支,其目的是模擬人類的大腦進行分析學(xué)習(xí)。深度置信網(wǎng)絡(luò)是一種概率生成模型,由多個受限玻爾茲曼機構(gòu)成,具有強大的非監(jiān)督學(xué)習(xí)能力,與傳統(tǒng)的判別模型的神經(jīng)網(wǎng)絡(luò)相對,用于建立一個觀察數(shù)據(jù)和標簽之間的聯(lián)合分布。
RBM是深度信念網(wǎng)絡(luò)的重要組成部分,具有一個可見層,一個隱藏層,層內(nèi)神經(jīng)元無連接,層間神經(jīng)元全連接??梢妼迂撠?zé)接收輸入信號,隱藏層的作用是作為輸入信號的特征提取器。2002年Hinton提出對比散度算法(CD算法),使限制玻爾茲曼機具有快速學(xué)習(xí)的能力。我們用v表示RBM的可見單元,用h表示隱藏單元,那么聯(lián)合組態(tài)的能量可以表示為:
其中W為連接可見單元與隱層單元的權(quán)重,b為可見單元偏置,a為隱藏單元的偏置。最重要的部分是如何求出。
我們可以將某個組態(tài)聯(lián)合概率分布表示為:
因為隱藏節(jié)點間是相互獨立的,所以對于給定可見層v每個隱層節(jié)點為0或1的概率可以表示為:
同理,每個可見層節(jié)點為0或1的概率為:
然后對以下最大化似然函數(shù)求W,a,b的偏導(dǎo)數(shù),即可得出相關(guān)參數(shù)值。
DBN訓(xùn)練過程大致分為兩步:
1)讀入數(shù)據(jù)文件,用train_x,train_y訓(xùn)練每一層RBM,將第一隱層輸出作為可見層的輸入,再將可見層的輸出作為下一隱層輸入逐層進行無監(jiān)督訓(xùn)練,每一層單獨訓(xùn)練可使特征向量能更多的保留特征信息在不同的特征空間中。
2)最后一層設(shè)置BP網(wǎng)絡(luò),接收RBM的輸出作為BP網(wǎng)絡(luò)的輸入,通過自頂向下進行有監(jiān)督的微調(diào),調(diào)整整個DBN網(wǎng)絡(luò),使整個DBN的特征向量映射達到最優(yōu)。
本文結(jié)合LBP與深度信念網(wǎng)絡(luò)的人臉識別模型圖如圖3-1所示[4]。
圖3-1 人臉識別模型
該實驗包括以下幾個步驟:
步驟1:對人臉數(shù)據(jù)庫進行預(yù)處理,train_x將ORL庫中每人7張圖片用于訓(xùn)練,3張用于測試(即test_x),train_y將人臉庫的每人8張圖片用于訓(xùn)練,2張圖片用于測試(即test_y),并且將測試樣本,訓(xùn)練樣本歸一化到[0,0.5];
步驟2:將人臉圖片進行4*4分塊,LBP的P設(shè)為8,R設(shè)置為1,分別對每塊進行LBP人臉特征提取;
步驟3:讀取train_x,train_y,逐層訓(xùn)練RBM網(wǎng)絡(luò),再將訓(xùn)練結(jié)果進行調(diào)優(yōu),訓(xùn)練整個DBN網(wǎng)絡(luò),并且在程序中,運用了反向傳播算法和代價函數(shù),使用fmincg函數(shù)去得到最優(yōu)解;
步驟4:統(tǒng)計識別錯誤的樣本數(shù),得到識別結(jié)果。
ORL人臉庫有40個人,每個人有10種不同方向,表情的圖片(圖4-1)。本次實驗還添加了隨機圖片進行識別。將這些圖片進行預(yù)處理,并將其分成測試集與訓(xùn)練集去訓(xùn)練DBN網(wǎng)絡(luò)。
圖4-1 實驗新增部分人臉數(shù)據(jù)
表1顯示了本次實驗的識別結(jié)果,并列舉了迭代次數(shù)所對應(yīng)的花費時間及錯誤率。從此表可以得到結(jié)論:當網(wǎng)絡(luò)迭代3000次時,識別錯誤率為0.025,即正確率可達97.5%。
表1 識別結(jié)果
本文融合了LBP算子的DBN網(wǎng)絡(luò)人臉識別,將ORL人臉庫分為訓(xùn)練集和測試集,采用LBP算子4*4分塊模式進行特征提取,DBN網(wǎng)絡(luò)設(shè)為4層結(jié)構(gòu)。通過實驗可以看出訓(xùn)練樣本以及隱層節(jié)點的錯誤率都在0.5%以下,通過識別結(jié)果可以得出結(jié)論,在迭代次數(shù)3000次時,識別正確率可達97.5%。驗證了結(jié)合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與深度學(xué)習(xí)的非限制條件下人臉識別算法[J].通信學(xué)報,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.