李召峰 , 朱 明
(1. 中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春 130033;2. 中國(guó)科學(xué)院大學(xué),北京 100049)
面部表情是重要的非語(yǔ)言性情緒表達(dá),日常生活中最常見(jiàn)和熟知的類型是宏觀表情,還存在一種不同于宏觀表情的人臉表情稱作微表情,微表情既不能隱瞞也不能主觀壓制,能揭示人所潛藏的感情表達(dá)和心理活動(dòng),可以作為人類主觀感受的重要依據(jù)[1]。通常情況下,微表情的持續(xù)時(shí)間為 1/25~1/5 s[1-2]。微表情分析在臨床診斷、國(guó)家安全和刑事偵查等領(lǐng)域有很大的應(yīng)用潛力[3-5]。作為一個(gè)新領(lǐng)域,因?yàn)椴煌⒈砬樾蛄兄g較大的歧義性,直接分析存在很大的挑戰(zhàn)[6]。
微表情因其快速和細(xì)微的臉部自發(fā)運(yùn)動(dòng)使其難以被觀察到,即使是專業(yè)人士也難以準(zhǔn)確識(shí)別微表情。早期的一些工作提出了一些輔助性的工具,比如微表情訓(xùn)練工具(METT)[7],但因其成本過(guò)高和較低的人工識(shí)別率,使得這些方法很難在實(shí)際中應(yīng)用。近些年,微表情數(shù)據(jù)庫(kù)的建立和發(fā)布[8-10]使微表情的識(shí)別和應(yīng)用取得了很大進(jìn)展。基于公開(kāi)的數(shù)據(jù)集,研究者們提出了大量實(shí)驗(yàn)方法來(lái)自動(dòng)識(shí)別微表情。Liu等提出的光學(xué)流動(dòng)(MDMO)方法[11]利用時(shí)域中像素的變化和相關(guān)性在視頻幀之間挖掘?qū)?yīng)關(guān)系,通過(guò)定位主要的面部運(yùn)動(dòng)方向來(lái)計(jì)算平均光流臉塊,從而識(shí)別微表情。有研究利用已經(jīng)成熟的圖像預(yù)處理技術(shù),如人臉特征點(diǎn)檢測(cè)[12-13]來(lái)通過(guò)感興趣區(qū)域的選擇對(duì)特定面部區(qū)域進(jìn)行分析[14]。這類基于紋理和基于運(yùn)動(dòng)的方法在一定程度上解決了微表情識(shí)別問(wèn)題,但這些手工方法得到的特征需要人工去設(shè)計(jì),具有一定的復(fù)雜度。
近些年,深度學(xué)習(xí)在表情分類、人臉檢測(cè)等視覺(jué)領(lǐng)域發(fā)揮了巨大的優(yōu)勢(shì)。已經(jīng)有許多基于深度學(xué)習(xí)的方法被用于微表情識(shí)別,這些方法避免了繁瑣的手工特征設(shè)計(jì),可以自動(dòng)捕捉微表情的細(xì)微變化。Kim等采用兩步模型CNN-LSTM來(lái)識(shí)別微表情[15],先利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)來(lái)提取空間幀的特征,然后將特征放入長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)中學(xué)習(xí)微表情的時(shí)間信息。Wang等提出了 3D-FCNN提取深度時(shí)空特征來(lái)識(shí)別微表情[16]。Khor等使用光流來(lái)學(xué)習(xí)臉部區(qū)域空間關(guān)系,再利用 VGG-16 和預(yù)訓(xùn)練的 VGGFace模型來(lái)增加輸入通道和深度特征的堆疊[17]。Lei等使用了一個(gè)圖時(shí)間卷積網(wǎng)絡(luò)(Graph-TCN),使用遷移學(xué)習(xí)將基于學(xué)習(xí)的視頻運(yùn)動(dòng)放大應(yīng)用于放大微表情并提取形狀信息,旨在解決臉部肌肉運(yùn)動(dòng)強(qiáng)度低的問(wèn)題[18]。 Liu等結(jié)合 EVM 和光流來(lái)提取和放大細(xì)微的運(yùn)動(dòng)變化以獲得更準(zhǔn)確的結(jié)果[19]。
受這些工作的啟發(fā),本文提出了一種基于視頻動(dòng)作放大和雙分支網(wǎng)絡(luò)的微表情識(shí)別框架。已有工作展示了光流在微表情識(shí)別中的有效性,臉部運(yùn)動(dòng)信息可以被光流所捕獲,光流特征包含微表情動(dòng)態(tài)的特征細(xì)節(jié),然后將它們輸入到卷積神經(jīng)網(wǎng)絡(luò),可以構(gòu)建和選擇更多通過(guò)監(jiān)督學(xué)習(xí)的重要臉部運(yùn)動(dòng)特征。本文進(jìn)一步探索了光流信息的組合應(yīng)用,使用雙分支網(wǎng)絡(luò)結(jié)構(gòu)對(duì)預(yù)處理之后的圖像特征圖進(jìn)行識(shí)別分類,在該網(wǎng)絡(luò)中融合了改進(jìn)的ResNet-18中的殘差模塊,最后使用全連接層預(yù)測(cè)微表情的類別。
本文所提出的微表情識(shí)別算法主要由3部分組成。視頻預(yù)處理部分,將最新的人臉關(guān)鍵點(diǎn)檢測(cè)及人臉對(duì)齊技術(shù)應(yīng)用于微表情序列,旨在獲取主要肌肉運(yùn)動(dòng)的人臉區(qū)域,然后采用歐拉視頻放大技術(shù)對(duì)視頻序列進(jìn)行微表情中微弱運(yùn)動(dòng)的放大,同時(shí)在視頻序列中提取出對(duì)應(yīng)的初始Oneset幀和強(qiáng)度最大的Apex幀;光流特征處理部分,獲取Apex幀的光流特征,進(jìn)而獲得光流強(qiáng)度和光流應(yīng)變,將其作為對(duì)應(yīng)視頻序列的特征;雙分支分類網(wǎng)絡(luò)部分,用于表情的識(shí)別和分類,其中融合了改進(jìn)的ResNet殘差模塊。本文的實(shí)驗(yàn)算法流程如圖1所示。

圖1 本文算法流程Fig.1 Algorithm flow chart of this paper
人臉的一些部位是不包含微表情信息的。為了避免模型訓(xùn)練中過(guò)大的類間差異,進(jìn)行數(shù)據(jù)預(yù)處理是非常有必要的,有助于減小臉部大小和臉部形狀的差異,可以使要識(shí)別的人臉進(jìn)行空間的歸一化,使后續(xù)模型提取到的人臉特征與五官的位置無(wú)關(guān)。視頻預(yù)處理分為空間和時(shí)序兩個(gè)方面:空間上完成從原始數(shù)據(jù)到裁剪后的人臉圖像序列;時(shí)序上對(duì)視頻幀進(jìn)行了歐拉視頻放大,有助于突顯和放大微表情的臉部動(dòng)作,處理步驟如圖2所示。

圖2 視頻預(yù)處理Fig.2 Video image preprocessing
本文采用了文獻(xiàn)[20]中的2D人臉對(duì)齊網(wǎng)絡(luò)(2D-FAN)來(lái)生成68個(gè)人臉關(guān)鍵點(diǎn)以及完成人臉對(duì)齊。2D-FAN是目前已知最強(qiáng)的2D/3D的人臉對(duì)齊網(wǎng)絡(luò),在超過(guò)220 000張圖像上做了驗(yàn)證,是結(jié)合了已有最優(yōu)人臉關(guān)鍵點(diǎn)檢測(cè)的網(wǎng)絡(luò)結(jié)構(gòu)。它的網(wǎng)絡(luò)結(jié)構(gòu)基于Hour-Glass[21]網(wǎng)絡(luò)并采取堆疊的方式。Hour-Glass網(wǎng)絡(luò)采用瓶頸塊(Bottleneck block)作為主要的構(gòu)建模塊,2D-FAN中則更進(jìn)一步使用最新提出的分級(jí)并行和多尺度的網(wǎng)絡(luò)塊對(duì)瓶頸塊進(jìn)行提升,在大規(guī)模的綜合2D人臉關(guān)鍵點(diǎn)數(shù)據(jù)集上進(jìn)行了訓(xùn)練。本文采用2D-FAN直接檢測(cè)和提取二維面部關(guān)鍵點(diǎn),利用該先進(jìn)的殘差網(wǎng)絡(luò)架構(gòu),在整個(gè)面部范圍內(nèi),將整個(gè)面部區(qū)域的圖像塊作為回歸CNN的輸入,面部的2D坐標(biāo)向量作為輸出。裁剪人臉的過(guò)程是依據(jù)人臉關(guān)鍵點(diǎn)中眼睛的位置而確定的矩形,以圖像序列中Oneset幀為參考裁剪圖像。
用于人臉對(duì)齊的傳統(tǒng)度量是兩眼距離歸一化之后,點(diǎn)對(duì)點(diǎn)的歐幾里得距離,但如文獻(xiàn)[22]所指出,對(duì)于雙眼間距很小的輪廓人臉,該誤差度量是有偏差的。本文通過(guò)邊界框大小進(jìn)行歸一化,使用公式(1)中的平均誤差定義作為人臉對(duì)齊的誤差評(píng)測(cè)。其中x表示給定人臉的真實(shí)特征點(diǎn);y是對(duì)應(yīng)的預(yù)測(cè)特征點(diǎn);d由公式(2)得到,是真實(shí)邊界框高(h)和寬(w)乘積的平方根。
(1)
(2)
微表情最大的挑戰(zhàn)是臉部運(yùn)動(dòng)的幅度過(guò)小而難以區(qū)分。對(duì)齊的臉部區(qū)域在時(shí)序上的變化細(xì)節(jié)依然很難被人眼所觀察到,也很難被機(jī)器學(xué)習(xí)技術(shù)捕捉到這些微小變化。
為了增大不同微表情之間的區(qū)別,采用歐拉視頻放大方法[23]對(duì)微小的臉部運(yùn)動(dòng)進(jìn)行放大處理,使得在時(shí)序上有明顯的肌肉運(yùn)動(dòng)變化。運(yùn)動(dòng)放大步驟如下:視頻幀分解為不同的拉普拉斯金字塔頻帶,然后用巴特沃斯濾波器提取感興趣的頻帶,最后不同的帶通信號(hào)乘以放大系數(shù)α添加到原始圖像。
基于運(yùn)動(dòng)的時(shí)序放大可由式(3)得到,I(x,t)是圖像在x位置和t時(shí)間的強(qiáng)度值,f(x)是視頻起始時(shí)刻在x位置的強(qiáng)度值,圖像中的區(qū)域塊經(jīng)歷了平移運(yùn)動(dòng),δ(t) 作為位移函數(shù)的觀測(cè)強(qiáng)度。假設(shè)一階泰勒展開(kāi)中只考慮放大后的最強(qiáng)擾動(dòng),式(3)可以簡(jiǎn)化為式(4),表明空間分布局部圖像f(x)在時(shí)間t的位置δ(t)已被放大到(1 + α)的量級(jí)。
(3)
I(x,t)≈f(x)+(1+α)δ(t),
(4)
(5)
文獻(xiàn)[23]中視頻放大包含動(dòng)作放大和顏色放大兩種類型,本文采用動(dòng)作放大,參數(shù)α是控制運(yùn)動(dòng)放大程度的參數(shù),若太大會(huì)引入較大的臉部錯(cuò)位和噪聲。根據(jù)公式(5)將放大系數(shù)固定在一個(gè)固定區(qū)間范圍內(nèi),空間波長(zhǎng)λ取值為16,選取α值為20,選擇無(wú)限脈沖響應(yīng) (IIR) 濾波器作為時(shí)序?yàn)V波器。
本文采用微表情強(qiáng)度最強(qiáng)的Apex幀和初始Oneset幀來(lái)代表對(duì)應(yīng)的微表情序列[24]。CASME Ⅱ數(shù)據(jù)庫(kù)[10]提供了Apex幀的序號(hào),SMIC數(shù)據(jù)庫(kù)[8]未提供Apex幀序號(hào),采用Liong的方法[13]來(lái)自動(dòng)獲取對(duì)應(yīng)的Apex幀。本文應(yīng)用FlowNet 2.0來(lái)生成圖像對(duì)的光流特征,F(xiàn)lowNet 2.0的結(jié)果有著更清晰的物體邊緣,對(duì)運(yùn)動(dòng)偽影也具有較高的魯棒性[25],在許多視覺(jué)任務(wù)中得到了廣泛的應(yīng)用。從Oneset幀和Apex幀獲得的光流場(chǎng)中提取出水平和垂直方向的信息,分別用u和v表示。再用u和v分別計(jì)算出光流強(qiáng)度和光流應(yīng)變的大小,公式(6)中采用了L2距離計(jì)算光流強(qiáng)度m。
(6)
光流應(yīng)變能計(jì)算面部的微小變化,能表達(dá)出運(yùn)動(dòng)變形的相對(duì)量[26],假設(shè)進(jìn)行了很小的運(yùn)動(dòng),光流應(yīng)變強(qiáng)度可由公式(7)中的海森矩陣計(jì)算得到。
(7)
可將其簡(jiǎn)化為
(8)
其中u為二維位移向量,u=[u+v]T,(εxx,εyy)是法向應(yīng)變分量,(εxy,εyx)是切向應(yīng)變分量。光流應(yīng)變強(qiáng)度推導(dǎo)最終可由公式(9)得到:
(9)
深度殘差網(wǎng)絡(luò)[27]在圖像分類、語(yǔ)義分割等領(lǐng)域的應(yīng)用中具有先進(jìn)的性能,在不增加網(wǎng)絡(luò)復(fù)雜性的情況下,殘差網(wǎng)絡(luò)通過(guò)堆疊殘差模塊的方式來(lái)構(gòu)建網(wǎng)絡(luò),經(jīng)典的殘差塊如圖3所示,以兩個(gè)3×3的卷積層為主,外加BN層和ReLu層,通過(guò)1×1卷積跨層直接連接,使得輸入x無(wú)損失地傳遞到更深層的網(wǎng)絡(luò)當(dāng)中,將上一層或多層之前的輸出與本層的計(jì)算輸出相加,解決了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中梯度彌散和網(wǎng)絡(luò)性能退化的問(wèn)題。

圖3 ResNet殘差模塊Fig.3 Residual module
為了適應(yīng)不同任務(wù)的特性,ResNet的結(jié)構(gòu)也可以進(jìn)行調(diào)整[28],本文對(duì)ResNet殘差模塊進(jìn)行改進(jìn),融入了CBAM[29]的空間注意模塊,如圖4所示,來(lái)讓網(wǎng)絡(luò)從空間尺度學(xué)習(xí)目標(biāo)“在哪里”。因卷積運(yùn)算是通過(guò)跨通道和空間信息來(lái)提取特征的,為了計(jì)算空間注意特性,沿著殘差模塊的通道軸應(yīng)用平均池化和最大池化操作,連接生成有效的特征描述符。再沿通道軸應(yīng)用池化的操作能突出有效的信息區(qū)域[30]。該空間注意模塊可由式(10)計(jì)算,Sigmoid為Sigmoid激活函數(shù)。
C(x)=Sigmoid(Conv(avgPool(x),
maxPool(x)).
(10)

圖4 改進(jìn)的ResNet殘差模塊Fig.4 Improved residual module
有不少研究[31-32]顯示了在淺層網(wǎng)絡(luò)一定條件下小數(shù)據(jù)集和不平衡的類別上的分類性能,與手工特征相比,顯示出很大的優(yōu)越性,且減少網(wǎng)絡(luò)深度可以減少可學(xué)習(xí)的參數(shù)。受文獻(xiàn)[33]的啟發(fā),本文選取兩個(gè)獨(dú)立的分支網(wǎng)絡(luò)Na和Nb,每個(gè)分支N由16個(gè)改進(jìn)的ResNet殘差模塊c串行疊加組成,即
N={c1,c2,...,c16}.
(11)
通過(guò)訓(xùn)練,這樣的網(wǎng)絡(luò)能夠關(guān)注到臉部的微表情區(qū)域。將以下兩組的光流特征組合圖各送入網(wǎng)絡(luò)Na和Nb中:水平光流場(chǎng)、垂直光流場(chǎng)和光流強(qiáng)度的組合(u,v,m),水平光流場(chǎng)、垂直光流場(chǎng)和和光流應(yīng)變的組合(u,v,ε)。兩分支網(wǎng)絡(luò)輸出后的合并采用公式(12)的特征圖映射加法,來(lái)對(duì)時(shí)間-空間特征進(jìn)行融合,網(wǎng)絡(luò)輸出之后連接的是全連接層和歸一化層。
C=Cna⊕Cnb.
(12)
自發(fā)微表情數(shù)據(jù)庫(kù)SMIC是最常見(jiàn)的基準(zhǔn)數(shù)據(jù)庫(kù)[8],使用高速攝像機(jī)以100 fps拍攝,最短的視頻序列只有11幀長(zhǎng)(持續(xù)時(shí)間約為0.11 s),平均幀長(zhǎng)為 29幀(約0.30 s),SMIC數(shù)據(jù)集包含16 名參與者,共164個(gè)視頻,包含“負(fù)面”(70個(gè)),“正面”(51個(gè))和“驚喜”(43個(gè))3類。CASME Ⅱ[10]是一個(gè)綜合性自發(fā)微表情數(shù)據(jù)庫(kù),包含 247個(gè)視頻樣本,包含來(lái)自亞洲的26名參與者。所有視頻均以200 fps拍攝,分辨率為 640×480,該數(shù)據(jù)庫(kù)中的視頻包含厭惡、壓抑、驚訝、高興、其他、害怕和悲傷7類微表情,因最后兩種表情樣本過(guò)少,本文只對(duì)前5種表情進(jìn)行評(píng)測(cè)。
本文在公開(kāi)的微表情數(shù)據(jù)庫(kù)SMIC和CASME Ⅱ上評(píng)測(cè)了所提出的識(shí)別算法,采用留一法交叉驗(yàn)證。本文的實(shí)驗(yàn)部分在NVIDIA GeForce RTX 2080Ti上進(jìn)行,顯存為11 G。采用PyTorch深度學(xué)習(xí)框架和Adam優(yōu)化器(β1=0.9,β2=0.999,ε=1e-8),最初始的學(xué)習(xí)率設(shè)置為1e-4,使用大小為16的batch size,共訓(xùn)練了30個(gè)epochs。由于微表情數(shù)據(jù)集樣本量小且不平衡,在訓(xùn)練中還進(jìn)行了數(shù)據(jù)增強(qiáng),包括水平翻轉(zhuǎn)和高斯模糊(5×5)。混淆矩陣結(jié)果如圖5和圖6所示。

圖5 SMIC的混淆矩陣Fig.5 Confusion matrix of SMIC

圖6 CASME Ⅱ的混淆矩陣圖6 Confusion matrix of CASME Ⅱ
表1是已有研究工作與本文算法的對(duì)比,包含了經(jīng)典的傳統(tǒng)算法LBP-TOP和手工提取特征算法,以及最新的深度學(xué)習(xí)算法。除最常使用的準(zhǔn)確率以外,還增加了同時(shí)考慮查準(zhǔn)率和查全率的F1指數(shù)對(duì)算法進(jìn)行評(píng)價(jià)。基于SMIC和CASME Ⅱ兩個(gè)數(shù)據(jù)集,本文方法的準(zhǔn)確率和F1指數(shù)均優(yōu)于大多數(shù)算法。

表1 不同算法識(shí)別準(zhǔn)確率和F1指數(shù)比較Tab.1 Comparison of recognition accuracy and F1-score of different algorithms
為了探索本文模型在“看哪里”及如何進(jìn)行識(shí)別分類的,本文應(yīng)用梯度加權(quán)類激活映射Grad-CAM技術(shù)[38]對(duì)雙分支網(wǎng)絡(luò)最后卷積層合并后的激活強(qiáng)度進(jìn)行可視化顯示,模型映射后以熱圖的方式展現(xiàn),熱圖有助于直觀地解釋和分析網(wǎng)絡(luò)所激活的臉部位置以及網(wǎng)絡(luò)的運(yùn)行機(jī)制,圖7是CASME Ⅱ所激發(fā)的與具體的表情類別相關(guān)的面部區(qū)域,通過(guò)最后雙分支各自的激活值相加得到。表明本文模型是能夠從表情密切對(duì)應(yīng)的區(qū)域?qū)W習(xí)特征的。根據(jù)Ekman于1978年開(kāi)發(fā)的面部動(dòng)作編碼系統(tǒng)[39],可以看到熱圖的臉部運(yùn)動(dòng)單元(action unit, AU)與表情面部動(dòng)作編碼是對(duì)應(yīng)和一致的,見(jiàn)表2。特別能看到在壓抑表情中,嘴唇兩側(cè)的凹陷具有很強(qiáng)的網(wǎng)絡(luò)激活;在厭惡表情中,眉毛的小幅度提升運(yùn)動(dòng)也被本文識(shí)別算法檢測(cè)到。

圖7 雙分支網(wǎng)絡(luò)激活圖可視化Fig.7 Visualization of two-branch network activations

表2 表情類別與對(duì)應(yīng)的AU組合
本文提出了一種微表情的識(shí)別方法,利用先進(jìn)的人臉對(duì)齊網(wǎng)絡(luò)和歐拉視頻放大技術(shù)對(duì)視頻序列進(jìn)行預(yù)處理,之后抽取Oneset幀和Apex幀得到對(duì)應(yīng)視頻的光流特征,相同結(jié)構(gòu)的分支網(wǎng)絡(luò)對(duì)光流特征圖的輸入進(jìn)行進(jìn)一步的特征提取之后,輸出表情的分類標(biāo)簽。所提出算法在公開(kāi)數(shù)據(jù)庫(kù)中的性能優(yōu)于大多數(shù)現(xiàn)有的方法,最后激活熱力圖提供了定性驗(yàn)證,也表明所提出網(wǎng)絡(luò)架構(gòu)的合理性。已有數(shù)據(jù)庫(kù)的情緒標(biāo)注是自我評(píng)估所產(chǎn)生的,與真實(shí)表情標(biāo)簽有一定的誤差性。本文下一步工作可以在已有模型基礎(chǔ)上驗(yàn)證標(biāo)簽誤差對(duì)性能的影響,此外,數(shù)據(jù)庫(kù)中不同的微表情可能共享相同的一組臉部運(yùn)動(dòng)單元,其如何定性決定表情類別需進(jìn)行進(jìn)一步的研究。最后,微表情數(shù)據(jù)集的大小影響分類性能,可以在本文數(shù)據(jù)增強(qiáng)的基礎(chǔ)上進(jìn)行更有效的數(shù)據(jù)增廣。