(華東交通大學 電氣與自動化工程學院,江西 南昌 330013)
目前,人臉識別已經(jīng)成為機器視覺、模式識別和人工智能領域的熱門話題,具有廣泛的應用領域,但它也是一項具有挑戰(zhàn)性的任務[1],因為不同人的五官差異巨大,并且有著豐富的表情。一般來說,人臉識別系統(tǒng)具有兩個關鍵部分[2]:人臉面部特征提取和識別匹配。
面部特征提取是人臉識別任務的關鍵問題。為了表征人臉信息,提取的特征是否合適對后一步分類性能產(chǎn)生重要影響。文獻[3]提出對人臉圖像進行多方向多尺度DCP(Dual-Cross Patterns)特征提取,利用高斯算子的一階導數(shù)來減少光照差異的影響,然后在全局和分區(qū)級別計算DCP特征,再對高維DCP特征降維,實驗結(jié)果表明該方法能達到較高識別率,但是使用該方法提取得到的人臉特征維數(shù)過高,計算量較大,復雜度較高,導致識別速度較久。文獻[4]提出對人臉圖像使用Gabor相位圖的直方圖來進行特征提取,與其他特征提取技術相比,使用Gabor算子可以更快地完成特征檢測,然而,單一特征對人臉圖像的表述有限,不能完整地表達人臉圖像的信息。文獻[5]提出了一種將人臉圖像的局部二值模式(Local Binary Pattern,LBP)紋理特征和方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征相融合的特征表達方法,實驗結(jié)果表明,相較于使用單一特征,融合特征能更完整地表達人臉信息,達到更好的效果。
在分類識別算法方面,目前廣泛研究的有支持向量機(Support Vector Machine,SVM)[6]、決策樹、K最近鄰(K-Nearest Neighbor,KNN)[7]等。文獻[8]采用了一種基于TBE-CNN(Trunk-Branch Ensemble Convolutional Neural Networks)模型用于人臉識別方法,該方法從整體臉部圖像和圍繞臉部分區(qū)圖像中提取信息,通過在干線和分支網(wǎng)絡之間共享低層和中層卷積層來高效地提取人臉信息特征,最后實驗驗證了所提出方法的有效性。然而,直接以像素級的人臉圖像作為輸入,CNN模型會因為光照、傾斜、背景變化學習到不良的特征,最終影響識別的結(jié)果。Hinton[9]提出深信念網(wǎng)絡(Deep Belief Nets,DBN)模型,DBN是一種模擬哺乳動物大腦皮層的感知過程,通過逐層訓練,將感知的高維度低層次的信息分類識別的深度學習算法。DBN作為一種深度學習算法,適合人臉的識別。
為了獲得更高的人臉識別準確率,針對以上人臉識別算法的問題,筆者提出了多紋理特征融合,主成分分析法(Principal Component Analysis,PCA)[10]將特征數(shù)據(jù)進行降維處理,結(jié)合DBN強大的函數(shù)表達能力對人臉數(shù)據(jù)進行訓練并識別。通過對DBN深度模型的參數(shù)的動態(tài)搜索確定最佳值后,提出了基于DBN模型的人臉識別算法。經(jīng)測試,該算法比傳統(tǒng)的SVM、KNN和DBN更加準確。
DBN是一個典型的多層次深度學習結(jié)構(gòu),是由多層限制玻爾茲曼機(RBM)疊加組成的概率生成神經(jīng)網(wǎng)絡。典型的DBN結(jié)構(gòu)如圖1所示。
RBM是一種典型的神經(jīng)網(wǎng)絡,由2層神經(jīng)元組成,分別稱為可見層和隱藏層,可見層與隱藏層的神經(jīng)元之間為雙向連接,同一層RBM的單元不相互連接。本質(zhì)上,RBM是一個二部圖,它的隱藏層能夠獲得可見層神經(jīng)元的輸入數(shù)據(jù)的高階相關性。RBM的可見層用v表示,用于接收輸入信號,隱藏層由h表示,可視為是輸入信號的特征提取器。RBM模型如圖2所示。
圖1 DBN深度信念模型
圖2 受限玻爾茲曼機(RBM)
DBN的關鍵特征是它的相鄰層可以分成幾個獨立的RBM。DBN的原理是采用最底層DBN的輸出作為下一層的輸入,然后將下一層的輸出作為更高層的輸入。在實踐中,DBN的訓練過程包括兩個步驟:預訓練和微調(diào)。
(1) DBN預訓練。
預訓練本質(zhì)上是一種自下而上的無監(jiān)督學習過程。由于RBM無法完美模擬原始數(shù)據(jù)的特征,因此需要更高層次的網(wǎng)絡來模擬特征,無監(jiān)督訓練的貪婪學習方法是有效的。這種方法也被稱為對比散度法(Contrastive Divergence,CD)。該CD學習方法有效地提高了基于混合模型的似然概率的訓練數(shù)據(jù)下界。作為能量模型,RBM通過使用以下能量函數(shù)來表征可見和隱藏層之間的關系。
RBM的能量函數(shù)為
(1)
θ={w,b,c}
式中,wij為可見層神經(jīng)元vi和隱藏層神經(jīng)元hj之間的關聯(lián)強度;偏置系數(shù)bi和cj分別為可見層神經(jīng)元vi和隱藏層神經(jīng)元hj自身的權(quán)重。
該模型可見層和隱藏層的聯(lián)合概率分布為
(2)
vi和hj只能是“0”或“1”的二值函數(shù),“1”表示該神經(jīng)元被激活,“0”為沒有激活。在一個RBM中,隱藏層神經(jīng)元被可見層激活的概率為
(3)
由于可見層和隱藏層是雙向連接的,可見層神經(jīng)元被隱藏層激活的概率為
(4)
為了在一階方法中優(yōu)化v的對數(shù)似然性,需要logP(v)關于θ的梯度為
(5)
(6)
(7)
根據(jù)以上3個梯度公式,經(jīng)過若干次對比散度迭代訓練,就可以求出網(wǎng)絡參數(shù)。
(2) DBN微調(diào)。
預訓練之后,RBM模型的每一層都已初始化。所有的RBM模型按照訓練順序粘接在一起形成一個DBN。調(diào)整訓練過程基于輸入數(shù)據(jù)和重構(gòu)數(shù)據(jù)之間的損失函數(shù)。采用反向傳播算法重新調(diào)整網(wǎng)絡參數(shù),最終得到全局最優(yōu)網(wǎng)絡。輸入數(shù)據(jù)與重構(gòu)數(shù)據(jù)之間的使用損失函數(shù)為
(8)
式中,x為輸入數(shù)據(jù),x′為重建數(shù)據(jù);‖·‖2表示重建誤差的L2范數(shù)形式。
DBN模型的預訓練過程的本質(zhì)就是求取每一層RBM的參數(shù),將與訓練獲取到的參數(shù)作為BP網(wǎng)絡的初始化參數(shù),利用BP網(wǎng)絡對預訓練參數(shù)進行整體微調(diào),從而克服訓練時間過長以及陷入局部最優(yōu)解的缺點。
本文提出了一種基于全局人臉圖像HOG特征和分區(qū)人臉圖像TPLBP特征融合的人臉識別新框架,它結(jié)合了HOG特征和TPLBP特征的優(yōu)點,優(yōu)勢互補,統(tǒng)一融合特征可以濾除噪音,更好地表達人臉紋理信息。
LBP特征是描述圖像的紋理信息最好的特征之一,具有旋轉(zhuǎn)不變性和對單調(diào)灰度變化的不變性,區(qū)分性高,且其分類能力強、計算效率高,使其適用于要求苛刻圖像分析人物,已經(jīng)被Ahonen[11]等人應用于人臉識別并取得了很好的效果。為了使LBP算子能夠適應不同尺度的紋理特征,Wolf[12]等人提出了一種改進的LBP算子——Three-Patch LBP Codes(TPLBP),TPLBP將3×3鄰域拓展到了任意鄰域,不再是中心像素灰度值與其方形鄰域像素之間灰度值比較,而是通過比較3個鄰域局部塊像素的灰度值來產(chǎn)生代碼,分配給每個像素單個的比特值。其中,中心塊、鄰域局部塊的維度以及中心塊和周圍局部塊之間的距離都是任意的。
用α和w分別表示中心塊和局部塊的維度,S個局部塊均勻分布在以中心塊為原心、半徑為r的環(huán)中,沿著該環(huán)取一對局部塊,并將它們的灰度值與中心塊的灰度值進行比較。根據(jù)兩個局部中的灰度值哪一個更加類似于中央塊的像素值來設置單個比特的值。通過對每個像素應用式(9)來生成TPLBP:
(9)
式中,Ci和C(i+α)mods分別為沿著環(huán)的兩個局部塊;Cp為中心塊。 函數(shù)d是兩個塊之間的任意距離函數(shù),τ是略大于零的閾值。具體的TPLBP算子運算過程如圖3所示,計算式中,α=2,S=8,w=3。
可見,TPLBP特征算子作為紋理描述算子,不僅保留了LBP算子旋轉(zhuǎn)不變性和灰度不變性的優(yōu)點,相比LBP其維數(shù)大大降低,具有更高的計算效率。由于TPLBP是以中心對稱方式進行特征提取的,所以TPLBP比LBP具有更強的抗噪能力。
為了更好地描述圖像局部的紋理差異,在保留全局紋理特性的基礎上能增加微觀紋理信息,將整幅圖像劃分成若干成若干子塊圖像,分別提取各個子塊內(nèi)的TPLBP特征直方圖,然后按照先行后列的順序組合成整幅圖像的TPLBP直方圖。圖4為分區(qū)TPLBP 直方圖的構(gòu)建過程圖。
HOG作為SIFT特征的關鍵點描述,在對象檢測和模式匹配方面取得了巨大的成功。HOG提取的紋理特征不僅可以詳盡地表述圖像內(nèi)容,還能弱化光線干擾,同時,可以忽略細微的面部表情動作而不影響檢測效果。
圖4 分區(qū)TPLBP直方圖的構(gòu)建過程
HOG特征提取過程如圖5所示,具體步驟如下[13]。
圖5 HOG 特征提取過程
① 對采集到的圖像先做Gamma標準化處理,消除光照變化的影響。
② 將處理后的圖像分割為若干個小塊(block),每塊由4個細胞單元(cell)組成。計算圖像中像素點(x,y)處的水平方向梯度和垂直方向梯度為
Gx(x,y)=H(x+1,y)-H(x-1,y)
(10)
Gy(x,y)=H(x,y+1)-H(x,y-1)
(11)
像素點(x,y)處的梯度幅值和梯度方向分別為
(12)
(13)
③ 每個細胞單元對梯度直方圖進行規(guī)定權(quán)重的投影,統(tǒng)計每個細胞單元的梯度直方圖,進而得到每個小塊的直方圖。
④ 對每個細胞單元進行對比度歸一化。
⑤ 將所有歸一化后的特征向量串行級聯(lián),以構(gòu)成整張圖像的HOG特征。
圖6為部分人臉圖像提取出來的HOG特征。
圖6 HOG 特征提取過程
為了得到人臉圖像更加完整、有效的描述,將得到的TPLBP特征和HOG特征級聯(lián)融合,特征融合過程如圖7所示。
圖7 多特征融合的流程
本文提出了一種TPLBP/HOG融合特征和深度信念網(wǎng)絡(DBN)相結(jié)合的人臉識別的方法,算法流程圖如圖8所示。
該算法具體步驟如下:
① 對訓練樣本和測試樣本的人臉圖像灰度化,然后進行限制對比度自適應直方圖均衡(Contrast Limited Adaptive Histogram Equalization,CLAHE)[14]預處理。
② 利用第1節(jié)中的特征提取融合方法分別提取TPLBP紋理特征和HOG特征,每張人臉提取出來的HOG特征轉(zhuǎn)至為一維數(shù)據(jù),而每張人臉的TPLBP紋理特征提取出來后轉(zhuǎn)至為行向量的數(shù)據(jù)矩陣,將這些特征數(shù)據(jù)合并起來并作為一行向量d=(x1,x2,…xn),將TPLBP紋理特征與HOG特征進行串聯(lián)融合就會形成訓練數(shù)據(jù)。為了加快訓練速度,利用PCA法對訓練的特征數(shù)據(jù)矩陣進行降維處理,經(jīng)過PCA降維后的訓練特征訓練數(shù)據(jù)記為train_x;同理,對于測試數(shù)據(jù)也利用相同的方法進行數(shù)據(jù)提取與降維,記為test_x。
③ 利用步驟②中獲取到的train_x作為訓練數(shù)據(jù)輸入到DBN中進行訓練。
④ 對第一層RBM模型利用對比散度算法進行訓練,從而獲取到最優(yōu)參數(shù)。
⑤ 在多層RBM網(wǎng)絡中,采用前一層RBM網(wǎng)絡隱藏層的輸出作為后一層RBM網(wǎng)絡的可見層的輸入,通過對比散度算法訓練神經(jīng)網(wǎng)絡,以獲得最低能量函數(shù)以及RBM的最優(yōu)參數(shù)。
⑥ 重復步驟④與步驟⑤,依次迭代循環(huán)訓練各個RBM層,直至訓練完所有RBM網(wǎng)絡;
⑦ 訓練完所有RBM網(wǎng)絡得到各個RBM層最優(yōu)參數(shù)后,最終利用RBM的參數(shù)作為BP神經(jīng)網(wǎng)絡的輸入,不斷修正調(diào)整RBM參數(shù)直至得到最優(yōu)DBN模型。
為了驗證本文算法的有效性,選用ORL人臉數(shù)據(jù)庫進行識別實驗,為進一步驗證本文算法的性能,在Yale和Yale-B人臉庫上進行性能測試。
ORL人臉數(shù)據(jù)庫共有40個人,每個人有10張圖像數(shù)據(jù),選取每個人的7張圖片作為訓練數(shù)據(jù),其他3張作為測試數(shù)據(jù),則訓練樣本總共有280張圖像,測試總共有120張圖片。AR人臉數(shù)據(jù)庫中包含了120個人的4000張彩色圖片,選取每個人的7張圖片作為訓練數(shù)據(jù),3張作為測試數(shù)據(jù)。Yale-B人臉數(shù)據(jù)庫包含38個人,每個人有64幅不同光照的圖像。從每人的圖像中選出正面標記的10張圖像,7張作為訓練數(shù)據(jù),其他3張作為測試數(shù)據(jù)。
以ORL人臉數(shù)據(jù)庫為基礎對人臉識別系統(tǒng)中的重要參數(shù)進行了實驗,以確定每個參數(shù)的最優(yōu)取值[15]。
所設置的DBN網(wǎng)絡深度為3層,其中包含2層RBM神經(jīng)網(wǎng)絡和1層BP神經(jīng)網(wǎng)絡。設置每層RBM的學習率為0.8,迭代次數(shù)為30;選擇Sigmoid函數(shù)作為BP網(wǎng)絡的傳遞函數(shù),NN的迭代次數(shù)為100。根據(jù)經(jīng)驗數(shù)值,設置RBM神經(jīng)網(wǎng)絡的MiNi_Batchs為100,NN網(wǎng)絡的MiNi_Batchs為20,使得整個網(wǎng)絡的學習速率更加快速一些。
通過不斷調(diào)整RBM隱藏層神經(jīng)元的個數(shù)來尋找網(wǎng)絡最優(yōu)參數(shù),經(jīng)過多次實驗,本文選取lambda為0.025;隱藏層神經(jīng)元個數(shù)為120;迭代次數(shù)為100。
4.2.1 基于DBN模型不同特征提取方法識別率對比
為了驗證本文中TPLBP/HOG融合特征對于人臉信息表征的有效性,在人臉圖像中分別提取LBP、TPLBP、HOG、TPLBP/HOG 融合特征,然后再根據(jù)提取得到的不同特征使用DBN深度模型在3種人臉數(shù)據(jù)庫上進行人臉識別實驗。不同特征的識別準確率對比如表1所示。
表1 基于DBN模型的不同特征識別準確率對比
由表1可知,基于TPLBP/HOG融合特征的人臉識別率高于單一特征表達方法的識別率,反映了基于全局人臉圖像HOG特征和分區(qū)人臉圖像TPLBP特征具有很好的互補作用,本文提出的TPLBP/HOG融合特征能更全面地表達人臉圖像信息。
4.2.2 基于TPLBP/HOG融合特征不同分類算法識別率對比
為了驗證DBN模型對于人臉識別的有效性,將DBN與經(jīng)典模式算法SVM和KNN算法進行對比。在人臉圖像中提取TPLBP/HOG融合特征,之后采取不同的分類算法都以TPLBP/HOG融合特征作為輸入,分別在3種人臉數(shù)據(jù)庫上進行驗證。對比試驗結(jié)果如表2所示。
表2 基于TPLBP/HOG融合特征不同分類算法識別準確率對比
由表2可知,都以TPLBP/HOG融合特征輸入SVM、KNN和DBN分類算法時,DBN模型對于人臉識別在不同的人臉數(shù)據(jù)庫中識別準確率均高于傳統(tǒng)的學習算法SVM和KNN。DBN模型將無監(jiān)督的訓練學習和有監(jiān)督的微調(diào)結(jié)合,能夠自主從高維度低層次的圖像特征中學習到高層次的特征信息,在人臉識別中取得了良好的效果。
4.2.3 不同實驗方法識別率對比
為了驗證TPLBP/HOG融合特征和DBN結(jié)合的人臉識別算法相較于傳統(tǒng)的監(jiān)督分類算法SVM、KNN以及傳統(tǒng)DBN深度學習算法在人臉識別準確率上的優(yōu)越性,特地利用3種人臉數(shù)據(jù)庫形成相同的訓練和測試數(shù)據(jù)對這3種算法進行了測試驗證,測試結(jié)果如表3所示。
表3 不同實驗方法測試對比結(jié)果
由表3可知,本文提出的基于TPLBP/HOG融合特征和DBN深度模型相結(jié)合的人臉識別算法在3種不同的人臉數(shù)據(jù)庫實驗中,識別準確率是最高的。尤其在ORL人臉數(shù)據(jù)庫中,識別效果最好,達到了98.33%,比傳統(tǒng)的基于LBP的SVM和KNN方法分別提高了13.03%和5.13%,比傳統(tǒng)DBN深度學習方法也提高了3.51%。這說明,DBN模型在對人臉特征信息學習和分類方面更好。
本文采用TPLBP/HOG融合特征和DBN深度模型相結(jié)合的人臉識別方法。提取全局人臉圖像HOG特征和分區(qū)人臉圖像TPLBP特征并融合,融合后的特征同時包含人臉圖像的紋理和結(jié)構(gòu)特征,能更豐富地表達人臉的信息。DBN作為深度學習算法之一,能自主將感知的人臉圖像信息的低層次信息轉(zhuǎn)變?yōu)楦邔哟涡畔ⅲM一步提高了識別的準確率。將本文方法在ORL、AR、Yale-B人臉數(shù)據(jù)庫上進行實驗測試,識別率分別達到98.33%、97.39%和96.72%,體現(xiàn)了基于TPLBP/HOG融合特征和DBN深度模型方法在提取人臉特征、人臉識別上有很好的效果,魯棒性強。在今后的研究中,視頻數(shù)據(jù)處理將成為研究工作的重點,未來的目標是從實時視頻中實現(xiàn)人臉識別。