唐風(fēng)高 伍雪冬
(江蘇科技大學(xué)電子信息學(xué)院 鎮(zhèn)江 212000)
人臉識(shí)別作為非入侵式的生物特征識(shí)別方法,在國防安全、視頻監(jiān)控、人機(jī)交互等方面具有廣泛的應(yīng)用。雖然在過去幾十年中人臉識(shí)別研究取得了較大成果,但是隨著訓(xùn)練樣本的不斷增加,傳統(tǒng)的基于淺層機(jī)器學(xué)習(xí)人臉識(shí)別算法已經(jīng)滿足不了人們的需求。當(dāng)今時(shí)代迫切需要一種新的技術(shù)來彌補(bǔ)這一空缺,而深度學(xué)習(xí)的出現(xiàn)讓人臉識(shí)別的研究進(jìn)入了新的時(shí)代,也對(duì)模式識(shí)別、人工智能、計(jì)算機(jī)視覺等多個(gè)領(lǐng)域產(chǎn)生了重要影響[1]。
針對(duì)人臉識(shí)別的研究,國外學(xué)者提出了許多可行有效的算法。Taigman 等[2]提出了DeepFace 網(wǎng)絡(luò),首次應(yīng)用深度學(xué)習(xí)來進(jìn)行人臉識(shí)別,使用了3D對(duì)齊方法來解決傳統(tǒng)2D對(duì)齊不能解決的面外旋轉(zhuǎn)(out-of-plane rotations)問題,取得了97.25%的準(zhǔn)確率,首次接近了人類肉眼水平,但是網(wǎng)絡(luò)計(jì)算量大,容易陷入過擬合,因此Christian Szegedy等[3]提出了“inception”的深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),該結(jié)構(gòu)優(yōu)化了網(wǎng)絡(luò)內(nèi)部計(jì)算資源的利用率,它既能保持稀疏的網(wǎng)絡(luò)結(jié)構(gòu),又能有高性能密集矩陣的計(jì)算能力,從而極大地避免了人臉訓(xùn)練中容易陷入過擬合的情況;通過引入改進(jìn)的監(jiān)督懲罰L2范數(shù),Angshul Ma?jumdar 等[4]提出了一種基于類稀疏的監(jiān)督自編碼器算法,有效地提高了人臉識(shí)別率;Iacopo Masi等[5]提出了解決人臉大姿態(tài)變化的算法,該算法使用多特點(diǎn)姿態(tài)模型和渲染人臉圖像來解決人臉姿態(tài)變化而造成準(zhǔn)確度降低的問題;Schroff 等[6]提出了FaceNet 人臉識(shí)別算法,該算法使用三元組損失函數(shù)來進(jìn)行網(wǎng)絡(luò)訓(xùn)練,通過空間的距離代表了人臉圖像的相似性的特點(diǎn)直接將人臉圖像映射到歐幾里得空間,在LFW上取得了99.63%的精度。
國內(nèi)學(xué)者對(duì)人臉識(shí)別也做了大量研究。張凱鵬等[7]提出一個(gè)深度級(jí)聯(lián)的多任務(wù)框架(MTCNN),通過級(jí)聯(lián)三個(gè)深度卷積網(wǎng)絡(luò)來對(duì)人臉進(jìn)行檢測(cè)和對(duì)齊,實(shí)現(xiàn)了人臉對(duì)齊更高的準(zhǔn)確度;孫祎等[8]提出DeepID網(wǎng)絡(luò)結(jié)構(gòu),與DeepFace不同的是,該網(wǎng)絡(luò)先對(duì)圖片進(jìn)行切分,然后對(duì)每一個(gè)patch 進(jìn)行訓(xùn)練最后融合成整體人臉圖像的特征向量,在LFW 的準(zhǔn)確度為97.45%;溫研東等[9]提出Center Loss 損失函數(shù),能夠增大類間距離,對(duì)新數(shù)據(jù)有著良好的泛化能力;劉維揚(yáng)等[10]提出大裕量損失函數(shù)(Large-Margin Softmax Loss),可以有效地指導(dǎo)網(wǎng)絡(luò)學(xué)習(xí)類內(nèi)距離較小、類間距離較大的特征,并且能夠避免過擬合;劉金托等[11]提出了一種兩步學(xué)習(xí)算法,首先利用multi-path 深度CNN 網(wǎng)絡(luò)在人臉不同區(qū)域進(jìn)行特征提取,然后利用深度度量學(xué)習(xí)(Deep Metric Learning)將前一階段學(xué)到的特征向量降到128 維,在LFW 數(shù)據(jù)集上取得了99.17%的準(zhǔn)確率;張亞楠等[12]構(gòu)造了多分支CNN 來通過patch 策略學(xué)習(xí)每個(gè)裁剪圖片的特征,更好地利用了模型中全局和局部特征之間的相互作用。栗科峰等[13]通過提取人臉高維特征應(yīng)用最大間距準(zhǔn)則減小最小二乘估計(jì)產(chǎn)生的重建誤差,提出了融合深度學(xué)習(xí)與最大間距準(zhǔn)則的人臉識(shí)別方法,實(shí)現(xiàn)有效的面部識(shí)別分類。
近幾年,隨著深度卷積網(wǎng)絡(luò)在人臉識(shí)別中取得的重大突破,人們熱衷于深度神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì),從最初的Alexnet[14]、VGGnet[15],再到Googlenet,網(wǎng)絡(luò)層數(shù)從當(dāng)初十幾層到二十幾層,人臉識(shí)別的精確度也越來越高,但是過深的網(wǎng)絡(luò)不僅會(huì)造成梯度爆炸或者消失,而且也會(huì)造成訓(xùn)練誤差的增大,而ResNet[16]殘差神經(jīng)網(wǎng)絡(luò)很好地解決了這些問題。這種網(wǎng)絡(luò)比以前的網(wǎng)絡(luò)層數(shù)更深,網(wǎng)絡(luò)每層輸入通過學(xué)習(xí)殘差函數(shù),而不是學(xué)習(xí)未知的函數(shù),因此網(wǎng)絡(luò)的深度雖然增加了,但它仍具有較低的復(fù)雜度。但是以傳統(tǒng)的Softmax 函數(shù)來對(duì)樣本進(jìn)行分類,樣本的決策面不明顯,分類效果不理想,本文提出一種改進(jìn)的ResNet 殘差網(wǎng)絡(luò)的人臉識(shí)別算法,用An?gular Softmax(A-Softmax)Loss 來代替?zhèn)鹘y(tǒng)Softmax Loss損失層,利用A-Softmax具有良好的決策邊界,能夠最小化類內(nèi)距離并且最大化類間距離。
殘差網(wǎng)絡(luò)(ResNet)的提出是深度網(wǎng)絡(luò)的一場(chǎng)革命,是何凱明等[16]于ILSVRC(ImageNet Large Scale Visual Recognition Competition)2015上提出并且將神經(jīng)網(wǎng)絡(luò)層數(shù)提升到152 層,并且證明了它的有效性。ResNet 的出現(xiàn)意味著神經(jīng)網(wǎng)絡(luò)模型開始往深度方面發(fā)展。
在深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,假如想以增加網(wǎng)絡(luò)的深度來提高準(zhǔn)確度,那么會(huì)出現(xiàn)網(wǎng)絡(luò)梯度消失或爆炸和準(zhǔn)確率下降的問題。針對(duì)梯度消失或爆炸問題,采取BatchNorm[17]可以得以緩解;對(duì)于準(zhǔn)確率退化問題,何凱明等人提出通過殘差學(xué)習(xí)來解決。
一般情況下,構(gòu)造更深層次的網(wǎng)絡(luò)模型的措施之一就是對(duì)所增加的網(wǎng)絡(luò)層采用恒等映射(Identi?ty Mapping),而對(duì)原來的網(wǎng)絡(luò)層則采用已經(jīng)學(xué)習(xí)好的網(wǎng)絡(luò)模型。這種方法的意義在于加深后的網(wǎng)絡(luò)模型訓(xùn)練誤差應(yīng)低于其淺層網(wǎng)絡(luò)模型,但是這種構(gòu)造方法通常情況下很難找到。因此何凱明等人提出一種深度殘差學(xué)習(xí)框架,應(yīng)用多層網(wǎng)絡(luò)擬合一個(gè)殘差映射解決了準(zhǔn)確率退化的難題。如果用H(x)來代表所期望得到的實(shí)際映射,即利用堆疊的多層非線性網(wǎng)絡(luò)來表示映射關(guān)系的擬合,那么這個(gè)多層網(wǎng)絡(luò)可以逐漸逼近某個(gè)復(fù)雜函數(shù)的假設(shè)可以等價(jià)于它可以漸進(jìn)地逼近殘差函數(shù)F(x):
其中x為這些層中第一層的輸入,F(xiàn)(x)表示殘差函數(shù)。那么實(shí)際映射關(guān)系可以表示為
假如目前有一個(gè)工作狀況很好的網(wǎng)絡(luò)X,但是現(xiàn)在需要一個(gè)比它更深的網(wǎng)絡(luò)Y,只要將Y的前一部分與X完全相同,只要后面一部分實(shí)現(xiàn)一個(gè)恒等映射,這樣理論上Y的性能與X相當(dāng),而且不至于更差。深度殘差學(xué)習(xí)的思想也由此產(chǎn)生,由于Y較X后面不同部分完成的是恒等映射,那就可以在訓(xùn)練網(wǎng)絡(luò)模型的時(shí)候加上這一先驗(yàn),于是構(gòu)造網(wǎng)絡(luò)的時(shí)候加入了捷徑連接(shortcut connec?tions),式(2)可以通過添加捷徑連接的前向神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),即每層的輸出不是傳統(tǒng)神經(jīng)網(wǎng)絡(luò)當(dāng)中輸入的映射,而是映射和輸入的疊加,如圖1所示。
圖1 殘差網(wǎng)絡(luò)結(jié)構(gòu)
4.1.1 Softmax函數(shù)
卷積神經(jīng)網(wǎng)絡(luò)在經(jīng)過卷積池化等處理會(huì)將特征送入全連接層,人們往往會(huì)把特征從多維轉(zhuǎn)換成一維,這樣不僅能夠簡(jiǎn)便計(jì)算,而且還有助于網(wǎng)絡(luò)的分類。Softmax 就是將多個(gè)神經(jīng)元的輸出,映射到( 0,1) 區(qū)間內(nèi),從而來進(jìn)行多分類,以二分類的Softmax為例,二分類下的Softmax的后驗(yàn)概率為
其決策邊界是當(dāng)p1=p2時(shí),所以決策界面是(W1-W2)x+b1-b2,如果p1>p2,則輸入數(shù)據(jù)屬于類別1,反之屬于類別2。對(duì)于輸入xi,Softmax Loss可以定義為
4.1.2 A-Softmax函數(shù)
A-Softmax 就是將傳統(tǒng)的Softmax 函數(shù)引入角度 函 數(shù) , 可 以 把+bi表 示 成cos(θi)+bi,其中θi為Wi與xi的夾角,則二分類下修改后的Softmax后驗(yàn)概率可以表示為
對(duì)于輸入xi,損失函數(shù)為
cos(θyi,i)是樣本特征與類中心的余弦值,它的值越大,樣本特征與類中心的角度越小,值越小損失函數(shù)值越大,即對(duì)偏離優(yōu)化目標(biāo)的懲罰越大。對(duì)于特征xi,該損失函數(shù)優(yōu)化的方向是使得其向該類別yi中心靠近,并且遠(yuǎn)離其他的類別中心;二分類決策界面為,則它只取決于角度。
其中m≥2,m∈N。m≥2 表明該決策平面與該分類的最大夾角要比其它類的最小夾角還要小m倍。如果m=1,那么類別1 與類別2 的決策平面是屬于同一個(gè)平面,如果m≥2,那么類別1 與類別2 則具有兩個(gè)決策平面。則A-Softmax Loss可以由修改后的損失函數(shù)得出:
超參m控制著懲罰力度,m越大,懲罰力度越大。
余弦相似度度量主要是讓特征在特征空間中分布的更加合理,使得相同類別類內(nèi)距離更小,同時(shí)不同類別類間距離更大,這樣樣本的類別才能夠更好地區(qū)分。余弦相似度度量方法遵循這樣的相似度準(zhǔn)則:以特征樣本對(duì)之間的余弦距離作為相似度準(zhǔn)則。兩個(gè)向量的余弦距離公式定義如式(13)所示:
根據(jù)Nguyen 等[18]提出的余弦相似度度量學(xué)習(xí)方法,假設(shè)xi和yi的類別標(biāo)簽為li,并且li∈0,1,需要一個(gè)空間變換矩陣A,使得在經(jīng)過空間變換之后的子空間內(nèi)xi和yi特征向量滿足類別標(biāo)簽為li這樣的關(guān)系。具體的相似度度量公式為
基于式(14),我們需要求得空間變換矩陣A使得樣本誤差最小化,定義目標(biāo)函數(shù)如式(15)所示:
其中α和β是兩個(gè)系數(shù),且滿足α≥0,β≥0,A0是任意初始化的變換矩陣。
該算法首先對(duì)人臉圖像檢測(cè)并且對(duì)齊,然后將圖像進(jìn)行卷積等處理,在全連接層得到人臉特征,再將圖像特征送入到A-Softmax Loss 層根據(jù)圖像標(biāo)簽計(jì)算訓(xùn)練誤差,最后得到訓(xùn)練模型;測(cè)試階段首先對(duì)測(cè)試圖像進(jìn)行特征提取、驗(yàn)證得出準(zhǔn)確度,網(wǎng)絡(luò)模型如表1所示。
表1 網(wǎng)絡(luò)模型結(jié)構(gòu)表
其中,Conv1.x,Conv2.x,Conv3.x,Conv4.x 表示卷積單元,其包含多個(gè)卷積單元和殘差單元,[3×3,64]×2 表示卷積層包含2 組具有64 個(gè)卷積核大小為3×3的濾波器,S2表示步長為2,F(xiàn)C1為全連接層。
算法流程如圖2所示。
圖2 算法流程圖
本文用到CASIA-WebFace 和LFW 人臉庫,其中CASIA-WebFace人臉庫包含10575個(gè)人,每個(gè)人的圖片數(shù)量從幾十到幾百不等,總共494414 張人臉圖像;LFW 人臉庫包含5749 個(gè)人,總共13233 張人臉圖像。首先對(duì)CASIA-WebFace和LFW人臉數(shù)據(jù)庫的圖像進(jìn)行檢測(cè)對(duì)齊,得到112×96 的圖像,接著將對(duì)齊好的CASIA-WebFace 人臉庫圖像送到改進(jìn)后的殘差網(wǎng)絡(luò)進(jìn)行訓(xùn)練直至收斂得到訓(xùn)練模型,然后根據(jù)LFW 的view2 協(xié)議:測(cè)試的人臉圖像分為10 組,每組600 人,每組300 組正樣例,300 組負(fù)樣例,總共6000 人,將測(cè)試圖像送入訓(xùn)練好的模型進(jìn)行特征提取,歸一化,應(yīng)用10折交叉驗(yàn)證,9組圖像作為訓(xùn)練集,1組作為測(cè)試集,分別取得9次的測(cè)試精度,最后取其平均作為最終的準(zhǔn)確度。
本文還在Youtube Face(YTF)數(shù)據(jù)集進(jìn)行了測(cè)試,Youtube Face(YTF)數(shù)據(jù)集含有1595 個(gè)不同身份下的3425 個(gè)視頻序列,平均每個(gè)人有2.15 個(gè)視頻,使用不限制額外數(shù)據(jù)協(xié)議來測(cè)試,該協(xié)議使用了5000 對(duì)視頻,其中2500 對(duì)視頻來自同一個(gè)人,2500 對(duì)視頻來自不同人,每對(duì)視頻都可以計(jì)算得到一個(gè)相似度,最終的識(shí)別率就由這5000 個(gè)相似度計(jì)算得來。
圖3 從兩組視頻中得到相似度直方圖特征的示意圖
本文算法是在深度學(xué)習(xí)框架Caffe(Convolu?tional Architecture for Fast Feature Embedding)上進(jìn)行,batchsize 設(shè)置為192,基礎(chǔ)學(xué)習(xí)率為0.1,在迭代16000 和24000 次處學(xué)習(xí)率分別下降10 倍,總共迭代28000次,其訓(xùn)練誤差曲線如圖4所示。
圖4 訓(xùn)練誤差與迭代次數(shù)曲線
圖5 余弦相似度閾值對(duì)準(zhǔn)確度的影響
本實(shí)驗(yàn)應(yīng)用余弦相似度來表示兩張圖像的相似度,閾值的選定決定著分類的準(zhǔn)確度,在[-1,1]出選定20000 個(gè)值,分別來計(jì)算準(zhǔn)確度,如圖5 所示。
由圖5 可知,當(dāng)閾值在0.2365 處分類效果最好;當(dāng)模型收斂,將測(cè)試圖像輸入到模型進(jìn)行測(cè)試,通過10折交叉驗(yàn)證,其準(zhǔn)確率如表2所示。
表2 10折交叉驗(yàn)證
最后得出準(zhǔn)確率為:99.27%。與文獻(xiàn)[2]、[6][8~10]實(shí)驗(yàn)結(jié)果對(duì)比如表3所示。
表3 各算法在LFW的識(shí)別率
由表3 可得出:改進(jìn)的殘差網(wǎng)絡(luò)不但能使網(wǎng)絡(luò)更深,而且提取的角度特征更具區(qū)分性,在LFW 和YTF人臉庫上取得了更好的效果。
針對(duì)普通卷積神經(jīng)網(wǎng)絡(luò)會(huì)隨著網(wǎng)絡(luò)層數(shù)加深而造成訓(xùn)練精度退化,本文提出了一種改進(jìn)的殘差網(wǎng)絡(luò)人臉識(shí)別算法。在殘差網(wǎng)絡(luò)的基礎(chǔ)上,利用A-Softmax 具有良好的角度分辨特征解決了Soft?max層分類效果不理想的問題,在LFW和YTF人臉庫上取得了比較好的效果。超參m雖然能夠控制分類決策間隔,但是隨著m的增大,模型也變得難以訓(xùn)練,這些方面還需有待進(jìn)一步深入研究。