李春虹,盧 宇
(四川師范大學(xué) 計算機科學(xué)學(xué)院,四川 成都 610101)
近年來,深度學(xué)習在圖像處理等領(lǐng)域的發(fā)展,豐富了人臉表情識別研究,使人臉表情識別成為計算機視覺、模式識別領(lǐng)域的研究熱點[1,2]。但現(xiàn)有主流的人臉表情識別模型往往存在泛化能力不足、識別率不高等問題,其主要原因是:當數(shù)據(jù)集處于復(fù)雜環(huán)境下時,容易受到人臉的姿勢、遮擋及光照背景等與表情識別無關(guān)的非重要因素影響。為此,Wen等[3]提出利用人臉表情相關(guān)區(qū)域引導(dǎo)網(wǎng)絡(luò)學(xué)習表情特征,從而減少與表情無關(guān)的非相關(guān)因素影響,但該模型只能達到基準精度。Jung等[4]提出利用兩個淺層的基分類器分別提取圖像的不同特征信息,但只適用于少樣本數(shù)據(jù)集。Kim等[5]通過融合多個深度CNN的基分類結(jié)果進行指數(shù)加權(quán)決策融合來判定人臉表情類型。但是該方法復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)和連接方式使得訓(xùn)練過程相當繁瑣。
因此,本文研究一種即可以簡化網(wǎng)絡(luò)結(jié)構(gòu)又能夠較好地提高復(fù)雜環(huán)境下表情識別精度的方法,即基于深度可分離卷積的人臉表情識別(depthwise separable convolution-based facial expression recognition,DSC-FER)。首先,該方法結(jié)合相關(guān)全卷積神經(jīng)網(wǎng)絡(luò)理論,通過構(gòu)建人臉分割網(wǎng)絡(luò)提取出人臉表情中感興趣區(qū)域。其次,利用深度可分離卷積構(gòu)建VGG19和ResNet18基分類器,提取不同特征信息。最后,采用聯(lián)合微調(diào)方法融合基分類器進行人臉表情識別。實驗結(jié)果表明,與文獻[6-12]相比,該方法能有效地提高人臉表情識別算法的魯棒性和識別率。
至AletNet網(wǎng)絡(luò)提出以來,隨著十幾年的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于計算機視覺等相關(guān)任務(wù)中,它是有效提取深度圖像特征的深度學(xué)習模型,主要包含卷積層、池化層、激活函數(shù)、損失函數(shù)等[13]。卷積層是由若干卷積核組成,主要通過卷積操作實現(xiàn)局部特征響應(yīng),使用相同卷積核掃描整個圖像進行特征提取。卷積層進行卷積操作公式如下
(1)
式中:C(x,y)=Fk×l?Gu×n為卷積操作,F(xiàn)k×l是大小為k×l的卷積核,Gu×n是u×n的輸入矩陣,C是卷積后的輸出矩陣,?x∈[0,u),?y∈[0,n)。
池化層是對特征進行聚合統(tǒng)計,目的是提高特征的表征能力、減少特征維度。一般常用池化層有:隨機池化、平均池化和最大池化。最大值池化取池化域中的最大特征值,最大池化公式如下
(2)
平均池化即取池化域中的特征均值,公式如下
(3)
式中:S(x,y)=Fs×tGu×n為最大池化操作,M(x,y)=Fs×tGu×n為平均池化操作,F(xiàn)s×t是大小為s×t的池化核,Gu×n是大小為u×n的輸入矩陣。
激活函數(shù)定義請參見文獻[13]。其中,Softmax函數(shù)是將神經(jīng)元映射到(0,1)區(qū)間。Relu函數(shù)收斂速度比sigmoid函數(shù)和tanh函數(shù)快,是最簡單的激活函數(shù),解決了梯度消失問題,并使模型的收斂速度保持穩(wěn)定狀態(tài)。Relu函數(shù)公式如下
F(x)=Max(0,x)
(4)
式中:F(x)為Relu激活函數(shù),當x<0時,F(xiàn)(x)=0; 當x∈[0,x],F(xiàn)(x)=x。
損失函數(shù)定義請參見文獻[13],其中均方誤差損失函數(shù)公式如下
(5)
式中:y表示樣本真實標簽,y′表示樣本預(yù)測標簽,N表示樣本個數(shù)。
模型融合是將多個基分類網(wǎng)絡(luò)解決同一任務(wù)的結(jié)果進行整合,以提高模型的泛化能力,目前已經(jīng)被廣泛地運用在機器學(xué)習的多個領(lǐng)域。模型融合關(guān)鍵的問題是考慮如何更好地融合基分類模型。常見的融合方式有投票法、加權(quán)求和、bagging、boosting、stacking等,其中最常用的是加權(quán)求和
Yi=αpi+(1-α)qi, 0≤α≤1
(6)
式中:pi,qi分別是不同的基學(xué)習網(wǎng)絡(luò)輸出值,Yi是最終預(yù)測值,i=1,…c,c是類別總個數(shù),參數(shù)α是權(quán)值。加權(quán)求和的優(yōu)點是合適的參數(shù)α能夠提升模型的識別率和泛化能力,缺點是無法最大限度地利用兩種模型性能。因此,本文采用聯(lián)合微調(diào)方式進行融合,取得了比加權(quán)平均更好的效果。
本文依托VGG19和ResNet18經(jīng)典模型,構(gòu)建了DSC-FER方法的流程如圖1所示,它主要分成預(yù)訓(xùn)練、表情識別模型兩部分,其中預(yù)訓(xùn)練包含RROI部分和基分類模型,表情識別模型中灰色框表示凍結(jié)訓(xùn)練好的網(wǎng)絡(luò)權(quán)重值。
圖1 DSC-FER模型描述
算法描述如下
算法1: DSC-FER方法
輸入: 數(shù)據(jù)集D=(X,Y) 以及參數(shù)Time、θ; //X為輸入圖像集合、Y為類別標簽集合、Time代表最大訓(xùn)練次數(shù)、θ表示損失函數(shù)收斂的一個閾值
輸出: 人臉表情識別模Ω;
步驟1 從已有數(shù)據(jù)集D1中劃分出訓(xùn)練集Ts1, 測試集Te1;
步驟2 (1) Fori=1 To len(Ts1)
根據(jù)Dlib提取面部標識, 裁剪相應(yīng)區(qū)域, 并生成mask實例;
添加mask到MS集合中;
End For
(2)以Ts1為源數(shù)據(jù)、MS為源標簽訓(xùn)練RROI網(wǎng)絡(luò);
步驟3 (1)利用訓(xùn)練好的RROI, 對數(shù)據(jù)集D提取ROI, 再劃分出訓(xùn)練集Ts, 測試集Te;
(2) 隨機初始化基分類模型Ω1和Ω2的所有參數(shù); //VGG19為Ω1, ResNet18為Ω2
(3)取出訓(xùn)練集Ts中所有實例Xa作為輸入, 分別輸入到Ω1和Ω2中, 計算的圖像特征;
(4)記所有的預(yù)測標簽為y′, 真實標簽為y;
(5)如式(11)所示, 采用交叉熵公式作為Ω1、 Ω2的損失函數(shù)Li;
(6)利用梯度下降法反向傳播Li值, 調(diào)整Ω1、 Ω2中的參數(shù);
(7)if(Time>0||Li>θ)
Time=Time-1
轉(zhuǎn)至(3), 繼續(xù)訓(xùn)練基分類網(wǎng)絡(luò)
End if
(8)輸出當前訓(xùn)練好的基分類網(wǎng)絡(luò)模型Ω1、 Ω2;
步驟4 采用聯(lián)合微調(diào)方法, 如式(10)-式(12)所示, 融合基模型Ω1、 Ω2得到最終面部表情識別模型Ω;
步驟5 輸出人臉表情識別模型Ω, 算法停止。
上述DSC-FER算法的主要思想是:首先,利用實例生成mask分別做訓(xùn)練數(shù)據(jù)和標簽訓(xùn)練RROI網(wǎng)絡(luò)生成感興趣區(qū)域ROI(region of interest,ROI)數(shù)據(jù)集;其次,采用深度可分離卷積代替二維卷積分別訓(xùn)練出基分類網(wǎng)絡(luò)模型;最后,利用聯(lián)合微調(diào)方法融合基分類模型。
在開始訓(xùn)練表情識別模型之前,需要先對兩個基分類網(wǎng)絡(luò)模型進行預(yù)訓(xùn)練。先利用RROI網(wǎng)絡(luò)提取人臉表情感興趣區(qū)域,再利用pytorch深度學(xué)習框架和VGG19與Resnet18基分類網(wǎng)絡(luò)結(jié)構(gòu)(參照文獻[14]中圖3的結(jié)構(gòu))分別建立深度學(xué)習網(wǎng)絡(luò),其中兩個基分類網(wǎng)絡(luò)中的每層卷積均由深度可分離卷積代替并在其后均添加BN層和Relu層,目的是加快網(wǎng)絡(luò)的訓(xùn)練速度及避免梯度消失。最后,利用交叉熵損失函數(shù)分別計算出VGG19和Resnet18基分類網(wǎng)絡(luò)預(yù)測值與訓(xùn)練集真實標簽之間的誤差值,并將該值作為模型損失值回傳給對應(yīng)的基分類網(wǎng)絡(luò),利用梯度下降法反向傳播,更新網(wǎng)絡(luò)參數(shù)。
2.2.1 RROI網(wǎng)絡(luò)
RROI(recognition region of interest)是一個基于u-net[15]語義分割算法的人臉分割網(wǎng)絡(luò),其中u-net是個端到端的U型全卷積網(wǎng)絡(luò)結(jié)構(gòu),不同于傳統(tǒng)CNN,該網(wǎng)絡(luò)用卷積層代替全連接層,使結(jié)構(gòu)分為編碼器、解碼器兩部分。其中編碼器由3次下卷積層組成,其中一個下卷積層包括2個卷積層和1個最大池化層,主要用于提取深層次特征;解碼器包含3次反卷積層,其中一個反卷積層包括1個反卷積、1個連接操作和2個卷積層,主要用于對特征映射進行上采樣,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 RROI網(wǎng)絡(luò)結(jié)構(gòu)
RROI目的是提取出人臉圖像中與表情識別最相關(guān)的感興趣區(qū)域,使復(fù)雜環(huán)境因素對人臉表情分類影響降低、精簡網(wǎng)絡(luò)結(jié)構(gòu),提高識別精度。本文的做法是:首先,人臉檢測并提取現(xiàn)有的實例中的人臉特征點,根據(jù)68個特征點坐標構(gòu)成的凸包裁剪出ROI區(qū)域,將ROI區(qū)域處理成Mask圖像作為網(wǎng)絡(luò)的訓(xùn)練標簽,原始人臉圖像作為網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù);其次,利用編碼器提取出圖像的特征,再利用解碼器上采樣學(xué)習補充信息;最后,使用二維卷積將每個特征向量映射到所需數(shù)量的類。
2.2.2 深度可分離卷積
自2013年Sifre提出卷積層通道間相關(guān)性和空間相關(guān)性是可解耦合性的,深度可分離卷積已經(jīng)是很多高效神經(jīng)網(wǎng)絡(luò)框架實現(xiàn)模型輕量化的關(guān)鍵構(gòu)建塊,主要由深度卷積和逐點卷積兩部分組成。其中,深度卷積是對輸入的每個通道上單獨執(zhí)行通道卷積,將普通卷積在空間上分離;逐點卷積是應(yīng)用1×1卷積將深度卷積的特征圖譜映射成新特征。公式表示如下
S(x,y)=P(Fp,D(Fd,G))
(7)
(8)
(9)
式中:D(x,y) 是深度卷積操作,P(x,y) 為逐點卷積操作,F(xiàn)p是大小為1×1的卷積核,F(xiàn)d是大小為k×l的卷積核,G是大小為u×n的輸入矩陣,m為通道數(shù)。
與普通卷積相比,當在H×W×N的特征圖上使用卷積核大小為k×k、深度為d的標準卷積操作時,計算參數(shù)量為:H×W×N×k×k×d,而深度可分離卷積的計算參數(shù)量為:H×W×N×(k×k+d)。 由此可見,標準卷積的參數(shù)量是深度可分離卷積的k×k×d/(k×k+d) 倍。
本文采用聯(lián)合微調(diào)的方式代替加權(quán)求和整合基分類模型,如圖1中所示。首先,VGG19和Resnet18兩個基分類網(wǎng)絡(luò)使用相同訓(xùn)練數(shù)據(jù)集完成預(yù)訓(xùn)練階段;其次,在表情識別模型中重用預(yù)訓(xùn)練好的兩個基分類網(wǎng)絡(luò),并將兩個基分類網(wǎng)絡(luò)提取的特征重新構(gòu)建成特征ξ3;最后,特征ξ3輸入到both網(wǎng)絡(luò)進行再訓(xùn)練分類,其中both是由一個全連接層和softmax函數(shù)組成的網(wǎng)絡(luò),并使用dropout方法減少過擬合。
在訓(xùn)練步驟中使用了3個損失函數(shù),并定義DSC-FER的損失函數(shù)LDSC-FER為
LDSC-FER=λ1L1+λ2L2+λ3L3
(10)
式中:L1,L2,L3分別是VGG19,Resnet18,both的交叉熵損失函數(shù)值,λ1,λ2,λ3是平衡系數(shù),其值的大小決定了聯(lián)合微調(diào)方法對模型的影響程度,通常λ1=λ2, 0<λ3<λ1,λ2<1。 本文實驗中設(shè)置λ1,λ2,λ3分別為1,1,0.1。其中,交叉熵損失函數(shù)如下
(11)
式中:yj表示第j類的真實標簽,pj表示樣本y屬于j類的概率,N表示總樣本個數(shù),C表示樣本種類
y=σ(ξ1⊕ξ2)
(12)
式中:y是both模型的輸出值,ξ1,ξ2分別是基分類網(wǎng)絡(luò)的特征,⊕是代表ξ1,ξ2特征串行連接,σ(x)是softmax函數(shù)。
為了驗證本文表情識別方法的有效性,采用FER-2013、CK+和JAFFE這3種經(jīng)典人臉表情識別數(shù)據(jù)集,三者均包含7個表情標簽(憤怒、厭惡、恐懼、快樂、悲傷、驚訝、中性)。其中,F(xiàn)ER-2013數(shù)據(jù)集是由35 886張采集于不同復(fù)雜環(huán)境因素下的人臉表情圖像。CK+數(shù)據(jù)集包含123個用戶的327個連續(xù)表情幀,由于連續(xù)幀之間相關(guān)性較強、數(shù)據(jù)冗余,因此本文選取每個表情峰值最高的最后3幀圖片,共981張表情圖像。JAFFE數(shù)據(jù)集提供了10名日本女生的7種不同表情,共214張表情圖像。
在訓(xùn)練表情識別網(wǎng)絡(luò)之前,為了防止網(wǎng)絡(luò)過快地過擬合進行數(shù)據(jù)增強:在訓(xùn)練階段,將圖像隨機裁剪成44×44像素大小,并以0.5的概率隨機水平翻轉(zhuǎn)擴大數(shù)據(jù)集。
為了說明本文所提出算法的有效性,實驗結(jié)果采用的評價準則為識別率。一般來說,模型的識別率越高表示識別效果越好。識別率公式如下所示
(13)
式中:定義數(shù)據(jù)集(X,Y),X,Y分別表示數(shù)據(jù)集的實例和標簽,Y′表示利用模型訓(xùn)練出來的預(yù)測標簽,|Y|為總標簽個數(shù)。當Yi=Y′i為真時,值為1,否則為0。
在RROI人臉ROI區(qū)域分割網(wǎng)絡(luò)實驗中,人臉圖像和Mask標簽均處理成48×48像素大小,再將mask像素值歸一化到[0,1]之間。在FER-2013數(shù)據(jù)集上達95.52%分割率,CK+數(shù)據(jù)集上達96.63%,并對比RROI網(wǎng)絡(luò)分割效果與人臉特征點裁剪人臉區(qū)域效果如圖3所示,其中圖3(a)為人臉原始圖像,圖3(b)為對應(yīng)生成的mask標簽,圖3(c)為根據(jù)特征點裁剪的結(jié)果圖,圖3(d)為經(jīng)過RROI網(wǎng)絡(luò)得到的結(jié)果圖,從圖得出RROI網(wǎng)絡(luò)具備與利用特征點裁剪人臉基本相同的分割效果。
圖3 RROI效果
在訓(xùn)練基分類網(wǎng)絡(luò)時采用隨機化初始權(quán)重和偏值,批大小設(shè)置為128,初始化學(xué)習率為0.01。
FER-2013數(shù)據(jù)集利用訓(xùn)練集來訓(xùn)練模型權(quán)重參數(shù),將公共測試集作為驗證集、將私有測試集作為最終測試集。然后,將DSC-FER方法在FER-2013數(shù)據(jù)集上的識別率與Liu、Guo、Yan和MSSD-KCF做實驗對比,實驗結(jié)果見表1。從表1中可知,DSC-FER方法的識別率達到了75.15%,比MSSD-KCF的識別率高出了2.15%,超過了其它網(wǎng)絡(luò)的識別率,并且比FER-2013數(shù)據(jù)集上的識別基準線(71.2%)高出了3.95%。將DSC-FER方法的識別率與本文預(yù)訓(xùn)練的兩個基分類網(wǎng)絡(luò),可得出經(jīng)過聯(lián)合微調(diào)后該方法比基分類網(wǎng)絡(luò)平均高2.11%。實驗結(jié)果表明了DSC-FER方法在人臉表情識別的有效性。
表1 FER-2013數(shù)據(jù)集上不同識別方法準確率對比
DSC-FER方法在FER-2013數(shù)據(jù)集上的識別結(jié)果混淆矩陣見表2。從表2可以看出,高興和驚訝識別率較高分別達92%、84%,而憤怒、恐懼、悲傷3種表情識別率相對較低,憤怒中有13%識別成悲傷、恐懼中14%識別成悲傷、悲傷中11%識別成恐懼,如圖4所示,可知這3種表情確實容易相互混淆。
表2 FER-2013識別結(jié)果混淆矩陣
圖4 混淆表情實例
同樣,DSC-FER方法在CK+數(shù)據(jù)集上采用10折交叉驗證,并與DAGN、DTGN、MSCNN、WGAN和WMDNN不同模型的識別率做實驗對比,實驗結(jié)果見表3。從表3可以看出,DSC-FER方法的識別率達到了98.98%,比WMDNN的識別率高出了1.96%,且超過了其它網(wǎng)絡(luò)的識別率,將DSC-FER方法的識別率與本文預(yù)訓(xùn)練的兩個基分類網(wǎng)絡(luò),可得出經(jīng)過聯(lián)合微調(diào)后該方法比基分類網(wǎng)絡(luò)平均高4.63%。實驗結(jié)果表明了聯(lián)合微調(diào)方法的有效性。
表3 CK+數(shù)據(jù)集上不同識別方法準確率對比
DSC-FER方法在CK+數(shù)據(jù)集上的識別結(jié)果混淆矩陣見表4。從表4可以看出,該方法將驚訝表情中的4%識別為恐懼,因其數(shù)據(jù)集量較小且表情圖像噪聲較少,所以除驚訝表情外其它表情均能正確分類。
表4 CK+識別結(jié)果混淆矩陣
同樣,DSC-FER方法在JAFFE數(shù)據(jù)集上采用5折交叉驗證,并與DCMA-CNNs、ROI-KNN和WGAN的識別率做實驗對比,實驗結(jié)果見表5。從表5可以看出,DSC-
表5 JAFFE數(shù)據(jù)集上不同識別方法準確率對比
FER方法的識別率達到了97.14%,比WGAN的識別率高出了1.14%,與ROI-KNN的識別率只相差0.05%,幾乎持平。然而,將DSC-FER方法的識別率與本文預(yù)訓(xùn)練的兩個基分類網(wǎng)絡(luò),可得出經(jīng)過聯(lián)合微調(diào)后該方法比基分類網(wǎng)絡(luò)平均高6.49%,更能體現(xiàn)出聯(lián)合微調(diào)方法的有效性。
DSC-FER方法在JAFFE數(shù)據(jù)集上的識別結(jié)果混淆矩陣見表6。從表6可以看出,因其數(shù)據(jù)集是少樣本數(shù)據(jù)集且表情圖像噪聲較少,最終該方法將恐懼表情中的部分識別為悲傷,悲傷錯誤地識別成高興,所以除恐懼和悲傷表情以外其它表情均能正確分類。
表6 JAFFE識別結(jié)果混淆矩陣
該實驗?zāi)康氖茄芯糠治銎胶庀禂?shù)λ對DSC-FER分類效果的影響,并對比聯(lián)合微調(diào)和加權(quán)求和這兩種不同的融合
方法的效果。對比表1和表3發(fā)現(xiàn)聯(lián)合微調(diào)方法在CK+數(shù)據(jù)集上提升效果更大,因此,實驗采用CK+數(shù)據(jù)集作為平衡系數(shù)影響實驗的研究對象,并將λ依次取值0.05、0.1、0.2、0.3、0.4、0.5、0.6。
實驗結(jié)果如圖5所示,從圖5中可以看出,在DSC-FER方法中聯(lián)合微調(diào)比加權(quán)求和能更好地融合基模型,從而提高表情識別精度。隨著平衡系數(shù)λ的增加,采用聯(lián)合微調(diào)的DSC-FER方法在λ值為0.1時,模型準確率達到最高,當其值取0.05時,模型融合不見成效使準確率低于基模型達到最低,當其值超過0.1時,準確率開始明顯下降;采用加權(quán)求和的DSC-FER方法在λ值為0.3時,模型準確率達到最高,當其值小于0.3時,模型準確率不足,當其值大于0.3時,模型準確率開始下降。實驗結(jié)果表明了平衡系數(shù)λ對DSC-FER分類效果有很大的影響,當λ值過小時,不能達到較好的提升效果,當λ值過大時,模型準確率下降,所以平衡系數(shù)λ的選擇對DSC-FER方法至關(guān)重要。
圖5 平衡系數(shù)λ對DSC-FER分類效果的影響
人臉表情識別已經(jīng)被眾多領(lǐng)域廣泛關(guān)注,但在實際應(yīng)用環(huán)境下人臉表情很多是處于復(fù)雜環(huán)境下,從而導(dǎo)致表情識別泛化能力不足和識別精度問題。因此,本文利用人臉分割網(wǎng)絡(luò)和模型融合方法來提高模型的識別率和泛化能力,進而提出一種基于深度可分離的人臉表情識別方法。通過構(gòu)建一個基于U型全卷積網(wǎng)絡(luò)的RROI網(wǎng)絡(luò),可以避免圖像處于較小像素和復(fù)雜環(huán)境下利用特征點不能分割的情況,分割出與表情識別最相關(guān)的面部區(qū)域;通過結(jié)合深度可分卷積優(yōu)點構(gòu)建兩個基分類網(wǎng)絡(luò),提升網(wǎng)絡(luò)對表情識別率的同時保證模型的計算量與內(nèi)存占用均為少量水平;其次通過聯(lián)合微調(diào)方法融合后,最終在CK+、FER-2013和JAFFE數(shù)據(jù)集上識別率分別達98.98%、75.15%、97.14%,將這3個經(jīng)典數(shù)據(jù)集與現(xiàn)有表情識別方法做實驗對比,驗證了DSC-FER方法的有效性;最后,本文對DSC-FER方法和加權(quán)求和方法中平衡系數(shù)λ進行研究分析,驗證了選擇適當?shù)摩酥祵SC-FER方法至關(guān)重要,聯(lián)合微調(diào)方法比加權(quán)求和方法在DSC-FER方法中更有效。在接下來的研究中,考慮采集人臉數(shù)據(jù)的成本問題,將進行基于半監(jiān)督學(xué)習或無監(jiān)督學(xué)習的人臉表情識別。