史志博 譚 志
(北京建筑大學(xué)電氣與信息工程學(xué)院 北京 100044)
人臉表情識(shí)別是圖像識(shí)別領(lǐng)域的研究熱點(diǎn),表情是人類情感表達(dá)的一種重要方式,表情識(shí)別技術(shù)是實(shí)現(xiàn)人機(jī)交互和人工智能的基礎(chǔ),具有很大研究?jī)r(jià)值[1,4]。人臉表情識(shí)別方法主要分為人臉檢測(cè)、特征提取和分類識(shí)別三個(gè)步驟,特征提取是表情識(shí)別過(guò)程中重要一環(huán),提取出更好表現(xiàn)表情信息的特征是提升人臉表情識(shí)別精度的關(guān)鍵[2]。傳統(tǒng)的人工設(shè)計(jì)的表情特征提取方法,設(shè)計(jì)復(fù)雜,很難提取圖像的高階特征,易受干擾且不穩(wěn)定[3,5]。
隨著深度學(xué)習(xí)的發(fā)展,基于深度學(xué)習(xí)的表情特征提取方法被廣泛應(yīng)用。為了適應(yīng)復(fù)雜的應(yīng)用場(chǎng)景,更多的深度神經(jīng)網(wǎng)絡(luò)模型被提出,如AlexNet、VGGNet、GooLeNet、ResNet、DenseNet等[6-10],比傳統(tǒng)的表情識(shí)別方法具有更好的效果。隨著網(wǎng)絡(luò)的加深,也會(huì)出現(xiàn)梯度不穩(wěn)定、網(wǎng)絡(luò)退化和參數(shù)量越來(lái)越大的問(wèn)題。研究學(xué)者通過(guò)改良網(wǎng)絡(luò)模型和融合其他算法的方式去提升表情識(shí)別性能,如周本君[11]對(duì)經(jīng)典的AlexNet網(wǎng)絡(luò)做了改進(jìn),在自建數(shù)據(jù)集的測(cè)試精度為88.15%;張俞晴等[12]使用CNN與SIFT特征融合的人臉表情識(shí)別方法在FER2013數(shù)據(jù)集上取得了68.1%的識(shí)別率等。
近年來(lái),注意力機(jī)制的飛速發(fā)展為表情識(shí)別的研究提供了新思路,然而注意力機(jī)制在圖像分類上的應(yīng)用還處在探究過(guò)程中[13]。Hu等[14]引入通道注意力機(jī)制,將通道注意力模塊與ResNet網(wǎng)絡(luò)結(jié)合構(gòu)建SeNet,通過(guò)建模通道間的相互依賴關(guān)系,自適應(yīng)校準(zhǔn)通道的特征響應(yīng)來(lái)對(duì)圖像分類。Woo等[15]提出CBAM,分別在特征提取網(wǎng)絡(luò)的通道維度和空間維度上特征壓縮和重新加權(quán)的方法,相比于SeNet只關(guān)注通道注意力機(jī)制取得了更好的分類效果。然而在對(duì)通道重要度權(quán)重獲取上,CBAM采取雙池化壓縮特征分別放入同一多層感知機(jī)訓(xùn)練再加和激活的方法,導(dǎo)致神經(jīng)元易傾向于對(duì)后輸入特征進(jìn)行權(quán)值調(diào)整,減小了雙池化豐富高層次特征提取的優(yōu)勢(shì);并且在殘差結(jié)構(gòu)之后融合構(gòu)建的新網(wǎng)絡(luò),使得引入的激活函數(shù)干擾殘差結(jié)構(gòu)捷徑連接的反向傳播,容易導(dǎo)致因網(wǎng)絡(luò)層冗余而造成的梯度減小和退化的情況發(fā)生。
針對(duì)上述缺點(diǎn),本文提出融入注意力機(jī)制的殘差網(wǎng)絡(luò)人臉表情識(shí)別方法,對(duì)原CBAM進(jìn)行優(yōu)化改進(jìn),在獲取通道重要度權(quán)重的策略上,采用特征融合再訓(xùn)練的方法。使網(wǎng)絡(luò)層混合計(jì)算兩部分池化壓縮特征互信息,增強(qiáng)關(guān)鍵性通道特征的表示,提升了模型的擬合能力。將改進(jìn)后的CBAM融入到ResNet模型的殘差結(jié)構(gòu)中,與殘差結(jié)構(gòu)的特征提取層以先后串行結(jié)構(gòu)融合構(gòu)建新的殘差模塊。該模塊不僅避免了CBAM對(duì)捷徑連接反向傳播的影響,且先根據(jù)注意力劃分輸入特征的重要度再去提取特征,更符合注意力機(jī)制的思想。通過(guò)新的殘差模塊構(gòu)建網(wǎng)絡(luò)模型RARNet。該模型加深了對(duì)表情判別性特征的表示,提升了特征提取性能,并且改進(jìn)后的CBAM屬于輕量級(jí)結(jié)構(gòu),RARNet以較小參數(shù)量的增加在FER2013、JAFFE和CK+數(shù)據(jù)集上取得了比傳統(tǒng)網(wǎng)絡(luò)模型和其他相關(guān)方法更好的識(shí)別效果。
注意力是人的一種復(fù)雜認(rèn)知能力,在事物辨識(shí)過(guò)程中關(guān)注一部分信息而忽略另一部分信息。CBAM主要由通道注意力和空間注意力的串行結(jié)構(gòu)組成,如圖1所示。神經(jīng)網(wǎng)絡(luò)先通過(guò)通道注意力模塊學(xué)習(xí)什么特征是關(guān)鍵特征,再利用空間注意模塊學(xué)習(xí)到關(guān)鍵特征在哪里,加強(qiáng)圖像判別性特征的獲取,并對(duì)特征進(jìn)行自適應(yīng)性的細(xì)化功效。
圖1 CBAM結(jié)構(gòu)圖
網(wǎng)絡(luò)特征圖的各個(gè)通道重要性是不同的,通道注意力可以發(fā)掘通道圖之間的依賴關(guān)系,通過(guò)賦予權(quán)值的方式提取每個(gè)通道特征對(duì)關(guān)鍵信息的重要程度,有選擇性地去關(guān)注權(quán)重值大的信息。通道注意力模塊把輸入大小為H×W×C的特征圖A分別經(jīng)過(guò)基于W和H的全局平均池化和最大池化進(jìn)行壓縮,把壓縮后的兩部分特征分別放入含有一個(gè)隱藏層的多層感知機(jī)(Multi-Layer Perceptron,MLP)中作降維升維操作,并提取用以表達(dá)通道重要度的權(quán)值向量,將經(jīng)MLP處理后的輸出特征作求和運(yùn)算,再通過(guò)Sigmoid激活,生成最后的通道注意力加權(quán)系數(shù),如式(1)所示。
NC(A)=σ(MLP(AvgPool(A))+MLP(MaxPool(A)))
(1)
式中:σ表示Sigmoid激活函數(shù),W0和W1是多層感知機(jī)中的兩層FC層權(quán)重,中間包含有隱藏層和ReLU激活函數(shù)。
CBAM把輸入特征A經(jīng)過(guò)通道注意力模塊得到的權(quán)重系數(shù)NC(A)與輸入特征相乘,得到含有更多通道維度上關(guān)鍵信息的特征圖A′。再將A′通過(guò)用來(lái)提取特征圖內(nèi)部空間關(guān)系的空間注意力模塊得到空間注意力權(quán)重系數(shù)NS(A′),并和A′相乘得到的含有更多空間位置關(guān)鍵信息的特征圖像A″,作為CBAM最后的輸出特征圖,如式(2)和式(3)所示。
A′=NC(A)?A
(2)
A″=NS(A′)?A′
(3)
在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中,每個(gè)神經(jīng)元會(huì)根據(jù)經(jīng)過(guò)的每組特征前后進(jìn)行參數(shù)計(jì)算調(diào)整,并且容易傾向于后輸入的特征。在共享權(quán)重的情況下,若將兩組特征經(jīng)過(guò)同一MLP中去訓(xùn)練權(quán)重的話,會(huì)出現(xiàn)左支右絀的情況。針對(duì)此弊端,對(duì)原CBAM的通道注意力模塊進(jìn)行優(yōu)化改進(jìn),結(jié)構(gòu)如圖2所示。將兩組池化后的特征concat拼接融合后,再通過(guò)MLP做權(quán)重W0和W1的訓(xùn)練,如式(4)所示。
NC(A)=σ(MLP([MaxPool(A);AvgPool(A)])
(4)
式中:[MaxPool(A);AvgPool(A)]是拼接后的融合特征。
MLP由兩層FC層構(gòu)成,第一個(gè)FC層的輸入特征X經(jīng)過(guò)降維后得到特征Y0,通過(guò)隱藏層激活處理后,利用第二個(gè)FC層對(duì)特征Y0升維得到輸出特征Y1。W0與W1是兩個(gè)FC層權(quán)重,如式(5)和式(6)所示。
Y0=W0×X
(5)
Y1=W1×Y0
(6)
深層卷積神經(jīng)網(wǎng)絡(luò)通過(guò)加深卷積層用以豐富特征的提取,但是這會(huì)造成網(wǎng)絡(luò)冗余而出現(xiàn)梯度爆炸和梯度消失的問(wèn)題。ResNet引入了殘差學(xué)習(xí)模塊,利用捷徑連接制造恒等映射,這種殘差模型不但避免了網(wǎng)絡(luò)層數(shù)的加深而出現(xiàn)的網(wǎng)絡(luò)退化的問(wèn)題,而且便于優(yōu)化,計(jì)算數(shù)據(jù)量很少。
ResNet50的殘差學(xué)習(xí)模塊結(jié)構(gòu)如圖3所示,假定殘差塊網(wǎng)絡(luò)的輸入是x,通過(guò)捷徑連接把輸入x傳到輸出作初始結(jié)果,期望輸出是H(x)=F(x)+x。此時(shí)需要學(xué)習(xí)的目標(biāo)就是F(x),如果網(wǎng)絡(luò)層成為了冗余層,期望最理想的輸出目標(biāo)讓F(x)=0,此時(shí)雖然未學(xué)習(xí)到新的特征,但也不會(huì)造成信息丟失和損耗的問(wèn)題。
圖3 ResNet50殘差學(xué)習(xí)模塊結(jié)構(gòu)
對(duì)于殘差網(wǎng)絡(luò)來(lái)說(shuō),前向過(guò)程是線性的,后面的輸出是輸入加上每一次的殘差元的結(jié)果如式(7)所示,通過(guò)反向傳播的鏈?zhǔn)椒▌t可得到:
(7)
(8)
采用PyTorch深度學(xué)習(xí)框架把改進(jìn)后的CBAM與ResNet50殘差學(xué)習(xí)模塊以串行結(jié)構(gòu)融合構(gòu)建下采樣殘差注意力模塊(Down sampling Residual Attention Module,DRAM)和殘差注意力模塊(Residual Attention Module,RAM),如圖4所示。DRAM用以減小特征圖大小,將淺層特征細(xì)化后并轉(zhuǎn)換為深層特征;RAM以堆疊的思路加深網(wǎng)絡(luò)深度,提升對(duì)高層語(yǔ)義特征的提取。
圖4 DRAM 和RAM示意圖
將DRAM和RAM根據(jù)ResNet50網(wǎng)絡(luò)中的殘差結(jié)構(gòu)配置搭建新的網(wǎng)絡(luò)模型RARNet,如圖5所示。該網(wǎng)絡(luò)模型由一個(gè)7×7大小的卷積層、3個(gè)DRAM層、13個(gè)RAM層和一個(gè)全連接層構(gòu)成,并采取遷移學(xué)習(xí)的方法在RARNet殘差結(jié)構(gòu)上采用ResNet50的預(yù)訓(xùn)練模型參數(shù)初始化,注意力模塊采用參數(shù)隨機(jī)初始化。分類器選用Softmax分類,輸出不同面部表情的預(yù)測(cè)值。
圖5 RARNet結(jié)構(gòu)圖
在訓(xùn)練階段,采用數(shù)據(jù)增強(qiáng)的方法隨機(jī)切割44×44的表情圖像,并將圖像進(jìn)行隨機(jī)鏡像,然后送入網(wǎng)絡(luò)模型訓(xùn)練。在測(cè)試階段,本文采用一種集成的策略來(lái)減少異常值。將圖片在左上角、左下角、右上角、右下角、中心進(jìn)行切割并做鏡像操作,使得數(shù)據(jù)庫(kù)擴(kuò)大了10倍,再把這10幅圖片送入模型預(yù)測(cè)。將得到的概率取平均,最大的輸出分類即為對(duì)應(yīng)表情類別,可以有效地降低分類錯(cuò)誤率。
實(shí)驗(yàn)采用CK+、JAFFE和FER2013數(shù)據(jù)集來(lái)訓(xùn)練和測(cè)試,CK+數(shù)據(jù)集是在 Cohn-Kanade 數(shù)據(jù)庫(kù)的基礎(chǔ)上擴(kuò)展來(lái)的,其中含有327個(gè)貼有標(biāo)簽的面部視頻,實(shí)驗(yàn)所用圖片則從每個(gè)序列中提取最后三個(gè)幀,選取包含憤怒、輕蔑、厭惡、害怕、高興、悲傷、驚訝七種人臉表情的圖片981幅。JAFFE數(shù)據(jù)集包含有憤怒、厭惡、害怕、高興、悲傷、驚訝、中性七種表情圖片213幅,本文先將圖片中的人臉部分檢測(cè)并裁剪出來(lái),再通過(guò)旋轉(zhuǎn)不同角度的方式將數(shù)據(jù)量擴(kuò)充為原數(shù)據(jù)的5倍。FER2013人臉表情數(shù)據(jù)集包含有35 886幅表情圖片,是表情識(shí)別大賽的常用數(shù)據(jù)集。FER2013數(shù)據(jù)集中含有憤怒、厭惡、害怕、高興、悲傷、驚訝、中性七種表情圖片,這三種數(shù)據(jù)集各類表情圖片如圖6所示。
FER2013數(shù)據(jù)集數(shù)據(jù)樣本中存在不少錯(cuò)誤標(biāo)簽,還有一部分樣本并非正面表情圖片和存在表情被遮擋的情況,FER2013數(shù)據(jù)集在規(guī)模和識(shí)別難度上都遠(yuǎn)遠(yuǎn)高于CK+和JAFFE數(shù)據(jù)集。實(shí)驗(yàn)選用FER2013的私有測(cè)試集識(shí)別率作為模型識(shí)別精度,三者樣本分組如表1所示。
表1 數(shù)據(jù)集訓(xùn)練和測(cè)試樣本量對(duì)比
實(shí)驗(yàn)環(huán)境硬件上是在擁有GPU Tesla P100的深度學(xué)習(xí)服務(wù)器上進(jìn)行,操作系統(tǒng)為L(zhǎng)inux,使用Python2.7的版本。先將數(shù)據(jù)集的圖片大小處理成48×48像素大小,并根據(jù)GPU顯存將訓(xùn)練過(guò)程中批量大小設(shè)置為128,三個(gè)數(shù)據(jù)集訓(xùn)練周期分別為60、60和250,優(yōu)化算法采用動(dòng)量梯度下降法。初始學(xué)習(xí)率為0.01,動(dòng)量為0.9,權(quán)重衰減為5×10-4,通過(guò)權(quán)重衰減的方式可防止過(guò)擬合,提升模型泛化性能。訓(xùn)練過(guò)程中每個(gè)Epoch結(jié)束后會(huì)通過(guò)測(cè)試集對(duì)模型進(jìn)行評(píng)估和保存,完成所有輪次訓(xùn)練后,把識(shí)別效果最好的權(quán)值保存成最后的模型文件。
在網(wǎng)絡(luò)模型上,選用ResNet18、ResNet50、ResNet50+CBAM與RARNet做實(shí)驗(yàn)對(duì)比,通過(guò)識(shí)別率和模型參數(shù)量做測(cè)試性能指標(biāo),在兩個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表2所示。RARNet相比于其他模型在FER2013、JAFFE和CK+數(shù)據(jù)集識(shí)別性能上分別獲得了1.78%~3.68%、2.47%~7.39%和2.02%~8.08%的提升,最終取得了72.78%、96.06%和98.99%的較高識(shí)別率。因?yàn)镽ARNet通過(guò)引入DRAM將淺層特征通過(guò)注意力模塊細(xì)化后再轉(zhuǎn)化為高層特征,堆疊RAM則提升了網(wǎng)絡(luò)對(duì)高層判別性特征的提取,增強(qiáng)區(qū)分不同表情關(guān)鍵信息的表達(dá);而殘差結(jié)構(gòu)與改進(jìn)后的注意力模塊的結(jié)合既更好地?cái)M合了不同通道特征的關(guān)聯(lián)性,提升了注意力特征細(xì)化的表現(xiàn)力,又不會(huì)因?yàn)榫W(wǎng)絡(luò)深度的增加而出現(xiàn)網(wǎng)絡(luò)退化的現(xiàn)象,相較于和改進(jìn)前的CBAM的融合取得了更好的識(shí)別效果;注意力模塊與卷積層的先后串行結(jié)構(gòu),先增強(qiáng)特征圖重要特征的表示,再去提取特征,更切合人的視覺(jué)機(jī)制。
表2 在不同網(wǎng)絡(luò)模型實(shí)驗(yàn)對(duì)比
通過(guò)加深網(wǎng)絡(luò)深度,雖然一定程度上提升了訓(xùn)練模型的識(shí)別性能,但是模型參數(shù)量增加過(guò)多,并且成效也越來(lái)越低。ResNet50相較于ResNet18在參數(shù)量上增加了13.87 MB,識(shí)別率只有2百分點(diǎn)、1百分點(diǎn)和1百分點(diǎn)左右的提升,而本文構(gòu)建的RARNet相比于ResNet50以2.99M較少參數(shù)量的增加取得了2.68百分點(diǎn)、6.40百分點(diǎn)和6.06百分點(diǎn)識(shí)別率的提升,證明了本文方法的可行性。
從圖7和圖8中可以看出ResNet50、ResNet50+CBAM與RARNet模型在CK+數(shù)據(jù)集上的訓(xùn)練過(guò)程中測(cè)試準(zhǔn)確率和損失值的變化趨勢(shì),三個(gè)模型在剛開(kāi)始迭代訓(xùn)練時(shí)準(zhǔn)確率和損失值波動(dòng)幅度較大,到最后都基本趨于平穩(wěn)。ResNet50和原CBAM融合后雖然識(shí)別率相較于ResNet50有很大的提升,但是訓(xùn)練過(guò)程中損失值和準(zhǔn)確率波動(dòng)較大。改進(jìn)后的CBAM與殘差塊融合構(gòu)建的RARNet在識(shí)別率最高,損失值也最小,并且迭代過(guò)程中損失值和準(zhǔn)確率浮動(dòng)較小,模型穩(wěn)定性最好。因?yàn)榧尤敫倪M(jìn)后的注意力模塊增強(qiáng)了對(duì)通道特征重要度的學(xué)習(xí),更好地?cái)M合了不同維度特征的相關(guān)性,降低了不必要特征對(duì)模型訓(xùn)練時(shí)造成的影響,減小了準(zhǔn)確率和損失值的變化幅度,提升了模型的穩(wěn)定性和對(duì)表情的識(shí)別性能。
圖7 不同模型的Acc變化趨勢(shì)
圖8 不同模型的Loss變化趨勢(shì)
RARNet在CK+和FER2013數(shù)據(jù)集上的各類表情識(shí)別率與其他方法對(duì)比如表3和表4所示。RARNet在CK+上對(duì)于害怕表情的判斷有所欠缺,對(duì)其余6種表情取得了較好的識(shí)別效果。在FER2013數(shù)據(jù)集上對(duì)高興、驚訝與厭惡這三種表情取得了較好的識(shí)別效果,在生氣、害怕和悲傷上存在一定的判別錯(cuò)誤,因?yàn)檫@三種表情之間有相近之處,而中性與悲傷表情在面部特征變化較小,增加了識(shí)別難度。
表3 在CK+上與其他方法對(duì)比(%)
表4 在FER2013上與其他方法對(duì)比(%)
RARNet在FER2013數(shù)據(jù)集總識(shí)別率上比Khemakhem等[16]提出的在預(yù)處理階段增強(qiáng)的卷積神經(jīng)網(wǎng)絡(luò)提升了 2.19%,比Liu等[17]提出的在表情識(shí)別訓(xùn)練過(guò)程中加入課程學(xué)習(xí)策略高了0.67%;這兩種方法都在表情識(shí)別的不同階段增強(qiáng)了特征學(xué)習(xí),而通過(guò)加入注意力的方式更加精細(xì)和有效。在CK+數(shù)據(jù)庫(kù)上比Gan等[18]同樣提出的在卷積層嵌入單池化的通道注意力模塊高了2.71%,這主要源于改進(jìn)后CBAM在通道注意力權(quán)重的訓(xùn)練中采用雙池化融合策略,增強(qiáng)關(guān)鍵性通道特征的表示,并且同時(shí)關(guān)注了通道注意力機(jī)制和空間注意力機(jī)制,提升模型對(duì)判別性特征的提取;比Zhang等[19]提出的將原圖與局部二值模式(Local Binary Pattern,LBP)特征圖分別經(jīng)過(guò)兩個(gè)VGG網(wǎng)絡(luò)通道提取到的特征融合再分類網(wǎng)絡(luò)模型取得了更好的識(shí)別性能,該模型本質(zhì)上是對(duì)圖像局部紋理特征的加深再分類,而RARNet通過(guò)注意力機(jī)制去增強(qiáng)圖像的關(guān)鍵特征,比傳統(tǒng)LBP特征更具表達(dá)力,與殘差網(wǎng)絡(luò)的融合則避免了網(wǎng)絡(luò)深度加深導(dǎo)致的退化問(wèn)題。本文的方法與近年來(lái)其他文獻(xiàn)相比取得了更好的識(shí)別率,證明了改進(jìn)后CBAM融入殘差結(jié)構(gòu)中,注意力模塊和特征提取層先后串行連接方法的有效性。
實(shí)驗(yàn)通過(guò)Grad-CAM[20]的方法對(duì)網(wǎng)絡(luò)模型最后一層卷積層中關(guān)注的面部表情特征圖進(jìn)行可視化,并利用熱力圖的方式顯示出來(lái),更加直觀表明了融入注意力機(jī)制的殘差網(wǎng)絡(luò)對(duì)關(guān)鍵特征的提取能力。通過(guò)對(duì)網(wǎng)絡(luò)模型中融入注意力前后的熱力圖的觀察,可以清楚地看到ResNet50與RARNet訓(xùn)練保存的兩組的模型參數(shù)在識(shí)別不同的表情時(shí)所強(qiáng)調(diào)的特征信息。如圖9所示,通過(guò)對(duì)比可以看出ResNet50關(guān)注的是整個(gè)面部表情區(qū)域特征,通過(guò)注意力機(jī)制與殘差結(jié)構(gòu)融合后構(gòu)建的RARNet增強(qiáng)了對(duì)表情分類貢獻(xiàn)較大的特征區(qū)域,如眼睛、嘴巴等,提升了對(duì)判別性特征區(qū)域的學(xué)習(xí),抑制了無(wú)用信息的獲取。
提出了一種融入注意力機(jī)制模塊的殘差網(wǎng)絡(luò)人臉表情識(shí)別方法,優(yōu)化改進(jìn)了注意力機(jī)制CBAM的通道注意力模塊,并與殘差學(xué)習(xí)模塊融合構(gòu)建新型網(wǎng)絡(luò)模型RARNet,增強(qiáng)對(duì)表情圖像關(guān)鍵特征的辨識(shí),加強(qiáng)網(wǎng)絡(luò)對(duì)局部判別性特征的提取能力,從而解決了現(xiàn)有神經(jīng)網(wǎng)絡(luò)算法對(duì)人臉表情特征表達(dá)能力不夠,為提升識(shí)別效果而加深網(wǎng)絡(luò)深度導(dǎo)致參數(shù)量過(guò)大的問(wèn)題,以較小參數(shù)量的增加有效提升了人臉表情識(shí)別的精度。該方法在FER2013這種低質(zhì)量表情數(shù)據(jù)識(shí)別上還有很大的提升空間,下一步工作將進(jìn)一步研究和改進(jìn)注意力機(jī)制算法,在圖像預(yù)處理階段加入傳統(tǒng)特征提取和原圖融合以加深圖像特征,再利用融入注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)模型中訓(xùn)練分類,在復(fù)雜場(chǎng)景下獲得更高的識(shí)別精度。