劉全明,辛陽(yáng)陽(yáng)
(山西大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,太原 030006)
E-mail:liuqm@sxu.edu.cn
在信息交流過(guò)程中,臉部表情不僅可以傳達(dá)人的情緒,而且能夠傳遞人的情感信息.研究發(fā)現(xiàn),可通過(guò)人臉傳遞的信息量占據(jù)了總信息量的55%[1],因此人臉表情識(shí)別用于信息的捕捉是非常有意義且具有挑戰(zhàn)的任務(wù).著名心理學(xué)家Paul Ekman[2]將人臉表情分為悲傷、高興、驚訝、恐懼、憤怒和厭惡六種基本表情,后又添加了中性共七種表情.人臉表情識(shí)別主要是針對(duì)這七種表情,通過(guò)人臉定位[3]、特征提取[4]和分類(lèi)識(shí)別[5]來(lái)自動(dòng)分辨人臉表情類(lèi)別[6,7].
目前的人臉表情識(shí)別都是基于正臉或者完整的人臉,在理想狀況下能夠較為準(zhǔn)確的識(shí)別出人臉的表情,在現(xiàn)實(shí)中考慮到自然因素的影響,難免會(huì)采集到質(zhì)量較差的圖像,如有遮擋或破損等,將這一類(lèi)圖像稱(chēng)為低質(zhì)人臉表情圖像[8].低質(zhì)人臉表情圖像由于特征信息的缺失直接導(dǎo)致識(shí)別率較低且錯(cuò)誤率較高,為此我們需要對(duì)低質(zhì)人臉表情圖像的修復(fù)進(jìn)行研究,補(bǔ)全圖像中缺失的信息,進(jìn)而提高識(shí)別率.傳統(tǒng)的人臉表情圖像修復(fù)分為兩類(lèi):一類(lèi)是基于幾何圖像模型的圖像修補(bǔ)技術(shù),適用于修補(bǔ)圖像中的小尺度缺損[9];另一類(lèi)是基于紋理合成的圖像補(bǔ)全技術(shù),針對(duì)填充圖像中大的丟失塊有較好的效果[10,11].但此類(lèi)方法多半需要人工標(biāo)記修復(fù)區(qū)域,無(wú)法滿足自動(dòng)化在線處理的要求[12].基于深度學(xué)習(xí)的人臉表情修復(fù)方法有更好的處理,文獻(xiàn)[13]利用圖像本身的冗余性,用圖像已知部分的信息來(lái)補(bǔ)全未知部分;文獻(xiàn)[14]提出利用互聯(lián)網(wǎng)上存在的大量圖片作為素材來(lái)找到相似的部分,直接從其它圖像摳出完整一塊來(lái)填補(bǔ)漏洞;文獻(xiàn)[15]提出上下文編碼(Context Encoders)結(jié)構(gòu)首次實(shí)現(xiàn)聯(lián)合卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)和生成對(duì)抗網(wǎng)絡(luò)(Generative adversarial network,GAN)用于圖像修補(bǔ),利用卷積神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)圖像中的高級(jí)特征,利用這些特征來(lái)指導(dǎo)圖像缺失部分的生成.自從Context Encoders被提出,越來(lái)越多的基于Context Encoders的改進(jìn)模型被設(shè)計(jì)實(shí)現(xiàn),文獻(xiàn)[16,17]在圖像復(fù)原上取得不錯(cuò)的效果.對(duì)抗網(wǎng)絡(luò)除了可以進(jìn)行圖像修復(fù)外,還可用于多分類(lèi),文獻(xiàn)[18]提出將對(duì)抗網(wǎng)絡(luò)的判別器用于多分類(lèi),此時(shí)生成器得到的輸出被用于訓(xùn)練分類(lèi)器;基于生成對(duì)抗網(wǎng)絡(luò)局部遮擋人臉圖像的表情識(shí)別,先利用對(duì)抗網(wǎng)絡(luò)進(jìn)行圖像修復(fù),然后通過(guò)分類(lèi)器實(shí)現(xiàn)表情識(shí)別,充分利用生成式模型的優(yōu)勢(shì)完成對(duì)局部遮擋人臉圖像表情的識(shí)別.
本文針對(duì)有局部破損或遮擋的低質(zhì)人臉圖像表情識(shí)別設(shè)計(jì)了一個(gè)端到端的網(wǎng)絡(luò)模型:利用對(duì)抗模型實(shí)現(xiàn)低質(zhì)人臉表情圖像的復(fù)原并進(jìn)行表情的識(shí)別,聯(lián)合使用對(duì)抗損失、內(nèi)容損失以及分類(lèi)損失引導(dǎo)模型的訓(xùn)練.本文將存在局部遮擋或破損的人臉圖像作為生成對(duì)抗網(wǎng)絡(luò)的輸入,利用對(duì)抗損失將存在局部遮擋或破損的區(qū)域進(jìn)行復(fù)原,同時(shí)在原有的未遮擋或破損的人臉圖像和低質(zhì)圖像之間構(gòu)建歐式損失,用于進(jìn)一步的圖像恢復(fù)的效果.為了提升分類(lèi)效果,在模型的分類(lèi)器部分建立分類(lèi)約束判別損失,通過(guò)對(duì)三部分損失的調(diào)節(jié)更好的優(yōu)化訓(xùn)練網(wǎng)絡(luò).分類(lèi)器的輸入是低質(zhì)人臉表情圖像、修復(fù)人臉表情圖像以及原始高質(zhì)量人臉表情圖像,分別得到三個(gè)分類(lèi)損失:低質(zhì)人臉表情損失、修復(fù)人臉表情損失和原始人臉表情損失,通過(guò)低質(zhì)圖像和原始高質(zhì)量圖像的損失對(duì)修復(fù)圖像的損失進(jìn)行約束,建立目標(biāo)函數(shù).在Fer2013和CK+數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)驗(yàn)證了本文方法的有效性.
本文提出的端到端低質(zhì)人臉圖像表情識(shí)別模型如圖1所示.網(wǎng)絡(luò)主要包含兩部分,生成器(Generative model,G)、判別器(Discrimintive model,D)和分類(lèi)器(Classificiation,C)三部分共享卷積特征提取層.生成器將低質(zhì)人臉圖像作為網(wǎng)絡(luò)的輸入,通過(guò)編碼器的下采樣操作和解碼器的上采樣操作,對(duì)存在遮擋的人臉區(qū)域進(jìn)行恢復(fù).判別器將生成器的輸出和未遮擋的人臉照片作為輸入,和生成器一起進(jìn)行對(duì)抗訓(xùn)練,提升恢復(fù)到的圖像的質(zhì)量.分類(lèi)器將恢復(fù)到的人臉圖像作為輸入,構(gòu)建一個(gè)分類(lèi)任務(wù)用于表情識(shí)別.
圖1 網(wǎng)絡(luò)結(jié)構(gòu)
如圖1所示,網(wǎng)絡(luò)中A為低質(zhì)破損人臉表情圖像,A′為通過(guò)生成器G復(fù)原后圖像,B為原始的完整的人臉表情圖像.圖像A經(jīng)過(guò)生成器G得到圖像A′,判別器D通過(guò)計(jì)算A′與B的內(nèi)容損失以及對(duì)抗損失來(lái)調(diào)整修復(fù)效果,分類(lèi)器C分別計(jì)算A′,A和B的分類(lèi)損失,通過(guò)建立約束判別損失使得模型有一個(gè)更好的分類(lèi)性能.
生成器部分是典型的編碼-解碼結(jié)構(gòu),編碼器使用的是VGG19的全部卷積層和池化層,解碼器和編碼器互逆,由卷積層和上采樣層組成.判別器D和分類(lèi)器C是一般的CNN結(jié)構(gòu),包括有卷積層,池化層,全連接層,通過(guò)分類(lèi)層將輸出的結(jié)果轉(zhuǎn)化為概率的形式,為了減小網(wǎng)絡(luò)的參數(shù)規(guī)模,判別器和分類(lèi)器共享網(wǎng)絡(luò)的卷積參數(shù).
1)對(duì)抗損失Lg:為了能夠生成更加真實(shí)的圖像,本文引入對(duì)抗損失.生成器希望其輸出能夠迷惑判別器,而判別器則希望能夠準(zhǔn)確判斷圖像的真與假.為了使得生成模型的訓(xùn)練更加的穩(wěn)定,本文使用Wasserstein距離損失作為對(duì)抗損失,如公式(1),Pr為原始人臉圖像分布,Pz為破損的人臉圖像分布,fw為判別器參數(shù)函數(shù),gθ為生成器參數(shù)函數(shù).
(1)
2)內(nèi)容損失L2:本文使用歐式損失度量生成器的輸出和原始的人臉圖像之間的差異,從而提升對(duì)抗生成網(wǎng)絡(luò)的人臉遮擋區(qū)域的恢復(fù)能力.具體的損失函數(shù)表示如下,如公式(2)所示.
(2)
3)分類(lèi)約束判別損失Lc:分類(lèi)器部分本文使用的是多分類(lèi)中最常用的交叉熵?fù)p失[19].使用 softmax激活函數(shù)實(shí)現(xiàn)從特征空間到[0,1]概率空間的映射,得到每一個(gè)像素分類(lèi)得分的概率,然后使用交叉熵?fù)p失函數(shù)指導(dǎo)網(wǎng)絡(luò)訓(xùn)練.使用softmax激活函數(shù)的交叉熵?fù)p失就是Softmax損失.Softmax 損失近幾年來(lái)常用于做多分類(lèi)而且相較于其他方法有一個(gè)不錯(cuò)的分類(lèi)效果.將通過(guò)softmax層得到的輸出作為交叉熵的輸入,計(jì)算得到Softmax損失.假設(shè)樣本類(lèi)別數(shù)為n,則softmax層有n個(gè)輸出向量,Si是softmax層的輸出向量S的第i個(gè)值,表示樣本屬于第i個(gè)類(lèi)別的概率.Softmax損失公式如公式(3)所示,y是一個(gè)1*n的向量,而且只有一個(gè)1值,其余則都為0,表示的是真實(shí)標(biāo)簽的one-hot編碼.Lsoftmax表示的是Softmax損失.
(3)
(4)
4)模型的總損失為L(zhǎng)由三部分組成如公式(5)所示.
L=αLg+βL2+γLc
(5)
α,β,γ為超參數(shù),用來(lái)對(duì)各部分損失做一個(gè)平衡.
本文實(shí)驗(yàn)通過(guò)在具有GPU的1080ti顯卡的電腦上搭建TensorFlow框架來(lái)構(gòu)建模型并訓(xùn)練,在訓(xùn)練本文模型之前首先利用CelebA人臉數(shù)據(jù)集上對(duì)生成模型進(jìn)行預(yù)訓(xùn)練,然后使用本文處理后的Fer2013訓(xùn)練集和CK+數(shù)據(jù)集進(jìn)行整個(gè)模型的訓(xùn)練,此時(shí)只需要微調(diào)生成模型部分,使用處理后的Fer2013測(cè)試集通過(guò)分類(lèi)指標(biāo)精度(Acc)和混淆矩陣[20]以對(duì)模型進(jìn)行評(píng)估,最后在處理后的Fer2013測(cè)試集上對(duì)本文損失進(jìn)行的分析.各個(gè)模型的訓(xùn)練參數(shù)如表1所示,設(shè)置α=0.85,β=0.1,γ=0.15通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)本文對(duì)抗網(wǎng)絡(luò)部分的對(duì)抗損失在0.05左右,而單獨(dú)使用分類(lèi)器的分類(lèi)損失在0.3左右,比例為1∶6,為了平衡損失按比例設(shè)置超參數(shù).而本文網(wǎng)絡(luò)為了使網(wǎng)絡(luò)側(cè)重于分類(lèi),適當(dāng)?shù)恼{(diào)大分類(lèi)損失部分的權(quán)重.本文的超參數(shù)并不一定是最優(yōu)的.使用大于0小于1的數(shù)值是為了讓初始損失不至于很大,隨著梯度下降有一個(gè)平滑的損失曲線.
表1 訓(xùn)練參數(shù)
Fer2013數(shù)據(jù)集,F(xiàn)er2013人臉表情數(shù)據(jù)集由35886張人臉表情圖片組成,其中訓(xùn)練集28708張,驗(yàn)證集和測(cè)試集各3589張.每張圖片是由大小固定為48×48的灰度圖像組成,本文將所有圖像處理為64×64大小.共有7種表情,分別對(duì)應(yīng)于數(shù)字標(biāo)簽0-6,具體表情對(duì)應(yīng)的標(biāo)簽和中英文如下:0(anger)生氣;1(disgust)厭惡;2(fear)恐懼;3(happy)開(kāi)心;4(sad)傷心;5(surprised)驚訝;6(neutral)中性.
CK+數(shù)據(jù)集,CK+人臉表情數(shù)據(jù)集由920張人臉表情圖片組成,共有8種表情,具體表情對(duì)應(yīng)的標(biāo)簽和中英文如下:(anger)生氣;(contempt)輕視;(disgust)厭惡;(fear)恐懼;(happiness)開(kāi)心;(sadness)傷心;(surprise)驚訝;(neutral)中性.CK+數(shù)據(jù)集使用前本文先做了預(yù)處理,把圖像中的人臉裁剪出來(lái)固定圖像尺寸為64*64大小.
實(shí)際當(dāng)中,人臉圖像帶有遮擋或破損往往是眼睛和嘴巴部分,這是由于帽子和口罩造成的,直接導(dǎo)致了人臉眼部和嘴部信息缺失,而人臉這兩個(gè)部位對(duì)人的表情起決定性作用,目前帶有破損或遮擋的人臉表情公開(kāi)數(shù)據(jù)集相對(duì)較少,本文分別考慮了人臉眼部和嘴部區(qū)域由于遮擋或破損造成的信息缺失對(duì)人臉表情的影響,在現(xiàn)有的人臉表情數(shù)據(jù)集上人為添加破損或遮擋,分別統(tǒng)一去除圖像眼部或嘴部25%的區(qū)域.對(duì)Fer2013和CK+數(shù)據(jù)集樣本圖進(jìn)行處理,如圖2所示,圖(a)中第一行為去除眼部25%面積區(qū)域的人臉圖像,第二行為去除嘴部25%面積區(qū)域的人臉圖像.圖(b)和圖(a)做相同處理后的人臉圖像.將處理后的人臉表情圖像作為新的樣本集.
圖2 處理后的樣本集
如圖3(a)和(b)所示,分別是對(duì)Fer2013數(shù)據(jù)集和CK+數(shù)據(jù)集的低質(zhì)人臉表情圖像恢復(fù)效果.圖(a)中的第一行為Fer2013數(shù)據(jù)集每個(gè)表情類(lèi)下的原始圖像,第二行為人臉眼部區(qū)域的恢復(fù)效果,第三行為人臉嘴部區(qū)域的恢復(fù)效果.同樣圖(b)為在CK+數(shù)據(jù)集上的眼部和嘴部的恢復(fù)效果.由圖3恢復(fù)效果可以發(fā)現(xiàn),修補(bǔ)的效果已經(jīng)能夠接近原始圖像,在一些關(guān)鍵的區(qū)域眼睛和嘴巴都很真實(shí),只是相對(duì)原始圖像帶有一定的模糊但對(duì)表情的識(shí)別影響不大.
圖3 修復(fù)效果圖
如表2、表3所示,在Fer2013和CK+數(shù)據(jù)集上的精度,在原始無(wú)缺失七種表情數(shù)據(jù)集上使用生成式對(duì)抗網(wǎng)絡(luò)和不使用生成對(duì)抗網(wǎng)絡(luò)識(shí)別準(zhǔn)確率相同,表2展示了分別使用生成式對(duì)抗網(wǎng)絡(luò)(DCGAN+CNN)和不使用生成式對(duì)抗網(wǎng)絡(luò)(CNN)對(duì)Fer2013七種表情進(jìn)行實(shí)驗(yàn)對(duì)比,在原始訓(xùn)練集上的識(shí)別準(zhǔn)確率為80.48%,在測(cè)試集上識(shí)別準(zhǔn)確率為63.56%.對(duì)于有缺失的數(shù)據(jù)集DCGAN+CNN的識(shí)別準(zhǔn)確率略低于CNN方法.而本文方法相比兩種方法有一個(gè)更高的識(shí)別準(zhǔn)確率,從表中可以看出本文方法在低質(zhì)數(shù)據(jù)集上都得到了提升,通過(guò)使用生成式模型對(duì)圖像進(jìn)行復(fù)原和分類(lèi)約束判別損失有一個(gè)更高的精度.在丟失相同面積的眼部區(qū)域要比嘴部區(qū)域的精度要高,眼部缺失更接近原始圖像的精度,證明嘴部包含了大量能體現(xiàn)人臉表情的信息.在嘴部缺失25%的Fer2013測(cè)試集上精度為58.68%,比較于普通CNN分類(lèi)器高出2.99個(gè)百分點(diǎn).由于CK+數(shù)據(jù)集本身質(zhì)量要比Fer2013數(shù)據(jù)集高,所以在精度上要稍微高一點(diǎn),嘴部缺失25%的精度為90.57相較于CNN高出1.4個(gè)百分點(diǎn).
表2 在Fer2013數(shù)據(jù)集上的精度
表3 在CK+數(shù)據(jù)集上的精度
如圖4所示為在Fer2013測(cè)試集上的混淆矩陣,圖(a)是只使用CNN分類(lèi)器在低質(zhì)的Fer2013測(cè)試集上的混淆矩陣,圖(b)是使用本文模型在低質(zhì)Fer2013測(cè)試集上的混淆矩陣,圖(c)是使用CNN在原始Fer2013測(cè)試集上的混淆矩陣.通過(guò)對(duì)比可以發(fā)現(xiàn)在低質(zhì)Fer2013測(cè)試集上直接使用CNN進(jìn)行分類(lèi)導(dǎo)致在每個(gè)類(lèi)別下有較低的正確分類(lèi)概率,甚至可能會(huì)有錯(cuò)分類(lèi)的情況,如圖(a)中真實(shí)標(biāo)簽為disgust,預(yù)測(cè)標(biāo)簽為angry,產(chǎn)生了錯(cuò)誤的預(yù)測(cè);圖(b)為使用本文模型后在每個(gè)類(lèi)別下正確分類(lèi)的概率都得到了提升,而且消除了錯(cuò)分類(lèi)的情況.與圖3結(jié)果類(lèi)似,圖5是在CK+數(shù)據(jù)集上的混淆矩陣,從(a)中可以看出除了對(duì)neutral能夠正確分類(lèi)外其余都錯(cuò)分類(lèi),圖(b)通過(guò)本文方法使得分類(lèi)結(jié)果得到了改善,從矩陣中可以看出除了對(duì)neutral能夠正確分類(lèi)外還能夠?qū)ontempt正確分類(lèi).
圖4 在Fer2013測(cè)試集上混淆矩陣
圖5 在CK+測(cè)試集上混淆矩陣
本文通過(guò)在嘴部缺失25%的Fer2013測(cè)試集上的精度對(duì)損失函數(shù)進(jìn)行分析,從表4可以看出,使用約束判別損失相較于直接使用生成圖像的分類(lèi)損失有一個(gè)更高的精度為58.68%,在僅使用對(duì)抗損失和修復(fù)圖像的分類(lèi)損失的情況下精度為57.68%,而使用內(nèi)容損失后精度有所提升為57.92%,相比之下本文使用對(duì)抗損失和內(nèi)容損失以及分類(lèi)約束判別損失有一個(gè)更高的精度.
表4 Fer2013測(cè)試集(嘴部缺失25%)上不同損失函數(shù)的精度
本文針對(duì)低質(zhì)人臉圖像的表情識(shí)別,設(shè)計(jì)了一個(gè)端到端的網(wǎng)絡(luò)模型,使用生成對(duì)抗網(wǎng)絡(luò)對(duì)存在遮擋或破損的人臉區(qū)域進(jìn)行恢復(fù),將對(duì)抗模型的判別器進(jìn)行擴(kuò)展使其可以實(shí)現(xiàn)多分類(lèi),使得對(duì)抗模型具有多分類(lèi)能力,提高了低質(zhì)人臉表情識(shí)別的精度.通過(guò)在Fer2013和CK+數(shù)據(jù)集上的對(duì)比實(shí)驗(yàn)表明,本文方法具有較好的表情識(shí)別性能,但由于生成式模型本身訓(xùn)練就比較復(fù)雜.接下來(lái)我們會(huì)在本文的基礎(chǔ)上進(jìn)行模型優(yōu)化,壓縮模型降低訓(xùn)練參數(shù),并使用較好的分類(lèi)器;其次本文在處理低質(zhì)圖像時(shí)規(guī)則化了破損區(qū)域,實(shí)際生活中的破損區(qū)域是不規(guī)則且包含有用信息的區(qū)域,這些問(wèn)題將是下一步工作的重點(diǎn)內(nèi)容.