何景琳,梁正友,孫宇
(廣西大學(xué)計算機(jī)與電子信息學(xué)院,南寧530004)
人臉表情在我們?nèi)粘I钪邪缪葜匾慕巧?。與人臉表情相比,自發(fā)式的微表情更能夠反映人的真實情緒。自發(fā)性微表情是指人們盡最大努力抑制真實表情的視頻片段,它的持續(xù)時間短,僅為1/25~1/3 s[1],并且動作幅度小。盡管能夠通過人力進(jìn)行識別,但識別的準(zhǔn)確率并不高,經(jīng)過培訓(xùn)的人員識別準(zhǔn)確率不超過50%[2]。因此,有必要使用先進(jìn)的計算機(jī)視覺技術(shù)來提高識別率。
最先用于微表情識別的是手工描述特征識別方法。LBP-TOP[3]作為手工描述特征識別的一種基準(zhǔn)方法,在微表情識別史上首次被采用,該方法是在平面圖像特征LBP 的基礎(chǔ)上,結(jié)合微表情視頻在時域和空域方面提出的,通過在三個正交平面上對像素及其鄰居之間的信息進(jìn)行編碼,從而提取微表情的特征。另外,Huang 等人[4]提出了時空全局部量化模式(STCLQP),包括信號、大小和方向因素。Liu 等人[5]提出了一種基于時空空間局部紋理描述符(SLTD)的主方向平均光流(MDMO)法,更為簡單有效。
近年來,深度學(xué)習(xí)技術(shù)在識別方面獲得巨大成功,已經(jīng)廣泛應(yīng)用于多個領(lǐng)域,如行為識別[6]、自然語言處理[7]、語音識別[8]等方面,也逐步被應(yīng)用到微表情自動識別當(dāng)中。Kim 等人[9]提出結(jié)合時域和空域不同維度特征的提取方法,時域維度特征通過搭建CNN 提取幀序列的五個不同狀態(tài)信息獲得,時間維度特征通過LSTM網(wǎng)絡(luò)獲得,提高了微表情識別準(zhǔn)確率。Peng 等[10]采用兩種時域維度差異的卷積神經(jīng)網(wǎng)絡(luò)(DTCNN)對不同數(shù)據(jù)集的微表情進(jìn)行識別,通過一種數(shù)據(jù)增強(qiáng)的算法提高數(shù)據(jù)樣本量,也提高了識別的準(zhǔn)確率。
本文提出了一種三維卷積神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)(3D Convolutional Neural Network and Support Vector Machine,C3DSVM)的方法,通過C3D 提取微表情在時域和空域上的中間層特征,并采用SVM 分類器進(jìn)行分類,實現(xiàn)微表情的自動識別。所提出的方法在CASME2[11]微表情數(shù)據(jù)集上做了實驗,實驗表明該方法在采用五折交叉驗證法的情況下,提高了微表情自動識別的準(zhǔn)確率。
C3D 是一種在時域和空域上進(jìn)行同時進(jìn)行深度學(xué)習(xí)的一種技術(shù),可用于行為識別、場景識別、視頻相似度分析等領(lǐng)域。Ji 等人[12]首次提出一種能夠同時作用在時間和空間上的3D 卷積網(wǎng)絡(luò),在實時視頻環(huán)境中識別人類行為。
C3D 的優(yōu)點在于,采用三維卷積核對上一層網(wǎng)絡(luò)中的圖像感受野進(jìn)行卷積操作,可以一次性提取時域特征,即可以捕捉到多個幀的動作信息。具體地,對于第i 層網(wǎng)絡(luò)的第j 個圖像感受野上的像素點( )x,y,z 的特征值可以記作,公式為:
其中,而Si和Ti分別是三維卷積核的高度和寬度,Ri是三維卷積核的時域維度大小,為連接上層圖像感受野的三維卷積核位置( )s,t,r 的權(quán)重。f(x)表示激活函數(shù),常用的激活函數(shù)有ReLU(Rectified Linear Unit)、sigmoid 等。Hinton 等人[13]提出實驗中使用Re-LU 比sigmoid 更好,因此,實驗中采用ReLU。ReLU 可以表示為:
最后一層輸出層采用Softmax 激活函數(shù),Softmax在輸出層中表示當(dāng)前神經(jīng)元輸出的概率,公式為:
其中,c 為輸出層神經(jīng)元個數(shù)。
目前自發(fā)的微表情數(shù)據(jù)集較少,僅有的三個數(shù)據(jù)集分別是CASME1[14]、CASME2 和SMIC[15]。本文的全部實驗采用CASME2 數(shù)據(jù)集。
CASME2 是中國科學(xué)院心理研究所收集的CASME 數(shù)據(jù)庫的升級版本。CASME2 包含由200fps相機(jī)記錄的26 個受試者的255 個微表情視頻序列。獲得的微表情樣品由AU 編碼,包括三個部分:起始、頂點和結(jié)束。微表情數(shù)據(jù)集可以分為七個類:高興、驚訝、恐懼、悲傷、厭惡、壓抑、其他。
在我們的實驗中,由于兩個類的樣本量不足以進(jìn)行特征學(xué)習(xí)的訓(xùn)練,因此不使用樣本過少的視頻序列類別(即恐懼和悲傷)來進(jìn)行識別,即其余的246 個樣本用于實驗,如表1 所示。
表1 實驗中使用的微表情數(shù)據(jù)集情況
C3DSVM 微表情自動識別方法就是通過C3D 提取微表情在時域和空域上的中間層特征,再將中間層特征送入SVM 分類器,實現(xiàn)微表情的分類。圖1 為微表情自動識別示意圖。
圖1 注釋:輸入視頻序列尺寸為(16×112×112),其中16 表示為微表情視頻幀長,112×112 分別表示幀的長和寬。
圖1 C3DSVM微表情自動識別方法
圖2 注釋:藍(lán)色表示卷積層(conv),黃色表示最大池化層(pool),綠色表示完全連接層(dense)。所有的卷積層的卷積核大小為(3×3×3)。除了pool1 的降采樣核大小是(1×2×2),其他pool 層均為(2×2×2),并且全部采用的是最大采樣,每個完全連接層有4096 個神經(jīng)元。
圖2 實驗的網(wǎng)絡(luò)結(jié)構(gòu)
如圖1 所示,輸入的微表情序列在C3D 網(wǎng)絡(luò)結(jié)構(gòu)上經(jīng)過反復(fù)的訓(xùn)練后,在dense1 這個中間層輸出特征,并送入SVM 分類器,實現(xiàn)分類。具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。所提出的三維卷積神經(jīng)網(wǎng)絡(luò)包括6 個卷積層、4 個最大池化層、2 個完全連接層以及1 個輸出層。除了最后一層輸出層采用Softmax,其余層的激活函數(shù)都采用ReLU,參數(shù)訓(xùn)練采用隨機(jī)梯度下降算法(Stochastic Gradient Descent,SGD)。
后面的分類采用SVM 分類器。SVM 是用于分析數(shù)據(jù)的一種監(jiān)督學(xué)習(xí)算法,在小樣本訓(xùn)練集上能夠得到比其他算法好很多的結(jié)果[16],也具備泛化能力。實驗中的SVM 分類器采用徑向基函數(shù)(Radical Basis Function,RBF),RBF 是空間中任一點x 到某一中心c 之間歐氏距離的單調(diào)函數(shù),其作用往往是局部的,即當(dāng)x 遠(yuǎn)離c 時函數(shù)取值很小,形式為:
其中c 為核函數(shù)中心,t 為函數(shù)的寬度參數(shù),控制了函數(shù)的徑向作用范圍。RBF 通過將樣本映射到一個更高維的空間,實現(xiàn)非線性可分的樣本。微表情由非線性的圖片序列構(gòu)成,使用RBF 核函數(shù)的SVM 分類器能夠有效實現(xiàn)分類。
預(yù)處理。微表情識別的預(yù)處理流程包括人臉識別、裁剪以及規(guī)范化處理環(huán)節(jié)。如圖3 所示,首先在微表情預(yù)處理階段檢測人臉區(qū)域,對每個視頻序列的第一幀采用Haar 人臉檢測器[17]進(jìn)行人臉識別,第一幀識別得到的人臉區(qū)域矩形識別框適用于剩余幀,最后將整個視頻序列對應(yīng)的人臉區(qū)域裁剪下來。在規(guī)范化處理中,由于每個視頻的大小尺寸不統(tǒng)一,我們首先通過平面線性差值的方法將每一幀的平面尺寸統(tǒng)一為112×112。其次,由于幀序列長度不統(tǒng)一,在時域序列上(Temporal Interpolation Method,TIM)[18]通過TIM 的方法統(tǒng)一幀數(shù)為150。經(jīng)過這樣的調(diào)整,每個樣本大小統(tǒng)一為112×112×150×3(3 為RGB 通道)。最后,為了獲取更細(xì)致的特征,等步長截取視頻幀,如圖4 所示,實驗以16 幀為步長無重疊地截取每個樣本中的16 幀,即新的樣本大小為112×112×16×3,實驗中由于微表情出現(xiàn)的高峰在視頻時域上的中間段,盡量取該段的幀序列。
圖3 微表情識別的預(yù)處理流程
驗證方法和指標(biāo)說明。本文的實驗均采用五折交叉驗證的方法,即將樣本隨機(jī)打亂后平均分為5 份,4份用作訓(xùn)練集,剩余1 份用作測試集,循環(huán)下來,就能得到五個測試集的預(yù)測結(jié)果(準(zhǔn)確率)。本文的指標(biāo)采用該準(zhǔn)確率。
圖4 以16幀為步長截取原始幀序列
訓(xùn)練參數(shù)及硬件說明。網(wǎng)絡(luò)結(jié)構(gòu)如2.3 節(jié)所述,用Keras 實現(xiàn)。訓(xùn)練時,目標(biāo)函數(shù)使用均方誤差(Mean Square Error,MSE);初始學(xué)習(xí)率設(shè)置為0.01,epoch 設(shè)定為60。以上參數(shù)通過反復(fù)試驗確定。實驗的主要硬件設(shè)備是兩個NVIDIA Titan X GPU。
(1)和其他方法的對比
實驗結(jié)果如表2 所示,與其他前沿方法相比,本文提出的C3DSVM 的識別方法獲得了最高的準(zhǔn)確率,為88.79%。表2 前兩行是手工特征描述的識別方法,后面為深度學(xué)習(xí)方法。相比之下,C3DSVM 作為一種深度學(xué)習(xí)方法,能夠自動提取特征,省去了人工尋找特征的步驟,也提高了識別準(zhǔn)確率。
相比二維卷積神經(jīng)網(wǎng)絡(luò),C3DSVM 能夠提取在時域和空域上的特征。二維卷積神經(jīng)網(wǎng)絡(luò)在提取視頻特征上,是將時域上的特征圖堆疊得到,容易丟失時域的信息。對于微表情本身動作幅度小的特性來說,使用C3DSVM 能夠有效提取時域上的特征,實現(xiàn)了很好的分類。
表2 不同微表情識別方法的準(zhǔn)確率
(2)不同條件下方法對比
使用SVM 分類能夠提高識別準(zhǔn)確率。圖5 表示C3DSVM 和C3D 的五折識別準(zhǔn)確率,圖6 表示對應(yīng)的平均識別準(zhǔn)確率。由這兩個表格可以看出,C3DSVM的總體識別準(zhǔn)確率高于C3D,這是由于SVM 適用于樣本量較少的數(shù)據(jù)集,C3DSVM 不直接在C3D 網(wǎng)絡(luò)的最后一層分類,而將C3D 提取出的dense1 中間層特征放入SVM,在小樣本的數(shù)據(jù)集下SVM 能夠發(fā)揮其優(yōu)勢,實現(xiàn)微表情的有效分類。
圖5 使用C3DSVM和C3D的五折識別準(zhǔn)確率(%)比較
圖6 使用C3DSVM和C3D的平均識別準(zhǔn)確率(%)比較
使用預(yù)處理中TIM 統(tǒng)一幀長處理的視頻幀可以提高微表情識別準(zhǔn)確率。no-TIM+C3DSVM 表示沒有采用TIM 的對比方法。圖7 表示C3DSVM 和no-TIM+C3DSVM 的五折識別準(zhǔn)確率,圖8 表示對應(yīng)的平均識別準(zhǔn)確率。由這兩個表格可以看出,C3DSVM 的總體識別準(zhǔn)確率高于no-TIM+C3DSVM,發(fā)現(xiàn)在采用TIM的情況下,C3DSVM 能夠發(fā)揮出最好的效能,在使用C3D 網(wǎng)絡(luò)的前提下,輸入層的輸入大小一定,微表情段幀長統(tǒng)一有利于網(wǎng)絡(luò)提取特征,進(jìn)而提高識別準(zhǔn)確率。
圖7 使用C3DSVM和noTIM+C3DSVM的五折識別準(zhǔn)確率(%)比較
圖8 使用C3DSVM 和noTIM+C3DSVM 的平均識別準(zhǔn)確率(%)比較
本文提出了C3DSVM 的微表情自動識別方法,通過C3D 對微表情視頻序列在時域和空域上的中間層特征提取,再用SVM 分類器分類。和傳統(tǒng)的手工方法以及現(xiàn)有的深度學(xué)習(xí)方法相比,所提出的方法明顯提高了識別準(zhǔn)確率。另外,本文也探索了采用TIM 的預(yù)處理方法對識別準(zhǔn)確率的作用,實驗結(jié)果說明采用TIM能夠有效提高微表情識別率。
然而,深度學(xué)習(xí)極度依賴硬件設(shè)備,參與訓(xùn)練的參數(shù)過大,訓(xùn)練時間過長,訓(xùn)練效率不高,這也是使用深度學(xué)習(xí)技術(shù)普遍存在的弊端。另外,實驗中探索網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置、網(wǎng)絡(luò)參數(shù)設(shè)置和激活函數(shù)等參數(shù)較為復(fù)雜。如何優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),優(yōu)化網(wǎng)絡(luò)參數(shù),以進(jìn)一步提高識別準(zhǔn)確率是今后研究的重點。