徐瑋,鄭豪,楊種學(xué)
(1.廣西師范大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院/軟件學(xué)院,廣西 桂林 541004;2.南京曉莊學(xué)院 信息工程學(xué)院,江蘇南京 211171)
微表情是人們?cè)噲D隱藏真實(shí)情感時(shí)不由自主泄露出的面部表情,是人類經(jīng)過(guò)長(zhǎng)期進(jìn)化遺傳而繼承下來(lái)的。其作為人內(nèi)在情緒的真實(shí)表現(xiàn),能夠揭示一個(gè)人的真實(shí)情緒,具有持續(xù)時(shí)間短、強(qiáng)度低、難以誘導(dǎo)[1]等特征,因此它成為精神心理學(xué)和情感分析領(lǐng)域最可靠的生理特征之一。
微表情識(shí)別算法主要有特征描述算法、特征轉(zhuǎn)換算法、光流算法、頻域算法、深度學(xué)習(xí)算法等。特征描述算法[2-4]通過(guò)描述微表情的面部肌肉運(yùn)動(dòng)特性、紋理特性等實(shí)現(xiàn)對(duì)微表情的特征表示,在局部二值模式的基礎(chǔ)上,減少噪聲、光照等因素的影響,提升特征描述的準(zhǔn)確性。特征轉(zhuǎn)換算法[5-6]將微表情序列看作張量,對(duì)其進(jìn)行矩陣變換去除冗余信息,增加顏色、空間和時(shí)間等信息。光流算法[7-9]主要分析光流場(chǎng)中微表情序列的變化,從像素的角度提取相鄰兩幀像素的相對(duì)運(yùn)動(dòng),捕捉面部的細(xì)微變化,降低頭部運(yùn)動(dòng)和光線變化對(duì)特征的影響。頻域算法[10-12]將微表情序列看作一個(gè)時(shí)域信號(hào),通過(guò)傅里葉變換、Gabor變換等轉(zhuǎn)換到頻域上,提取振幅、相位信息等特征,能夠有效提取面部輪廓的角點(diǎn)和邊緣信息等局部特征?;谏疃葘W(xué)習(xí)的微表情識(shí)別算法利用神經(jīng)網(wǎng)絡(luò)自主學(xué)習(xí)的特征,得到高層的語(yǔ)義信息。Patel 等[13]探索深度學(xué)習(xí)用于微表情識(shí)別任務(wù),提出一種選擇性的深層特征進(jìn)行微表情識(shí)別,去除不相關(guān)的深層特征。Peng 等[14]提出了雙時(shí)域尺度卷積神經(jīng)網(wǎng)絡(luò)(dual temporal scale convolutional neural network,DTSCNN),采用不同的網(wǎng)絡(luò)流來(lái)適應(yīng)不同幀率的微表情視頻序列,避免了過(guò)擬合問(wèn)題的出現(xiàn)。同時(shí),將光流序列加到淺層網(wǎng)絡(luò),使得網(wǎng)絡(luò)可以得到高層次特征。Verma 等[15]提出了LEARNet(lateral accretive hybrid network)捕捉面部表情的微觀特征,在網(wǎng)絡(luò)中加入AL (accretion layers)細(xì)化表達(dá)特征。目前的工作多采用微表情視頻序列進(jìn)行研究,該方法不僅計(jì)算復(fù)雜、耗時(shí)長(zhǎng),而且實(shí)際應(yīng)用場(chǎng)景中通常也難以獲得完整的微表情視頻序列用以分類,具有一定的局限性。針對(duì)這一情況,本文提出了基于雙注意力模型和遷移學(xué)習(xí)的Apex 幀微表情識(shí)別方法,主要貢獻(xiàn)有3 點(diǎn):
1)借鑒CBAM[16]的設(shè)計(jì)理論,并針對(duì)微表情的特性,在ResNet18[17]網(wǎng)絡(luò)的基礎(chǔ)上集成空間注意力模塊、通道注意力模塊,提升神經(jīng)網(wǎng)絡(luò)對(duì)Apex 幀微表情特征的提取性能;
2)采用Focal Loss[18]函數(shù),解決微表情樣本比例嚴(yán)重失衡的問(wèn)題;
3)使用遷移學(xué)習(xí)的方式,從宏表情識(shí)別領(lǐng)域遷移到微表情識(shí)別領(lǐng)域,緩解微表情數(shù)據(jù)集樣本嚴(yán)重不足的情況。
本文所提出的微表情識(shí)別算法主要包括微表情視頻序列預(yù)處理和深度學(xué)習(xí)分類兩部分,其整體流程如圖1 所示。
圖1 本文算法整體流程Fig.1 Proposed overall flow of the algorithm
大多數(shù)微表情識(shí)別算法都將微表情作為一個(gè)視頻序列進(jìn)行處理。視頻序列一般包含起始幀(Onset frame)、峰值幀(Apex frame)和終止幀(Offset frame)。其中,Apex 幀是微表情面部肌肉運(yùn)動(dòng)變化最為明顯的一幀,最具有代表性。Liong 等[19-20]認(rèn)為高幀率下的微表情視頻序列并不是每一幀都是有效的,相反會(huì)造成計(jì)算冗余現(xiàn)象的發(fā)生。他們提出了只使用起始幀和峰值幀的特征提取方法Bi-WOOF 和OFF-ApexNet,識(shí)別效果非常顯著。為了減少計(jì)算量,更加高效、快捷地將微表情進(jìn)行分類,本文選取微表情視頻序列中已標(biāo)注的Apex 幀進(jìn)行處理。
在圖像預(yù)處理過(guò)程中,使用OpenCV 和Dlib庫(kù)實(shí)現(xiàn)人臉68 個(gè)關(guān)鍵特征點(diǎn)檢測(cè)并進(jìn)行標(biāo)注。由于攝像頭采集的人臉圖像存在姿態(tài)多樣、角度多樣等問(wèn)題,通過(guò)人臉對(duì)齊使之更符合微表情識(shí)別的需求。在已標(biāo)注的特征關(guān)鍵點(diǎn)中選取左內(nèi)眼角坐標(biāo)(x1,y1) 和右內(nèi)眼角坐標(biāo) (x2,y2),人臉?biāo)綂A角 θ 和人眼距離dist 計(jì)算公式如式(1)所示:
將人臉眼距的中點(diǎn)作為旋轉(zhuǎn)中心(x0,y0),則旋轉(zhuǎn)后的坐標(biāo)計(jì)算公式如式(2)所示:
深度學(xué)習(xí)的框架設(shè)計(jì)部分將分別介紹空間注意力機(jī)制、通道注意力機(jī)制、殘差學(xué)習(xí)單元集成雙注意力模型的方法、損失函數(shù)的選擇、遷移學(xué)習(xí)的運(yùn)用方式。
空間注意力機(jī)制專注于特征圖中的重要空間信息部分,本文使用的空間注意力模塊(spatial attention module)如圖2 所示。將特征圖作為空間注意力模塊的輸入,分別在最大池化操作和平均池化操作后進(jìn)行拼接,接著采用核為7×7 的卷積提取感受野,最后通過(guò)Sigmoid 激活函數(shù)生成空間注意力特征圖??臻g注意力模塊定義為
圖2 空間注意力模塊Fig.2 Spatial attention module
通道注意力機(jī)制關(guān)注不同特征通道的權(quán)重分布,本文使用的通道注意力模塊(channel attention module)如圖3 所示。假設(shè)輸入特征圖F∈RC×H×W,C、H和W分別代表特征圖的通道數(shù)、高和寬,分別經(jīng)過(guò)最大池化和平均池化后得到特征圖Fm∈RC×1×1和Fa∈RC×1×1,接著將Fm和Fa分別依次進(jìn)行核為1×1 的卷積、ReLU 激活函數(shù)、核為1×1 的卷積,然后對(duì)這兩個(gè)輸出向量按元素求和,得到尺度為[C×1×1] 的向量,最后該向量通過(guò)Sigmoid 激活函數(shù)得到通道權(quán)重結(jié)果。通道注意力模塊定義為
圖3 通道注意力模塊Fig.3 Channel attention module
本文將空間注意力模塊、通道注意力模塊集成到ResNet18 網(wǎng)絡(luò)的殘差學(xué)習(xí)單元中,如圖4 所示。具體流程為輸入特征圖F∈RC×H×W,與S∈R1×H×W元素相乘得到F′,F(xiàn)′再與C∈RC×1×1相乘得到F′′,最后F′′與F元素相加得到最終輸出的特征圖F′′′。相比CBAM 的設(shè)計(jì)保留了更多原始特征圖的細(xì)節(jié)信息,同時(shí)降低了整體網(wǎng)絡(luò)的復(fù)雜度,更加適用于具有持續(xù)時(shí)間短、強(qiáng)度低的微表情。其定義為
圖4 集成雙注意力模塊的殘差學(xué)習(xí)單元Fig.4 Residual learning unit integrated with a dual attention module
由于微表情持續(xù)時(shí)間短、區(qū)別度低、采集難度高,微表情數(shù)據(jù)集中常常出現(xiàn)樣本分布不平衡的現(xiàn)象。為了解決這一問(wèn)題,本文使用Focal Loss 函數(shù)。該損失函數(shù)是交叉熵?fù)p失函數(shù)的改進(jìn)版本,一個(gè)二分類交叉熵?fù)p失函數(shù)可以表示為
式中p表示模型預(yù)測(cè)屬于類別y=1 的概率。為了方便標(biāo)記,定義為
即交叉熵CE 為
Focal Loss 在交叉熵?fù)p失的基礎(chǔ)上添加一個(gè)調(diào)制系數(shù) (1?pt)γ,其中 γ≥0,定義為
其作用在于通過(guò)賦予易分類樣本較小的權(quán)重,賦予難分類樣本較大的權(quán)重,使模型在訓(xùn)練時(shí)更專注于難分類的樣本,在一定程度上解決樣本分布不平衡的問(wèn)題。在多分類任務(wù)下,F(xiàn)ocal Loss則定義為
式中 α 表示類別i的權(quán)重因子。
傳統(tǒng)的深度學(xué)習(xí)中,模型充分預(yù)估結(jié)果需要數(shù)據(jù)集樣本數(shù)量足夠、訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)滿足同分布。由于微表情數(shù)據(jù)集的規(guī)模都非常小,直接應(yīng)用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練可能會(huì)引發(fā)過(guò)擬合、準(zhǔn)確率低等問(wèn)題,而遷移學(xué)習(xí)可以從大型數(shù)據(jù)集中學(xué)習(xí)先驗(yàn)知識(shí),將模型參數(shù)遷移至待訓(xùn)練的網(wǎng)絡(luò)模型中,從而提高模型的訓(xùn)練效率。
宏表情識(shí)別與微表情識(shí)別之間具有一定的共同之處,比如都有高興、驚奇、沮喪、恐懼、厭惡等表情標(biāo)簽,都能夠反映人的情緒。但微表情一般是一段視頻,而宏表情則是根據(jù)單張圖片進(jìn)行分類。因?yàn)楸疚倪x取微表情視頻序列的Apex 幀進(jìn)行識(shí)別,即和宏表情識(shí)別的神經(jīng)網(wǎng)絡(luò)輸入方式一樣,所以遷移學(xué)習(xí)能夠更好地應(yīng)用。本文將宏表情識(shí)別作為輔助域,微表情識(shí)別作為目標(biāo)域,通過(guò)遷移學(xué)習(xí)共享模型參數(shù)提高識(shí)別準(zhǔn)確率。
實(shí)驗(yàn)使用中國(guó)科學(xué)院心理研究所傅小蘭課題組提供的CASME II 微表情數(shù)據(jù)集[21],包括255 個(gè)微表情視頻樣本,采樣率為200 f/s,分辨率為280 像素×340 像素,26 位采集對(duì)象均來(lái)自亞洲,平均年齡22.03 歲。微表情分類為厭惡(63 個(gè)樣本)、高興(32 個(gè)樣本)、驚奇(28 個(gè)樣本)、壓抑(27 個(gè)樣本)、沮喪(4 個(gè)樣本)、恐懼(2 個(gè)樣本)和其他(99)共7 種。由于沮喪和恐懼兩種類型的樣本數(shù)量過(guò)少,因此本實(shí)驗(yàn)僅使用其余5 類共249個(gè)樣本進(jìn)行實(shí)驗(yàn),其組成分布如圖5 所示??梢钥吹?,“其他”的樣本數(shù)量占據(jù)了很大一部分。
圖5 CASME II 數(shù)據(jù)集樣本分布Fig.5 Sample distribution of CASME II database
遷移學(xué)習(xí)采用來(lái)自卡耐基梅隆大學(xué)的The Extended Cohn-Kanade Dataset (CK+)[22]數(shù)據(jù)集,該數(shù)據(jù)集包含123 位錄制者的593 組表情序列,其中有327 組被標(biāo)注為憤怒、厭惡、恐懼、高興、沮喪、驚奇和蔑視,共7 種表情類別。與CASME II 微表情數(shù)據(jù)集中每個(gè)表情序列包含起始幀至終止幀不同,該宏表情序列包含表情的中性狀態(tài)至表情的最大表達(dá)狀態(tài)。本文從帶標(biāo)簽的表情序列中選取表現(xiàn)比較強(qiáng)烈的共981 張圖片作為實(shí)驗(yàn)數(shù)據(jù)。
本實(shí)驗(yàn)在Windows 10 系統(tǒng)環(huán)境下,預(yù)處理部分使用OpenCV、Dlib 庫(kù),神經(jīng)網(wǎng)絡(luò)基于PyTorch深度學(xué)習(xí)框架進(jìn)行搭建,同時(shí)使用NVDIA CUDA框架10.1 和cuDNN 8.0.3 庫(kù)。實(shí)驗(yàn)硬件平臺(tái)中央處理器為Intel Core i9-9900X,內(nèi)存為64 GB,顯卡型號(hào)為NVDIA GeForce RTX 2080TI×2,硬盤(pán)為SAMSUNG 970 EVO PLUS 1TB。
本文使用留一交叉驗(yàn)證法(leave-one-subjectout cross-validation,LOSOCV),即將每位采集對(duì)象分別作為測(cè)試集,對(duì)CASME II 微表情數(shù)據(jù)集一共進(jìn)行26 個(gè)訓(xùn)練測(cè)試過(guò)程。目前的研究工作中多采用此驗(yàn)證方法,優(yōu)點(diǎn)在于每次迭代中都使用了最大可能數(shù)目的樣本來(lái)訓(xùn)練,充分利用數(shù)據(jù),采樣具有確定性,而且由于微表情數(shù)據(jù)集樣本數(shù)較少,不會(huì)造成很大的計(jì)算開(kāi)銷。另外,每位采集對(duì)象的微表情之間具有一定的差異性,將單獨(dú)一位采集對(duì)象的所有微表情樣本作為測(cè)試集,能夠更好地反應(yīng)方法的泛化能力。該數(shù)據(jù)集中已經(jīng)標(biāo)注了Apex 幀的位置,直接采用數(shù)據(jù)集中標(biāo)注的峰值幀作為實(shí)驗(yàn)所用的Apex 幀。由于數(shù)據(jù)集中每位采集對(duì)象包含的微表情類別及樣本數(shù)量差異較大,所以使用留一交叉驗(yàn)證法是個(gè)極大的挑戰(zhàn)。在留一交叉驗(yàn)證的過(guò)程中,所有的微表情樣本都會(huì)被分類器運(yùn)算一次,本文采用對(duì)數(shù)據(jù)集整體準(zhǔn)確率判定的方式評(píng)價(jià)模型的性能,其準(zhǔn)確率計(jì)算公式為
為了研究Focal Loss 函數(shù)在微表情識(shí)別方面的有效性,本文在原生ResNet18 的基礎(chǔ)上對(duì)比使用Cross Entropy Loss 函數(shù),進(jìn)行了2 組實(shí)驗(yàn)。將原始圖片均處理為224 像素×224 像素大小輸入網(wǎng)絡(luò),初始學(xué)習(xí)率設(shè)為0.001,每批次包含249 張圖片,在實(shí)驗(yàn)中使用兩張顯卡并行計(jì)算。實(shí)驗(yàn)結(jié)果如表1 所示,在使用Focal Loss 函數(shù)后,其識(shí)別準(zhǔn)確率提升了1.21%,證明使用Focal Loss 函數(shù)在微表情樣本不平衡的情況下對(duì)于微表情識(shí)別有著更好的性能。
表1 各損失函數(shù)實(shí)驗(yàn)結(jié)果對(duì)比Table 1 Comparison of experimental results of various loss functions
為了研究空間注意力模塊、通道注意力模塊和混合注意力模塊對(duì)于微表情識(shí)別是否有效,本文在使用Focal Loss 函數(shù)的基礎(chǔ)上進(jìn)行了4 組對(duì)比實(shí)驗(yàn),分別是原生ResNet18 模型、融合空間注意力模塊的ResNet18 模型、融合通道注意力模塊的ResNet18 模型和融合雙注意力模塊的ResNet18模型,識(shí)別準(zhǔn)確率如表2 所示。可以看到,3 種融合注意力模塊的方法在識(shí)別準(zhǔn)確率方面,相比較原生ResNet18 分別提升了4.02%、2.41%和4.82%,證明該雙注意力機(jī)制有助于微表情識(shí)別。
表2 各神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果對(duì)比Table 2 Comparison of experimental results of various neural networks
結(jié)合Focal Loss 和雙注意力模塊的識(shí)別算法在CASME II 數(shù)據(jù)上實(shí)驗(yàn),得到最終準(zhǔn)確率為43.37%。將該算法應(yīng)用于CK+數(shù)據(jù)集,按照8∶2 劃分訓(xùn)練集和測(cè)試集,多次訓(xùn)練后選取測(cè)試集準(zhǔn)確率最高為94.38% 的模型進(jìn)行遷移學(xué)習(xí)。在模型預(yù)訓(xùn)練后,微表情識(shí)別準(zhǔn)確率提升至44.97%。為了進(jìn)一步全面衡量分類器的性能,在實(shí)驗(yàn)中增加另外一個(gè)評(píng)價(jià)標(biāo)準(zhǔn)F1值(F1-score),其定義為
式中:TP 表示真陽(yáng)性(true positive)的個(gè)數(shù);FP 表示假陽(yáng)性(false positive)的個(gè)數(shù);FN 表示假陰性(false negative)的個(gè)數(shù);P代表準(zhǔn)確率;R代表召回率。表3 給出了各種方法在CASME II 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果,本文算法在準(zhǔn)確率方面相比其他微表情識(shí)別方法有一定的提升,在F1值方面也優(yōu)于大多數(shù)算法。
表3 CASME II 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果對(duì)比Table 3 Comparison of experimental results on CASME II database
本文使用集成空間、通道雙注意力機(jī)制的ResNet18 網(wǎng)絡(luò),更加關(guān)注微表情的細(xì)節(jié)特征,同時(shí)引入Focal Loss 函數(shù)緩解微表情數(shù)據(jù)集樣本類別不平衡的狀況。在CK+宏表情數(shù)據(jù)集上預(yù)訓(xùn)練后,遷移模型參數(shù)至CASME II 微表情數(shù)據(jù)集再進(jìn)行訓(xùn)練測(cè)試,取得了不錯(cuò)的識(shí)別效果。考慮到本文算法僅使用微表情視頻序列中的Apex 幀,相比現(xiàn)有的一些算法有著更為廣泛的適用場(chǎng)景。后續(xù)研究將進(jìn)一步關(guān)注于微表情數(shù)據(jù)集中樣本的平衡性問(wèn)題,同時(shí)更深地挖掘宏表情與微表情之間的關(guān)聯(lián),提高微表情識(shí)別的精度。