李春虹,盧 宇
(四川師范大學 計算機科學學院,四川 成都 610101)
近年來,深度學習在圖像處理等領域的發展,豐富了人臉表情識別研究,使人臉表情識別成為計算機視覺、模式識別領域的研究熱點[1,2]。但現有主流的人臉表情識別模型往往存在泛化能力不足、識別率不高等問題,其主要原因是:當數據集處于復雜環境下時,容易受到人臉的姿勢、遮擋及光照背景等與表情識別無關的非重要因素影響。為此,Wen等[3]提出利用人臉表情相關區域引導網絡學習表情特征,從而減少與表情無關的非相關因素影響,但該模型只能達到基準精度。Jung等[4]提出利用兩個淺層的基分類器分別提取圖像的不同特征信息,但只適用于少樣本數據集。Kim等[5]通過融合多個深度CNN的基分類結果進行指數加權決策融合來判定人臉表情類型。但是該方法復雜的網絡結構和連接方式使得訓練過程相當繁瑣。
因此,本文研究一種即可以簡化網絡結構又能夠較好地提高復雜環境下表情識別精度的方法,即基于深度可分離卷積的人臉表情識別(depthwise separable convolution-based facial expression recognition,DSC-FER)。首先,該方法結合相關全卷積神經網絡理論,通過構建人臉分割網絡提取出人臉表情中感興趣區域。其次,利用深度可分離卷積構建VGG19和ResNet18基分類器,提取不同特征信息。最后,采用聯合微調方法融合基分類器進行人臉表情識別。實驗結果表明,與文獻[6-12]相比,該方法能有效地提高人臉表情識別算法的魯棒性和識別率。
至AletNet網絡提出以來,隨著十幾年的發展,卷積神經網絡已經成功應用于計算機視覺等相關任務中,它是有效提取深度圖像特征的深度學習模型,主要包含卷積層、池化層、激活函數、損失函數等[13]。卷積層是由若干卷積核組成,主要通過卷積操作實現局部特征響應,使用相同卷積核掃描整個圖像進行特征提取。卷積層進行卷積操作公式如下

(1)
式中:C(x,y)=Fk×l?Gu×n為卷積操作,Fk×l是大小為k×l的卷積核,Gu×n是u×n的輸入矩陣,C是卷積后的輸出矩陣,?x∈[0,u),?y∈[0,n)。
池化層是對特征進行聚合統計,目的是提高特征的表征能力、減少特征維度。一般常用池化層有:隨機池化、平均池化和最大池化。最大值池化取池化域中的最大特征值,最大池化公式如下

(2)
平均池化即取池化域中的特征均值,公式如下
(3)
式中:S(x,y)=Fs×tGu×n為最大池化操作,M(x,y)=Fs×tGu×n為平均池化操作,Fs×t是大小為s×t的池化核,Gu×n是大小為u×n的輸入矩陣。
激活函數定義請參見文獻[13]。其中,Softmax函數是將神經元映射到(0,1)區間。Relu函數收斂速度比sigmoid函數和tanh函數快,是最簡單的激活函數,解決了梯度消失問題,并使模型的收斂速度保持穩定狀態。Relu函數公式如下
F(x)=Max(0,x)
(4)
式中:F(x)為Relu激活函數,當x<0時,F(x)=0; 當x∈[0,x],F(x)=x。
損失函數定義請參見文獻[13],其中均方誤差損失函數公式如下
(5)
式中:y表示樣本真實標簽,y′表示樣本預測標簽,N表示樣本個數。
模型融合是將多個基分類網絡解決同一任務的結果進行整合,以提高模型的泛化能力,目前已經被廣泛地運用在機器學習的多個領域。模型融合關鍵的問題是考慮如何更好地融合基分類模型。常見的融合方式有投票法、加權求和、bagging、boosting、stacking等,其中最常用的是加權求和
Yi=αpi+(1-α)qi, 0≤α≤1
(6)
式中:pi,qi分別是不同的基學習網絡輸出值,Yi是最終預測值,i=1,…c,c是類別總個數,參數α是權值。加權求和的優點是合適的參數α能夠提升模型的識別率和泛化能力,缺點是無法最大限度地利用兩種模型性能。因此,本文采用聯合微調方式進行融合,取得了比加權平均更好的效果。
本文依托VGG19和ResNet18經典模型,構建了DSC-FER方法的流程如圖1所示,它主要分成預訓練、表情識別模型兩部分,其中預訓練包含RROI部分和基分類模型,表情識別模型中灰色框表示凍結訓練好的網絡權重值。

圖1 DSC-FER模型描述
算法描述如下
算法1: DSC-FER方法
輸入: 數據集D=(X,Y) 以及參數Time、θ; //X為輸入圖像集合、Y為類別標簽集合、Time代表最大訓練次數、θ表示損失函數收斂的一個閾值
輸出: 人臉表情識別模Ω;
步驟1 從已有數據集D1中劃分出訓練集Ts1, 測試集Te1;
步驟2 (1) Fori=1 To len(Ts1)
根據Dlib提取面部標識, 裁剪相應區域, 并生成mask實例;
添加mask到MS集合中;
End For
(2)以Ts1為源數據、MS為源標簽訓練RROI網絡;
步驟3 (1)利用訓練好的RROI, 對數據集D提取ROI, 再劃分出訓練集Ts, 測試集Te;
(2) 隨機初始化基分類模型Ω1和Ω2的所有參數; //VGG19為Ω1, ResNet18為Ω2
(3)取出訓練集Ts中所有實例Xa作為輸入, 分別輸入到Ω1和Ω2中, 計算的圖像特征;
(4)記所有的預測標簽為y′, 真實標簽為y;
(5)如式(11)所示, 采用交叉熵公式作為Ω1、 Ω2的損失函數Li;
(6)利用梯度下降法反向傳播Li值, 調整Ω1、 Ω2中的參數;
(7)if(Time>0||Li>θ)
Time=Time-1
轉至(3), 繼續訓練基分類網絡
End if
(8)輸出當前訓練好的基分類網絡模型Ω1、 Ω2;
步驟4 采用聯合微調方法, 如式(10)-式(12)所示, 融合基模型Ω1、 Ω2得到最終面部表情識別模型Ω;
步驟5 輸出人臉表情識別模型Ω, 算法停止。
上述DSC-FER算法的主要思想是:首先,利用實例生成mask分別做訓練數據和標簽訓練RROI網絡生成感興趣區域ROI(region of interest,ROI)數據集;其次,采用深度可分離卷積代替二維卷積分別訓練出基分類網絡模型;最后,利用聯合微調方法融合基分類模型。
在開始訓練表情識別模型之前,需要先對兩個基分類網絡模型進行預訓練。先利用RROI網絡提取人臉表情感興趣區域,再利用pytorch深度學習框架和VGG19與Resnet18基分類網絡結構(參照文獻[14]中圖3的結構)分別建立深度學習網絡,其中兩個基分類網絡中的每層卷積均由深度可分離卷積代替并在其后均添加BN層和Relu層,目的是加快網絡的訓練速度及避免梯度消失。最后,利用交叉熵損失函數分別計算出VGG19和Resnet18基分類網絡預測值與訓練集真實標簽之間的誤差值,并將該值作為模型損失值回傳給對應的基分類網絡,利用梯度下降法反向傳播,更新網絡參數。
2.2.1 RROI網絡
RROI(recognition region of interest)是一個基于u-net[15]語義分割算法的人臉分割網絡,其中u-net是個端到端的U型全卷積網絡結構,不同于傳統CNN,該網絡用卷積層代替全連接層,使結構分為編碼器、解碼器兩部分。其中編碼器由3次下卷積層組成,其中一個下卷積層包括2個卷積層和1個最大池化層,主要用于提取深層次特征;解碼器包含3次反卷積層,其中一個反卷積層包括1個反卷積、1個連接操作和2個卷積層,主要用于對特征映射進行上采樣,其網絡結構如圖2所示。

圖2 RROI網絡結構
RROI目的是提取出人臉圖像中與表情識別最相關的感興趣區域,使復雜環境因素對人臉表情分類影響降低、精簡網絡結構,提高識別精度。本文的做法是:首先,人臉檢測并提取現有的實例中的人臉特征點,根據68個特征點坐標構成的凸包裁剪出ROI區域,將ROI區域處理成Mask圖像作為網絡的訓練標簽,原始人臉圖像作為網絡的訓練數據;其次,利用編碼器提取出圖像的特征,再利用解碼器上采樣學習補充信息;最后,使用二維卷積將每個特征向量映射到所需數量的類。
2.2.2 深度可分離卷積
自2013年Sifre提出卷積層通道間相關性和空間相關性是可解耦合性的,深度可分離卷積已經是很多高效神經網絡框架實現模型輕量化的關鍵構建塊,主要由深度卷積和逐點卷積兩部分組成。其中,深度卷積是對輸入的每個通道上單獨執行通道卷積,將普通卷積在空間上分離;逐點卷積是應用1×1卷積將深度卷積的特征圖譜映射成新特征。公式表示如下
S(x,y)=P(Fp,D(Fd,G))
(7)

(8)
(9)
式中:D(x,y) 是深度卷積操作,P(x,y) 為逐點卷積操作,Fp是大小為1×1的卷積核,Fd是大小為k×l的卷積核,G是大小為u×n的輸入矩陣,m為通道數。
與普通卷積相比,當在H×W×N的特征圖上使用卷積核大小為k×k、深度為d的標準卷積操作時,計算參數量為:H×W×N×k×k×d,而深度可分離卷積的計算參數量為:H×W×N×(k×k+d)。 由此可見,標準卷積的參數量是深度可分離卷積的k×k×d/(k×k+d) 倍。
本文采用聯合微調的方式代替加權求和整合基分類模型,如圖1中所示。首先,VGG19和Resnet18兩個基分類網絡使用相同訓練數據集完成預訓練階段;其次,在表情識別模型中重用預訓練好的兩個基分類網絡,并將兩個基分類網絡提取的特征重新構建成特征ξ3;最后,特征ξ3輸入到both網絡進行再訓練分類,其中both是由一個全連接層和softmax函數組成的網絡,并使用dropout方法減少過擬合。
在訓練步驟中使用了3個損失函數,并定義DSC-FER的損失函數LDSC-FER為
LDSC-FER=λ1L1+λ2L2+λ3L3
(10)
式中:L1,L2,L3分別是VGG19,Resnet18,both的交叉熵損失函數值,λ1,λ2,λ3是平衡系數,其值的大小決定了聯合微調方法對模型的影響程度,通常λ1=λ2, 0<λ3<λ1,λ2<1。 本文實驗中設置λ1,λ2,λ3分別為1,1,0.1。其中,交叉熵損失函數如下
(11)
式中:yj表示第j類的真實標簽,pj表示樣本y屬于j類的概率,N表示總樣本個數,C表示樣本種類
y=σ(ξ1⊕ξ2)
(12)
式中:y是both模型的輸出值,ξ1,ξ2分別是基分類網絡的特征,⊕是代表ξ1,ξ2特征串行連接,σ(x)是softmax函數。
為了驗證本文表情識別方法的有效性,采用FER-2013、CK+和JAFFE這3種經典人臉表情識別數據集,三者均包含7個表情標簽(憤怒、厭惡、恐懼、快樂、悲傷、驚訝、中性)。其中,FER-2013數據集是由35 886張采集于不同復雜環境因素下的人臉表情圖像。CK+數據集包含123個用戶的327個連續表情幀,由于連續幀之間相關性較強、數據冗余,因此本文選取每個表情峰值最高的最后3幀圖片,共981張表情圖像。JAFFE數據集提供了10名日本女生的7種不同表情,共214張表情圖像。
在訓練表情識別網絡之前,為了防止網絡過快地過擬合進行數據增強:在訓練階段,將圖像隨機裁剪成44×44像素大小,并以0.5的概率隨機水平翻轉擴大數據集。
為了說明本文所提出算法的有效性,實驗結果采用的評價準則為識別率。一般來說,模型的識別率越高表示識別效果越好。識別率公式如下所示
(13)
式中:定義數據集(X,Y),X,Y分別表示數據集的實例和標簽,Y′表示利用模型訓練出來的預測標簽,|Y|為總標簽個數。當Yi=Y′i為真時,值為1,否則為0。
在RROI人臉ROI區域分割網絡實驗中,人臉圖像和Mask標簽均處理成48×48像素大小,再將mask像素值歸一化到[0,1]之間。在FER-2013數據集上達95.52%分割率,CK+數據集上達96.63%,并對比RROI網絡分割效果與人臉特征點裁剪人臉區域效果如圖3所示,其中圖3(a)為人臉原始圖像,圖3(b)為對應生成的mask標簽,圖3(c)為根據特征點裁剪的結果圖,圖3(d)為經過RROI網絡得到的結果圖,從圖得出RROI網絡具備與利用特征點裁剪人臉基本相同的分割效果。

圖3 RROI效果
在訓練基分類網絡時采用隨機化初始權重和偏值,批大小設置為128,初始化學習率為0.01。
FER-2013數據集利用訓練集來訓練模型權重參數,將公共測試集作為驗證集、將私有測試集作為最終測試集。然后,將DSC-FER方法在FER-2013數據集上的識別率與Liu、Guo、Yan和MSSD-KCF做實驗對比,實驗結果見表1。從表1中可知,DSC-FER方法的識別率達到了75.15%,比MSSD-KCF的識別率高出了2.15%,超過了其它網絡的識別率,并且比FER-2013數據集上的識別基準線(71.2%)高出了3.95%。將DSC-FER方法的識別率與本文預訓練的兩個基分類網絡,可得出經過聯合微調后該方法比基分類網絡平均高2.11%。實驗結果表明了DSC-FER方法在人臉表情識別的有效性。

表1 FER-2013數據集上不同識別方法準確率對比
DSC-FER方法在FER-2013數據集上的識別結果混淆矩陣見表2。從表2可以看出,高興和驚訝識別率較高分別達92%、84%,而憤怒、恐懼、悲傷3種表情識別率相對較低,憤怒中有13%識別成悲傷、恐懼中14%識別成悲傷、悲傷中11%識別成恐懼,如圖4所示,可知這3種表情確實容易相互混淆。

表2 FER-2013識別結果混淆矩陣

圖4 混淆表情實例
同樣,DSC-FER方法在CK+數據集上采用10折交叉驗證,并與DAGN、DTGN、MSCNN、WGAN和WMDNN不同模型的識別率做實驗對比,實驗結果見表3。從表3可以看出,DSC-FER方法的識別率達到了98.98%,比WMDNN的識別率高出了1.96%,且超過了其它網絡的識別率,將DSC-FER方法的識別率與本文預訓練的兩個基分類網絡,可得出經過聯合微調后該方法比基分類網絡平均高4.63%。實驗結果表明了聯合微調方法的有效性。

表3 CK+數據集上不同識別方法準確率對比
DSC-FER方法在CK+數據集上的識別結果混淆矩陣見表4。從表4可以看出,該方法將驚訝表情中的4%識別為恐懼,因其數據集量較小且表情圖像噪聲較少,所以除驚訝表情外其它表情均能正確分類。

表4 CK+識別結果混淆矩陣
同樣,DSC-FER方法在JAFFE數據集上采用5折交叉驗證,并與DCMA-CNNs、ROI-KNN和WGAN的識別率做實驗對比,實驗結果見表5。從表5可以看出,DSC-

表5 JAFFE數據集上不同識別方法準確率對比
FER方法的識別率達到了97.14%,比WGAN的識別率高出了1.14%,與ROI-KNN的識別率只相差0.05%,幾乎持平。然而,將DSC-FER方法的識別率與本文預訓練的兩個基分類網絡,可得出經過聯合微調后該方法比基分類網絡平均高6.49%,更能體現出聯合微調方法的有效性。
DSC-FER方法在JAFFE數據集上的識別結果混淆矩陣見表6。從表6可以看出,因其數據集是少樣本數據集且表情圖像噪聲較少,最終該方法將恐懼表情中的部分識別為悲傷,悲傷錯誤地識別成高興,所以除恐懼和悲傷表情以外其它表情均能正確分類。

表6 JAFFE識別結果混淆矩陣
該實驗目的是研究分析平衡系數λ對DSC-FER分類效果的影響,并對比聯合微調和加權求和這兩種不同的融合
方法的效果。對比表1和表3發現聯合微調方法在CK+數據集上提升效果更大,因此,實驗采用CK+數據集作為平衡系數影響實驗的研究對象,并將λ依次取值0.05、0.1、0.2、0.3、0.4、0.5、0.6。
實驗結果如圖5所示,從圖5中可以看出,在DSC-FER方法中聯合微調比加權求和能更好地融合基模型,從而提高表情識別精度。隨著平衡系數λ的增加,采用聯合微調的DSC-FER方法在λ值為0.1時,模型準確率達到最高,當其值取0.05時,模型融合不見成效使準確率低于基模型達到最低,當其值超過0.1時,準確率開始明顯下降;采用加權求和的DSC-FER方法在λ值為0.3時,模型準確率達到最高,當其值小于0.3時,模型準確率不足,當其值大于0.3時,模型準確率開始下降。實驗結果表明了平衡系數λ對DSC-FER分類效果有很大的影響,當λ值過小時,不能達到較好的提升效果,當λ值過大時,模型準確率下降,所以平衡系數λ的選擇對DSC-FER方法至關重要。

圖5 平衡系數λ對DSC-FER分類效果的影響
人臉表情識別已經被眾多領域廣泛關注,但在實際應用環境下人臉表情很多是處于復雜環境下,從而導致表情識別泛化能力不足和識別精度問題。因此,本文利用人臉分割網絡和模型融合方法來提高模型的識別率和泛化能力,進而提出一種基于深度可分離的人臉表情識別方法。通過構建一個基于U型全卷積網絡的RROI網絡,可以避免圖像處于較小像素和復雜環境下利用特征點不能分割的情況,分割出與表情識別最相關的面部區域;通過結合深度可分卷積優點構建兩個基分類網絡,提升網絡對表情識別率的同時保證模型的計算量與內存占用均為少量水平;其次通過聯合微調方法融合后,最終在CK+、FER-2013和JAFFE數據集上識別率分別達98.98%、75.15%、97.14%,將這3個經典數據集與現有表情識別方法做實驗對比,驗證了DSC-FER方法的有效性;最后,本文對DSC-FER方法和加權求和方法中平衡系數λ進行研究分析,驗證了選擇適當的λ值對DSC-FER方法至關重要,聯合微調方法比加權求和方法在DSC-FER方法中更有效。在接下來的研究中,考慮采集人臉數據的成本問題,將進行基于半監督學習或無監督學習的人臉表情識別。