肖世明 章思遠(yuǎn) 毛政翔 黃 偉,2
1(南昌大學(xué)信息工程學(xué)院 江西 南昌 330031) 2(南昌大學(xué)信息化辦公室 江西 南昌 330031)
人臉面部表情是最直接、最有效的情感表達(dá)方式。Mehrabian等[1]做過研究表明,在人類日常交流的主要方式和途徑中,傳遞信息最多的是人臉表情,其次是聲音和語言,傳遞信息量分別占信息總量比重是55%、38%和7%。Ekman等[2]提出了人類共有的六類基本表情:生氣、害怕、厭惡、開心、悲傷、驚訝,而其他復(fù)雜的表情都是在此基礎(chǔ)上復(fù)合而成,例如驚喜就是驚訝加上開心,這也成為研究者研究人臉表情分類的共識。人臉表情識別可以應(yīng)用于諸多領(lǐng)域,如人機(jī)交互實(shí)時(shí)表情識別、駕駛員疲勞檢測、謊言檢測等。
面部表情識別的方法一般步驟有:人臉圖像信息獲取、圖像預(yù)處理、圖像特征表示與提取、特征分類器的訓(xùn)練。其中表情圖像特征的提取成為影響表情識別率的關(guān)鍵因素。面部表情特征的提取由手工提取特征[3-5,13]到淺層學(xué)習(xí)提取特征[6-7],再到如今運(yùn)用廣泛的深度學(xué)習(xí)提取特征[8-12]。不管是手工提取特征或者是使用深度神經(jīng)網(wǎng)絡(luò)提取特征,表情的識別率都受到身份、性別、年齡等屬性的影響。Zhang等[11]提出的IACNN方法考慮了身份信息等因素對面部表情識別的影響。
研究表明,對于同一個(gè)人,可以通過比較他的當(dāng)前表情和他的中性表情來判斷他的表情[15]。也就是說一個(gè)人的面部表情可以分解為表情成分和中性成分[16]。根據(jù)這一研究,Kim等[17]和Lee等[18]利用需判斷的表情圖像和對應(yīng)的中性表情圖像的特征差異或者圖像差異來識別面部表情。然而在這些工作中,識別面部表情的個(gè)體對應(yīng)的中性表情都是可以直接獲得的。而在現(xiàn)實(shí)情況下,并不是每個(gè)給定個(gè)體對應(yīng)的中性表情都是可以直接獲得的。為了解決這一問題,需要構(gòu)建一個(gè)根據(jù)給定表情圖像生成中性表情圖像的生成器,并且該生成器不會(huì)改變個(gè)體的身份信息。隨著生成對抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)[19]的提出,越來越多基于GAN的圖像生成方法被提出。一個(gè)GAN模型包括生成器和判別器兩部分,通過生成器和判別器之間的對抗訓(xùn)練生成逼真的圖像。原始的GAN模型使用一個(gè)隨機(jī)向量作為輸入,缺少必要的約束,這使得生成的圖像質(zhì)量參差不齊。因此,在原始GAN模型的基礎(chǔ)上,Zhu等[20]提出循環(huán)一致生成對抗網(wǎng)絡(luò)(Cycle-consistent Generative Adversarial Networks,Cycle-GAN)。Cycle-GAN可以完成非成對圖像的圖像到圖像的風(fēng)格遷移。該網(wǎng)絡(luò)使用源空間圖像而非隨機(jī)變量作為輸入,通過結(jié)合循環(huán)一致?lián)p失和對抗損失共同訓(xùn)練模型,可以無監(jiān)督地學(xué)習(xí)源空間到目標(biāo)空間的映射。Cycle-GAN被廣泛地應(yīng)用于圖像風(fēng)格遷移。
根據(jù)上述分析,本文提出一種基于風(fēng)格遷移的面部表情聚類識別方法。使用Cycle-GAN訓(xùn)練不同表情的生成器,將任意給定表情圖像遷移到對應(yīng)中性表情圖像,生成器和表情一一對應(yīng)。如圖1所示,給定含有各種隨機(jī)表情的人臉圖像,通過中性表情生成器將含有表情的圖像遷移到中性表情圖像。在這一過程中,生成的中性表情圖像不會(huì)改變原圖像的身份信息,同時(shí)生成器會(huì)學(xué)習(xí)到不同表情的成分,即將不同表情的表情成分“存儲(chǔ)”在對應(yīng)的生成器中。
圖1 表情風(fēng)格遷移示意圖
輸入一幅表情圖像到不同個(gè)數(shù)(取決于數(shù)據(jù)集表情類別數(shù))的生成器中生成一組圖像,由于不同的生成器學(xué)習(xí)到不同的表情成分,所以這組圖像中,只有學(xué)習(xí)到輸入圖像的表情成分的生成器可以成功將該表情圖像遷移為中性表情。而其他生成的圖像則保留原表情信息,因?yàn)檫@些生成器中不具有該表情成分,故而不能將該表情圖像遷移為中性表情圖像。所以只要找到遷移為中性表情對應(yīng)的含有該表情成分的生成器即可識別出該圖像的表情類別。在生成的圖像中,表情標(biāo)簽只有中性和輸入圖像的表情標(biāo)簽,這樣將面部表情識別的多分類問題轉(zhuǎn)化為二分類問題。本文使用支持向量機(jī)(Support Vector Machine,SVM)作為分類器。在做分類任務(wù)時(shí),使用CNN卷積神經(jīng)網(wǎng)絡(luò)提取面部表情特征用于分類。
Cycle-GAN模型結(jié)構(gòu)如圖2所示,包含兩個(gè)生成器和兩個(gè)判別器,分別為GAB、GBA、DA、DB。Cycle-GAN可以通過學(xué)習(xí)源域(Source Domain)A與目標(biāo)域(Target Domain)B之間的映射關(guān)系,從而完成圖像到圖像的風(fēng)格遷移。生成器GAB學(xué)習(xí)從源域到目標(biāo)域的映射f1:A→B,生成器GBA學(xué)習(xí)從目標(biāo)域到源域的映射f2:B→A。判別器DA、DB分別用來判斷各自輸入的圖像是否為源域A、目標(biāo)域B的真實(shí)圖像。
圖2 Cycle-GAN的網(wǎng)絡(luò)結(jié)構(gòu)
Cycle-GAN的損失函數(shù)由兩部分組成:
1) 生成對抗損失(Generative Adversarial Loss):
LGAN(GAB,DB,A,B)=Eb∈PB[logDB(b)]+
Ea∈PA[log(1-DB(GAB(a)))]
(1)
式(1)為A→B的生成對抗損失函數(shù),a、b分別為來自源域A、目標(biāo)域B的圖像。生成器GAB盡可能生成與目標(biāo)域B逼近的圖像GAB(a),判別器DB則判斷輸入圖像是否為真實(shí)的目標(biāo)域B圖像。
LGAN(GBA,DA,B,A)=Ea∈PA[logDA(a)]+
Eb∈PB[log(1-DA(GBA(b)))]
(2)
式(2)為B→A的生成對抗損失函數(shù)。生成器GBA盡可能生成與源域A逼近的圖像GBA(b),判別器DA則判斷輸入圖像是否為真實(shí)的源域A圖像。
2) 循環(huán)一致?lián)p失(Cycle Consistency Loss)。
只有生成對抗損失是無法訓(xùn)練模型的,因?yàn)楦鶕?jù)上述損失函數(shù),生成器GAB可以將所有的源域A圖像都映射為目標(biāo)域B的同一幅圖像。例如可以將所有高興表情轉(zhuǎn)換為中性表情,但是這些中性表情都是同一個(gè)人。同理,生成器GBA也有同樣的問題。所以在Cycle-GAN中引入了循環(huán)一致?lián)p失函數(shù)Lcyc,公式如下:
(3)
生成器GAB和GBA分別學(xué)習(xí)f1和f2兩個(gè)映射的同時(shí),要求GAB(GBA(b))≈b以及GBA(GAB(a))≈a。即目標(biāo)域B的圖像b,經(jīng)過f2映射得到圖像GBA(b),再經(jīng)過f1映射得到的圖像GAB(GBA(b)),兩者之間要盡可能相似。同樣,對于源域A的圖像a,經(jīng)過f1映射得到圖像GAB(a),再經(jīng)過f2映射得到的圖像GBA(GAB(a)),兩者之間要盡可能相似。這樣就保證了在兩個(gè)域之間的圖像轉(zhuǎn)換不會(huì)映射為同一幅圖像。
最終網(wǎng)絡(luò)的所有損失加起來為:
L(GAB,GBA,DA,DB)=λ1LGAN(GAB,DB,A,B)+
λ2LGAN(GBA,DA,B,A)+λ3Lcyc(GAB,GBA)
(4)
式(4)中λ1、λ2、λ3分別為調(diào)節(jié)生成損失、對抗損失和循環(huán)一致?lián)p失所占權(quán)重的超參數(shù)。在所有的損失函數(shù)中,對于生成器來說需要最小化損失函數(shù),對于判別器來說需要最大化損失函數(shù)。
Cycle-GAN包含兩個(gè)生成器和兩個(gè)判別器,訓(xùn)練模型時(shí),每次只將一類表情圖像作為源域輸入到生成器Gxiy中,中性表情圖像作為目標(biāo)域輸入到生成器Gyxi中。將兩個(gè)生成器生成的兩幅圖像輸入到兩個(gè)判別器中,得到兩個(gè)表示圖像真實(shí)度的數(shù)值。再通過模型定義的生成對抗損失和循環(huán)一致?lián)p失控制生成器生成更加真實(shí)且風(fēng)格更加接近目標(biāo)域的圖像,最終完成圖像的風(fēng)格遷移。如此訓(xùn)練多次(次數(shù)由數(shù)據(jù)集表情類別數(shù)而定),每次用數(shù)據(jù)集中不同的表情作為源域,目標(biāo)域則同為數(shù)據(jù)集中的中性表情,得到不同表情到中性表情的生成器Gxiy。
在進(jìn)行中性表情生成的時(shí)候,本文使用已經(jīng)訓(xùn)練好的生成器Gxiy。如圖3所示,輸入一幅身份信息為A的表情圖像到生成器Gxiy(此時(shí)xi為吃驚)中,生成對應(yīng)的中性表情圖像,且保留了原身份信息。將不同的表情圖像輸入到對應(yīng)不同的生成器Gxiy中,便可得到不同表情圖像對應(yīng)的中性表情圖像。
圖3 中性表情生成方法
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)可以有效提取圖像特征用于訓(xùn)練分類器做分類任務(wù)。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)由三部分組成:卷積層、池化層和全連接層。卷積層用于提取和保留圖像特征。池化層對特征進(jìn)行降維和抽象,可以有效減少網(wǎng)絡(luò)參數(shù),避免過擬合現(xiàn)象。全連接層連接前面提取到的特征,根據(jù)不同的任務(wù)輸出不同的結(jié)果。
本文使用的CNN網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。網(wǎng)絡(luò)包含五個(gè)卷積層和一個(gè)全連接層。每個(gè)卷積層的卷積核大小均為3×3,步幅均為1,經(jīng)過每層卷積之后通道數(shù)為原來的兩倍。
圖4 CNN網(wǎng)絡(luò)結(jié)構(gòu)及特征圖
在訓(xùn)練CNN網(wǎng)絡(luò)時(shí),損失函數(shù)用來計(jì)算模型輸出值與真實(shí)值之間的不一致程度,損失函數(shù)值越小,模型的魯棒性越好。本文將使用L2 loss(均方誤差)作為模型的損失函數(shù)。L2 loss的計(jì)算公式如下:
(5)
式中:N為樣本數(shù),x(p)與y(p)分別表示模型的輸出值與目標(biāo)值,P為維數(shù)。由于L2 loss取平方值的緣故,會(huì)放大較大誤差和較小誤差之間的差值,所以通過L2 loss訓(xùn)練網(wǎng)絡(luò)可以使得提取的不同表情特征之間的距離加大,便于更好分類。
在訓(xùn)練階段,輸入數(shù)據(jù)集中的單通道表情圖像,大小為128×128,經(jīng)過五個(gè)卷積層之后輸出的特征圖為4×4×512。將該特征圖輸入到全連接層之后得到512維的輸出值。通過最小化損失函數(shù)使模型輸出值逼近真實(shí)值,以得到更加魯棒的表情特征。將表情圖像輸入到訓(xùn)練好的CNN網(wǎng)絡(luò)中,得到的512維輸出值即為提取到的表情特征。
本文提出一種基于風(fēng)格遷移的表情識別方法。訓(xùn)練把面部表情圖像遷移到中性表情圖像的生成器,生成器中“存儲(chǔ)”了該表情的表情成分。輸入表情圖像到所有表情生成器中,得到一組表情圖像。在該組圖像中,只有“存儲(chǔ)”了輸入圖像的表情成分的生成器可以成功遷移為中性表情,而剩下的圖像則保留原表情。將表情識別任務(wù)轉(zhuǎn)換為二分類任務(wù)。
本文使用SVM作為二分類器,訓(xùn)練SVM時(shí),將數(shù)據(jù)集中所有非中性表情圖像統(tǒng)一標(biāo)記為正類,中性表情圖像標(biāo)記為負(fù)類。將所有圖像輸入到訓(xùn)練好的CNN模型中提取表情特征,再將提取到的表情特征用于訓(xùn)練SVM做分類。
測試階段,將通過生成器生成的一組圖像輸入CNN網(wǎng)絡(luò)提取表情特征,提取到的表情特征用于SVM分類,最終得到識別結(jié)果。
方法的具體步驟如下:
Step1輸入面部表情圖像到不同的表情生成器Gxiy得到一組圖像。每幅圖像用image_xi表示,xi標(biāo)記生成該圖像的生成器對應(yīng)的表情標(biāo)簽。
Step2將這一組圖像輸入到CNN網(wǎng)絡(luò),提取到一組表情特征。每幅圖像對應(yīng)的特征用Feat_xi表示。
Step3將提取到的表情特征輸入到SVM中做二分類,得到分類結(jié)果。取分類結(jié)果為負(fù)類(中性表情)的特征Feat_xi對應(yīng)的xi為最終表情識別的結(jié)果。
Cycle-GAN同時(shí)對生成器和判別器進(jìn)行訓(xùn)練。訓(xùn)練使用的優(yōu)化器為Adam,學(xué)習(xí)率為0.000 2,動(dòng)量為0.5。對于Cycle-GAN損失函數(shù)中的三個(gè)超參數(shù):對抗損失超參數(shù)λ1,生成損失超參數(shù)λ2,循環(huán)一致?lián)p失超參數(shù)λ3,本文使用的是Zhu等[20]在實(shí)驗(yàn)中設(shè)定的值,分別設(shè)為1、5、10。訓(xùn)練時(shí)BatchSize為1,迭代次數(shù)為150。
在CNN網(wǎng)絡(luò)中,在每層卷積層之后都使用了批標(biāo)準(zhǔn)化(Batch Normalization,BN)[21]處理。批標(biāo)準(zhǔn)化之后使用的激活函數(shù)為ReLU。并且為了防止在訓(xùn)練時(shí)出現(xiàn)過擬合,在全連接層之后,使用了舍棄概率為0.5的Dropout。
實(shí)驗(yàn)使用的深度學(xué)習(xí)框架為PyTorch,GPU為NVIDIA TITAN V,顯存為12 GB。編程語言為Python 3.5,操作系統(tǒng)為Ubuntu 16.04。
本文實(shí)驗(yàn)使用了三個(gè)面部表情識別數(shù)據(jù)集:CK+[22]、MMI[23]、RAF-DB[24]。其中CK+和MMI為實(shí)驗(yàn)室環(huán)境下的表情數(shù)據(jù)集,RAF-DB為自然環(huán)境下的表情數(shù)據(jù)集,數(shù)據(jù)集圖像樣本如圖5所示。在做數(shù)據(jù)集預(yù)處理時(shí),使用OpenCV人臉檢測算法定位人臉區(qū)域,自動(dòng)裁剪出面部表情圖像。然后統(tǒng)一轉(zhuǎn)化為大小128×128的單通道灰度圖像。
圖5 CK+、MMI、RAF-DB數(shù)據(jù)集的圖像樣本
CK+數(shù)據(jù)集是在Cohn-Kanada Dataset基礎(chǔ)上擴(kuò)展得到的,被廣泛地用于面部表情識別。數(shù)據(jù)集是在實(shí)驗(yàn)室條件下獲取,包含了從123個(gè)人中得到的593個(gè)圖像序列,每個(gè)表情序列都為從中性表情過渡到峰值表情。數(shù)據(jù)集包括七類表情:生氣(Anger)、蔑視(Contempt)、厭惡(Disgust)、恐懼(Fear)、高興(Happy)、悲傷(Sad)、驚訝(Surprise)。實(shí)驗(yàn)使用的是帶有表情標(biāo)簽的327個(gè)序列,取每個(gè)序列的最后三幅圖像為該表情圖像,表情標(biāo)簽和序列標(biāo)簽一致。得到981幅表情圖像,不同的表情數(shù)量分布如表1所示。
表1 CK+數(shù)據(jù)集表情數(shù)量分布
MMI數(shù)據(jù)集包含236個(gè)圖像序列,從31個(gè)人中獲得。每個(gè)序列數(shù)據(jù)集包括六類基本表情:生氣(Anger)、厭惡(Disgust)、恐懼(Fear)、高興(Happy)、悲傷(Sad)、驚訝(Surprise),相比CK+數(shù)據(jù)集,少了蔑視表情。每個(gè)圖像序列從中性表情過渡到峰值表情,再從峰值表情過渡回到中性表情,峰值表情處在序列中段。實(shí)驗(yàn)選取208個(gè)正臉角度的序列,取每個(gè)序列中段的3幅圖像作為表情圖像,標(biāo)簽為該序列標(biāo)簽。得到624幅表情圖像,不同的表情數(shù)量分布如表2所示。
表2 MMI數(shù)據(jù)集表情數(shù)量分布
RAF-DB是從網(wǎng)頁上抓取的大量人臉圖像,采用眾包的方式標(biāo)記表情標(biāo)簽的自然條件下的表情數(shù)據(jù)集。RAF-DB包含15 339幅標(biāo)記了七類基本表情(憤怒(Anger)、厭惡(Disgust)、恐懼(Fear)、高興(Happy)、悲傷(Sad)、驚訝(Surprise))的圖片,和3 954幅標(biāo)記了12類復(fù)合表情的圖片,實(shí)驗(yàn)只用標(biāo)記為基本表情的圖片。由于RAF-DB數(shù)據(jù)集存在嚴(yán)重的樣本比例失衡問題,例如高興的表情圖片有5 957幅,而恐懼的表情圖片只有355幅。所以每個(gè)表情圖片選取數(shù)量以最少的恐懼表情為標(biāo)準(zhǔn),都為355幅。
本文實(shí)驗(yàn)在三個(gè)數(shù)據(jù)集上均采用10折交叉驗(yàn)證,實(shí)驗(yàn)結(jié)果取10次交叉驗(yàn)證結(jié)果的平均值。為了評價(jià)本文提出的方法的有效性,每個(gè)數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果中均設(shè)有Baseline。Baseline的結(jié)果為本文提取表情特征的CNN網(wǎng)絡(luò)直接用于表情分類的結(jié)果。在使用CNN網(wǎng)絡(luò)進(jìn)行表情分類時(shí),在CNN網(wǎng)絡(luò)最后加一層輸出為6維或7維(由數(shù)據(jù)集表情類別數(shù)而定)數(shù)值的全連接層,使用交叉熵(Cross Entropy Loss)作為損失函數(shù)進(jìn)行表情分類。
3.3.1CK+數(shù)據(jù)集
根據(jù)2.2節(jié)表情識別方法可知,不同表情輸入到生成器生成的中性表情的圖像質(zhì)量對最終的識別結(jié)果有很大影響。圖6為在CK+數(shù)據(jù)集上的遷移效果,單數(shù)行是輸入的表情圖像,偶數(shù)行是對應(yīng)表情生成的中性表情圖像。
圖6 CK+數(shù)據(jù)集上的表情遷移效果
使用本文提出的方法,在CK+數(shù)據(jù)集上的表情識別準(zhǔn)確率達(dá)到98.47%,如表3所示。為了評估本文提出的方法在CK+數(shù)據(jù)集上的表現(xiàn),將實(shí)驗(yàn)結(jié)果與近幾年提出的六種表情識別方法(LBVCNN[9]、DTAGN[10]、IACNN[11]、RN+LAF+ADA[25]、ppfSVM[26]、DCMA-CNNs[12])進(jìn)行對比。LBVCNN、DTAGN和ppfSVM三種方法輸入的為表情序列,訓(xùn)練數(shù)據(jù)的規(guī)模遠(yuǎn)大于本文方法使用的數(shù)據(jù)規(guī)模??梢钥闯?,本文方法較比其他幾種方法在準(zhǔn)確率上都有提高。
表3 不同方法在CK+數(shù)據(jù)集上的準(zhǔn)確率對比
表4為本文方法在CK+數(shù)據(jù)集上各類表情識別的混淆矩陣,表格斜對角線的值對應(yīng)各表情識別準(zhǔn)確率,其他數(shù)值為表情識別錯(cuò)誤率。通過混淆矩陣看出,蔑視表情的識別率最低,為96.39%。原因是蔑視表情在數(shù)據(jù)集中的數(shù)量較少,將該表情遷移至中性表情的生成器學(xué)習(xí)到的特征較少,生成的圖像質(zhì)量偏差,從而影響準(zhǔn)確率。
表4 CK+數(shù)據(jù)集上的混淆矩陣
3.3.2MMI數(shù)據(jù)集
使用本文提出的方法,在MMI數(shù)據(jù)集上的表情識別準(zhǔn)確率為85.27%,如表5所示。同樣,為了評估本文方法在MMI數(shù)據(jù)集上的表現(xiàn),將實(shí)驗(yàn)結(jié)果同近幾年提出的表情識別方法(IACNN[11]、STM-Explet[14]、DTAGN[10]、HOG-3D[13])進(jìn)行了比較。其中STM-Explet、DTAGN-Joint、HOG-3D均使用圖像序列作為輸入,以此得到表情變化的時(shí)序信息,本文方法相比于這三個(gè)方法,準(zhǔn)確率都有顯著的提高。而對于同樣使用圖像輸入的IACNN方法,本文方法更是提升了近14百分點(diǎn)的準(zhǔn)確率。
表5 不同方法在MMI數(shù)據(jù)集上的準(zhǔn)確率對比
MMI數(shù)據(jù)集上各類表情識別的混淆矩陣如表6所示。可以看出,恐懼表情的識別率比較低,容易與厭惡表情和驚訝表情混淆。導(dǎo)致該現(xiàn)象的原因?yàn)?,MMI數(shù)據(jù)集中這三種表情圖像在特征上比較相似,使得生成器學(xué)習(xí)到的表情特征也較為相似,從而影響準(zhǔn)確率。另一方面,高興表情極易識別,準(zhǔn)確率達(dá)到96.13%。
表6 MMI數(shù)據(jù)集上的混淆矩陣
3.3.3RAF-DB數(shù)據(jù)集
RAF-DB數(shù)據(jù)集的遷移效果如圖7所示,單數(shù)行是輸入的表情圖像,偶數(shù)行是遷移至中性的表情圖像。使用本文提出的方法,在RAF-DB數(shù)據(jù)集上的表情識別準(zhǔn)確率為78.13%。同樣為了評估本文方法在RAF-DB數(shù)據(jù)集上的表現(xiàn),將實(shí)驗(yàn)結(jié)果與相關(guān)方法進(jìn)行比較,實(shí)驗(yàn)結(jié)果如表7所示。其中VGG、AlexNet、baseCNN、DLP-CNN[24]是RAF-DB數(shù)據(jù)集作者給出的基準(zhǔn)方法。FsNet+TcNet[27]、Boosting-POOF[28]為當(dāng)前較為先進(jìn)的方法。通過表7可知,本文方法相比于數(shù)據(jù)集給出的基準(zhǔn)方法中準(zhǔn)確率最高的DLP-CNN方法,準(zhǔn)確率有4%左右的提升。并且實(shí)驗(yàn)結(jié)果的準(zhǔn)確率接近于當(dāng)前最好方法,證明了本文方法在自然條件下的面部表情識別效果的可靠性。
圖7 RAF-DB數(shù)據(jù)集上的表情遷移效果
表7 不同方法在RAF-DB數(shù)據(jù)集上的準(zhǔn)確率對比
表8為RAF-DB數(shù)據(jù)集上各類表情識別的混淆矩陣??梢园l(fā)現(xiàn),“驚訝”“高興”和“生氣”這三類表情具有更高的識別率,而“厭惡”“恐懼”和“悲傷”這三類表情的識別率較低,容易產(chǎn)生混淆。
表8 RAF-DB數(shù)據(jù)集上的混淆矩陣
本文提出了一種基于風(fēng)格遷移的面部表情識別方法。通過訓(xùn)練Cycle-GAN得到將不同表情圖像遷移到中性表情圖像的生成器,即生成器學(xué)習(xí)了不同表情的表情成分。將表情圖像輸入到訓(xùn)練好的生成器中得到一組圖像,該組圖像只具備中性表情和輸入圖像的表情。通過CNN網(wǎng)絡(luò)提取該組圖像特征用于SVM做二分類任務(wù),得到中性表情圖像,生成該圖像對應(yīng)的表情生成器即為表情識別結(jié)果。實(shí)驗(yàn)結(jié)果表明該方法不僅在實(shí)驗(yàn)室條件下的獲得的數(shù)據(jù)集中表現(xiàn)良好,在自然條件下獲得的數(shù)據(jù)集中也有較高識別率。在CK+數(shù)據(jù)、MMI數(shù)據(jù)集和RAF-DB數(shù)據(jù)集上的表情識別率分別為98.47%、85.27%和78.13%。在今后的任務(wù)中,將進(jìn)一步提升表情遷移后的圖像質(zhì)量和遷移效果,以便提高在更加復(fù)雜環(huán)境下的面部表情識別率。