李萌萌, 馬 力, 賈宇峰
(西安郵電大學(xué) 計算機(jī)學(xué)院,陜西 西安 710121)
在日常生活中,人們不但可以通過面部表情來了解對方的情緒,還可以通過面部肌肉的相互配合來代替人語言上的溝通,這一方式極其獨特。人面部表情至少有21種,基本可分為8類:憤怒、蔑視、厭惡、恐懼、悲傷、快樂、驚訝和中性[1]。隨著科學(xué)技術(shù)的發(fā)展,人臉識別技術(shù)在生活中應(yīng)用廣泛。而表情識別是人臉識別技術(shù)的提升,具有更廣泛的應(yīng)用價值。例如智能駕駛方面,可根據(jù)司機(jī)旅途中表情判斷出駕駛狀態(tài),從而減少事故發(fā)生率;在線上教學(xué)中,教師可根據(jù)學(xué)生表情及時調(diào)整教學(xué)方案,以達(dá)到最佳的授課效果;在電影制作方面,制作方根據(jù)觀影人的表情準(zhǔn)確找到影片最精彩之處制做預(yù)告片,吸引更多人前來觀影。
近年來,隨著深度學(xué)習(xí)的發(fā)展,Goodfellow I等人[2]提出的生成對抗網(wǎng)絡(luò)(generative adversarial network,GAN)以其獨特的對抗思想為面部表情生成提供了新的方式,并且在圖像到圖像的轉(zhuǎn)換[3,4]、視頻預(yù)測[5]、圖像風(fēng)格轉(zhuǎn)換[6,7]、圖像超分辨率[8]和文本到圖像的生成[9,10]等方面取得了令人矚目的成果。文獻(xiàn)[11]循環(huán)一致的對抗網(wǎng)絡(luò)(cycle consistent adversarial network,CycleGAN)不需要使用匹配的樣本也能將樣本表情特征轉(zhuǎn)換成另一類表情樣本風(fēng)格,以致其拓展性好,應(yīng)用更廣泛;文獻(xiàn)[12]提出一種基于GAN學(xué)習(xí)發(fā)現(xiàn)不同域之間關(guān)系的算法DiscoGAN,利用一對一映射正確學(xué)習(xí)圖像特征,進(jìn)而提高表情圖像質(zhì)量;文獻(xiàn)[13]星型生成對抗網(wǎng)絡(luò)(StarGAN)解決了多種表情類別之間相互轉(zhuǎn)化的問題,模型結(jié)構(gòu)相對簡易并且運行高效。雖然現(xiàn)有的各種GAN網(wǎng)絡(luò)有著良好的性能,但這些算法存在著模式易崩塌和訓(xùn)練不穩(wěn)定的問題。
本文提出了一種基于模式搜索StartGAN的圖像生成方法,進(jìn)一步改善了星型生成對抗網(wǎng)絡(luò)的模式崩塌現(xiàn)象。
GAN[2]由生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)兩部分構(gòu)成的。判別網(wǎng)絡(luò)是區(qū)分生成器生成的假樣本和真實樣本。而生成網(wǎng)絡(luò)是通過生成假樣本來混淆判別器。整個訓(xùn)練過程中生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)同時訓(xùn)練,構(gòu)成了一個動態(tài)的“二人博弈游戲”(two-player minmax game)。GAN訓(xùn)練過程如式(1)所示
(1)
StarGAN[13]相比于其它GAN模型而言,解決了多種表情類別之間相互轉(zhuǎn)化的問題。StarGAN的模型結(jié)構(gòu)相對簡易并且運行高效,其生成器接收輸入目標(biāo)域c和輸入樣本x。G輸出的假樣本一方面?zhèn)鬏斀oD,判斷真假樣本和進(jìn)行域分類;另一方面這個假樣本會再次傳輸?shù)缴善?,并與輸入樣本的目標(biāo)域標(biāo)簽c′作為輸入,目的在于混淆輸出的樣本和原始輸入樣本,提高兩者之間的相似性。StarGAN的網(wǎng)絡(luò)結(jié)構(gòu)如圖1。
圖1 StarGAN網(wǎng)絡(luò)結(jié)構(gòu)
GAN[2]的模式崩塌問題可由模式搜索GAN(mode seeking generative adversarial network,MSGAN )[14]提出的量化模型崩塌的方式進(jìn)行改善。量化模型崩塌的方式即距離比,可使樣本具有更好的多樣性,如式(2)所示
(2)
式中dI為樣本之間的距離矩陣,dZ為隱向量之間的距離矩陣,c,z分別為條件和隱向量。生成圖像由隱編碼空間Z的隱向量z映射到圖像空間I中得到。在圖2中,a=1,b=2。當(dāng)發(fā)生模式崩塌時,z1,z2值越接近,距離比就會越小。隨著距離比的增大,更多隱向量能映射到圖像中。因此,可通過增大距離比改善模型崩塌現(xiàn)象。
MSGAN模型通過添加模式搜索(mode seeking)正則項[14]來增大距離比。公式如下
(3)
MSGAN的目標(biāo)函數(shù)如式(4)
Lnew=Lori+λmsLms
(4)
式中Loir為原始目標(biāo)函數(shù),λms為控制正則化重要性的權(quán)重。
在面部表情圖像生成中,表情轉(zhuǎn)換后得到的樣本質(zhì)量對表情識別有著重要的影響。MSGAN提出量化模型崩塌方式即距離比,通過增大距離比改善模式崩塌現(xiàn)象,進(jìn)而提高樣本質(zhì)量。StarGAN能夠解決多種表情類別之間相互轉(zhuǎn)化的問題,模型結(jié)構(gòu)相對簡易并且運行高效。因此,本文結(jié)合StarGAN和MSGAN模型的特點,提出了一種模式搜索StarGAN(MS-StarGAN)。MS-StarGAN向生成器目標(biāo)函數(shù)中添加模式搜索正則項,通過增大距離比避免特征相似的輸入向量一直出現(xiàn)在同樣的映射位置,進(jìn)一步解決模式崩塌現(xiàn)象,使得表情圖像的質(zhì)量和豐富度有所提高。生成器結(jié)構(gòu)采用空間可分離卷積替代卷積層,從而減少模型的訓(xùn)練參數(shù),有效提升模型訓(xùn)練的穩(wěn)定性。MS-StarGAN原理如圖2所示。
圖2 MS-StarGAN網(wǎng)絡(luò)原理
首先向生成器輸入目標(biāo)域c和輸入樣本x生成假樣本G(x,c)。假樣本G(x,c)傳送給判別器,判別器會判定是生成器生成的假樣本G(x,c)還是輸入樣本x,以及域分類結(jié)果;而生成器產(chǎn)生的假樣本G(x,c)會再次傳回給生成器。此時將這個假樣本G(x,c)與輸入樣本的目標(biāo)域標(biāo)簽c′作為輸入,目的在于混淆輸出的樣本和原始輸入樣本,提高兩者之間的特征相似性。在輸入樣本與生成樣本之間添加模式搜索正則項,進(jìn)一步改善模式崩塌現(xiàn)象,使得生成的表情樣本更加自然且平滑。
MS-StarGAN生成器結(jié)構(gòu)如圖3所示,MS-StarGAN生成器整個網(wǎng)絡(luò)深度為18,包括了3個不同卷積層,6個殘差塊[15](其中每個殘差塊包含2層普通空間卷積層),以及2個轉(zhuǎn)置卷積。首先第一部分接收樣本和標(biāo)簽作為輸入,卷積核尺寸為7×7,步幅尺寸為1,填充尺寸為3,并且添加實例歸一化層和Relu作為激勵函數(shù)。激勵函數(shù)可以加速訓(xùn)練,提升穩(wěn)定性。第二、三層進(jìn)行下采樣,卷積核尺寸為4×4,步幅尺寸為1,填充尺寸為2,得到4×4×256的特征圖。其次在中間部分使用空間分離卷積[16],將3×3分離為3×1和1×3,目的在于減少網(wǎng)絡(luò)訓(xùn)練的參數(shù)量。最后使用轉(zhuǎn)置卷積進(jìn)行上采樣,輸出使用反曲函數(shù)Tanh。
圖3 MS-StarGAN生成器結(jié)構(gòu)
對于判別器網(wǎng)絡(luò)而言,整個網(wǎng)絡(luò)深度為7。它輸入的是真樣本或者假樣本,并判斷其真假以及所屬目標(biāo)域,卷積核尺寸為4×4,步幅尺寸為2,填充尺寸為1。中間部分為隱含層,使得表情特征能夠穩(wěn)定得到獲取,卷積核個數(shù)依次為128,256,512,1 024,2 048。而它的輸出有兩部分:對抗標(biāo)簽和分類標(biāo)簽。全局平均池化層代替全連接層,減小參數(shù)量,提高訓(xùn)練速度。MS-StarGAN模型結(jié)構(gòu)圖如圖4所示。
圖4 MS-StarGAN判別器結(jié)構(gòu)
MS-StarGAN損失函數(shù)由對抗誤差、域分類誤差和重構(gòu)誤差組成。
對抗誤差:由判別器判別真實圖像產(chǎn)生的損失和判別器判別生成圖像的損失共同組成了對抗誤差。式(5)如
Ladv=Ex[logDsrc(x)]+Ex,c[log(1-Dsrc(G(x,c)))]
(5)
式中x為輸入樣本,c為目標(biāo)域標(biāo)簽,Dsrc(x)則為判斷出輸入樣本為真實樣本的概率。
域分類誤差:該誤差的目的是給目標(biāo)域c分配到含有目標(biāo)域標(biāo)簽c′的輸入圖像x的輸出圖像y。判別器增加輔助域分類器,并在優(yōu)化判別器和生成器時使用域分類誤差。判別器的域分類誤差和生成器的域分類誤差如式(6)、式(7)
(6)
(7)
式中c′為輸入樣本的目標(biāo)域標(biāo)簽,Dcls(c′|x)為在c′下判別器計算出的概率分布。
重構(gòu)誤差:為使樣本在轉(zhuǎn)換后改變需要轉(zhuǎn)換的部分,其它部分保持不變,采用周期一致性損失,如式(8)
Lrec=Ex,c,c′[‖x-G(G(x,c),c′)‖1]
(8)
為避免特征相似的輸入向量一直出現(xiàn)在一樣的映射位置,進(jìn)一步解決模式崩塌現(xiàn)象。所以最終目標(biāo)函數(shù)如式(9)、式(10)
(9)
(10)
式中λcls,λrec和λms為具有不同權(quán)重的超參數(shù)。
為驗證MS-StarGAN的性能,本文在CK+數(shù)據(jù)集[17]和FER2013[18]數(shù)據(jù)集上進(jìn)行驗證,并與CycleGAN、DiscoGAN和StarGAN三個模型進(jìn)行對比。實驗處理器使用Intel?Xeon?CPU E5—2620 v4 @ 2.10 GHz,顯卡為NVIDIA Tesla P100 GPU,環(huán)境為TensorFlow。
MS-SAGAN使用基于動量算法的Adam作為優(yōu)化器,實驗迭代訓(xùn)練80個epoch,每一個epoch的迭代次數(shù)為10 000次。初始學(xué)習(xí)率設(shè)置為0.000 2,beta為0.5,batch_size設(shè)置為32。參數(shù)λcls、λrec均設(shè)置為10,λms設(shè)置為1。
CK+數(shù)據(jù)集是人臉表情合成最常用的數(shù)據(jù)庫之一。該數(shù)據(jù)庫包含了面部8種表情:憤怒、蔑視、厭惡、恐懼、悲傷、高興、驚訝和自然。此次實驗選取除蔑視與自然之外的6種表情圖像,一共1 014張圖像。其中,訓(xùn)練集選取737張圖像,測試集選取277張圖像。
圖5為MS-StarGAN模型在CK+數(shù)據(jù)集上生成的樣本。在實驗中隨機(jī)輸入一種表情,則生成經(jīng)遷移后的6種表情。第一列到第六列的表情依次為憤怒、厭惡、恐懼、高興、悲傷和驚訝。由圖5可知,迭代次數(shù)在10次之后就能學(xué)習(xí)到面部特征,但存在圖像噪聲且表情特征學(xué)習(xí)不足的問題。當(dāng)?shù)螖?shù)達(dá)到50次后,生成圖像的質(zhì)量效果較好,噪聲較少,圖像平滑。
圖5 CK+生成樣本
為進(jìn)一步驗證MS-StarGAN生成圖像的效果,使用不同用于風(fēng)格遷移的生成對抗網(wǎng)絡(luò),包括StarGAN、CycleGAN、DiscoGAN。這些模型與MS-StarGAN在同一數(shù)據(jù)集上生成的圖像加以對比,生成效果如圖6所示。第一列到第六列為經(jīng)遷移后得到的6種表情,依次為憤怒、厭惡、恐懼、高興、悲傷和驚訝。由對比圖可知,CycleGAN與DiscoGAN生成的樣本雖然學(xué)習(xí)到較準(zhǔn)確的面部特征,但是存在模式崩潰且圖像不平滑;StarGAN生成樣本的面部表情特征相比于CycleGAN與DiscoGAN更清晰,圖像較平滑。而MS-StarGAN將模式搜索正則項與星型生成對抗網(wǎng)絡(luò)的生成器損失相結(jié)合則,其結(jié)果相比其它生成對抗網(wǎng)絡(luò)生成的圖像更加清晰,模式崩潰有所改善,圖像表情更加自然。
圖6 不同模型生成圖像對比
FER2013數(shù)據(jù)集是一個由28 709張圖像的訓(xùn)練集、3 589張圖像的驗證集和3 589張圖像的測試集組成,共35 887張圖像的數(shù)據(jù)集。該數(shù)據(jù)集中表情共分為7類即憤怒、厭惡、恐懼、悲傷、高興、驚訝和自然,且每一張圖像均為48×48的灰度圖像。為了與CK+數(shù)據(jù)集表情的種類相一致,此次實驗選取了除自然表情以外的6類表情進(jìn)行表情生成。
圖7為模型MS-StarGAN生成的效果圖。在實驗中同樣隨機(jī)輸入一類表情,總共迭代80次得到樣本,依次得到的樣本表情圖像為憤怒、厭惡、恐懼、高興、悲傷和驚訝。由圖7可知,在前10次迭代中圖像存在大量噪聲,特征并不清晰,但當(dāng)?shù)螖?shù)達(dá)到50以后,尤其迭代次數(shù)到達(dá)80次時圖像的表情特征已經(jīng)逐漸清晰,噪聲也在慢慢消失,圖像趨于平滑。
圖7 Fer2013生成樣本
圖8是相同實驗條件下不同模型使用FER2013數(shù)據(jù)集生成圖像的對比圖。由于FER2013數(shù)據(jù)集存在部分標(biāo)簽錯誤以及肉眼識別率僅在65 %上下的問題,因此,從圖8看出無論是MS-StarGAN還是其它模型,經(jīng)轉(zhuǎn)換后的表情圖像效果表現(xiàn)都不如CK+數(shù)據(jù)集,尤其是厭惡表情。因為圖像數(shù)量相比其它表情較少,反之高興以及驚訝表情轉(zhuǎn)換后效果較為突出。盡管如此,從生成圖像中仍然可以清楚的看到,MS-StarGAN模型最終生成的樣本相比于其它模型噪聲少且平滑,表情特征更加明顯。
圖8 不同模型生成圖像對比
為了定量的評價生成圖像質(zhì)量的好壞,本文采用弗雷歇距離(Fréchet inception distance,F(xiàn)ID)評估指標(biāo),其結(jié)果更具有原則性和綜合性,能夠更好地捕獲真假樣本圖像的相似性,符合人類的區(qū)分準(zhǔn)則。FID值較低代表生成圖片的質(zhì)量噪聲小,具有更好的豐度。FID的公式如下
FID=‖μr-μg‖2+Tr(Σr+Σg-2(ΣrΣg)1/2)
(11)
MS-StarGAN與StarGAN的最佳弗雷歇距離值如表1所示。
表1 不同模型的FID值對比
本文提出了MS-StarGAN模型,在StarGAN的基礎(chǔ)上結(jié)合MSGAN中提出的模式搜索距離比,進(jìn)一步改善了StarGAN模式崩塌現(xiàn)象。與其它用于圖像遷移的對抗生成網(wǎng)絡(luò)方法,如CycleGAN、StarGAN等。本方法在CK+和FER2013數(shù)據(jù)集上具有良好的生成效果,驗證了該方法比其它的面部表情圖像風(fēng)格遷移生成模型可以更有效地改善模式崩塌問題,進(jìn)而提高表情圖像的質(zhì)量和豐富度以及模型訓(xùn)練的穩(wěn)定性。其弗雷歇距離相比較于StarGAN分別提高了1.64和0.68。但是本文所提方法對于圖像局部特征的改善較不明顯,有待進(jìn)一步改進(jìn)。