趙 曉,楊 晨,王若男,李玥辰
(陜西科技大學(xué) 電子信息與人工智能學(xué)院,陜西 西安 710021)
面部表情是人類交流和傳達(dá)情感的普遍信號之一,能夠直觀表達(dá)人類對外界事物的情緒反饋。社會心理學(xué)家Mehrabian 的研究表明[1],在日常人際交往過程中,聲音和語言信息分別占到了38%和7%,而面部表情傳遞的信息占總信息量的55%。面部表情識別在計(jì)算機(jī)視覺領(lǐng)域和深度學(xué)習(xí)領(lǐng)域已經(jīng)被廣泛研究,這些研究對理解人類的面部表情以及揭示人類情感的語義信息具有重大意義,同時(shí)在人機(jī)交互、醫(yī)療衛(wèi)生、駕駛員疲勞駕駛監(jiān)控等領(lǐng)域也具有重大意義[2]。
面部表情識別是一個(gè)熱門的研究方向,其主要的研究方法就是特征提?。?-4]。傳統(tǒng)的人工提取方法包括:局部二值模式[5](Local Binary Patter,LBP)、詞袋模型[6](Bag of Words,BOW)、方向梯度直方圖(Histogram of Oriented Gradients,HOG)[7]與尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)[8-9]等。這些方法不僅實(shí)現(xiàn)困難,且很難提取到高維特征,導(dǎo)致耗費(fèi)時(shí)間長及識別準(zhǔn)確率低的問題。因此,當(dāng)今研究者使用卷積神經(jīng)網(wǎng)絡(luò)的方法用于面部表情的特征提取,如AlexNet[10]、VGG[11]、GooleNet[12]、殘差整流增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)[13]等已經(jīng)用于面部表情特征提取,并取得較好的效果。雖然神經(jīng)網(wǎng)絡(luò)模型會隨著深度增加,特征學(xué)習(xí)能力增強(qiáng),但伴隨著梯度消失、梯度爆炸以及模型退化等問題,導(dǎo)致模型在識別和分類任務(wù)上準(zhǔn)確率下降的問題。He Kaiming 等人提出了ResNet[12]網(wǎng)絡(luò)模型,在卷積神經(jīng)網(wǎng)絡(luò)中引入殘差的思想,解決了網(wǎng)絡(luò)深度增加導(dǎo)致梯度消失的問題,但是ResNet網(wǎng)絡(luò)模型仍存在參數(shù)量大和識別準(zhǔn)確率低的問題。
針對ResNet 網(wǎng)絡(luò)模型存在的問題,結(jié)合面部表情識別的特征提取的基本需求,本文提出了一種注意力機(jī)制ResNet 輕量網(wǎng)絡(luò)(MCLResNet)用于面部表情識別。先采用ResNet18 作為主干網(wǎng)絡(luò)提取特征,引入分組卷積減少ResNet18 的參數(shù)量;利用倒殘差結(jié)構(gòu)增加網(wǎng)絡(luò)深度,優(yōu)化了圖像特征提取的效果。再將改進(jìn)的CBAM 模塊(Multi-Scale CBAM,MSCBAM)添加到輕量的ResNet 模型中,有效增加了網(wǎng)絡(luò)模型的特征表達(dá)能力,再引入MSCBAM 的網(wǎng)絡(luò)模型輸出層增加一層全連接層,以此增加模型在輸出時(shí)的非線性表示。本文在FER2013 和CK+面部表情數(shù)據(jù)集上進(jìn)行了多組對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,MCLResNet 比其他網(wǎng)絡(luò)模型參數(shù)量少且保持較好的識別準(zhǔn)確率。
針對ResNet 網(wǎng)絡(luò)模型在面部表情識別中存在面部表情特征表示不足及模型參數(shù)量大的問題,本文提出了一種用于面部表情識別的注意力機(jī)制ResNet 網(wǎng)絡(luò)模型(MCLResNet)。
首先,MCLResNet在圖像預(yù)處理階段,通過隨機(jī)水平翻轉(zhuǎn)、隨機(jī)旋轉(zhuǎn)10°~15°、隨機(jī)增加對比度、隨機(jī)擦除方法等對面部表情數(shù)據(jù)進(jìn)行增強(qiáng),增強(qiáng)了模型的魯棒性且豐富了數(shù)據(jù)集,將預(yù)處理后的圖像作為模型的輸入。其次,經(jīng)過輸入層后的中間特征圖作為輸入,通過4 組兩種不同殘差塊連接的隱藏層得到高維的特征圖。最后,高維特征圖經(jīng)過輸出層,輸出層中的兩層全連接層能夠較好地?cái)M合高維特征圖得到面部表情分類的一維向量。
模型的整體架構(gòu)圖如1 所示。該網(wǎng)絡(luò)結(jié)構(gòu)可以分為輸入層、隱藏層及輸出層3 部分。輸入層由一個(gè)3×3 的卷積層組成。隱藏層由4 個(gè)Basic-Block 和4 個(gè)BasicBlock1 組成,兩個(gè)基礎(chǔ)塊中含有跳連接和改進(jìn)的CBAM 形成兩種不同的殘差塊,兩種殘差塊交叉連接組成網(wǎng)絡(luò)的核心部分。輸出層由一個(gè)平均池化層和兩個(gè)全連接層組成。
隱藏層的核心部分BasicBlock 和BasicBlock1的結(jié)構(gòu)分別如圖2(a)和2(b)所示。BasicBlock 使用ResNet 原始的基礎(chǔ)結(jié)構(gòu)塊同時(shí)在兩次卷積之后添加一個(gè)MSCBAM 注意力模塊,下采樣部分使用一個(gè)3×3 的卷積,且步長為2;BasicBlock1使用一個(gè)倒殘差結(jié)構(gòu)并結(jié)合分組卷積,在減少參數(shù)量的同時(shí)可以增加網(wǎng)絡(luò)模型的深度,獲得更好的特征表達(dá)能力。實(shí)驗(yàn)證明,升維系數(shù)r=2 時(shí),模型的參數(shù)量以及準(zhǔn)確率達(dá)到最優(yōu)。
本文針對網(wǎng)絡(luò)模型在面部表情識別中存在參數(shù)量大、識別準(zhǔn)確率低等問題,提出了一種基于注意力機(jī)制ResNet 輕量網(wǎng)絡(luò)模型。先將面部表情圖像通過隨機(jī)增強(qiáng)對比度、隨機(jī)剪切、隨機(jī)旋轉(zhuǎn)10°~15°、隨機(jī)縮放等進(jìn)行數(shù)據(jù)增強(qiáng);再經(jīng)過4 組交叉連接的BasicBlock 和BasicBlock1 提取面部表情特征,兩個(gè)基礎(chǔ)塊中的卷積為分組卷積且引入了通道混洗操作,另外在兩個(gè)基礎(chǔ)塊中添加MSCBAM 注意力模塊;最后輸出層增加的一層全連接層較好地增加了一維輸出特征的非線性關(guān)系,使模型精度得到提升。網(wǎng)絡(luò)整體結(jié)構(gòu)圖如圖3 所示。
Hinton等人首次提到了分組卷積,分組卷積實(shí)現(xiàn)了讓網(wǎng)絡(luò)模型在兩個(gè)內(nèi)存有效的GPU 上運(yùn)行。隨著GPU 內(nèi)存的增加,網(wǎng)絡(luò)模型不再受內(nèi)存的限制?;诜纸M卷積的特點(diǎn),很多研究者引入分組卷積思想的模型用于實(shí)現(xiàn)數(shù)據(jù)的并行處理,以此減少模型的參數(shù)量,增加模型訓(xùn)練的高效性。本文將分組卷積引入到如圖2 所示的BasicBlock 和BasicBlock1 兩個(gè)殘差塊的卷積層和跳連接中,降低了MCLResNet 網(wǎng)絡(luò)模型的參數(shù)量。分組卷積結(jié)構(gòu)如圖4 所示。在卷積核數(shù)量一定時(shí),分組卷積相比普通卷積降低了計(jì)算復(fù)雜度和計(jì)算次數(shù)。
盡管分組卷積能夠減少模型參數(shù)量,提高模型訓(xùn)練的高效性,但是分組卷積的弊端是不同分組的通道間無法進(jìn)行信息交互,限制了模型的表征能力。針對這一問題,本文引入通道混洗操作增強(qiáng)不同組通道之間的信息交互[14]。通道混洗操作如圖5 所示。通道混洗是將不同分組的通道重新排列得到新的特征圖,再將新的特征圖作為下一次卷積的輸入,實(shí)現(xiàn)了不同分組的通道信息交互,增強(qiáng)了特征的表征能力,提高了整個(gè)網(wǎng)絡(luò)的面部表情識別精度。
在引入分組卷積和通道混洗結(jié)構(gòu)的基礎(chǔ)上,為了進(jìn)一步增強(qiáng)模型的特征提取能力,本文引入了倒殘差結(jié)構(gòu)加深網(wǎng)絡(luò)模型層數(shù)[15]。倒殘差結(jié)構(gòu)如圖6 所示,該結(jié)構(gòu)呈現(xiàn)兩頭小中間大的形狀(梭型),梭型相比漏斗型先升維再降維的過程,避免了部分的特征信息丟失[16]。在倒殘差結(jié)構(gòu)中,先使用1×1 的卷積核實(shí)現(xiàn)升維,再通過3×3的卷積核提取特征,最后使用1×1 的卷積核實(shí)現(xiàn)降維。倒殘差結(jié)構(gòu)的引入減少了特征提取過程中特征信息丟失的問題,加深了網(wǎng)絡(luò)模型的深度,提高了模型提取特征的能力。
CBAM[17]中的通道注意力生成通道注意力特征圖時(shí)要經(jīng)過全連接層進(jìn)行映射特征到一維特征圖,在生成通道注意力時(shí)要經(jīng)過壓縮和擴(kuò)展處理,壓縮時(shí)會損失較多的通道信息[18]。針對這一問題,本文提出了改進(jìn)的CBAM 模塊的通道注意力。
改進(jìn)后的CBAM 通道注意力模塊如圖7 所示。改進(jìn)后的CBAM 通道注意力模塊將原有的全連接層改為一個(gè)1×3 的帶狀卷積,既減少了全連接層帶來參數(shù)量大的問題,又增強(qiáng)了相鄰?fù)ǖ乐g的相關(guān)性,得到最佳的通道特征圖。
CBAM 的空間注意力模塊僅能得到單一特征的空間特征圖。為了得到多種尺度融合的空間特征圖,在CBAM 空間注意力模塊中引入了不同大小的卷積核,得到融合不同尺度的空間特征圖。改進(jìn)后的CBAM 空間注意力模塊如圖8所示,改進(jìn)后的CBAM 空間注意力模塊中添加了3×3、5×5、7×7、9×9 的卷積核用于得到不同尺度的特征圖,再將得到的不同尺度特征圖通過最大池化和平均池化獲取各自對應(yīng)的空間特征圖并將得到的4 個(gè)特征圖進(jìn)行融合,最后將融合后的特征圖通過Sigmoid 函數(shù)進(jìn)行激活得到多尺度融合的空間特征圖。改進(jìn)后的空間注意力機(jī)制輸出實(shí)例如公式(1)所示:
其中:Ms ∈R1×H×W表示輸出的空間注意力圖,σ表示Sigmoid 函數(shù),AvgPool 表示平均池化,Maxpool 表示最大池化,Conv 表示卷積操作,Conv 的腳標(biāo)表示卷積操作使用的卷積核大小。
本文在模型訓(xùn)練和模型驗(yàn)證所用的數(shù)據(jù)集為FER2013數(shù)據(jù)集[19]和CK+數(shù)據(jù)集[20]。FER2013數(shù)據(jù)集是人臉表情識別最通用的數(shù)據(jù)集,由35 886張人臉表情圖片組成,其中,訓(xùn)練集28 708 張、驗(yàn)證集3 589 張、測試 集3 589 張,每一張圖像大小為48×48 的灰度圖像組成。7 種表情對應(yīng)的標(biāo)簽如下:anger 0,disgust 1,fear 2,happy 3,sad 4,surprised 5,normal 6。CK+數(shù)據(jù)集包含123 個(gè)對象的327 個(gè)被標(biāo)記的表情圖片序列,共分為anger、contempt、disgust、fear、surprised、happy 和sad 7 種表 情,表情對應(yīng)標(biāo)簽如下:anger 0、contempt 1、disgust 2、fear 3、happy 4、sad 5、surprised 6。圖9列舉了FER2013 數(shù)據(jù)集和CK+數(shù)據(jù)集的部分樣例圖。
為了解決因?yàn)閿?shù)據(jù)分布失衡和數(shù)據(jù)量小而導(dǎo)致模型訓(xùn)練時(shí)出現(xiàn)過擬合等問題,本文使用數(shù)據(jù)增強(qiáng)等方法對數(shù)據(jù)集樣本進(jìn)行擴(kuò)充,主要采用隨機(jī)水平翻轉(zhuǎn)、隨機(jī)旋轉(zhuǎn)、隨機(jī)增加對比度、隨機(jī)擦除等方法對數(shù)據(jù)集進(jìn)行擴(kuò)充。針對CK+中一副anger 原圖經(jīng)過上述方法擴(kuò)充后的樣例如圖10所示。其他圖像也采用了類似方法進(jìn)行擴(kuò)充,在此不再一一列舉。
圖1 MCLResNet 網(wǎng)絡(luò)構(gòu)架Fig.1 MCLResNet network architecture
圖2 隱藏層的核心部分。(a)BasicBlock 結(jié)構(gòu);(b)Basic-Block1 結(jié)構(gòu)。Fig.2 Core part of the hidden layer.(a)Structure of BasicBlock;(b)Structure of BasicBlock 1.
圖3 網(wǎng)絡(luò)整體結(jié)構(gòu)圖Fig.3 Overall network structure diagram
圖4 (a)普通卷積;(b)分組卷積。Fig.4 (a)Ordinary convolution;(b)Grouped convolution.
圖5 通道混洗Fig.5 Channel shuffle
圖6 倒殘差結(jié)構(gòu)Fig.6 Inverted residual structure
圖7 改進(jìn)后的通道注意力模塊Fig.7 Improved channel attention module
圖8 改進(jìn)后的空間注意力模塊Fig.8 Improved spatial attention module
圖9 FER2013 和CK+數(shù)據(jù)集樣例圖Fig.9 Samples of FER2013 and CK+datasets
圖10 數(shù)據(jù)增強(qiáng)樣例圖Fig.10 Sample diagram of data enhancement
本文實(shí)驗(yàn)配置如下:Windows10 系統(tǒng),CPU 為主頻3.19 Hz 的 Intel Core i9-12900K,內(nèi)存為64G,GPU 為NVIDIA GeForce RTX 3080(12G)×2。本實(shí)驗(yàn)基于Pytorch深度學(xué)習(xí)框以及Pycharm 進(jìn)行模型訓(xùn)練和測試,實(shí)驗(yàn)參數(shù)設(shè)置是:Batch Size 為128,學(xué)習(xí)率取0.1,優(yōu)化器為隨機(jī)梯度下降(SGD),沖量為0.9,損失函數(shù)為交叉熵?fù)p失函數(shù),學(xué)習(xí)率下降算法使用余弦退火算法。
3.3.1 消融實(shí)驗(yàn)
為了驗(yàn)證MCLResNet 網(wǎng)絡(luò)各個(gè)模塊的有效性,對每一個(gè)模塊進(jìn)行消融實(shí)驗(yàn)。其中Baseline 表示引入分組卷積且增加一層全連接層的ResNet18網(wǎng)絡(luò)模型;BasicBlock1 如圖2 所示;MSCBAM 是多尺度空間融合的CBAM;Better-Down 表示使用3×3,步長為2 的卷積替換原有的1×1 卷積。
該實(shí)驗(yàn)在擴(kuò)展的FER2013 和CK+數(shù)據(jù)集上驗(yàn)證,實(shí)驗(yàn)過程是在網(wǎng)絡(luò)模型中逐步添加模塊或者修改相應(yīng)的模塊。表1 的實(shí)驗(yàn)結(jié)果表明,在不同的數(shù)據(jù)集上所提模型具有良好的泛化性,替換或添加的模塊明顯提高了整體模型的識別準(zhǔn)確率。
表1 消融實(shí)驗(yàn)Tab.1 Ablation experiments
3.3.2 確定BasicBlock1 升維系數(shù)r的對比實(shí)驗(yàn)
為了選取BasicBlock1 的升維系數(shù)r,在FER2013 數(shù)據(jù)集上驗(yàn)證了不同的r對模型大小和識別準(zhǔn)確的影響。具體實(shí)驗(yàn)參數(shù)如圖11 所示。①表示本文所提方法不含MSCBAM。②表示本文所提方法含MSCBAM。
圖11 (a)升維系數(shù)和準(zhǔn)確率之間的關(guān)系圖;(b)升維系數(shù)和模型參數(shù)量之間的關(guān)系。Fig.11 (a)Relationship between the ascending coefficient and the accuracy rate;(b)Relationship between the ascending coefficient and the number of model parameters.
圖11 例舉了r=2、4、8 三個(gè)值對本文提出方法的模型參數(shù)量大小和準(zhǔn)確率的影響。實(shí)驗(yàn)數(shù)據(jù)表明,r值為2 時(shí),①和②的模型參數(shù)量分別為3.043M 和7.318M,盡管②比①的參數(shù)量大,但模型的準(zhǔn)確率提升了1.6%;模型同為①,r=2 和r=4 時(shí),r為4 的模型 比r為2 的模型 參數(shù)量增加了0.293M,但模型精度僅提升了0.03%;模型同為①,r=4 和r=8 時(shí),r為8 的模型比r為4 的模型大小增加了0.708,但模型精度僅提升了0.16%。本文旨在設(shè)計(jì)一個(gè)輕量的網(wǎng)絡(luò)模型,即由圖11 表明本文選取r=2 為BasicBlock1 的升維系數(shù)。
3.3.3 與其他網(wǎng)絡(luò)的對照實(shí)驗(yàn)
為了驗(yàn)證本文所提模型的準(zhǔn)確性和有效性,與其他的網(wǎng)絡(luò)模型進(jìn)行對照實(shí)驗(yàn),如AlexNet、VGG19、Zhang[21]、ResNet18 及MobileNetV2。這些網(wǎng)絡(luò)模型及本文所提網(wǎng)絡(luò)模型在FER2013 數(shù)據(jù)集、CK+數(shù)據(jù)集上的識別準(zhǔn)確率以及所對應(yīng)的參數(shù)量如表2 所示。
表2 與其他網(wǎng)絡(luò)的對照實(shí)驗(yàn)結(jié)果Tab.2 Results of controlled experiments with other networks
模型參數(shù)量方面,本文提出的模型參數(shù)量相比于其他常見的網(wǎng)絡(luò)模型參數(shù)量明顯下降。與本文的主干網(wǎng)絡(luò)ResNet18 相比,本文模型的參數(shù)量為ResNet18 網(wǎng)絡(luò)參數(shù)量的17.42%;與MobileNetV2 的參數(shù)量相比下降了1.33M。在FER2013 數(shù)據(jù)集識別準(zhǔn)確率方面,本文所提出的模型相比AlexNet、VGG19 和MobileNetV2 的識別準(zhǔn)確率分別高1.07%、0.05%、6.08%;但相比ResNet18,Zhang 及ResNet18+Better_Down的方法識別準(zhǔn)確率略低。在CK+數(shù)據(jù)集識別準(zhǔn)確率方面,本文所提出的模型識別準(zhǔn)確率較AlexNet、VGG19、MobileNetV2 和ResNet18 等模型的識別準(zhǔn)確率分別高8.22%、3.63%、1.16%、5.5%。
本文基于面部表情識別提出了一種注意力機(jī)制ResNet 輕量網(wǎng)絡(luò)模型(MCLResNet),其參數(shù)量為改進(jìn)前ResNet18 的參數(shù)量的17.42%。首先,所提模型中引入了分組卷積和倒殘差結(jié)構(gòu),減少了模型的參數(shù)量,增加了網(wǎng)絡(luò)深度,通過減小模型大小提升了模型訓(xùn)練速度;在不同的分組通道中引入通道混洗操作用以增強(qiáng)特征圖層與層之間的信息交互;改進(jìn)了ResNet18 中跳連接中的卷積核大小,降低了特征信息的丟失。其次,改進(jìn)的CBAM 注意力模塊(MSCBAM)在模型訓(xùn)練過程中提供了多尺度融合的中間特征圖,增加了模型的精度。最后,本文提出的MCLResNet模型在FER2013 數(shù)據(jù)集和CK+數(shù)據(jù)集上的測試準(zhǔn)確率體現(xiàn)了模型良好的泛化性。盡管本文所提出模型及其他模型在CK+數(shù)據(jù)集上表現(xiàn)良好,但在FER2013 數(shù)據(jù)集上準(zhǔn)確率較低,其原因一方面是數(shù)據(jù)集存在部分標(biāo)注錯(cuò)誤,另一方面是FER2013 數(shù)據(jù)集的復(fù)雜多樣(正臉、左側(cè)臉、右側(cè)臉等)。解決數(shù)據(jù)集多樣性帶來的準(zhǔn)確率低的問題是后期工作改進(jìn)的一個(gè)方向。