鄭 浩,趙光哲
北京建筑大學(xué) 電氣與信息工程學(xué)院,北京 100044
面部表情是用來體現(xiàn)人類真實(shí)情感和想法的最為常見的方式之一。在日常生活中有很多領(lǐng)域都需要使用到人臉表情識別,例如醫(yī)學(xué)、機(jī)器人、疲勞駕駛以及其他智能系統(tǒng)等[1-3]。在達(dá)爾文的進(jìn)化論研究中發(fā)現(xiàn),由人類面部產(chǎn)生出的多種多樣的表情是大自然的選擇結(jié)果。在現(xiàn)代,人臉的面部肌肉已經(jīng)可以搭配出成百上千種面部姿態(tài)了,也正因如此,人類有了越來越多的情緒表達(dá)方式。
20世紀(jì)70年代左右,Ekman和Friesen[4]通過跨文化研究的結(jié)論,在其基礎(chǔ)之上定義了六類基本情緒,即:厭惡、憤怒、高興、恐懼、悲傷以及驚訝,與此同時(shí),二人的研究表明,人類對于某些基本情緒的感受方式是沒有區(qū)別的。
人臉識別技術(shù)的起始可以追溯到Suwa等[5]通過對人臉圖像序列上的特征點(diǎn)進(jìn)行標(biāo)注,之后分析這些特征點(diǎn)的變化軌跡并與基線模型進(jìn)行比較從而得到最終的表情信息。隨著計(jì)算機(jī)設(shè)備以及GPU的更新?lián)Q代,深度學(xué)習(xí)逐漸成為了新興的研究熱點(diǎn)議題。劉棟等[6]利用AlexNet對人臉表情進(jìn)行識別,其結(jié)果相較于傳統(tǒng)方法而言得到了很大程度的提升。Cheng等[7]在VGG19的基礎(chǔ)上,采用遷移學(xué)習(xí)的方法,從而提高了識別準(zhǔn)確率。Lu等[8]利用18層的殘差網(wǎng)絡(luò)來提取更深層的特征,與此同時(shí),還利用CLBP來提取相應(yīng)的紋理特征,并將以上兩者所得結(jié)果進(jìn)行融合,之后再輸入到網(wǎng)絡(luò)之中進(jìn)行識別。
但是,傳統(tǒng)深度學(xué)習(xí)方法,往往使用的都是參數(shù)量以及計(jì)算復(fù)雜度十分龐大的神經(jīng)網(wǎng)絡(luò)模型,從而帶來大量的計(jì)算開銷,導(dǎo)致效率低下。所以,為了減小模型的參數(shù)量以及計(jì)算復(fù)雜度,研究人員從網(wǎng)絡(luò)模型中對參數(shù)量以及計(jì)算復(fù)雜度影響最大的卷積層入手,提出了一些全新的輕量化表情識別方法。梁華剛等[9]通過直接在卷積層中使用深度可分離卷積以減少模型的參數(shù)。劉尚旺等[10]通過通道合并的特征融合方式構(gòu)建深度可分離卷積單元,來減少模型參數(shù)數(shù)量,對模型進(jìn)行輕量化處理。李春虹等[11]通過使用深度可分離卷積構(gòu)建兩個(gè)分類器,來進(jìn)行人臉表情識別,從而實(shí)現(xiàn)了模型的輕量化。王韋祥等[12]通過在網(wǎng)絡(luò)中使用改進(jìn)后的深度可分離卷積層,以在減少計(jì)算量的同時(shí),緩解了特征信息缺失的問題。倪錦園等[13]通過使用結(jié)合通道混洗操作的深度可分離卷積結(jié)構(gòu),使得特征的表征能力有所加強(qiáng)。
與此同時(shí),人臉圖像中表情特征的不確定性以及環(huán)境因素的影響,會導(dǎo)致部分特征在特征提取階段產(chǎn)生遺漏,從而影響特征的完備程度。因此,為了更好地突出有效特征從而提高表情識別的準(zhǔn)確率,研究人員提出了一些新的人臉表情識別方法。Wang等[14]通過比對面部關(guān)鍵點(diǎn)然后對人臉部分進(jìn)行隨機(jī)裁剪操作,從而突出局部特征,最后輸入至神經(jīng)網(wǎng)絡(luò)中進(jìn)行表情識別。Yang等[15]通過使用一種加權(quán)網(wǎng)絡(luò)模型,從而提取出對于表情識別有益的特征。姜目武等[16]通過比對人臉關(guān)鍵點(diǎn)獲取最大表情范圍以消除非表情區(qū)的干擾,將裁剪后的圖像輸入到帶權(quán)重分配機(jī)制的殘差網(wǎng)絡(luò)中,從而使得神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)到更突出的人臉表情特征。
上述方法盡管可以輕量化網(wǎng)絡(luò)模型或是突出特征信息,但仍存在一些問題。在神經(jīng)網(wǎng)絡(luò)模型中使用深度可分離卷積可以大幅減小模型的參數(shù)規(guī)模從而輕量化網(wǎng)絡(luò)模型,但同時(shí)也會導(dǎo)致模型識別準(zhǔn)確率明顯降低。同時(shí),在特征提取階段,由于人臉表情的不確定性和可變性以及客觀因素對人臉表情特征的影響,特征的位置以及大小無法完全確定,上述部分方法盡管使用了輔助手段來突出表情特征,但就算是提取處理過后的人臉表情特征,其不確定性依舊存在,因此還是會導(dǎo)致特征的缺失。另外,隨著神經(jīng)網(wǎng)絡(luò)模型的發(fā)展,模型層數(shù)逐漸加深,特征復(fù)用理念也加入到了很多網(wǎng)絡(luò)當(dāng)中,但如果不對特征進(jìn)行處理而直接進(jìn)行復(fù)用,則會導(dǎo)致堆積大量冗余特征,從而在增加計(jì)算成本的同時(shí)還可能會遺漏掉重要的特征信息。最終影響所提取特征的質(zhì)量,以及模型的識別準(zhǔn)確率。
因此,為了更好地解決以上問題。本文提出了一種基于特征篩選結(jié)合改進(jìn)卷積的殘差多尺度特征融合注意力機(jī)制模型。在該模型中采用了和深度可分離卷積一樣具有小參數(shù)量以及計(jì)算復(fù)雜度,但同時(shí)特征提取效能以及分離效果更好的藍(lán)圖可分離卷積,以提升模型性能,并結(jié)合空洞卷積的思想設(shè)計(jì)了改進(jìn)后的卷積模式,以在不改變參數(shù)量以及計(jì)算復(fù)雜度的前提條件下獲得了不同大小的卷積核感受野。然后以此為基礎(chǔ)設(shè)計(jì)并引入了并行特征提取模塊,以達(dá)到多尺度特征融合的目的,從而減少人臉表情的不確定性以及可變性對于最終識別準(zhǔn)確率的影響。接下來設(shè)計(jì)并引入了特征篩選模塊,以篩選出優(yōu)質(zhì)特征,從而減少網(wǎng)絡(luò)特征復(fù)用過程中冗余特征堆積對于特征提取的影響,提升特征質(zhì)量。之后設(shè)計(jì)并引入了用來處理淺層輸入特征的層級,以進(jìn)一步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),減少計(jì)算復(fù)雜度。最后引入通道注意力機(jī)制,以及性能更強(qiáng)的SMU激活層函數(shù),意在進(jìn)一步提升網(wǎng)絡(luò)的性能。本文在Fer2013數(shù)據(jù)集[17]和CK+數(shù)據(jù)集[18]上分別進(jìn)行了測試,從對比結(jié)果中可以看出,該網(wǎng)絡(luò)相比較經(jīng)典方法而言具有更好的識別準(zhǔn)確率,同時(shí)參數(shù)量以及計(jì)算復(fù)雜度更低,因此可以更好地勝任人臉表情識別任務(wù)。
在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中,卷積核中的權(quán)重大都會收斂至一處,在這種情況下,權(quán)重間的相關(guān)性也會大幅度提升。因此,在通過對這些權(quán)重之間的相關(guān)性進(jìn)行定量和定性分析之后,得出了一種全新的卷積形式,即藍(lán)圖可分離卷積[19(]blueprint separable convolution,BSConv)。
其中每個(gè)BSConv模塊都是由Q個(gè)濾波器組成,每一個(gè)濾波器都有一個(gè)藍(lán)圖和P個(gè)權(quán)重。所有P?Q權(quán)重都可以用W=(wq,p)矩陣形式來表示。
空洞卷積[20](dilated convolution)相比較標(biāo)準(zhǔn)卷積而言的區(qū)別是在卷積圖譜里注入所謂的“空洞”,以此方式讓原本的小尺寸卷積核,在維持原本的計(jì)算量和參數(shù)量不變的前提條件下?lián)碛懈蟮母惺芤???斩淳矸e相比標(biāo)準(zhǔn)卷積來說,多了一個(gè)參數(shù),即空洞率(dilation rate),空洞率指的是kernel的間隔數(shù)量(普通卷積的dilatation rate=1)。
通過深度連接在深層次網(wǎng)絡(luò)中重用淺層特征是實(shí)現(xiàn)高計(jì)算效率的有效方法。如果能夠在網(wǎng)絡(luò)訓(xùn)練的過程中減少冗余特征的參與,那么對于網(wǎng)絡(luò)性能的提升會有很大的幫助。稀疏特征重激活(SFR)[21]方法,旨在積極地提高特征重用的效率,網(wǎng)絡(luò)中每一層都可以選擇性地重用前面層中最重要的特征,同時(shí)可以更新出一組新的優(yōu)質(zhì)特征,以增加它們對后面層級的利用價(jià)值,從而使得網(wǎng)絡(luò)模型在理論效率方面得到很大的提升。
特征重激活操作可以寫成如下形式:
其中,代表第l層的輸入特征,H?(?)代表特征學(xué)習(xí)層,x?代表第l層輸入特征通過特征學(xué)習(xí)層后產(chǎn)生的新特征,代表重新激活過后的輸出特征,G?(?)代表重激活模塊,y?代表重激活模塊輸出,U(?,?)代表重激活操作。
SE-Net[22]結(jié)構(gòu)簡單,實(shí)現(xiàn)方便,并且即插即用,與現(xiàn)存的神經(jīng)網(wǎng)絡(luò)模型契合度都很高,因此受到了廣泛的應(yīng)用。SENet主要是通過學(xué)習(xí)通道之間的相互關(guān)聯(lián)性,挑選出合適的注意力,從而在不大幅提升計(jì)算量的同時(shí),提升了網(wǎng)絡(luò)的性能。從整體來看,SE模塊主要由Transform、Squeeze以及Excitation三部分組成。
(1)Transform
SE-Net的第一步就是實(shí)現(xiàn)對于輸入信息的特征轉(zhuǎn)換,過程如公式(4):
式中,*代表卷積操作,X代表上層特征信息,X∈RH′×W′×C′令卷積核為:V=[v1,v2,…,vC],代表通道數(shù)為s的卷積核,xs代表通道數(shù)為s的特征信息。U代表輸出,U=[u1,u2,…,uC],U∈RH×W×C。
(2)Squeeze
Fsq即Squeeze操作,此操作是將同一個(gè)通道中的完整空間特征重新編碼為全局特征,也可以理解為將原本尺寸為H×W的二維特征圖壓縮至1×1大小,這里采用全局平均池化(global average pooling)來實(shí)現(xiàn),具體實(shí)現(xiàn)過程如公式(5):
式中,Z=[z1,z2,…,zC]代表池化后的全局特征,U=[u1,u2,…,uC]代表Transform的輸出結(jié)果,H×W代表特征圖的尺寸。
(3)Excitation
在Squeeze操作之后便得到了用于描述全局的全局特征,但除此之外,還需要提取通道與通道之間的關(guān)聯(lián)信息,這一步可以用Fex,即:Excitation操作來解決。
最后將各個(gè)通道的激活值(0~1)乘以U上的原始特征,使用Fscale操作實(shí)現(xiàn):
綜上,Excitation簡單來說就是通過學(xué)習(xí)各個(gè)通道的不同權(quán)重,以讓模型可以更好地對不同通道之中的特征進(jìn)行判斷。
一個(gè)好的激活函數(shù)可以在很大程度上提高網(wǎng)絡(luò)的性能。在Leaky ReLU的基礎(chǔ)上,得到的全新激活函數(shù):smooth maximum unit(SMU)[23]激活函數(shù),其相比較其他激活函數(shù)而言,對于性能的提升最為明顯。
式(8)即為smooth maximum unit(SMU)。其中x代表輸入,μ代表平滑參數(shù),當(dāng)μ→∞時(shí),近似函數(shù)平滑地逼近|x|,α代表訓(xùn)練參數(shù),erf代表高斯誤差函數(shù),定義如式(9)。
參考ShuffleNetV2[24]的倒置殘差結(jié)構(gòu),本文提出了一種基于特征篩選結(jié)合改進(jìn)卷積的殘差多尺度特征融合注意力機(jī)制模型(RMFANet)。該模型主要由以下幾部分組成:淺層特征處理層(shallow feature processing layer,SFPL)、倒置殘差區(qū)域、全局池化層、逐點(diǎn)卷積層以及全連接層。
在ShufflenetV2網(wǎng)絡(luò)中的倒置殘差結(jié)構(gòu)中使用到了深度可分離卷積,其相比于傳統(tǒng)卷積模式而言在參數(shù)量以及計(jì)算復(fù)雜度上有著很大的優(yōu)勢,在很大程度上縮減了網(wǎng)絡(luò)的計(jì)算開銷以及參數(shù)量。但同時(shí)也犧牲了很大一部分識別精度,因此針對以上問題,本文在原本倒置殘差塊的基礎(chǔ)上使用了同樣具有小參數(shù)量以及計(jì)算復(fù)雜度但同時(shí)分離效果更好、特征提取效能更強(qiáng)的藍(lán)圖可分離卷積,以在不改變參數(shù)量以及計(jì)算復(fù)雜度的前提條件下提升模型的識別準(zhǔn)確度。與此同時(shí),在原本的倒置殘差塊中僅采用單一尺度卷積核進(jìn)行特征提取,但由于人臉表情特征的多樣性以及不確定性,從而導(dǎo)致人臉圖片中針對表情的特征信息大小不一同時(shí)位置也不確定,而單一尺寸大小的卷積核感受野則會十分固定,其只能對固定大小以及位置的特征信息有較好的提取能力,但很難提取靈活多變的人臉表情特征,因此極易引起特征信息的缺失,所以針對以上問題,本文將藍(lán)圖卷積以及空洞卷積的思想相結(jié)合并融合SE注意力機(jī)制設(shè)計(jì)并引入了具有不同尺寸大小卷積核感受野的多尺度并行特征提取模塊,以在不增加參數(shù)規(guī)模的前提條件下獲得了更為豐富的特征信息。在原本的倒置殘差塊中存在殘差通路以進(jìn)行特征復(fù)用,但在特征復(fù)用的過程中,某一層的特征一旦產(chǎn)生后將不會再發(fā)生任何變化,其將會以固定的形式參與后續(xù)計(jì)算,而對于網(wǎng)絡(luò)的深層而言,直接讓淺層特征參與本層的新特征計(jì)算可能會引入很多冗余特征,同時(shí)導(dǎo)致部分特征的潛在價(jià)值被嚴(yán)重忽略。因此針對以上問題,在網(wǎng)絡(luò)中添加了特征篩選模塊,來有選擇地更新冗余特征,從而增強(qiáng)特征復(fù)用的效率。與此同時(shí),在網(wǎng)絡(luò)中還設(shè)計(jì)并引入了淺層特征處理層,以簡化網(wǎng)絡(luò)結(jié)構(gòu)。最后將原本的激活層函數(shù)Relu激活函數(shù)替換為SMU激活函數(shù),從而進(jìn)一步提升了模型的性能。
網(wǎng)絡(luò)整體流程如下:第一步要先將輸入的圖片進(jìn)行處理,然后再喂給神經(jīng)網(wǎng)絡(luò),在這里,本文所使用的是SFPL模塊,通過該模塊處理后,輸入圖片的分辨率從224×224被調(diào)整至56×56。在這之后再依次經(jīng)過三個(gè)殘差區(qū)域中的下采樣單元(down sampling unit)以及多分支特征融合單元(multi branch feature fusion unit,MBFU),從而對特征信息進(jìn)行處理。在殘差區(qū)域過后還要經(jīng)過逐點(diǎn)卷積層、全局池化層、全連接層以及Softmax分類器這一系列操作,才能得出最終表情分類結(jié)果。模型整體結(jié)構(gòu)如圖1所示。
圖1 殘差多尺度特征融合注意力機(jī)制模型Fig.1 Residual multiscale feature fusion attentional network
在神經(jīng)網(wǎng)絡(luò)的初始階段,首先需要考慮的就是如何處理輸入圖像。在標(biāo)準(zhǔn)的卷積神經(jīng)網(wǎng)絡(luò)中,一般會通過卷積結(jié)合池化的操作,來對輸入圖像進(jìn)行降采樣,以將輸入圖像分辨率調(diào)整至適當(dāng)大小。而在ConvNeXt[25]中,其使用的方法是:在特征信息輸入后,直接將圖片調(diào)整至需要的大小,即將原本卷積結(jié)合池化的操作合二為一,從而簡化了網(wǎng)絡(luò)結(jié)構(gòu),并且降低了計(jì)算復(fù)雜度。在這里,本文利用由步幅為4,卷積核尺寸大小為5×5的卷積層、BN層以及激活層組合而成的SFPL結(jié)構(gòu)來代替此操作,在卷積操作中需要將圖像分辨率從224×224調(diào)整至56×56,因此需要設(shè)定padding值,以對空缺的部分進(jìn)行填充,本文將padding值設(shè)為1,以實(shí)現(xiàn)對于輸入特征分辨率的調(diào)整,并設(shè)定輸出通道數(shù)(c=24)來確定嵌入向量的大小。最后,為了提升網(wǎng)絡(luò)模型的稀疏性,同時(shí)減少訓(xùn)練過程中過擬合或是欠擬合現(xiàn)象的產(chǎn)生,因此在卷積層后加入了一層BN[26]正則化層,之后又在BN層后添加了SMU激活函數(shù)層以進(jìn)一步提升模型的非線性能力。通過添加SFPL結(jié)構(gòu),使得模型在FER2013數(shù)據(jù)集上識別精度提升了0.124%,在CK+數(shù)據(jù)集上,識別精度提升了0.279%。具體如圖2所示。
圖2 淺層特征信息處理層Fig.2 Shallow feature processing layer
為了更好的將卷積進(jìn)行分離,提升特征提取的效能,同時(shí)滿足多尺度特征提取的目的。本文在特征提取環(huán)節(jié)采用了通過改進(jìn)后得到的藍(lán)圖空洞可分離卷積(blueprint dilated separable convolution,BDS Conv)。
首先參考了藍(lán)圖可分離卷積(BSConv)的思想,也就是調(diào)換了深度可分離卷積[27]中逐通道卷積(depthwise convolution)和逐點(diǎn)卷積(pointwise convolution)的順序,先經(jīng)過逐點(diǎn)卷積的操作,調(diào)整特征維度,并對深度方向上的信息進(jìn)行加權(quán)組合,再進(jìn)行逐通道卷積操作,將深度信息進(jìn)行分離。藍(lán)圖可分離卷積相較于傳統(tǒng)的深度可分離卷積的優(yōu)勢可以具體分析為:假設(shè)卷積層中每個(gè)濾波器的尺寸為M×N×N,其中N×N為卷積核尺寸大小,其中濾波器沿深度方向可以劃分成M個(gè)卷積核,每個(gè)卷積核都可以類比為一張二維圖像,這些二維圖像均具有相同的結(jié)構(gòu),稱此二維圖像為“藍(lán)圖”,也即將每個(gè)二維卷積核稱之為“藍(lán)圖”。傳統(tǒng)的深度可分離卷積是通過研究不同內(nèi)核之間的相關(guān)性來對標(biāo)準(zhǔn)卷積進(jìn)行分離,也就是隱式地假設(shè)一個(gè)用于所有內(nèi)核的三維藍(lán)圖,即將深度方向上的所有二維藍(lán)圖組合在一起。而藍(lán)圖可分離卷積則是通過研究卷積核內(nèi)部的相關(guān)性來對標(biāo)準(zhǔn)卷積過程進(jìn)行分離,即將三維藍(lán)圖進(jìn)行分解,拆解成多個(gè)二維藍(lán)圖,其中藍(lán)圖數(shù)量與內(nèi)核數(shù)量保持一致,也即將原本的三維整體,拆分成多個(gè)二維平面,從而進(jìn)一步將卷積過程進(jìn)行分離,提升了卷積分離效果,從而可以更好地提取不同特征通道在空間交互位置上的特征信息,進(jìn)一步提升特征提取效能。
在本文中,出于多尺度特征提取的目的,因此需要設(shè)置不同尺度大小的卷積核來提取特征信息,如果像傳統(tǒng)方法一樣直接引入大尺寸卷積核那必然也會帶來更大的計(jì)算量,因此本文參考了空洞卷積的思想,將原本的逐通道卷積層替換為改進(jìn)后的空洞逐通道卷積層(dilated-depthwise convolution,D-DWC),分別將兩個(gè)D-DWC的擴(kuò)張因子(dilation rate)設(shè)置為1和2,從而得到了BDSConv-1以及BDSConv-2,即一條支路的D-DWC還保持原本的感受野,同時(shí)提升另一條支路D-DWC的感受野大小,簡單來說,就是在另一條支路中并沒有采用直接擴(kuò)大卷積核尺寸的方法,而是在卷積核中注入一個(gè)空洞,從而在保證其參數(shù)量以及計(jì)算復(fù)雜度不變的前提條件下擴(kuò)大了其感受野的大小,以達(dá)到多尺度提取特征的目的。具體結(jié)構(gòu)如圖3所示。
圖3 藍(lán)圖空洞可分離卷積示意圖Fig.3 Blueprint dilated separable convolution
由于人臉表情特征的多樣性以及不確定性,從而導(dǎo)致人臉圖片中針對表情的特征信息大小不一同時(shí)位置也不確定,因此如若只使用單一尺度卷積核的卷積層進(jìn)行特征提取,那么卷積核的感受野則會十分固定,一種尺度的卷積核只能對固定大小以及位置的特征信息有較好的提取能力,但很難提取靈活多變的人臉表情特征,因此極易引起特征信息的缺失,所以針對以上問題,本文設(shè)計(jì)并引入了具有不同尺寸大小卷積核的多尺度并行特征提取模塊(multiscale parallel feature extraction,MPFE)。該模塊主要由兩部分組成:并行卷積特征提取支路、殘差支路。其中并行特征提取支路由BDSConv-1以及BDSConv-2組成。通過融合在不同尺度上進(jìn)行并行卷積運(yùn)算之后得到的結(jié)果從而獲得了更為豐富的特征信息,增強(qiáng)了網(wǎng)絡(luò)的特征完備性,其中不同尺寸大小的卷積核不僅增強(qiáng)了網(wǎng)絡(luò)的泛化和結(jié)構(gòu)表達(dá)能力,同時(shí)還增加了網(wǎng)絡(luò)模型的非線性能力,在很大程度上提升了模型的特征學(xué)習(xí)能力,使得神經(jīng)網(wǎng)絡(luò)可以更好地提取特征信息。與此同時(shí),隨著網(wǎng)絡(luò)層次的不斷加深,在網(wǎng)絡(luò)的每一層中都會丟失部分特征信息,當(dāng)?shù)竭_(dá)最后一層時(shí)往往只包含少量特征信息,為解決這一問題,在該模塊中添加了殘差通路,通過復(fù)用前層特征信息,使得網(wǎng)絡(luò)可以保留更多的特征信息,以進(jìn)一步完備特征。在并行特征提取之后將三條支路所產(chǎn)生的特征信息進(jìn)行加和,以達(dá)到多尺度特征融合的目的,并將融合后的特征信息經(jīng)過SE模塊的加權(quán)化處理,以進(jìn)一步強(qiáng)化特征信息。與此同時(shí),隨著網(wǎng)絡(luò)深度的增加,很容易出現(xiàn)收斂速度變慢、數(shù)據(jù)分布不均等問題。因此,在每個(gè)卷積層后都加入BN操作,對輸入的數(shù)據(jù)先做歸一化處理再送入下一層,用來提升網(wǎng)絡(luò)的收斂能力,同時(shí)減少過擬合以及欠擬合現(xiàn)象的產(chǎn)生,在逐點(diǎn)卷積的BN層后還使用到了SMU激活函數(shù),用來提升網(wǎng)絡(luò)模型的性能。具體結(jié)構(gòu)如圖4所示(其中D-DWC為dilated-depthwise convolution)。
圖4 多尺度并行特征提取模塊Fig.4 Multiscale parallel feature extraction
針對在具有特征復(fù)用結(jié)構(gòu)的網(wǎng)絡(luò)中,某一層的特征一旦產(chǎn)生后將不會再發(fā)生任何變化,其將會以固定的形式參與后續(xù)的所有計(jì)算。因此對于網(wǎng)絡(luò)的深層而言,直接讓淺層特征參與本層的新特征計(jì)算可能會引入很多冗余特征,同時(shí)導(dǎo)致部分特征的潛在價(jià)值被嚴(yán)重忽略。因此針對以上問題,在網(wǎng)絡(luò)中添加了特征篩選模塊,來有選擇地更新冗余特征,從而增強(qiáng)特征復(fù)用的效率。在特征篩選模塊中首先將MPFE模塊以及SE注意力機(jī)制模塊處理過后的特征經(jīng)過1×1逐點(diǎn)卷積層,BN層以及激活層,以對輸入的特征進(jìn)行信息融合,然后經(jīng)過SFR操作,對特征進(jìn)行更新,SFR以經(jīng)過MPFE模塊以及1×1卷積層處理過后的特征信息為輸入,對之前的每一個(gè)特征產(chǎn)生一個(gè)更新量。隨后使用該更新量,匯入殘差通路之中利用更新操作,即使用加的操作來實(shí)現(xiàn)對之前特征的更新。SFR操作對于優(yōu)質(zhì)特征篩選的能力以及優(yōu)勢主要體現(xiàn)在兩方面,第一,在輕量級神經(jīng)網(wǎng)絡(luò)中,卷積層的數(shù)量對模型的輕量化屬性有巨大的影響,如果引入過多的卷積層,那么必然會帶來更高的計(jì)算開銷以及參數(shù)量,會破壞輕量級神經(jīng)網(wǎng)絡(luò)的輕量化屬性,而在SFR操作當(dāng)中,更新量的產(chǎn)生僅僅利用一部分連接進(jìn)行特征學(xué)習(xí)即可得到,而不需要卷積的參與,從而減小了參數(shù)以及計(jì)算量的增加。第二,如果直接對之前所有的特征進(jìn)行重激活的操作是非常消耗計(jì)算開銷的,并且,在產(chǎn)生特征更新量的時(shí)候,有些特征在該層本身就可以被有效利用,如果對這些特征進(jìn)行更新,反而會起到相反的作用,使得特征質(zhì)量降低,因此對于這些特征不需要進(jìn)行任何更新,所以SFR可以自主地選擇需要產(chǎn)生相應(yīng)更新量的特征,而不需要更新的特征則會生成空白更新量,不對特征進(jìn)行更新,從而保證該操作的有效性以及高效性,經(jīng)過更新后的特征可以更好地被后續(xù)層級所利用,提升了特征質(zhì)量。同時(shí),通過消融實(shí)驗(yàn)部分可以看出,加入特征篩選模塊后模型的識別準(zhǔn)確率有了十分明顯的提升,從而驗(yàn)證了該模塊的有效性。整體結(jié)構(gòu)如圖5所示。
圖5 特征篩選模塊Fig.5 Feature filtering
本文設(shè)計(jì)了全新的倒置殘差單元,殘差單元分為下采樣單元(down sampling unit)以及多分支特征融合單元(multi branch feature fusion unit,MBFU)兩種不同的組成形式,其中下采樣單元即為下采樣殘差塊(down sampling block),多分支特征融合單元?jiǎng)t是根據(jù)不同倒置殘差區(qū)域深度的不同,由不同數(shù)量的多分支特征融合殘差塊(MBF block)堆疊而成。
下采樣殘差塊(down sampling block):在下采樣殘差塊中要先將輸入復(fù)制成兩份,然后分別經(jīng)過兩條下采樣分支,分支中的3×3 Depthwise Conv被用來縮小特征圖分辨率,即將分辨率調(diào)整至原來的一半,1×1 Pointwise Conv被用來調(diào)整特征維度,提升通道數(shù)。最后經(jīng)過Concat以及Channel Shuffle操作以對特征通道數(shù)進(jìn)行翻倍,同時(shí)將特征信息進(jìn)行混洗,加強(qiáng)特征信息的表達(dá)能力。這個(gè)結(jié)構(gòu)在設(shè)計(jì)上的原則為:在使用卷積進(jìn)行降維時(shí),要對通道數(shù)進(jìn)行翻倍從而來維持特征量。具體結(jié)構(gòu)如圖6所示。
圖6 下采樣殘差塊Fig.6 Down sampling block
多分支特征融合殘差塊(MBF block):在MBF block中,要先將輸入特征平均分裂成兩部分,一部分先經(jīng)過MPFE模塊以及SE注意力機(jī)制模塊處理,然后將輸出特征復(fù)制成兩份,一份輸入到特征篩選模塊中對特征信息進(jìn)行過濾,再將過濾后的特征信息匯入到另一條支路中從而對特征進(jìn)行更新,另一份特征不做處理。最后將兩條支路的特征信息進(jìn)行Concat拼接,并進(jìn)行Channel Shuffle操作,以強(qiáng)化特征信息。具體結(jié)構(gòu)如圖7所示。
圖7 多分支特征融合殘差塊Fig.7 Multi branch feature fusion block
本文在實(shí)驗(yàn)階段采用了Fer2013數(shù)據(jù)集和CK+數(shù)據(jù)集來對方法進(jìn)行驗(yàn)證。Fer2013數(shù)據(jù)集是由訓(xùn)練集以及測試集兩部分組成的,其中訓(xùn)練集包含28 709張圖片,測試集包含7 178張圖片。其中所有圖片都是分辨率為48×48的灰度圖片。在Fer2013數(shù)據(jù)集中表情被劃分為7類,分別是:憤怒,厭惡,恐懼,開心,難過,驚訝和中性。該數(shù)據(jù)集的來源是2013年的Kaggle比賽,由于這個(gè)數(shù)據(jù)集中的圖片大多是從網(wǎng)絡(luò)中下載的,所以圖片的質(zhì)量也是參差不齊。數(shù)據(jù)集中表情示例如圖8所示。
圖8 Fer2013數(shù)據(jù)集示例Fig.8 Fer2013 dataset example
CK+數(shù)據(jù)集在2010年發(fā)布,其是在Cohn-Kanade Dataset的基礎(chǔ)上進(jìn)行擴(kuò)展而得到的。CK+數(shù)據(jù)集中共包含123個(gè)項(xiàng)目,593個(gè)圖片序列,而在這593個(gè)圖片序列中,327個(gè)序列是具有表情標(biāo)簽的。這個(gè)數(shù)據(jù)集是在實(shí)驗(yàn)室條件下采集到的,所以數(shù)據(jù)集中的數(shù)據(jù)質(zhì)量可以得到保證,數(shù)據(jù)集相對而言更加嚴(yán)謹(jǐn)。本文在CK+數(shù)據(jù)集上用來提取測試集的方式為K折交叉提取方式。即:將CK+數(shù)據(jù)集先分為K份,然后將其中1份作為測試集,再將剩下的K-1份作為訓(xùn)練集,共實(shí)驗(yàn)K次,然后取所得結(jié)果的平均值作為最終結(jié)果,其中最大的置信度區(qū)間值所對應(yīng)的表情類別即為輸出結(jié)果,這種方法可以在很大程度上減少分類錯(cuò)誤情況的產(chǎn)生。在本文的實(shí)驗(yàn)中將K設(shè)為10。數(shù)據(jù)集中表情示例如圖9所示。
圖9 CK+數(shù)據(jù)集示例Fig.9 CK+dataset example
本文所有實(shí)驗(yàn)都以Pytorch深度學(xué)習(xí)框架作為基礎(chǔ),使用的編程語言為Python 3.6,在Windows 10 64位操作系統(tǒng)上進(jìn)行實(shí)驗(yàn)測試。實(shí)驗(yàn)所用硬件平臺為:Intel Core i5-9300H@2.40 GHz四核,16 GB內(nèi)存,Nvidia GeForce RTX 2060 6 GB。
模型在Fer2013數(shù)據(jù)集的訓(xùn)練過程中,批處理尺寸設(shè)置為32;迭代次數(shù)設(shè)為350;采用隨機(jī)梯度下降來對訓(xùn)練過程進(jìn)行優(yōu)化,動量設(shè)為0.9;初始學(xué)習(xí)率設(shè)為0.01,并且采用學(xué)習(xí)率遞減的方法,使模型更容易收斂,即當(dāng)?shù)降?0代時(shí),每進(jìn)行5次迭代就將學(xué)習(xí)率乘以0.9。
模型在CK+數(shù)據(jù)集的訓(xùn)練過程中,和在Fer2013數(shù)據(jù)集中不一樣的是迭代次數(shù)從350減至300;學(xué)習(xí)率遞減設(shè)定為從第250代開始,每進(jìn)行1次迭代就將學(xué)習(xí)率乘以0.8。
在網(wǎng)絡(luò)訓(xùn)練的過程中,為了防止網(wǎng)絡(luò)產(chǎn)生過擬合的情況,可以對原數(shù)據(jù)進(jìn)行圖像變換的操作,例如切割,翻轉(zhuǎn)或是鏡像等等。以上操作均稱為數(shù)據(jù)增強(qiáng)。數(shù)據(jù)增強(qiáng)操作還有另外一個(gè)好處就是可以在很大程度上擴(kuò)大原本數(shù)據(jù)集中的樣本容量,使得訓(xùn)練后的網(wǎng)絡(luò)具有更強(qiáng)的魯棒性。本文在訓(xùn)練階段將原本的圖像采用隨機(jī)切割的方法,將圖像切割至44×44的大小,在這之后,將圖像采取隨機(jī)鏡像的操作,然后再進(jìn)行訓(xùn)練。測試階段,本文采用了一種集成的方法來減少干擾因素的影響。分別將圖片的左上,右上,左下,右下四個(gè)角,以及中心進(jìn)行切割,之后再對切割后的圖片進(jìn)行隨機(jī)鏡像操作,通過這一系列的操作,使得數(shù)據(jù)集相比較原本而言擴(kuò)大了整整10倍,很大程度上增強(qiáng)了樣本的豐富程度。
3.4.1 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
為了驗(yàn)證本文所提出人臉表情識別方法的有效性,因此分別在Fer2013以及CK+數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),并將實(shí)驗(yàn)結(jié)果進(jìn)行可視化處理。
圖10是模型在Fer2013數(shù)據(jù)集上得到的訓(xùn)練精度曲線,通過分析圖片可以得出:隨著迭代次數(shù)的疊加,曲線整體是在上升的,也就是說訓(xùn)練的準(zhǔn)確率是在不斷提高的,繼續(xù)分析可以看出,在訓(xùn)練階段的最初期,也就是25代以前,訓(xùn)練精度的提升是最快的。當(dāng)訓(xùn)練進(jìn)行至第40代左右的時(shí)候,曲線上升開始放緩,斜率開始逐漸下降。但到了第80代左右,曲線斜率又開始呈增長態(tài)勢,曲線上升幅度開始變快。一直到200代之后,曲線變得平穩(wěn),訓(xùn)練的精確度也不再明顯變化,直至最終趨于收斂。
圖10 Fer2013訓(xùn)練精度曲線Fig.10 Fer2013 training accuracy curve
圖11是測試精度曲線,通過分析圖片可以得出:隨著迭代次數(shù)的增加,和訓(xùn)練曲線一樣,測試曲線也整體是在上升的,并且也是在訓(xùn)練的初期,也就是25代以前,測試精度的提升是最快的。但這之后曲線的整體走向就已經(jīng)開始逐漸穩(wěn)定,曲線的斜率逐漸下降,精度的提升也在逐漸放緩,直至最終趨于平穩(wěn),達(dá)到收斂的狀態(tài)。
圖11 Fer2013測試精度曲線Fig.11 Fer2013 test accuracy curve
圖12是訓(xùn)練損失曲線,通過圖片本文可以看出:隨著模型訓(xùn)練的進(jìn)行,模型在數(shù)據(jù)集上的訓(xùn)練誤差在逐漸減小,在第25代以前,曲線下行的趨勢很快,之后漸漸變慢,但到了80代左右的時(shí)候,下降速率又開始增快,一直到200代左右,曲線漸漸趨于平穩(wěn),不再發(fā)生明顯變化。從中不難分析得出模型在訓(xùn)練的過程中既沒有出現(xiàn)過擬合的情況,也沒有出現(xiàn)欠擬合的情況。
圖12 Fer2013訓(xùn)練損失曲線Fig.12 Fer2013 train loss curve
為了進(jìn)一步分析模型對各類表情的識別準(zhǔn)確率,本文分別繪制了其在Fer2013數(shù)據(jù)集和CK+數(shù)據(jù)集上識別結(jié)果的混淆矩陣。
從圖13所示Fer2013測試集的混淆矩陣中,不難看出本文所提出的方法對于高興和驚訝這兩種表情相比較于其他表情,具有更高的識別度,準(zhǔn)確率分別達(dá)到了0.88以及0.84,但同時(shí),對于恐懼、憤怒和悲傷這三類表情的識別率相對而言較低一些。之所以會出現(xiàn)這種現(xiàn)象是因?yàn)椋簩τ贔er2013數(shù)據(jù)集來說:高興和驚訝兩類表情與其他種類表情相比,面部特征更加突出,因此神經(jīng)網(wǎng)絡(luò)可以更好地提取到相關(guān)特征,從而得到更高的識別率。在高興狀態(tài)下的人臉面部表情圖像往往具有嘴角上揚(yáng)、眼角處產(chǎn)生紋路等具有明顯區(qū)分度的特征信息。在驚訝狀態(tài)下的人臉表情中同樣會表現(xiàn)出眼睛睜大、嘴巴打開等明顯的表情特征。相比較而言,恐懼、憤怒和悲傷三種表情識別率相對較低。其中恐懼類別的識別難度最大,這是因?yàn)樵诳謶值谋砬橹幸泊嬖谧彀蛷堥_的情況,只是嘴巴張開的幅度略大一些,這導(dǎo)致恐懼與驚訝兩個(gè)類別很容易產(chǎn)生混淆,與此同時(shí),其還容易與悲傷類別相混淆,因?yàn)樵谶@兩類表情特征中均有皺眉、額頭緊縮等同類特征,所以恐懼類表情的識別率是所有類別中最低的。而剩下的兩類表情和恐懼類表情均屬于消極情緒表情,三類表情特征之間具有較強(qiáng)的相似性,面部關(guān)鍵點(diǎn)的區(qū)別通常很小,因而導(dǎo)致相互混淆的概率較高,從而導(dǎo)致這三類表情的識別準(zhǔn)確率相對較低。
圖13 Fer2013混淆矩陣結(jié)果Fig.13 Fer2013 confusion matrix results
而從圖14所示CK+測試集的混淆矩陣中可以看出,在對七類表情的識別準(zhǔn)確度上,相比較先前的Fer2013測試集來說,識別的準(zhǔn)確率有了很大程度的提升,并且每類表情的識別準(zhǔn)確率也不像Fer2013數(shù)據(jù)集一樣差別很大,產(chǎn)生這種現(xiàn)象的原因是CK+數(shù)據(jù)集是在實(shí)驗(yàn)室條件下采集到的,從而減少了環(huán)境和人為因素的干擾,因此圖片質(zhì)量可以得到保證,所以模型在CK+數(shù)據(jù)集上才會有更加優(yōu)秀的識別準(zhǔn)確率。
圖14 CK+混淆矩陣結(jié)果Fig.14 CK+Confusion matrix results
3.4.2 與前沿方法進(jìn)行比較
在本小節(jié)中,為了驗(yàn)證所提出方法的有效性,本文分別在Fer2013數(shù)據(jù)集以及CK+數(shù)據(jù)集上與多種前沿算法相比較。
表1為不同算法,在兩種數(shù)據(jù)集上進(jìn)行試驗(yàn)的識別率以及參數(shù)量對比結(jié)果。文獻(xiàn)[28]通過使用對抗網(wǎng)絡(luò)模型來進(jìn)行表情識別;文獻(xiàn)[29]通過使用以并行卷積為基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)來進(jìn)行表情識別;文獻(xiàn)[30]通過使用端到端的深度網(wǎng)絡(luò)來進(jìn)行表情識別;文獻(xiàn)[31]通過使用在Inception結(jié)構(gòu)的基礎(chǔ)上引入空洞卷積的方式構(gòu)筑的神經(jīng)網(wǎng)絡(luò)來進(jìn)行表情識別;文獻(xiàn)[32]通過使用淺層CNN來進(jìn)行表情識別;文獻(xiàn)[33]通過使用分解卷積來提取表情特征,并引入注意力機(jī)制來對特征信息進(jìn)行加權(quán),從而進(jìn)行表情識別;文獻(xiàn)[34]通過使用添加注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)來進(jìn)行表情識別。文獻(xiàn)[35]通過采用擴(kuò)展后的深層神經(jīng)網(wǎng)絡(luò)來進(jìn)行表情識別;文獻(xiàn)[36]通過使用Gabor濾波器以及遺傳算法來進(jìn)行表情識別;文獻(xiàn)[37]通過使用一種基于ROI引導(dǎo)的深層結(jié)構(gòu)來進(jìn)行表情識別;文獻(xiàn)[38]通過使用在CNN中添加自適應(yīng)池化的方式進(jìn)行表情識別;文獻(xiàn)[39]通過融合局部與全局兩種不同特征來進(jìn)行表情識別;文獻(xiàn)[40]通過使用結(jié)合Inception結(jié)構(gòu)以及ECA注意力機(jī)制的網(wǎng)絡(luò)模型來進(jìn)行表情識別;通過對比可知本文方法在兩個(gè)數(shù)據(jù)集上所得到的70.298%以及96.566%識別準(zhǔn)確率相比較于其他方法而言,效果更好,識別率更高。
表1 對比實(shí)驗(yàn)測試結(jié)果Table 1 Contrast experiment test result
模型的性能不光要從最終的識別準(zhǔn)確率來考慮,輕量化屬性同樣是考量神經(jīng)網(wǎng)絡(luò)模型性能的一大環(huán)節(jié)。因此,為了在保證模型識別準(zhǔn)確率的同時(shí)不丟失輕量化的屬性,故將以上表格中已知參數(shù)量的方法與本文所提出的方法進(jìn)行對比,以進(jìn)一步評估本文所提方法的魯棒性。從表1中不難看出,本文所提方法相比較于其他幾種方法而言,在參數(shù)量上均有優(yōu)勢。
綜上而言,本文所提方法在保證輕量化的前提條件下,又維持了較高的識別準(zhǔn)確率,模型性能因此得到了考證。
3.4.3 消融實(shí)驗(yàn)
為了進(jìn)一步驗(yàn)證本文方法的有效性,分析不同部分對于模型識別準(zhǔn)確率,參數(shù)量以及計(jì)算復(fù)雜度的影響,因此分別在Fer2013和CK+數(shù)據(jù)集上進(jìn)行了消融實(shí)驗(yàn)。共分為以下六步:
(1)不添加任何模塊,對基線網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn);
(2)只加入SFPL模塊;
(3)在第(2)步的前提條件下加入MPFE模塊;
(4)在第(3)步的前提條件下加入特征篩選模塊;
(5)在第(4)步的前提條件下加入SE注意力機(jī)制;
(6)在第(5)步的前提條件下將激活函數(shù)替換為SMU激活函數(shù),也即本文所提出的方法。具體結(jié)果如表2所示。
表2 消融實(shí)驗(yàn)測試結(jié)果Table 2 Ablation experiment test result
從表2中可以看出,本文所提方法的識別率相比較基線網(wǎng)絡(luò)而言在Fer2013數(shù)據(jù)集以及CK+數(shù)據(jù)集上都有顯著的提升,分別達(dá)到了1.858個(gè)百分點(diǎn)以及3.183個(gè)百分點(diǎn),但與此同時(shí),參數(shù)量以及計(jì)算復(fù)雜度僅有很小幅度的上漲,依舊保持在了較低的水準(zhǔn),從而保證了所提方法的輕量化屬性,同時(shí)也印證了模型的有效性。
本文針對人臉表情識別過程中由于人臉特征的多樣性和不確定性,導(dǎo)致的特征缺失和特征提取率不足等問題,以及在網(wǎng)絡(luò)的特征復(fù)用過程中存在冗余特征的問題,提出了一種殘差多尺度特征融合注意力機(jī)制模型。在模型中通過使用更有效的改進(jìn)后卷積形式,提升了特征提取的效能,并以此為基礎(chǔ)設(shè)計(jì)了并行特征提取模塊,用來融合多尺度特征信息,減少特征信息缺失對識別結(jié)果所帶來的影響。之后加入了特征篩選模塊,以讓網(wǎng)絡(luò)可以對輸入特征進(jìn)行篩選,在減少冗余特征影響的同時(shí)篩選出更為優(yōu)質(zhì)的特征,提升特征質(zhì)量。接下來又設(shè)計(jì)了淺層輸入特征處理層,在簡化網(wǎng)絡(luò)結(jié)構(gòu)的同時(shí)還減少了計(jì)算復(fù)雜度。在這之后又引入了通道注意力機(jī)制以對局部特征進(jìn)行加權(quán)化處理,從而達(dá)到細(xì)化特征信息的目的。最后將原本的激活層函數(shù)替換為SMU激活函數(shù),以讓模型可以擁有更好的識別率。
本文所提出的網(wǎng)絡(luò)模型,結(jié)構(gòu)清晰簡單,訓(xùn)練過程穩(wěn)定,在訓(xùn)練的過程中沒有產(chǎn)生欠擬合或是過擬合的情況。同時(shí),為了驗(yàn)證模型的性能,本文分別在Fer2013和CK+數(shù)據(jù)集上進(jìn)行了充分的實(shí)驗(yàn),從實(shí)驗(yàn)結(jié)果可以看出,本文所提出的方法與前沿算法相比較,取得了更好的準(zhǔn)確度,并且參數(shù)量以及計(jì)算復(fù)雜度都維持在了較低的水平,因此,所提出方法的有效性也是得以驗(yàn)證。但模型對于其中一部分表情分類的識別準(zhǔn)確率依舊不夠理想。
所以下一步將嘗試?yán)肎AN網(wǎng)絡(luò)生成更多人臉圖像,并采用更多的數(shù)據(jù)集預(yù)處理方法,例如:隨機(jī)亮度、隨機(jī)對比度,或是對圖片模糊等等對FER2013數(shù)據(jù)集進(jìn)行擴(kuò)充,以進(jìn)一步突出圖片中的表情特征信息,同時(shí)彌補(bǔ)樣本數(shù)量不足導(dǎo)致訓(xùn)練不充分的問題。同時(shí)嘗試不同尺寸大小卷積核的組合以探尋進(jìn)一步提升識別準(zhǔn)確率的可能,以進(jìn)一步提升模型性能。嘗試藍(lán)圖卷積的變體形式子空間藍(lán)圖卷積,以尋求卷積進(jìn)一步分離的可能性,從而獲得更好的特征提取效能,提升模型識別準(zhǔn)確率。
致謝:本論文由“機(jī)器人仿生與功能研究北京市重點(diǎn)實(shí)驗(yàn)室”資助。