滿忠昂 劉紀敏 孫宗錕
摘? 要:針對現(xiàn)在的大多算法在提取人臉特征時直接提取整個人臉,而忽略局部的細節(jié)特征,提出一種將人臉圖像進行分塊局部運用LBP算子然后與深度置信網(wǎng)絡結合的人臉識別算法(BPBN)。首先,將人臉圖像進行分塊,對分塊后的圖像提取LBP進行統(tǒng)計,將生成的LBP直方圖按照一定秩序組合連接成新的特征向量。其次,將得到的LBP特征作為深度置信網(wǎng)絡(DBN)的輸入,采用貪婪算法逐層進行訓練,然后用反向傳播(BP)算法對訓練得到的深度置信網(wǎng)絡進行優(yōu)化。最后,用訓練好的深度置信網(wǎng)絡對人臉進行識別。在ORL人臉數(shù)據(jù)庫上進行實驗,識別率達到96.0%,然后與傳統(tǒng)的主成分分析(PCA)算法集成支持向量機(SVM)的方法進行相比,識別率有較為顯著的提升,說明該方法具有更好的人臉識別效果。
關鍵詞:局部二值模式;人臉識別;受限波爾茲曼機;深度置信網(wǎng)絡
中圖分類號:TP183? ? ?文獻標識碼:A
Abstract: In view of the fact that most current algorithms directly extract the entire face when extracting face features, and ignore local detailed features, this paper proposes BPBN, a face recognition algorithm that uses the LBP operator to divide the face image into blocks and then combines it with deep belief networks algorithm. First, the face image is divided into blocks, and the LBP is extracted from the divided images for statistics, and the generated LBP histograms are combined in a certain order to form a new feature vector. Secondly, the obtained LBP features are used as the input of Deep Belief Network (DBN), and the greedy algorithm is used to train layer by layer, and then the back propagation (BP) algorithm is used to optimize the trained deep confidence network. Finally, the trained deep belief network is used to recognize faces. Experiments on the ORL face database show that the recognition rate reaches 96.0%, significantly improved compared with the traditional principal component analysis (PCA) algorithm integrated support vector machine (SVM) method, which indicates that the method has better face recognition results.
Keywords: local two value model; face recognition; restricted Boltzmann machine; Deep Belief Network (DBF)
1? ?引言(Introduction)
人臉識別是計算機視覺領域的重點研究課題,人臉識別的實際應用:由人臉識別衍生出來的人臉檢索、人臉校驗等應用被廣泛用于家居安防、人機交互、公安部門等重要行業(yè)。隨著計算機計算速度的增加和人工智能的發(fā)展,人臉識別算法發(fā)展迅速[1-6],對各行各業(yè)的影響都非常大,能夠積極提高人們生活各方面的方便性和安全性等。
人臉識別就是對人臉圖像的特征信息進行識別的技術,在這個過程中,對人臉圖像進行信息的提取和檢測,進而來進行身份識別。人臉識別的傳統(tǒng)方法比較常見的是基于幾何結構方法,該方法通過對人臉面部的幾何信息進行提取為相應的幾何結構,對結構進行詳細分析和處理,通過幾何特征矢量來反映面部幾何信息,從而進行相應的信息匹配。此傳統(tǒng)方法難點在于如何精確地對特征信息進行匹配,要求比較高也使得該方法適應性不足[7-9]。因此,Sirovich等人提出了PCA應用和基于主成分分析的特征臉方法[10,11],該方法保留了人臉圖像信息之間的幾何關系和部分局部特征,在整體人臉特征信息提取的情況下,還具有計算量小、描述能力強、可分性好等優(yōu)點?;诰植刻卣鞣椒ǎ涸摲椒ㄖ饕ň植慷的J剑↙BP)、Gabor變換[12]。這兩種局部特征方法各有優(yōu)劣,局部二值模式算法能夠快速計算,對光照強度的改變等感應不敏感,不足之處在于位置方向的改變以及聲音方面的敏感性都不是很突出。而Gabor變換算法與局部二值模式算法有很大不同,該算法具有對光照改變的不敏感,以及更全面提取特征信息的特點,但是計算量大且耗時,產(chǎn)生的冗余度比較大。
本文根據(jù)上述不足,提出BPBN模型,該模型通過分塊提取人臉圖像的LBP特征統(tǒng)計生成LBP直方圖,然后將得到的LBP特征作為深度置信網(wǎng)絡(DBN)的輸入,采用貪婪算法逐層進行訓練,然后用反向傳播(BP)算法對訓練得到的深度置信網(wǎng)絡進行優(yōu)化;最后,用訓練好的深度置信網(wǎng)絡對人臉進行識別。在ORL人臉數(shù)據(jù)庫上進行實驗,通過實驗表明該方法比PCA+SVM的方法具有更好的人臉識別效果。
2? ?LBP算子和深度學習理論(LBP operator and deep learning theory)
2.1? ?LBP算子
LBP是一種紋理描述算子。在LBP算子定義中,是通過選取一個3×3的區(qū)域,在這個區(qū)域中包含一個中心像素,將閾值用中心像素來進行設置,這個區(qū)域內的其他像素與閾值進行對比,進一步得到二進制碼,得到的二進制碼可以描述圖像的局部特征。二進制碼的具體步驟為:大于閾值的,用1表示,反之用0表示。按照這種步驟得出的結果,通過順時針的方式進行放置,得出一個8位的二進制碼,為了得到中心像素的LBP值,通過換為十進制的方式實現(xiàn)。
在大小為3×3的區(qū)域上的LBP模式在實際應用中受到了一定程度的限制,主要原因在于:
(1)對于3×3這個區(qū)域大小,在實際應用的圖像中顯得太小,不能更好地描述局部特征;
(2)在選取的那個區(qū)域系統(tǒng)上,不容易旋轉不變特征的處理。
為了解決上述問題(1),通過將3×3的區(qū)域擴展為任意鄰域的方式,得到可變區(qū)域LBP。如果用P表示鄰域點的個數(shù),R表示圓形鄰域的半徑,新的LBP算子表示為。
從LBP算子的定義能夠得出,通過比較得出二進制模式的個數(shù)與鄰域集中的采樣個數(shù)密切相關,例如會產(chǎn)生種模式。通過增加鄰域采樣點個數(shù),二進制模式的個數(shù)是幾何增長的。針對這個問題,對二進制模式進行改進,提出等價模式,也稱為均勻LBP。等價模式的原理就是將LBP算子所得的二進制序列進行首尾連接,當存在序列從0到1或是從1到0的變化不超過2次的情況。例如:00000000(0位轉變)、01110000(2位轉變)、11001111(2位轉變)是等價模式,而11001001(4位轉變)、01010010(6位轉變)這種就不能叫作等價模式。通過優(yōu)化的二進制模式,種數(shù)變?yōu)椋谝欢ǔ潭壬辖档土颂卣餍畔⒌木S數(shù),經(jīng)過統(tǒng)計,均勻LBP在整個的LBP特征中占85%—90%,所以不會對數(shù)據(jù)信息的遺漏,還會減少高頻噪聲的影響。
提取整個圖像的LBP信息形成直方圖來描述人臉特征時,只能得到圖像的整體紋理和輪廓特征,而圖像的具體特征細節(jié)得不到充分地描述。針對這個問題,分塊思想被提出,將圖像分塊的基本思想是,在圖像的局部區(qū)域運用LBP算子,然后把在每一個局部區(qū)域產(chǎn)生的直方圖進行組合形成一個新的特征向量。通過這種方式,整個圖像就由很多個統(tǒng)計直方圖來進行表示。分塊LBP直方圖的提取過程如下:
(1)對實驗數(shù)據(jù)進行分塊處理,將實驗圖像分為(N×N),如圖2所示。
(2)分塊處理之后對每一部分進行LBP提取,從而生成LBP直方圖,如圖3所示。
(3)通過(1)(2)得到多個直方圖,按照得到的順序進行排列,形成一個新的特征向量。
2.2? ?受限玻爾茲曼機
受限玻爾茲曼機(RBM)是一種特殊形式的玻爾茲曼機,從本質上說,它是一個隨機的二值化對稱連接的神經(jīng)網(wǎng)絡。能夠把無向圖的所有節(jié)點劃分成兩層,在一層中的節(jié)點之間是不相連的,層與層之間的節(jié)點互相連接。其結構如圖4所示。
RBM網(wǎng)絡結構是由兩層構成的,通過向量表示層。第一層通過可見單元(顯元)構成的可視層,記為v,這可以成為數(shù)據(jù)的輸入;第二層通過可見隱單元(隱元)構成的隱藏層,記為h,這可以在數(shù)據(jù)的特征提取中發(fā)揮作用。第一層和第二層的節(jié)點之間的連接權重矩陣為W,權重為對稱連接,即Wij=Wji。
其中,是RBM的參數(shù),這些參數(shù)均為實數(shù)。其中Wij表示第i個顯元與第j個隱元之間的連接權重,ci表示第i個單元的偏置,bj表示第j個單元的偏置。通過無向圖能夠看出,(v,h)的聯(lián)合概率密度用式子可表示為:
2.3? ?深度置信網(wǎng)絡
深度置信網(wǎng)絡(Deep Belief Network, DBN)是一種深度神經(jīng)網(wǎng)絡模型,這個模型是用概率來對數(shù)據(jù)進行輸出結果的。模型在訓練初期,要得到每個神經(jīng)元的初始權重,運用無監(jiān)督學習方法來進行計算,得到初始值之后,在這基礎上運用監(jiān)督學習方法來對數(shù)據(jù)進行學習,從而得到整個神經(jīng)網(wǎng)絡的權值。
DBN由多層的受限玻爾茲曼機(RBM)累疊而成,每個隱藏層都RBM的一個可視層和一個隱層構成。層跟層的神經(jīng)元是全部連接的,在每層中的神經(jīng)元是不聯(lián)系的。在網(wǎng)絡中,最上面兩層的神經(jīng)元連接是無向的,剩下的層中連接是有向的,在最下面一層對數(shù)據(jù)向量進行表示,有多少個神經(jīng)元就代表該數(shù)據(jù)向量有多少維度。用聯(lián)合概率分布表示輸入向量v和隱含向量h之間的關系:
在深度置信網(wǎng)絡工作時,第一步進行預訓練,得到初始權重;第二步在網(wǎng)絡后期學習中,進行參數(shù)的調整。
網(wǎng)絡工作的具體流程為:首先在可見層輸入數(shù)據(jù),產(chǎn)生一個向量v然后傳遞給隱層。隱層由多個RBM組成,首先由最底層的RBM的隱藏單元對可視單元重新構造,然后對下一層的RBM的隱藏單元進行傳遞,通過無監(jiān)督的貪婪訓練方法逐層訓練獲得整個DBN的模型,然后對模型進行參數(shù)的調整,從而優(yōu)化完成,得到最終的網(wǎng)絡模型??梢园丫唧w流程分為兩個部分:預訓練和參數(shù)調整。
3? 實驗結果及分析(Experimental results and analysis)
3.1? ?BPBN模型
BPBN模型主要功能包括了局部二值模式和置信網(wǎng)絡,模型先將圖片分塊,之后對分塊進行特征提取,統(tǒng)計分塊直方圖,之后組成全局特征向量,并將其作為模型輸入數(shù)據(jù)放入置信網(wǎng)絡進行參數(shù)訓練,之后根據(jù)后向傳播算法對參數(shù)進行誤差調整,后通過輸出層分類,模型框架如圖5所示。
3.2? ?實驗環(huán)境和結果分析