馮小榮,惠康華,柳振東
人臉識別[1-2]一直是模式識別和人工智能領(lǐng)域研究的熱點(diǎn)問題。在此背景下,國內(nèi)外公司競相進(jìn)入該領(lǐng)域,如蘋果公司推出的手機(jī)人臉識別解鎖,支付寶的刷臉登錄等。解決人臉識別問題的關(guān)鍵環(huán)節(jié)是特征提取,特征提取的好壞直接影響分類器識別準(zhǔn)確率的高低。目前常用圖像特征有LBP紋理特征[3]、HOG方向梯度直方圖特征[4]和Haar-like特征[5],這三種特征雖然在人臉識別中獲得了不錯(cuò)的效果,但是也存在特征提取過程比較復(fù)雜,識別效率較低等不足。與傳統(tǒng)的人臉識別算法相比,卷積神經(jīng)網(wǎng)絡(luò)可以將原始圖像直接作為輸入,減少數(shù)據(jù)的預(yù)處理過程,通過自學(xué)習(xí)的方式完成特征提取,不僅有效降低了人臉特征提取的時(shí)間消耗,而且提取的人臉特征具有很高的辨識度。為了克服傳統(tǒng)人臉識別算法特征提取帶來的長時(shí)間消耗、低識別度的問題,本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)特征提取和貝葉斯分類器相結(jié)合的人臉識別算法,利用卷積神經(jīng)網(wǎng)絡(luò)提取人臉特征,利用主成分分析法(PCA)對提取的特征進(jìn)行降維,采用貝葉斯分類器進(jìn)行判別分類,最后在ORL人臉數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)分析,驗(yàn)證該方法提取特征辨識度高和低耗時(shí)的優(yōu)點(diǎn)。
卷積神經(jīng)網(wǎng)絡(luò)[6-7]作為一種高效的深度學(xué)習(xí)識別算法,近些年引起了廣泛關(guān)注,其在語音識別、語音分析和圖像處理等領(lǐng)域都獲得了巨大成功。在圖像處理領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)可直接將多維的圖像數(shù)據(jù)輸入網(wǎng)絡(luò),有效避免了復(fù)雜的特征提取和預(yù)處理過程。
1.1.1 卷積層
卷積層[8]一般為特征提取層,由多個(gè)二維的特征圖組成,每個(gè)特征圖由許多共享權(quán)值的神經(jīng)元組成。特征圖中每個(gè)神經(jīng)元通過卷積核與上一層特征圖的局部區(qū)域相連接。卷積層特征圖的計(jì)算表達(dá)式如式(1)所示。
1.1.2 亞采樣層
亞采樣層利用圖像的局部相關(guān)原理,對卷積層輸入的特征圖在相鄰小區(qū)域內(nèi)進(jìn)行聚合統(tǒng)計(jì),在減少數(shù)據(jù)量的同時(shí),保留有用信息。常用的亞采樣操作有均值池化(average pooling)、最大值池化(max pooling)和隨機(jī)池化(stochastic pooling)。亞采樣操作之后,輸入特征圖的寬度和高度均縮小為原來的,特征圖的個(gè)數(shù)和上一層一致。亞采樣層特征圖的計(jì)算表達(dá)式如式(2)所示。
PCA即主成分分析法[9],是一種基于統(tǒng)計(jì)思想的降維方法。它通過正交變換,將與其分量相關(guān)的原隨機(jī)向量轉(zhuǎn)化為與其分量不相關(guān)的新隨機(jī)向量,達(dá)到降維的目的。
把訓(xùn)練樣本每一個(gè)圖像均值化之后得到樣本矩陣Z,Z的計(jì)算表達(dá)式如式(4)所示。
Q即為降維之后的數(shù)據(jù)。
樸素貝葉斯[10]分類器是一個(gè)簡單、高效的分類器。它主要是根據(jù)先驗(yàn)概率預(yù)測樣本屬于某一類別的概率,選取概率最大的類別作為預(yù)測類別。整個(gè)樸素貝葉斯算法的過程分為兩個(gè)階段:分類器訓(xùn)練階段、判別分類階段。分類器訓(xùn)練階段的目的是生成分類器;判別分類階段則是根據(jù)訓(xùn)練得到的分類器,對一個(gè)未知的樣本進(jìn)行預(yù)測分類。樸素貝葉斯分類器的數(shù)學(xué)模型可表示為:假設(shè)為一個(gè)待分類的樣本,類別集合表示為,要對樣本判別分類,則需分別計(jì)算,那么的預(yù)測類別計(jì)算表達(dá)式如式(8)所示。
計(jì)算上述條件概率的步驟:
1) 構(gòu)造已知類別的訓(xùn)練樣本集合;
2) 統(tǒng)計(jì)訓(xùn)練集中各個(gè)特征屬性在每個(gè)類別中的條件概率估計(jì),即計(jì)算式(9)所示概率:
3) 假定各個(gè)特征屬性是獨(dú)立的,根據(jù)貝葉斯定理,可得條件概率計(jì)算表達(dá)式,即
基于卷積特征和貝葉斯分類器的人臉識別方法的主要思想是通過訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型提取人臉特征,利用PCA對提取的人臉特征進(jìn)行降維,最后利用貝葉斯分類器進(jìn)行判別分類。算法框架如圖1所示。
圖1 算法框架Fig. 1 Schematic diagram of algorithm frame
從圖1可知,算法主要分為兩個(gè)階段:學(xué)習(xí)階段和測試階段。學(xué)習(xí)階段:利用訓(xùn)練圖像樣本集合對卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,然后用訓(xùn)練好的網(wǎng)絡(luò)模型提取訓(xùn)練集所有樣本圖像的特征,通過PCA降維處理之后,用降維后的特征集訓(xùn)練貝葉斯分類器。測試階段:對待識別的圖像預(yù)處理之后,通過卷積神經(jīng)網(wǎng)絡(luò)提取人臉特征,利用PCA降維,最后將降維之后的特征送入貝葉斯分類器即可得到該樣本的預(yù)測類別。
本文采用ORL人臉數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集。在訓(xùn)練算法模型之前,對數(shù)據(jù)集中的人臉圖像進(jìn)行預(yù)處理,步驟如下:
1) 調(diào)整圖像尺寸。通過imresize函數(shù)對訓(xùn)練集和測試集中每一幅圖像進(jìn)行縮放處理,由原始的 112×92 變?yōu)?28×28。
2) 歸一化圖像。ORL數(shù)據(jù)集中的圖像為灰度圖像,其顏色灰度值一般在0~255,將縮放后圖像的原始像素值除以255歸一化到[0, 1]。
整個(gè)數(shù)據(jù)預(yù)處理的過程如圖2所示。
圖2 數(shù)據(jù)預(yù)處理過程Fig. 2 Data preprocessing
根據(jù)前面的介紹可知,卷積神經(jīng)網(wǎng)絡(luò)一般是由輸入層、卷積層、亞采樣層、全連接層和輸出層組成。對于卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì),目前都是以經(jīng)驗(yàn)為基礎(chǔ),缺乏科學(xué)的理論指導(dǎo)。依據(jù)ORL數(shù)據(jù)集中人臉圖像的尺寸及類別,本文經(jīng)過大量實(shí)驗(yàn)之后設(shè)計(jì)了一個(gè)合適的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)用于提取ORL人臉特征,網(wǎng)絡(luò)層次結(jié)構(gòu)如圖3所示。
就在我要走的時(shí)候,那個(gè)女人喊住了我。原來她早已經(jīng)為我煮好了一碗熱乎乎的刀削拌醬面。我望著那碗面,濃濃的香味頃刻間鉆入我的嗅覺。過度的饑餓使我無法拒絕一個(gè)陌生女人的盛情款待。這種時(shí)候,我需要放棄男人的所有虛偽和大男子的什么狗屁尊嚴(yán),一概都他媽的見鬼去吧。我要填飽肚子,我甚至連一個(gè)謝謝之類的客套都沒有,那碗面就囫圇到我的肚里了。
圖3 卷積神經(jīng)網(wǎng)絡(luò)層次結(jié)構(gòu)Fig. 3 Hierarchical structure of convolution neural network
從圖3可知,網(wǎng)絡(luò)的主要參數(shù)設(shè)置如下:
1) 輸入層為28×28的灰度圖像;
2) 卷積層C1通過6個(gè)5×5的卷積核對輸入層的灰度圖像進(jìn)行卷積操作,得到6個(gè)24×24的特征圖;
3) 亞采樣層S2在2×2的區(qū)域內(nèi)對C1層的特征圖執(zhí)行均值亞采樣,得到6個(gè)12×12的特征圖;
4) 卷積層C3通過10個(gè)5×5的卷積核對S2層的特征圖進(jìn)行卷積操作,得到10個(gè)8×8的特征圖;
5) 亞采樣層S4在2×2的區(qū)域內(nèi)對C3層的特征圖執(zhí)行均值亞采樣,得到10個(gè)4×4的特征圖。此時(shí)將S4層的所有特征圖連接為一個(gè)160維的特征向量;
6) 學(xué)習(xí)率為1.7,批處理塊大小為2,網(wǎng)絡(luò)閾值函數(shù)為sigmoid。
為了驗(yàn)證本文所提算法的有效性,在ORL數(shù)據(jù)集中進(jìn)行了人臉識別實(shí)驗(yàn)。
ORL人臉數(shù)據(jù)集[11]中部分人臉圖像如圖4所示。
圖4 ORL數(shù)據(jù)集中部分人臉圖像Fig. 4 Partial face images of ORL dataset
3.1.1 卷積核尺寸選擇
卷積核的尺寸決定了卷積層輸出特征圖的大小。假設(shè)卷積層輸入圖像的大小為,卷積核的大小為,卷積之后特征圖的大小為,則s可通過式(13)算出。
ORL人臉圖像經(jīng)2.2節(jié)預(yù)處理后大小變?yōu)?8×28,為確保卷積后的特征圖大小為整數(shù),將C1和C3層卷積核大小設(shè)置為5×5。
3.1.2 C3層卷積核個(gè)數(shù)選擇
卷積神經(jīng)網(wǎng)絡(luò)識別準(zhǔn)確率與卷積核的個(gè)數(shù)密切相關(guān)。卷積核個(gè)數(shù)越多,提取的圖像特征越豐富,但同時(shí)會增加網(wǎng)絡(luò)訓(xùn)練時(shí)間。為選取C3層合適的卷積核個(gè)數(shù),保持C1層卷積核個(gè)數(shù)不變,訓(xùn)練迭代次數(shù)為60次,改變C3層卷積核的個(gè)數(shù),分別使用訓(xùn)練集和測試集對變化后網(wǎng)絡(luò)結(jié)構(gòu)的識別準(zhǔn)確率進(jìn)行驗(yàn)證。實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 C3層卷積核個(gè)數(shù)與識別率關(guān)系Fig. 5 Relationship between the number of C3 layer convolution kernel and recognition accuracy
圖5 的實(shí)驗(yàn)結(jié)果表明,卷積核個(gè)數(shù)與網(wǎng)絡(luò)識別正確率并非正比關(guān)系。當(dāng)C3層卷積核個(gè)數(shù)為10時(shí),測試集的識別準(zhǔn)確率達(dá)到最高。若繼續(xù)增加卷積核個(gè)數(shù),網(wǎng)絡(luò)中對應(yīng)的權(quán)重W個(gè)數(shù)也隨之增多,但由于ORL數(shù)據(jù)集樣本的個(gè)數(shù)較少,可選取的訓(xùn)練集樣本有限,已無法滿足網(wǎng)絡(luò)學(xué)習(xí)的需要,因此測試集的識別準(zhǔn)確率開始下降。
3.1.3 C1層卷積核個(gè)數(shù)選擇
由3.1.2節(jié)實(shí)驗(yàn)結(jié)果可知,C3層有10個(gè)卷積核時(shí),測試集的識別準(zhǔn)確率均達(dá)到最高。為選取C1層合適的卷積核個(gè)數(shù),保持C3層卷積核個(gè)數(shù)不變,訓(xùn)練迭代次數(shù)為60次,改變C1層卷積核的個(gè)數(shù),分別使用訓(xùn)練集和測試集對變化后的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)結(jié)果如圖6所示。
圖6的實(shí)驗(yàn)結(jié)果同樣表明,卷積核個(gè)數(shù)與網(wǎng)絡(luò)最終識別正確率并非正比關(guān)系。當(dāng)C1層卷積核個(gè)數(shù)為6時(shí),測試集的識別準(zhǔn)確率達(dá)到最高。若繼續(xù)增加卷積核,網(wǎng)絡(luò)需要學(xué)習(xí)的參數(shù)也增多,但由于ORL數(shù)據(jù)集樣本的個(gè)數(shù)較少,選取的訓(xùn)練集樣本有限,已無法滿足網(wǎng)絡(luò)學(xué)習(xí)的需要,因此測試集的識別準(zhǔn)確率開始下降。
圖6 C1層卷積核個(gè)數(shù)與識別率關(guān)系Fig. 6 Relationship between the number of C1 layer convolution kernel and recognition accuracy
3.1.4 學(xué)習(xí)率
學(xué)習(xí)率不僅決定卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程中訓(xùn)練誤差的收斂速度,而且影響網(wǎng)絡(luò)的識別正確率。學(xué)習(xí)率越大,權(quán)值變化越快,訓(xùn)練誤差收斂越快。學(xué)習(xí)率越低,權(quán)值變化越慢,收斂越慢,網(wǎng)絡(luò)訓(xùn)練時(shí)間就會增加。但學(xué)習(xí)率過大或過小,均可能導(dǎo)致訓(xùn)練誤差無法收斂。為研究學(xué)習(xí)率與網(wǎng)絡(luò)識別正確率的關(guān)系,網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)設(shè)置為:C1層6個(gè)卷積核,C3層10個(gè)卷積核,統(tǒng)計(jì)不同學(xué)習(xí)率下的訓(xùn)練集和測試集的識別正確率,實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 學(xué)習(xí)率與識別率關(guān)系曲線Fig. 7 Relationship curve between learning rate and recognition rate
從圖7可以看出,隨著學(xué)習(xí)率的增大,訓(xùn)練集和測試集的識別率也相應(yīng)提高。當(dāng)學(xué)習(xí)率為1.7時(shí),訓(xùn)練集和測試集的識別率最高。此后繼續(xù)增大學(xué)習(xí)率,識別率反而下降。因此,本文將學(xué)習(xí)率設(shè)定為1.7。
通過訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)即可完成特征提取。為更加直觀地展示卷積神經(jīng)網(wǎng)絡(luò)不同層提取到的具體人臉特征,本文對卷積神經(jīng)網(wǎng)絡(luò)每一層的人臉特征圖進(jìn)行可視化,實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 人臉圖像卷積特征Fig. 8 Convolution feature of face image
圖8 分別展示了本文所設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)從輸入層到全連接層每一層提取到的人臉特征圖。第一層將縮放和歸一化后的28×28大小的圖像直接作為網(wǎng)絡(luò)的輸入,經(jīng)過C1層卷積操作后得到6個(gè)24×24的特征圖,第三層的池化層S2在2×2的小區(qū)域內(nèi)進(jìn)行均值亞采樣操作后,得到6個(gè)12×12的特征圖,第四層C3為卷積層,第五層S4為卷積池化層,分別采用C1和S2相同的處理方式,經(jīng)過C3、S4層的卷積與亞采樣處理后,可得到10個(gè)4×4的特征圖,網(wǎng)絡(luò)最后一層為全連接層,全連接層將最后一層的10個(gè)特征圖連成一維的特征向量,該特征向量即為提取到的人臉特征,通過PCA降維之后送入貝葉斯分類器即可完成判別分類。
由于卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)本身也具備分類器的功能。為檢驗(yàn)單獨(dú)用卷積神經(jīng)網(wǎng)絡(luò)的識別效果,本文利用卷積神經(jīng)網(wǎng)絡(luò)對ORL數(shù)據(jù)集中的人臉進(jìn)行識別。卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程代價(jià)函數(shù)誤差曲線變化如圖9所示。
圖9 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線Fig. 9 Training error curve of convolution neural network
從圖9可以看出,在訓(xùn)練過程中,卷積神經(jīng)網(wǎng)絡(luò)的輸出誤差一直在減小,最終不再變化,此時(shí)卷積神經(jīng)網(wǎng)絡(luò)已達(dá)到收斂狀態(tài)。用訓(xùn)練好的網(wǎng)絡(luò)模型對ORL數(shù)據(jù)集80張測試樣本的識別準(zhǔn)確率為96.25%,對全部樣本的識別準(zhǔn)確率為98.75%,達(dá)到了預(yù)期的目標(biāo)。
通過卷積神經(jīng)網(wǎng)絡(luò)提取到的人臉特征為160維,維數(shù)較高,為降低人臉特征維數(shù),本文采用PCA對160維的特征進(jìn)行降維處理,為研究主成分特征值累計(jì)貢獻(xiàn)率對識別性能的影響,本文分別研究了不同累積貢獻(xiàn)率下基于卷積特征和貝葉斯分類器人臉識別方法的識別效果,特征值累積貢獻(xiàn)率與識別率的關(guān)系曲線如圖10所示。
圖10 特征值累積貢獻(xiàn)率與識別準(zhǔn)確率的關(guān)系Fig. 10 Relationship between eigenvalue cumulative contribution rate and recognition accuracy rate
本文提出的方法在ORL人臉數(shù)據(jù)集中獲得了良好的識別效果,該方法在選取的80張測試圖像中獲得了97.5%的高識別率,在全部人臉圖像的識別正確率可達(dá)99.00%。為進(jìn)一步驗(yàn)證本文所提算法的有效性和優(yōu)越性,將此方法與幾種傳統(tǒng)的人臉識別算法在ORL數(shù)據(jù)集全部樣本的識別效果進(jìn)行對比,結(jié)果如表1所示。
表1 對比實(shí)驗(yàn)結(jié)果Table 1 Comparison of experimental results
表1的實(shí)驗(yàn)結(jié)果可以表明:本文提出的基于卷積特征和貝葉斯分類器的人臉識別算法,在ORL人臉庫的識別效果好于傳統(tǒng)的人臉識別算法;本文方法相對2DPCA的識別準(zhǔn)確率提高了0.7%,比FisherFace方法識別準(zhǔn)確率提高了0.5%,比Eigenface的識別準(zhǔn)確率提高了1.5%,比ICA識別方法的識別準(zhǔn)確率提高了5.25%,比單獨(dú)卷積神經(jīng)網(wǎng)絡(luò)的識別準(zhǔn)確率高0.25%。這一系列實(shí)驗(yàn)結(jié)果表明,卷積神經(jīng)網(wǎng)絡(luò)提取的人臉特征具有較高的辨識度,與PCA和貝葉斯分類器結(jié)合可進(jìn)一步提高人臉識別正確率。
為了克服傳統(tǒng)人臉識別算法特征提取帶來的長時(shí)間消耗、低識別度的問題,本文提出一種卷積神經(jīng)網(wǎng)絡(luò)、PCA和貝葉斯分類器相結(jié)合的方法,用卷積神經(jīng)網(wǎng)絡(luò)提取人臉特征,用PCA對提取的特征降維壓縮,通過樸素貝葉斯判別分類,在ORL人臉數(shù)據(jù)集中獲得了良好的識別效果。該方法在選取的80張測試圖像中獲得了97.5%的高識別率,在全部人臉圖像的識別正確率可達(dá)到99.00%,且識別效果好于幾種經(jīng)典的人臉識別算法以及單獨(dú)的卷積神經(jīng)網(wǎng)絡(luò)算法。因此卷積神經(jīng)網(wǎng)絡(luò)提取到的人臉特征具有更強(qiáng)的辨識度,在判別分類的過程中表現(xiàn)出了強(qiáng)大的優(yōu)勢。
當(dāng)前人臉識別仍是學(xué)術(shù)界和工業(yè)界研究的熱點(diǎn)問題。為降低人臉特征提取的復(fù)雜性,本文將當(dāng)下最為流行的深度學(xué)習(xí)模型卷積神經(jīng)網(wǎng)絡(luò)引入人臉識別任務(wù),提出基于卷積神經(jīng)網(wǎng)絡(luò)和貝葉斯分類器以及主成分分析法的人臉識別算法模型,首先利用卷積神經(jīng)網(wǎng)絡(luò)提取人臉特征,其次通過PCA對人臉特征進(jìn)行降維處理,最后通過樸素貝葉斯進(jìn)行判別分類。通過實(shí)驗(yàn)與分析可以看出,本文所提的算法不僅簡化了特征提取的過程,而且提高了人臉識別的準(zhǔn)確率,為人臉識別算法的研究提供一種新思路。