孫 曉,丁小龍
1.合肥工業(yè)大學(xué) 情感計算與系統(tǒng)結(jié)構(gòu)研究所,合肥230601
2.合肥工業(yè)大學(xué) 計算機(jī)與信息學(xué)院,合肥230601
人臉表情是人們?nèi)粘I钪凶钣行У慕涣鞣绞街?,通常將它定義為面部肌肉對內(nèi)在情緒狀態(tài)所產(chǎn)生的一個或多個運(yùn)動和變化。自20世紀(jì)90年代以來,許多人員致力于該領(lǐng)域的研究[1]。
人臉表情識別包含三部分:圖像預(yù)處理、特征提取和表情分類。根據(jù)特征提取的方法,可以分為基于紋理特征的方法[2]、基于幾何特征的方法[3]和基于深度神經(jīng)網(wǎng)絡(luò)的方法[4-5]。近幾年,飛速發(fā)展的深度學(xué)習(xí)技術(shù)和規(guī)模越來越大的數(shù)據(jù)集使得基于深度神經(jīng)網(wǎng)絡(luò)的方法在圖像識別領(lǐng)域更加重要。
深度神經(jīng)網(wǎng)絡(luò)離不開大規(guī)模數(shù)據(jù),然而對于人臉表情數(shù)據(jù)集來說,標(biāo)準(zhǔn)人臉表情數(shù)據(jù)庫CK+僅有327個標(biāo)注的視頻序列[6],更早的數(shù)據(jù)庫JAFFE僅有213張面部表情圖片[7]。人臉表情數(shù)據(jù)庫還有一個普遍的問題:數(shù)據(jù)量不平衡。RAF數(shù)據(jù)庫中快樂標(biāo)簽下的數(shù)據(jù)量是恐懼的17倍;CK+數(shù)據(jù)庫僅有18個蔑視的序列。因此,需要一種圖像生成技術(shù),在擴(kuò)充數(shù)據(jù)集的同時解決數(shù)據(jù)量不平衡的問題。為了解決這一問題,研究人員提出了一系列圖像處理操作來增加數(shù)據(jù)庫樣本的數(shù)量,這個過程被稱作數(shù)據(jù)增強(qiáng)。
數(shù)據(jù)越多,機(jī)器學(xué)習(xí)算法就越有效,在數(shù)據(jù)量不足的情況下,需要通過一些數(shù)據(jù)增強(qiáng)方案來擴(kuò)充訓(xùn)練集,解決過擬合的問題。
最常見的做法是對原始圖像進(jìn)行一些幾何變換來模擬真實場景下不同的拍攝角度和拍攝距離,例如旋轉(zhuǎn)、縮放、平移、鏡像等。Simard等人[8]提出使用旋轉(zhuǎn)、平移和傾斜原始圖像的方法來增加樣本的數(shù)量。通過組合這三種空間變換,他們獲取了大量的樣本。Lopes等人[9]使用二維高斯分布在原始圖像的眼睛附近加入隨機(jī)噪聲,形成新的兩眼位置,通過旋轉(zhuǎn)操作使新的兩眼位置處于水平,從而生成新的樣本。Krizhevsky等人[10]在原始圖像上隨機(jī)裁剪固定大小的子樣本,然后將每個子樣本進(jìn)行水平翻轉(zhuǎn),將訓(xùn)練集擴(kuò)充了2 048倍。
針對圖像顏色空間的數(shù)據(jù)增強(qiáng)也是一種常見方法,包括亮度、對比度調(diào)節(jié)等。Wang等人[11]通過改變原始圖像的亮度值來擴(kuò)大樣本數(shù)量,在一定程度上減弱了光照對表情識別產(chǎn)生的影響。
還有一些針對圖像局部區(qū)域的方法,例如通過局部遮蓋來模擬真實場景下圖像磨損或有遮蓋物的場景。Sun等人[12]提出了一種基于興趣區(qū)域的人工臉數(shù)據(jù)增強(qiáng)策略。人臉中眼睛、嘴巴、鼻子和下巴在表情識別中占較大比重,研究人員將這些區(qū)域劃分為興趣區(qū)域。他們通過將某張臉的興趣區(qū)域替換為另一張臉的對應(yīng)部分來生成新的人臉圖像。
此外,在圖像上添加噪聲也是一種常見的方法。這些方法通過對原始圖像的空間變換、像素值變換,在保持語義不變的前提下生成多種環(huán)境下的樣本,從而擴(kuò)充數(shù)據(jù)集的數(shù)量。然而這些工作往往將所有類別同比例擴(kuò)大,并不能很好地處理數(shù)據(jù)量不平衡的問題。針對這一問題,通常會對數(shù)據(jù)量多的樣本集進(jìn)行欠采樣,對數(shù)據(jù)量小的樣本集進(jìn)行樣本擴(kuò)充。Joe等人從目標(biāo)函數(shù)的角度來緩解數(shù)據(jù)量不平衡,他們在計算分類誤差時對不同類別賦予不同的權(quán)值,樣本少的權(quán)值大,使得網(wǎng)絡(luò)更關(guān)注樣本少的類別。
生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)是Goodfellow在2014年提出的一種深度生成模型[13],其結(jié)構(gòu)如圖1所示。模型分為兩部分:生成器和判別器。判別器用以區(qū)分真實樣本和假樣本(生成樣本),而生成器接收一個隨機(jī)噪聲作為輸入,并生成與真實樣本難以區(qū)分的假樣本。
圖1 GAN模型結(jié)構(gòu)
在GAN中,定義值V來衡量真實樣本和生成樣本之間的差異[13],如式(1)所示。
當(dāng)Pdata=PG時,取得最優(yōu)解。
自GAN面世以來,很多研究人員在此基礎(chǔ)上提出了改進(jìn)。Arjovsky等提出了WGAN-GP,通過Earth-Moverh和梯度懲罰使得GAN網(wǎng)絡(luò)的學(xué)習(xí)變得更加穩(wěn)定[14]。CGAN在GAN模型中引入類別信息c,使其能夠生成特定標(biāo)簽下的圖像[15]。一些研究人員設(shè)想利用GAN實現(xiàn)圖像風(fēng)格遷移。Zhu等提出的CycleGAN能將一種風(fēng)格下的圖像轉(zhuǎn)為另一種風(fēng)格下的圖像[16]。但要將輸入圖像轉(zhuǎn)為多個風(fēng)格下的圖像,CycleGAN需要訓(xùn)練多個模型。Choi等結(jié)合CycleGAN和CGAN提出了StarGAN,實現(xiàn)了多風(fēng)格圖像之間的轉(zhuǎn)換,僅由一個簡單的生成器便可以生成多種風(fēng)格的圖像[17]。
人臉的不同表情便是不同的風(fēng)格,本文將StarGAN用于增強(qiáng)數(shù)據(jù)集,在StarGAN的基礎(chǔ)上,改進(jìn)重構(gòu)誤差。生成器采用深度可分離卷積進(jìn)行下采樣,實現(xiàn)多風(fēng)格人臉表情圖像的轉(zhuǎn)換。生成器接收人臉表情圖像和指定類別,生成同一個人指定類別下的面部表情圖像。
(1)人臉對齊。人臉對齊是人臉識別任務(wù)中一種非常有效的手段,它可以減少由于旋轉(zhuǎn)、視覺角度等造成的一些干擾。人臉對齊之前要先進(jìn)行人臉關(guān)鍵點檢測,因為數(shù)據(jù)庫中已經(jīng)給出了人臉關(guān)鍵點信息,所以本文并不需要進(jìn)行人臉關(guān)鍵點檢測。為了不影響對齊之后圖像的細(xì)節(jié),本文使用了一個簡單的策略:首先,分別計算兩只眼睛的中心位置。在CK+的關(guān)鍵點標(biāo)注信息中,點37~點42表示左眼,而點43~點48表示右眼。然后,計算穿過兩個中心的直線與水平線之間的夾角θ。最后,圍繞左眼順時針旋轉(zhuǎn)圖像θ度。
(2)圖像裁剪。將對齊之后的圖像進(jìn)行裁剪,用來去除對于表情識別不重要的背景信息。具體區(qū)域選取如下:將兩眼之間的距離定義為a;豎直方向以眼睛為中心,上下各取長為2a的區(qū)域;水平方向由兩眼各向外取長為1.5a的區(qū)域。這樣便選取到一塊4a×4a的矩形為裁剪區(qū)域。為了適應(yīng)網(wǎng)絡(luò)的輸入,將裁剪之后的圖像大小調(diào)整為256×256。圖2描述了對CK+數(shù)據(jù)進(jìn)行人臉對齊和圖像裁剪的過程。
圖2 圖像預(yù)處理示例
3.2.1 目標(biāo)函數(shù)
CGAN為了生成不同類別的圖像,在GAN的目標(biāo)函數(shù)中引入分類誤差;CycelGAN為了保證生成圖像和原圖像在內(nèi)容上的一致性,提出了重構(gòu)誤差;StarGAN將兩者結(jié)合起來,提出了由對抗誤差、分類誤差和重構(gòu)誤差組成的新目標(biāo)函數(shù)[17]。本文在StarGAN的基礎(chǔ)上改進(jìn)了重構(gòu)誤差,具體介紹如下:
(1)對抗誤差,即原始GAN的誤差函數(shù):
其中,G為生成器,Dsrc(x)表示樣本x被識別為真實樣本的概率。
(2)分類誤差。對于給定的輸入圖像x和目標(biāo)類別標(biāo)簽c,本文的目標(biāo)是將x轉(zhuǎn)換為類別標(biāo)簽c下的輸出圖像G(x,c)。參照CGAN和StarGAN,在判別器D之上添加一個輔助分類器,分類器與判別器共用一個網(wǎng)絡(luò),但輸出不同[15]。本文使用真實樣本的分類誤差優(yōu)化判別器D,生成樣本的分類誤差優(yōu)化生成器G。將判別器的分類誤差定義為:
其中,c'表示真實樣本x的類別標(biāo)簽,Dcls(c'|x)表示真實樣本x屬于類別c'的概率。通過最小化該目標(biāo),判別器D學(xué)習(xí)將真實樣本x分類為其對應(yīng)的標(biāo)簽c'。另一方面,生成樣本的分類損失函數(shù)被定義為:
生成器G試圖生成類別c下的樣本,從而使得該值盡可能得小。
(3)將圖像拆分為風(fēng)格和內(nèi)容兩部分,重構(gòu)誤差用來描述生成圖像與原圖在內(nèi)容上的差異。將一張笑臉轉(zhuǎn)為哭臉時,需要保證它們是同一個人的不同表情,因此要求這個誤差盡可能得小。將生成的目標(biāo)圖像G(x,c)再次轉(zhuǎn)成原類別c'下的圖像,即G(G(x,c),c'),重構(gòu)誤差為原始圖像x與二次生成圖像G(G(x,c),c')二者之間的差異。StarGAN中用兩圖像像素值之差的均值計算重構(gòu)誤差,公式為:
重構(gòu)誤差實質(zhì)上是計算二次生成圖像相較于原圖像的保真度。式(6)的缺點在于,圖像整體發(fā)生細(xì)微變化和局部發(fā)生巨大變化時計算出的值可能相差無幾。這就導(dǎo)致有些生成的圖像在重要的局部區(qū)域存在缺陷而實際的重構(gòu)誤差并不大,例如嘴巴、鼻子這些關(guān)鍵區(qū)域。圖像處理中,常用均方根誤差(Mean Squared Error,MSE)、峰值信噪比(Peak Signal to Noise Ratio,PSNR)、均方根信噪比(Signal to Noise Ratio,SNR)等來衡量兩幅圖像的相似度。原圖像與二次生成圖像的均方根誤差、峰值信噪比和均方根信噪比公式分別為:
其中,n為圖像像素值的個數(shù),為一常數(shù);MAX為圖像像素的最大值與最小值之差,本文將圖像像素值映射到[-1,1],MAX取值為2;||x||2指x的L2范數(shù)。當(dāng)兩幅圖像的誤差變大時,MSE變大,而PSNR和SNR均減小。但將PSNR和SNR對數(shù)內(nèi)的值取倒數(shù)會導(dǎo)致誤差值為負(fù)數(shù),不符合本文對誤差的要求;對整體取倒數(shù)會導(dǎo)致誤差值很小,不方便計算。因此考慮PSNR和SNR的非對數(shù)形式,并取倒數(shù):
由于MAX為一確定的常數(shù),PSNR'與MSE本質(zhì)上并沒有區(qū)別,而SNR'需要計算||x||2,計算量較大。最終本文使用均方根誤差來計算重構(gòu)誤差,公式為:
其優(yōu)勢如圖3所示,用3×3的矩陣來模擬一張圖像,每個數(shù)值表示該點的像素值。圖3(b)中每個點的像素值相較于圖3(a)均加1,而圖3(c)僅有一點差距較大。當(dāng)采用原來的計算方法時,圖3(b)和圖3(a)之間的誤差與圖3(c)和圖3(a)之間的誤差是一樣的,但顯然圖3(b)更接近于圖3(a)。當(dāng)采用本文方法時,圖3(c)與圖3(a)的誤差要遠(yuǎn)遠(yuǎn)大于圖3(b)與圖3(a)的誤差。對于真實的生成圖像,圖3(b)可以看成與原圖像有很多細(xì)微不同,但整體十分相像的生成圖像,例如圖像整體稍暗、皺紋丟失、毛孔丟失等;圖3(c)可以理解為生成圖像絕大多數(shù)細(xì)節(jié)都非常接近原圖像但在關(guān)鍵位置上差距較大,例如嘴巴、眼睛等區(qū)域發(fā)生崩壞。在人臉表情識別任務(wù)中,嘴巴、眼睛這些關(guān)鍵區(qū)域?qū)τ谧R別的影響非常大,如果這些位置出現(xiàn)差錯,會對表情識別造成干擾,因此更青睞于類似圖3(b)的生成圖像。
圖3 原圖像與生成圖像的抽象
最終的優(yōu)化目標(biāo)為三個誤差的綜合,判別器的損失函數(shù)為:
當(dāng)判別器非常容易區(qū)分真假樣本并將真實樣本正確分類時,-Ladv和Lrcls都會減小,該誤差會越來越小直至取最小值。生成器的損失函數(shù)為:
當(dāng)生成器生成的樣本能夠以假亂真,被正確分類,且與原樣本是同一個人時,Ladv和Lrec都會減小,該誤差會越來越小直至取最小值。其中λcls和λrec為正數(shù),分別是分類誤差和重構(gòu)誤差的系數(shù),取值為10時,生成圖像的效果較好。
3.2.2 訓(xùn)練過程
本文的訓(xùn)練過程如圖4所示。
圖4 模型的訓(xùn)練過程
對于獲取的每個batch的真實圖像x和對應(yīng)的標(biāo)簽c',具體的訓(xùn)練過程如下:
(1)隨機(jī)生成標(biāo)簽c;
(2)由真實圖像x和標(biāo)簽c得到生成圖像x';
(3)將真實圖像x輸入判別網(wǎng)絡(luò)得到真實圖像的對抗誤差xadv和分類誤差,將生成圖像x'輸入判別網(wǎng)絡(luò)得到生成數(shù)據(jù)的對抗誤差x'adv和分類誤差
(4)計算判別器對應(yīng)的對抗誤差Ladv=xadv+x'adv;
(5)固定生成器參數(shù),依據(jù)式(13),更新判別器參數(shù);
(6)判別器每更新k次,執(zhí)行下述過程;
(7)執(zhí)行(2)和(3);
(8)計算生成器對應(yīng)的對抗誤差Ladv=-x'adv;
(9)由生成圖像x'和真實標(biāo)簽c'得到重構(gòu)圖像x'',并計算真實圖像x和重構(gòu)圖像x''的重構(gòu)誤差Lrec;
(10)固定判別器參數(shù),依據(jù)式(14)更新生成器參數(shù)。其中,k是可控變量,當(dāng)使用WGAN-GP的對抗誤差時,常取值為5。
生成器的輸入包含兩部分:圖像和需要轉(zhuǎn)換的類別。本文采用深度可分離卷積[18]對這兩個信息進(jìn)行下采樣來將類別標(biāo)簽和圖像信息融合,具體策略如下:設(shè)輸入RGB圖像x(h,w,3)和類別的one-hot標(biāo)簽d(1,c),通過填滿d的值將d的維度擴(kuò)充為(h,w,c),合并兩者為(h,w,3+c),采用深度可分離卷積代替常用的卷積操作,對合并之后的數(shù)據(jù)進(jìn)行下采樣。深度可分離卷積先利用3+c個不同的卷積核分別計算3+c個特征圖內(nèi)部的信息,再通過n個1×1的卷積核將這3+c個信息融合到一起,得到n個特征圖。這樣做不僅減少了參數(shù)的數(shù)量,更符合人們對圖像信息和類別信息融合的認(rèn)知。
生成器的輸入是待轉(zhuǎn)換的圖像和類別,輸出是轉(zhuǎn)換之后的圖像。生成器由3個深度可分離卷積、6個殘差塊(Basic Residual Blocks)[19]和2個轉(zhuǎn)置卷積組成,輸出采用反曲函數(shù)Tanh。深度可分離卷積用于下采樣,轉(zhuǎn)置卷積用于上采樣。判別器有7個卷積層,采用全局最大值池化代替全連接層,為全卷積神經(jīng)網(wǎng)絡(luò)。判別器與類別分類器共用一個網(wǎng)絡(luò),但包含兩個輸出:對抗標(biāo)簽和分類標(biāo)簽。
本文采用了一些訓(xùn)練GAN的常用技巧:使用WGANGP的對抗誤差以穩(wěn)定訓(xùn)練過程;生成器采用實例標(biāo)準(zhǔn)化(Instance Normalization),而判別器沒有使用任何標(biāo)準(zhǔn)化操作;對于判別網(wǎng)絡(luò)使用leakyReLU代替ReLU。
本文的實驗是基于深度學(xué)習(xí)框架pytorch實現(xiàn)的,采用的編程語言是python,操作系統(tǒng)為ubuntu16.04,GPU為TITAN Xp。
本文采用了標(biāo)準(zhǔn)數(shù)據(jù)庫The extended Cohn-Kanade Database(CK+)[6]:CK+數(shù)據(jù)庫使用8種表情來構(gòu)建表情庫,包括自然(neutral)、憤怒(anger)、蔑視(contempt)、厭惡(disgust)、恐懼(fear)、快樂(happy)、悲傷(sadness)和驚訝(surprise),包含123個參與者的593個視頻序列,其中標(biāo)注了327個序列。每個序列有10~30幀來描述參與者從自然狀態(tài)到最具表現(xiàn)力狀態(tài)的變化過程。每一幀都有一個名為landmarks的描述文件,用于記錄面部關(guān)鍵點信息。在本文的實驗中,選擇每個序列的第一幀表示自然樣本,最后兩幀表示對應(yīng)情感樣本。樣本總量為981,按照3∶1∶1的比例分為3組(訓(xùn)練、驗證和測試),相同人的不同表情圖像在同一組中。
為了驗證本文改進(jìn)方法的有效性,對比了原Star-GAN和改進(jìn)StarGAN在CK+上生成的數(shù)據(jù),如圖5所示。圖5(a)是CK+中原有的圖像,共5種表情;圖5(b)是StarGAN由自然表情生成其他表情的一系列圖像;圖5(c)是改進(jìn)之后的StarGAN由自然表情生成其他表情的一系列圖像。可以看出,圖5(b)相比于圖5(c)在臉部的一些細(xì)節(jié)上更豐富,但在關(guān)鍵位置上顯得有些突兀,例如快樂和驚訝圖像的嘴巴區(qū)域,這與本文改進(jìn)重構(gòu)誤差的目標(biāo)一致。當(dāng)將一張人臉圖像從一種表情轉(zhuǎn)為另一種表情的時候,真正變化較大的其實就是嘴巴、鼻子、眼睛等關(guān)鍵區(qū)域,對于圖像的大多數(shù)內(nèi)容并沒有發(fā)生太多改變。本文的方法適用于局部區(qū)域變化較大的圖像生成任務(wù),而CycleGAN和StarGAN中使用的方法更適合于整體變化較大的風(fēng)格遷移任務(wù),例如將一幅畫由寫實畫風(fēng)變?yōu)槌橄螽嬶L(fēng)。
圖5 StarGAN與改進(jìn)StarGAN生成的圖像
在圖像數(shù)據(jù)增強(qiáng)方面,有一些常用的簡單方法,例如遮蓋、裁剪、旋轉(zhuǎn)、水平翻轉(zhuǎn)、高斯濾波等,這些方法被稱為傳統(tǒng)方法。圖6展示了一些常用方法的處理結(jié)果,包括中心截取、左遮蓋1/3、逆時針旋轉(zhuǎn)5°、引入高斯噪聲、引入運(yùn)動模糊。
圖6 傳統(tǒng)圖像增強(qiáng)方案
將上述5種變換用于擴(kuò)充CK+的訓(xùn)練集,并與本文方法進(jìn)行比較?;诟倪M(jìn)StarGAN的數(shù)據(jù)增強(qiáng)方法具體操作是:由于在挑選CK+數(shù)據(jù)時,選取了每個人自然表情下的圖像,因此以每個人自然狀態(tài)為基準(zhǔn),分別生成其他類別下的圖像。生成的圖像如圖7所示。
圖7 改進(jìn)StarGAN數(shù)據(jù)增強(qiáng)示例
與圖6相比,本文的數(shù)據(jù)增強(qiáng)方法更具有多樣性:本文方法不是在一個域內(nèi)擴(kuò)充圖像,而是由一個域的圖像生成其他域的配對圖像,對處理數(shù)據(jù)量不平衡的數(shù)據(jù)庫有很大的借鑒作用。由于卷積神經(jīng)網(wǎng)絡(luò)具有一定的平移不變性、旋轉(zhuǎn)不變性和尺寸不變性,采用平移、截取和輕微旋轉(zhuǎn)時,部分?jǐn)U充圖像與原圖像得到的特征值可能相同,僅是對原圖像的簡單復(fù)制;過度遮蓋會造成表情特征的大量缺失;大角度旋轉(zhuǎn)已經(jīng)被證明不適應(yīng)于非對稱圖像增強(qiáng);模糊、引入噪聲都需要控制在一定的程度內(nèi),不能過度干擾表情特征。因此,傳統(tǒng)方法需要針對訓(xùn)練數(shù)據(jù)進(jìn)行調(diào)整,其對深度模型的提升在同等數(shù)據(jù)量下略為遜色。深度模型具有很強(qiáng)的學(xué)習(xí)能力,由于不同的表情來源于不同的人,模型可能會學(xué)習(xí)到區(qū)分不同人的特征,導(dǎo)致同一個人的不同表情得到相同的結(jié)果。而本文方法產(chǎn)生的是配對型數(shù)據(jù),使得模型更關(guān)注于不同表情之間的差異,而不是不同人之間的差異。同樣是從語義上擴(kuò)充數(shù)據(jù),本文方法較Sun等[12]的方法實現(xiàn)更為容易。相較于基于采樣和目標(biāo)函數(shù)的數(shù)據(jù)量不平衡解決方法,本文方法能夠從根本上擴(kuò)充小類別的數(shù)據(jù)量。表1展示了CK+訓(xùn)練集應(yīng)用兩種數(shù)據(jù)增強(qiáng)方案之后的數(shù)據(jù)量。
表1 CK+訓(xùn)練集數(shù)據(jù)量
為了進(jìn)一步驗證本文數(shù)據(jù)增強(qiáng)方法的有效性,分別對表1的3份訓(xùn)練集進(jìn)行訓(xùn)練,記錄驗證集識別率,并在測試集上計算識別率。由于CK+的樣本數(shù)量較小,本文選擇了參數(shù)較少的Xception和mobilenet_v2進(jìn)行評估。為了加快訓(xùn)練速度,本文采用了微調(diào)技術(shù),同時也可以在一定程度上緩解網(wǎng)絡(luò)模型對大規(guī)模數(shù)據(jù)的依賴。
從表2可以看出,本文的數(shù)據(jù)增強(qiáng)方法能夠有效地提高模型的識別精度,與未增強(qiáng)的相比約有4%左右的提升,與傳統(tǒng)方法相比在mobilenet_v2上有更好的表現(xiàn)。然而,本文方法擴(kuò)充之后的數(shù)據(jù)量比傳統(tǒng)方法少很多,而Xception具有更多的參數(shù),對數(shù)據(jù)量的要求更高,因此本文方法在Xception上的表現(xiàn)比傳統(tǒng)方法略差一點??紤]到本文數(shù)據(jù)增強(qiáng)方法對比傳統(tǒng)方法在CK+上擴(kuò)充的數(shù)據(jù)不多,實際操作中可將本文方法與傳統(tǒng)方法相結(jié)合來獲取更多的生成樣本。從實現(xiàn)成本來看,本文方法需要事先訓(xùn)練一個GAN模型,在本文的硬件環(huán)境下大約需要訓(xùn)練26 h才能達(dá)到預(yù)期效果,調(diào)整輸入圖像大小和采用遷移學(xué)習(xí)進(jìn)行參數(shù)初始化,可以將訓(xùn)練時間控制在2 h以內(nèi)。與傳統(tǒng)方法相比,這無疑增加了很多工作量,然而配對型數(shù)據(jù)采集困難,與人工采集相比,本文方法極大地節(jié)約了人力成本。
表2 數(shù)據(jù)增強(qiáng)實驗結(jié)果對比(識別率)%
表3詳細(xì)記錄了本文方法和傳統(tǒng)方法在mobilenet_v2模型上的表現(xiàn)。可以看出,本文方法在原始數(shù)據(jù)量較小的蔑視和悲傷類別上比傳統(tǒng)方法有較好的表現(xiàn)。由此可知,本文的數(shù)據(jù)增強(qiáng)方法可以適用于一些數(shù)據(jù)量不平衡的數(shù)據(jù)庫。
表3 mobilenet_v2上各類別識別率 %
盡管從表2中可以看出,由于采用了一些防止過擬合的手段,本文訓(xùn)練的模型并沒有對訓(xùn)練集過擬合。但測試集的樣本與訓(xùn)練集的樣本實際來自于同一分布(數(shù)據(jù)庫),這就導(dǎo)致模型可能已經(jīng)對這一分布(數(shù)據(jù)庫)過擬合。實際應(yīng)用中,往往會進(jìn)行跨數(shù)據(jù)庫訓(xùn)練:訓(xùn)練集來自于樣本多的數(shù)據(jù)庫,而驗證集和測試集來自于同一分布(樣本少的數(shù)據(jù)庫或兩個數(shù)據(jù)庫的混合)。
本文使用CK+和JAFFE數(shù)據(jù)庫進(jìn)行跨數(shù)據(jù)庫實驗。JAFFE數(shù)據(jù)庫包含了10位日本女性7種表情(自然、憤怒、厭惡、恐懼、快樂、悲傷和驚訝)下的圖像,每個人每種表情大約3張,共213張圖像。與CK+相比,JAFFE缺少蔑視標(biāo)簽[7]。由于JAFFE數(shù)據(jù)量較小,本文簡化了跨數(shù)據(jù)庫實驗,將JAFFE數(shù)據(jù)庫作為測試集,使用訓(xùn)練好的mobilenet_v2進(jìn)行測試。
從表4中可以看出,由于CK+的數(shù)據(jù)多為歐美人而JAFFE的數(shù)據(jù)為亞洲人,CK+上訓(xùn)練好的模型在JAFFE上的表現(xiàn)并不理想,但基于改進(jìn)StarGAN的數(shù)據(jù)增強(qiáng)方法比傳統(tǒng)方法的跨數(shù)據(jù)庫識別率更高,這說明了本文方法能在一定程度上提高模型的泛化能力。傳統(tǒng)方法更多的是通過模擬多種場景來提高模型的泛化能力。而本文方法是從語義層次上擴(kuò)大數(shù)據(jù)量,從而使得模型更關(guān)注語義特征。
表4 跨數(shù)據(jù)庫實驗對比(識別率) %
上述實驗已經(jīng)驗證了本文數(shù)據(jù)增強(qiáng)方法的有效性,本文最后對比了近期其他方法在CK+數(shù)據(jù)集以及跨數(shù)據(jù)集實驗的結(jié)果,如表5所示。
表5 與其他方法實驗結(jié)果對比(識別率)%
目前針對CK+數(shù)據(jù)集,研究重點多為網(wǎng)絡(luò)模型結(jié)構(gòu),采用的數(shù)據(jù)增強(qiáng)方案多為傳統(tǒng)方案。本文利用改進(jìn)后的StarGAN進(jìn)行數(shù)據(jù)增強(qiáng),將mobilenet_v2作為識別模型,與近期方法進(jìn)行比較。CK+/JAFFE表示在CK+上進(jìn)行訓(xùn)練,在JAFFE上進(jìn)行測試。Lopes等設(shè)計一套完整的人臉表情識別系統(tǒng),除了數(shù)據(jù)增強(qiáng)外還對面部區(qū)域進(jìn)行調(diào)整,并嘗試多種歸一化處理。第2種方法和第3種方法都是采用人工臉進(jìn)行數(shù)據(jù)增強(qiáng),但第3種方法將興趣區(qū)域作為額外輸入,輔助判斷識別結(jié)果,識別率有很大的提高。文獻(xiàn)[20]同樣采用傳統(tǒng)方法,包括平移、水平翻轉(zhuǎn)、旋轉(zhuǎn)、縮放和亮度調(diào)節(jié)。從表中可以看出,盡管本文并沒有對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,但仍具有較高的識別率和泛化能力。人臉表情識別的精度不僅與數(shù)據(jù)增強(qiáng)的方法有關(guān),還受模型結(jié)構(gòu)、參數(shù)初始化方法、圖像預(yù)處理、訓(xùn)練方法、是否引入先驗知識等因素的影響,這也是今后的研究重點。
本文利用改進(jìn)的StarGAN,由某一表情下人臉圖像生成其他表情下的配對圖像,從語義層次上擴(kuò)大數(shù)據(jù)集。在CK+和JAFFE數(shù)據(jù)庫上的實驗表明,本文方法能夠有效解決小樣本數(shù)據(jù)庫的過擬合問題,提高模型的識別率;與傳統(tǒng)方法相比,本文方法使得模型更關(guān)注語義特征,能在一定程度上提高模型的泛化能力。同時,本文方法對解決數(shù)據(jù)量不平衡問題也有一定的借鑒作用。