史志博 譚 志
(北京建筑大學電氣與信息工程學院 北京 100044)
人臉表情識別是圖像識別領域的研究熱點,表情是人類情感表達的一種重要方式,表情識別技術是實現人機交互和人工智能的基礎,具有很大研究價值[1,4]。人臉表情識別方法主要分為人臉檢測、特征提取和分類識別三個步驟,特征提取是表情識別過程中重要一環,提取出更好表現表情信息的特征是提升人臉表情識別精度的關鍵[2]。傳統的人工設計的表情特征提取方法,設計復雜,很難提取圖像的高階特征,易受干擾且不穩定[3,5]。
隨著深度學習的發展,基于深度學習的表情特征提取方法被廣泛應用。為了適應復雜的應用場景,更多的深度神經網絡模型被提出,如AlexNet、VGGNet、GooLeNet、ResNet、DenseNet等[6-10],比傳統的表情識別方法具有更好的效果。隨著網絡的加深,也會出現梯度不穩定、網絡退化和參數量越來越大的問題。研究學者通過改良網絡模型和融合其他算法的方式去提升表情識別性能,如周本君[11]對經典的AlexNet網絡做了改進,在自建數據集的測試精度為88.15%;張俞晴等[12]使用CNN與SIFT特征融合的人臉表情識別方法在FER2013數據集上取得了68.1%的識別率等。
近年來,注意力機制的飛速發展為表情識別的研究提供了新思路,然而注意力機制在圖像分類上的應用還處在探究過程中[13]。Hu等[14]引入通道注意力機制,將通道注意力模塊與ResNet網絡結合構建SeNet,通過建模通道間的相互依賴關系,自適應校準通道的特征響應來對圖像分類。Woo等[15]提出CBAM,分別在特征提取網絡的通道維度和空間維度上特征壓縮和重新加權的方法,相比于SeNet只關注通道注意力機制取得了更好的分類效果。然而在對通道重要度權重獲取上,CBAM采取雙池化壓縮特征分別放入同一多層感知機訓練再加和激活的方法,導致神經元易傾向于對后輸入特征進行權值調整,減小了雙池化豐富高層次特征提取的優勢;并且在殘差結構之后融合構建的新網絡,使得引入的激活函數干擾殘差結構捷徑連接的反向傳播,容易導致因網絡層冗余而造成的梯度減小和退化的情況發生。
針對上述缺點,本文提出融入注意力機制的殘差網絡人臉表情識別方法,對原CBAM進行優化改進,在獲取通道重要度權重的策略上,采用特征融合再訓練的方法。使網絡層混合計算兩部分池化壓縮特征互信息,增強關鍵性通道特征的表示,提升了模型的擬合能力。將改進后的CBAM融入到ResNet模型的殘差結構中,與殘差結構的特征提取層以先后串行結構融合構建新的殘差模塊。該模塊不僅避免了CBAM對捷徑連接反向傳播的影響,且先根據注意力劃分輸入特征的重要度再去提取特征,更符合注意力機制的思想。通過新的殘差模塊構建網絡模型RARNet。該模型加深了對表情判別性特征的表示,提升了特征提取性能,并且改進后的CBAM屬于輕量級結構,RARNet以較小參數量的增加在FER2013、JAFFE和CK+數據集上取得了比傳統網絡模型和其他相關方法更好的識別效果。
注意力是人的一種復雜認知能力,在事物辨識過程中關注一部分信息而忽略另一部分信息。CBAM主要由通道注意力和空間注意力的串行結構組成,如圖1所示。神經網絡先通過通道注意力模塊學習什么特征是關鍵特征,再利用空間注意模塊學習到關鍵特征在哪里,加強圖像判別性特征的獲取,并對特征進行自適應性的細化功效。

圖1 CBAM結構圖
網絡特征圖的各個通道重要性是不同的,通道注意力可以發掘通道圖之間的依賴關系,通過賦予權值的方式提取每個通道特征對關鍵信息的重要程度,有選擇性地去關注權重值大的信息。通道注意力模塊把輸入大小為H×W×C的特征圖A分別經過基于W和H的全局平均池化和最大池化進行壓縮,把壓縮后的兩部分特征分別放入含有一個隱藏層的多層感知機(Multi-Layer Perceptron,MLP)中作降維升維操作,并提取用以表達通道重要度的權值向量,將經MLP處理后的輸出特征作求和運算,再通過Sigmoid激活,生成最后的通道注意力加權系數,如式(1)所示。
NC(A)=σ(MLP(AvgPool(A))+MLP(MaxPool(A)))
(1)
式中:σ表示Sigmoid激活函數,W0和W1是多層感知機中的兩層FC層權重,中間包含有隱藏層和ReLU激活函數。
CBAM把輸入特征A經過通道注意力模塊得到的權重系數NC(A)與輸入特征相乘,得到含有更多通道維度上關鍵信息的特征圖A′。再將A′通過用來提取特征圖內部空間關系的空間注意力模塊得到空間注意力權重系數NS(A′),并和A′相乘得到的含有更多空間位置關鍵信息的特征圖像A″,作為CBAM最后的輸出特征圖,如式(2)和式(3)所示。
A′=NC(A)?A
(2)
A″=NS(A′)?A′
(3)
在神經網絡訓練過程中,每個神經元會根據經過的每組特征前后進行參數計算調整,并且容易傾向于后輸入的特征。在共享權重的情況下,若將兩組特征經過同一MLP中去訓練權重的話,會出現左支右絀的情況。針對此弊端,對原CBAM的通道注意力模塊進行優化改進,結構如圖2所示。將兩組池化后的特征concat拼接融合后,再通過MLP做權重W0和W1的訓練,如式(4)所示。
NC(A)=σ(MLP([MaxPool(A);AvgPool(A)])
(4)
式中:[MaxPool(A);AvgPool(A)]是拼接后的融合特征。
MLP由兩層FC層構成,第一個FC層的輸入特征X經過降維后得到特征Y0,通過隱藏層激活處理后,利用第二個FC層對特征Y0升維得到輸出特征Y1。W0與W1是兩個FC層權重,如式(5)和式(6)所示。
Y0=W0×X
(5)
Y1=W1×Y0
(6)


深層卷積神經網絡通過加深卷積層用以豐富特征的提取,但是這會造成網絡冗余而出現梯度爆炸和梯度消失的問題。ResNet引入了殘差學習模塊,利用捷徑連接制造恒等映射,這種殘差模型不但避免了網絡層數的加深而出現的網絡退化的問題,而且便于優化,計算數據量很少。
ResNet50的殘差學習模塊結構如圖3所示,假定殘差塊網絡的輸入是x,通過捷徑連接把輸入x傳到輸出作初始結果,期望輸出是H(x)=F(x)+x。此時需要學習的目標就是F(x),如果網絡層成為了冗余層,期望最理想的輸出目標讓F(x)=0,此時雖然未學習到新的特征,但也不會造成信息丟失和損耗的問題。

圖3 ResNet50殘差學習模塊結構
對于殘差網絡來說,前向過程是線性的,后面的輸出是輸入加上每一次的殘差元的結果如式(7)所示,通過反向傳播的鏈式法則可得到:
(7)
(8)
采用PyTorch深度學習框架把改進后的CBAM與ResNet50殘差學習模塊以串行結構融合構建下采樣殘差注意力模塊(Down sampling Residual Attention Module,DRAM)和殘差注意力模塊(Residual Attention Module,RAM),如圖4所示。DRAM用以減小特征圖大小,將淺層特征細化后并轉換為深層特征;RAM以堆疊的思路加深網絡深度,提升對高層語義特征的提取。

圖4 DRAM 和RAM示意圖

將DRAM和RAM根據ResNet50網絡中的殘差結構配置搭建新的網絡模型RARNet,如圖5所示。該網絡模型由一個7×7大小的卷積層、3個DRAM層、13個RAM層和一個全連接層構成,并采取遷移學習的方法在RARNet殘差結構上采用ResNet50的預訓練模型參數初始化,注意力模塊采用參數隨機初始化。分類器選用Softmax分類,輸出不同面部表情的預測值。

圖5 RARNet結構圖
在訓練階段,采用數據增強的方法隨機切割44×44的表情圖像,并將圖像進行隨機鏡像,然后送入網絡模型訓練。在測試階段,本文采用一種集成的策略來減少異常值。將圖片在左上角、左下角、右上角、右下角、中心進行切割并做鏡像操作,使得數據庫擴大了10倍,再把這10幅圖片送入模型預測。將得到的概率取平均,最大的輸出分類即為對應表情類別,可以有效地降低分類錯誤率。
實驗采用CK+、JAFFE和FER2013數據集來訓練和測試,CK+數據集是在 Cohn-Kanade 數據庫的基礎上擴展來的,其中含有327個貼有標簽的面部視頻,實驗所用圖片則從每個序列中提取最后三個幀,選取包含憤怒、輕蔑、厭惡、害怕、高興、悲傷、驚訝七種人臉表情的圖片981幅。JAFFE數據集包含有憤怒、厭惡、害怕、高興、悲傷、驚訝、中性七種表情圖片213幅,本文先將圖片中的人臉部分檢測并裁剪出來,再通過旋轉不同角度的方式將數據量擴充為原數據的5倍。FER2013人臉表情數據集包含有35 886幅表情圖片,是表情識別大賽的常用數據集。FER2013數據集中含有憤怒、厭惡、害怕、高興、悲傷、驚訝、中性七種表情圖片,這三種數據集各類表情圖片如圖6所示。
FER2013數據集數據樣本中存在不少錯誤標簽,還有一部分樣本并非正面表情圖片和存在表情被遮擋的情況,FER2013數據集在規模和識別難度上都遠遠高于CK+和JAFFE數據集。實驗選用FER2013的私有測試集識別率作為模型識別精度,三者樣本分組如表1所示。

表1 數據集訓練和測試樣本量對比
實驗環境硬件上是在擁有GPU Tesla P100的深度學習服務器上進行,操作系統為Linux,使用Python2.7的版本。先將數據集的圖片大小處理成48×48像素大小,并根據GPU顯存將訓練過程中批量大小設置為128,三個數據集訓練周期分別為60、60和250,優化算法采用動量梯度下降法。初始學習率為0.01,動量為0.9,權重衰減為5×10-4,通過權重衰減的方式可防止過擬合,提升模型泛化性能。訓練過程中每個Epoch結束后會通過測試集對模型進行評估和保存,完成所有輪次訓練后,把識別效果最好的權值保存成最后的模型文件。
在網絡模型上,選用ResNet18、ResNet50、ResNet50+CBAM與RARNet做實驗對比,通過識別率和模型參數量做測試性能指標,在兩個數據集上的實驗結果如表2所示。RARNet相比于其他模型在FER2013、JAFFE和CK+數據集識別性能上分別獲得了1.78%~3.68%、2.47%~7.39%和2.02%~8.08%的提升,最終取得了72.78%、96.06%和98.99%的較高識別率。因為RARNet通過引入DRAM將淺層特征通過注意力模塊細化后再轉化為高層特征,堆疊RAM則提升了網絡對高層判別性特征的提取,增強區分不同表情關鍵信息的表達;而殘差結構與改進后的注意力模塊的結合既更好地擬合了不同通道特征的關聯性,提升了注意力特征細化的表現力,又不會因為網絡深度的增加而出現網絡退化的現象,相較于和改進前的CBAM的融合取得了更好的識別效果;注意力模塊與卷積層的先后串行結構,先增強特征圖重要特征的表示,再去提取特征,更切合人的視覺機制。

表2 在不同網絡模型實驗對比
通過加深網絡深度,雖然一定程度上提升了訓練模型的識別性能,但是模型參數量增加過多,并且成效也越來越低。ResNet50相較于ResNet18在參數量上增加了13.87 MB,識別率只有2百分點、1百分點和1百分點左右的提升,而本文構建的RARNet相比于ResNet50以2.99M較少參數量的增加取得了2.68百分點、6.40百分點和6.06百分點識別率的提升,證明了本文方法的可行性。
從圖7和圖8中可以看出ResNet50、ResNet50+CBAM與RARNet模型在CK+數據集上的訓練過程中測試準確率和損失值的變化趨勢,三個模型在剛開始迭代訓練時準確率和損失值波動幅度較大,到最后都基本趨于平穩。ResNet50和原CBAM融合后雖然識別率相較于ResNet50有很大的提升,但是訓練過程中損失值和準確率波動較大。改進后的CBAM與殘差塊融合構建的RARNet在識別率最高,損失值也最小,并且迭代過程中損失值和準確率浮動較小,模型穩定性最好。因為加入改進后的注意力模塊增強了對通道特征重要度的學習,更好地擬合了不同維度特征的相關性,降低了不必要特征對模型訓練時造成的影響,減小了準確率和損失值的變化幅度,提升了模型的穩定性和對表情的識別性能。

圖7 不同模型的Acc變化趨勢

圖8 不同模型的Loss變化趨勢
RARNet在CK+和FER2013數據集上的各類表情識別率與其他方法對比如表3和表4所示。RARNet在CK+上對于害怕表情的判斷有所欠缺,對其余6種表情取得了較好的識別效果。在FER2013數據集上對高興、驚訝與厭惡這三種表情取得了較好的識別效果,在生氣、害怕和悲傷上存在一定的判別錯誤,因為這三種表情之間有相近之處,而中性與悲傷表情在面部特征變化較小,增加了識別難度。

表3 在CK+上與其他方法對比(%)

表4 在FER2013上與其他方法對比(%)
RARNet在FER2013數據集總識別率上比Khemakhem等[16]提出的在預處理階段增強的卷積神經網絡提升了 2.19%,比Liu等[17]提出的在表情識別訓練過程中加入課程學習策略高了0.67%;這兩種方法都在表情識別的不同階段增強了特征學習,而通過加入注意力的方式更加精細和有效。在CK+數據庫上比Gan等[18]同樣提出的在卷積層嵌入單池化的通道注意力模塊高了2.71%,這主要源于改進后CBAM在通道注意力權重的訓練中采用雙池化融合策略,增強關鍵性通道特征的表示,并且同時關注了通道注意力機制和空間注意力機制,提升模型對判別性特征的提取;比Zhang等[19]提出的將原圖與局部二值模式(Local Binary Pattern,LBP)特征圖分別經過兩個VGG網絡通道提取到的特征融合再分類網絡模型取得了更好的識別性能,該模型本質上是對圖像局部紋理特征的加深再分類,而RARNet通過注意力機制去增強圖像的關鍵特征,比傳統LBP特征更具表達力,與殘差網絡的融合則避免了網絡深度加深導致的退化問題。本文的方法與近年來其他文獻相比取得了更好的識別率,證明了改進后CBAM融入殘差結構中,注意力模塊和特征提取層先后串行連接方法的有效性。
實驗通過Grad-CAM[20]的方法對網絡模型最后一層卷積層中關注的面部表情特征圖進行可視化,并利用熱力圖的方式顯示出來,更加直觀表明了融入注意力機制的殘差網絡對關鍵特征的提取能力。通過對網絡模型中融入注意力前后的熱力圖的觀察,可以清楚地看到ResNet50與RARNet訓練保存的兩組的模型參數在識別不同的表情時所強調的特征信息。如圖9所示,通過對比可以看出ResNet50關注的是整個面部表情區域特征,通過注意力機制與殘差結構融合后構建的RARNet增強了對表情分類貢獻較大的特征區域,如眼睛、嘴巴等,提升了對判別性特征區域的學習,抑制了無用信息的獲取。
提出了一種融入注意力機制模塊的殘差網絡人臉表情識別方法,優化改進了注意力機制CBAM的通道注意力模塊,并與殘差學習模塊融合構建新型網絡模型RARNet,增強對表情圖像關鍵特征的辨識,加強網絡對局部判別性特征的提取能力,從而解決了現有神經網絡算法對人臉表情特征表達能力不夠,為提升識別效果而加深網絡深度導致參數量過大的問題,以較小參數量的增加有效提升了人臉表情識別的精度。該方法在FER2013這種低質量表情數據識別上還有很大的提升空間,下一步工作將進一步研究和改進注意力機制算法,在圖像預處理階段加入傳統特征提取和原圖融合以加深圖像特征,再利用融入注意力機制的神經網絡模型中訓練分類,在復雜場景下獲得更高的識別精度。