劉楠 劉瑞安 尹寧浩
摘 ?要: 目前人臉識別技術(shù)被廣泛應(yīng)用于實際生活各個領(lǐng)域,尤其是在實時視頻場景下應(yīng)用越來越普及,因此對人臉識別的研究具有重大價值。通過應(yīng)用Keras框架和深度學(xué)習(xí)相關(guān)知識構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò),訓(xùn)練出有效的人臉識別模型,并應(yīng)用到實時視頻場景進(jìn)行人臉檢測和識別,最后通過實驗表明此方法能夠有較高的正確率,并能準(zhǔn)確識別視頻中的人臉。
關(guān)鍵詞: 人臉識別;卷積神經(jīng)網(wǎng)絡(luò);深度學(xué)習(xí)
中圖分類號: TP391. 41 ? ?文獻(xiàn)標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.08.002
本文著錄格式:劉楠,劉瑞安,尹寧浩,等. 基于深度卷積神經(jīng)網(wǎng)絡(luò)的人臉識別[J]. 軟件,2019,40(8):0608
【Abstract】: At present, face recognition technology has great research value in various fields of society, especially in real-time video scenes. Deep convolutional neural network was built based on the deep learning related knowledge and the Keras framework to train an effective face recognition model, which was applied to real-time video scene for face detection and recognition. Finally, the experiment shows that this method has high accuracy and can identify faces in video accurately.
【Key words】: Face recognition; Convolutional neural network; Deep learning
0 ?引言
人臉識別是近年來新興的生物識別技術(shù),以人臉信息為主要特征來進(jìn)行身份判定。近年來隨著人工智能技術(shù)不斷發(fā)展,人臉識別技術(shù)研究得到了巨大的推動,同時也更廣泛應(yīng)用到實際生活場景中:金融銀行的“刷臉”功能的使用、火車站的人證對比功能、企業(yè)住宅的門禁管理功能、手機(jī)解鎖功能、課堂考勤 [1]以及國防公安等其他場景,因此人臉識別必須精確而高效,才能逐漸滿足應(yīng)用需求。
傳統(tǒng)的人臉識別有基于模板匹配和基于統(tǒng)計學(xué)[2]等方法,但是由于算法限制以及人臉識別自身的復(fù)雜性,并沒有較好地應(yīng)用在實際場景中。自2006年Hinton[3]等人提出深度學(xué)習(xí)概念,該領(lǐng)域不斷發(fā)展,2014年以來深度學(xué)習(xí)被更多地應(yīng)用到人臉識別領(lǐng)域。Facebook 公司提出了Deep Face[4],香港中文大學(xué)研究團(tuán)隊提出了一系列基于深度學(xué)習(xí)的人
臉識別方法Deep ID1 [5],Deep ID2 [6],Deep ID2+ [7]和Deep ID3 [8],2015年谷歌提出的Face Net [9]算法,在LFW測試集上達(dá)到了99.63%的準(zhǔn)確率,同年百度[10]、騰訊[11]、曠視[12]等擁有海量數(shù)據(jù)的大公司也都提出了自己的基于深度學(xué)習(xí)的算法,隨著硬件平臺的發(fā)展,深度學(xué)習(xí)網(wǎng)絡(luò)模型呈現(xiàn)出層次越來越深的趨勢。
1 ?卷積神經(jīng)網(wǎng)絡(luò)
20世紀(jì)90年代,LeCun et al.[13]等人的論文基本確定了卷積神經(jīng)網(wǎng)絡(luò)的現(xiàn)代結(jié)構(gòu),隨后不斷發(fā)展,設(shè)計了一種能夠?qū)κ謱憯?shù)字進(jìn)行分類的多層人工神經(jīng)網(wǎng)絡(luò),取名為LeNet-5,如圖1所示。
卷積神經(jīng)網(wǎng)絡(luò)是一種深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型,具有權(quán)值共享、局部連接等特性,這使得卷積神經(jīng)網(wǎng)絡(luò)有一定的平移、縮放和旋轉(zhuǎn)不變性,能夠廣泛應(yīng)用于圖像分類[14]、人臉識別等場景。卷積神經(jīng)網(wǎng)絡(luò)一般是由卷積層、池化層和全連接層交叉堆疊而成的前饋神經(jīng)網(wǎng)絡(luò),使用反向傳播算法進(jìn)行訓(xùn)練。各層簡要介紹如下:
(1)卷積層(Convolutions layer):用于學(xué)習(xí)輸入數(shù)據(jù)的特征表示,組成卷積層的卷積核用于計算不同的特征圖。
(2)池化層(Pooling layer):又稱下采樣層,用于降低卷積層輸出的特征向量,同時改善結(jié)果通過卷積層與池化層,可以獲得更多的抽象特征。
(3)全連接層(Full connected layer):經(jīng)過一系列計算,對上層數(shù)據(jù)進(jìn)行分類。
隨著處理數(shù)據(jù)的增多,人們對卷積神經(jīng)網(wǎng)絡(luò)的要求也越來越高,卷積神經(jīng)網(wǎng)絡(luò)朝著網(wǎng)絡(luò)加深和增強(qiáng)卷積模塊功能方向發(fā)展,也就是深度卷積神經(jīng)網(wǎng)絡(luò)。Alex提出的Alexnet [15]、Karen Simonyank提出的VGGNet [16]、谷歌公司提出的GoogLeNet [17]、何凱明團(tuán)隊提出的ResNet [18]都是典型常用的深度卷積神經(jīng)網(wǎng)絡(luò)模型。
2 ?基于深度卷積神經(jīng)網(wǎng)絡(luò)的人臉識別
2.1 ?Keras神經(jīng)網(wǎng)絡(luò)框架
為更好地實現(xiàn)人臉識別,本文采用一個高級的高度封裝的Python神經(jīng)網(wǎng)絡(luò)框架——Keras [19],實驗采用的后端為Tensorflow,核心數(shù)據(jù)結(jié)構(gòu)為Sequential模型,此類模型是一系列網(wǎng)絡(luò)層有序組成的棧。Keras框架具有以下優(yōu)點(diǎn):
1、模塊化:模塊的各個部分,如神經(jīng)層、激活函數(shù)都是相互獨(dú)立的模塊,可以進(jìn)行組合創(chuàng)建模型;
2、極簡主義:每個模塊都保持簡短和簡單;
3、易擴(kuò)展性:易添加新模塊,可做進(jìn)一步的深入研究
Keras框架易操作實現(xiàn)簡單等優(yōu)點(diǎn)為本次實驗實現(xiàn)人臉識別奠定了基礎(chǔ),是構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò)模型的前提。
2.2 ?構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò)模型
為達(dá)到最佳人臉識別效果,本次實驗依據(jù)深度學(xué)習(xí)相關(guān)知識構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò) [20],利用已有的人臉數(shù)據(jù)庫對其進(jìn)行訓(xùn)練,并將訓(xùn)練好的模型應(yīng)用到視頻的人臉檢測[21]和識別中。
具體步驟如下:
(1)構(gòu)建網(wǎng)絡(luò)模型。本次實驗構(gòu)建的深度卷積神經(jīng)網(wǎng)絡(luò)主要包括卷積層、激活函數(shù)層、池化層、Dropout層、全連接層、Flatten層和分類層共18層。其中激活函數(shù)層將簡單的線性輸入轉(zhuǎn)換成復(fù)雜的非線性輸出,以獲得更好的分類效果;Flatten層將輸入數(shù)據(jù)轉(zhuǎn)換成一維數(shù)據(jù)輸入到全連接層; Dropout層用來避免訓(xùn)練時出現(xiàn)過擬合現(xiàn)象,使模型更穩(wěn)定;分類器采用Softmax函數(shù),此種分類器主要應(yīng)用于多分類,其函數(shù)形式如下:
其中Zj表示當(dāng)前神經(jīng)元的輸入,總的類別為N個,分子表示當(dāng)前輸入的指數(shù),分母表示總的輸入指數(shù)之和,aj結(jié)果為一個介于0—1的比值,比值越大訓(xùn)練效果越理想。
(2)訓(xùn)練過程中對加載人臉圖像進(jìn)行實時數(shù)據(jù)提升,從訓(xùn)練數(shù)據(jù)中利用旋轉(zhuǎn)、翻轉(zhuǎn)等方法創(chuàng)造新的訓(xùn)練數(shù)據(jù)以提升訓(xùn)練數(shù)據(jù)規(guī)模,提高模型的穩(wěn)定性和訓(xùn)練效果。
(3)通過判斷識別正確率及時調(diào)整各步驟以實現(xiàn)最佳識別效果,此時得到的卷積神經(jīng)網(wǎng)絡(luò)模型即為訓(xùn)練好的最佳卷積神經(jīng)網(wǎng)絡(luò)模型。
(4)將訓(xùn)練好的最佳卷積神經(jīng)網(wǎng)絡(luò)模型應(yīng)用到視頻人臉檢測和識別中,最后得到正確的人臉檢測與識別結(jié)果。
3 ?實驗結(jié)果
本次實驗采用ORL人臉數(shù)據(jù)庫(記為1號數(shù)據(jù)庫),共40人400張人臉圖片,其中80%人臉圖像用來訓(xùn)練模型,20%人臉圖像用來測試模型在該人臉數(shù)據(jù)庫上的正確率,訓(xùn)練過程中給人臉數(shù)據(jù)庫中所有圖片按序依次進(jìn)行標(biāo)記,圖片名稱為每個人獨(dú)有的標(biāo)簽。若模型訓(xùn)練效果理想則將模型應(yīng)用于視頻人臉檢測與識別。為將數(shù)據(jù)庫人臉與要識別視頻人臉完全匹配,本次實驗在數(shù)據(jù)庫中額外添加10張在網(wǎng)絡(luò)中隨機(jī)下載的人臉圖片(記為2號數(shù)據(jù)庫),再次按照原來比例分別進(jìn)行訓(xùn)練和測試進(jìn)行實驗。得出兩種情況實驗結(jié)果如表1所示:
由表1可以看出深度卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建的模型在人臉識別中具有較高的正確率及較小的誤差,為進(jìn)一步驗證其在實際應(yīng)用中的有效性,我們導(dǎo)入隨機(jī)在網(wǎng)上下載包含2號數(shù)據(jù)庫額外添加圖片的人臉視頻,識別結(jié)果如圖2所示,可以看出視頻中人臉已經(jīng)被準(zhǔn)確檢測并標(biāo)記對應(yīng)的名字,進(jìn)一步說明了本次實驗構(gòu)建的深度卷積網(wǎng)絡(luò)模型在人臉識別中的有效性。
4 ?總結(jié)
本文介紹了卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,并利用Keras框架將深度卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到人臉識別中,實驗表明該模型在ORL人臉數(shù)據(jù)庫能得到較高的正確率,并能準(zhǔn)確識別視頻中人臉,能夠應(yīng)用在實際工作中。在下一步的實驗進(jìn)行中將進(jìn)一步探究在數(shù)據(jù)量更多的人臉數(shù)據(jù)庫情況下深度卷積神經(jīng)網(wǎng)絡(luò)模型將如何優(yōu)化,并建立一個完整的人臉識別系統(tǒng)[22]。
參考文獻(xiàn)
[1] 吳美香, 鄧園園, 裴楓華, 等. 基于人臉識別的移動課堂考勤系統(tǒng)的設(shè)計與實現(xiàn)[J]. 軟件, 2018, 39(01): 05-08
[2] 全雪峰. 基于奇異熵和隨機(jī)森林的人臉識別[J]. 軟件, 2016, 37(02): 35-38.
[3] H.Geoffrey. E, R. Salakhutdinov. Reducing the dimensionality of data with neural networks. [J]. Science, 2006, 313(5786).
[4] Y Taigman, M Yang, M Ranzato, et al. Deep Face: Closing the Gap to Human-Level Performance in Face Verification [C]. IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2014: 1701-1708
[5] Y Sun, X Wang, X Tang. Deep Learning Face Representation from Predicting 10,000 Classes[C]. Computer Vision and Pattern Recognition. IEEE, 2014: 1891-1898
[6] Y Sun, X Wang, X Tang. Deep Learning Face Representation by Joint Identification-Verification[J]. 2014, 27:1988-1996
[7] Y Sun, X Wang, X Tang. Deeply learned face representations are sparse, selective, and robust[J]. 2014: 2892-2900
[8] Y Sun, D Liang, X Wang, et al. Deep ID3: Face Recognition with Very Deep Neural Networks[J]. Computer Science, 2015
[9] F Schroff, D Kalenichenko, J Philbin. Face Net: A unified embedding for face recognition and clustering[J]. 2015: 815-823
[10] J Liu, Y Deng, T Bai, et al. Targeting Ultimate Accuracy: Face Recognition via Deep Embedding[J]. 2015[19]
[11] B Zhu, H Liu.. MIREX 2015 QBSH task: Tencent Best images solution[J]. 2015
[12] E Zhou, Z Cao, Q Yin. Naive-Deep Face Recognition: Touching the Limit of LFW Benchmark or Not? [J]. Computer Science, 2015
[13] Lecun Y, Botton L, Bengio Y, Haffer P. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.
[14] 呂臻, 張宇. 一種基于PE病毒轉(zhuǎn)圖和CNN的病毒識別方法[J]. 軟件, 2018, 39(6): 131-134
[15] Alex Krizhevsky, Ilya Sutskever,Geoffrey E. Hinton. Imagenet classification with deep convolutional neural networks[C]. In Proceedings of the 25th International Conference on Neural Information Processing Systems-Volume1, 2012, 1097-1105
[16] Simonyank, Zisserman A.. Very deep convolutional networks for large-scale image recognition[J]. Eprint Arxiv, 2014.
[17] Szegedt C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Boston. IEEE, 2015: 1-9.
[18] He K, Zhang X, Ren S, et al.. Deep residual learning for image recognition[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas. IEEE, 2016: 770-778.
[19] 李嘉旋.TensorFlow技術(shù)解析與實踐[M]. 1版. 北京: 人民郵電出版社, 2017: 135-136
[20] 李倩玉, 蔣建國, 齊美彬. 基于改進(jìn)深層網(wǎng)絡(luò)的人臉識別算法[J]. 電子學(xué)報, 2017, 45(03): 619-625.
[21] 張明軍,俞文靜,袁志,黃志金.視頻中目標(biāo)檢測算法研究[J]. 軟件, 2016, 37(04): 40-45.
[22] 安大海, 蔣硯軍. 基于BP神經(jīng)網(wǎng)絡(luò)的人臉識別系統(tǒng)[J]. 軟件, 2015, 36(12): 76-79.