劉全明,辛陽陽
(山西大學(xué) 計算機(jī)與信息技術(shù)學(xué)院,太原 030006)
E-mail:liuqm@sxu.edu.cn
在信息交流過程中,臉部表情不僅可以傳達(dá)人的情緒,而且能夠傳遞人的情感信息.研究發(fā)現(xiàn),可通過人臉傳遞的信息量占據(jù)了總信息量的55%[1],因此人臉表情識別用于信息的捕捉是非常有意義且具有挑戰(zhàn)的任務(wù).著名心理學(xué)家Paul Ekman[2]將人臉表情分為悲傷、高興、驚訝、恐懼、憤怒和厭惡六種基本表情,后又添加了中性共七種表情.人臉表情識別主要是針對這七種表情,通過人臉定位[3]、特征提取[4]和分類識別[5]來自動分辨人臉表情類別[6,7].
目前的人臉表情識別都是基于正臉或者完整的人臉,在理想狀況下能夠較為準(zhǔn)確的識別出人臉的表情,在現(xiàn)實中考慮到自然因素的影響,難免會采集到質(zhì)量較差的圖像,如有遮擋或破損等,將這一類圖像稱為低質(zhì)人臉表情圖像[8].低質(zhì)人臉表情圖像由于特征信息的缺失直接導(dǎo)致識別率較低且錯誤率較高,為此我們需要對低質(zhì)人臉表情圖像的修復(fù)進(jìn)行研究,補全圖像中缺失的信息,進(jìn)而提高識別率.傳統(tǒng)的人臉表情圖像修復(fù)分為兩類:一類是基于幾何圖像模型的圖像修補技術(shù),適用于修補圖像中的小尺度缺損[9];另一類是基于紋理合成的圖像補全技術(shù),針對填充圖像中大的丟失塊有較好的效果[10,11].但此類方法多半需要人工標(biāo)記修復(fù)區(qū)域,無法滿足自動化在線處理的要求[12].基于深度學(xué)習(xí)的人臉表情修復(fù)方法有更好的處理,文獻(xiàn)[13]利用圖像本身的冗余性,用圖像已知部分的信息來補全未知部分;文獻(xiàn)[14]提出利用互聯(lián)網(wǎng)上存在的大量圖片作為素材來找到相似的部分,直接從其它圖像摳出完整一塊來填補漏洞;文獻(xiàn)[15]提出上下文編碼(Context Encoders)結(jié)構(gòu)首次實現(xiàn)聯(lián)合卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)和生成對抗網(wǎng)絡(luò)(Generative adversarial network,GAN)用于圖像修補,利用卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)圖像中的高級特征,利用這些特征來指導(dǎo)圖像缺失部分的生成.自從Context Encoders被提出,越來越多的基于Context Encoders的改進(jìn)模型被設(shè)計實現(xiàn),文獻(xiàn)[16,17]在圖像復(fù)原上取得不錯的效果.對抗網(wǎng)絡(luò)除了可以進(jìn)行圖像修復(fù)外,還可用于多分類,文獻(xiàn)[18]提出將對抗網(wǎng)絡(luò)的判別器用于多分類,此時生成器得到的輸出被用于訓(xùn)練分類器;基于生成對抗網(wǎng)絡(luò)局部遮擋人臉圖像的表情識別,先利用對抗網(wǎng)絡(luò)進(jìn)行圖像修復(fù),然后通過分類器實現(xiàn)表情識別,充分利用生成式模型的優(yōu)勢完成對局部遮擋人臉圖像表情的識別.
本文針對有局部破損或遮擋的低質(zhì)人臉圖像表情識別設(shè)計了一個端到端的網(wǎng)絡(luò)模型:利用對抗模型實現(xiàn)低質(zhì)人臉表情圖像的復(fù)原并進(jìn)行表情的識別,聯(lián)合使用對抗損失、內(nèi)容損失以及分類損失引導(dǎo)模型的訓(xùn)練.本文將存在局部遮擋或破損的人臉圖像作為生成對抗網(wǎng)絡(luò)的輸入,利用對抗損失將存在局部遮擋或破損的區(qū)域進(jìn)行復(fù)原,同時在原有的未遮擋或破損的人臉圖像和低質(zhì)圖像之間構(gòu)建歐式損失,用于進(jìn)一步的圖像恢復(fù)的效果.為了提升分類效果,在模型的分類器部分建立分類約束判別損失,通過對三部分損失的調(diào)節(jié)更好的優(yōu)化訓(xùn)練網(wǎng)絡(luò).分類器的輸入是低質(zhì)人臉表情圖像、修復(fù)人臉表情圖像以及原始高質(zhì)量人臉表情圖像,分別得到三個分類損失:低質(zhì)人臉表情損失、修復(fù)人臉表情損失和原始人臉表情損失,通過低質(zhì)圖像和原始高質(zhì)量圖像的損失對修復(fù)圖像的損失進(jìn)行約束,建立目標(biāo)函數(shù).在Fer2013和CK+數(shù)據(jù)集上進(jìn)行實驗驗證了本文方法的有效性.
本文提出的端到端低質(zhì)人臉圖像表情識別模型如圖1所示.網(wǎng)絡(luò)主要包含兩部分,生成器(Generative model,G)、判別器(Discrimintive model,D)和分類器(Classificiation,C)三部分共享卷積特征提取層.生成器將低質(zhì)人臉圖像作為網(wǎng)絡(luò)的輸入,通過編碼器的下采樣操作和解碼器的上采樣操作,對存在遮擋的人臉區(qū)域進(jìn)行恢復(fù).判別器將生成器的輸出和未遮擋的人臉照片作為輸入,和生成器一起進(jìn)行對抗訓(xùn)練,提升恢復(fù)到的圖像的質(zhì)量.分類器將恢復(fù)到的人臉圖像作為輸入,構(gòu)建一個分類任務(wù)用于表情識別.

圖1 網(wǎng)絡(luò)結(jié)構(gòu)
如圖1所示,網(wǎng)絡(luò)中A為低質(zhì)破損人臉表情圖像,A′為通過生成器G復(fù)原后圖像,B為原始的完整的人臉表情圖像.圖像A經(jīng)過生成器G得到圖像A′,判別器D通過計算A′與B的內(nèi)容損失以及對抗損失來調(diào)整修復(fù)效果,分類器C分別計算A′,A和B的分類損失,通過建立約束判別損失使得模型有一個更好的分類性能.
生成器部分是典型的編碼-解碼結(jié)構(gòu),編碼器使用的是VGG19的全部卷積層和池化層,解碼器和編碼器互逆,由卷積層和上采樣層組成.判別器D和分類器C是一般的CNN結(jié)構(gòu),包括有卷積層,池化層,全連接層,通過分類層將輸出的結(jié)果轉(zhuǎn)化為概率的形式,為了減小網(wǎng)絡(luò)的參數(shù)規(guī)模,判別器和分類器共享網(wǎng)絡(luò)的卷積參數(shù).
1)對抗損失Lg:為了能夠生成更加真實的圖像,本文引入對抗損失.生成器希望其輸出能夠迷惑判別器,而判別器則希望能夠準(zhǔn)確判斷圖像的真與假.為了使得生成模型的訓(xùn)練更加的穩(wěn)定,本文使用Wasserstein距離損失作為對抗損失,如公式(1),Pr為原始人臉圖像分布,Pz為破損的人臉圖像分布,fw為判別器參數(shù)函數(shù),gθ為生成器參數(shù)函數(shù).
(1)
2)內(nèi)容損失L2:本文使用歐式損失度量生成器的輸出和原始的人臉圖像之間的差異,從而提升對抗生成網(wǎng)絡(luò)的人臉遮擋區(qū)域的恢復(fù)能力.具體的損失函數(shù)表示如下,如公式(2)所示.
(2)
3)分類約束判別損失Lc:分類器部分本文使用的是多分類中最常用的交叉熵?fù)p失[19].使用 softmax激活函數(shù)實現(xiàn)從特征空間到[0,1]概率空間的映射,得到每一個像素分類得分的概率,然后使用交叉熵?fù)p失函數(shù)指導(dǎo)網(wǎng)絡(luò)訓(xùn)練.使用softmax激活函數(shù)的交叉熵?fù)p失就是Softmax損失.Softmax 損失近幾年來常用于做多分類而且相較于其他方法有一個不錯的分類效果.將通過softmax層得到的輸出作為交叉熵的輸入,計算得到Softmax損失.假設(shè)樣本類別數(shù)為n,則softmax層有n個輸出向量,Si是softmax層的輸出向量S的第i個值,表示樣本屬于第i個類別的概率.Softmax損失公式如公式(3)所示,y是一個1*n的向量,而且只有一個1值,其余則都為0,表示的是真實標(biāo)簽的one-hot編碼.Lsoftmax表示的是Softmax損失.
(3)
(4)

4)模型的總損失為L由三部分組成如公式(5)所示.
L=αLg+βL2+γLc
(5)
α,β,γ為超參數(shù),用來對各部分損失做一個平衡.
本文實驗通過在具有GPU的1080ti顯卡的電腦上搭建TensorFlow框架來構(gòu)建模型并訓(xùn)練,在訓(xùn)練本文模型之前首先利用CelebA人臉數(shù)據(jù)集上對生成模型進(jìn)行預(yù)訓(xùn)練,然后使用本文處理后的Fer2013訓(xùn)練集和CK+數(shù)據(jù)集進(jìn)行整個模型的訓(xùn)練,此時只需要微調(diào)生成模型部分,使用處理后的Fer2013測試集通過分類指標(biāo)精度(Acc)和混淆矩陣[20]以對模型進(jìn)行評估,最后在處理后的Fer2013測試集上對本文損失進(jìn)行的分析.各個模型的訓(xùn)練參數(shù)如表1所示,設(shè)置α=0.85,β=0.1,γ=0.15通過實驗發(fā)現(xiàn)本文對抗網(wǎng)絡(luò)部分的對抗損失在0.05左右,而單獨使用分類器的分類損失在0.3左右,比例為1∶6,為了平衡損失按比例設(shè)置超參數(shù).而本文網(wǎng)絡(luò)為了使網(wǎng)絡(luò)側(cè)重于分類,適當(dāng)?shù)恼{(diào)大分類損失部分的權(quán)重.本文的超參數(shù)并不一定是最優(yōu)的.使用大于0小于1的數(shù)值是為了讓初始損失不至于很大,隨著梯度下降有一個平滑的損失曲線.

表1 訓(xùn)練參數(shù)
Fer2013數(shù)據(jù)集,F(xiàn)er2013人臉表情數(shù)據(jù)集由35886張人臉表情圖片組成,其中訓(xùn)練集28708張,驗證集和測試集各3589張.每張圖片是由大小固定為48×48的灰度圖像組成,本文將所有圖像處理為64×64大小.共有7種表情,分別對應(yīng)于數(shù)字標(biāo)簽0-6,具體表情對應(yīng)的標(biāo)簽和中英文如下:0(anger)生氣;1(disgust)厭惡;2(fear)恐懼;3(happy)開心;4(sad)傷心;5(surprised)驚訝;6(neutral)中性.
CK+數(shù)據(jù)集,CK+人臉表情數(shù)據(jù)集由920張人臉表情圖片組成,共有8種表情,具體表情對應(yīng)的標(biāo)簽和中英文如下:(anger)生氣;(contempt)輕視;(disgust)厭惡;(fear)恐懼;(happiness)開心;(sadness)傷心;(surprise)驚訝;(neutral)中性.CK+數(shù)據(jù)集使用前本文先做了預(yù)處理,把圖像中的人臉裁剪出來固定圖像尺寸為64*64大小.
實際當(dāng)中,人臉圖像帶有遮擋或破損往往是眼睛和嘴巴部分,這是由于帽子和口罩造成的,直接導(dǎo)致了人臉眼部和嘴部信息缺失,而人臉這兩個部位對人的表情起決定性作用,目前帶有破損或遮擋的人臉表情公開數(shù)據(jù)集相對較少,本文分別考慮了人臉眼部和嘴部區(qū)域由于遮擋或破損造成的信息缺失對人臉表情的影響,在現(xiàn)有的人臉表情數(shù)據(jù)集上人為添加破損或遮擋,分別統(tǒng)一去除圖像眼部或嘴部25%的區(qū)域.對Fer2013和CK+數(shù)據(jù)集樣本圖進(jìn)行處理,如圖2所示,圖(a)中第一行為去除眼部25%面積區(qū)域的人臉圖像,第二行為去除嘴部25%面積區(qū)域的人臉圖像.圖(b)和圖(a)做相同處理后的人臉圖像.將處理后的人臉表情圖像作為新的樣本集.

圖2 處理后的樣本集
如圖3(a)和(b)所示,分別是對Fer2013數(shù)據(jù)集和CK+數(shù)據(jù)集的低質(zhì)人臉表情圖像恢復(fù)效果.圖(a)中的第一行為Fer2013數(shù)據(jù)集每個表情類下的原始圖像,第二行為人臉眼部區(qū)域的恢復(fù)效果,第三行為人臉嘴部區(qū)域的恢復(fù)效果.同樣圖(b)為在CK+數(shù)據(jù)集上的眼部和嘴部的恢復(fù)效果.由圖3恢復(fù)效果可以發(fā)現(xiàn),修補的效果已經(jīng)能夠接近原始圖像,在一些關(guān)鍵的區(qū)域眼睛和嘴巴都很真實,只是相對原始圖像帶有一定的模糊但對表情的識別影響不大.

圖3 修復(fù)效果圖
如表2、表3所示,在Fer2013和CK+數(shù)據(jù)集上的精度,在原始無缺失七種表情數(shù)據(jù)集上使用生成式對抗網(wǎng)絡(luò)和不使用生成對抗網(wǎng)絡(luò)識別準(zhǔn)確率相同,表2展示了分別使用生成式對抗網(wǎng)絡(luò)(DCGAN+CNN)和不使用生成式對抗網(wǎng)絡(luò)(CNN)對Fer2013七種表情進(jìn)行實驗對比,在原始訓(xùn)練集上的識別準(zhǔn)確率為80.48%,在測試集上識別準(zhǔn)確率為63.56%.對于有缺失的數(shù)據(jù)集DCGAN+CNN的識別準(zhǔn)確率略低于CNN方法.而本文方法相比兩種方法有一個更高的識別準(zhǔn)確率,從表中可以看出本文方法在低質(zhì)數(shù)據(jù)集上都得到了提升,通過使用生成式模型對圖像進(jìn)行復(fù)原和分類約束判別損失有一個更高的精度.在丟失相同面積的眼部區(qū)域要比嘴部區(qū)域的精度要高,眼部缺失更接近原始圖像的精度,證明嘴部包含了大量能體現(xiàn)人臉表情的信息.在嘴部缺失25%的Fer2013測試集上精度為58.68%,比較于普通CNN分類器高出2.99個百分點.由于CK+數(shù)據(jù)集本身質(zhì)量要比Fer2013數(shù)據(jù)集高,所以在精度上要稍微高一點,嘴部缺失25%的精度為90.57相較于CNN高出1.4個百分點.

表2 在Fer2013數(shù)據(jù)集上的精度

表3 在CK+數(shù)據(jù)集上的精度
如圖4所示為在Fer2013測試集上的混淆矩陣,圖(a)是只使用CNN分類器在低質(zhì)的Fer2013測試集上的混淆矩陣,圖(b)是使用本文模型在低質(zhì)Fer2013測試集上的混淆矩陣,圖(c)是使用CNN在原始Fer2013測試集上的混淆矩陣.通過對比可以發(fā)現(xiàn)在低質(zhì)Fer2013測試集上直接使用CNN進(jìn)行分類導(dǎo)致在每個類別下有較低的正確分類概率,甚至可能會有錯分類的情況,如圖(a)中真實標(biāo)簽為disgust,預(yù)測標(biāo)簽為angry,產(chǎn)生了錯誤的預(yù)測;圖(b)為使用本文模型后在每個類別下正確分類的概率都得到了提升,而且消除了錯分類的情況.與圖3結(jié)果類似,圖5是在CK+數(shù)據(jù)集上的混淆矩陣,從(a)中可以看出除了對neutral能夠正確分類外其余都錯分類,圖(b)通過本文方法使得分類結(jié)果得到了改善,從矩陣中可以看出除了對neutral能夠正確分類外還能夠?qū)ontempt正確分類.

圖4 在Fer2013測試集上混淆矩陣

圖5 在CK+測試集上混淆矩陣
本文通過在嘴部缺失25%的Fer2013測試集上的精度對損失函數(shù)進(jìn)行分析,從表4可以看出,使用約束判別損失相較于直接使用生成圖像的分類損失有一個更高的精度為58.68%,在僅使用對抗損失和修復(fù)圖像的分類損失的情況下精度為57.68%,而使用內(nèi)容損失后精度有所提升為57.92%,相比之下本文使用對抗損失和內(nèi)容損失以及分類約束判別損失有一個更高的精度.

表4 Fer2013測試集(嘴部缺失25%)上不同損失函數(shù)的精度
本文針對低質(zhì)人臉圖像的表情識別,設(shè)計了一個端到端的網(wǎng)絡(luò)模型,使用生成對抗網(wǎng)絡(luò)對存在遮擋或破損的人臉區(qū)域進(jìn)行恢復(fù),將對抗模型的判別器進(jìn)行擴(kuò)展使其可以實現(xiàn)多分類,使得對抗模型具有多分類能力,提高了低質(zhì)人臉表情識別的精度.通過在Fer2013和CK+數(shù)據(jù)集上的對比實驗表明,本文方法具有較好的表情識別性能,但由于生成式模型本身訓(xùn)練就比較復(fù)雜.接下來我們會在本文的基礎(chǔ)上進(jìn)行模型優(yōu)化,壓縮模型降低訓(xùn)練參數(shù),并使用較好的分類器;其次本文在處理低質(zhì)圖像時規(guī)則化了破損區(qū)域,實際生活中的破損區(qū)域是不規(guī)則且包含有用信息的區(qū)域,這些問題將是下一步工作的重點內(nèi)容.