鮑睿棟 趙敏
摘 要:人臉識別是目前計算機技術(shù)研究的熱門領(lǐng)域,廣泛應(yīng)用于人們的日常生活,如門禁系統(tǒng)、攝像監(jiān)視系統(tǒng)、相機以及智能手機等。傳統(tǒng)的人臉識別技術(shù)需要經(jīng)過人工特征提取、特征選擇以及分類器選擇等一系列復(fù)雜步驟,然而識別效果卻并不理想。隨著數(shù)據(jù)量的激增以及GPU高性能計算的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)在人臉識別上有了重大突破。文章回顧了傳統(tǒng)人臉識別方法,闡述了卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)及其改進和優(yōu)化方法,介紹了基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識別技術(shù)及典型應(yīng)用,展望了人臉識別技術(shù)的發(fā)展方向。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);人臉識別;深度學(xué)習(xí);特征提?。环诸惼?/p>
DOIDOI:10.11907/rjdk.172518
中圖分類號:TP301
文獻標(biāo)識碼:A 文章編號:1672-7800(2018)004-0006-03
Abstract:Face recognition is a hot research field of computer technology, and has been widely used in peoples daily life, such as entrance guard system, camera monitoring system, cameras and smart phones, etc. The traditional face recognition technology requires a series of complex steps, such as artificial feature extraction, feature selection and classifier selection, but the recognition effect is not ideal. With the emergence of large data sets and the rapid development of GPU high performance computing, convolutional neural networks have made breakthroughs in face recognition. Firstly, this paper briefly reviews the traditional face recognition method and describes the effectiveness of convolution neural networks. Secondly, it introduces the basic structure some improvement and optimization methods of convolutional neural networks. Thirdly, this paper mainly analyzes some typical applications for convolutional neural networks in face recognition. Finally, it concludes the CNN-based face recognition and the future direction.
Key Words:convolution neural networks; face recognition; deep learning; feature extraction; classifier
0 引言
人臉識別技術(shù)是利用計算機進行人臉圖像分析,并從圖片中提取出有效的識別信息進行身份驗證的一種技術(shù),廣泛應(yīng)用于門禁系統(tǒng)、攝像監(jiān)視系統(tǒng)、學(xué)生考勤系統(tǒng)以及智能手機等領(lǐng)域。然而,對于人臉來說,個體之間結(jié)構(gòu)相似,人臉會由于個體喜怒哀樂的情緒變化帶來臉部形狀的變化,并且光照條件、遮擋物、拍攝角度等都使人臉識別變得困難。
傳統(tǒng)的人臉識別算法主要有:①Bledsoe[1]提出的基于幾何特征的人臉識別方法。該方法將人臉表征為一個特征向量,特征向量的分量可以是眼、鼻、嘴等形狀以及相互之間的幾何關(guān)系,利用此特征向量匹配出相似的人臉;②Turk和Pentland[2]提出的特征臉方法。主要思想是從人臉圖像提取全局特征,將這個高維圖像映射到低維子空間,完成人臉圖像統(tǒng)計特征的提取,在子空間中進行識別; ③基于支持向量機的人臉識別。Osuna[3]最早將支持向量機用于人臉檢測,其基本思想是把一個低維線性不可分的問題轉(zhuǎn)換成高維線性可分問題。
傳統(tǒng)人臉識別方法難以滿足精度需求,其繁瑣的特征提取工作以及分類器的選擇降低了效率,有一定的局限性,如提取的特征如果是低層特征,顯然無法充分表征原始圖像。另外,如果提取的特征維度不可分,會導(dǎo)致識別率低。
近年來,由于訓(xùn)練數(shù)據(jù)的增加以及GPU高性能計算的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)在圖像領(lǐng)域獲得了廣泛關(guān)注。相比傳統(tǒng)人臉識別算法,它避免了對圖像復(fù)雜的前期預(yù)處理過程,可直接輸入原始圖像,自動提取高維特征。和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)神經(jīng)元之間進行全連接相比,卷積神經(jīng)網(wǎng)絡(luò)的權(quán)重共享機制使神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)變得更加簡單。
1 卷積神經(jīng)網(wǎng)絡(luò)
1.1 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)是一個層級結(jié)構(gòu),主要包含輸入層、卷積層、池化層、全連接層以及輸出層。網(wǎng)絡(luò)一般使用多個卷積層和池化層組合,在末端使用多層全連接的前饋神經(jīng)網(wǎng)絡(luò),訓(xùn)練過程使用反向傳播算法,其基本結(jié)構(gòu)如圖1所示。
1.1.1 輸入層
輸入層是整個網(wǎng)絡(luò)的輸入部分,在人臉識別問題上一般代表待訓(xùn)練或待預(yù)測的人臉圖片像素矩陣。如圖1所示的輸入圖片,長和寬代表了圖片的大小,深度代表圖片的色彩通道。例如一張彩色圖片,是RGB三個通道,則圖片深度為3。由于網(wǎng)絡(luò)的輸入節(jié)點個數(shù)是固定的,所以一般在將圖片作為輸入提供給網(wǎng)絡(luò)之前,需要對圖片大小進行調(diào)整。有時為了使訓(xùn)練得到的模型盡可能小地受到噪聲影響,會對圖像做增強處理,如圖像翻轉(zhuǎn)、色彩調(diào)整等。
1.1.2 卷積層
卷積層對輸入層或采樣層輸出的特征圖進行卷積操作,經(jīng)過激勵函數(shù)的作用得到特征圖。卷積層的作用是提取一個局部區(qū)域特征,而每一個卷積核相當(dāng)于一個特征提取器,第l層卷積層中第j個特征圖的計算公式如下:
1.1.3 池化層
池化層往往設(shè)置在兩個卷積層之間,用以對上一層的特征圖進行降采樣處理,可以非常有效地縮小矩陣的尺寸,減少參數(shù)的數(shù)量,一定程度上加快了計算速度,防止了過擬合的問題。
假設(shè)第l層為池化層,該層的某個特征圖計算公式如下:
式(4)中,g(x)表示池化操作,常用的池化操作有Max Pooling和Average Pooling。對于Max Pooling,其操作主要是將輸出特征圖劃分為若干個矩形區(qū)域,對每個區(qū)域取最大值。而Average Pooling是將區(qū)域內(nèi)的值取平均進行采樣。
1.1.4 全連接層
圖像經(jīng)過一系列卷積和池化操作之后,將前一層的所有神經(jīng)元與全連接層的所有神經(jīng)元相連接。全連接層依據(jù)具體任務(wù)對高層特征進行映射。由于第一個全連接層之前是池化層或卷積層,因此需要將這些特征圖預(yù)先拉成特征向量。
1.1.5 輸出層
輸出層一般用作分類器,常用的分類器有Sigmoid函數(shù)和Softmax函數(shù)。以Softmax為例,輸出的值代表各個樣本屬于各個類別的概率,并且概率值之和為1,公式如下:
1.2 網(wǎng)絡(luò)改進與優(yōu)化方法
傳統(tǒng)網(wǎng)絡(luò)卷積層采用線性濾波器和非線性激活函數(shù)。Szegedy[4]等提出了Inception網(wǎng)絡(luò),在同一個卷積層中設(shè)置不同大小的卷積核,從而提取上一層特征圖中不同尺度的特征。
由于網(wǎng)絡(luò)權(quán)重的更新用的是反向傳播算法,所以代價函數(shù)需要對各層的權(quán)值求梯度。傳統(tǒng)的Sigmoid和tanh函數(shù)會出現(xiàn)梯度消失(Gradient Vanish)和梯度爆炸(Gradient Explosion)問題,導(dǎo)致權(quán)重的更新難以進行。Nair[5]等提出了ReLu函數(shù),其公式如下:
顯然,此函數(shù)在正半軸上緩解了梯度消失問題,但是在負(fù)半軸上依然存在這種問題。相比較Sigmoid和tanh函數(shù),權(quán)重更新快,加快了網(wǎng)絡(luò)的訓(xùn)練速度。He等[6]又提出了PReLU,對負(fù)半軸的問題進行抑制,公式如下:
池化層方面,Zeiler等[7]提出了Stochastic Pooling,何凱明等[8]提出了空間金字塔池化,都可以防止網(wǎng)絡(luò)過擬合,增強網(wǎng)絡(luò)的泛化能力。
對于全連接層,其參數(shù)眾多,對這一部分要進行權(quán)值優(yōu)化防止過擬合。Hinton等[9]提出了Dropout,主要思想是在模型訓(xùn)練階段,隨機讓網(wǎng)絡(luò)的某些隱含層節(jié)點的權(quán)值不工作,只有部分權(quán)值得到更新。
在小樣本量時代,網(wǎng)絡(luò)權(quán)值的更新可以使用批量梯度下降法。這種方法在進行一次權(quán)值更新時會遍歷所有樣本,隨著訓(xùn)練圖片的激增,這種方法顯然不太現(xiàn)實。現(xiàn)在通常使用隨機梯度下降法,即權(quán)重的一次更新只關(guān)注一小批圖片樣本,相比原來的方法顯然加快了訓(xùn)練速度。常用的訓(xùn)練技巧主要有權(quán)值初始化、學(xué)習(xí)率衰減、滑動平均模型、權(quán)值衰減、Batch normalization[10]等。
2 卷積神經(jīng)網(wǎng)絡(luò)在人臉識別中的應(yīng)用
傳統(tǒng)的人臉識別方法需要經(jīng)過特征提取、特征選擇和分類器選擇這一系列繁瑣操作,并在特征提取、特征選擇過程中有很大的局限性,比如提取的低層特征對目標(biāo)的表達能力不足。而卷積神經(jīng)網(wǎng)絡(luò)可以提取高層特征,提高特征的表達能力。人臉識別的關(guān)鍵是提出有效的特征來縮減同一人的差異并增大不同人之間差異,將人臉識別和人臉驗證信號作為監(jiān)督,設(shè)計深度卷積網(wǎng)絡(luò)學(xué)習(xí)到深度識別-驗證特征(DeepID2)[11]。卷積神經(jīng)網(wǎng)絡(luò)在人臉識別問題上的重點在于怎樣提高網(wǎng)絡(luò)的特征提取能力。
DeepFace[12]模型在常規(guī)人臉識別流程(人臉檢測-對齊-表達-分類)中,通過3D模型對人臉對齊進行改進,之后用大量的人臉圖像訓(xùn)練一個九層網(wǎng)絡(luò),最終在LFW數(shù)據(jù)集上可以達到97.35%的準(zhǔn)確率。
DeepID[13]用于人臉驗證領(lǐng)域,在LFW數(shù)據(jù)集上可以達到97.45%的準(zhǔn)確率。它的結(jié)構(gòu)和普通卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)類似,但其倒數(shù)第二層的隱藏層和前一層的卷積層以及這個卷積層之前的池化層相連接,這種連接方式可以同時考慮局部特征和全局特征,其高準(zhǔn)確率的另一個原因是用了大量的數(shù)據(jù)進行訓(xùn)練。
FaceNet[14]在LFW數(shù)據(jù)集上準(zhǔn)確率可以達到99.63%,在YouTube Faces DB數(shù)據(jù)集上,準(zhǔn)確率可以達到95.12%。其基于深度卷積神經(jīng)網(wǎng)絡(luò),直接將人臉圖像映射到歐幾里得空間,人臉圖像的相似性由這個空間的距離表示。一旦歐幾里得空間形成,就可很容易地進行人臉識別。
百度[15]提出了結(jié)合muti-patch deep CNN和deep metric learning的方法,在120萬的訓(xùn)練集上進行訓(xùn)練,在LFW數(shù)據(jù)集上準(zhǔn)確率可達到99.77%。其思想主要是通過卷積神經(jīng)網(wǎng)絡(luò)對人臉不同區(qū)域分別進行特征提取,之后再將提取的特征經(jīng)過metric learning降到128維進行識別。
3 結(jié)語
本文對基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識別進行了詳細(xì)的介紹。簡要回顧了傳統(tǒng)人臉識別算法并介紹了卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)以及一些網(wǎng)絡(luò)的改進和優(yōu)化方法,詳細(xì)分析了卷積神經(jīng)網(wǎng)絡(luò)在人臉識別領(lǐng)域的應(yīng)用。雖然基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識別取得了突破性進展,但仍存在一些亟待解決的問題,如目前卷積神經(jīng)網(wǎng)絡(luò)中涉及到的超參數(shù)都是憑借經(jīng)驗和實踐確定,如何對其量化,使得在面對實際問題時有理論指導(dǎo),從而訓(xùn)練出高效有用的網(wǎng)絡(luò),以及如何在大數(shù)據(jù)量、深層次網(wǎng)絡(luò)結(jié)構(gòu)背景下進行高效的數(shù)值計算等,都是值得深入研究的課題。
參考文獻:
[1] BLEDSOE W W. A ManMachine facial recognition system—some preliminary results (1965)[EB/OL]. http://citeseerx.ist.psu.edu/showciting?cid=605724.
[2] TURK M A, PENTLAND A P. Face recognition using eigenfaces[J]. Proc.ieee Conf, computer Vision & Pattern Recognition,2011,84(9):586-591.
[3] OSUNA E, FREUND R, GIROSI F. Training support vector machines: an application to face detection[C]. Computer Vision and Pattern Recognition, 1997 IEEE Computer Society Conference,1997:130-136.
[4] SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions[C]. Computer Vision and Pattern Recognition. IEEE,2015:1-9.
[5] NAIR V, HINTON G E. Rectified linear units improve restricted boltzmann machines[C]. International Conference on International Conference on Machine Learning. Omnipress,2010:807-814.
[6] HE K, ZHANG X, REN S, et al. Delving deep into rectifiers: surpassing human-level performance on ImageNet classification[EB/OL]. https:∥www.computer.org/csdl/proceedings/iccv/2015/8391/00/8391b026-abs.html.
[7] ZEILER M D, FERGUS R. Stochastic pooling for regularization of deep convolutional neural networks[M]. Eprint Arxiv, 2013.
[8] HE K, ZHANG X, REN S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence,2014,37(9):1904-1906.
[9] HINTON G E, SRIVASTAVA N, KRIZHEVSKY A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science,2012,3(4):212-223.
[10] IOFFE S, SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate Shift[J]. Computer Science,2015(2):448-456.
[11] SUN Y, WANG X, TANG X. Deep learning face representation by joint identification-verification[J]. 2014(27):1988-1996.
[12] TAIGMAN Y, YANG M, RANZATO M, et al. Deepface: 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.
[13] SUN Y, WANG X, TANG X. Deep learning face representation from predicting 10,000 classes[C]. IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society,2014:1891-1898.
[14] SCHROFF F, KALENICHENKO D, PHILBIN J. FaceNet: a unified embedding for face recognition and clustering[C]. IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society,2015:815-823.
[15] LIU J, DENG Y, BAI T, et al. Targeting ultimate accuracy: face recognition via deep embedding[EB/OL]. https:∥arxiv.org/abs/1506.07310.
(責(zé)任編輯:杜能鋼)