微表情是人們試圖隱藏自己真實情緒時不由自主泄露出來的面部表情,即使是專業演員也很難偽裝.除了日常生活中普通的面部表情,在某些情況下,情緒也會以微表情的形式表現出來.與普通的面部表情相比,微表情的持續時間僅有1/25~1/3 s[1],并且參與的肌肉運動強度很微弱[2].因此,微表情可以被視為推斷人類情緒的可靠線索之一,這使得它們在司法系統、刑偵審訊和臨床診斷中得到廣泛應用.
由于微表情識別的廣泛應用性,近年來,研究者開展了大量的研究.這些研究主要分為基于傳統機器學習的方法和基于深度學習的方法.在傳統機器學習方法中,特征提取是影響算法性能的關鍵.局部二值模式(LBP)[3]是一種特征提取算法,它根據當前像素值對相鄰像素進行閾值處理,有效地描述了圖像紋理特征.此后,針對微表情識別任務還提出了多種LBP算法,如三正交局部二值模式(LBP-TOP)[4]和六交叉點局部二值模式(LBP-SIP)[5].Huang等[6]提出一種積分投影方法,將形狀屬性與時空紋理特征相結合,實現了微表情識別的判別時空局部二元模式(SLBP).此外,還存在兩個時空描述符:主方向平均光流(MDMO)[7]和人臉動態圖(FDM)[8].Liu等[9]進一步將MDMO納入經典的圖正則化稀疏編碼中,生成了稀疏MDMO特征.馬浩原等[10]提出平均光流直方圖(MHOOF),提取相鄰兩幀間感興趣區域的HOOF特征以檢測峰值幀,將峰值幀和起始幀的MHOOF特征用于微表情識別.Liong等[11]提出了雙加權定向光流(Bi-WOOF)特征描述符,將光流幅值和光學應變大小作為權值,生成人臉區域各塊的方向直方圖進行微表情識別.
傳統方法需要繁瑣的手工特征設計,而且微表情識別的準確率低.考慮到深度學習在面部表情識別中取得的良好表現,研究人員開始試圖將深度學習應用于微表情的識別任務.Quang等[12]首次將膠囊網絡(CapNet)[13]應用于微表情識別模型中,該模型設計簡單,所需的訓練數據很少,并且具有很強的魯棒性.Lai等[14]則通過在VGG網絡中添加殘差連接,增加網絡深度的同時也緩解了梯度消失的問題,在該研究中還使用了空洞卷積替換傳統卷積,擴大感受野的同時也能夠捕捉多尺度的上下文信息.Wang等[15]在ResNet網絡上進行改進,在網絡中添加微注意力提升模型對面部區域的關注,從而提升識別的精度.Liong等[16]提出一種利用光流特征進行微表情檢測和識別的方法,它可以更好地表現精細、微妙的面部運動.在此基礎上,Liong等[17]進一步提出了淺三流三維CNN(STSTNet),并利用光流特征訓練網絡.這些研究表明,由于微表情數據集樣本數量小,淺層神經網絡更適合于微表情識別任務.此外,Verma等[18]也試圖通過遞增的方式提取更顯著的表情特征,來捕捉面部區域每個表情的微觀層面特征.Khor等[19]引入長期循環卷積網絡(ELRCN)模型用于微表情識別,該模型通過結合深度空間特征學習模塊和時間特征學習模塊對微表情特征進行編碼.
目前主流的微表情識別算法一般是采用卷積網絡提取特征.Zhao等[20]提出6層CNN網絡進行特征提取.Khor等[21]提出一個輕量級的雙流淺層網絡,其網絡整體由CNN組成.Zhi等[22]將CNN與LSTM串聯起來,直接處理不同時長的微表情序列.
Transformer是一種主要基于自注意力機制的深度神經網絡,最初應用于自然語言處理領域.受到Transformer強大的表示能力的啟發,研究人員開始提出將Transformer擴展到計算機視覺任務.Ma等[23]首次將Transformer架構應用到表情識別中,在該網絡中首先使用ResNet18提取輸入圖像的特征圖,最后再放入多層Transformer編碼器中進行分類.Zhang等[24]提出SLSTT網絡,該網絡結構將微表情序列光流特征送入到Transformer編碼器中,通過LSTM架構對時間和空間特征融合后進行分類.劉忠洋等[25]基于注意力機制進行多尺度特征融合,證明了多尺度特征融合在圖像分類上的有效性.
Chen等[26]提出一種雙分支的Transformer分別提取不同尺度特征以及基于CrossAttention的融合機制融合不同分支的特征.對于視覺Transformer,通過改進自注意力機制能夠有效提升網絡的性能.Huang等[27]擴展了傳統的自注意力機制,以確定注意力結果和查詢結果的相關性.楊春霞等[28]提出的基于BERT與注意力機制融合的模型,表明Transformer架構在關于情感分析任務中有較好的表現.受上述文獻啟發,本文對于注意力機制進行了改進,以提升微表情識別精度.
Huang等[27]研究表明,Transformer編碼器中的自注意力機制所提取的特征中包含了一些冗余和無用的特征信息,在微表情領域,這些冗余和無用的特征信息不利于后續的微表情識別任務.另外,由于微表情是一種面部運動幅度很低的情感表達,傳統的卷積神經網絡難以捕捉到這些細微的特征.而人們最近提出的多尺度網絡較傳統卷積網絡能夠捕捉更加細微的特征信息[25-26],以獲得更加豐富的特征信息用于微表情識別.基于此,本文將交叉注意力多尺度ViT(CrossViT)網絡進行改進并應用到微表情識別上,實驗表明提出的方法取得了較好的識別效果.本文的貢獻有如下幾點:
1) 本文所提出的模型較早地將CrossViT網絡應用到微表情領域,證明了其在微表情識別上的有效性;
2) 本文對CrossViT網絡中原有的注意力機制進行了改進,提出了DA(Dual Attention)模塊,該模塊擴展了傳統交叉注意力機制,確定注意結果和查詢之間的相關性,以保留網絡中有用的特征信息,從而有效提升了網絡的識別性能;
3) 本文所提出的模型在CASME Ⅱ、SMIC和SAMM 三個數據集上均取得了良好的識別性能,驗證了本文模型在微表情識別上的有效性.
微表情識別的早期研究方法主要是基于手工特征的傳統機器學習方法.這些手工特征是利用設計好的特征提取算子提取對應的特征,并將特征送入SVM等分類器進行微表情分類.手工特征提取的方法可以分為兩種:第一種是基于表觀特征的方法,該方法考慮到圖像的像素之間的關系并進行相應特征的提取,可以得到微表情序列的動態紋理信息,如LBP[3]、LBP-TOP[4]等;第二種是基于幾何特征的方法,該方法考慮到圖像局部特征區域和特征點的位移和形變,進行相應的特征提取.光流特征是一種基于幾何特征的特征提取方法,其基于光流的特征描述符推斷不同幀之間的相對運動,能為微表情識別捕獲微表情連續幀之間的時間特征.
光流特征中的光流是指空間運動物體在觀察成像平面上的像素運動的瞬時速度.其特征提取是利用圖像序列中像素在時間域上的變化以及相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關系,從而計算相鄰幀之間的運動信息,通過TVL1光流法可以計算出微表情序列中起始幀和峰值幀之間的水平和垂直光流矢量.光流應變代表的是人臉運動變化強度,能夠作為加權方案,以突出每個光流的重要,從而減少了小強度的光流噪聲.每個像素點的光流應變可以通過計算水平和垂直的光流矢量的平方和進行計算.
CrossViT是將兩個不同分支的圖像標記,通過交叉注意力進行類標記融合.CrossViT的整體網絡架構如圖1所示.該網絡主要是由K個多尺度Transformer編碼器(圖1中黃色區域)組成,將光流特征圖送入到2個不同尺度的分支中.

圖1 CrossViT網絡架構Fig.1 CrossViT network architecture
1) La分支對粗粒度的特征塊進行操作,在該分支中,將原始光流特征圖作為特征塊輸入,然后將特征塊扁平成一維向量后通過投影函數得到更大的嵌入向量,并經過M個Transformer編碼器進行特征提取;
2) Sm分支對細粒度的特征塊進行操作,在該分支中,輸入光流特征圖被劃分成4個大小相同的特征塊,將每個特征塊扁平成一維向量后通過投影函數得到更小的嵌入向量,并經過N個Transfomer編碼器進行特征提取,其中M>N.
經過2個分支Transformer編碼器提取的粗粒度與細粒度的特征信息送入到交叉注意力(CrossAttention)模塊進行L次信息交互以獲得更豐富的類標記,最后將2個分支的類標記拼接后輸出,將得到的特征信息輸入到分類器.
交叉注意力是CrossViT的重要模塊,它是在自注意力的基礎上提出的一種注意力機制.交叉注意力最早是用于Transformer的編碼器和解碼器的連接.不同于自注意力,交叉注意力能夠將不同尺度、不同模態的特征進行關聯,提升模型的性能.近年來,CrossViT在多尺度圖像分類上取得成功,證明了交叉注意力機制可以處理不同形式的內容,并且能夠融合不同尺度的數據.
考慮到微表情是細微的面部運動,將光流特征圖劃分為不同尺度的圖像特征圖,大尺度的圖像特征圖表示了微表情高層的語義信息,小尺度的特征圖表示微表情低層的細節信息,將不同尺度的特征信息融合,有利于獲得更豐富的特征表示.網絡中的視覺Transformer相較于卷積神經網絡具有全局感受野,并且其中的查詢、鍵和值都依賴于輸入數據,因此其具有自適應權重聚合的特性,能夠獲得更好的特征表示.
CrossViT網絡的最大特點是利用交叉注意力模塊實現不同尺度的特征交互,獲得更有代表性的特征信息.然而CrossViT原有的交叉注意力模塊雖然能夠將不同尺度的信息進行交互,但是交互后保留了很多無用的特征信息,不利于之后的圖像分類任務.
本文對CrossViT的交叉注意力模塊進行了改進,在該模塊中額外增加一個注意力機制,改進的模塊能夠過濾掉無用的注意力結果,只保留有用的注意力結果,從而提升了微表情識別的精度.提出的雙注意力模塊(DA)如圖2:用不同大小的方塊表示不同尺度的特征塊,用不同大小的圓圈表示粗粒度和細粒度的類標記.由Tranformer編碼器輸出的粗粒度的特征塊和類標記和細粒度的特征塊作為DA模塊的輸入,具體來說,La分支首先將自身的類標記與Sm分支的特征塊連接在一起,如下式所示:

圖2 DA模塊Fig.2 Dual attention module

(1)


(2)

(3)
式(2)中,Wq,Wk,Wv∈RC×(C/h)是可學習的參數,D表示嵌入的維度,h是注意力頭的數量.由于本模塊只在查詢中使用類標記,因此DA注意力操作中的注意結果A的計算和內存復雜度是線性的,使得整個操作過程更加高效.本文與注意力機制一樣,使用多個注意力頭,并且將其表示為多頭雙注意力模塊(MDA).而為了擴展注意力機制,過濾掉無用的注意力結果,q向量經過線性變換和Sigmoid函數激活之后得到指導向量q′,該向量對注意力結果A進行指導,過濾掉無用的注意力結果后得到新的值向量v′.

(4)
DA(x′l)=q′v′,
(5)

(6)

(7)
式(6)、(7)中,fl(·)和gl(·)是維度對齊的投影函數和反投影函數.
DA模塊能夠對來自La分支和Sm分支的信息進行充分融合,并且能夠對注意力結果進行篩選只保留有用的特征信息,以進行后續的下游任務.如圖3所示,本文將圖1中的多尺度Transformer編碼器(黃色區域)中的交叉注意力模塊替換成DA模塊,從而得到雙注意力多尺度Transformer編碼器.

圖3 雙注意力多尺度Transformer編碼器Fig.3 Dual attention multi-scale Transformer encoder
本文在保持原CrossViT其他結構沒有改變的基礎上,將多尺度Transformer編碼器里面的交叉注意力結構(CrossAttention)直接替換為本文提出的DA模塊,以進行微表情識別.雙注意力模塊(DA)對于注意力結果能夠進行有效的篩選,只保留有用的注意力結果.考慮到CrossViT的交叉注意力模塊會對多尺度的特征信息進行交互,將會產生多個注意力結果.為了保留有用的注意力結果,本文將CrossViT中的交叉注意力模塊替換為雙注意力模塊,從而提出了雙注意力CrossViT,該網絡有效提升了微表情識別的精度.
本文將上述提出的雙注意力CrossViT架構用于微表情識別任務.由于雙注意力CrossViT機構能將輸入光流圖劃分為不同的尺度,多尺度的特征信息交互能夠得到更豐富的特征表示,并且能夠對信息交互的過程無用的特征信息進行篩選,從而能夠得到更具有代表性的特征信息,以提高最終微表情識別的精度.基于雙注意力CrossViT的微表情識別架構如圖4所示,該架構總體分為3個部分:

圖4 基于雙注意力CrossViT的微表情識別架構Fig.4 Micro-expression recognition architecture based on dual attention CrossViT
1)對微表情數據集中的微表情序列進行預處理,預處理包括微表情原始樣本序列的人臉裁剪和人臉對齊,并通過峰值幀定位算法定位出微表情序列中的峰值幀;
2)對微表情樣本的起始幀和峰值幀進行光流計算,將得到的水平、垂直光流矢量及光流應變進行融合得到光流特征圖;
3)將光流特征圖輸入到雙注意力CrossViT網絡中進行特征提取,之后通過Softmax進行微表情分類.
本文所有實驗均在一臺安裝了Ubuntu 18.04.4操作系統的服務器上進行,CPU的型號為Intel(R) Core(TM) i7-10700 CPU @ 2.90 GHz,內存為16 GB,GPU的型號為NVIDIA 3090,顯存大小為24 GB,CUDA版本為10.0.實驗數據設置如下:批處理大小為256,最大輪次數為800,學習率取值為0.000 5,使用Adam優化器來優化模型.
本文使用3個獨立數據集驗證網絡的分類性能,分別是CASME Ⅱ[29]、SMIC[30]和SAMM[31].3個獨立數據集分類種類不一致,為了消除其種類不一致所造成的誤差,需要對3個數據集進行預處理.
首先針對CASME Ⅱ數據集,其一共有5種情感類型,因此本文不使用其標簽類型為‘others’的樣本數據,將‘Repression’和‘Disgust’樣本標簽統一劃分為標簽‘Negative’.然后針對SAMM數據集,其一共有8種情感類型,本文將‘Fear’、‘Anger’、‘Disgust’、‘Sadness’以及‘Contempt’統一劃分為標簽‘Negative’,并且不使用標簽為‘Other’的微表情樣本.
為了驗證數據集在不同性質數據集上的泛化能力,本文還使用了3個獨立數據集抽樣選擇的融合數據集.本文使用MEGG(The Second Facial Micro-Expression Grand Challenge)提出的融合數據集劃分規則,將從3個數據集抽樣出一定比例的數據集樣本,其樣本抽樣的情況如表1所示.

表1 融合數據集抽樣

由于3個獨立微表情數據集以及融合數據集都存在數據嚴重不平衡的問題,可以通過UF1和UAR這兩個指標減少類不平衡的偏差,從而更好地衡量算法的性能.其中,UF1通過計算每個類別F1-Score的平均值確定,其計算公式如下:

(8)

(9)
其中:TPi,FPi和FNi分別是微表情數據集中類別i的真陽性、假陽性和假陰性的數量;C是當前微表情數據的類別數量.UAR通過計算每個類別的平均準確率除以類數進行確定,其計算公式如下:

(10)

(11)
其中,Ni為類別標簽i的樣本總數.
為了驗證雙注意力CrossViT網絡在微表情識別上的有效性,本文在3個獨立微表情數據集及融合數據集上進行了廣泛的實驗,并且和目前微表情領域的其他主流方法進行對比.本文的基準方法為LBP-TOP,其他方法(ATNET、CapsuleNet、SA-AT、STSTNet)為主流的深度學習方法.從表2可以看出,在融合數據集上,雙注意力CrossViT網絡的UF1指標達到了0.727 5,UAR指標達到了0.727 2,比基準方法分別提高了0.139 5和0.148 7.在CASME Ⅱ、SMIC、SAMM數據集上,相比于基準方法,本文網絡的性能均有明顯的提升.對比實驗中主流的深度學習方法,改進的CrossViT網絡也有明顯的優勢.在融合數據集和SMIC、CASME Ⅱ數據集上,雙注意力CrossViT網絡相較于其他方法達到了最好的性能,在SAMM數據集上,也取得了較好的性能表現,僅次于CapsuleNet.由于視覺Transformer需要大量的數據樣本才能取得最好的性能,而SMIC和SAMM數據集樣本數量較少,所以相較于其他數據集性能表現不太優秀.

表2 對比實驗結果
為了更好地對本文所提方法的有效性進行分析,在融合數據集和3個獨立數據集上構造混淆矩陣,如圖5所示.可以看出所提方法在CASME Ⅱ數據集的分類性能相較于其他3個數據集,其分類性能最好.由于SMIC數據集未標記實際峰值幀位置,因此峰值幀定位算法定位出的峰值幀位置與其實際峰值幀位置存在誤差,并且SMIC數據集也存在分辨率低、幀數低的問題,因此其分類表現在4個數據集中是最差的.另外對于SAMM數據集,其數據集類別不平衡,消極類別在整個數據集中的樣本數量最大,導致所提方法對于‘消極’標簽的分類性能相較于其他兩個分類標簽表現更好.在融合數據集中,‘消極’標簽的分類結果也是表現最好的.

圖5 混淆矩陣Fig.5 Confusion matrices
為了驗證實驗參數設置對于算法穩定性的影響,本文在3個獨立微表情數據集上通過設置不同的迭代次數進行實驗,如圖6所示,迭代次數設置在200到800之間時,算法的UF1和UAR指標曲線較為平穩,而且實驗結果中兩個指標的值高于表2中的主流算法的指標.

圖6 迭代次數對網絡識別率的影響Fig.6 Influence of iteration times on network recognition rate
由于CrossViT的La分支主要用于提取特征信息,Sm分支只是提供補充信息,因此2個分支中的不同分塊數量會影響算法識別性能.為了驗證CrossViT 2個分支的不同分塊數量對于算法識別性能的影響,本文在3個獨立數據集上進行實驗,實驗結果如表3所示.從表3可知,不同的分塊情形,CAMSE Ⅱ數據集的UF1和UAR指標分布在0.8左右,SMIC數據集的UF1和UAR指標分布在0.6左右,SAMM數據集的UF1和UAR指標分布在0.5左右,3個獨立數據集中,當La分支分塊數量為1且Sm分支分支分塊數量為4時,其實驗結果最好.

表3 分塊數量實驗結果
為了驗證所提出的DA模塊在CrossViT網絡中的有效性,本文進行了針對DA模塊的消融實驗.實驗細節是使用CrossViT原有的交叉注意力模塊和本文所提出的DA模塊進行比較,分析2個模塊在融合數據集上的識別精度.實驗結果如表4所示,本文提出的DA模塊能夠保留最有用的注意力結果,最終獲得更好的特征表示.在融合數據集上,DA模塊的UF1的指標為0.727 5,UAR的指標為0.727 2,性能較CrossViT原有的交叉注意力模塊均有提高.

表4 消融實驗結果
本文基于CrossViT為主干網絡,對網絡中的交叉注意力模塊進行改進,提出了雙注意力模塊,實現了不同尺度的光流圖像的特征融合并保留了有用的注意力結果,有效地提升了微表情識別的準確率,并且將起始幀到峰值幀的水平和垂直光流矢量及光流應變融合為光流特征圖,通過多尺度的特征提取進行微表情分類.本文在3個獨立數據集上和融合數據集上使用LOSO交叉驗證法驗證模型,實驗結果表明,本文的方法在識別性能上相較于目前的主流深度學習方法都有了較為明顯的提升.
未來的工作重點可以從以下方面進行提升:當前的微表情數據集規模小,應該使用GAN、遷移學習等網絡進一步提升微表情數據集的規模;當前的數據集樣本數量不平衡,應該進一步提升在樣本類別不平衡情況下的網絡識別精度.