姜月武,張玉金,施建新
上海工程技術大學 電子電氣工程學院,上海 201620
表情是人們情緒變化的載體,通過表情狀態可以判斷人們的心情,傳遞交流中的情感信息。將情感賦能于機器已經成為人工智能領域的研究熱點。Ekman 在其發表的跨文化研究[1]中定義了六種人類基本表情情緒:生氣、厭惡、害怕、高興、傷心和驚訝。盡管文化和種族存在差異,但是這些表情都是人類共同的情感表達方式。
早期表情識別技術一般采用“手工特征提取+分類決策”的技術路線,識別性能主要依賴于特征的有效性。典型的特征包括局部二值模式(local binary pattern,LBP)[2]、Gabor 小波特征[3]、方向梯度直方圖(histograms of oriented gradient,HOG)[4]等。這些特征在實驗室數據集上能夠取得良好的性能,然而面對樣本復雜、場景多樣的表情數據集識別性能顯著下降。手工特征還易受光照、背景、噪聲等因素的影響導致算法的識別精度較低,模型的泛化能力不足。
近年來深度網絡在圖像識別問題上取得突破性進展,為表情識別研究提供了借鑒。深度卷積網絡對人臉的位置變化和尺度變化具有較強的魯棒性。文獻[5]使用卷積神經網絡(convolutional neural network,CNN)作為基礎網絡有效地解決了人臉表情識別中尺度不變性問題。Bargal 等[6]提出了集合最優表情識別網絡,通過串聯特征一維輸出層進行表情分類。Lv 等[7]利用級聯結構設計了新的人臉表情識別網絡,使用DBNs[8]檢測人臉表情區域,用堆疊式自動編碼器對這些面部單元進行分類。上述方法通過設計不同網絡結構、加深網絡層次等方法提高表情識別性能。然而,它們易受非表情內容的干擾,對類間差異較小的表情識別精度不高。
針對非表情內容干擾問題,Li 等[9]提出了一種基于眼部關鍵點的裁剪方法結合CNN 網絡進行表情分類,該方法使用固定關鍵點作為裁剪點,對于不同的人臉樣本關鍵點會發生位置變化,可能會造成表情信息的損失。Kim等[10]使用viola-jones人臉檢測器結合面部關鍵點消除背景因素影響。褚晶輝等[11]使用了面部區域截取方案通過截取眼睛、鼻子、嘴巴部位作為輸入來去除非表情內容,表情內容的全局特征會受到影響,造成表情信息損失。針對類間差異微小的表情(如生氣、傷心、害怕)分類,表情類別信息一般分布在局部區域,需要引導網絡對這些有區分力的局部特征進行提取。注意力機制借鑒了人類的注意力思維,通過加權關注圖像的局部細節信息,抑制無關信息。Jaderberg等[12]提出STN網絡使用多種空間變換作用于整個特征輸入,實現對關鍵區域特征的提取。Hu 等[13]提出了SE 模塊,該模塊在通道上進行注意權重分配,使網絡關注信息量較大的通道特征。Wang 等[14]對SENet 進行改進提出了一種有效通道注意力網絡ECA,通過局部信道交互和自適應選擇卷積核的方式實現網絡性能的提升。張愛梅等[15]通過ECA網絡結合分層雙線性池化構建深度網絡,學習具有強分辨能力的面部表情特征。STN網絡關注空間信息,缺少對通道上的刻畫。SENet、ECA僅關注了通道上的特征形態,對空間上的局部表情特征刻畫能力不足。
針對上述兩個問題,本文提出了結合面部關鍵點與權重分配殘差網絡的表情識別方法,本文的工作主要體現在以下兩方面:
(1)為了有效消除非表情內容的干擾,提高網絡學習表情特征的效率,提出了最大表情范圍裁剪方法,根據每個樣本的68 個關鍵點構造外接矩形,最大限度保留全局表情特征,有效避免了表情信息缺失。
(2)融合空間和通道上的權重分配機制,引導深度殘差網絡學習對表情具有鑒別力的局部特征。空間權重分配可引導網絡關注局部表情特征,通道權重分配主要關注表情特征形態,有效改善了類間差異微小的表情識別性能。
本文方法在CK+[16]和FER2013[17]數據集上進行驗證,實驗結果與近期提出的方法相比有一定的優越性。
本文提出的人臉表情識別算法主要由預處理和權重分配殘差網絡兩部分構成,算法流程如圖1所示。在預處理階段,進行最大表情范圍的獲取。使用旋轉、變換和翻折策略進行數據增強。在輸入深度網絡之前進行圖像的歸一化和標準化。將經過預處理的表情圖像輸入權重分配深度殘差網絡進行模型訓練。

圖1 本文算法流程Fig.1 Algorithm flow of this paper
背景因素、非表情內容、光照等都影響著深度網絡對表情特征的學習,本文使用面部關鍵點裁剪獲取最大表情范圍,使用直方圖均衡化、Z-score變換對圖像的亮度和對比度進行歸一化操作,使用數據增廣技術增強訓練樣本的多樣性。上述預處理可有效改善圖像質量、去除背景和噪聲干擾等,為深度網絡進行特征提取提供良好的數據基礎。
1.1.1 最大表情范圍
人類通過控制面部肌肉變化實現表情切換。如圖2所示,人臉表情的變化部位主要位于關鍵點所圍區域,該區域的表情信息最為豐富,本文將該區域定義為最大表情范圍(maximum expression range,MER)。關鍵點檢測是獲得最大表情范圍的關鍵一步。本文使用面部關鍵點裁剪獲取最大表情范圍,減小背景、前額、頭發等非表情內容影響。

圖2 表情范圍和關鍵點的位置Fig.2 Expression range and position of key points
級聯回歸樹是一種較為穩健的關鍵點檢測方法[18],使用兩層回歸建立數學模型以優化關鍵點坐標,模型經過訓練后可準確、快速地獲取面部關鍵點。令某一個樣本面部關鍵點記為:

其中,關鍵點坐標矩陣M是一個大小為68×2的二維數組,矩陣M的每一行表示其中一個面部關鍵點。本文在上下左右四個方向取最遠關鍵點構成外接矩形,即可將表情豐富的區域最大限度保留。具體地,分別取{xi} (i=1,2,…,68) 中的最大值xmax和最小值xmin,{yi} (i=1,2,…,68)中的最大值ymax和最小值ymin。由這些最值點可以組成四個坐標點a(xmin,ymin) 、b(xmax,ymin)、c(xmax,ymax)和d(xmin,ymax),則最大表情范圍S可表示為:

由式(1)、(2)和(3)可獲取最大表情范圍,圖3為最大表情范圍的計算流程圖。

圖3 最大表情范圍的計算流程Fig.3 Calculation process of maximum expression range
1.1.2 數據的標準化與增強
數據標準化使數據具有可比性,數據之間的相對關系轉換成標準模式,有利于網絡收斂。本文首先采用直方圖均衡化進行光照的標準化。直方圖均衡化是一種利用灰度變換自動調節圖像對比質量的方法,通過灰度級的概率密度函數求出灰度變換函數。變換函數T(r)與原圖像概率密度函數pr(r)之間的關系:

其中,T(r)要滿足0 ≤T(r)≤1。
由于直方圖均衡化會降低有用信號的對比度,接下來,本文使用Z-score 標準化來增強對比度。為了直觀地顯示圖像標準化后的效果,圖4給出了一幅人臉表情圖像經過直方圖均衡和Z-score 處理后的結果。由圖4(b)可以看出,直方圖均衡化增強了過亮或過暗的人臉表情細節。使用Z-score對直方圖均衡化后的表情圖像進行處理的結果如圖4(c)所示,表情圖像的細節和對比度得到進一步的增強。

圖4 圖像標準化Fig.4 Image normalization
本文通過數據增廣技術(圖像隨機翻折、旋轉等操作)對樣本進行擴充,增加訓練樣本的多樣性,增強網絡的泛化性。本文選取線上增廣技術在數據輸入模型前進行批量操作,該過程可以通過GPU進行加速處理。
本節主要介紹權重分配殘差網絡的結構,基礎網絡選取更易優化的殘差網絡[19]。殘差網絡可以有效緩解網絡性能衰減和梯度彌散問題,通過捷徑連接支路構建恒等映射形成殘差單元。對于一個堆積層結構,當輸入為x時,其學習到的特征記為H(x)。直接擬合H(x)比較困難,將問題轉化為學習一個殘差函數F(x)=H(x)-x,原始學習特征此時為F(x)+x。殘差單元通過恒等映射的方式在未引入額外參數和未增加計算量的情況下解決網絡性能退化問題。接下來,引入權重分配模塊引導網絡關注有益于表情分類的特征區域,抑制無關特征信息。
1.2.1 權重分配網絡
類間差異微小的表情類別(如害怕、傷心、生氣)表情特征通常聚集于局部區域,不僅需要關注有益于表情分類的特征形態還需要關注具體的局部特征。引入通道注意力機制與空間注意力機制[20]實現在通道和空間維度上的注意權重推斷,進而實現不同區域的權重分配(weight allocation mechanism,WAM)。權重分配機制有效挖掘對表情分類有意義的局部區域,實現局部特征學習強化,引導網絡利用聚合特征進行表情識別。
通道注意力機制在通道上實現權重分配,特征圖上每一個通道表示一個檢測器,通道注意力機制關注最有意義的特征是什么形態。輸入一個特征圖F∈RC×H×W(C為通道數,H為高度,W為寬度),通過使用平均池化和最大池化方法來進行特征信息聚合,最后得到平均池化后的特征圖Favg和最大池化后的特征圖Fmax。將得到的特征圖輸入到權重共享網絡,該共享網絡為有一個隱含層的感知機構成,輸出層的大小為1×1×C。將兩個新得到的特征圖相加經過Sigmod激活函數得到權重系數Mc∈RC×1×1,將權重系數和原始輸入特征相乘即得到基于通道注意力的新特征。具體計算方式如下:

其中,σ表示Sigmod 激活函數,W0和W1表示多層感知機的權重。
空間注意力機制在圖像空間上進行權重分配,利用特征間的關系構建空間注意力機制來尋找對于表情較有區分力的局部特征信息。輸入一個特征圖F∈RC×H×W,使用平均池化和最大池化生成兩個二維的特征圖Fasvg∈R1×H×W和Fmsax∈R1×H×W,將新生成的兩個二維特征圖連接后輸入到一個卷積核為7×7 的標準卷層,經過Sigmod 激活函數得到二維空間權重推斷系數Ms∈RH×W,與原特征相乘即得到基于空間注意力的新特征。Ms的計算方式如下:

其中,σ表示Sigmod激活函數,Conv7×7為卷積核為7×7的標準卷積層。
將通道注意力與空間注意力機制進行融合,構成權重分配模塊,實現通道和空間上的注意權重推斷。輸入特征F,經過通道注意加權后得到Fc,再將Fc傳入空間注意力機制加權后得到Fs,將新特征輸入到網絡中相乘獲得經過權重分配的特征Fc+s,權重分配結構如圖5 所示,經過權重分配后的特征計算方式如式(7)所示,其中?表示同位元素對應相乘。


圖5 權重分配網絡結構Fig.5 Weight allocation network structure
1.2.2 權重分配殘差網絡結構
深度殘差網絡通過殘差單元有效緩解梯度彌散和網絡性能衰減。本文以深度殘差網絡為基礎網絡,引入權重分配機制,實現通道和空間的注意權重分配。深度網絡的層次結構如圖6 表示。首先使用一個卷積層進行特征的初步提取,將特征輸入權重分配模塊得到權重分配系數。使用原始特征與權重系數進行同位元素對應相乘獲得經過權重分配的新特征。將新特征依次輸入到8個殘差模塊、2個全連接層中進行特征學習,在全連接層之后再次進行權重分配運算。最后接入softmax層進行分類,整個基礎網絡共19 個卷積層。殘差模塊包含2個卷積層、2個BN(batch normalization)層和2個Relu 層,網絡中使用兩種不同的殘差模塊(如圖7 中的殘差模塊結構1 和2)。殘差模塊結構2 在連接支路加入1×1卷積(步長為2,填充為1)與BN層以實現輸入輸出的尺寸統一。為了使網絡實現權重分配的同時保持殘差單元的完整性,將兩個權重分配模塊插入在第一層卷積輸出后和softmax 分類層之前。殘差網絡有效緩解網絡性能退化問題,權重分配模塊引導網絡尋找表情變化突出的特征區域,更好地區分類間差異小的表情類別。

圖6 權重分配殘差網絡結構Fig.6 Residual network structure of weight allocation

圖7 不同結構的殘差單元Fig.7 Residual units of different structures
本文實驗硬件平臺為臺式工作站,其配置如下:Ubuntu18.04系統、CPU主頻2.3 GHz的Intel Xeon Silver 4110 和NVIDIA RTX2080Ti 顯卡。實驗中保持了超參數的一致,迭代次數(epoch)均設為250 次,初始學習率設為0.01,在迭代50 次后學習率以0.9 倍進行衰減。使用SGD優化器,權重衰減系數為5E-4,動量設為0.9。
本文實驗使用CK+和FER2013 表情數據集。CK+是由CK數據集擴展而來,包含了123個對象的593個圖像序列。CK+數據集是在實驗室環境下獲取的表情數據,圖像采集環境相對較好。FER2013人臉表情數據集由35 886 張人臉表情圖片組成,其中訓練集28 708 張,驗證集和測試集各3 589 張,共包含7 種表情。與CK+數據集不同,FER2013數據集用中性類別取代了蔑視類別。FER2013數據集包含大量人臉遮擋圖像、低對比度圖像和非人臉圖像,其識別難度高于CK+數據集。
本節對所提算法的性能進行實驗評估。首先對本文構建的基礎網絡進行對比實驗,表1分別列舉了三種典 型 深 度 網 絡(AlexNet[21]、VGG-19[22]和Resnet[19])在CK+和FER2013數據集上的實驗結果,結果表明Resnet比其他兩種網絡具有更高的識別精度,故本文選取Resnet網絡作為基礎網絡。

表1 不同網絡在FER2013和CK+的準確率Table 1 Accuracy of different algorithms in FER2013
2.2.1 網絡結構的有效性
為了驗證權重分配網絡和最大表情范圍裁剪方法的有效性,實驗結果如表2 所示,其中Resnet 表示未加入任何模塊的基礎殘差網絡,MER 表示最大表情范圍機制、WAM 表示權重分配機制。四種網絡結構均在FER2013和CK+數據集上進行實驗,CK+數據集實驗使用十折(10-fold)交叉驗證方法。從表2可以看出,最大表情范圍裁剪和權重分配機制對兩個數據集的識別準確率都有一定提升。最大表情范圍獲取表情信息豐富的局部圖像作為輸入,使得網絡更有效地學習表情分類任務中的細微差異,提高識別準確率。權重分配機制則在空間和通道上進行注意權重的分配,引導網絡關注有益于表情分類的局部特征。結合權重分配網絡與最大表情范圍在FER2013和CK+數據集上實現了74.14%和98.99%的準確率相較于基礎網絡分別提高了4.02 和4.04個百分點,說明了本文所提的最大表情范圍和權重分配機制具有一定的有效性。

表2 不同網絡結構的對比Table 2 Comparison of different network structures
類間差異微小的表情類別(如害怕、傷心、生氣)是表情分類的難點,通過空間和通道上的注意權重分配,引導網絡關注局部細節特征,提高類間差異微小表情的識別準確率。類間差異小的表情識別性能的變化可以通過混淆矩陣展現。
圖8為不同網絡在FER2013數據集上的混淆矩陣,由圖8可看出:
(1)圖8(a)為基礎網絡的混淆矩陣,可發現生氣、害怕、傷心等容易造成相互間的誤判,識別準確率分別為63%、52%、63%。原因在于表情類間差異較小,表情信息接近易造成誤判。例如害怕誤判為傷心的概率達到了20%,傷心誤判為害怕的概率達到了12%,生氣誤判為傷心的概率達到15%。
(2)圖8(b)為本文算法的混淆矩陣,相較于基礎網絡,嵌入權重分配和最大表情范圍后生氣、害怕、傷心和中性的識別準確率分別提升4、5、7、7 個百分點。類間差異小的類別之間的誤判率也得到有效改善,害怕誤判為傷心的概率為14%,傷心誤判為害怕的概率為10%,生氣誤判為傷心的概率為12%。其余識別準確率均有小幅改善。該算法相較于基礎網絡(圖8(a))總體識別準確率提高4.02 個百分點,生氣、害怕、傷心、中性等類間差異小的表情識別性能得到有效改善。
(3)圖8(c)和(d)分別為Resnet-WAM與Resnet-MER的混淆矩陣,二者的總體識別率分別比Resnet高出2.02和2.73 個百分點。由混淆矩陣可以看出,Resnet-MER在害怕和中性識別準確率提高5 和7 個百分點,Resnet-WAM 在傷心和厭惡上分別提高2 和4 個百分點。分別嵌入最大表情范圍和權重分配都能有效地改善類間差異小的表情識別性能,提升總體識別準確率。

圖8 不同網絡在FER2013數據集上的混淆矩陣Fig.8 Confusion matrix of different networks on FER2013 dataset
圖9 為不同網絡在CK+數據集的混淆矩陣,由圖9可看出:
(1)從圖9的混淆矩陣可知快樂、驚訝、厭惡等類間差異較大的表情在每個網絡都保持較高的識別準確率,而生氣、傷心、害怕等類間差異較小的表情誤判率較高。圖9(b)為本文算法的混淆矩陣,該算法近一步提升生氣、傷心、害怕的準確率分別達到100%、99%、97%,相比基礎網絡(圖9(a))分別提高8、4、7 個百分點。整體的識別準確率相較于基礎網絡提升4.05 個百分點。說明本文算法對類內差異較小的表情具有良好識別性能。
(2)Resnet-WAM(圖9(c))、Resnet-MER(圖9(d))的識別率相較于基礎網絡分別提升1.01 和2.02 個百分點,使用最大表情范圍可以最大限度保留全局表情特征,有效避免表情信息缺失,提升表情識別準確率。在空間和通道上進行權重分配,引導網絡關注表情變化突出的局部區域,提升類間差異小的表情識別準確率。

圖9 不同網絡在CK+數據集上的混淆矩陣Fig.9 Confusion matrix of different networks in CK+ dataset
本文使用Grad-CAM[23]技術對權重分配模塊進行特征學習區域可視化,Grad-CAM 使用梯度來計算卷積層中空間位置的重要性,構建熱力圖直觀地展示卷積神經網絡學習到的特征,將模型的關注點通過熱力圖表現出來。圖10為加入權重分配機制網絡與基礎網絡的特征熱力圖。圖10第二行中的熱力覆蓋范圍相對集中于表情變化區域,而第三行中的熱力覆蓋范圍分散于整個圖像。可見權重分配機制有利于增強局部特征性能。圖10最后一列蔑視的變化區域在口部周圍,權重分配機制能很好地將特征權重分配到口部,將特征學習主要集中于口部周圍,而Resnet網絡的特征學習相對分散。因此權重分配機制可以很好地聚合對于表情分類有意義的特征,弱化其他特征。

圖10 可視化權重分配機制的特征學習Fig.10 Feature learning of visual weight allocation mechanism
2.2.2 與現有方法對比
為了說明本文算法在類間差異微小的表情類別的識別性能,表3列舉了本文算法與近期一些算法的實驗結果對比,可見本文算法相較于其他算法在類間差異微小的表情類別上有明顯的性能提升,使得整體表情識別準確率提高,驗證了本文方法的有效性。文獻[24]同樣使用注意力機制關注通道信息,忽略了空間上的局部信息。文獻[15]結合通道注意力和雙線性殘差網絡,使用深層網絡Resnet50作為基礎網絡,需要消耗更大的計算資源。可以總結出最大表情范圍裁剪使網絡聚焦于表情豐富區域,使用權重分配網絡可從空間和通道上對有利于表情分類的局部特征進行權重加強,兩種方法都有效提升了表情識別的準確率。

表3 本文算法與其他算法在CK+和FER2013數據集上的對比Table 3 Comparison between proposed algorithm and other methods on CK+ and FER2013 datasets
本文提出基于面部關鍵點的最大表情范圍提取方法,有效減少非表情內容影響。引入權重分配機制挖掘對分類有意義的區域,引導網絡更好地學習局部特征。本文算法在FER2013 和CK+上的實驗結果表明基于關鍵點的最大表情范圍裁剪和權重分配策略可以有效提升表情識別準確率。本文算法有效改善了類間差異較小表情的識別效果。但實驗中發現生氣、害怕、中性等表情的誤判率相較于其他類別仍然較高,高相似度表情識別有待進一步研究。FER2013 數據集為非實驗室數據集,圖像質量差數據環境復雜,多種方法在該數據集上的識別準確率較低。探索低質表情圖像的識別算法也是下一步需要研究的問題。