李 輝,石 波
(1.河南理工大學 物理與電子信息學院;2.河南理工大學 電氣工程與自動化學院,河南 焦作 454000)
基于卷積神經網絡的人臉識別算法
李 輝1,石 波2
(1.河南理工大學 物理與電子信息學院;2.河南理工大學 電氣工程與自動化學院,河南 焦作 454000)
針對卷積神經網絡(Convolutional Neural Network,CNN)在人臉圖像識別中面對訓練規(guī)模較大的圖像集數(shù)據時收斂速度慢、效率低以及在復雜情況下識別率不高的問題,提出一種優(yōu)化改進的CNN圖像識別方法。該方法首先利用不含標簽的圖像訓練一個稀疏自動編碼器,得到符合數(shù)據集特性、有較好初始值的濾波器集合,然后對CNN的卷積核初始化賦值,從而大大提高其整體上使用BP算法進行訓練的收斂速度,其次使用多類別SVM分類器(Multiclass Support Vector Machine)代替?zhèn)鹘y(tǒng)的Softmax分類器,對目標圖像進行識別,在ORL和FERET等人臉圖像庫上的實驗結果顯示,所提算法與采用傳統(tǒng)PCA+SVM算法及傳統(tǒng)CNN算法相比,在人臉圖像識別中有更好的識別效果。
深度學習;卷積神經網絡;稀疏自編碼器;人臉識別;非監(jiān)督預訓練
人臉識別作為一種重要的生物信息鑒別方法,在信息安全領域有著很重要的應用價值,是模式識別與計算機視覺領域研究的熱點。幾何特征方法是人臉識別研究中最早提出的方法之一,Carnegie Mellon大學的Kanade[1]提出基于距離比例的總特征提取方法,該方法使用投影法來確定人臉圖像的局部特征,如眼睛、鼻子、嘴部等區(qū)域,并計算出由不同特征點組成的距離、角度、面積等參數(shù)值,作為目標的特征向量,用于人臉圖像的比較,在小樣本人臉庫中識別率達到了45%~75%。貝爾實驗室的Harmon,Goldst等[2]研究出一個基于特征比較的交互式人臉圖像識別系統(tǒng),該系統(tǒng)所用的參數(shù)向量包含了21個特征值,系統(tǒng)識別效果較好,但特征點的選擇還需人工進行。Turk和Pentland等[3]首次將PCA(Principal components analysis)方法用于人臉圖像識別,該方法能夠較快地識別出待識別目標,但該方法易受光照、尺度、旋轉等因素影響,同時當待識別人臉圖像出現(xiàn)偏移、圖像背景不同以及表情不同時,其識別準確率也將降低。
卷積神經網絡[4]對平移、縮放、傾斜和其它形式的形變具有高度的不變性優(yōu)點,并且具有深度學習能力,可以通過網絡訓練獲得圖像特征,不需要人工提取特征,在圖像樣本規(guī)模較大的情況下,對圖像有較高的識別率,因此被廣泛用于圖像識別。
本文提出一種基于改進的卷積神經網絡算法用于人臉圖像識別,該算法首先構造一個稀疏自動編碼器[5],利用稀疏自動編碼器對卷積神經網絡的濾波器進行非監(jiān)督預訓練,然后對誤差進行最小化重構,獲得待識別圖像的隱層表示,進而學習得到含有訓練數(shù)據統(tǒng)計特性的濾波器集合,其次采用多類別SVM[6]代替?zhèn)鹘y(tǒng)的Softmax分類器,通過在ORL人臉庫和FERET人臉庫的實驗表明,本文算法比傳統(tǒng)的CNN算法在人臉識別中有更好的識別性能和更高的識別率。
通過構建一個稀疏自編碼器模型對原始圖像進行特征提取,并將其訓練好的濾波器用于卷積神經網絡的卷積核初始化,解決傳統(tǒng)卷積神經網絡濾波器隨機初始化問題。
稀疏自編碼器是一種無監(jiān)督學習模型,通過隱藏層學習一個數(shù)據的表示或對原始數(shù)據進行有效編碼,從而學習得到數(shù)據的特征,其網絡結構如圖1所示。
L1表示輸入層,L2表示隱藏層,L3表示輸出層,每一個圓圈代表一個神經元,X1、X2、X3、X4代表一組數(shù)據的輸入,通過限制隱藏層神經元數(shù)量或加入一些限制條件,迫使自動編碼器隱藏層對輸入數(shù)據進行壓縮,重構出輸入數(shù)據的特征,這些特征就是想要獲得的卷積神經網絡的卷積核,具體過程如下:
圖1 自動編碼器的網絡結構
首先稀疏自編碼器隱藏層的輸出層由列向量與對應權重加權融合并加上偏置項后通過一個非線性函數(shù)得到,該過程稱為前向傳播,公式如下:
(1)
為了保證輸出值盡可能等于輸入值,需要對式(1)的權重和偏置進行參數(shù)優(yōu)化,方法是最小化目標函數(shù):
(2)
該目標函數(shù)是一個方差代價函數(shù),采用梯度下降法[7-8]進行優(yōu)化,對于維數(shù)較高的輸入數(shù)據,針對其目標函數(shù)收斂慢、計算復雜度高的問題,在該函數(shù)中引入稀疏約束,構成稀疏自動編碼器,為了保證隱藏層的稀疏性,自動編碼器的代價方程加入了一個稀疏性懲罰項:
(3)
其中,后一項是KL距離,具體表達式為:
(4)
隱含節(jié)點輸出平均值表達式如下:
(5)
上述表達式說明,如果隱含層節(jié)點輸出均值接近0.05,則達到稀疏目的。
最后通過網絡迭代訓練得到網絡權值,公式如下:
(6)
其中α是學習速率,利用反向傳播算法[9-11]對上述兩個公式后兩項的倒數(shù)項進行計算,不停迭代更新直到參數(shù)收斂后整個網絡訓練完畢,得到特征參數(shù)W、b。為了更形象地理解網絡學習的特征,對自編碼器學到的特征進行可視化。
假設有100張10*10的圖像,這樣就有100個像素,因此輸入層和輸出層的節(jié)點數(shù)就是100,取隱藏層節(jié)點為25,這樣就迫使隱藏層節(jié)點學習得到輸入數(shù)據的壓縮表示方法,用25維數(shù)據重構出100維數(shù)據,這樣就完成了學習過程,得到25個8*8的濾波器,可視化后效果如圖2所示。
圖2 濾波器可視化效果
卷積神經網絡是一種非全連接的多層神經網絡,一般由卷積層、下采樣層和全連接層組成,原始圖像首先通過卷積層與濾波器進行卷積,得到若干特征圖,然后通過下采樣層對特征進行模糊,最后通過一個全連接層輸出一組特征向量,用于分類器分類識別,卷積神經網絡的網絡結構如圖3所示。
圖3 CNN的網絡結構
2.1 卷積層(Convolution Layers)
卷積過程:輸入圖像與卷積核卷積后加上偏置通過一個激活函數(shù),就得到了第一層輸出的特征圖,表達式為:
(7)
2.2 下采樣層(Sub-sampling Layers)
下采樣過程:每領域n2個像素求和變?yōu)?個像素,通過標量Wx+1加權,再增加偏置bx+1,然后通過一個sigmoid激活函數(shù),產生一個縮小n2倍的特征映射圖,公式如下:
(8)
其中,down(.)表示一個下采樣函數(shù)。
2.3 CNN工作原理
卷積神經網絡的隱藏層是由卷積層和下采樣層交替組成,在上圖中,輸入目標圖像通過與N個卷積核進行卷積,得到具有N個特征圖的C1層;然后對特征圖中的圖像進行池化,池化尺度的大小可根據不同的需要設定,于是得到具有N個池化后的特征圖S2層,S2層中的特征圖再經過卷積得到C3層,產生S4的方法與產生S2的方法一致;最后,通過全連接層獲得用于識別圖像的特征,用多類別SVM對獲得的特征進行分類,最終得到人臉圖像的識別率。
本算法在傳統(tǒng)CNN算法的基礎上作出改進:①通過稀疏自編碼器預訓練出適合圖像訓練集的濾波器,代替?zhèn)鹘y(tǒng)的濾波器隨機初始化問題,提高了網絡訓練效率和識別效果;②通過多類別支持向量機代替?zhèn)鹘y(tǒng)的Softmax分類器,提高了分類性能和識別率。算法流程如圖4所示。
圖4 算法流程
算法步驟如下:①對目標圖像進行預處理,使圖像符合網絡訓練的要求;②對①中圖像進行隨機采樣,獲得適量的數(shù)據集,通過稀疏自編碼器非監(jiān)督預訓練得到CNN初始化濾波器的權值;③將②中獲得的濾波器與①中的訓練集圖像進行卷積,獲得預定數(shù)量的特征圖;④將③中獲得的特征圖通過式⑧進行最大化采樣,得到泛化后的圖像;⑤用同樣的方法對④中輸出的特征圖進行二次卷積,二次下采樣,獲得所需的特征圖;⑥將⑤中的所有特征圖轉化為一個列向量,作為全連接層的輸入,計算識別結果和標記的差異,通過反向傳播算法自頂向下調節(jié)更新網絡參數(shù);⑦輸入圖像測試集,利用訓練得到的網絡參數(shù)集合和全連接網絡權重參數(shù)對測試圖像進行分類,通過多類別SVM分類器得到圖像的識別結果。
為了驗證本算法的優(yōu)越性,本文分別選取ORL人臉庫和FERET人臉庫作為實驗的數(shù)據集。實驗環(huán)境:計算機處理器主頻3.8GHz內存8GMATLAB2012a下仿真。
4.1 數(shù)據集介紹
ORL人臉庫包括40個不同人臉,每人10幅圖像,共400幅,每幅原始圖像為256個灰度級,分辨率為112*92,它包含了表情變化、微小姿態(tài)變化、10%以內的尺度變化,圖5是ORL庫中部分人臉圖像。FERET人臉庫共1 400幅圖像,包括200個人,每人7幅圖像,每幅原始圖像為256個灰度級,分辨率為80*80,對應不同的姿態(tài)、表情和光照條件,圖6是FERET人臉庫中部分人臉圖像。
4.2 實驗結果與分析
根據圖4步驟進行試驗,首先對原始圖像進行全局對比度歸一化和ZCA白化預處理[12-13],去掉數(shù)據之間的相關度,消除數(shù)據冗余性,然后對網絡參數(shù)進行設置。
實驗1:對ORL數(shù)據集進行試驗,每人分別取5張圖片作為訓練集,5張作為測試集,采用傳統(tǒng)CNN算法和本文算法進行分組試驗:
圖5 ORL人臉庫中部分人臉圖像
圖6 FERET人臉庫中部分圖像
第一組實驗:從數(shù)據集中隨機抽取200張圖片,通過稀疏自編碼器訓練出六組濾波器,用于卷積神經網絡的卷積核初始化,分類器采用多類別SVM分類器,網絡參數(shù)設置為6c-2s-12c-2s,迭代次數(shù)為10次,學習率為0.1,通過訓練,測試得出結果。第二組實驗:卷積核采用隨機化賦值,分類器采用softmax分類器,其它參數(shù)和第一組實驗一樣,對網絡進行訓練、分類,最后得出結果,如表1所示。
表1 數(shù)據集分類結果
實驗2:對FERET數(shù)據集進行試驗,將子集fa作為訓練集,子集fb作為測試集,網絡結構和實驗1一樣。第一組實驗:從數(shù)據集中隨機抽取500張圖片,通過稀疏自編碼器訓練出16組濾波器,用于卷積神經網絡的卷積核初始化,分類器采用多類別SVM分類器,網絡參數(shù)設置為:16c-2s-48c-2s,迭代次數(shù)為20次,學習率為0.1,通過訓練,測試得出結果,第二組實驗:卷積核同樣采用隨機化賦值,分類器采用softmax分類器,其它參數(shù)和第一組實驗一樣,對網絡進行訓練、分類,最后得出結果,如表1所示。
從表1可以看出,本文算法要比傳統(tǒng)CNN算法識別率高,同時也可以看出PCA+SVM算法與本文兩種算法相比,在識別效果上有一定的差距,在樣本數(shù)據較少時,提取的特征分類能力不是太強,當訓練樣本數(shù)據增加時,提取的特征分類能力有所增加,識別率有所提高。
為了測試本文算法在效率上的優(yōu)勢,對每次試驗的訓練時間和測試時間進行統(tǒng)計,如表2所示。
表2 數(shù)據集訓練時間和測試時間
從表2可以看出,本文算法在網絡訓練階段訓練時間明顯比傳統(tǒng)CNN算法消耗時間短,因為本文算法在濾波器初始化時采用訓練好的濾波器賦值,極大提高了訓練效率。綜上述,無論是識別效果還是識別效率,本文算法都要優(yōu)于傳統(tǒng)CNN算法,從而驗證了本文算法的優(yōu)越性。
本文針對卷積神經網絡在人臉識別中的應用,提出優(yōu)化改進的深度卷積神經網絡算法,該算法通過網絡訓練自動提取圖像特征,并結合多分類SVM的優(yōu)點對人臉圖像進行分類識別,在ORL和FERET人臉數(shù)據庫上的對比測試實驗表明,該方法有更高的效率和更好的識別率。
[1] T KANDE.Picture processing by computer complex and recognition of human faces[D].Kyoto:Kyoto University,1973.
[2] A J GOLDSTEIN,L D HARMON,ALESK.Identification of human faces[J].Proc.IEEE,1971(59):748-760.
[3] R BRUNELLI,TPOGGI.Face recognition:feature versus templates[J].IEEE Transon Pattern Analysis and Machine Intelligence,1993,15(10):1042-1052.
[4] Y LECUN,L BOTTOU,YI BENGIO,et al.Gradient based learning applied to document recognition[J].Proceedings of the IEEE,2012:2278-2324.
[5] CHANG CHINCHEN,YUTAIXING.Sharing a secret gray images in multiple images[C].Shen Yang:Proceedings of First International Symposium Cyber,2002.
[6] 彭中亞,程國建.基于獨立成分分析和核向量機的人臉識別[J].計算機工程,2010,36(7):193-194.
[7] 曲景影,孫顯,高鑫.基于CNN模型的高分辨率遙感圖像目標識別[J].國外電子測量技術,2016(8):45-50.
[8] 張春雨,韓立新,徐守晶.基于棧式自動編碼的圖像哈希算法[J].電子測量技術,2016(3):46-49,69.
[9] GLOROTX,BENGIO Y.Understanding the difficulty of training deep feedforward neural networks[C].International Conference on Artificial Intelligence and Statistics,2010:249-256.
[10] BENGIO Y.Learning deep architectures for AI[J].Foundations and Trends in Machine Learning,2009,2(1):1-127.
[11] 楊麗芬,蔡之華.BP神經網絡優(yōu)化算法研究[J].軟件導刊,2007(5):106-108.
[12] 王利卿,黃松杰.基于多尺度卷積神經網絡的圖像檢索算法[J].軟件導刊,2016(2):38-40.
[13] 林妙真.基于深度學習的人臉識別研究[J].大連:大連理工大學,2013.
(責任編輯:孫 娟)
河南省基礎與前沿技術研究計劃項目(152300410103);河南省教育廳科學技術研究重點項目(13A510330)
李輝(1976-),男,河南林州人,博士,河南理工大學物理與電子信息學院教授、碩士生導師,研究方向為無線通信、信號處理、模式識別與人工智能;石波(1987-),男,河南林州人,河南理工大學電氣工程與自動化學院碩士研究生,研究方向為模式識別與人工智能、機器學習與機器視覺。
10.11907/rjdk.162621
TP312
A
1672-7800(2017)003-0026-04