梁艷,溫興,潘家輝
(華南師范大學(xué) 軟件學(xué)院, 廣東 佛山 528225)
人臉表情是人類最自然、最直接的情緒表達方式之一。研究發(fā)現(xiàn),在人們?nèi)粘=涣鳒贤ǖ倪^程中,有55%的情感信息靠人臉表情進行傳遞[1]。研究人臉表情識別有效促進人機交互系統(tǒng)的發(fā)展。目前,該技術(shù)已廣泛應(yīng)用在醫(yī)學(xué)、安全監(jiān)控、教育等領(lǐng)域[2]。
為了推動人臉表情識別的理論研究與實際應(yīng)用,在過去的十幾年里,研究者們已公開了多個表情數(shù)據(jù)集,并提出了多種方法來提高表情識別的性能。但是,大部分的表情識別算法都基于一個前提,即:訓(xùn)練集和測試集來自同一個數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)特征分布相同。然而這一假設(shè)并不總是成立,在實際應(yīng)用中,測試集與訓(xùn)練集通常來自不同的數(shù)據(jù)分布,因此模型需要進行跨數(shù)據(jù)集表情識別驗證。
近年來,領(lǐng)域自適應(yīng)方法成為遷移學(xué)習(xí)中最為熱門的研究之一,其核心問題是解決數(shù)據(jù)分布不一致對模型性能的影響。Xu 等[3]證明,把源域和目標(biāo)域的特征范數(shù)調(diào)整到一個較大范圍的值可以獲得顯著的遷移收益。Lee 等[4]利用特定任務(wù)的決策邊界和Wasserstein 度量在領(lǐng)域之間進行特征分布對齊。考慮到領(lǐng)域自適應(yīng)方法在解決跨域問題的有效性,有學(xué)者嘗試把基于統(tǒng)計差異的領(lǐng)域自適應(yīng)方法用于跨數(shù)據(jù)集表情識別任務(wù)。莫宏偉等[5]利用一個特征變換矩陣,把源域和目標(biāo)域數(shù)據(jù)映射到公共子空間,減小域間分布差異。Long 等[6]基于統(tǒng)計的思想提出了一種新的深度自適應(yīng)網(wǎng)絡(luò)(deep adaptation network,DAN)架構(gòu),把領(lǐng)域自適應(yīng)方法與深度學(xué)習(xí)技術(shù)結(jié)合起來。Li 等[7]將DAN 網(wǎng)絡(luò)應(yīng)用到人臉表情識別,引入最大均值誤差(maximum mean discrepancy,MMD)來測量源域與目標(biāo)域的特征散度,減小源域與目標(biāo)域的分布距離。Xu 等[8-9]基于MMD 損失尋找遠離表情特征中心的異常樣本,并在訓(xùn)練過程中通過抑制異常樣本來提高跨數(shù)據(jù)集表情識別準(zhǔn)確率。
受對抗學(xué)習(xí)技術(shù)的啟發(fā),有部分學(xué)者采用基于對抗學(xué)習(xí)的領(lǐng)域自適應(yīng)方法,即域?qū)棺赃m應(yīng)方法,實現(xiàn)跨數(shù)據(jù)集表情識別。該類方法的核心思想是加入一個域鑒別器,使之與表情分類器進行對抗,在對抗過程中學(xué)習(xí)到同時適用于兩個數(shù)據(jù)集的表情特征。Chen 等[10]將經(jīng)典的域?qū)棺赃m應(yīng)方法:領(lǐng)域?qū)股窠?jīng)網(wǎng)絡(luò)(domain-adversarial neural network,DANN)[11]、條件域?qū)棺赃m應(yīng)網(wǎng)絡(luò)(conditional domain adversarial network,CDAN)[12]應(yīng)用到跨數(shù)據(jù)集表情識別任務(wù),學(xué)習(xí)領(lǐng)域不變性特征。Wang 等[13]在域?qū)怪型ㄟ^縮小目標(biāo)數(shù)據(jù)集樣本與源數(shù)據(jù)集對應(yīng)類別的特征中心的距離,擴大與源數(shù)據(jù)集不同類別的特征中心的距離,實現(xiàn)類級別的對齊。
領(lǐng)域自適應(yīng)方法僅在特征分布層面上對齊不同域特征分布,目標(biāo)數(shù)據(jù)集無需提供標(biāo)簽信息,因此可應(yīng)用于無監(jiān)督的跨數(shù)據(jù)集表情識別[14]。但是,目前大部分基于領(lǐng)域自適應(yīng)的跨數(shù)據(jù)集表情識別方法僅對齊表情特征的邊緣分布,未關(guān)注不同數(shù)據(jù)集間的表情類內(nèi)差異導(dǎo)致特征的條件分布差異。而使用通用的域?qū)棺赃m應(yīng)算法強行對齊兩個數(shù)據(jù)集間的整體分布,將不可避免地把來自源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集的不同表情類別樣本混合在一起,導(dǎo)致不同表情數(shù)據(jù)集間類別不匹配問題。
因此,為了提高跨數(shù)據(jù)集表情識別的特征可遷移性,解決跨數(shù)據(jù)集表情類別不匹配問題,本文提出一種利用表情融合特征對齊不同數(shù)據(jù)集聯(lián)合分布的領(lǐng)域自適應(yīng)方法,利用編碼器(Encoder)模塊融合表情的全局特征和局部特征,并通過表情分類器與細粒度域鑒別器聯(lián)合對抗訓(xùn)練,提高分類器在無標(biāo)簽的目標(biāo)數(shù)據(jù)集的識別效果。

圖1 基于表情融合特征的域?qū)咕W(wǎng)絡(luò)模型框架Fig. 1 Framework for domain adversarial network based on facial expression fusion feature
根據(jù)人臉動作單元(action unit,AU)[15]的劃分可知,表情的決定性信息聚集在人臉的五官位置。為了提高表情特征的可遷移性,本文提取人臉區(qū)域的全局特征和五官區(qū)域的局部特征,并利用Encoder 模型進行特征融合。特征提取器的具體結(jié)構(gòu)如圖2 所示。

圖2 特征提取器的結(jié)構(gòu)Fig. 2 Structure of feature extractor
首先使用多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)(multi-task convolutional neural network,MTCNN)[16]對表情數(shù)據(jù)集的人臉圖像進行人臉定位以及5 個關(guān)鍵點(左眼、右眼、鼻子、左嘴角、右嘴角)定位。然后,將人臉區(qū)域輸入到四層殘差網(wǎng)絡(luò)[17],提取表情的全局特征。此外,以關(guān)鍵點為中心,截取5 個大小為0.2W×0.2H(W、H分別為人臉區(qū)域的寬和高)的子圖作為判斷表情類別的關(guān)鍵區(qū)域,輸入兩層殘差網(wǎng)絡(luò),提取表情的局部特征。
為了使模型學(xué)習(xí)到領(lǐng)域不變性的表情特征,本文基于Transformer[18]的Encoder 模塊,設(shè)計了一個具有N層的表情Encoder 層,將上述提取的全局和局部表情特征輸入Encoder 層進行表情特征的融合。Encoder 層包括一個多頭注意力網(wǎng)絡(luò)和一個前饋網(wǎng)絡(luò)。首先根據(jù)全局和局部表情特征獲得3 個自注意力向量q、k和v[19],然后,輸入多頭注意力網(wǎng)絡(luò),根據(jù)下式計算特征間的權(quán)重,獲得加權(quán)后的特征ci:
其中:d為特征維度,這里為128。把加權(quán)特征ci輸入前饋網(wǎng)絡(luò)進行學(xué)習(xí),最終獲得表情融合特征xi。
無監(jiān)督的跨數(shù)據(jù)集表情識別任務(wù)中,其目標(biāo)是學(xué)習(xí)一個表情識別模型G,令G可以在不帶標(biāo)簽的目標(biāo)數(shù)據(jù)集上實現(xiàn)較高表情識別準(zhǔn)確率。具體來說,表情識別模型G由特征提取器F和表情分類器C構(gòu)成。域?qū)棺赃m應(yīng)方法在解決跨域表情識別問題時,在表情識別模型G的基礎(chǔ)上引入了域鑒別器D。通過域鑒別器D對表情識別模型G提取的表情特征進行域來源判斷,在反向傳播時加入梯度反轉(zhuǎn)層,使模型混淆來自不同數(shù)據(jù)集的表情特征,從而使表情分類器C能應(yīng)用到目標(biāo)數(shù)據(jù)集。最后,通過表情分類器C和域鑒別器D聯(lián)合對抗訓(xùn)練,實現(xiàn)在無標(biāo)簽的目標(biāo)數(shù)據(jù)集上進行表情分類。
大部分域?qū)棺赃m應(yīng)方法中,域鑒別器D采用二分類方式區(qū)分表情特征來自源數(shù)據(jù)集還是目標(biāo)數(shù)據(jù)集,再由梯度反轉(zhuǎn)進行特征混淆,對齊數(shù)據(jù)集間邊緣分布。但是,由于人臉表情存在類內(nèi)差異大、類間差異小的特性,僅僅混淆源、目標(biāo)數(shù)據(jù)集內(nèi)的所有特征,會引起表情數(shù)據(jù)集間跨域類別不匹配問題。因此,本文對算法進行改進,令表情分類器C與域鑒別器D不僅在數(shù)據(jù)集間進行宏觀的對抗,還增加了表情相同類間的細粒度對抗,使數(shù)據(jù)集相同類間能實現(xiàn)協(xié)調(diào)自適應(yīng)。
傳統(tǒng)域?qū)棺赃m應(yīng)損失為
式中:Lcls為表情的分類損失,Ld為域判別損失,α 和 β分別是分類損失和域判別損失的權(quán)重。Lcls的目的是幫助G學(xué)習(xí)到表情分類信息,它采用交叉熵損失在源數(shù)據(jù)集上最小化預(yù)測分類與真實表情分類間的區(qū)別,計算公式為
式中:S表示源域樣本數(shù)量,K表示表情類別,yik為源域樣本i第k類的類別信息,pik為表情識別模型G預(yù)測源域樣本i為第k類表情的類別信息。
式(2)中的域判別損失Ld目的是幫助域鑒別器D區(qū)分來自不同數(shù)據(jù)集的表情特征,使提取的特征能對齊源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集,損失計算公式為
式中:d為0 代表特征來自源數(shù)據(jù)集,為1 則代表特征來自目標(biāo)數(shù)據(jù)集;S為源數(shù)據(jù)集樣本數(shù)量;T為目標(biāo)數(shù)據(jù)集樣本數(shù)量;P(d=0|x)為域鑒別器預(yù)測特征為源數(shù)據(jù)集的概率。
傳統(tǒng)的域鑒別器只能判別d=0或者d=1,即特征標(biāo)簽為[1,0]或[0,1]。為了將表情類別信息納入對抗性學(xué)習(xí)框架,達到同時對齊表情特征的邊緣分布和條件分布的效果,本文修改了傳統(tǒng)的域鑒別器D,將2個域判別通道擴展為 2K通道(K為表情類別數(shù)),進行不同數(shù)據(jù)集間的整體對抗以及不同數(shù)據(jù)集相同表情類別間的細粒度對抗。通過更細粒度的對抗性學(xué)習(xí),不僅僅對齊數(shù)據(jù)集間表情特征的邊緣分布,而且對齊特征的類內(nèi)條件分布。
本文使用表情特征提取器和分類器對目標(biāo)域進行軟標(biāo)簽的標(biāo)注,然后將源數(shù)據(jù)集表情圖像與目標(biāo)數(shù)據(jù)集表情圖像的標(biāo)簽擴展為 2K維標(biāo)簽,其中源域標(biāo)簽在1至K維使用原來的標(biāo)簽信息,在K+1至 2K維數(shù)據(jù)置為0;目標(biāo)域標(biāo)簽在1 至K維數(shù)據(jù)置為0,在K+1至 2K維使用軟標(biāo)簽標(biāo)注。通過對i和K+i類進行對抗自適應(yīng)即可實現(xiàn)不同數(shù)據(jù)集間表情分布對齊。
為了實現(xiàn)基于類別的對抗,本文將提取的融合特征輸入細粒度域鑒別器中計算細粒度類判別損失。與傳統(tǒng)域判別損失Ld不同的是,本文在LD加入了類別信息,具體計算公式如下:
式中:aik和ajk分別為源域樣本i和目標(biāo)域樣本j為第k類的信息,即上文所述構(gòu)建 2K維的標(biāo)簽信息。
此外,為了引導(dǎo)特征提取器F學(xué)習(xí)到兩個數(shù)據(jù)集共用的表情特征,我們還增加了一個整體判別損失Ladv,其目的是幫助域鑒別器獲取目標(biāo)數(shù)據(jù)集的類別信息,從而經(jīng)過梯度翻轉(zhuǎn)后可以混淆兩個數(shù)據(jù)集的類別信息,進而引導(dǎo)特征提取器F學(xué)習(xí)共用表情特征,Ladv的計算公式如下:
綜上所述,本文采用的總損失L為
其中: ω1、 ω2和 ω3分別是表情分類損失、細粒度類判別損失和整體判別損失的權(quán)重。
在訓(xùn)練過程中,將源數(shù)據(jù)集表情圖像的特征輸入表情分類器中計算表情分類損失Lcls,將源、目標(biāo)數(shù)據(jù)集表情圖像的特征輸入域鑒別器計算域判別損失LD和Ladv,最終,在域鑒別器D和表情分類器C的對抗學(xué)習(xí)下對齊不同表情數(shù)據(jù)集間的聯(lián)合分布。
本文采用6 個表情數(shù)據(jù)集進行算法測試,具體包括實驗室環(huán)境下的CK+[20]和JAFFE[21]數(shù)據(jù)集和自然場景下的SFEW2.0[22]、FER2013[23]、ExpW[24]、RAF-DB[25]數(shù)據(jù)集。這些數(shù)據(jù)集都包含憤怒、厭惡、恐懼、高興、悲傷、驚訝、中性等7 種表情。
CK+數(shù)據(jù)集包含來自123 個實驗對象的593個圖像序列,每個圖像序列都是從中性表情到峰值表情。本文參照文獻[7]的方法,從每個序列中抽取1 幀中性表情圖像和3 幀表情圖像,去除無效數(shù)據(jù)后共獲得1 236 張圖像進行實驗。
JAFFE 數(shù)據(jù)集包括來自10 位日本女性共213張圖像。本文使用了所有圖像進行實驗。
SFEW2.0 數(shù)據(jù)集由不同電影的表情圖像構(gòu)成,具有不同的頭部姿勢、年齡范圍、遮擋和照明。該數(shù)據(jù)集分為訓(xùn)練集、驗證集和測試集,分別有958、436 和372 個樣本。
FER2013 是一個自然場景下獲得的表情數(shù)據(jù)集,包含35 887 張大小為48 像素×48 像素的圖像。數(shù)據(jù)集進一步分為28 709 張圖像的訓(xùn)練集、3 589張圖像的驗證集和3 589 張圖像的測試集。
ExpW 數(shù)據(jù)集由谷歌圖像搜索中下載的表情圖像構(gòu)成,包含91 793 張人臉圖像。
RAF-DB 數(shù)據(jù)集也是由互聯(lián)網(wǎng)上收集的圖像構(gòu)成,共29 672 張表情圖像,其中15 339 張圖像有7 種基本表情,分為12 271 個訓(xùn)練樣本和3 068個測試樣本。
遵循跨數(shù)據(jù)集表情識別的通用標(biāo)準(zhǔn)[14],本文選取平均準(zhǔn)確率作為評價指標(biāo)。首先計算出某表情類別的準(zhǔn)確率,然后再計算所有類別的準(zhǔn)確率均值,即為跨數(shù)據(jù)集表情識別算法的平均準(zhǔn)確率。
本文方法的訓(xùn)練目標(biāo)為最小化式(7)的總損失L,以目標(biāo)數(shù)據(jù)集獲得最高平均準(zhǔn)確率作為標(biāo)準(zhǔn),訓(xùn)練表情識別模型G和域鑒別器D。本文分兩個階段進行訓(xùn)練。第一階段,在源數(shù)據(jù)集采用隨機梯度下降(stochastic gradient descent,SGD)算法訓(xùn)練特征提取器F和表情分類器C,初始學(xué)習(xí)率設(shè)為0.01,SGD 的動量設(shè)為0.9,訓(xùn)練100 輪后獲得初始的表情識別模型G;第二階段,加入域鑒別器D,使用總損失L進行對抗訓(xùn)練,使初始表情識別模型G遷移到不帶標(biāo)簽的域鑒別器中,在這步驟中同樣使用SGD 算法訓(xùn)練模型,除了特征提取器F和表情分類器C的學(xué)習(xí)率降到0.001 外,其余超參數(shù)均與第一階段相同,本階段訓(xùn)練采用學(xué)習(xí)率遞減策略,每20 輪學(xué)習(xí)率乘以0.5。式(7)中3 個損失權(quán)重 ω1、 ω2和 ω3的比值設(shè)為50∶50∶1。
為探究融合特征對表情識別性能的影響,本文采用相同的網(wǎng)絡(luò)提取全局特征、局部特征和融合特征,在6 個數(shù)據(jù)集進行表情識別實驗,結(jié)果如表1 所示(文中表格加粗?jǐn)?shù)據(jù)為最佳結(jié)果)。

表1 分別采用全局特征、局部特征、融合特征進行表情識別的結(jié)果對比Table 1 Comparison of expression recognition results using global features, local features, and fusion features, respectively%
從實驗結(jié)果可知,本文提出的融合特征方法在6 個數(shù)據(jù)集的表情識別性能均優(yōu)于僅采用全局特征或局部特征的方法,它的平均表情識別準(zhǔn)確率比僅采用全局特征的方法提高了4.95%,比僅采用局部特征的方法則提高了24.56%。由此可見,表情全局特征與局部特征存在互補性,對兩種特征進行融合,可以大幅提高表情識別的準(zhǔn)確率。
此外,為了驗證細粒度域?qū)棺赃m應(yīng)方法在跨數(shù)據(jù)集表情識別任務(wù)中的有效性,我們參照文獻[14]的做法,采用RAF-DB 作為源域,其余5 個數(shù)據(jù)集作為目標(biāo)域,使用融合特征進行對抗,與無域?qū)狗椒ā煞N通用域?qū)棺赃m應(yīng)方法(DANN[11]和CDAN[12])進行模型遷移效果對比,實驗結(jié)果如表2 所示。

表2 無域?qū)埂⑼ㄓ糜驅(qū)埂⒓毩6扔驅(qū)沟目鐢?shù)據(jù)集識別結(jié)果對比Table 2 Comparison of cross-dataset recognition results for non-domain adversarial, general domain adversarial,and fine-grained domain adversarial%
從表2 可知,采用細粒度域?qū)棺赃m應(yīng)方法的結(jié)果均優(yōu)于無域?qū)狗椒ê虳ANN 方法,其平均準(zhǔn)確率相較于無域?qū)狗椒ㄌ岣吡?2.19%,相較于DANN 和CDAN 方法,分別提高了4.62%和2.50%。實驗結(jié)果證明,細粒度域?qū)棺赃m應(yīng)方法能有效地提高跨數(shù)據(jù)集的表情識別性能。
為驗證本文方法的性能,我們把本文方法與近五年的幾個跨數(shù)據(jù)集算法進行對比。所有方法均使用相同的源數(shù)據(jù)集RAF-DB 和主干網(wǎng)絡(luò)Res-Net-18,分別以CK+、JAFFE、SFEW2.0、FER2013、ExpW 作為目標(biāo)域進行測試,結(jié)果如表3 所示。其中,POCAN[13]和ESSRN[9]方法的數(shù)據(jù)來源于原文獻,其他幾種方法的數(shù)據(jù)則來自文獻[10]對這些算法的復(fù)現(xiàn)結(jié)果。

表3 本文方法與其他方法的比較Table 3 Comparison of the proposed method with other methods%
從表3 可以看出,本文方法在CK+和FER2013進行跨數(shù)據(jù)集表情識別時,獲得最優(yōu)識別結(jié)果。在JAFFE、SFEW2.0 和ExpW 數(shù)據(jù)集也獲得了次優(yōu)的準(zhǔn)確率。本文方法的平均準(zhǔn)確率達到63.70%,高于其他方法。
值得注意的是,本文方法在SFEW2.0 和ExpW數(shù)據(jù)集的準(zhǔn)確率稍低于AGRA 方法。這可能是因為兩個數(shù)據(jù)集均為自然場景下獲取的數(shù)據(jù)集,部分人臉存在較大的頭部姿態(tài)變化以及面部遮擋等問題,導(dǎo)致局部表情特征獲取失敗,影響了本文提出的表情識別模型的性能。
為了進一步證明細粒度域鑒別器能有效地對齊不同數(shù)據(jù)集表情類別間的分布,我們把遷移過程中不同階段的表情特征進行可視化展示和對比。具體來說,我們以RAF-DB 為源數(shù)據(jù)集,CK+為目標(biāo)數(shù)據(jù)集,將遷移過程的4 個階段:訓(xùn)練前,細粒度域?qū)骨埃▋H在源數(shù)據(jù)集訓(xùn)練),細粒度域?qū)怪校尤肽繕?biāo)數(shù)據(jù)集后,經(jīng)過30 輪的訓(xùn)練),細粒度域?qū)购蟆_@四種情況的表情特征使用t-SNE 算法[27]降維,進行可視化展示,如圖3 所示。

圖3 RAF-DB 遷移到CK+的4 個階段的特征分布Fig. 3 Feature distribution of four stages of RAF-DB transfer to CK+
從圖3 可以看到,在模型訓(xùn)練前,兩個數(shù)據(jù)集表情類別的特征分布非常混雜,無法進行表情分類。在細粒度域?qū)骨埃捎谝呀?jīng)在源數(shù)據(jù)集進行了第一階段的表情分類訓(xùn)練,兩個數(shù)據(jù)集的相同表情類別的特征聚類開始顯現(xiàn)。在細粒度域?qū)褂?xùn)練過程中,兩個數(shù)據(jù)集的相同表情類別聚類更明顯,類間差距也逐漸擴大。細粒度域?qū)褂?xùn)練完成后,兩個數(shù)據(jù)集的特征已呈現(xiàn)聚類,表情的類間分布差異明顯。這表明,通過細粒度域?qū)褂?xùn)練,可以學(xué)習(xí)到不同數(shù)據(jù)集的相同表情類別信息,并聚合在一起,同時加大不同表情類間距離,從而降低兩個數(shù)據(jù)集間的特征分布差異。
為了解決跨數(shù)據(jù)集表情識別的問題,本文提出了一種基于表情融合特征的域?qū)咕W(wǎng)絡(luò)模型。該模型利用Encoder 模塊融合表情的全局和局部特征,在提高表情特征的魯棒性的同時,減少了表情特征的跨域差異,有利于后續(xù)表情模型的遷移。此外,為了解決不同表情數(shù)據(jù)集的類別不匹配導(dǎo)致跨數(shù)據(jù)集識別精度下降的問題,本文基于表情類別進行細粒度的對抗學(xué)習(xí)。在實驗部分,本文通過消融實驗及可視化實驗證明特征融合以及細粒度域?qū)棺赃m應(yīng)方法的有效性。通過與近年幾個表現(xiàn)優(yōu)異的算法比較,證明了本文方法的有效性。目前,本文算法僅在公開表情數(shù)據(jù)集進行跨數(shù)據(jù)集實驗達到較為理想的效果,在未來研究中,我們將嘗試構(gòu)建個人數(shù)據(jù)集驗證算法的魯棒性和實用性,并把算法推廣到動態(tài)表情數(shù)據(jù)上,提高動態(tài)表情的跨數(shù)據(jù)集效果。