羅 巖,馮天波,邵 潔
1.上海電力大學 電子與信息工程學院,上海 201306 2.國家電網上海市電力公司 信息通信公司,上海 200000
人們可以通過面部表情理解一個人的情緒狀態(平靜、快樂、憤怒、悲傷、恐懼、厭惡、驚訝),這一領域的研究被稱為面部表情識別(facial expression recognition,FER)。具有面部表情識別能力的機器有很多應用,如人機交互[1]、心理健康分析[2]、疲勞駕駛檢測[3]等。傳統的人臉表情識別方法通常是在具有清晰的正面人臉、夸張的表情動作等特點的實驗室人臉圖像上進行的[4-5],但是當人臉表情本身含有不同形式的遮擋,如關鍵表情部位的遮擋(如嘴部和眼睛)、部分信息的遮擋、姿勢變化下的信息不足(如側臉和低頭)、不同的光照條件等,基于卷積神經網絡(convolutional neural networks,CNN)算法模型的性能往往很容易受到影響。為了解決這些問題,人們提出了各種方法來提高遮擋情況下的人臉表情識別精度[6-11],其中一種被驗證能有效提高識別效果的方法是注意力機制。注意力機制試圖模仿人類將注意力集中在圖像的關鍵位置,可以從關鍵部分提取特征以獲得重要信息。然而,由于現實世界中存在不斷變化的應用場景,如當今世界COVID-19疫情使得人們不得不在公共場合戴上口罩遮擋自己的口鼻,傳統方法如基于CNN網絡的野外表情識別仍然面臨挑戰,因此關于表情圖像特征的提取和識別方法還需要進一步改進。
最近幾個月來Transformer模型在計算機視覺任務中顯著成功,如ViT(vision transformer)[12]和DeiT(dataefficient image transformers)[13]等,受其啟發Transformer也被引入到表情識別任務中[14-15]。ViT[12]是第一個用純Transformer模型取代CNN模型并將其應用于圖像分類的研究。受ViT的啟發,CVT(convolutional visual transformers)[14]是第一個將Transformer模型用于表情識別的工作。CVT首先使用一個雙分支的ResNet18網絡來生成特征圖。接著通過ASF(attentional selective fusion)對特征圖進行融合,然后將其展平并投射到視覺token的序列中,最后使用多層編碼器進行分類。DeiT[13]通過向模型添加distillation token來調用知識蒸餾方法,基于此Li等人提出了MViT(mask vision transformer)[15]。它應用MGN(mask generation network)生成一個面具,可以過濾掉復雜的背景和人臉圖像的遮擋,同時提出了一個動態重標模塊,以糾正不正確的標簽。
然而,ViT和DeiT模型參數量較大,訓練時間較長,這使得Transformer模型的訓練比CNN模型的訓練更加困難且難以移植。為了解決減少計算量和提高遮擋條件下的表情識別之間的兩難問題,基于CSWin(crossshaped window transformer)[16]和注意力機制,本文提出了Attention-Transformer網絡。具體來說,通過CSWin主干網絡可以使模型擁有較好的局部注意力,同時提出的通道-空間注意力模塊(channel-spatial attention module,CSAM)使模型擁有較好的全局注意力,接著采用Sub-center ArcFace損失函數來進一步優化模型的識別能力。本文的貢獻如下:
(1)提出了基于注意力及視覺Transformer的模型(Attention-Transformer)來進行野外人臉表情識別。本文使用CSWin Transformer作為主干網絡來解決人臉表情識別任務中的遮擋問題。
(2)提出了一個通道-空間注意力模塊(CSAM),引導模型更加關注全局特征信息,同時使用Sub-center ArcFace損失函數來進一步優化識別效果。CSAM使用包含通道和空間的注意力機制模塊,能夠更好地提取全局特征信息;同時通過使用Sub-center ArcFace損失函數可以降低來自噪聲的影響。這樣的結構被證明是有效的。
(3)在RAF-DB和FERPlus等現有的野外FER數據集上進行了廣泛的實驗,證明了本文的Attention-Transformer可以達到最先進的識別精度。特別是,還在對應的口罩遮擋數據集上進行了模擬COVID-19環境的實驗,以表明所提出的方法對口罩遮擋條件下的識別效果是魯棒的。
本文提出了一個基于注意力及視覺Transformer的模型(Attention-Transformer)來解決人臉表情識別(FER)的遮擋問題。在模型中,CSWin Transformer被用作主干網絡,同時設計了一個通道-空間注意力模塊(CSAM)和一個Sub-center ArcFace損失函數,整體結構如圖1所示。輸入是224×224像素的RGB圖像,將其送入Stage1。隨后,將Stage2得到的特征圖放入通道-空間注意力模塊,并把得到的特征圖輸入到Stage3。從Stage4得到最終的預測向量,使用基于Sub-center ArcFace損失函數的分類器得到表達式分類。在下面的章節中,將首先介紹CSWin Transformer,然后給出所提出的通道-空間注意力模塊和Sub-center ArcFace損失函數的細節。

圖1 Attention-Transformer模型的整體結構Fig.1 Structure of Attention-Transformer model
本文是將CSWin Transformer[16]作為人臉表情識別任務主干網絡,此網絡具有十字形窗口的自注意力機制。它通過在水平和垂直兩個方向上的窗口分塊形成一個十字形窗口。對于水平方向來說,輸入X被劃分為不重疊的且具有相同寬度的sw水平條帶,即X i=[X1,X2,…,X M]∈R(sw×W)×C,其中每個包含sw×W個token。這里,sw是條帶的寬度,可以用來平衡模型的學習能力和計算復雜度。假設Transformer多頭注意力機制中第k個注意力頭的queries、keys和values的維度都是dk,那么水平方向上的注意力輸出結果H-At tent ion(X)可以作如下定義:

其中,W O∈RC×C是常用的投影矩陣,它將自注意力結果投射到目標輸出維度(默認設置為C)。由此,可以得出主干網絡中的CSWin Transformer Block計算方法:

其中,LN表示層歸一化(layer normalization),MLP表示多層感知器(multi-layer perception),X?l表示自注意力CSWin-Attention的輸出特征,X l表示多層感知器的輸出特征。
雖然使用CSWin Transformer主干網絡可以有效提取局部表情信息,但其中的自注意力機制會將輸入結果的特征圖分為步長較小的塊來處理,這會導致模型缺乏對于全局特征信息的學習能力,增強Transformer架構對于全局信息的注意力是處理人臉表情識別遮擋問題的關鍵解決方案。因此,模型引入了通道-空間注意力模塊(CSAM)以增強Transformer中Stage2之后的關鍵全局特征信息。為了實現有效的注意力,本文基于BAM(bottleneck attention module)[17]設計了通道-空間注意力模塊。CSAM沿著通道和空間依次計算輸入的注意力特征圖,并與原始特征圖加權得到結果。整體結構在圖1中展示,具體細節如圖2所示。

圖2 通道-空間注意力模塊Fig.2 Channel-spatial attention module
具體來說,將Stage2之后得到的特征圖作為輸入,即F=Fstage2∈RH′×W′×C′。隨后特征圖將分別進入兩個分離的路徑,即通道(channel)注意力模塊和空間(spatial)注意力模塊。用MC(F)∈RC′和MS(F)∈RH′×W′分別表示這兩個模塊的通道注意力特征和空間注意力特征,則MC(F)可以計算并表示如下:

其中,GAP表示全局平均池化層,即global average pooling,用來聚合每個通道的特征并得到通道向量,該向量對每個通道中的全局信息進行編碼。FC表示全連接層,即fully connected layer。而對于空間注意力分支的特征圖MS(F)來說,可以通過卷積來進行特征提取,其計算過程并表示如下:

其中,Conv表示卷積層操作,即convolutional layer,1×1和3×3分別表示卷積核大小為1和3。
隨后,需要將兩個分支注意力結合為全局注意力特征圖FCSAM。把兩個注意力MC(F)和MS(F)逐元素相加,經過GELU函數激活,可以通過如下計算得到:

其中,GEL U表示GELU激活函數。最終,將全局注意力特征圖FCSAM與原輸入特征逐元素相乘后,再與原輸入相加,得到輸出特征圖Ffinal:

其中?表示對應元素相乘。
ArcFace[18]一直是人臉相關任務中最先進的損失函數方法。在本研究中使用了Sub-center ArcFace[19],這是對ArcFace的最新改進,旨在更好地處理模型分類問題。Sub-center ArcFace為每個類設計了K個子中心,訓練中樣本只需要接近K個正向子中心中的任何一個,而不是只有一個正向中心。例如,表示開心happy的分類包含張開嘴露出舌頭的大笑,只露齒不露舌的笑和不露齒但嘴角上揚的微笑等不止一類開心的表情,訓練中樣本可以接近其中任意一個表情子類而不是只能夠向其中某一單獨子類聚集。因此,本文采用的子中心ArcFace損失函數鼓勵一個包含大部分干凈面孔的優勢子類和包含硬面孔的非優勢子類,既包含大部分易于模型分類的干凈表情樣本,同時那些對于模型分類來說模棱兩可、難以分類的表情樣本也可以得到更好地判別,這樣可以提高分類精度并提高全局特征的質量。
為每個表情分類設置一個K,基于x i∈R512×1上的嵌入特征和所有子中心W∈RN×K×512的歸一化步驟,通過矩陣乘法WTx i得到子類的相似度得分S∈RN×K。然后,對子類的相似度得分采用最大池化,得到類的相似度得分S′∈RN×1。所使用的Sub-center ArcFace損失函數可以表述為:

Attention-Transformer是在Windows 10操作系統下基于Python 3.6和Pytorch 1.7.0實現的。對于所有訓練情況,均使用圖像翻轉和圖像旋轉等數據增強方式來增加數據多樣性。輸入圖像的大小和批量大小(patch size)分別設置為224×224×3和2。本研究在單個NVIDIA GTX 3080 GPU顯卡上訓練模型。將在Image-Net數據集上預訓練過的CSWin-Tiny作為Attention-Transformer的主干網絡。在訓練期間,批量大小設置為32,使用動量為0.9和權重衰減1E-4的AdamW[20]優化器來優化模型以進行反向傳播。
使用兩個公開可用的表情識別數據集以及它們對應的兩個口罩遮擋數據集來評估模型的性能。
RAF-DB[21]:RAF-DB數據集包含30 000張從互聯網上下載并經過專業注釋的帶有基本或復合表情的面部圖像。在本文中,使用7種基本表情(平靜、快樂、驚訝、悲傷、憤怒、厭惡、恐懼)的圖像。這些圖像包含12 271張用于訓練的圖像和3 068張用于測試的圖像。
FERPlus[22]:FERPlus重新標記了原始FER2013數據集中錯誤標記的圖像并刪除了非人臉圖像。FERPlus數據集由25 045張訓練圖像、3 191張驗證圖像和3 137張測試圖像組成。每張圖像的大小為48×48像素。除了RAF-DB中7個基本表情之外,還包括了蔑視這第8個表情類別。一般選擇在多數投票的情況下確保所有樣本的準確性以進行效果評估。
口罩遮擋數據集:Wang等人[23]發布了有關如何為數據集中的面部圖像制作口罩的方法和代碼。由此,可以為上面的兩個數據集分別創建與之對應的口罩遮擋數據集來模擬COVID-19場景,包括Masked RAF-DB和Masked FERPlus。
野外數據集的主要挑戰是圖像本身中不同形式的遮擋和頭部姿勢,這些問題無疑增加了野外FER的難度,數據集樣本如圖3所示。

圖3 野外數據集及其對應的口罩遮擋數據集Fig.3 Datasets in wild and their masked datasets
本節將Attention-Transformer模型與在RAF-DB和FERPlus數據集上的近五年內最先進方法進行比較,這些方法可以分為基于CNN的模型和基于Transformer的模型兩類。
基于CNN的模型主要有如下方法:FsNet+TcNet[24]使用FsNet分割出圖像中與表情識別最相關的感興趣區域,隨后用基于深度可分離卷積的TcNet進行表情分類。PG-CNN(patch-gated convolutional neural network)[6]將面部劃分為不同的注意力塊,并使用patch-gate單元來預測每個patch的概率。在DLP-CNN(deep localitypreserving CNN)[21]中,通過添加LP Loss(local proserving loss),從而縮短樣本的類內距離,擴大樣本的類間距離,提高識別效果。在Li等人[7]的工作中,模型首先通過卷積層裁剪圖像中的注意力區域區域,然后計算特征圖中每個局部塊的重要性得分,并根據這些對相應的局部特征圖進行加權。RAN(regional attention network)[8]對圖像進行了劃分,為每個區域分配了注意力權重,并將每個局部區域特征圖與整體特征圖進行整合。在OADN(occlusion-adaptive deep network)網絡中[9],注意力權重是由以特征圖的空間位置為中心的高斯分布樣本產生的,而置信度分數是由外部landmark檢測器提供的。SCN(self-cure network)[10]通過計算圖像的注意力權重對其進行排名,分數低于閾值的圖像標簽被替換為由模型計算得來的新標簽。PyConv-Attention Network[25]將圖像按照區域采樣裁剪成多張子圖像,并輸入到金字塔卷積神經網絡進行多尺度特征提取,再將提取到的特征圖輸入到全局注意力模塊同時分配權重。基于Transformer的模型在之前均有提到,如CVT[14]和MViT[15]。與這些模型在RAF-DB數據集上的對比效果如表1所示。本文的模型不僅優于兩個表情Transformer,更優于之前的CNN網絡。

表1 在RAF-DB數據集上與最先進方法的結果比較Table 1 Performance comparison to state-of-the-art methods on RAF-DB dataset
對于FERPlus數據集,除了提到的方法之外,還包括LDR(learning discriminative representation)網絡[26],其首先通過瑞利損失來最小化類內距離和最大化類間距離,并引入一個權重來衡量給定樣本的不確定性。本文模型與這些方法的效果對比如表2所示。同樣的,Attention-Transformer模型表現得更加優秀。

表2 在FERPlus數據集上與最先進方法的結果比較Table 2 Performance comparison to state-of-the-art methods on FERPlus dataset
可以看出,在野外人臉表情識別上,基于Transformer的模型與基于CNN的模型相比,具有更高的準確率。在此情況下,與之前兩個表情識別Transformer模型相比,本文的Attention-Transformer模型均有更好的表現。在RAF-DB上具有更高的準確率88.80%,分別高于CVT的88.14%和MViT的88.62%。此外在FERPlus上的準確率為89.31%,同樣高于CVT的88.81%和MViT的89.22%。
在參數量方面的研究上,對比同樣以Transformer為主干網絡的模型,CVT模型由于使用ViT作為主干網絡,擁有高達5.180×107大小的參數量;MViT在研究論文中沒有給出具體參數量,這里使用了基于基線網絡DeiT-S的近似范圍,即MViT擁有超過2.200×107大小的參數量;本文所提出的Attention-Transformer模型擁有2.063×107大小的參數量,小于之前的表情識別Transformer模型。不同模型在參數量方面的結果比較如表3所示。準確率的提升加上參數量的減少,意味著訓練所需時間的減少,同時對訓練所需的硬件配置要求也相應降低,模型能夠更好地移植和應用。

表3 與最先進方法的參數量結果比較Table 3 Comparison with parameter results of state-of-the-art methods
使用Grad-CAM(gradient-weighted class activation mapping)[27]來研究模型的可視化結果。Grad-CAM可以突出顯示圖像中用于預測概念的重要像素區域。基線網絡Baseline(在ImageNet上預訓練的CSWin-Tiny)和Attention-Transformer模型的注意力加權激活圖如圖4所示。其中較深的顏色表示高度關注,而較淺的顏色表示模型對它的關注較少。圖4的第二行是Baseline在原始圖像上的性能結果。添加了CSAM,模型將專注于更大的區域和更多的人臉部分,如第三行所示。從結果圖像來看,Attention-Transformer模型可以更好地感知全局注意力信息。

圖4 在RAF-DB數據集上基線網絡與本文模型的熱力圖對比Fig.4 Comparison of activation maps captured with baseline and our model on RAF-DB dataset
為了驗證Attention-Transformer中每個模塊的有效性,在RAF-DB和FERPlus數據集上進行了消融實驗,如表4所示。具體來說,模型將在ImageNet數據集上預訓練的CSWin-Transformer-Tiny網絡作為實驗的基線網絡(Baseline),然后將通道-空間注意力模塊(CSAM)和ArcFace損失函數分別添加到基線網絡。實驗中均使用相同的訓練設置進行訓練。當通過通道-空間注意力模塊實現全局特征信息提取時,識別準確率在RAF-DB和FERPlus上分別比基線網絡提高了1.09個百分點和0.98個百分點。此外,使用Sub-center ArcFace損失函數能夠在RAF-DB和FERPlus上分別比基線網絡的準確度提高0.66個百分點和0.67個百分點。Attention-Transformer之所以能取得更好的表現,在于加強了對全局面部特征的關注以及使用了得到更好分類情況的損失函數,這兩種方法不僅有助于獲得面部特征的全局注意,而且可以很好地處理遮擋問題。

表4 在RAF-DB和FERPlus數據集上的消融實驗結果Table 4 Ablation experiment results on RAF-DB and FERPlus datesets
下一個需要進行的實驗是解決為什么本文選擇將CSAM放置在Stage2后面。基線網絡的各階段特征圖尺寸如下:Stage1后的特征為64×56×56,Stage2后的特征為128×28×28,Stage3后的特征為256×14×14,Stage4后的特征為512×7×7。對于CSAM來說,放置在不同階段的主要區別是特征圖所代表的全局信息以及維數不同。表5顯示了當CSAM放置在不同階段時模型得到的最終準確率,并在Stage2獲得了最好的結果。

表5 在RAF-DB數據集上把CSAM放置在不同Stage后面的最終準確率Table 5 Comparison of final accuracy putting CSAM after different stages on RAF-DB dataset
同時本節需要驗證CSWin Transformer相較于其他的Transformer主干模型而言,在野外表情識別任務上的優越性。為了將其與最近提出的Transformer主干網絡進行對比,本部分實驗首先將這些模型的tiny網絡經過ImageNet預訓練,然后在RAF-DB數據集上測試準確率。其中,LeViT Transformer[28]在DeiT的基礎上重新引入卷積操作,同時用Attention bias將位置信息集成到Transformer中;ResT Transformer[29]提出了一種采用深度卷積的多頭自注意力模塊,跨注意力頭維度進行投影交互,同時位置編碼被構建為空間注意力;Twins Transformer[30]提出了局部-全局空間可分離自注意力,對特征的空間維度進行局部分組計算各組的自注意力,再從全局對分組注意力結果進行融合。這三個主干網絡主要引入卷積操作并改變了自注意力模塊,但準確率均低于87%。Swin Transformer[31]提出了一種包含滑窗操作的窗口自注意力結構,包括不重疊的local window和重疊的cross-window。這樣將注意力計算限制在一個窗口中,不僅能更好地計算局部特征,而且能節省計算量。從表6的實驗結果可以看出,這樣的窗口注意力結構在野外表情識別任務上,明顯優于之前三個沒有窗口注意力的Transformer網絡,并將準確率提升到87%以上。本文采用的CSWin Transformer[16]主干網絡則更進一步,使用更加專注局部特征的十字型窗口自注意力,在水平與垂直方向上計算注意力,使得CSWin比Swin的準確率提高了0.27個百分點,在表情識別上擁有更好的效果,且明顯優于其他類型的Transformer。

表6 在RAF-DB數據集上不同Transformer主干網絡的準確率Table 6 Accuracy of different Transformer backbones on RAF-DB dataset
對于本文1.2節的通道-空間注意力模塊(CSAM),其中兩個注意力通道的排列方式為,讓輸入分別進入兩個并列的通道后求和。對于兩個注意力的關系,本部分將測試其他幾種并展示在表7中。表7的第一行便是本文采用的方法;第二行是把輸入分別進入兩個并列的通道后,將兩個結果的對應元素進行相乘操作,結果發現這樣的方法并沒有對模型準確率有較大提升效果;第三行是將輸入先通過通道注意力進行計算,然后把得到的特征值放入空間注意力計算得到最后的結果,從準確率上發現這樣的方法提高了模型識別效果,但是不如本文采用方法的提升結果好且降低了0.23個百分點;第四行與第三行方法類似,但調換了順序,將輸入依次通過空間注意力和通道注意力得到特征值,從結果上不如本文采用的注意力關系。

表7 在RAF-DB數據集上不同注意力關系的準確率Table 7 Accuracy of different attention relationship on RAF-DB dataset
為了驗證模型對遮擋情況下表情識別的有效性,本文需要將模型放置在遮擋面積更大、訓練情況更加困難的圖像數據上進行測試。同時考慮到當前為了預防COVID-19疾病的傳播,人們必須在公共場合戴上口罩,因此本部分實驗所進行的研究是評估當口鼻區域被口罩遮擋時模型的表現,這樣不僅滿足了擴大遮擋面積實驗的目的,而且更具有滿足當下實際應用的意義。針對表情識別任務,臉上的口罩進一步增加了面部關鍵位置信息的遮擋,尤其是嘴部,這對以前的模型來說是一個困難的挑戰。本文通過在人臉表情圖像的口鼻區域添加口罩的方式來模擬COVID-19場景,并由此制作了Masked RAF-DB和Masked FERPlus口罩遮擋數據集。本部分實驗一共對比了五種模型的效果,如表8所示,其中ResNet50[32]是計算機視覺識別任務中的經典通用卷積主干網絡,具有代表性;基線網絡Baseline是在ImageNet上預訓練的CSWin-Transformer主干網絡,可與卷積網絡進行對比;RAN[8]通過劃分圖像并計算注意力,可以很好地處理遮擋問題,本部分實驗將其作為與本文模型的對比;本文的Attention-Transformer模型訓練分為兩種情況,一種是將模型在ImageNet數據集上預訓練,另一種是在原本的RAF-DB數據集,即無口罩(Non-masked)條件下的人臉表情圖像上預訓練。以Masked RAF-DB數據集為例進行對比,第一行的結果顯示ResNet50對于包含強遮擋的圖像識別準確率下降明顯,而第二行的Baseline在準確率上有明顯的提升,這說明基于Transformer的模型在強遮擋情況下比基于CNN的模型更有優勢。第三行的RAN模型相比主干網絡表現出較好的識別效果。第四行是本文的Attention-Transformer模型,比RAN網絡的準確率提高了0.64個百分點,證明本文方法更加有效。第五行是在原RAF-DB數據集(即Non-masked)上預訓練的Attention-Transformer,其準確率比第四行在ImageNet上預訓練的Attention-Transformer提高了1.07個百分點。顯然,通過提前將模型在非遮擋人臉圖像上進行預訓練,可以獲得更好的結果,因為這樣能夠使模型獲得更多關于原始未遮擋人臉中的表情信息來彌補訓練時相關信息的缺失。

表8 在口罩遮擋下RAF-DB和FERPlus數據集的準確率Table 8 Accuracy on masked RAF-DB and FERPlus datasets
對于口罩遮擋情況下模型的可視化結果如圖5所示。對本部分實驗來說,因為口罩遮擋的原因,嘴部區域的表情特征受到嚴重影響,所以眼睛、眉毛周圍的面部信息顯得尤為重要。從圖可以看出,基線網絡(Baseline)對于遮擋情況下的識別會出現誤區,注意力區域偶爾落在眼睛下方或者口罩與人臉的連接處,這使得模型不能夠很好地分析表情特征。而在本文的Attention-Transformer中,由于通道-空間注意力模塊對于注意力的調整,模型的注意力區域更加向眼部中心方位集中,同時擴大了對于中心周圍的注意力面積,使得模型獲得了比基線網絡更加集中、更加有效且更加廣泛的表情信息,提高了模型的識別效果。

圖5 在RAF-DB口罩遮擋數據集上的可視化結果Fig.5 Visualization on masked RAF-DB dataset
本文以CSWin Transformer作為主干網絡,來訓練在遮擋下進行面部表情識別的網絡,提出了通道-空間注意力模塊(CSAM),使網絡能夠較好地提取到全局特征信息。隨后,進一步使用Sub-center ArcFace損失函數來提高模型的分類效果。實驗證明在兩個公開的野外面部表情數據集RAF-DB和FERPlus上以及它們對應的兩個口罩遮擋數據集上,模型識別準確率分別為88.80%、89.31%和76.12%、72.28%,提高了表情的識別精度,可以達到state-of-the-art的效果,有效抑制了遮擋對表情識別的影響。在后續工作中,將進一步在注意力機制和損失函數等方面探索更有效且更適合野外人臉表情識別的方法,繼續對模型結構進行優化,提高模型對于表情識別的準確率和穩定性。