石敏
(山東科技大學計算機科學與工程學院,山東青島 266590)
人類表達自身情感有諸多方式,包括面部表情、語言、身體姿態等,其中較為重要的方式就是面部表情,其可以直觀準確地反映人們在某一時刻的情緒和心理狀態。目前,人臉表情識別已經成為計算機視覺領域的一個研究熱點,而且應用廣泛,涉及人機交互、心理學、醫療等多個領域。
傳統人臉表情識別通過特征提取和分類兩個步驟完成,其中表情特征提取主要依賴人工設計提取方法,例如幾何特征和局部二值模式(Local Binary Pattern,LBP)等非機器學習算法;表情分類多采用支持向量機和貝葉斯分類等機器學習算法,但計算效率低,且魯棒性不強,效果不甚理想。
與傳統表情識別方法相比,深度學習方法的識別效率和效果均有所提升。例如其代表性算法深度卷積神經網絡(Deep Convolution Neural Network,DCNN)將面部表情的特征提取與分類融為一體,使用大量數據集進行訓練,通過反向傳播學習網絡參數,最終得到一個同時具備特征提取與分類功能的模型。因此,越來越多的研究者開始采用深度學習方法解決表情識別問題。例如,Liliana等通過提取人臉幾何特征進行表情識別,在CK+數據集上取得了93.67%的識別準確率,但沒有考慮表情的全局特征對識別任務的重要影響;Verma等設計了一種人臉檢測算法Viola-Jones,通過Gabor提取多個方向和尺度的特征,并輸入到神經網絡中進行表情識別,在JAFFE數據集上取得了較好的魯棒性;Kim等使用LBP提取人臉紋理特征,基于幾何特征的網絡學習動作單元地標變化完成表情識別,但沒有考慮全局特征的重要性;Luan等提出一種基于深度殘差網絡(Residual Network,ResNet)和Unetlike架構的殘差掩蔽網絡,使用注意力機制學習面部重要特征,取得了較好的識別效果;Murtaza等使用面部表情六邊形模型檢測面部表情,該模型提供了六邊形6個邊上6種面部表情的一般表示,但僅從形態學的角度提取到的特征十分單一。以上文獻從不同角度研究了影響識別任務的重要特征,但沒有從多角度綜合考慮重要特征對識別任務的影響。若要獲得更加精準的分類效果,對多方面特征進行融合是一種有效解決方法。
針對表情特征提取困難且效果單一,以及易受光照條件影響等問題,本文提出一種將ResNet與幾何特征相融合的表情識別方法,主要研究內容包括:①基于ResNet進行改進,使用連續小卷積代替大卷積,并在各個殘差塊中嵌入卷積注意模塊以增加模型的表現能力。將相同的兩個改進殘差網絡作為分支網絡,將同一張人臉表情圖片分別輸入這兩個分支網絡中,以加和平均的方式將各自提取到的特征進行聚合,實現特征互補,最終得到人臉全局特征;②使用Dlib定位人臉關鍵點,從中提取幾何特征,通過主成分分析法進行去除冗余信息,與全局特征進行融合,作為最終表情分類特征。
ResNet是一種將殘差模塊的相同拓撲結構以跳躍連接的方式進行堆疊而構建的深度網絡結構,其能有效解決隨著網絡深度的增加而導致的梯度消失和爆炸等問題,本文將其作為基礎網絡結構提取人臉表情的全局特征。由于本文選擇的用于網絡模型訓練的數據集較小,在較深的網絡上容易產生過擬合,導致模型泛化能力弱,因此選用網絡結構簡單、參數量少、訓練速度快的ResNet-18,結構如圖1所示。對其進行改進,保留原網絡中的9個卷積層和池化層,在保證感受野的同時,為使網模型學習到更細節的特征,將網絡的7×7卷積替換成5×5和3×3等連續小卷積,以更好地適配表情識別任務,改進的ResNet網絡結構如圖2所示。

Fig.1 ResNet-18 network structure圖1 ResNet-18網絡結構

Fig.2 Improved ResNet-18 network structure圖2 改進的ResNet-18網絡結構
注意力機制是從眾多信息中選擇對當前任務更為關鍵的信息,從而提高視覺信息處理效率和準確性的一種方法。本文目標是通過引入注意力機制進一步增加網絡模型的表現能力,以關注重要特征,抑制不必要特征。
作為SENet(Squeeze-and-Excitation Networks)的擴展,卷積注意力模塊(Convolutional Block Attention Module,CBAM)被提出,其包括兩個子模塊,分別為通道注意力模塊和空間注意力模塊。對于神經網絡產生的特征圖,卷積注意力模塊會沿著通道和空間依次推斷注意力圖并與特征圖相乘以進行自適應特征細化。以一個殘差模塊為例,將CBAM塊嵌入其中,得到的殘差塊如圖3所示。

Fig.3 Residual moduleembedded in CBAM圖3嵌入CBAM的殘差模塊
圖3中,F表示卷積層產生的特征圖,M(F)表示生成的通道注意力圖,F′
表示F與M(F)通道注意力圖相乘后產生的特征圖,M(F′
)表示生成的空間注意力圖,F″
表示F′
與M(F′
)相乘后產生的特征圖。計算公式如下:



為提取更加充分的全局特征,使網絡具有更好的識別效果,將相同的兩個改進后的ResNet作為分支網絡,分別對輸入的人臉表情圖片提取全局特征。由于兩個分支對于識別任務的重要性是等同的,因此可通過加和平均實現全局特征的互補,從而得到更詳細的人臉全局特征。提取全局特征的網絡結構如圖4所示。

Fig.4 Network structureextracting global features圖4 提取全局特征的網絡結構
表情是人臉特征變化的直接反映,不同表情下人臉特征的幾何形態不盡相同,圖5為某人7種表情下的人臉幾何形態。
可以看出,不同表情下眼睛的張開程度、眉毛是否上揚、嘴巴是否閉合、鼻子是否向上抬起等情況是不同的,且不受光照條件的影響。與自然表情相比,其余表情的主要特征如表1所示。
使用Dlib在表情圖像上標注人臉關鍵點,序號為0~67,共68個,見圖6。本文根據關鍵點構建了26個特征刻畫人臉表情,具體如表2所示。

Fig.5 Face geometry under different expressions圖5 不同表情下的人臉幾何形態

Table1 Main features of other kinds of expressions compared with natural expressions表1 與自然表情相比下其余各類表情的主要特征

Fig.6 Using Dlib to mark facekey points圖6 使用Dlib標注人臉關鍵點
表2中,K
={k
,k
,...,k
}為68個關鍵點;k
=(r
,c
)∈K
表示其中第i
個關鍵點;r
和c
分別為點k
的橫坐標和縱坐標;d
(k
,k
)(k
,k
∈K
)表示兩個點之間的距離;∠(k
,k
,k
)(k
,k
,k
∈K
)表示3個點間的角度;c
(k
,k
)為k
和k
的中心坐標;square
(k
,...,k
)表示以k
為起點,k
為終點,按標記的關鍵點次序圍成區域的面積。計算公式如下:
V
=(v
,v
,...v
)。部分特征計算的是面積,數據較大,而數據范圍大的特征往往會起決定性作用,數據范圍小的特征其作用可能會被忽略。為消除特征之間數據范圍差異帶來的影響,對每個特征同等看待,需要對特征進行標準化處理。所提取特征中,眼睛高度與眼睛面積之間、嘴巴面積與鼻峰、兩嘴角組成的夾角之間是從不同角度表達的語義,信息重合度較高,針對這種現象,采用主成分分析法去冗余,在保證方差貢獻率為95%的情況下,對不同數據集上提取的幾何特征進行數據壓縮,壓縮后的特征表示為W
=(w
,w
,...w
),這樣既減少了模型參數量,也發揮了幾何特征對表情識別的作用。
Table2 Facial expression features and semantics表2 人臉表情特征及語義
通過ResNet提取人臉表情的全局特征,采用人臉關鍵點計算并提取人臉幾何特征,將二者進行拼接,作為最終表情特征進行分類,完成表情識別。人臉表情識別的整體網絡模型流程如圖7所示。

Fig.7 Face expression recognition model flow based on ResNet and geometric features圖7 基于ResNet與幾何特征的人臉表情識別模型流程
結合ResNet與幾何特征的人臉表情識別算法具體步驟為:
輸入:表情圖像訓練集和測試集,以及表情所屬類別。
輸出:人臉表情識別模型。
數據預處理:人臉檢測、數據增強、歸一化。
初始化模型參數。
參數設置。//表4
for i=1 to N do:
for xi∈X:
提取全局特征。//公式(1)-(3)
定位人臉關鍵點計算并提取幾何特征。//公式(4)-(6)
全局特征與幾何特征進行融合,通過全連接分類。
計算前向傳播梯度。
使用隨機梯度下降優化網絡參數。
end
The Extended Cohn-Kanade Dataset(CK+)數據集是在Cohn-Kanade Dataset的基礎上擴展而來,包含123個參與人員生成的593張人臉序列圖片,并且所有圖片都是從自然表情到峰值表情。該數據集共包含8類表情,分別為中性、憤怒、蔑視、厭惡、恐懼、快樂、悲傷、驚訝。本文選取7種基本表情進行實驗,不包含蔑視表情。
The Japanese Female Facial Expression Database(JAFFE)是由Lyons等建立的一個日本女性表情數據集,共213張圖像,包含10名日本女性在同一背景下各自做出的7種表情,包括中性、憤怒、厭惡、恐懼、高興、悲傷、驚訝。圖像尺寸相同,僅光照強度有所差異。
使用CK+和JAFFE數據集評估所提模型的表情識別性能,兩個數據集樣例如圖8所示,數據集中每個表情類別的數量分布如表3所示。

Table 3 CK+,JAFFE dataset expression catagory distribution表3 CK+、JAFFE數據集表情類別數量分布

Fig.8 Samplediagram of CK+and JAFFE datasets圖8 CK+和JAFFE數據集樣例圖
由于表情識別重點關注的是人臉,為減少數據集中人臉之外區域對識別任務的影響,使用OpenCV進行人臉檢測。考慮到所選數據集的數據量有限,采用數據增強方法擴充訓練數據量,以提高模型的泛化能力。對數據集進行水平翻轉,在-6~6角度范圍內隨機旋轉,并采用在原圖像的10%范圍內隨機放縮等方法進行兩倍的數據增強。所有圖像尺寸縮放至224×224的固定大小,轉化為灰度圖。通過計算均值和方差對圖片進行歸一化處理,作為本文網絡模型的輸入數據。
實驗硬件配置為Intel(R)Core(TM)i7-7700HQCPU,內存16G,主頻2.80GHz,1060顯卡1塊,深度學習框架為Pytorch0.4.1。訓練模型的實驗參數設置如表4所示。模型的訓練與測試采用十折交叉驗證,即將預處理后的數據集分成10份,每次取其中的9份作為訓練集用于訓練模型,1份作為測試集用于測試模型,最終模型的檢測精度為10次測試結果取平均。

Table 4 Settings of model parameters表4 模型參數設置
4.4.1 與其他識別方法比較
將本文方法與一些常用識別方法進行比較,其中GNN(Graph Neural Network)是將圖卷積神經網絡用于特征提取和表情識別分類的方法;FTMS(Fourier Transform Mass Spectrometry)是一種融合變換多級特征與改進加權投票支持向量機的表情識別方法;IACNN(Identityaware Convolutional Neural Network)通 過一種身份敏感的對比損失從身份標簽中學習相關信息,以實現身份不變的表達識別;IL-CNN(Island Loss Convolutional Neural Network)通過孤島損失增強深度學習特征的判別能力;RPCA(Robust Principal Component Analysis)使用改進的主成分分析法從圖像中去除噪聲,并將其轉換為較低維的子空間后再提取特征進行識別;WMDNN(Weight Mixture Deep Neural Network)是一種基于雙通道人臉圖像的加權混合深度神經網絡表情識別方法。以上方法在CK+和JAFFE兩個數據集上的實驗結果如表5和表6所示,可以看出,本文方法在兩個數據集上的平均識別準確率分別為98.05%和95.29%,優于其他識別方法。

Table 5 Accuracy comparison of different recognition methods on CK+dataset表5 CK+數據集上不同識別方法準確率比較

Table 6 Accuracy comparison of different recognition methods on JAFFE dataset表6 JAFFE數據集上不同識別方法準確率比較
4.4.2 本文模型性能分析
在CK+和JAFFE數據集上,對10次實驗得到的10組混淆矩陣求平均得到最終混淆矩陣,結果如表7和表8所示。通過混淆矩陣可以發現,對于CK+數據集,自然和憤怒表情很容易與悲傷混淆;而對于JAFFE數據庫,厭惡和憤怒容易被混淆,高興、悲傷與憤怒容易被混淆。
采用本文模型在CK+和JAFFE數據集上進行實驗,并進行性能分析,結果如表9和表10所示。表中精確率(Accuracy)表示每一類表情中被預測為該類且實際也為該類表情的準確率;召回率(Recall)表示每一類表情中被預測正確的準確率;F1值為精確率與召回率的調和平均。結果表明,對于CK+數據庫,高興表情的精度、召回率和F1值最高;而對于JAFFE數據庫,自然和驚訝表情的精度、召回率和F1值最高。

Table 7 Confusion matrix based on improved model(CK+dataset)表7 基于改進模型的混淆矩陣(CK+數據集)

Table 8 Confusion matrix based on improved model(JAFFE dataset)表8 基于改進模型的混淆矩陣(JAFFE數據集)

Table9 Each index of the proposed model(CK+dataset)表9 本文模型各項指標(CK+數據集)

Table10 Each index of theproposed model(JAFFE dataset)表10 本文模型各項指標(JAFFE+數據集)
本文模型在CK+和JAFFE數據集上的訓練與驗證精度曲線圖和損失曲線圖如圖9所示。可以看出,隨著訓練次數的增加,驗證精度和驗證損失均隨著訓練精度和訓練損失值相對平緩地變化,整個過程中并未出現欠擬合和過擬合現象,表明了本文模型具有較好的泛化能力和學習能力。這是由于本文選用的ResNet隨著網絡深度的增加,淺層特征沒有被忽略,而是與深層特征融合在一起,而且加入注意力機制使得模型可以學習到對表情分類更加重要的特征。此外,通過對人臉關鍵點進行分析,可獲得表達表情語義的幾何特征,其不受光照和圖片傾斜的影響。將二者融合得到能夠代表各類表情的關鍵特征信息,因而獲得了較好的表情識別效果。

Fig.9 Changing trend of precision and loss in the process of training and verification on CK+,JAFFE datasets圖9 CK+、JAFFE數據集上訓練和驗證過程中精度與損失變化趨勢
針對表情識別任務,本文提出一種將ResNet與幾何特征相融合的表情識別方法。該方法分別通過殘差網絡和人臉關鍵點提取全局特征和幾何特征,將二者進行融合,在兩個公共數據集上均取得了較好的識別效果,驗證了該方法的有效性。但本文僅使用公共數據集進行實驗,沒有將該方法應用于實際場景中,今后可嘗試在真實場景下對其性能進行研究,或將該方法應用到視頻中進行實時表情識別。