郭靖圓,董乙杉,劉曉文,盧樹華,2
1.中國人民公安大學 信息網(wǎng)絡安全學院,北京 102600
2.公安部安全防范技術與風險評估重點實驗室,北京 102600
面部表情是人類表達內(nèi)心情感的一種重要方式,通過分析人的面部表情,可以判斷其心理狀態(tài)。人臉表情自動識別技術在智能審訊、自動駕駛、輔助醫(yī)療、消費者分析和臨床心理學等人機交互領域應用廣泛,成為計算機視覺領域中非常重要的研究課題[1-3]。
現(xiàn)有的自動表情識別的研究主要針對宏表情和微表情。微表情自動識別研究對象為在面部短暫出現(xiàn)的、人眼難以察覺的面部表情。賁晛燁等[4]總結了基于傳統(tǒng)方法的微表情識別;Li等[5]采用深度學習方法進行微表情識別,利用深層分層卷積遞歸神經(jīng)網(wǎng)絡和基于主成分分析的遞歸神經(jīng)網(wǎng)絡分別提取局部和全局特征;Wang等[6]將傳統(tǒng)方法與深度學習相結合進行微表情識別,將堆疊的光流序列與PCANet+相結合自動學習有較強判別力的時空特征。宏表情自動識別即人臉表情識別研究針對人眼可見的,如高興、悲傷、驚訝等常見的幾種表情。微表情識別常用于商業(yè)談判、犯罪偵查等特定情景下,而宏表情在人們的日常交往中應用更為廣泛,因而,本文針對宏表情研究其識別方法。
傳統(tǒng)的人臉表情識別廣泛采用機器學習的方法提取手工設計特征,主要依賴設計者的知識經(jīng)驗,缺乏足夠的可靠性,準確率亦受到限制。近年來,隨著深度學習的快速發(fā)展,卷積神經(jīng)網(wǎng)絡可實現(xiàn)端到端自動提取特征和分類,人臉表情識別的穩(wěn)健性和準確率顯著提高,尤其是在CK+等實驗室數(shù)據(jù)集上,表情識別準確率可高達95%以上[7-9]。但是隨著表情識別逐漸走向實際場景應用,自然條件下的人臉表情識別引起較多關注。Li等[10]提出了一種針對自然條件下面部表情識別的網(wǎng)絡LBANIL,LBAN 將局部二值卷積與標準卷積相結合,在提取稀疏表情特征的同時修剪多余參數(shù),降低了模型復雜度;IL通過增加向量振幅來提高類間差異增強網(wǎng)絡的辨別能力,提高了自然條件下人臉表情識別準確率。為避免丟失關鍵信息,文獻[11-12]報道采用多分支網(wǎng)絡同時學習全局和局部特征,提取互補信息。為提高表情識別性能,結合面部特征點檢測來增強網(wǎng)絡面部表情特征提取能力亦受到關注[13-14]。此外,一些方法還引入注意力機制抑制背景干擾[2-3,15-16],融合深度學習特征和傳統(tǒng)方法豐富特征信息[2,17-18],表情識別準確率得到顯著提高。但是自然條件下的人臉表情識別依然面臨諸多挑戰(zhàn),包括復雜背景干擾、姿態(tài)大角度變化以及空間信息分布不均勻等,其識別準確率有待進一步提高[19-22]。針對上述問題,本文以VGG19為基本架構,提出一種注意力機制和Involution 算子改進的人臉表情識別方法,主要內(nèi)容及創(chuàng)新點總結如下:
(1)融合卷積注意力機制(convolutional block attention module,CBAM)對復雜背景中的重要特征重加權,引入聯(lián)合正則化策略平衡數(shù)據(jù)分布,加入密集連接[23]強化關鍵信息復用,提高識別準確率;
(2)為加強網(wǎng)絡多樣性空間特征感知能力,網(wǎng)絡中嵌入Involution算子[24]替代部分卷積層,降低部分遮擋、光照不平衡及姿勢變化等對表情識別的影響;
(3)所提方法在CK+[25]、FER2013[26]和RAF-DB[27-28]等3個標準公開數(shù)據(jù)集上進行了實驗和測試,結果表明,所提方法優(yōu)于當前諸多先進方法,具有良好的準確性。
傳統(tǒng)的人臉表情識別通過提取灰度、紋理、顏色及幾何形狀等手工特征識別面部表情,如HOG(histogram of oriented gradients)[29]、LBP(linear binary pattern)[30]、SIFT(scale-invariant feature transform)[31]等都是早期人臉表情識別研究中較為常用的方法。
近年來,卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)被廣泛應用于計算機視覺領域,進一步推動了人臉表情識別的發(fā)展[32]。不同于嚴重依賴復雜規(guī)則的傳統(tǒng)機器學習算法,深度學習模型能夠自動地學習各類表情的典型特征。常用于人臉表情識別的卷積神經(jīng)網(wǎng)絡架構有AlexNet[33]、VGGNet[34]、GoogleNet[35]和ResNet[36]。其中,VGGNet[34]的顯著特點是所有卷積層均使用大小為3×3 的卷積核以減少參數(shù)量,包括VGG16和VGG19。Li等[37]提出一種局部面部區(qū)域門控卷積神經(jīng)網(wǎng)絡(PG-CNN),PG-CNN以VGG16為骨干網(wǎng)絡,加入PG 單元自動感知面部遮擋區(qū)域,使網(wǎng)絡關注未遮擋區(qū)域,解決了表情識別中遮擋導致準確率下降的問題。
注意力機制是近幾年在深度神經(jīng)網(wǎng)絡研究領域取得顯著成效的一類優(yōu)化模塊。注意力機制把圖像中的重要特征通過重新計算權重的方式將其標記,以抑制背景干擾,識別圖像中所需信息量豐富的區(qū)域。Li等[15]在基于注意力機制的卷積神經(jīng)網(wǎng)絡中加入門單元學習自適應權重,依據(jù)權重大小區(qū)分出被遮擋的面部區(qū)域,使網(wǎng)絡關注信息豐富的非遮擋區(qū)域,進一步提高了遮擋條件下的FER 性能。Li 等[2]將LBP 特征與注意力模型結合起來進行面部表情識別,將注意力模型嵌入到網(wǎng)絡中,允許網(wǎng)絡對輸入不同部分給予不同的注意力權重,使網(wǎng)絡更加關注有用特征。Wang 等[3]提出了一個區(qū)域注意力網(wǎng)絡,加入自注意力模塊和關系注意力模塊,以端到端的方式學習每個區(qū)域的注意力權重,提高了遮擋和姿勢變化條件下的面部表情識別的穩(wěn)健性。Wang 等[16]提出了一個自療網(wǎng)絡,利用自注意力機制對主干網(wǎng)絡生成的特征圖加權,降低不確定性圖片權重,減少了不確定性圖片和錯誤標簽對網(wǎng)絡訓練的影響。
融合多級特征,提取更豐富、更多樣的表情特征亦受到諸多關注。Zadeh等[17]使用Gabor濾波器提取圖片邊緣和紋理信息,然后使用深度卷積神經(jīng)網(wǎng)絡提取深層特征,提高了模型的訓練速度和準確性。Xi等[18]在模型前端采用灰度共現(xiàn)矩陣提取了8 種不同的面部表情紋理特征,并將其與原始圖像進行融合后輸入卷積神經(jīng)網(wǎng)絡、殘差網(wǎng)絡和膠囊網(wǎng)絡組成的并行網(wǎng)絡,提取與面部表情變化高度相關的精確特征。Li等[2]構建了一個新型網(wǎng)絡架構,由特征提取模塊、注意力模塊、重構模塊和分類模塊四個模塊組成,在特征提取模塊融合傳統(tǒng)方法LBP提取圖像紋理信息,加入密集連接和膨脹卷積以提高網(wǎng)絡性能,由此提升表情識別準確率。
本文選取VGG19 為基礎框架,提出注意力機制和Involution算子改進的人臉表情識別網(wǎng)絡,結構如圖1所示。網(wǎng)絡中,引入5 個CBAM 為重要特征重加權,前4個CBAM卷積核為7,處理大尺度特征,最后1個模塊后CBAM 卷積核為3,處理小尺度特征。在網(wǎng)絡前端,每層卷積后引入聯(lián)合正則化機制,即過濾器響應正則化和批量正則化(BFN),實例正則化和組正則化(IGN),以平衡和改善數(shù)據(jù)分布;在網(wǎng)絡后端,采用密集連接以加強高層有效特征復用并緩解梯度消失問題,引入Involution 算子取代部分卷積層,提高多樣性空間信息提取和傳遞能力,然后,將提取到的特征圖送入全連接層進行分類,輸出表情識別結果。
圖1 注意力機制與Involution算子改進的網(wǎng)絡結構Fig.1 Network architecture based on attention mechanism and Involution operator
CBAM[21]包括通道注意力(channel attention module,CAM)和空間注意力(spatial attention module,SAM)兩種注意力機制,將這兩類注意力模塊串行連接在一起,相比于單獨的CAM和SAM更關注特征圖中關鍵信息。如圖2所示,特征圖Fi輸入CAM后,分別經(jīng)過全局最大池化和全局平均池化得到AvgPool(Fi)和MaxPool(Fi),再將它們分別送入多層感知機(multilayer perceptron,MLP),并將MLP得到的輸出加和,生成特征圖FCAM,最后將其與輸入特征圖Fi相乘得到FCAMout。其計算公式如下:
圖2 CBAM注意力模塊結構Fig.2 Structure of CBAM attention mechanism
式中,⊙表示逐點相乘;σ(x)表示激活函數(shù)Sigmoid。特征圖Fi輸入SAM 后分別經(jīng)過全局最大池化和全局平均池化并將得到的特征圖按通道拼接后,經(jīng)過一層卷積核大小為k×k的卷積層進行降維操作(此處k常取值為7),生成最終的注意力特征提取圖,將其與輸入特征圖相乘,為更需要關注的特征加權。其計算公式如下:
式中,⊙表示逐點相乘,⊕表示級聯(lián),M(Fi)為全局最大池化運算,A(Fi)為全局平均池化運算。如圖所示,每個模塊特征圖F輸出后,先送入CAM提取通道注意力特征再經(jīng)過SAM 提取空間注意力特征,得到輸出Fout。具體計算如下:
密集連接[23],即將CNN 中每一層都通過級聯(lián)操作與其他層連接,使得網(wǎng)絡中每一層都接受它前面所有層的特征作為輸入。標準的卷積神經(jīng)網(wǎng)絡每一層與其前一層和后一層相連,而采用密集連接的卷積神經(jīng)網(wǎng)絡所有層都相互連接,保存了較淺層特征,實現(xiàn)了通道維度的特征復用,緩解了梯度消失問題。如圖3 所示,第L層輸出xL與第L+1 層輸出xL+1在通道維度上級聯(lián)后輸入L+2 層得到xL+2,xL、xL+1、xL+2再級聯(lián)后輸入L+3 層得到xL+3。具體計算如下:
圖3 密集連接結構Fig.3 Structure of dense connection convolution layers
式中,Conv為卷積(卷積核大小為3×3)運算,BN為正則化操作,ReLU為非線性運算,⊕為級聯(lián)運算。
Involution[24]是一種不同于Convolution的新型算子。Convolution具有空間不變性和通道特異性。Involution特性與Convolution 相反,具有通道不變性和空間特異性。通道不變性指Involution算子在通道維度上共享卷積核,一定程度上減少了核冗余問題,進而減少了參數(shù)的冗余;空間特異性即Involution 算子在空間維度上不共享參數(shù),但在不同空間位置上,Involution算子仍具有知識共享和遷移能力。這一特性使得Involution算子能夠更靈活地提取多樣性空間特征,在更大范圍的空間內(nèi)聚合上下文信息,強化了關鍵空間上下文信息的利用,并且重點關注空間維度信息最豐富的元素。
如圖4 所示,特征圖Fin(大小為H×W×Cin)輸入Involution算子后,提取其中大小為1×1×Cin的張量fi,j(i=1,2,…,H,j=1,2,…,W)做通道壓縮運算,將其從Cin壓縮到Cout,得到大小為1×1×Cout的fc,通道壓縮運算公式如下:
圖4 Involution結構圖Fig.4 Structure of Involution
式中,r為壓縮率。再將fc轉換為大小為K×K×G(K為Involution 算子卷積核的大小,G指將通道數(shù)C分為G組)的張量fk,轉換公式如下:
fk即Involution算子的卷積核。每組卷積核對輸入特征圖進行處理后,生成相應的輸出Fk,大小為K×K×Cin,而后將Fk在通道維度上聚合得到對應于fi,j的。H×W個共同組成了輸出特征圖Fout。聚合運算如下:
式中,x1,1,x2,1,x1,2,…,xK,K表示Fk中元素,⊕表示通道維度上對應像素相加。
CK+是人臉表情數(shù)據(jù)庫CK 的擴展數(shù)據(jù)集,包含有持續(xù)時間從10 幀到60 幀不等的593 個圖像序列,其中327 個序列基于面部動作編碼系統(tǒng)(FACS)被標記為憤怒、蔑視、厭惡、恐懼、快樂、悲傷、驚訝7 個基本表情標簽,其中蔑視、恐懼、悲傷表情圖片較少,蔑視54 張,恐懼75 張,悲傷84 張。本文從這327 個序列中提取了每個序列的最后3幀,共包含981張表情圖片,其中882張作為訓練集,99張作為測試集。
FER2013數(shù)據(jù)集包含35 887張圖片,其中訓練集部分28 708張圖片,公開測試集部分3 589張圖片,私有測試集部分3 589張圖片。FER2013數(shù)據(jù)集中每張圖片經(jīng)過裁剪對齊后都被統(tǒng)一調(diào)整至大小為48×48 的灰度圖像,每張圖片還標注有對應生氣、厭惡、害怕、高興、傷心、驚訝以及中性的7 種表情標簽,其中標簽為厭惡的圖片只有436張訓練圖片,其余表情圖片數(shù)量都在3 000張以上。實驗中,將公開測試集部分作為驗證集,將私有測試集作為測試集。
RAF-DB 數(shù)據(jù)集包含了30 000 張從互聯(lián)網(wǎng)下載而來的基本或復合表情的面部圖像。通過人工標注,該數(shù)據(jù)集中圖片被分為包括生氣、厭惡、害怕、高興、傷心、驚訝、中性的7類基本表情和12類復合表情,7類基本表情中,表情為害怕和厭惡的圖像較少,分別有281 和717張。實驗中,僅使用了基本表情圖像,其中12 271 張圖像作為訓練數(shù)據(jù),3 068張圖像作為測試數(shù)據(jù)。
實驗操作系統(tǒng)為Ubuntu16.04,以Python2.7、Pytorch0.4.1 作為基礎環(huán)境編寫和運行程序,訓練使用的GPU為NVIDIA GeForce GTX 1080Ti。訓練的過程中使用交叉熵損失函數(shù),并采用SGD優(yōu)化器優(yōu)化模型。
訓練CK+數(shù)據(jù)集時將初始學習率設置為0.01,設置總批次為100、初始衰減批次為20,每2個批次進行一次衰減,衰減率為0.9。訓練FER2013 數(shù)據(jù)集和RAF-DB數(shù)據(jù)集時將初始學習率設置為0.01,訓練總批次設置為300,初始衰減批次設置為80,每5 個批次進行一次衰減,衰減率為0.9。為避免過擬合,采用數(shù)據(jù)增強策略。對于CK+和FER2013數(shù)據(jù)集,將大小為48×48的原始圖片隨機裁剪成大小為44×44的10張圖片,并對圖片進行水平翻轉操作,達到擴增數(shù)據(jù)集的目的。對于RAF-DB數(shù)據(jù)集,用MTCNN對數(shù)據(jù)集中人臉圖像進行檢測和對齊,并將圖片大小由100×100放大至224×224,而后對其進行歸一化處理以加速模型收斂。
所提方法在CK+,F(xiàn)ER2013和RAF-DB數(shù)據(jù)集上進行了訓練與測試,并將測試結果與多個先進方法進行比較,結果如表1 和表2 所示。CK+為實驗室數(shù)據(jù)集,F(xiàn)ER2013和RAF-DB數(shù)據(jù)集為自然條件數(shù)據(jù)集。FER2013數(shù)據(jù)集存在部分錯誤標簽,準確率最高位于約75%,由表1能夠看出,所提方法在FER2013數(shù)據(jù)集上表情識別準確率達到73.806%,相較于Xie[38]、LBAN-IL[10]、Tri21+DisSupTri+PosSupTri[39]等方法提高了1.336、0.696、0.026個百分點??傮w而言,所提方法在FER2013數(shù)據(jù)集上具有較好的競爭性。
表1 FER2013數(shù)據(jù)集識別準確率Table 1 Recognition accuracy on FER2013 dataset
表2 CK+和RAF-DB數(shù)據(jù)集識別準確率Table 2 Recognition accuracy on CK+and RAF-DB dataset單位:%
從表2可以看出,所提方法在CK+數(shù)據(jù)集上取得了98.99%的準確率,相較于LDL-ALSG[40]、Tri21+DisSupTri[39]、Xie[38]、OAENet[41]等方法提高了5.91、1.38、1.16、0.49 個百分點,在所比較的幾種先進算法中,達到了最高,表明所提方法在實驗室數(shù)據(jù)集上的優(yōu)異性能。此外,所提方法在RAF-DB 數(shù)據(jù)集上表情識別準確率達到85.007%,相較于pACNN[15]、VGG+SE[42]、Li[43]等方法分別提高了1.737、1.727、0.587個百分點,與準確率最高的LBAN-IL[10]的結果85.89%也較為接近,表明所提方法具有較好的先進性。所提方法使用的損失函數(shù)為交叉熵損失函數(shù),而方法LBAN-IL[10]加入IL損失函數(shù)以提高類間差異、增強網(wǎng)絡辨別力,因此所得準確率更高,但IL損失函數(shù)輸出網(wǎng)絡層參數(shù)、softmax 損失函數(shù)參數(shù)和islet 損失函數(shù)參數(shù),相對交叉熵損失函數(shù)參數(shù)量、計算量都有所增加。所提方法與SCN[16]有較大差距,SCN對圖片標簽進行了修正,而所提方法使采用數(shù)據(jù)集原始標注,因數(shù)據(jù)集標注存在較大不確定性,可能是識別準確率比SCN低的潛在重要因素。
圖5展示了所提模型在CK+、FER2013以及RAF-DB數(shù)據(jù)集上的混淆矩陣。由圖5 可知,在識別過程中,表情“厭惡”“害怕”“悲傷”“生氣”容易相互誤判,這可能是因為這些表情均有皺眉和嘴角向下等特征,很容易相互混淆,導致識別性能較差。
圖5 所提模型在CK+、FER2013和RAF-DB數(shù)據(jù)集上的混淆矩陣Fig.5 Confusion matrices of proposed models on CK+,F(xiàn)ER2013 and RAF-DB dataset
從圖5(a)中可以看出,CK+數(shù)據(jù)集表情“蔑視”“恐懼”“悲傷”識別準確率均為100%,盡管這3種表情圖片數(shù)量較少,但其識別準確率仍較高,這表明數(shù)據(jù)分布不均衡對該實驗室數(shù)據(jù)集分類性能影響不顯著;圖5(b)中識別準確率最低的表情為“害怕”,與圖片數(shù)量最少的“厭惡”表情不一致,F(xiàn)ER2013數(shù)據(jù)集中存在部分標簽錯誤,數(shù)據(jù)分布不平衡對該數(shù)據(jù)集的參考意義不大;從圖5(c)中可以看出,在識別RAF 數(shù)據(jù)集時,表情“害怕”和“厭惡”準確率較低,與RAF-DB數(shù)據(jù)集中這兩類表情圖片數(shù)量較少一致,對于監(jiān)督學習模型來說,較少的圖片數(shù)量,使網(wǎng)絡缺乏對應表情的訓練,導致準確率較低[10,50],表明數(shù)據(jù)分布不平衡對自然條件下表情識別存在一定影響。
為分析所提模型中不同優(yōu)化策略的效能,以VGG19為基線網(wǎng)絡,在數(shù)據(jù)集CK+、FER2013 和RAF-DB 上開展消融實驗,實驗結果如表3所示,可以看出,在CK+數(shù)據(jù)集上引入CBAM后,準確率顯著提升,提高了4.04個百分點,加入密集連接和IGN 后準確率均有提升,模型VGG19+CBAM+IGN+DEN達到最高準確率98.99%,相較于VGG19基線網(wǎng)絡提升了7.07個百分點。在FER2013數(shù)據(jù)集上對比不同改進方法的效果,可見,引入CBAM后準確率提升0.621%,采用密集連接準確率提升0.780個百分點,再嵌入BFN 后達到最高準確率73.806 個百分點,相較于單純使用VGG19網(wǎng)絡提升了1.223個百分點。在RAF-DB 數(shù)據(jù)集上,通過融合CBAM,加入聯(lián)合正則化策略,引入密集連接和Involution算子,模型的性能不斷提高,最高準確率達到85.007%,相較于單純使用VGG19網(wǎng)絡提升了3.647個百分點。
表3 CK+、FER2013和RAF-DB數(shù)據(jù)集上的消融實驗研究Table 3 Ablation study on CK+,F(xiàn)ER2013 and RAF-DB dataset 單位:%
單獨引入Involution后,模型在FER2013和RAF-DB數(shù)據(jù)集上準確率均有提升,然而在CK+數(shù)據(jù)集上準確率不僅沒有提升反而有所下降,其原因可能是Involution算子在通道維度上共享Involution 核,Involution 核基于單個像素而不考慮相鄰像素,導致所提模型在獲得更大范圍空間內(nèi)聚合上下文信息的同時一定程度上限制了像素間的信息交換,且過大空間上下文范圍可能會削弱目標像素信息。但是,Involution 算子能夠提取多樣性空間特征,利用關鍵空間上下文信息克服復雜背景和噪聲等干擾,因此Involution 算子更適用于需要提取關鍵空間上下文信息和多樣性空間特征的復雜條件下的人臉表情識別。FER2013 和RAF-DB 這兩個數(shù)據(jù)集中包含有許多遮擋、光照不平衡及姿勢不同的圖片,需要結合上下文信息來提取圖片中的有用特征,并通過提取多樣性空間特征適應圖片多樣性;而CK+數(shù)據(jù)集采集于實驗室,其中圖片變化較少,且均為無遮擋正面人臉圖片,表情強相關特征集中在面部中間,過多采集多樣性空間特征和空間上下文信息反而會削弱目標像素信息,導致關鍵特征減少,表情識別準確率下降。
在加入CBAM、密集連接和聯(lián)合正則化策略后再引入Involution 的情況下,模型在CK+數(shù)據(jù)集上的準確率不再下降,這可能是因為CBAM 已經(jīng)將圖片中的表情強相關特征提取出來,消除了Involution 對目標像素信息的影響。
本文以VGG19 作為基礎網(wǎng)絡框架,融合CBAM 和聯(lián)合正則化策略提取重要特征并優(yōu)化數(shù)據(jù)分布,采用密集連接加強特征復用并緩解梯度消失問題,改進了模型性能,引入Involution 算子加強了模型上下文信息聚合范圍,提高了模型多樣性空間特征提取能力。
所提模型VGG19+CBAM+IGN+DEN 在小型實驗室數(shù)據(jù)集CK+上準確率達到98.99%;VGG19+CBAM+BFN+DEN 在大型自然條件數(shù)據(jù)集FER2013 上取得了73.806%的準確率;VGG19+CBAM+IGN+DEN+INV 在自然條件數(shù)據(jù)集RAF-DB 上準確率為85.007%,結果較當前諸多人臉表情識別先進方法表現(xiàn)優(yōu)異,展現(xiàn)了所提模型具有較好的先進性和穩(wěn)健性。所提方法雖然超過了一些主流方法,但準確率還有待進一步提升,下一步探索多樣性特征提取及圖片標注不確定性等問題。