柯鵬飛,蔡茂國(guó),吳 濤
(深圳大學(xué) 信息工程學(xué)院,廣東 深圳 518060)
近年來(lái),人臉識(shí)別技術(shù)得到迅速發(fā)展并取得了眾多研究成果,已成為計(jì)算機(jī)視覺(jué)領(lǐng)域的重要研究方向之一,但是由于其本身的復(fù)雜性,即使同一個(gè)人在不同的光照、姿態(tài)、表情等因素下,人臉看起來(lái)也不盡相同,因此為減少這些因素對(duì)人臉識(shí)別的影響,設(shè)計(jì)的算法需要弱化同一個(gè)體間的類內(nèi)變化,同時(shí)強(qiáng)化不同個(gè)體間的類間變化,如PCA[1]、LDA[2]、Bayesian Face[3]等基于子空間學(xué)習(xí)的人臉識(shí)別算法。LDA算法建立一個(gè)子空間,所有樣本在該子空間內(nèi)要盡可能滿足類內(nèi)散度最小、類間散度最大的要求,從而使學(xué)習(xí)到的特征具有明顯的區(qū)分度。其他人臉識(shí)別算法也是將人臉圖像投影到一個(gè)能相對(duì)容易分類的子空間[4]。此外,學(xué)者還提出了基于不同特征提取算子的人臉識(shí)別算法,如LBP[5]、Gabor Filter[6]、SIFT[7]等。這些算法的特征描述算子都是基于人臉的先驗(yàn)知識(shí)進(jìn)行人為設(shè)定,能提取出人臉圖像的不同特征,取得了較好的識(shí)別效果[8]。
基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的人臉識(shí)別算法的研究在過(guò)去十幾年中取得了重大進(jìn)展。從DeepID[9]、DeepID2[10]、DeepID3[11]、Face-Net[12]到VGG-Face[13],這些模型經(jīng)過(guò)大量的數(shù)據(jù)訓(xùn)練后,能準(zhǔn)確學(xué)習(xí)人臉識(shí)別特征,從而在人臉識(shí)別驗(yàn)證上達(dá)到較好的效果。文獻(xiàn)[5]提出基于傳統(tǒng)手工特征與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的人臉識(shí)別方法,如先用LBP算子獲取LBP圖,并將其作為卷積神經(jīng)網(wǎng)絡(luò)的輸入。文獻(xiàn)[14]認(rèn)為人臉識(shí)別不是一個(gè)獨(dú)立的問(wèn)題,其將人臉識(shí)別和姿態(tài)、光照、表情等因素相關(guān)聯(lián),提出基于多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別算法。為解決數(shù)據(jù)量不足的問(wèn)題,從減少模型的訓(xùn)練時(shí)間和加快模型的收斂速度出發(fā),文獻(xiàn)[15]提出的算法對(duì)預(yù)訓(xùn)練模型進(jìn)行微調(diào),使得預(yù)訓(xùn)練模型能完成當(dāng)前特定任務(wù),但文獻(xiàn)[16]算法的遷移學(xué)習(xí)效果并不比隨機(jī)初始化訓(xùn)練模型的效果更好。本文為將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于中小型人臉數(shù)據(jù)庫(kù),采用改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)與隨機(jī)初始化訓(xùn)練模型,提出一種新型人臉識(shí)別算法。
本文提出的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。CNN結(jié)構(gòu)包含3層卷積層、3層最大池化層、1層殘差單元層、1層平均池化層和1層SoftMax分類層。
圖1 改進(jìn)的CNN結(jié)構(gòu)
殘差單元結(jié)構(gòu)如圖2所示。該結(jié)構(gòu)是一個(gè)3層的網(wǎng)絡(luò)結(jié)構(gòu),包含2個(gè)卷積核大小為1×1的卷積層和1個(gè)卷積核大小為3×3的卷積層。殘差單元通過(guò)short connections將低層的特征直接映射到高層網(wǎng)絡(luò)中,該方法直接將輸入信息繞道輸出,保證了信息的完整性。
圖2 殘差單元結(jié)構(gòu)
改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)采用兩種大小不同的卷積核對(duì)圖像進(jìn)行處理,前兩層卷積層的卷積核大小為5×5,步長(zhǎng)為1;最后一層卷積層的卷積核大小為3×3,步長(zhǎng)為1,且都采用padding方式進(jìn)行補(bǔ)0操作。每一層卷積核后緊跟2×2的最大池化層。殘差單元先利用1×1的卷積核對(duì)輸入的特征向量進(jìn)行降維,輸出的特征為64維,再利用3×3的卷積核對(duì)特征向量進(jìn)行卷積。為使輸入向量和輸出向量的維度一致,特征向量需經(jīng)過(guò)1×1的卷積核進(jìn)行升維。將殘差單元的輸入向量和輸出向量相加再進(jìn)行非線性操作,接著作為平均池化層的輸入,平均池化層在保持旋轉(zhuǎn)、平移、伸縮等情況下減少特征和參數(shù),最后在SoftMax層對(duì)輸入數(shù)據(jù)進(jìn)行分類。
X=f(I;k,b)
(1)
其中,f(·)代表輸入圖像I到人臉特征向量X的非線性映射函數(shù),k代表權(quán)重矩陣,b代表偏差向量。經(jīng)過(guò)訓(xùn)練后得到模型參數(shù)θ={k,b},θ代表了模型表征能力。
在改進(jìn)的CNN中,假設(shè)平均池化層輸出的特征向量是提取到的人臉特征向量X,然后將它輸入到SoftMax分類器進(jìn)行人臉識(shí)別。假設(shè)wd和bd分別表示SoftMax分類層的權(quán)重矩陣和偏差向量,d表示人臉的總類別數(shù)。因此,SoftMax層可以表示為:
yd=wdX+bd
(2)
(3)
(4)
實(shí)驗(yàn)采用交叉熵函數(shù)(如式(5)所示)作為模型的損失函數(shù)。
(5)
在改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)中,本文采用One-hot編碼算法對(duì)標(biāo)簽進(jìn)行編碼,因此若輸入圖像I屬于第j類,則式(5)可以改寫(xiě)為:
(6)
采用隨機(jī)梯度下降方法訓(xùn)練模型,模型參數(shù)更新如下:
(7)
(8)
由式(7)、式(8)可知,在訓(xùn)練過(guò)程中,當(dāng)圖像正確分類時(shí),權(quán)重和偏差值不會(huì)更新,否則需進(jìn)行更新。
(9)
因此,當(dāng)給定訓(xùn)練圖像集合D時(shí),模型通過(guò)不斷訓(xùn)練,根據(jù)隨機(jī)梯度下降方法能找到使損失函數(shù)值最小的模型參數(shù)θ。模型參數(shù)θ代表了模型的泛化程度,是評(píng)價(jià)模型性能優(yōu)劣的重要指標(biāo)。
集成學(xué)習(xí)算法是當(dāng)前比較流行的機(jī)器學(xué)習(xí)算法之一,通過(guò)構(gòu)建并結(jié)合若干個(gè)體學(xué)習(xí)器完成學(xué)習(xí)任務(wù)。根據(jù)任務(wù)的不同,集成學(xué)習(xí)可以分為分類集成、回歸集成、特征選取集成、異常點(diǎn)檢測(cè)集成等。圖3為集成學(xué)習(xí)算法的一般結(jié)構(gòu),其先通過(guò)某種算法產(chǎn)生一組個(gè)體學(xué)習(xí)器,再通過(guò)某種策略對(duì)其進(jìn)行結(jié)合。根據(jù)個(gè)體學(xué)習(xí)器之間的性質(zhì)可以將集成學(xué)習(xí)劃分為同質(zhì)集成或異質(zhì)集成。同質(zhì)集成學(xué)習(xí)包含同種類型的學(xué)習(xí)器,例如決策樹(shù)集成中的學(xué)習(xí)器全部是決策樹(shù),異質(zhì)集成學(xué)習(xí)則包含不同類型的學(xué)習(xí)器。
圖3 集成學(xué)習(xí)結(jié)構(gòu)
集成學(xué)習(xí)將多個(gè)學(xué)習(xí)器進(jìn)行結(jié)合,一般可以獲得比單一學(xué)習(xí)器更好的泛化性能。常用的結(jié)合策略有兩種,分別為投票法和學(xué)習(xí)法,本文采用投票法。投票法使用所有個(gè)體學(xué)習(xí)器結(jié)果的凸組合作為最終決策。
(10)
其中,wi為權(quán)重,di為第i個(gè)學(xué)習(xí)器的預(yù)測(cè)結(jié)果,θ=θ1,θ2,…,θL為所有學(xué)習(xí)器的參數(shù)。對(duì)于第Cj類,則有:
(11)
本文提出一種基于改進(jìn)CNN網(wǎng)絡(luò)和集成學(xué)習(xí)的人臉識(shí)別算法,其是一種同質(zhì)集成學(xué)習(xí)算法。該算法由兩個(gè)個(gè)體學(xué)習(xí)器組成,即由兩個(gè)簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)組成一個(gè)multi-CNN。改進(jìn)CNN網(wǎng)絡(luò)中的第一個(gè)卷積神經(jīng)網(wǎng)絡(luò)由3個(gè)卷積層、3個(gè)池化層、1個(gè)殘差單元層和1個(gè)全連接層、1個(gè)BatchNormalization層、1個(gè)Softmax分類層組成;第二個(gè)卷積神經(jīng)網(wǎng)絡(luò)包含了3個(gè)卷積層、3個(gè)池化層、1個(gè)殘差單元層和1個(gè)平均池化層、1個(gè)SoftMax分類層。兩網(wǎng)絡(luò)的特征提取層不一致,1個(gè)為全連接層,1個(gè)為平均池化層,使得輸出的人臉特征向量具有差異性。兩個(gè)網(wǎng)絡(luò)既獨(dú)立,又相互關(guān)聯(lián),都采用交叉熵函數(shù)作為網(wǎng)絡(luò)損失函數(shù),同時(shí)由各自的損失函數(shù)組成新的損失函數(shù)。
假設(shè)兩個(gè)卷積神經(jīng)網(wǎng)絡(luò)的損失函數(shù)分別為:
(12)
(13)
基于改進(jìn)CNN網(wǎng)絡(luò)和集成學(xué)習(xí)的人臉識(shí)別算法的損失函數(shù)為:
L(I,y,θ)=L1(I,y,θ)+L2(I,y,θ)=
(14)
(15)
(16)
通過(guò)以上分析可知,基于改進(jìn)CNN網(wǎng)絡(luò)和集成學(xué)習(xí)的人臉識(shí)別算法能對(duì)子學(xué)習(xí)器的結(jié)果進(jìn)行微調(diào),從而達(dá)到更高的識(shí)別準(zhǔn)確率。
本文采用公開(kāi)的Color FERET人臉數(shù)據(jù)庫(kù)[17],AR人臉數(shù)據(jù)庫(kù)[18]和ORL人臉數(shù)據(jù)庫(kù)作為實(shí)驗(yàn)數(shù)據(jù)庫(kù)。Color FERET人臉數(shù)據(jù)庫(kù)一共包含11 338幅人臉圖像,這些圖像是994個(gè)志愿者的不同姿態(tài)圖像。Color FERET數(shù)據(jù)庫(kù)包括了13種不同姿態(tài)的圖像,同時(shí)修正了一些在Gray FERET數(shù)據(jù)庫(kù)上出現(xiàn)的錯(cuò)誤。AR人臉數(shù)據(jù)庫(kù)一共有126人,每個(gè)人包含26幅不同光照、姿態(tài)和表情變化的圖像。ORL人臉數(shù)據(jù)庫(kù)共有40個(gè)人,每個(gè)人包含10幅不同姿態(tài)和表情的圖像。圖4為Color FERET、AR和ORL數(shù)據(jù)庫(kù)上的一些樣本圖像。
圖4 人臉數(shù)據(jù)庫(kù)部分樣本
本文采用多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)(MTCNN)[19]檢測(cè)和定位人臉圖像區(qū)域。該方法能有效去除非人臉信號(hào)并減少噪聲,同時(shí)能剔除模糊或極端圖像。經(jīng)過(guò)MTCNN人臉檢測(cè)器處理后,Color FERET人臉數(shù)據(jù)庫(kù)的圖像為11 287幅,AR人臉數(shù)據(jù)庫(kù)的圖像為3 108幅,ORL人臉數(shù)據(jù)庫(kù)的圖像為400幅,并且每幅人臉圖像的尺寸經(jīng)檢測(cè)后被調(diào)整為64×64。為獲取更多的圖像數(shù)據(jù),防止模型過(guò)擬合,本文采用鏡像翻轉(zhuǎn)技術(shù)獲取兩倍數(shù)量的人臉圖像,數(shù)據(jù)預(yù)處理流程如圖5所示。
圖5 數(shù)據(jù)預(yù)處理流程
網(wǎng)絡(luò)模型輸入為64×64×3的RGB彩色人臉圖像。在實(shí)驗(yàn)過(guò)程中,采用留出法進(jìn)行實(shí)驗(yàn),同時(shí)通過(guò)多次實(shí)驗(yàn)求均值。為使實(shí)驗(yàn)結(jié)果更準(zhǔn)確,每次實(shí)驗(yàn)都先將數(shù)據(jù)集隨機(jī)打亂,然后將80%的數(shù)據(jù)作為訓(xùn)練集,20%作為測(cè)試集。為防止過(guò)擬合,采用L2正則化方法進(jìn)行訓(xùn)練,且權(quán)重衰減值設(shè)置為0.003。模型學(xué)習(xí)率初始化為0.001,批量大小設(shè)置為128,epoch設(shè)置為200。如果網(wǎng)絡(luò)模型收斂效果不明顯,則學(xué)習(xí)率會(huì)繼續(xù)增加迭代次數(shù)。該網(wǎng)絡(luò)模型在TensorFlow框架下進(jìn)行實(shí)現(xiàn),實(shí)驗(yàn)平臺(tái)為GeForce GTX1050TI-A4G GPU。
3.4.1 改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)性能
為驗(yàn)證改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的性能,將本文提出的卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)VGGNet16和ResNet18進(jìn)行比較。VGGNet16是一個(gè)具有16層結(jié)構(gòu)的平面卷積網(wǎng)絡(luò),其中包含13層卷積層、2層全連接層、1層Softmax層。ResNet18是一個(gè)具有18層結(jié)構(gòu)的殘差卷積網(wǎng)絡(luò),其中包含1層卷積層、4個(gè)殘差模塊(每個(gè)殘差模塊由2層卷積層組成)和1層Softmax層。為比較改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)與其他網(wǎng)絡(luò)的性能,本文在相同實(shí)驗(yàn)環(huán)境下對(duì)3個(gè)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。圖6為3個(gè)網(wǎng)絡(luò)模型在測(cè)試集上的準(zhǔn)確率和損失函數(shù)值,同時(shí)為計(jì)算模型的時(shí)間復(fù)雜度,本文先統(tǒng)計(jì)模型訓(xùn)練所需時(shí)間,再除以迭代次數(shù),最終得到的時(shí)間復(fù)雜度結(jié)果如表1所示。
圖6 網(wǎng)絡(luò)模型的預(yù)測(cè)準(zhǔn)確率和損失值
表1 不同網(wǎng)絡(luò)模型的性能比較結(jié)果
從表1可以看出,改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)相對(duì)傳統(tǒng)VGGNet16和ResNet18有較大的性能提升。本文提出的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)在Color FERET人臉數(shù)據(jù)庫(kù)的效果比VGGNet16和ResNet18更好的原因?yàn)?1)改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)合了平面卷積神經(jīng)網(wǎng)絡(luò)和殘差神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),具有結(jié)構(gòu)簡(jiǎn)單且收斂速度快的特點(diǎn)。2)因?yàn)閭鹘y(tǒng)神經(jīng)網(wǎng)絡(luò)是面向大型數(shù)據(jù)庫(kù)而設(shè)計(jì)的網(wǎng)絡(luò),例如VGGNet16和ResNet18,所以具有比較復(fù)雜且相對(duì)較深的網(wǎng)絡(luò)結(jié)構(gòu),當(dāng)這些網(wǎng)絡(luò)模型被應(yīng)用于中小型數(shù)據(jù)庫(kù)時(shí),通常會(huì)出現(xiàn)過(guò)擬合的情況。
3.4.2 人臉識(shí)別算法性能
本文采用兩極分化的處理方式驗(yàn)證基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的人臉識(shí)別算法的性能,即將兩個(gè)卷積神經(jīng)網(wǎng)絡(luò)的權(quán)重系數(shù)分別設(shè)置為0。在表2中,(α,β)表示兩個(gè)網(wǎng)絡(luò)的權(quán)重系數(shù)。當(dāng)α=0、β=1或α=1、β=0時(shí),相當(dāng)于基于改進(jìn)CNN網(wǎng)絡(luò)的人臉識(shí)別算法;當(dāng)α=1、β=1時(shí),相當(dāng)于基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的人臉識(shí)別算法。從表2可以看出,本文提出算法準(zhǔn)確率最高,為98.89%,相對(duì)于單一網(wǎng)絡(luò),集成網(wǎng)絡(luò)能明顯提高人臉識(shí)別準(zhǔn)確率。
表2 不同權(quán)重時(shí)的人臉識(shí)別準(zhǔn)確率對(duì)比結(jié)果
表3為不同人臉識(shí)別算法在Color FERET人臉數(shù)據(jù)上的識(shí)別準(zhǔn)確率。從表3可以看出,基于改進(jìn)CNN網(wǎng)絡(luò)的人臉識(shí)別算法與FUCNN、PCANet等算法的效果接近,比LBPNet和ADCNN等算法效果更優(yōu)?;诟倪M(jìn)CNN網(wǎng)絡(luò)和集成學(xué)習(xí)的人臉識(shí)別算法進(jìn)一步提升了人臉識(shí)別性能,達(dá)到98.89%的識(shí)別準(zhǔn)確率。實(shí)驗(yàn)結(jié)果表明,基于改進(jìn)CNN網(wǎng)絡(luò)的算法和基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的算法都能有效提升人臉識(shí)別率。
表3不同人臉識(shí)別算法在Color FERET數(shù)據(jù)庫(kù)上的識(shí)別準(zhǔn)確率對(duì)比結(jié)果
Table 3 Comparison results of recognition accuracy of different face recognition algorithms on Color FERET database
算法 準(zhǔn)確率ADCNN算法[20]0.8670ISCDCNNs算法[21]0.9510LBPNet算法[22]0.9685FUCNN算法[23]0.9765PCANet算法[24]0.9726LPP+CNN算法[25]0.8943基于改進(jìn)CNN網(wǎng)絡(luò)的算法0.9748基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的算法0.9889
為驗(yàn)證本文算法的泛化性,在AR和ORL人臉數(shù)據(jù)庫(kù)上進(jìn)行對(duì)比實(shí)驗(yàn)。表4為基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的人臉識(shí)別算法和其他基于改進(jìn)CNN網(wǎng)絡(luò)的算法在AR人臉數(shù)據(jù)庫(kù)上的對(duì)比實(shí)驗(yàn)結(jié)果。從表4可以看出,本文基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的算法對(duì)光照、姿態(tài)和遮擋物均有較好的魯棒性,相對(duì)于其他基于改進(jìn)CNN網(wǎng)絡(luò)的算法有明顯的性能提升。
表4不同人臉識(shí)別算法在AR數(shù)據(jù)庫(kù)上的準(zhǔn)確率對(duì)比結(jié)果
Table 4 Comparison results of recognition accuracy of different face recognition algorithms on AR database
算法 準(zhǔn)確率改進(jìn)DCNN算法[26]0.9622CNN算法[27]0.9978LDP+CNN算法[28]0.9900基于改進(jìn)CNN網(wǎng)絡(luò)的算法0.9717基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的算法0.9967
表5為本文基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的算法和其他基于改進(jìn)CNN網(wǎng)絡(luò)的算法在ORL人臉數(shù)據(jù)庫(kù)上的對(duì)比實(shí)驗(yàn)結(jié)果。從表5可以看出,基于改進(jìn)CNN網(wǎng)絡(luò)的人臉識(shí)別算法在ORL數(shù)據(jù)庫(kù)上達(dá)到99.21%的準(zhǔn)確率,基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的人臉識(shí)別算法達(dá)到100%的準(zhǔn)確率。實(shí)驗(yàn)結(jié)果表明,基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的人臉識(shí)別算法在中小型人臉數(shù)據(jù)庫(kù)上具有較好的人臉識(shí)別性能,能明顯提高人臉識(shí)別度。
表5 不同人臉識(shí)別算法在ORL數(shù)據(jù)庫(kù)上的準(zhǔn)確率對(duì)比結(jié)果
本文針對(duì)中小型人臉數(shù)據(jù)庫(kù),提出一種基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的人臉識(shí)別算法。改進(jìn)CNN網(wǎng)絡(luò)同時(shí)具有平面網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)的特點(diǎn),即結(jié)構(gòu)簡(jiǎn)單且收斂速度快。同時(shí),改進(jìn)CNN網(wǎng)絡(luò)采用平均池化層代替全連接層,使得模型更簡(jiǎn)單,可移植性更高。相對(duì)于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò),基于改進(jìn)CNN網(wǎng)絡(luò)的人臉識(shí)別算法在中小型人臉數(shù)據(jù)庫(kù)取得了較好的人臉識(shí)別效果,在Color FERET、AR和ORL人臉數(shù)據(jù)上分別得到97.48%、97.17%和99.21%的準(zhǔn)確率。為進(jìn)一步提高算法識(shí)別率,本文提出一種基于改進(jìn)CNN網(wǎng)絡(luò)與集成學(xué)習(xí)的人臉識(shí)別算法。該算法雖然采用簡(jiǎn)單投票法,但識(shí)別性能卻有明顯提升,最終在Color FERET、AR和ORL人臉數(shù)據(jù)庫(kù)上分別達(dá)到98.89%、99.67%和100%的準(zhǔn)確率,同時(shí)具有較快的收斂速度。后續(xù)將優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),同時(shí)結(jié)合不同的損失函數(shù),提升網(wǎng)絡(luò)模型泛化性能和算法識(shí)別準(zhǔn)確率。