朱婭妮,倪 煊,姚 曄
1(浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,杭州 310023)
2(杭州電子科技大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,杭州 310018)E-mail:zyn@hdu.edu.cn
以深度學(xué)習(xí)為代表的機(jī)器學(xué)習(xí)算法已經(jīng)被廣泛應(yīng)用到視頻圖像識別、自然語言處理和語音識別分析等領(lǐng)域中.近年來,隨著計(jì)算機(jī)硬件性能的大幅提升,訓(xùn)練深度網(wǎng)絡(luò)模型所需的時(shí)間大大減少,以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)算法在計(jì)算機(jī)視覺領(lǐng)域,特別是人臉識別領(lǐng)域取得了很大的成功.卷積神經(jīng)網(wǎng)絡(luò)的開創(chuàng)者LeCun在1998年提出LeNet[1],用于識別郵局信件上的手寫數(shù)字.LeNet包含了卷積神經(jīng)網(wǎng)絡(luò)最基本的架構(gòu):卷積層、池化層和全連接層.在2012年的ILSVRC-2012競賽中獲得冠軍的AlexNet網(wǎng)絡(luò)[2]整體結(jié)構(gòu)類似于LeNet,包含了五層卷積和三層全連接網(wǎng)絡(luò).最近幾年取得較大影響的VGGNet[3]、GoogLeNet[4]和ResNet[5],其網(wǎng)絡(luò)層數(shù)越來越深、網(wǎng)絡(luò)架構(gòu)越來越復(fù)雜,解決的計(jì)算機(jī)視覺任務(wù)也越來越難.2014年,在IEEE國際計(jì)算機(jī)視覺與模式識別(CVPR 2014)會(huì)議上,香港中文大學(xué)研究團(tuán)隊(duì)提出的基于DeepID[6]的深度學(xué)習(xí)算法在LFW人臉數(shù)據(jù)集上取得了97.45%的識別率.2015年Google提出的FaceNet[7]在LFW人臉數(shù)據(jù)庫上更是取得了99.63%的識別率.但是,深度學(xué)習(xí)網(wǎng)絡(luò)與人腦的學(xué)習(xí)能力相比仍然存在差距,特別是當(dāng)光照、遮擋、姿勢、年齡、表情和分辨率等干擾因素存在時(shí),測試數(shù)據(jù)與訓(xùn)練數(shù)據(jù)之間存在的協(xié)變量偏移會(huì)造成人臉識別準(zhǔn)確率的下降.2016年Yang等提出一種基于梯度臉(GF)[8]的低光照人臉識別方法,利用梯度臉來改善人臉圖像的高頻成分從而實(shí)現(xiàn)了人臉識別的光照魯棒性.2017年Li等[9]提出一種基于人眼視覺感知變化的自適應(yīng)韋伯臉模型,通過提高特征的冗余度和空間局部化程度實(shí)現(xiàn)了人臉識別的遮擋魯棒性.Wang等[10]在CVPR 2019會(huì)議上提出一種對年齡變化魯棒的人臉識別算法,通過去相關(guān)對抗學(xué)習(xí)(DAL)算法分解年齡和身份的特征信息并顯著降低相關(guān)性,從而去除年齡相關(guān)的特征成分實(shí)現(xiàn)人臉識別的年齡魯棒性.
基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法,通過多層卷積和池化操作能自動(dòng)提取人臉特征,顯著提高了人臉識別的魯棒性和準(zhǔn)確率,但是網(wǎng)絡(luò)學(xué)習(xí)過程中的大量卷積和池化操作卻會(huì)耗費(fèi)大量的計(jì)算資源并丟失部分重要的圖像特征.不同于計(jì)算機(jī)識別過程的是人類在觀察一幅圖片時(shí)可以很快聚焦圖片中的某些特定區(qū)域,人類視覺的注意力機(jī)制可以幫助人眼快速辨別圖像中的顯著性區(qū)域并忽略不重要的信息[11].Wang等[12]認(rèn)為在計(jì)算機(jī)視覺領(lǐng)域注意力機(jī)制可以利用有限的計(jì)算資源集中處理圖像中的重要區(qū)域.英國倫敦大學(xué)研究團(tuán)隊(duì)在CVPR 2018會(huì)議上提出一種新的諧注意力卷積網(wǎng)絡(luò)模型(HA-CNN)[13],將基于像素特征的注意力和基于區(qū)域位置的注意力聯(lián)合起來用于優(yōu)化不受控制的人臉識別.2019年北京大學(xué)研究團(tuán)隊(duì)采用通道注意力模塊提取低光照圖像的重要特征取得了不錯(cuò)的識別效果[14].同年華中科技大學(xué)研究團(tuán)隊(duì)提出了一種基于殘差注意力的卷積神經(jīng)網(wǎng)絡(luò)(SRANet)[15],通過自適應(yīng)學(xué)習(xí)通道內(nèi)關(guān)系矩陣和空間內(nèi)關(guān)系矩陣提取人臉圖像的長期相關(guān)性聚集特征,從而提高了深度人臉的識別精度.
人臉圖像在成像過程中經(jīng)常會(huì)受到光照的影響,變化的面部光照會(huì)導(dǎo)致許多問題,例如,陰影的虛假邊緣容易與面部五官(如眼睛和嘴巴)的真實(shí)輪廓相混淆等.各種光照條件下的人臉識別問題越來越普遍,光照標(biāo)準(zhǔn)化已經(jīng)變成圖像處理領(lǐng)域中的一項(xiàng)重要任務(wù).奇異值分解(SVD)作為一種對噪聲不敏感的代數(shù)特征,通過尋求目標(biāo)數(shù)據(jù)集在低維子空間中的緊致表示可以去除數(shù)據(jù)的冗余信息和噪聲干擾[16].由于SVD得到的系數(shù)比較松弛,對不同的光照條件不敏感,所以采用奇異值矩陣提取的人臉信息具有光照不變的特征,可以實(shí)現(xiàn)人臉識別的光照魯棒性.
本文提出一種結(jié)合奇異值臉(SVDF)和注意力卷積神經(jīng)網(wǎng)絡(luò)(ACNN)的人臉識別模型.卷積運(yùn)算模仿人類的視覺注意力機(jī)制,通過融合通道和空間這兩個(gè)維度的特征[17],有效地幫助卷積網(wǎng)絡(luò)聚焦重要信息流.算法首先采用歸一化后的奇異值矩陣來表示人臉特征,然后將特征輸入到添加了注意力模塊的深度卷積網(wǎng)絡(luò)中,在Yale B[18]和CMU_PIE[19]兩個(gè)常用光照數(shù)據(jù)集上的驗(yàn)證實(shí)驗(yàn)證實(shí)了本文提出的方法具有更好的識別性能.
奇異值分解是機(jī)器學(xué)習(xí)領(lǐng)域中較常用的算法,可以對任意行列的矩陣進(jìn)行數(shù)值分解,因此常用于圖像的特征提取和降維.在一個(gè)具有M×N個(gè)像素的圖像R(x,y)上進(jìn)行SVD分解,可以得到:
R(x,y)=USVT
(1)
其中U和V是正交矩陣,滿足UTU=1,VTV=1.圖像的對角矩陣S=diag(λ1,λ2,Λ,λN)就是R(x,y)的奇異值矩陣.但是實(shí)際應(yīng)用中受光照過低或不均勻等影響,提取的圖像奇異值特征往往會(huì)發(fā)生比較明顯的變化.研究發(fā)現(xiàn)奇異值矩陣的歸一化系數(shù)對光照并不敏感,并且歸一化后的奇異值可以有效描述人臉的基礎(chǔ)結(jié)構(gòu)并復(fù)原重要的面部特征(如眼、鼻、口等).SVD的歸一化系數(shù)矩陣相比于其他光照抑制特征還具有計(jì)算簡便、魯棒性強(qiáng)等優(yōu)勢.所以本文中采用歸一化后的奇異值矩陣來表示人臉特征.
算法首先遍歷圖像中各個(gè)像素并以每個(gè)像素為起點(diǎn)選擇其周圍的區(qū)域,求取其局部奇異值矩陣,然后對局部奇異值矩陣中的最大奇異值做歸一化處理[20],總的奇異值之和被用來歸一化最大奇異值λ1:
(2)
其中λj表示第j個(gè)奇異值.歸一化后的最大奇異值即使在變化的光照條件下統(tǒng)計(jì)特征也非常一致,因此可以有效地表示光照不變的面部信息并成功保留人臉的主要特征.最后歸一化后的奇異值SF被縮放到(0,255)的灰度范圍內(nèi),得到的奇異值矩陣就是奇異值臉.
與傳統(tǒng)的利用人工設(shè)計(jì)特征提取算法相比,基于深度學(xué)習(xí)的網(wǎng)絡(luò)模型具有自動(dòng)抽取海量數(shù)據(jù)高維特征的能力.深度卷積網(wǎng)絡(luò)通過從輸入層到輸出層的多層非線性映射和網(wǎng)絡(luò)的反向傳播完成層次特征的提取和學(xué)習(xí).首先在構(gòu)建的多層隱含神經(jīng)網(wǎng)絡(luò)模型中利用海量數(shù)據(jù)訓(xùn)練出模型特征,進(jìn)而提取出最有利的參數(shù),然后將簡單的特征組合成高層次的抽象特征來實(shí)現(xiàn)對大量特征數(shù)據(jù)的抽象表達(dá)[21].但是卷積神經(jīng)網(wǎng)絡(luò)因大量的卷積和池化操作也會(huì)丟失人臉的部分重要特征,導(dǎo)致網(wǎng)絡(luò)模型所提取的特征對目標(biāo)的表征能力不足.我們參考人類視覺的注意力機(jī)制,在卷積神經(jīng)網(wǎng)絡(luò)中添加了通道和空間注意力模塊來關(guān)注圖像中的重要信息,提出了注意力卷積神經(jīng)網(wǎng)絡(luò)來提高算法的識別速度和性能.
對于輸入的一幅特征圖F∈C×H×W,注意力模塊包括1個(gè)一維的通道注意力Mc∈C×1×1和1個(gè)二維的空間注意力MS∈1×H×W,過程可以表示為:
F′=Mc(F)?FF″=Ms(F′)?F′
(3)
其中?表示基于對應(yīng)元素的卷積乘.在卷積相乘的過程中,通道注意力值和空間注意力值分別被復(fù)制,F(xiàn)′是通道注意力輸出,F(xiàn)″是最終的輸出.
3.1.1 通道注意力
Mc(F)=σ(MLP(AvgPool(F)+MLP(MaxPool(F)))
(4)
其中σ代表sigmoid函數(shù),W0和W1代表卷積乘法的權(quán)重,W0∈C/r×C,W1∈C×C/r.
3.1.2 空間注意力
Ms(F)=σ(f3×3(AvgPool(F);MaxPool(F)]))
(5)
其中,f3×3表示網(wǎng)絡(luò)的卷積核尺寸是3×3.
3.1.3 卷積注意力模塊
對于一幅輸入圖像,通道和空間這兩個(gè)注意力模塊相互補(bǔ)充,分別關(guān)注圖像中有意義的特征內(nèi)容和特征位置.我們采用串聯(lián)的方式排列兩個(gè)注意力模塊,通道注意力模塊優(yōu)先級高于空間注意力模塊.融合通道注意力和空間注意力的結(jié)構(gòu)圖如圖1所示.
圖1 注意力結(jié)構(gòu)圖
本文提出的注意力卷積神經(jīng)網(wǎng)絡(luò),在設(shè)計(jì)時(shí)參考了經(jīng)典的AlexNet網(wǎng)絡(luò)和VGGNet網(wǎng)絡(luò),為了平衡計(jì)算的復(fù)雜度和識別的準(zhǔn)確率,經(jīng)過多次試驗(yàn)之后,我們設(shè)計(jì)了一個(gè)包含四個(gè)卷積層(Convolutional Layer)的網(wǎng)絡(luò).每個(gè)卷積層之后是1個(gè)批量歸一化層(BN)[24]和1個(gè)激活層(ReLU)[25].每個(gè)最大池之前添加了一個(gè)注意力模塊(Attention Module),網(wǎng)絡(luò)的最后包含兩個(gè)全連接層(Full-connected)和一個(gè)Softmax層,用于將神經(jīng)網(wǎng)絡(luò)提取的高維特征向量轉(zhuǎn)換為分類概率.卷積神經(jīng)網(wǎng)絡(luò)通過非線性映射和下采樣自動(dòng)提取高度抽象的圖像特征,并將網(wǎng)絡(luò)輸出的特征轉(zhuǎn)換為分類標(biāo)簽的概率向量,最后輸出圖片的分類識別率,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 注意力卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
四層卷積運(yùn)算中的卷積核尺寸均為3×3,每層卷積操作后得到的特征圖(feature maps)數(shù)量依次為32,64,128和256,特征圖的尺寸依次為140×140,67×67,32×32和14×14.前三個(gè)最大池化層的步長為2,池化窗口尺寸依次為5×5,3×3和3×3,最后一個(gè)池化層是窗口尺寸為12×12的全局池化.模型的分類器由2個(gè)全連接層構(gòu)成,該層會(huì)學(xué)習(xí)上一層傳來的特征向量,然后傳入softmax函數(shù)獲得分類向量,從而得到輸入圖像的最終分類結(jié)果.
本文選用Yale B和CMU_PIE兩個(gè)常用的光照人臉數(shù)據(jù)集中的圖像作為訓(xùn)練和測試圖片.Yale B數(shù)據(jù)集共有2414張圖像,包含不同光照條件下38個(gè)人的正面人臉圖像,是最常用的人臉識別數(shù)據(jù)集.根據(jù)光源亮度的強(qiáng)弱,該數(shù)據(jù)庫被劃分為5個(gè)子集,圖3展示了子集5中同一個(gè)人不同光照條件下的5張圖片.可以看出,5張人臉圖像的光照都很弱,幾乎無法用肉眼分辨出人臉輪廓.
圖3 Yale B人臉圖像
為了降低圖像失真,實(shí)驗(yàn)中對提取的人臉圖像局部奇異值增加了簡單的偏差項(xiàng)k,即λi=λi+k,k取不同的值對圖像的復(fù)原效果影響不同.圖4 展示了圖3中人臉圖像在k取5、10、20、50時(shí)對應(yīng)的的SVD臉.
從圖4可以看出,Yale B子集5的原始圖像受光照條件影響幾乎無法用作訓(xùn)練模型,但是SVD臉在抑制光照影響的同時(shí)極大地保留了人臉圖像的重要紋理特征.從圖4的(b)-(d)可以看出,當(dāng)偏差值k過大時(shí),光照因素依然明顯且圖像特征存在嚴(yán)重的失真,本文經(jīng)過多次實(shí)驗(yàn)發(fā)現(xiàn)當(dāng)偏差項(xiàng)k=5時(shí)SVD臉的效果最好.
CMU-PIE人臉數(shù)據(jù)庫包含了68位志愿者的41368張面部彩色圖像,每張圖片都是在嚴(yán)格控制的條件下采集的,圖像大小均為640×486.圖5(a)是CMU-PIE數(shù)據(jù)庫中同一個(gè)人的5張不同光照和姿態(tài)的臉部圖像,圖5(b)是當(dāng)偏差項(xiàng)k=5時(shí)對應(yīng)的SVD臉.
為了得到更多的網(wǎng)絡(luò)訓(xùn)練樣本,本文在進(jìn)行識別實(shí)驗(yàn)前對增強(qiáng)之后的人臉圖像進(jìn)行了隨機(jī)裁剪[26],以增強(qiáng)深度學(xué)習(xí)網(wǎng)絡(luò)模型的泛化能力.為了使裁剪后的圖像包含盡可能多的面部特征,本文將每張人臉圖像隨機(jī)裁剪出50張尺寸為140×140像素的圖像塊,用于注意力卷積神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練和測試.
本文所有的實(shí)驗(yàn)都是在CPU為I5-8600K,GPU為GTX1070Ti的Ubuntu工作站上進(jìn)行的.工作站的系統(tǒng)內(nèi)存為16G.算法采用Python語言編寫,用于構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)框架為Tensorflow.
本文提出的四層注意力卷積神經(jīng)網(wǎng)絡(luò)模型的學(xué)習(xí)率(learning rate)被初始化為0.001.若在訓(xùn)練過程中l(wèi)oss值停止下降,學(xué)習(xí)率會(huì)除以10.為了防止模型出現(xiàn)過擬合現(xiàn)象,在網(wǎng)絡(luò)中引入了L1正則化以降低模型復(fù)雜度.實(shí)驗(yàn)中正則化懲罰系數(shù)初始化為0.01,采用隨機(jī)梯度下降對模型進(jìn)行優(yōu)化并將動(dòng)量固定為0.9.訓(xùn)練過程中的batch size設(shè)置為64,經(jīng)過200輪的迭代訓(xùn)練,得出用于分類的網(wǎng)絡(luò)模型.
為了驗(yàn)證本文提出奇異值臉(SVDF)特征的有效性,分別在數(shù)據(jù)集Yale B和CMU_PIE上做了人臉識別的實(shí)驗(yàn),并與梯度臉(GF)[8]、局部對角極值模式(LDENP)[27]和韋伯臉(WF)[28]等人臉特征提取算法進(jìn)行了對比,結(jié)果如表1所示.
表1 在Yale B數(shù)據(jù)集上的識別率(%)
從表1可以看出,本文提出的SVDF方法在Yale B每個(gè)子集上的識別率都很高,特別是在原始光照條件很差的子集5上,GF、LDENP和WF等算法的識別效果都不太好,最低的識別率只有68.3%,最高的識別率也只有87.3%,但是SVDF算法卻達(dá)到了98.1%,證明了SVDF是對光照不敏感的人臉特征.
為了比較本文提取出的ACNN網(wǎng)絡(luò)的性能,我們選取了最近幾年影響較大的三種典型深度網(wǎng)絡(luò)VGGNet、ResNet和DeepID作比較,結(jié)果如表2所示.
表2 不同CNN網(wǎng)絡(luò)的人臉識別率(%)
從表2中可以看出,本文提出的ACNN網(wǎng)絡(luò)在Yale B和CMU_PIE兩個(gè)數(shù)據(jù)庫上的識別率要高于比其它三種深度網(wǎng)絡(luò).注意力機(jī)制的應(yīng)用使得卷積神經(jīng)網(wǎng)絡(luò)能夠有效地強(qiáng)調(diào)人臉的重要特征和位置,從而提高了人臉的分類識別率.
為了更好得處理人臉圖像中的光照不足和不均衡等問題,本文提出了一種結(jié)合奇異值臉和注意力卷積神經(jīng)網(wǎng)絡(luò)的人臉識別模型.算法通過提取低光照條件下的奇異值臉降低了光照對人臉特征的影響,同時(shí)將兩個(gè)不同的注意力模塊(通道和空間)融合起來有效地聚焦了目標(biāo)特征和區(qū)域.本文方法在保持較小計(jì)算開銷的同時(shí),顯著提高了卷積神經(jīng)網(wǎng)絡(luò)的識別性能.今后可以將此方法推廣應(yīng)用在光照條件不足的視頻圖像數(shù)據(jù)集的識別和分類任務(wù)上.