梁華剛,王亞茹,張志偉
長安大學(xué) 電子與控制工程學(xué)院,西安 710064
面部表情是最有力和自然的表達(dá)感情狀態(tài)的方式之一。由于表情識別在人機(jī)交互、臨床醫(yī)學(xué)、安全駕駛等方面有著廣泛的應(yīng)用,目前已有大量關(guān)于表情識別的研究。早在20 世紀(jì),文獻(xiàn)[1-2]定義了6 種基本表情類別:憤怒、厭惡、恐懼、快樂、悲傷和驚訝。
傳統(tǒng)的表情識別方法主要采用手工提取特征,如LBP、HoG、SIFT等,然而這些特征無法解決影響表情識別的多種因素。隨著深度學(xué)習(xí)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)被應(yīng)用到表情識別中,并取得了顯著的成果。Mayya 等人[3]提出了基于深度卷積神經(jīng)網(wǎng)絡(luò)的表情識別的方法并達(dá)到了較高的準(zhǔn)確率。Connie等人[4]采用混合CNN-SIFT網(wǎng)絡(luò)實(shí)現(xiàn)表情識別,并在FER-2013、CK+、SFEW2.0 三個公開數(shù)據(jù)集上實(shí)現(xiàn)了較高精度。Bargal 等人[5]采用VGG13、VGG16、Resnet 三個不同的網(wǎng)絡(luò)提取表情圖像的特征,并將特征融合使用支持向量機(jī)SVM 實(shí)現(xiàn)分類。梁華剛等人[6]提出自適應(yīng)Gabor卷積核編碼網(wǎng)絡(luò)的表情識別方法,對傳統(tǒng)的Gabor 核進(jìn)行改進(jìn),提高了識別率。
上述方法主要基于靜態(tài)表情進(jìn)行外貌特征提取,然而表情的表達(dá)是一個動態(tài)的過程,視頻序列間擁有豐富的信息,在人臉表情識別中起著重要的作用??紤]到視頻序列間的關(guān)系,也有一些學(xué)者在這方面做了一定的研究。Zhao 等人[7]提出了一種基于Peak-Piloted 的表情識別方法(PPDN),使用峰值表情樣本(簡易樣本)來監(jiān)督相同類型的非峰值表情(硬樣本)樣本的中間特征響應(yīng),實(shí)現(xiàn)表情強(qiáng)度不變性。Yu等人[8]提出了一種更深的級聯(lián)peak-piloted的弱表情識別方法(DCPN),增強(qiáng)了特征的辨別力,同時采用級聯(lián)微調(diào)的方法避免過擬合。Khorrami等人[9]使用CNN和RNN對視頻數(shù)據(jù)進(jìn)行維度情感識別,同時還分析了每個網(wǎng)絡(luò)在整體模型中的重要程度。Jung 等人[10]提出了基于兩種不同模型的聯(lián)合微調(diào)網(wǎng)絡(luò)(DTAGN),其中一個深度網(wǎng)絡(luò)從圖像序列中提取時間外觀特征,另一個網(wǎng)絡(luò)從時間面部關(guān)鍵點(diǎn)提取時間幾何特征,最終提高了表情識別的精度。Vielzeuf 等人[11]研究了多模態(tài)輸入下的表情識別,模型包括音頻、VGG-LSTM 和C3D-LSTM 三種模態(tài),然后將特征進(jìn)行融合分類,最終在野生數(shù)據(jù)庫上實(shí)現(xiàn)了高精度。雖然視頻表情識別已經(jīng)取得了一定的效果,然而傳統(tǒng)的RNN、LSTM 網(wǎng)絡(luò)不能有效地學(xué)習(xí)序列表情前后間的相關(guān)信息,導(dǎo)致最終識別率較低。
綜上所述,為了更好地學(xué)習(xí)表情的空間特征和時間特征,增強(qiáng)LSTM 的時序特征的學(xué)習(xí)能力,同時為了避免LSTM單元過多時存在梯度消失的問題,本文提出了一種基于Res-Bi-LSTM 的表情分類方法。該方法采用Inception-w卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉空間特征提取,該網(wǎng)絡(luò)在Inceptin-V3的基礎(chǔ)上進(jìn)行改進(jìn),可以充分提取表情的空間特征,同時為了防止過擬合,增加了兩個Reduction模塊;然后每一幀相應(yīng)的特征被送到殘差雙向長短期記憶網(wǎng)絡(luò)Res-Bi-LSTM 學(xué)習(xí)幀間的時序特征,該網(wǎng)絡(luò)不僅可以學(xué)習(xí)序列間的雙向相互關(guān)系,而且采用殘差塊可以避免LSTM梯度消失的問題,提高了識別的準(zhǔn)確率。最后,通過全連接層softmax 分類器實(shí)現(xiàn)視頻表情的分類。
本文設(shè)計(jì)的表情識別模型共包括兩個部分,分別為Inception-w 和Res-Bi-LSTM。其中,Inception-w 網(wǎng)絡(luò)學(xué)習(xí)表情視頻幀的空間特征,Res-Bi-LSTM學(xué)習(xí)視頻幀的時序特征并分類,網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
特征提取網(wǎng)絡(luò)把連續(xù)視頻幀作為輸入,然后通過卷積池化層學(xué)習(xí)人臉表情的空間外貌特征。本文在特征提取時采用Inception-w 網(wǎng)絡(luò),其中CONVS 由五個卷積層和兩個最大池化層組成,網(wǎng)絡(luò)最后用全卷積層(FC)代替全連接層,可以減少網(wǎng)絡(luò)模型的參數(shù)。該網(wǎng)絡(luò)包括三個不同的Inception 模塊,即Inception-A、Inception-B、Inception-C,這些模塊與Inception-V3[12]網(wǎng)絡(luò)中相同,采用并行的卷積核進(jìn)行特征提取,最后再把不同卷積核提取到的特征進(jìn)行融合。為了減少網(wǎng)絡(luò)的參數(shù),加快網(wǎng)絡(luò)的訓(xùn)練速度,本文在原來的Inception-V3 中分別添加Reduction-A和Reduction-B,該模塊最早在論文[13]中被使用,該網(wǎng)絡(luò)的整體結(jié)構(gòu)圖如圖2所示。除此之外,本文采取輔助神經(jīng)網(wǎng)絡(luò)可以防止梯度消失,加速網(wǎng)絡(luò)收斂。
其中輸入視頻幀的大小為229×229×3,經(jīng)過卷積層CONVS 進(jìn)行特征提取得到35×35×288 的特征圖,該模塊采用3×3 的卷積核和最大池化。然后將CONVS 得到的特征圖依次輸入到Inception-A、Inception-B 和Inception-C中進(jìn)行特征提取,最后通過兩個全卷積層生成N×256 維的深度特征矩陣用來傳輸?shù)絉es-Bi-LSTM中學(xué)習(xí)時序特征,N表示視頻幀的個數(shù),由于本文在不同的數(shù)據(jù)集下進(jìn)行實(shí)驗(yàn),所以N的取值不同,其中在CK+數(shù)據(jù)集下訓(xùn)練時N=18,對于Oulu-CASIA 數(shù)據(jù)集N=22。
深度殘差網(wǎng)絡(luò)在2015 年的ILSVRC 比賽上獲得了圖像分類、檢測和定位的三項(xiàng)冠軍,該網(wǎng)絡(luò)采用恒等映射的殘差塊,有效地解決了神經(jīng)網(wǎng)絡(luò)隨著深度的增加引發(fā)的退化問題,提高了準(zhǔn)確率的同時使網(wǎng)絡(luò)更容易訓(xùn)練[14]。由于深度殘差網(wǎng)絡(luò)在特征提取中得到了廣泛的應(yīng)用,Zhao等人[15]提出了深度殘差雙向長短期記憶網(wǎng)絡(luò)來處理序列問題,并在行為識別方面進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)表明該網(wǎng)絡(luò)可以解決深層網(wǎng)絡(luò)梯度消失的問題,提高了行為識別的準(zhǔn)確率,因此本文將該網(wǎng)絡(luò)應(yīng)用到表情識別中。
圖1 基于Res-Bi-LSTM模型的表情識別框架
圖2 Inception-w模型
傳統(tǒng)的LSTM 只能根據(jù)前面的信息推出后面的信息而不能使用未來信息預(yù)測,因此提出了Bi-LSTM。Bi-LSTM既可以使用某個輸入中的歷史數(shù)據(jù),同時也可以使用該輸入的未來數(shù)據(jù),其原理結(jié)構(gòu)圖如圖3所示。
圖3 Bi-LSTM的網(wǎng)絡(luò)模型
假設(shè)圖3中前向傳播的序列為f,反向傳播的序列為b,給定特征圖的輸入為(x1,x2,…,xn),則Bi-LSTM的計(jì)算公式如下式(1)~(3)所示:
Res-Bi-LSTM 的結(jié)構(gòu)圖如圖4 所示。由圖可知,信息在水平方向(時間維度)和垂直方向(空間維度)上流動。除了輸入和輸出層之外,有兩個殘差塊作為隱藏層。每個殘差塊包含2 個Bi-LSTM,所以共包含8 個LSTM單元,本文采用ReLU 激活函數(shù)。Res-Bi-LSTM 能夠融合累積相鄰幀間的特征,獲取整個表情幀上的疊加時間信息,最終通過softmax 分類層來判斷最終表情的類別。由于空間特征提取網(wǎng)絡(luò)最終得到256 維的特征向量,因此本文設(shè)置了256個Res-Bi-LSTM單元。
圖4 Res-Bi-LSTM的網(wǎng)絡(luò)模型
本文在CK+[16]和Oulu-CASIA[17]兩個公開的人臉表情數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。其中,每個數(shù)據(jù)集的介紹如下所示,如圖5展示了這兩個數(shù)據(jù)集下的不同表情的部分樣本,第一行來自CK+表情數(shù)據(jù)庫,第二行來自O(shè)ulu-CASIA數(shù)據(jù)庫。
圖5 部分CK+、Oulu-CASIA數(shù)據(jù)庫樣本
CK+:Extended CohnKanade(CK+)數(shù)據(jù)庫是表情識別中的最具代表性的數(shù)據(jù)庫。該數(shù)據(jù)庫包含來自123個受試者的593 個視頻序列,其中來自118 個受試者的327個序列被標(biāo)記為7個基本標(biāo)簽(憤怒、蔑視、厭惡、恐懼、快樂、悲傷和驚訝),本文實(shí)驗(yàn)中只對除輕蔑以外的6種基本表情進(jìn)行研究。在這個數(shù)據(jù)庫中每個視頻序列開始于中性表情,結(jié)束于峰值表情。
Oulu-CASIA:Oulu-CASIA 數(shù)據(jù)庫包含在 3 種不同的照明條件下(明亮、弱光、黑暗)和兩個成像系統(tǒng)(近紅外和可見光)的2 880 個圖像序列,其中可見光照下有480 個序列。這些序列被注釋為6 個基本情感標(biāo)簽:憤怒、厭惡、恐懼、快樂、悲傷和驚訝。與CK+相同,該數(shù)據(jù)庫第一幀是中性表情,最后一幀為峰值表情。本文選用可見光下的480個序列進(jìn)行人臉表情識別。
一般情況下表情識別的數(shù)據(jù)預(yù)處理部分包括人臉檢測、人臉對齊、數(shù)據(jù)增強(qiáng)這三步,然后將預(yù)處理后的圖片進(jìn)行網(wǎng)絡(luò)訓(xùn)練。由于圖像序列的長度是變化的,而深度學(xué)習(xí)網(wǎng)絡(luò)的輸入是固定的,因此先將圖像序列歸一化為固定長度。本文將CK+和Oulu-CASIA這兩個數(shù)據(jù)庫上的表情分別歸一化為18和22的序列長度。對于長度大于平均長度的,采用均勻采用的方式進(jìn)行歸一化,對于長度小于平均長度的,本文對最后一幀進(jìn)行復(fù)制,將其轉(zhuǎn)化為平均長度的大小。然后采用多任務(wù)級聯(lián)卷積網(wǎng)絡(luò)(MTCNN)[18]進(jìn)行人臉檢測和對齊,該操作可以避免臉上頭發(fā)、眼鏡以及頭部姿勢等因素的干擾,提高人臉表情識別的精度。首先提取出兩只眼睛的坐標(biāo)并保持兩眼間距離不變,裁剪出相應(yīng)的人臉,盡可能減少人臉周圍無關(guān)因素(如頭發(fā)、首飾、人臉輪廓)對表情識別的影響。本文裁剪出來的人臉呈現(xiàn)矩形,然后采用0填充將其填充成正方形,再將輸入視頻幀標(biāo)準(zhǔn)化為229×299 的大小。人臉檢測和對齊的結(jié)果如圖6 所示,其中第一行表示CK+數(shù)據(jù)集的六種表情下的數(shù)據(jù),第二行是Oulu-CSIA下的6種基本表情的樣本。
深度神經(jīng)網(wǎng)絡(luò)需要充足的訓(xùn)練樣本才能確保良好的泛化性,然而表情數(shù)據(jù)庫樣本較少,在訓(xùn)練時容易產(chǎn)生過擬合的問題,為了防止過擬合,數(shù)據(jù)增強(qiáng)在表情識別中是必要的。首先在?15°、?10°、?5°、5°、10°和15°這6種不同角度下旋轉(zhuǎn)圖像序列,然后對原圖和旋轉(zhuǎn)后的圖像進(jìn)行水平翻轉(zhuǎn),這樣可以增強(qiáng)模型在輸入圖像存在小幅度旋轉(zhuǎn)的情況下的魯棒性。 通過圖像增強(qiáng)后本文獲得了原來14 倍的數(shù)據(jù),即原始圖像序列(1),水平翻轉(zhuǎn)圖像序列(1),6個角度的旋轉(zhuǎn)圖像序列以及它們的翻轉(zhuǎn)圖像序列(12)。如圖7 為在CK+數(shù)據(jù)集上數(shù)據(jù)增強(qiáng)的結(jié)果。
圖7 圖像增強(qiáng)結(jié)果
本文特征提取網(wǎng)絡(luò)使用Inception-w網(wǎng)絡(luò),由于該網(wǎng)絡(luò)比較深,而人臉表情數(shù)據(jù)集的樣本較少,容易出現(xiàn)過擬合的現(xiàn)象,所以本文先在大規(guī)模人臉數(shù)據(jù)集CASIA Webface[19]上對Inception-w 網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,其中輔助分類器損失函數(shù)的權(quán)重設(shè)置為0.4。然后使用表情數(shù)據(jù)集對網(wǎng)絡(luò)進(jìn)行微調(diào)。CASIA Webface包含來自10 575個實(shí)驗(yàn)者的494 414張訓(xùn)練圖片,訓(xùn)練時初始化的學(xué)習(xí)率設(shè)置為0.01。微調(diào)時本文固定CASIA Webface 上得到的預(yù)訓(xùn)練模型卷積層的參數(shù)值,通過表情識別數(shù)據(jù)對網(wǎng)絡(luò)的最后兩層全連接層進(jìn)行微調(diào),全連接層的初始化參數(shù)使用“xaiver”[20]進(jìn)行隨機(jī)初始化,且學(xué)習(xí)率設(shè)置為0.000 1。
本文模型采用隨機(jī)梯度下降的方法來優(yōu)化網(wǎng)絡(luò)參數(shù)。其中訓(xùn)練時的權(quán)重衰減參數(shù)設(shè)置為0.000 04,動量設(shè)置為0.9,批次大小設(shè)置為32,dropout設(shè)置為0.5,最終在迭代20 000次后得到網(wǎng)絡(luò)模型。
為了理解Inception-w網(wǎng)絡(luò)學(xué)習(xí)到的特征,本文選取CK+數(shù)據(jù)集多幀圖片進(jìn)行特征可視化。如圖8 對應(yīng)的表情標(biāo)簽是驚訝,由左至右分別對應(yīng)一段表情視頻的第1、5、10、18幀,即表情由中性表情變化至峰值表情的過程。由上往下分別對應(yīng)卷積層3、卷積層5、Inception-A和Inception-B提取到的特征。由圖可以看出,位于較淺位置的神經(jīng)元從輸入中提取的是較為簡單的一些特征信息,而隨著層次的加深,神經(jīng)元將提取愈加復(fù)雜的特征信息,從而使得神經(jīng)網(wǎng)絡(luò)能夠做出更準(zhǔn)確的判斷。
圖8 特征圖
本文實(shí)驗(yàn)的硬件環(huán)境為64 位的Ubuntu16.04.1LTS操作系統(tǒng),CPU為Intel i7-6700k 4.00 GHz,顯卡型號為NVIDIA GeForce GTX1070,顯存為8 GB。 深度學(xué)習(xí)框架采用谷歌開發(fā)的Tensorflow框架。為了能得到準(zhǔn)確的實(shí)驗(yàn)結(jié)果,本次實(shí)驗(yàn)采用10倍交叉驗(yàn)證(10-fold crossvalidation)的方法。將CK+數(shù)據(jù)集平均分成10組,輪流選取其中九組數(shù)據(jù)作為訓(xùn)練集,另外的一組數(shù)據(jù)作為測試集,共進(jìn)行10次實(shí)驗(yàn),最后結(jié)果的準(zhǔn)確率是10次實(shí)驗(yàn)結(jié)果的平均值。Oulu-CASIA數(shù)據(jù)集采用與CK+相同的方法進(jìn)行訓(xùn)練。
人臉檢測對人臉表情識別精度的提高有一定的作用,因此本文對人臉檢測的影響進(jìn)行分析。本文使用MTCNN人臉檢測網(wǎng)絡(luò)在CK+和Oulu-CASIA兩個數(shù)據(jù)庫上進(jìn)行人臉檢測的實(shí)際檢測結(jié)果和理論檢測結(jié)果的對比如表1 所示,其中檢測精度是原論文中MTCNN 的準(zhǔn)確率。由表1 可知,在CK+和Oulu-CASIA 兩個數(shù)據(jù)集上,實(shí)際的檢測結(jié)果約為99.6%。因此,在實(shí)驗(yàn)環(huán)境下人臉檢測的準(zhǔn)確率接近于1,人臉檢測的漏檢率和誤檢率基本可以忽略掉。盡管對比實(shí)驗(yàn)中采用的人臉檢測方法略有不同,但是依然可以保證實(shí)驗(yàn)的公平公正性。
表1 人臉檢測對比結(jié)果
3.5.1 CK+實(shí)驗(yàn)結(jié)果
在CK+數(shù)據(jù)集上,通過對10%的樣本進(jìn)行測試,本文提出的網(wǎng)絡(luò)模型精度達(dá)到99.6%。明顯超過了其他方法,說明本文方法在對序列表情識別的有效性。不同方法的精度對比如表2所示。
表2 CK+數(shù)據(jù)庫分類準(zhǔn)確率對比
為了評價Res-Bi-LSTM 的有效性,本文進(jìn)行了兩組實(shí)驗(yàn)。由表2 可知在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上增加Bi-LSTM 可以明顯地提高表情識別的準(zhǔn)確率。此外本文也對Inception-w+Bi-LSTM和Inception-w+Res-Bi-LSTM進(jìn)行了對比實(shí)驗(yàn),最終實(shí)驗(yàn)表明本文方法比Inception-w+Bi-LSTM網(wǎng)絡(luò)識別提高了一個百分點(diǎn),因此本文方法可以提高動態(tài)表情識別的準(zhǔn)確率。
為了便于觀察各個表情之間的識別率,本文制作了CK+數(shù)據(jù)集測試結(jié)果的混淆矩陣,其中對角線表示不同表情識別的正確率,如表3所示。
表3 CK+數(shù)據(jù)庫混淆矩陣 %
表3中第一列表示表情的真實(shí)標(biāo)簽,第一行表示表情的實(shí)際預(yù)測結(jié)果。由混淆矩陣可知本文模型對生氣和驚訝的識別精度最高,其他的識別結(jié)果次之。其中生氣、悲傷、厭惡這3種表情的識別結(jié)果往往相互交叉,這主要是因?yàn)楝F(xiàn)實(shí)生活中這3種表情基本相似,都具有相同的眉毛、嘴角特征等。而恐懼易被錯誤的預(yù)測為高興或驚訝,這主要是因?yàn)榭謶?、高興和驚訝都是嘴巴微張。由此可見表情識別是一個復(fù)雜的研究。現(xiàn)實(shí)生活中人臉表情往往不是單一的,有時候是多種表情混合出現(xiàn)的,例如生氣的同時產(chǎn)生厭惡之情,高興的同時產(chǎn)生驚訝等,使得表情識別的難度大大增加。
3.5.2 Oulu-CASIA實(shí)驗(yàn)結(jié)果
本文模型除了在CK+數(shù)據(jù)庫上進(jìn)行實(shí)驗(yàn)外,還在Oulu-CASIA 數(shù)據(jù)庫上做了實(shí)驗(yàn),與CK+相同均采用十倍交叉驗(yàn)證進(jìn)行實(shí)驗(yàn),精確率達(dá)到89.39%。不同方法分類準(zhǔn)確率的比較如表4所示。由表4可知本文模型超過了現(xiàn)有模型的精度,說明了本文提出方法在表情識別上的有效性。
表4 Oulu-CASIA數(shù)據(jù)庫分類準(zhǔn)確率對比
同CK+一樣,為了驗(yàn)證Res-Bi-LSTM 的有效性,本文在Oulu-CASIA數(shù)據(jù)庫也進(jìn)行了兩組實(shí)驗(yàn)。對比表4中Inception-w和Inception-w+Bi-LSTM可以明顯的知道Bi-LSTM對時序特征提取的有效性。此外Inception-w+Res-Bi-LSTM在Oulu-CASIA數(shù)據(jù)庫上的識別準(zhǔn)確率為89.39%,相比Inception-w+Bi-LSTM 而言,提高了2%以上,因此本文方法可以提高動態(tài)表情識別的準(zhǔn)確率。Oulu-CASIA數(shù)據(jù)庫的混淆矩陣如表5所示。
表5 Oulu-CASIA數(shù)據(jù)庫的混淆矩陣%
表5為本文算法在Oulu-CASIA數(shù)據(jù)庫上的混淆矩陣,由于該數(shù)據(jù)集的干擾因素較多,所以整體的識別率較低。其中生氣的識別率最低,這主要是因?yàn)樯鷼夂蛥拹?、悲傷等表情間有很大的相似性。厭惡、恐懼、悲傷的識別率次之,分別為87.82%、89.06%和89.94%,驚訝的識別率最高。結(jié)合該混淆矩陣也充分說明了表情識別的復(fù)雜性和難度。
本文提出了一種基于Res-Bi-LSTM 模型的人臉表情識別算法。首先通過Inception-w 網(wǎng)絡(luò)來提取視頻幀的人臉外貌特征信息,然后采用Res-Bi-LSTM神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)幀間的時序特征信息,最后采用softmax 分類器對表情進(jìn)行分類。實(shí)驗(yàn)結(jié)果表明本文提出的模型可以在CK+和Oulu-CASIA兩個公開數(shù)據(jù)集上達(dá)到了較高的識別率,超過了現(xiàn)有方法。但是本文算法也存在一定的缺陷,例如本文模型只在理想的實(shí)驗(yàn)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),而現(xiàn)實(shí)生活中表情識別的干擾因素眾多,因此在AFEW等野外數(shù)據(jù)庫上的研究將是未來的研究重點(diǎn)。