李 飛,陳 瑞,童 瑩,陳 樂
(1.南京工程學(xué)院 電力工程學(xué)院,江蘇 南京 211167;2.南京工程學(xué)院 信息與通信工程學(xué)院,江蘇 南京 211167;3.南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
人臉表情是人類傳播內(nèi)心情緒的重要方式,也是人類非語言的重要情感表達(dá)方式。人臉表情識別技術(shù)廣泛應(yīng)用于疲勞駕駛、在線教學(xué)、醫(yī)療等智能化人機(jī)交互系統(tǒng)中,是模式識別和人工智能領(lǐng)域的研究熱點。
基于視頻序列的表情識別通過一個完整表情的運(yùn)動過程能表達(dá)更豐富的表情變化信息,更具實際意義,也更具挑戰(zhàn)。傳統(tǒng)的視頻序列表情識別方法有光流法[1]、隱馬爾可夫模型[2]、運(yùn)動歷史圖[3]和LGBP-TOP(Local Gabor Binary Pattern Three Orthogonal Planes)[4]等。FAN等[1]將梯度空間金字塔直方圖擴(kuò)展到時空域以獲得三維特征,并將其與密集光流結(jié)合后得到時空描述符,用來提取人臉表情的空間和運(yùn)動信息。局部二值算法(Local Binary Pattern,LBP)根據(jù)圖像中每個像素與其局部鄰域的點在亮度上的關(guān)系算出二值序,并對之編碼后得到LBP,最終圖像的特征用多區(qū)域直方圖來描述。這些方法多采用手工特征和淺層分類器,算法的魯棒性較差。
隨著深度學(xué)習(xí)技術(shù)在計算機(jī)視覺、圖像與視頻分析等領(lǐng)域的成功應(yīng)用,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)也被用于人臉表情識別,大大提高了識別精度[5-8]。Sun等[5]在EmotiW2015競賽中采用“Alex+RNN”的網(wǎng)絡(luò)模型,其中RNN為循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network)的縮寫,最終結(jié)果遠(yuǎn)遠(yuǎn)超過了競賽的基準(zhǔn)識別率。鑒于面部表情受到面部內(nèi)不同區(qū)域姿勢變化的影響,He等[6]提出了一種多尺度特征提取器的CNN,提高算法對于面部位置變化和尺度變化的魯棒性。Jung等人[7]采用一種模型視頻序列中提取時變特征,另一種模型由單幀圖像的面部關(guān)鍵點提取幾何形狀變化特征,從而聯(lián)合微調(diào)網(wǎng)絡(luò)的方法提高表情識別精度。多模態(tài)表情識別能進(jìn)一步提高識別精度,如Liu等[8]在EmotiW2018競賽中采用DenseNet網(wǎng)絡(luò)處理音頻,VGG-16網(wǎng)絡(luò)處理視頻,長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)提取視頻序列的運(yùn)動特征,并用支持向量機(jī)(Support Vector Machine,SVM)提取關(guān)鍵點運(yùn)動信息,將這些特征進(jìn)行融合。這種多模態(tài)融合的表情識別方法雖然提高了識別精度,但方法復(fù)雜度高。
最近,CNN結(jié)合RNN的網(wǎng)絡(luò)架構(gòu)用于視頻序列表情識別,主要是利用了RNN的時間序列處理能力來獲取視頻序列時域動態(tài)信息,如Chen等[9]和Khor等[10]將CNN和LSTM網(wǎng)絡(luò)級聯(lián)起來,充分利用CNN強(qiáng)大的感知視覺表征與LSTM的時序處理能力;文獻(xiàn)[11-12]采用CNN特征提取后,再用RNN完成特征的時序編碼,結(jié)合時、空域信息完成基于視頻的表情識別,提高了識別率。有研究表明,多層LSTM具有比單層LSTM更好的效果,如Sutskever等[13]提出的端到端序列學(xué)習(xí)方法中,級聯(lián)了四層LSTM,在長句子上表現(xiàn)良好,取得了良好的英法翻譯性能;Irsoy等人的研究[14]表明,與僅有單個隱藏層的RNN相比,具有緊湊結(jié)構(gòu)的多層RNN計算效率更高。
除了上述研究成果,一部分研究者致力于將人類視覺系統(tǒng)的注意力機(jī)制(Attention Mechanism,AM)引入表情識別。梁斌等[15]結(jié)合多種AM,提取更深層次的特征,在降低模型訓(xùn)練時間的同時,提高了目標(biāo)表情的識別率。王曉華等[16]將LSTM網(wǎng)絡(luò)堆疊起來,獲得視頻序列的分層表示,再用自注意力機(jī)制(Self-Attention Mechanism,SAM)描述層級的差異化,與單層LSTM相比,這種模型能更好地關(guān)注感興趣層,獲得更好的視頻表情識別效果。文獻(xiàn)[17]將時間特征和空間特征融合后,使用注意力機(jī)制進(jìn)行特征加權(quán),在LSTM網(wǎng)絡(luò)中對加權(quán)后的特征進(jìn)行訓(xùn)練和分類。這些方法能獲得較好的識別結(jié)果,但深層CNN和多層LSTM網(wǎng)絡(luò)的級聯(lián)使得模型復(fù)雜度較高,且網(wǎng)絡(luò)層數(shù)加深會出現(xiàn)梯度消失。因此,該文提出一種基于增強(qiáng)特征和自注意力機(jī)制的視頻表情識別方法ECNN-SA(Enhanced Convolutional Neural Network with Self-Attention),在VGG-16網(wǎng)絡(luò)的中間層引出一條特征增強(qiáng)支路,并將其與骨干網(wǎng)絡(luò)輸出的深層特征相融合,用于獲取不同層次的人臉表情特征,豐富表情信息。同時,用自注意力機(jī)制代替多層LSTM網(wǎng)絡(luò),不僅能有效學(xué)習(xí)序列內(nèi)部的依賴關(guān)系,捕獲內(nèi)部結(jié)構(gòu)和差異化的顯著特征,而且自注意力機(jī)制主要是均值運(yùn)算,避免了因網(wǎng)絡(luò)層數(shù)加深而造成的梯度消失問題,大大加快了網(wǎng)絡(luò)的訓(xùn)練速度。
為了降低模型的復(fù)雜度,考慮到全連接層有強(qiáng)大的擬合能力但模型復(fù)雜度高(占據(jù)了VGG-16大部分參數(shù)量),且容易過擬合,該文采用全局平均池化層(Global average Pooling,GAP)代替FC層完成對特征映射的降維。同時,為保證識別精度,引入增強(qiáng)特征支路,ECNN-GAP模塊如圖2所示。
池化層方法若采用平均池化時,輸出結(jié)果是滑動窗口中的數(shù)值求和取平均。池化層方法若采用GAP時,其窗口的尺度和特征映射的尺度相同,則無需全連接操作。由于全連接的參數(shù)太多,可用GAP代替。GAP用特征圖直接表示屬于某個類的置信圖。比如有10個類,最后輸出10個特征圖,每個特征圖中的值加起來求平均值得到10個數(shù)字,這10個數(shù)字就是置信度。將這些平均值直接作為屬于某個類別的置信度,再經(jīng)過分類器進(jìn)行分類。GAP的使用可以大幅度減少模型的參數(shù)計算量。進(jìn)一步,訓(xùn)練不同尺寸的圖像時,由于ECNN-GAP模塊輸出的特征維度僅跟通道數(shù)有關(guān),與尺寸無關(guān),則不同大小的圖像經(jīng)ECNN-GAP后輸出的特征維度都將保持一致。
ECNN-GAP模塊中部分參數(shù)設(shè)置如表1所示,其中前五個卷積塊與VGG-16相同。為增加模型深度獲得更多的語義信息,增加了Conv_block_6卷積塊。由表1中的參數(shù)設(shè)置可知,Conv_block_6卷積塊的通道數(shù)由512加大為1 024,這樣可使后續(xù)的GAP_block_6能提取出更豐富的特征向量。增強(qiáng)支路采用類似文獻(xiàn)[18]的增強(qiáng)層,其中第一層7×7卷積,但去除了最大池化層和1×1卷積層,經(jīng)GAP輸出1 024維特征向量,最終ECNN-GAP模塊輸出的2 048維特征向量。
SA使得人類視覺能夠通過快速掃描全局圖像找到感興趣的目標(biāo)區(qū)域,這個機(jī)制不僅能提高視覺信息處理的準(zhǔn)確性,而且極大地提高了處理的效率。2017年谷歌團(tuán)隊[19]提出的SA機(jī)制在機(jī)器翻譯任務(wù)中獲得了優(yōu)秀的成績。Fajtl J等[20]將SA機(jī)制融入視頻表情識別中,通過計算幀間相關(guān)性給每個視頻幀打分,根據(jù)分?jǐn)?shù)確定關(guān)鍵幀。如前所述,單層的LSTM在解決視頻表情識別問題時,由于其僅傳遞一個層級的狀態(tài)產(chǎn)生輸出,從而對特征的表達(dá)能力顯得不夠。多層LSTM網(wǎng)絡(luò)能提取不同級別的時間特征,比單層有更好的效果,但其時間復(fù)雜度較高。因此,該文采用SA機(jī)制代替多層LSTM網(wǎng)絡(luò),一方面通過SA模塊學(xué)習(xí)序列內(nèi)部的依賴關(guān)系,捕獲內(nèi)部結(jié)構(gòu),進(jìn)而獲取差異化的顯著特征,另一方面隨著網(wǎng)絡(luò)層數(shù)的加深,由于SA模塊采用的是均值運(yùn)算,從而避免了梯度消失的問題,很大程度上提高了網(wǎng)絡(luò)的訓(xùn)練速度。
SA實質(zhì)是一個將查詢(Query)映射到正確的輸入的過程,如圖3所示,其中Q為查詢,K為鍵,V為值,鍵K和值V之間有一個鍵值對(Key-Value pairs)表。查詢Q、鍵K、值V和最終的輸出都是向量,輸出往往是一個加權(quán)求和的形式,權(quán)重由查詢、鍵、值決定。源端中的元素由一系列的鍵值對構(gòu)成,給定目標(biāo)端中某個查詢Q,每個鍵K對應(yīng)到值V的注意力權(quán)重系數(shù)是通過計算查詢Q和各個鍵K的相關(guān)性得到;再用Softmax函數(shù)對注意力權(quán)重進(jìn)行歸一化處理,將歸一化注意力權(quán)重對V進(jìn)行加權(quán)求和。自注意力機(jī)制可視為注意力機(jī)制的一種特殊情況,它不是應(yīng)用在源端和目標(biāo)端之間,而是源端內(nèi)部元素之間或目標(biāo)端內(nèi)部元素之間發(fā)生的注意力機(jī)制,此時K=V=Q,即:
(1)
可見,SA機(jī)制通過學(xué)習(xí)序列內(nèi)容的依賴關(guān)系,進(jìn)而捕獲序列的內(nèi)部結(jié)構(gòu),且計算簡單。在視頻表情識別中,結(jié)合SA機(jī)制來處理視頻數(shù)據(jù),讓網(wǎng)絡(luò)模型更加關(guān)注視頻序列中差異性最大的幀,區(qū)分于視頻的表情分類最相關(guān)的視頻幀,更準(zhǔn)確地識別面部表情。提出的SA模塊如圖4所示。
圖4中,X=[x1,x2,…,xn]為ECNN-GAP網(wǎng)絡(luò)輸出的連續(xù)n幀圖像的人臉表情特征向量,Q、K和V的計算公式為:
(2)
其中,Wq、Wk和Wv為不同的網(wǎng)絡(luò)權(quán)值矩陣。圖4中,注意力權(quán)值矩陣QKT描述了輸入特征矩陣X中元素間相關(guān)性;超參數(shù)s可手工設(shè)置,用來抑制注意力權(quán)值大小。通過Softmax函數(shù)將注意力權(quán)重歸一化到[0,1]區(qū)間,再與V相乘,得到差異化的顯著特征矩陣X*。這里,Q、K和V都采用2 048×2 048的權(quán)值矩陣,相比全連接層,計算量大大降低。
為了驗證ECNN-SA模型的有效性,在CK+[21]和AFEW (Acted Facial Expression in the Wild)[22]兩個數(shù)據(jù)庫上進(jìn)行實驗仿真。其中,AFEW數(shù)據(jù)集為真實環(huán)境采集的非約束人臉表情數(shù)據(jù)庫,樣本受環(huán)境光照、姿態(tài)變化、遮擋、配飾、分辨率、拍攝角度、復(fù)雜背景等多種因素混合干擾,且因個體文化差異,受試者表現(xiàn)同類情感的程度也各不相同;CK+為實驗環(huán)境采集的約束人臉表情數(shù)據(jù)庫,樣本中人臉正面姿態(tài)、無遮擋,且受試者根據(jù)實驗要求夸張的表現(xiàn)各類情感。
該文提出的SA模塊和回歸模塊的參數(shù)如表2所示。用來抑制注意力權(quán)重的超參數(shù)s設(shè)為0.1。設(shè)一次同時處理n幀視頻圖像,則SA模塊的輸入為n個2 048維特征向量,這些特征向量進(jìn)行特征融合后輸出1個2 048維特征向量,最后經(jīng)過歸一化處理、ReLU函數(shù)激活和DropOut層之后,用一個FC層將前面提取的特征綜合起來,對應(yīng)到7類,最后Softmax輸出人臉表情的分類結(jié)果。
表2 Self-Attention模塊參數(shù)設(shè)置
該模型訓(xùn)練時優(yōu)化算法使用隨機(jī)梯度下降算法,動量設(shè)置為0.9。模型VGG-16卷積層部分加載在SFEW數(shù)據(jù)集和FER2013數(shù)據(jù)集上預(yù)訓(xùn)練的模型權(quán)重。模型初始學(xué)習(xí)率為10-3,隨著訓(xùn)練的過程衰減。輸入圖像統(tǒng)一預(yù)處理為224×224的灰度圖像。實驗代碼使用Pytorch編寫在Ubuntu 16.4下完成,主機(jī)配備2塊NVIDIA GTX 1080Ti。
由于AFEW數(shù)據(jù)庫復(fù)雜程度高于CK+數(shù)據(jù)庫,因此,該文基于AFEW數(shù)據(jù)庫進(jìn)行網(wǎng)絡(luò)預(yù)訓(xùn)練和微調(diào)。首先采用VGG-FACE權(quán)值作為骨干CNN網(wǎng)絡(luò)的初始權(quán)值;然后用SFEW和FER2013中部分樣本對自注意增強(qiáng)CNN網(wǎng)絡(luò)進(jìn)行微調(diào);最后用AFEW的訓(xùn)練集及擴(kuò)增的訓(xùn)練樣本對自注意增強(qiáng)CNN網(wǎng)絡(luò)進(jìn)行訓(xùn)練,由此得到最佳網(wǎng)絡(luò)參數(shù)。CK+數(shù)據(jù)庫則在此網(wǎng)絡(luò)上直接進(jìn)行訓(xùn)練和測試。
AFEW數(shù)據(jù)集[22]由不同電影中節(jié)選的視頻片段組成,受試者具有自發(fā)的人臉表情,且受真實環(huán)境光照、姿態(tài)變化、遮擋、配飾、拍攝角度、分辨率、復(fù)雜背景等多種因素混合干擾,自2013年起作為EmotiW競賽中的評估數(shù)據(jù),每年組委會均會對AFEW數(shù)據(jù)庫進(jìn)行微調(diào)。
該文選擇2017年競賽數(shù)據(jù)AFEW7.0進(jìn)行實驗,將其分為三個部分:訓(xùn)練集(773個樣本),驗證集(383個樣本)和測試集(653個樣本),其目的是為了確保三個數(shù)據(jù)集中受試者無重疊,由此驗證人臉身份對人臉表情識別的影響。人臉表情標(biāo)簽有生氣(anger)、厭惡(disgust)、害怕(fear)、開心(happiness)、中性(neutral)、悲傷(sadness)、驚訝(surprise)七種。AFEW數(shù)據(jù)集中的連續(xù)表情圖像如圖5所示。
調(diào)整ECNN-SA網(wǎng)絡(luò)的結(jié)構(gòu)和參數(shù),在AFEW數(shù)據(jù)庫上進(jìn)行實驗,得到的仿真結(jié)果如表3所示。
由表3可以看出,第2行ECNN-LSTM表示模型由增強(qiáng)CNN和LSTM網(wǎng)絡(luò)構(gòu)成,LBP表示引入了傳統(tǒng)的LBP特征。由第2行和第3行可以看出,引入傳統(tǒng)的LBP特征可以提高準(zhǔn)確率。第4~11行中,“CNN-SA(3 072, FC,s=0.06)”的意思是,由CNN提取的2 048維特征向量與增強(qiáng)支路提取的1 024維特征向量一起構(gòu)成輸出的3 072維特征向量。在超參數(shù)s相同的情況下,輸出向量的維度越低,識別效果越好,如第4行與第7行相比,第5行與第6行相比的結(jié)果表明,僅僅通過擴(kuò)充通道數(shù)并不能提高識別效果。表3中,“FC”和“2×FC”分別代表SA模塊后的FC層是一層還是兩層。對比第4行和第5行,第6行和第7行的實驗結(jié)果,可以看出一層FC的識別準(zhǔn)確率更高,這是因為FC層的擬合能力太強(qiáng),有可能導(dǎo)致過擬合,識別率不能提高反而會降低。
表3 ECNN-SA算法在AFEW數(shù)據(jù)集上的實驗結(jié)果
對于超參數(shù)s對識別準(zhǔn)確率的影響,該文也進(jìn)行了相應(yīng)的實驗。實驗中,s的取值在0.001到0.5之間選用多個數(shù)值進(jìn)行實驗。由表3中第7~11行的實驗結(jié)果可以看出,相同條件下,在s=0.1時獲得最高的識別準(zhǔn)確率42.78%,比Baseline高出3.97%。與CNN-LSTM[18]相比,識別準(zhǔn)確率提高了1.53%;與帶LBP特征的CNN-LSTM相比,準(zhǔn)確率提高了0.16%。綜合以上的實驗結(jié)果及分析,該算法不僅降低了計算復(fù)雜度,而且提高了識別準(zhǔn)確率,算法可行且有效。
綜上,可以得出結(jié)論:由于FC層具有強(qiáng)大的擬合能力,當(dāng)增加其層數(shù)時,有時會導(dǎo)致模型過擬合,識別準(zhǔn)確率下降。同時,通過單純增加輸出特征通道數(shù)提升網(wǎng)絡(luò)識別性能,效果并不明顯,當(dāng)骨干輸出維度=支路輸出維度=1 024,超參數(shù)s=0.1時,ECNN-SA網(wǎng)絡(luò)的性能最佳,識別準(zhǔn)確率為42.78%。
表4為采用ECNN-SA與傳統(tǒng)CNN-LSTM網(wǎng)絡(luò)端到端訓(xùn)練和測試一張樣本的運(yùn)行時間,表5為AFEW數(shù)據(jù)集上的混淆矩陣。由表4可以看出,當(dāng)用SA機(jī)制代替?zhèn)鹘y(tǒng)CNN-LSTM中多層LSTM網(wǎng)絡(luò),且用GAP層代替FC層時,網(wǎng)絡(luò)訓(xùn)練時間由原來的40.34 ms下降為21.25 ms,下降了47.32%,測試時間也下降32.57%。同時,ECNN-SA網(wǎng)絡(luò)的識別準(zhǔn)確率相比傳統(tǒng)CNN-LSTM網(wǎng)絡(luò)提高了4.21%。
表4 ECNN-SA網(wǎng)絡(luò)與CNN-LSTM網(wǎng)絡(luò)的訓(xùn)練和測試時間對比 ms
表5 ECNN-SA模型混淆矩陣(AFEW數(shù)據(jù)集) %
由表5中的混淆矩陣可以看出,在AFEW數(shù)據(jù)集上,開心的表情識別率最好,其次是傷心和生氣,其他表情的分類并沒有取得非常好的效果,因為開心、傷心和生氣相對于其他表情具有更加明顯的特征,大多開心表情中的明顯特征為嘴巴微張、嘴角翹起、眼瞼收縮等,而害怕、輕蔑、中性等表情的特征有較為相似的特征,識別難度增大。另一方面,識別效果欠佳,原因主要有兩個:
(1)該文采用的表情識別是單模態(tài)的,主要考慮連續(xù)面部表情序列相鄰幀間的時間關(guān)系,如果采用多模態(tài)的方法,增加音頻、文字等模式,能幫助提高表情識別率;
(2)AFEW數(shù)據(jù)集是從不同電影中收集的視頻剪輯,非常接近真實場景,包含各種頭部姿勢,演員的臉部遮擋,背景多變,是一個多模式數(shù)據(jù)庫,因此在該數(shù)據(jù)集上識別結(jié)果較差。
CK+數(shù)據(jù)集[21]發(fā)布于2010年,是在Cohn-Kanade數(shù)據(jù)集基礎(chǔ)上擴(kuò)展來的,可以從網(wǎng)上免費(fèi)獲取,包含表情標(biāo)簽和Action Units的標(biāo)簽。這個數(shù)據(jù)集中包括123個受試者(subjects),593個圖像序列。每個圖像序列的最后一幀都有Action Units的標(biāo)簽。圖像序列中包含了從平靜到表情表現(xiàn)峰值的圖片。其中,來自118名受試者的327個圖像序列被標(biāo)記了七種基本情緒標(biāo)簽:生氣(anger)、蔑視(contempt)、厭惡(disgust)、害怕(fear)、高興(happiness)、悲傷(sadness)、驚訝(surprise)。CK+數(shù)據(jù)集中的連續(xù)表情圖像如圖6所示。
由于CK+沒有給定訓(xùn)練集和測試集,將327個視頻劃分成長度為10幀的視頻序列,共978個,取其中80%進(jìn)行訓(xùn)練,20%進(jìn)行測試,交叉驗證5次得到實驗結(jié)果。
采用2.2節(jié)中在AFEW數(shù)據(jù)集上訓(xùn)練得到的具有最佳結(jié)構(gòu)和參數(shù)的ECNN-SA網(wǎng)絡(luò)(即骨干輸出維度=支路輸出維度=1 024,超參數(shù)s=0.1)訓(xùn)練CK+數(shù)據(jù)庫,5次交叉驗證,得到的測試集實驗結(jié)果如表6所示,對應(yīng)的混淆矩陣如表7所示。由表6可以看出,提出的ECNN-SA網(wǎng)絡(luò)達(dá)到最高識別率97.95%,比其他網(wǎng)絡(luò)3DCNN-DAP[1]、STM-ExpLet[23]、DTAGN[7]分別提高了5.6%、4.07%和1.52%,比CNN-LSTM[20]網(wǎng)絡(luò)提高了2.03%。由此可見,在AFEW數(shù)據(jù)庫訓(xùn)練得到的ECNN-SA網(wǎng)絡(luò)在CK+數(shù)據(jù)庫上達(dá)到最佳識別性能。
表6 CK+數(shù)據(jù)集上的測試結(jié)果
表7 CK+數(shù)據(jù)集上的混淆矩陣 %
鑒于端到端CNN-LSTM網(wǎng)絡(luò)用于視頻表情識別時采用深層CNN提取空間信息和多層LSTM級聯(lián)獲取時間信息時,網(wǎng)絡(luò)模型的復(fù)雜度較高且易發(fā)生過擬合,提出了一種高效、低復(fù)雜度的視頻表情識別模型ECNN-SA。使用改進(jìn)后的VGG-16增強(qiáng)網(wǎng)絡(luò)獲取更多層次、更豐富的表情特征,用SA模塊替代多層LSTM網(wǎng)絡(luò),對前后圖像幀間的相關(guān)性進(jìn)行加權(quán)求和,對表情最夸張的圖像賦予較大的權(quán)值,最后由Softmax分類器輸出表情類別。ECNN-SA視頻表情識別模型不僅更有效地獲得了視頻序列內(nèi)部結(jié)構(gòu)和差異化的顯著特征,而且大大降低了網(wǎng)絡(luò)的訓(xùn)練時間。
該方法是基于視頻的面部表情識別,而人類的情感還包括語音、姿態(tài)動作和生理信號等,有效地融合音頻、人臉關(guān)鍵點等其他模態(tài)的信息,對人臉表情進(jìn)行多模態(tài)識別是下一步的研究工作。