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