張本文,高瑞瑋,喬少杰
(1.四川民族學院 理工學院, 四川 康定 626001; 2.成都信息工程大學 軟件工程學院, 成都 610225)
面部表情識別是情感計算領域的主要挑戰之一,在娛樂、營銷、零售、心理學和其他領域具有廣泛應用。情感計算型應用程序可能會改變人機交互方式[1],但構建情感計算型系統仍是挑戰。面部表情識別是情感計算型系統中非常重要的研究方向,因為大部分人的互動都是通過非語言方式傳達。目前,許多研究人員使用FER(facial expression recognition)來分析人的情緒、行為和心理等因素,FER在人機交互、心理健康評估和智能交通系統領域獲得了廣泛關注[2-3]。此外,基于FER的多媒體交互軟件能夠實時識別人的面部表情,進而評估用戶的反饋情況。在視頻圖像中使用FER的一個主要問題是如何從序列圖像涉及的面部表情中捕捉有區分度的時空特征。FER不僅可用于獲取情緒信息,也可用于人際交往[4-5]。
對于面部表情識別而言,自動分析表情類別是挑戰,因為表情類別通常較多且面部表情數據集較小。人們可以很容易地識別人的面部表情,但自動化識別高分辨率圖像中的面部表情是一個復雜的問題[6]。面部表情識別方法包括:傳統識別方法,如基于特征提取規則的識別方法、基于深度學習的識別方法等;基于特征提取規則的識別方法,包括基于外觀的特征提取技術和基于幾何的特征提取技術;基于外觀的特征提取技術,突出了面部表情的紋理如皺紋,可以采用局部二進制模式、Gabor小波濾波器[7]以及基于直方圖的梯度濾波器來提取紋理特征;基于幾何的特征提取技術,能提取鼻子等面部的關鍵部位,采用主動外觀模型來跟蹤檢測面部點位。然而,基于外觀的特征提取技術和基于幾何的特征提取技術均存在不足之處,如依賴人工設計規則、不能較好地處理復雜多變的大數據集、無法自動捕捉深層語義特征、識別效率和準確性較低等。
基于深度學習的識別方法能夠自動進行人臉檢測、特征提取和表情分類,識別性能較高,但仍然存在許多挑戰。例如,對于面部遮擋部分,現有方法無法很好地進行處理,會導致識別性能下降。面部遮擋主要指人們使用如眼鏡、圍巾和口罩等面部遮蔽物體遮擋了重要面部部位。此外,FER需要大規模的面部表情數據集[8],但面部表情數據集由于隱私問題難以收集。若面部表情數據集規模較小,基于深度學習的識別模型可能陷入過擬合,導致識別新的圖像集中面部表情的性能較低。
針對上述問題,提出一種新型融合注意力機制的遮擋面部表情識別框架——FER-AM(facial expression recognition framework based on attention mechanism)。設計了一種局部特征網絡,將整個面部劃分為多個局部區域,進而提取多個局部特征;提出了一種全局特征網絡,從整個面部區域提取全局特征,獲取面部各區域的互補信息。FER-AM使用注意力機制解決面部遮擋問題,既能識別人的面部表情中被遮擋的部位,也能將注意力集中在面部的無遮擋部位。
葉楊等[11]定義了7種面部表情類別:憤怒、厭惡、恐懼、快樂、悲傷、驚訝和中性。面部動作編碼系統定義了跨越面部表情類別范圍的面部肌肉運動。研究人員試圖設計算法來識別面部表情類別[9-12]。傳統的面部表情識別方法分為3個步驟:人臉檢測、特征提取和表情分類。由于人臉位置和人臉大小被視為先驗知識,因此在大多數工作中人臉檢測并沒有被深入地研究。特征提取是識別面部表情的關鍵步驟,機器學習技術主要用于表情分類。特征提取技術主要分為基于外觀的特征提取方法和基于幾何的特征提取方法。外觀特征主要指從面部表情圖像中提取表示紋理的特征,研究幾何特征時需要指明面部部位的精確位置。值得注意的是,這兩類特征被證明具有互補作用[13]。另一個研究方向是在處理圖像序列時將時間維度整合到外觀和幾何特征中[14-15]。
在圖像序列中使用雙重隨機森林分類器進行面部表情識別[16],主要使用AAM(active appearance model)測量面部運動,并結合LK(Lucas-Kanade)光流跟蹤器估計面部位移。
用于識別具有遮擋區域的面部表情代表性識別算法主要使用Gabor過濾器提取人臉的部分區域[17]。Hu等[18]使用SURF(speeded up robust features)框架進行面部表情識別,通過定位面部水平對稱區域來檢測遮擋區域。Mlakar等[19]使用HOG (histogram of oriented gradient)、GA(geneticalgorithm)和SVM(support vector machines)算法在Cohn Kanade和JAFFE表情數據集上進行實驗,所提方法的識別準確率高于其他基于視頻流的面部表情識別方法。
Ren等[20]提出了基于FCM(fuzzyc-means)聚類算法的AAM-SIFT(active appearance model- scale-invariant feature transform)表情識別框架。AAM模板提取人臉面部圖像的特征點,基于AAM和SIFT(scale-invariant feature transform)的梯度方向直方圖來識別面部特征,進而分為多組不同的面部特征,并使用FCM獲得自適應權重,最后由SVM進行面部表情分類。在BU-3DFE表情數據集上對基于FCM聚類算法的AAM-SIFT表情識別方法進行評估,結果表明AAM-SIFT能夠提高面部表情識別準確率。Sun等[21]使用BAEs(binarized auto-encoders)進行面部表情識別。在CK+表情數據集上進行實驗,與其他傳統表情識別方法相比,基于BAEs的識別方法的準確率更高。Chao等[22]提出es-LBP(expression-specific local binary pattern)方法,主要使用CR-LPP(class-regularized locality preserving projection)技術實現面部表情分類。CR-LPP技術加強了面部特征和表情類別之間的關聯性。Aly等[23]提出MSPTL (multi-stageprogressive transfer learning)方法進行面部表情識別。
面部表情識別主要包括面部圖像預處理、面部表情特征提取和面部表情分類3個步驟。其中,面部表情特征提取是最重要的步驟,關鍵的面部特征提取能夠提高識別準確性。FER-AM能夠識別遮擋部分的面部表情,其架構如圖1所示。

圖1 FER-AM架構
FER-AM包括圖像預處理、面部特征提取、面部特征降維和表情分類,其中特征提取階段包括VGG-Net(visual geometry group network)[24]、局部特征網絡以及全局特征網絡。值得注意的是,局部特征網絡和全局特征網絡均使用注意力機制網絡。
將人臉圖像的像素調整為(128,128),對圖像進行去噪處理和歸一化處理。圖像預處理是面部表情識別的重要步驟。調整圖像像素放大或縮小圖像。即使低分辨率的面部圖像也能被轉換為高分辨率的圖像。圖像可能會存在偽影或噪聲,其中圖像噪聲由圖像顏色或亮度隨機變化而產生。在FER-AM框架中,使用中值濾波器去除圖像中的噪聲。由于人臉圖像的眩光會影響圖像的對比度,故需要對圖像進行歸一化處理。在FER-AM框架中,使用GCN(global contrast normalization)來解決圖像對比度較低的問題。
定義1GCN的定義見式(1)所示。

特征提取是FER-AM的主要階段,能夠對面部遮擋部分進行有效處理。特征提取將圖像的像素信息轉變為顏色、形狀和紋理信息,并降低特征維度。
FER-AM的特征提取分為3個階段,流程如圖2所示。第一階段中采用卷積神經網絡VGG-Net對圖像進行處理,進而獲得全局特征圖和不同的局部補丁特征圖;第二階段中局部特征網絡將每個局部補丁特征圖編碼為局部隱藏向量,全局特征網絡將全局特征圖編碼為全局隱藏向量,局部特征網絡和全局特征網絡均包含注意力機制網絡;第三階段中2個全連接層和Softmax激活函數層依次對局部隱藏向量和全局隱藏向量進行處理。Softmax函數主要用于表情分類。FER-AM在特征提取的同時考慮了局部特征和全局特征。

圖2 FER-AM的特征提取流程
定義2局部特征網絡:處理局部補丁特征圖,主要包括區域分解和遮擋感知。局部特征網絡包含2個卷積層、1個注意力機制網絡和1個全連接層。
定位面部表情對應的面部部位對于面部表情識別非常重要。將面部劃分為多個局部區域,準確定位遮擋部分[24]。如圖3所示,24個面部標志點覆蓋整個面部區域,以面部標志點為中心,獲得24個局部區域。FER-AM中的卷積神經網絡VGG-Net使用卷積核進行卷積操作,能夠產生24個局部補丁。

圖3 局部特征網絡的工作機制示意圖

性質1局部特征網絡能夠自動學習如何為不同的局部補丁分配不同的重要程度權重,對遮擋部分分配較低權重,對無遮擋部分和關鍵面部區域分配較高權重,進而學會對不同局部特征按不同的重要性程度進行提取。
性質2注意力機制網絡輸出的重要程度權重Ai使用AMO(animal migration optimization)算法進行優化,提高FER-AM的識別性能。
然而,局部特征網絡可能會忽略人臉圖像中的互補信息,因此需要全局特征網絡對全局特征圖進行處理,從整個面部提取全局特征,最終提高FER-AM對遮擋部分的面部表情的識別性能。全局特征網絡能夠從整個面部區域集成各個面部特征,自動學習面部特征的多樣性和差異性(圖2最下部分所示)。
定義3全局特征網絡:全局特征圖由卷積神經網絡VGG-Net處理面部圖像后生成,全局特征圖的維度為512*28*28。全局特征網絡包含1個卷積核維度為512×28×28的卷積層、2個卷積核維度為512×14×14的卷積層、1個平均池化層、1個注意力機制網絡以及1個全連接層。
性質3全局特征網絡的注意力機制網絡能夠自動估計整個面部區域對應的全局特征圖的重要性程度。全局特征網絡將全局特征圖作為輸入,進而輸出全局隱藏向量。
綜上,FER-AM特征提取階段能夠學習面部的局部關鍵特征和整個面部的綜合特征。
FER-AM的最后階段為表情分類。由于特征選擇影響表情分類的復雜性和有效性,且過多的特征會增加模型訓練的復雜性,因此需要進行特征降維,即選擇特征子集來提高表情分類器的性能。特征降維需要提取具有區分度的關鍵特征。FER-AM使用LDA(linear discriminant analysis)進行特征降維,光照條件的變化并不會影響LDA的性能[25]。
FER-AM主要使用Softmax函數對7種表情類別分別輸出對應的概率預測值,概率預測值的范圍屬于(0,1),7個概率預測值的和為1。其中,最大的概率預測值對應的表情類別表示FER-AM識別出的表情類別。
FER-AM中各神經網絡的參數需要通過面部表情訓練集不斷優化,最小化Softmax函數的損失值,最終獲得FER-AM中神經網絡的最優參數。
評估FER-AM的識別性能的表情數據集包括RAF-DB、AffectNet、CK+以及FED-RO表情數據集。RAF-DB表情數據集包含30 000張真實世界的人臉圖像,所有圖像由人工標注好正確的表情類別。RAF-DB中18 000張面部圖像用于訓練FER-AM,12 000張面部圖像用于測試FER-AM的識別性能。AffectNet表情數據集包含 400 000 張人臉表情圖像,CK+數據集包含593個關于表情的圖像序列,所有圖像序列均由123名志愿者提供,并為少量面部表情圖像增加了不同尺寸的遮擋區域,進而合成具有遮擋部分的面部表情圖像。FED-RO表情數據集包含400張具有遮擋區域的面部圖像,遮擋面部的物體包括面包、啤酒、墻壁、頭發、手、帽子、柜子、電腦和書籍等。FED-RO表情數據集中憤怒、厭惡、恐懼、快樂、悲傷、驚訝和中性表情對應的面部圖像數量分別為53、51、58、59、66、63和50。
實驗軟件環境:Pytorch框架,初始學習率設置為0.001,批處理大小為128。實驗硬件環境:GPU為NVIDIA RTX 3090,CPU為英特爾至強W-2245,內存64 G。對比算法為主流算法,包括基于SVM的面部表情識別方法、基于VGG-Net16的面部表情識別方法和DLP-CNN(deep locality preserving convolutional neural network)[26]。
在RAF-DB表情數據集上進行大量實驗,結果如圖4所示。實驗結果表明,FER-AM的識別準確率高于基于SVM的面部表情識別方法、基于VGG-Net16的面部表情識別方法和DLP-CNN方法。相比其他面部表情識別方法,能更精確地判斷真實世界中人臉的表情類別。

圖4 基于RAF-DB數據集的識別準確率
在AffectNet表情數據集上進行大量實驗,結果如圖5所示。可以看出,FER-AM的識別準確率為87.7%,高于其他面部表情識別方法,相比基于SVM的面部表情識別方法、基于VGG-Net16的面部表情識別方法和DLP-CNN方法,其識別準確率分別高出10.1%、7.3%和5.7%。

圖5 基于AffectNet數據集的識別準確率
在CK+表情數據集上進行大量實驗,結果如圖6所示。可以看出,FER-AM的識別準確率最高,但識別準確率與其他面部表情識別方法的差距較小。這表明在CK+表情數據集上,其他面部表情識別方法也能獲得較好的識別性能。主要原因在于,CK+表情數據集中具有遮擋部分的人臉表情圖像數量較少,大多數人臉表情圖像易于識別。

圖6 基于CK+數據集的識別準確率
如圖7所示,在FED-RO表情數據集上進行大量實驗,結果如圖5所示。可以看出,FER-AM的識別準確率可以達到88.1%,高于其他表情數據集上FER-AM的識別準確率。

圖7 基于FED-RO數據集的識別準確率
在4種不同代表性數據集上,FER-AM均能取得最佳識別性能,主要原因在于:
1) FER-AM應用局部特征網絡提取面部表情的局部關鍵特征,設計全局特征網絡學習整個面部中的互補信息,識別的特征更加完整,因此識別準確率均高于其他算法;
2) 采用注意力機制能夠有效處理面部遮擋部分,如眼鏡、口罩和圍巾等,準確捕捉面部未遮擋部分的特征,因此在有遮擋數據集上識別準確率更好。
在RAF-DB表情數據集中具有遮擋區域的人臉表情圖像集上評估FER-AM的識別性能,實驗結果如圖8所示。可以看出,相比其他面部表情識別方法,FER-AM的識別準確率依然最高,但低于在整體RAF-DB表情數據集上的識別性能。這主要是因為,通常情況下FER-AM識別無遮擋區域的人臉表情的準確率更高。

圖8 RAF-DB數據集中具有遮擋的表情圖像集識別準確率
在AffectNet表情數據集中具有遮擋區域的人臉表情圖像集評估實驗結果如圖9所示。可以看出,FER-AM的識別準確率為67.6%,高于其他面部表情識別方法,且相比基于SVM的面部表情識別方法、基于VGG-Net16的面部表情識別方法和DLP-CNN方法,其識別準確率分別高出17.3%、9.2%和4.4%。造成這種情況的主要原因是FER-AM中局部特征網絡能夠更加準確地提取局部特征(如遮擋區域特征)。結合注意力機制網絡進行權重分配,以更加準確地識別有遮擋區域的面部表情類別。

圖9 基于AffectNet數據集中具有遮擋的表情圖像集識別準確率
為了探究局部特征網絡和全局特征網絡對有遮擋區域的面部表情識別的影響,將無局部特征網絡(FER-AM-no-local feature network)和無全局特征網絡(FER-AM-no-global feature network)分別作為對照模型進行實驗,評估結果如圖10、圖11所示。

圖10 不同表情數據集局部特征網絡有效性評估結果

圖11 不同表情數據集全局特征網絡有效性評估結果
如圖12、13所示,在AffectNet數據集上,FER-AM-no-Local feature network和FER-AM-no-global feature network的識別準確率分別為60.7%和65.1%,均低于FER-AM的識別準確率。值得注意的是,FER-AM-no-local feature network的識別準確率低于圖9中DLP-CNN的識別準確率,而FER-AM-no-local feature network高于圖9中DLP-CNN的識別準確率,主要原因見性質4。

圖12 基于有遮擋區域的表情數據集的局部特征網絡有效性評估結果

圖13 基于有遮擋區域的表情數據集的全局特征網絡有效性評估結果
性質4相比全局特征網絡,局部特征網絡能有效處理面部中的遮擋區域,盡可能消除遮擋區域對面部表情識別的阻礙,提升FER-AM的識別性能。
為進一步探究FER-AM的魯棒性,將RAF-DB數據集作為FER-AM、VGG-Net和DLP-CNN的訓練集,使用AffectNet數據集評估FER-AM、VGG-Net和DLP-CNN的識別性能。其中,AffectNet-0表示AffectNet中無遮擋區域的面部表情數據集,AffectNet-1表示AffectNet中具有遮擋區域的面部表情數據集。
為了驗證算法的魯棒性,將AffectNet數據集作為訓練集,RAF-DB數據集作為測試集,再進行1組實驗,其中RAF-DB-0表示RAF-DB中無遮擋區域的面部表情數據集,RAF-DB-1表示RAF-DB中具有遮擋區域的面部表情數據集。
在AffectNet-1數據集上,FER-AM的識別準確率為63.6%,略低于圖9中FER-AM的識別準確率,VGG-Net和DLP-CNN的識別準確率為47.1%和52.3%,均與圖9中VGG-Net和DLP-CNN的識別準確率相差較大(圖14)。實驗結果表明:對于訓練集和測試集不是來自同一數據集的情況,FER-AM的識別性能并不會產生較大波動,FER-AM能夠跨數據集進行面部表情識別。如圖15所示,在RAF-DB-1數據集上,FER-AM的識別準確率分別為82.1%,略高于圖8中FER-AM的識別準確率,VGG-Net和DLP-CNN的識別準確率略低于圖8中VGG-Net和DLP-CNN。相比RAF-DB作為訓練集、AffectNet作為測試集而言,AffectNet作為訓練集能夠略微提升FER-AM的識別性能,且不會使得VGG-Net和DLP-CNN的識別性能產生較大波動,主要原因在于AffectNet數據集中包含更為復雜的面部表情圖像(如面部圖像中具有較多不同類型遮擋物),進而證明了FER-AM的魯棒性。

圖14 RAF-DB表情數據集作為訓練集的模型魯棒性評估結果

圖15 AffectNet表情數據集作為訓練集的模型魯棒性評估結果
FER-AM能夠更加準確地識別有遮擋區域的人臉表情。在特征提取階段,FER-AM使用局部特征網絡和全局特征網絡同時提取面部的局部區域特征和全局特征,并結合注意力機制網絡對不同特征分配不同的權重,使得FER-AM能更關注面部的關鍵特征,最終有效解決面部遮擋問題。在多個表情數據集上的大量實驗結果表明,FER-AM能夠更準確地識別面部表情類別,對于有遮擋區域的人臉表情圖像,相比其他面部表情識別方法,FER-AM的識別性能明顯優于當前其他算法。下一步將繼續提高對有遮擋區域的面部表情圖像的識別準確率,如考慮優化FER-AM的局部特征網絡和全局特征網絡的結構、使用更復雜的面部表情圖像數據集等。