朱文球,李永勝,黃史記,陽昊彤
(湖南工業大學 計算機學院,湖南 株洲 412007)
相對于普通表情,微表情是一種持續時間短并且動作幅度小的表情變化。微表情是人們在試圖掩蓋內在情緒時產生的一種自發性表情,是一種既無法偽造也無法抑制的表情[1-4]。1966年,Haggard 等發現了一種快速且不易被人眼所察覺的面部表情,并首次提出了微表情的概念[2]。起初這種微小且短暫的面部變化并沒有引起其他同行研究人員的注意。直至1969年,P.Ekman 等[5]在研究抑郁癥患者的一段錄像時,發現處于微笑表情表現的病人會出現短暫的痛苦表情,該患者用微笑等積極性表情來掩飾內心的焦慮[3]。和宏表情不同的是,微表情的持續時間僅為1/25~1/5 s,因此僅憑人眼對微表情進行識別并不能滿足精確辨別的需要,因而使用現代人工智能手段識別微表情是非常有必要的。
T.Pfister 等[6]利用三維正交平面局部二值(local binary patterns from three orthogonal planes,LBPTOP)算法,將特征提取方式由XY方向擴展到XY、XT和YT組成的3 個正交平面上,即將以往的靜態特征提取拓展到隨時間信息變化的動態特征提取。Peng M.等[7]提出了一種深度學習的自動摳圖(ATNet)方法,即利用ResNet10 從頂點幀中提取出微表情空間信息,再利用長短期記憶網絡(long short-term memory,LSTM)從相鄰幀中提取出微表情時間信息,并且在特征融合后進行識別。Liu J.等[8]提出了利用原始灰度圖訓練空間注意力模型SAIN_GRAY,但是該模型并沒有考慮圖像間的序列相關性。Quang N.V.等[9]利用膠囊網絡(CapsuleNet)進行了微表情識別,其首先提取出微表情的頂點幀,接著把頂點幀輸入膠囊網絡中提取空間信息,最后分類輸出,這種方式可以比較有效地提取出空間信息,但是忽略了微表情的時間相關性。
面部表情編碼系統(facial action coding system,FACS)是P.Ekman 等[5]在1976年提出的。微表情有兩種分類標準:基于情緒的分類和基于面部動作編碼系統的分類[10]。FACS 依據解剖學按區域將人臉劃分為44 個運動單元(action unit,AU),每個動作單元表示一個特定的面部局部動作,如動作單元1表示眉毛內側上揚(inner brow raiser),而動作單元5 表示拉動上嘴唇向上運動(upper lip raiser)等。人臉面部有42 塊肌肉,豐富的表情變化是由多種肌肉共同作用的結果。有些面部肌肉可以受意識控制,被稱為“隨意肌”;還有一些面部肌肉不受意識控制,被稱為“不隨意肌”。微表情的產生通常是由一個或多個運動單元(AU)共同作用的結果,如代表高興的微表情是由AU16 和AU12 共同作用的結果,其中AU16 表示下嘴唇向下拉動,AU12 表示嘴角上揚。FACS 是微表情識別的重要依據,是對眉毛、臉頰與嘴角等面部關鍵點特征的運動記錄。
為了解決微表情識別中的持續時間短、動作強度低等缺點,本文采用基于帶有注意力機制的卷積神經網絡(convolution neural network with attention mechanism,ACNN)的改進算法。ACNN 是在卷積神經網絡的基礎上添加了注意力網絡,使得ACNN模型在微表情識別中不僅可以提取整個面部的特征,還可以專注于表情的局部細節變化,從而提取出更細微的面部特征。課題組基于ACNN 算法,并對其進行了改進,即增加了局部注意力網絡、全局注意力網絡,以及雙向長短期記憶網絡(bi-directional long short-term memory,Bi-LSTM),以適用微表情視頻序列的識別。CNN 具有提取出微表情抽象特征的能力,帶有局部注意力網絡的ACNN 用于提取微表情變化中關鍵局部單元的運動信息,而帶有全局注意力網絡的ACNN 可以提取全局的變化信息。本文中將局部ACNN 和全局ACNN 相結合,期望改進后的ACNN 模型具有既關注全局又兼顧細節的能力。
普通的卷積神經網絡以及全連接層都有一個共同的特點,即在處理具有連續性的序列時都不能“記憶”時序間的相關信息。循環神經網絡(recurrent neural network,RNN)[11]新增了一個可以保存狀態信息的隱藏層,這個隱藏層包括了序列輸入的某些歷史信息,并隨著輸入序列的增加不斷自我更新。然而普通循環神經網絡最大的缺點,是隨著訓練規模與層數的增大很容易產生長期依賴問題(long-term dependencies problem),即在對較長序列學習時容易產生梯度消失和梯度爆炸等問題。為了解決循環神經網絡的上述問題,20世紀90年代初,Hochreiter 等提出了長短期記憶網絡(LSTM)[12]。LSTM 中每一個單元塊包括輸入門(input gate)、遺忘門(forget gate)和輸出門(output gate)。其中,輸入門用來決定當前時刻的輸入數據有多少可以保存到本狀態單元;遺忘門用來表示上一時刻的狀態單元有多少可以保存到本狀態單元;輸出門控制當前狀態單元有多少可以用來輸出。雙向長短期記憶網絡(Bi-LSTM)在單向LSTM 中增加反向傳播層,使得LSTM 模型不僅可以利用歷史序列信息還可以利用未來的信息。Bi-LSTM 相對于LSTM 可以更好地提取出微表情中的特征信息與序列信息。
本文提出了一種基于帶有注意力機制的卷積神經網絡(ACNN)和雙向長短期記憶網絡(Bi-LSTM)相結合的神經網絡結構。為了實現對微表情較小幅度的動作進行精準地捕捉,本文對傳統的ACNN 框架進行了改進。改進后的ACNN 框架會對面部多個微表情區域塊提取出不同的特征信息,同時除了微表情區域塊的特征提取,也增加了對全局信息的處理。改進后的模型架構如圖1所示。

圖1 基于ACNN 和Bi-LSTM 的微表情識別模型Fig.1 Micro-expression recognition model based on ACNN and Bi-LSTM.
改進后的模型中,網絡首先將預處理后的微表情特征向量通過帶有預訓練權重的VGG16[13]模型進行遷移學習,并從中提取出基本面部特征,再將每一幀提取出的面部特征分別經過局部識別塊注意力卷積神經網絡(block recognition based convolution neural network with attention mechanism,BR-ACNN) 與全局注意力卷積神經網絡(global recognition based convolution neural network with attention mechanism,GR-ACNN)提取出整體與局部信息;接著,把提取出的整體與局部信息進行融合,并通過Bi-LSTM 提取出序列的相關信息,最后通過3 層全連接層進行分類輸出。
對于全局和局部特征的提取,本文引入了兩種不同的ACNN,即局部識別塊注意力卷積神經網絡(BR-ACNN)和全局注意力卷積神經網絡(GRACNN)。如圖1所示,BR-ACNN 為圖中虛線框內上半部分,GR-ACNN 為圖中虛線框內下半部分。
由于微表情面部變化的幅度較小,很難被有效識別,故本實驗采用面部關鍵區域塊注意力的識別方法,即在要識別的面部特征中增加微表情關鍵代表性區域的識別,以及對應的注意力網絡。詳細實驗方法描述如下。
1)確定微表情識別點。首先,使用Dlib[14]方法提取出68 個面部關鍵點(如圖2a);其次在68 個面部關鍵點的基礎上經過轉換,成為24 個微表情識別點,識別點位置覆蓋臉頰、嘴巴、鼻子、眼睛、眉毛等處。轉換過程如下,首先從68 個面部關鍵點中選取16 個覆蓋嘴巴、鼻子、眼睛、眉毛的識別點,68 個面部關鍵點(如圖2a)中的提取序號為:19、22、23、26、39、37、44、46、28、30、49、51、53、55、59、57。最終生成的微表情識別點(如圖2b)序號為:1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16。其次,對于眼睛、眉毛以及臉頰部分,由于沒有直接的關鍵點覆蓋,本文通過關鍵點的中點坐標進行生成。左眼、左眉毛與左臉頰部分從68 個面部關鍵點(如圖2a)中選取(20,38)、(41,42)、(18,59)點對的中點坐標作為微表情識別點;右眼、右眉毛與右臉頰部分從68 個面部關鍵點中選取(25,45)、(47,48)、(27,57)點對的中點坐標作為微表情識別點。最終生成的識別點(如圖2b)序號為17、19、18、20、21、22。最后,對于左右嘴角部分,本文從68 個面部關鍵點(如圖2a)中選取49、55 兩個關鍵點,然后分別根據這兩個點的坐標選擇兩個嘴角的相對偏移點,最終得到識別點的坐標。最終生成的左右嘴角識別點(如圖2b)序號為:23、24。式(1)(2)分別是左右嘴角識別點的計算方式。

式中:xleft、yleft為序號為49 關鍵點的橫、縱軸坐標;
xright、yright為序號為55 關鍵點的橫、縱軸坐標;
x23、y23分別為序號為23 識別點的橫、縱軸坐標;
x24、y24分別為序號為24 識別點的橫、縱軸坐標。
最終得到了24 個微表情識別點(圖2b),重新選取的24 個微表情識別點在實驗中將會生成以識別點為中心的24 個6×6 的識別塊。為了提高模型的魯棒性、增大識別塊的感受野,識別塊將會作用在經過VGG16 遷移學習處理后的512×28×28 特征向量上,從而得到24 個識別塊,每個識別塊大小為512×6×6。

圖2 面部關鍵點及其處理后的微表情識別點位置圖Fig.2 Location map of facial key points with their processed micro-expression recognition points
2)注意力機制算法。帶有注意力機制的局部識別塊卷積神經網絡(BR-ACNN)如圖1虛線框內上半部分所示。在BR-ACNN 中,經過裁剪后得到的24 個局部識別塊分別經過一個全連接層和一個輸出為權重標量的普通注意力網絡,最后得到24 個帶權特征向量。
在注意力網絡中(圖1虛線框上半部分),假設ci表示第i個識別塊的特征向量,則可利用式(3)計算第i個識別塊的注意力權重,利用式(4)計算第i個識別塊提取后且未加權的特征,利用式(5)計算第i個識別塊帶有注意力權重的特征向量。這樣,經過計算后,便可得到所有識別塊的帶權特征向量。

式(3)~(5)中:pi為第i個識別塊的注意力權重;
ci為第i個識別塊的特征向量;
φ(·)為注意力網絡中的操作;
τ(·)為對輸入特征向量的特征學習;
ai為第i個識別塊帶有注意力權重的特征向量。
BR-ACNN 具有學習人臉面部特征細微變化的能力,然而完成微表情動作有時涉及面部各個部位的相互配合。在特征識別中融合全局特征,有望提高微表情的識別效果,所以不僅需要提取面部區塊的特征,還需要提取全局的特征。
全局注意力卷積神經網絡(GR-ACNN)的詳細結構如圖1虛線框內下半部分所示,其輸入特征向量大小為512×28×28。首先,本文將輸入的全局特征向量通過VGG16 網絡的conv4_2 層到conv5_2 層,得到輸出大小為512×14×14 的特征向量;其次,將大小為512×14×14 的特征向量,分別經過一個全連接層和一個輸出為權重標量的注意力網絡;最后,輸出帶權重的全局特征向量。
RC-ACNN 和RG-ACNN 可以提取出微表情某一幀局部和整體的信息,然而微表情視頻幀之間在連續時間內是動態變化的,因此還需要提取微表情時間上的變化信息。長短期記憶網絡(LSTM)是一種為了克服傳統循環神經網絡(RNN)中的長期依賴問題而設計出來的新結構。而Bi-LSTM 是在LSTM 的基礎上增加反向層,使得新的網絡結構不僅能夠利用已經輸入的歷史信息能力,還具有捕獲未來的可用信息的能力。
雙向循環神經網絡的結構如圖3所示,圖中w為學習權重。

圖3 雙向循環神經網絡結構圖Fig.3 Structure diagram of bidirectional recurrent neural network
如圖3所示,雙向長短期記憶網絡(Bi-LSTM)結構把雙向循環神經網絡每個節點換成LSTM 單元。定義Bi-LSTM 網絡模型輸入特征序列為,前項傳播中隱藏層變量序列為,反向傳播中隱藏層變量序列為,定義Bi-LSTM 模型輸出序列為,可得出以下公式:

式(6)~(8)中:S(·)為激活函數;
w為Bi-LSTM 的權重;
b為偏置項。
對每個部分使用LSTM 單元進行計算,LSTM單元的網絡結構如圖4所示。
LSTM 的輸入是經過BR-ACNN 和GR-ACNN 模型從幀序列中提取并進行拼接操作后的空間特征值,本文采用單層雙向的LSTM 結構,其中包含一個256個節點的隱藏層。為了增加模型網絡節點的魯棒性,減少神經元之間復雜的共適應關系,在雙向LSTM隱藏層和全連接層之間增加了Dropout 層,以一定概率隨機屏蔽神經元。
實驗選用中國科學院心理研究所傅小蘭團隊所建立的CSAME II 數據集[15]。CSAME II 微表情數據集采用200 幀/s 的高速攝像頭,每幀大小為280×340 像素。CSAME II 微表情數據集有255 個樣本,數據集中參與者的平均年齡為22 歲,被采集者總數為24 個。該數據集包括被采集者每個樣本對應的微表情標簽,并分別帶有起始幀、頂點幀和結束幀視頻序列。標簽包括壓抑、厭惡、高興、驚訝、害怕、傷心及其他分類(repression,disgust,happiness,surprise,fear,sadness,others)。本文將CSAME II 數據集劃分為消極、積極、驚訝3 類,劃分結果如表1所示。

表1 數據集劃分情況Table 1 Data set division
本研究首先通過時域插值模型(temporal interpolation model,TIM)[16]將微表情數據集處理成固定10 幀的輸入序列,并通過雙線性插值[17]將視頻幀歸一化為224×224 像素。接下來使用Dlib[18]裁剪對齊,并提取出68 個面部關鍵點,在對面部關鍵點進行實驗分析后,本文選取其中的24 個微表情面部運動識別點,并由24 個識別點生成24 個大小為6×6 的識別塊。最后,把經過預處理的視頻幀和每一幀的識別塊放入模型訓練。
由于微表情數據集的數量較少,為了保證實驗的準確性,本文選用5 折交叉驗證,即把訓練集分為5等份,每次訓練選取其中1 份作為驗證集,其余4 份作為測試集,依次類推,循環5 次,直至所有數據都做過訓練集和驗證集。
本文采用了未加權F1值UF1(unweightedF1-score),未加權平均召回率UAR(unweighted average recall),以及準確率Acc(accuracy)的評價指標。未加權F1值的計算如式(9)所示,未加權平均召回率的計算如式(10)所示,準確率的計算如式(11)所示。

式(9)~(11)中:TPi、FPi、FNi分別為第i個類別中真正例、假正例、假負例的數量;
C為類別數;
Ni為第i個樣本的數量;
TP為所有種類中真正例的數量;
FP為所有種類中假正例的數量。
訓練使用Adam 優化器,學習率為0.000 16,迭代次數epoch 設置為100,訓練batch_size 設置為16。因為微表情是小數據集,容易過擬合,為了提高模型的魯棒性與泛化能力,本文對模型參數取正則化的L2 范數,并在損失函數中加上λ倍的L2參數范數,經過多次實驗,結果表明λ設置為0.01 時模型效果最好。圖5為5 折交叉驗證的平均損失曲線,圖6為5 折交叉驗證的平均準確率曲線,橫坐標為迭代的epoch 次數,縱坐標為準確率。

圖5 5 折交叉驗證的損失曲線Fig.5 5-fold cross-validation loss curves

圖6 5 折交叉驗證的準確率曲線Fig.6 5-fold cross-validation accuracy curves
5 折交叉驗證結果的具體準確率數據如表2所示。

表2 驗證訓練的準確率數據Table 2 Training accuracy results %
表2所示實驗結果顯示,5 折交叉驗證的平均準確率為69.04%,UF1為0.638 2,UAR為0.675 0。最終的混淆矩陣如圖7所示,預測結果在“消極”附近分布比較多,并且準確率較高,這主要是由數據集分布的不平衡性導致的。因為CASME II 數據集在采集中“積極”的微表情比較難觸發,所以數據集標簽為“消極”的數目遠大于標簽為“積極”的數目,這才導致數據集分布不平衡,從而影響訓練精度。

圖7 混淆矩陣圖Fig.7 Confusion matrix diagram
不同算法的識別效果對比如表3所示。

表3 不同算法識別效果對比Table 3 Comparison of recognition effects of different algorithms
表3中的數據表明,本文改進的算法模型相對于以往的識別算法,其精度有了相對的提高。其中相對OFFApexNet 模型,改進算法的UF1提高了0.028 1,UAR提高了0.096 9;相對ATNet 模型,改進算法的UF1提高了0.007 2,UAR提高了0.032 0。這主要是因為:OFFApexNet 模型依靠起始幀和頂點幀的光流變化進行微表情識別,但忽略了其他連續幀中有用的微表情信息。ATNet 模型利用ResNet 網絡從頂點幀中提取出微表情的空間信息,利用LSTM 從相鄰幀中提取出微表情的時間信息,并在特征融合后進行識別。ATNet 模型雖然考慮到連續幀中空間與時間信息,但是在空間特征提取中并沒有兼顧微表情面部不同部位關注度的差異性。
微表情具有持續時間短、動作幅度小等特點,因此微表情數據集較小,容易產生過擬合,針對這一問題,本文在ACNN 框架的基礎上進行了改進,提出了局部注意力網絡和雙向長短期記憶網絡結合的識別方式。首先,將預處理后的微表情視頻幀通過VGG16 提取出特征集合;然后,將提取出的特征集合分別通過局部識別塊注意力卷積神經網絡(BRACNN)和全局注意力卷積神經網絡(GR-ACNN)提取出局部與全局特征;接下來,通過雙向長短期記憶網絡(Bi-LSTM)提取出每一幀的序列信息;最后,通過3 層全連接層進行分類。實驗結果表明,基于識別塊注意力網絡與雙向長短期記憶網絡的識別方式,可以從動作幅度小的視頻幀里有效地提取出有用信息,并在實驗中表現出較高的準確率。但是微表情數據集數量較少,持續時間普遍較短、強度較低,這仍然是導致實驗識別率較低的主要原因,這一點在混淆矩陣中尤為明顯。
在以后的研究中,對于數據集數量較少的問題,還需要進一步完善數據集,以促進微表情識別的發展;對于微表情強度低的問題,在數據預處理部分下一步,可以通過對視頻起始和峰值幀之間的視頻幀做線性時域插值以強化峰值幀的作用。此外,微表情識別點的選取可以依據以后的實驗再優化,識別點的選取應該盡量具有代表性。