?

改進殘差網絡與峰值幀的微表情識別

2024-02-28 11:45陳新泉王岱嶸陳新怡
關鍵詞:殘差峰值準確率

任 宇, 陳新泉, 王岱嶸, 陳新怡

安徽工程大學 計算機與信息學院, 安徽 蕪湖 241000

1 引 言

微表情是人們內心情感通過不受控制的面部活動露出的面部表情。這種自發產生的面部表情因其不可控性而難以克制,可以將內心的情感更直觀地表達出來。微表情通常發生在1/25~1/3 s內,且在幅度很小的特定面部區域運動[1]。因此在生產生活中微表情識別被廣泛應用于評估情緒狀態、謊言檢測、商務談判等領域[2]。

最初的微表情識別是由有經驗或受過專業訓練的心理學家和專業人士完成,但是由于時間表現上的壓縮以及理解上的困難[3],識別效率與準確度較低。隨著機器學習與深度學習等方法的發展,現有的識別方法可分為基于手工描述特征的微表情識別算法與基于深度學習的微表情識別算法[4]。目前,微表情識別步驟大致可分為預處理、特征提取、分類。

較早提出的是基于手工描述特征的微表情識別方法。局部二進制模式(Local Binary Pattern, LBP)是基于方向梯度直方圖[5]算法早期提出的手工描述特征的微情識別算法。Li等[6]提出了三正交平面局部二進制模式(LBP from Three Orthogonal Planes, LBP-TOP)進行微表情識別。Huang[7]提出了時空全局部量化模式(Spatial Temporal Completed Local Quantized Pattern, STCLQP),有效地避免了LBP-TOP特征僅考慮局部外觀和運動特征的局限性。Wang等提出了六交點局部二值模式(LBP with Six Intersection Points, LBP-SIP)方法[8]和平均正交平面二進制模式(LBP Mean Orthogonal Planes, LBP-MOP)方法[9]。Xu等[10]提出面部動態圖(Facial Dynamics Map,FDM)方法,Liu等[11]提出計算面部肌肉運動的主方向平均光流,這兩種都是基于運動信息的光流特征來進行識別。FDM通過將人臉進行定位,之后將每個微表情進行人臉對齊和剪裁,再把抽取出來的光流場進行分割,最后抽取分割出的立方體主方向。上述基于手工描述特征的微表情識別算法可以大致分為外觀特征和幾何特征:LBP及其衍生的方法是較為典型的外觀特征方法,而利用光流特征或是動態特征則是幾何特征的方法?;谶@兩種特征的算法,可以將微表情內在特征更加直觀地表現出來,同時對一些微小的特征進行放大,從而更加容易地進行微表情識別。但是由于其方法的局限性,而導致需要大量的計算和繁瑣的參數調整,同時泛化能力與魯棒性都比較低,難以處理復雜情況下的微表情識別,降低識別準確率[12]。

隨著神經網絡的發展,深度學習的方法在圖像分類、人臉識別、語音識別[13-14]等方向取得了巨大的突破,基于深度學習的微表情識別方法也開始逐漸被提出。Patel等[15]使用深度學習方法,利用卷積神經網絡用深層特征方式對微表情特征進行提取,減少了特征信息的冗余度,再使用傳統的分類方法進行表情的分類。Peng等[16]提出了雙時域尺度卷積神經網絡(Dual Temporal Scale Convolutional Neural Network, DTSCNN),每條流都由獨立的淺網絡組成,同時注入光流序列獲取更高層次的特征避免過擬合問題。Khor等[17]提出了一個增強的長期遞歸卷積網絡(Enriched Long-term Recurrent Convolutional Network, ELRCN),該網絡結合卷積神經網絡和長短期記憶網絡分別提取空間信息和時空信息。Cai等[18]將DenseNet網絡用于微表情的識別,DenseNet以其獨特的連接方式可以緩解常見的梯度消失的問題,從而提高了準確率。對比手工描述特征的方法,深度學習的方法可以更好地專注于微表情特征的提取,從不同的角度提取視頻序列的信息,最后將這些信息用于識別任務,提高了模型識別的泛化能力與魯棒性。

以上的研究方法都是將微表情視頻片段從起始幀到終止幀所有幀送入模型進行訓練與識別。微表情視頻序列一般包含微表情開始的起始幀(Onset frame)和結束的終止幀(Offset frame),在起始幀與終止幀中間變化最為明顯的一幀稱為峰值幀(Apex frame)[19]。但是除了峰值幀之外,其余幀包含了較多無用信息,而使用峰值幀進行微表情的識別可以降低無用信息的干擾。因此本文首先對峰值幀進行提取,其次將改進的殘差網絡ResNeXt-50[20]模型用于微表情識別,可以使結構更加簡化,減少參數數量,提升了識別效率,同時使用SE模塊可以更好地學習特征中的關鍵信息,抑制無用信息,形成用于微表情識別的SE-ResNeXt-50模型[21]。最后在CASMEⅡ微表情數據集上完成模型訓練與實驗,實驗結果表明,本文提出的方法與其他的微表情識別方法相比,識別準確率與F1值得到提升,可以取得較好的識別效果。

2 模型結構框架

本節將介紹殘差網絡的殘差模塊與改進的殘差模塊、SE模塊相關內容及其最后使用的整體模型結構框架。

2.1 殘差模塊

為了緩解在深度神經網絡中增加深度帶來的梯度消失問題,同時用更深更寬的網絡框架提取到更加豐富的特征信息和語義信息,He等[22]在模型中加入殘差模塊從而提出了ResNet模型。所提出的殘差模塊可以定義為如式(1)所示:

xi+1=F(x,Wi)+xi

(1)

式(1)中,F(x,Wi)為網絡中的殘差映射;xi+1為殘差模塊的輸出;xi為殘差模塊的輸入。

殘差模塊引入了一個恒等映射,其內部的殘差塊使用了跳躍連接, ReLU函數作為激活函數。原本的恒等映射H(X)=X直接去擬合是一件比較困難的事,但是如果將原本H(X)=X轉換成為如圖1所示的H(X)=F(X)+X,當F(X)=0時就形成一個殘差的恒等結構,用這種殘差形式去擬合會更加容易。殘差模塊的加入可以避免梯度消失問題,進一步提高模型的擬合能力,減輕網絡層數增加帶來的影響。

圖1 殘差模塊結構

ResNet模型對殘差模塊的結構進行了優化,降低因為深層次的網絡模型而帶來的計算成本相對較大的大問題。將原結構中2個3×3的卷積層替換為圖2(b)所示的只保留一個3×3卷積層,但是在這個3×3卷積層前后各添加一個1×1的卷積層分別進行降維操作與升維還原的操作的新結構,同時在三個卷積層中間也將使用線性整流單元作為激活函數。這種優化以后的殘差結構相比較未優化的殘差結構,既減少了參數量降低了計算成本也保持了模型精度。

(a) 殘差模塊結構 (b) 優化后殘差模塊結構

ResNeXt模型借鑒了GoogLeNet模型[23]中提出的Inception多尺度處理模塊的思想對殘差模塊進行了改進,將原本的卷積結構進行分組,用稀疏結構取代密集結構,這樣可以融合不同尺度的信息,避免因提高模型性能而加大模型的規模所帶來的過擬合與大量參數計算浪費計算資源的問題。與Inception模塊不同,ResNeXt分組卷積層使用了相同結構,將原本圖3(a)中的卷積層進行分組,分解成32組,形成圖3(b)中的網絡結構,之后再融合各個組的結果。這種使用相同分組結構的卷積層使網絡設計更加的簡化,從而可以避免參數的迅速膨脹。同時ResNeXt網絡引入了表示殘差結構中卷積層的分組數量的新超參數“Cardinality”。圖3(c)所示的是分組卷積的簡易表達形式,如圖3(c)中使用的是分組數量為32個輸入輸出維度為4維的3×3卷積層。

(a) 普通模塊 (b) 分組卷積 (c) 簡易形式

2.2 SE模塊

SE(Squeeze and Excitation)模塊是一種從特征的通道維度上面考慮的注意力機制。SE模塊由兩部分組成,壓縮(Squeeze)部分和激勵(Excitation)部分,每個卷積操作實際上是在輸入的空間維度和通道維度上面進行的乘加操作。SE模塊的大體結構如圖4所示。

圖4 SE模塊結構

Squeeze部分通過一個全局平均濾波實現全局信息的獲取,如式(2)所示:

(2)

其中,uc為由輸入X經過分離卷積U=[u1,u2,…,uC]得到的特征中第c個特征圖,C為通道數;H與W是U的空間維度,Fsq(·)為壓縮操作。

s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W2z))

(3)

其中,σ為Sigmoid激活函數;δ為ReLU線性激活函數;Fex(·,W)為激勵操作;W1與W2是兩個全連接層參數。

Squeeze部分和Excitation部分進行完以后,之后進行scale操作。將SE模塊計算出來的各通道權重值S分別和原特征圖對應通道相乘,得出的結果進行輸出,如公式(4)所示:

(4)

SE block可以嵌入到目前提出的所有經典的網絡結構中,實現模型的改造。將SE模塊加入ResNeXt模型中,如圖5所示。對比原始的殘差模塊結構,加入了SE模塊新的殘差結構中為了計算每個通道權重值s,在殘差結構的后面添加了一條新路徑。在新的路徑中為了進行每個通道中的Excitation操作,在殘差模塊之后加入了全局平均池化層進行Squeeze操作,在第一個全連接層中加入降維壓縮操作,然后使用ReLU激活函數,之后再加入一個全連接層進行還原后使用Sigmoid激活函數,最后將每個通道的信息進行權重融合計算。把SE模塊加入到殘差模塊后可以更好的將一些沒有用的信息進行抑制,突出特征中信息量大和需要注意到的特征,從而提高模型最后的識別精度。

(a) 原始結構 (b) SE殘差結構

2.3 整體模型結構框架

本文使用SE-ResNeXt-50模型,即在ResNet的改進網絡模型ResNeXt上加入SE模塊。整個網絡由卷積層、池化層、殘差模塊和全連接層構成,模型結構如表1所示。

表1 SE-ResNeXt-50架構

表1展示的網絡結構中,殘差模塊采用的是32×4分組卷積結構,括號外部參數表示殘差模塊重復堆疊的數量,括號內是殘差模塊的構建參數和結構。為了適用微表情識別的任務,將原本在原始網絡架構中經過全局平均池化層輸出,全連接層輸出維度為5,將Softmax函數用于最后分類。同時為了更好地平衡精確度與復雜度之間的關系,將其中SE模塊的降維壓縮比例r值設置為16。

3 實驗及結果分析

3.1 實驗數據集

本文實驗使用CASME Ⅱ數據集[24]。CASME Ⅱ數據集是中國科學院心理研究所創建的自發式微表情數據庫。CASME Ⅱ數據集使用200 fps的高速攝像機拍攝,分辨率為280像素×340像素。該數據集收集了平均年齡在22.03歲左右亞洲人臉的微表情數據,這些表情都是在一個控制良好的實驗室環境下激發出來的。CASME Ⅱ要求26個受試者觀看基于厭惡、高興、壓抑、驚訝、悲傷、恐懼及其他這7種基本情感的短片進行情感誘發,最后得到共包括這些基本情感的255個微表情樣本,其中包括其他類型99個樣本、厭惡類型63個樣本、高興類型32個樣本、驚訝類型28個樣本、壓抑類型27個樣本、悲傷與恐懼類型分別4個和2個樣本。如表2所示,在一些3分類實驗中,會將數據集統一分為消極,積極,驚訝3種類型,其中厭惡、壓抑、悲傷、恐懼統一歸為消極樣本,高興為積極樣本,驚訝保留為原有的驚訝樣本。在進行5分類實驗中,由于悲傷和恐懼兩種類型的樣本數量過少,不能更好地訓練其中的特征,因此本實驗僅使用其余5類共249個樣本實驗。

表2 CASME Ⅱ數據集分類與數量

3.2 數據集預處理

數據集的預處理包括峰值幀的提取和人臉的對齊剪裁。微表情序列是從表情的起始幀開始,到達具有最大面部信息的峰值幀,最后在終止幀結束。峰值幀的提取使用的是Quang等[25]提出的峰值幀查找算法。該算法使用開源工具包根據面部68個特征點,定位10個微表情肌肉移動發生頻繁的區域。如圖6所示。

圖6 定位點與特征區域

為了確定序列中的峰值幀,計算當前幀與在這10個區域中的起始幀和偏移幀之間的絕對像素差。

同時將兩個差值的和除以所考慮的幀與其連續幀之間的差值進行歸一化,從而減少環境噪聲。之后可以得到微表情序列中每一幀的每像素平均值Mi,Mi如式(5)、式(6)所示:

(5)

Mi=f(framei,frameoneset)+f(framei,frameoffset)

(6)

最后遍歷計算對應幀的變化強度Mi,取值最大的一幀作為Apex幀。將峰值幀提取出之后,對峰值幀進行對齊裁剪,同樣使用開源的工具包對人臉68個關鍵特征點檢測并進行標注,最后裁剪掉沒有意義的背景部分,去掉背景的干擾信息,通過人臉對齊裁剪后使之更符合微表情識別的需求,如圖7所示。

(a) 原始峰值幀

3.3 數據增強

數據增強可以運用在深度學習的各個領域。當進行實驗時出現數據量較小的問題,可以使用數據增強來增加樣本的數量,讓模型泛化和擬合的能力得到提高,從而增加模型的性能,同時這些變化并不會影響神經網絡對特征的提取。本文使用數據增強方法包括灰度化、水平翻轉、隨機旋轉。詳細來說,灰度化就是將彩色圖片變為灰度圖片,隨機旋轉是將圖片在15°內的小角度之間隨機旋轉,水平翻轉是指將圖片翻轉為鏡像圖片。

3.4 實驗設置

為了驗證SE-ResNeXt-50模型在針對峰值幀微表情識別的有效性和適用性,本實驗在Windows10系統環境下,模型的訓練和測試均在深度學習框架PyTorch下完成神經網絡的模型搭建。實驗硬件為Intel Core i7-6700HQ,內存16 GB,顯卡型號為NVDIA GeForce GTX 960。實驗的軟件環境為Python 3.7;NVDIA CUDA框架10.1;cuDNN 7.6 庫。

實驗中各項設置如下:使用Adam方法;學習率設為0.000 1;訓練時批處理數量為2,epoch為100,訓練測試過程中損失函數為Focal Loss函數[26]。Focal Loss函數可以更好地解決圖像領域數據不平衡造成的模型性能問題。

3.5 對比實驗結果分析

本文采用留一交叉驗證法作為微表情識別的評估方法。每次用1名受試者的微表情樣本作為測試集,其余為訓練集,最后將所有的測試結果合并作為最終的實驗結果[27]。這樣有利于在小樣本的微表情中經行驗證,可以最大程度保證訓練和評估模型的客觀性不受個體影響。

通過準確率(Accuracy)和F1值作為評估模型識別效果的指標,并與其他算法的結果進行對比。準確率和F1值可以公平地客觀地評估模型在微表情識別中的表現。

準確率如式(7)所示:

(7)

其中,N為樣本的總數量;T為樣本中預測正確的數量。

F1值使用的是未加權F1值。未加權F1值在多分類評估中是一個很好的評判標準,它不會受類別數量所影響,對于每個類別都平等對待。F1值如式(8)所示:

(8)

其中,TPk、FPk、FNk分別為類別k中真正、假正和假負的數量,對K個類別的比值求平均得到未加權F1值。

使用本文提出的網絡結構SE-ResNeXt-50模型,在CASME Ⅱ數據集中得到的峰值幀上進行5分類實驗。得到的準確率與未加權F1值如表3所示,對比其他幾種微表情識別的算法在CASME II數據集上進行5分類實驗的實驗結果,可以發現本文提出的網絡結構實驗結果要優于其他現有方法。

表3 結果比較

本文模型基于改進的殘差網絡并將注意力機制運用到改進的殘差網絡中,使用含有更多面部信息的峰值幀。將峰值幀的特征賦以不同權重,突出重要信息,抑制無用信息,同時由于ResNeXt-50本身的特性,由稀疏結構代替密集結構,避免了大量參數計算的問題,更好地融合不同尺度的信息。使用Focal Loss函數作為損失函數,將較難分類的樣本較大的權重,使得模型在面對較難的樣本時,可以更好地對較難樣本的特征進行提取,從而在進行類似于微表情分類這種數據集較少且分布不平衡的訓練任務時,降低因數據集的問題帶來的影響。由表3可以看出,在5分類實驗中,各個方法的準確率都是相對較低,說明微表情本身細微的表情變化和微表情數據集數據的不平衡給識別工作帶來了一定的影響,并且未加權F1值也同樣處于較低的水平,說明現有的微表情識別方法在不同類別上的表現差異相對較大。使用本文提出的方法,準確率達到了0.592 6,未加權F1值也達到了0.585 3,在所有展示方法中實驗效果最好,同時也說明本文方法改善了在不同類別上的表現差異較大的問題。實驗結果說明本文提出的微表情識別方法具有較好的效果,對于樣本數據較少的問題也有著良好的擬合效果,數據不平衡問題也在一定程度上得到了解決。

3.6 消融實驗結果分析

3.6.1 驗證SE-ResNeXt-50的有效性

為了進一步驗證SE模塊與改進的殘差網絡ResNeXt-50在實驗中的性能與有效性,在數據集上進行消融實驗。這里進行3組實驗,分別是不使用SE模塊只使用初始的ResNet-50進行時實驗;不使用SE模塊只使用改進的殘差網絡ResNeXt-50進行實驗;使用本文提出的同時使用SE模塊和改進的殘差網絡SE-ResNeXt-50進行實驗。

不同方法在CASME Ⅱ數據集上的精確度與未加權F1值實驗結果對比如圖8所示。由圖8中的信息可以知道,使用SE模塊和改進的殘差網絡SE-ResNeXt-50進行實驗比不使用SE模塊只使用初始的ResNet-50進行實驗準確率提升0.111 2;比不使用SE模塊只使用改進的殘差網絡ResNeXt-50進行實驗的準確率提升了0.037 0。對于未加權F1值,本文提出的方法較另外兩種方法分別提升了0.079 4和0.125 4。實驗結果表明同時使用改進的殘差網絡和SE模塊要比單獨使用或者不使用的準確率與F1的實驗結果要有所提升。通過使用改進的殘差網絡可以較好地提高微表情識別的性能與精度。此外由于SE模塊的加入,模型可以更好地學習峰值幀的中的關鍵信息,進一步地提高模型的識別準確度。改進的殘差網絡SE-ResNeXt-50通過將SE模塊與ResNeXt-50相結合,用分組卷積的方式可以在不明顯增加參數的情況下提升準確率,進而使網絡結構也更加的簡單,進一步利用注意力機制關注更有用更需要學習的信息,使得準確率得到提升,通過實驗驗證了其有效性。

圖8 不同網絡結構對比

3.6.2 驗證峰值幀的有效性

為了進一步驗證峰值幀在實驗中的性能與有效性,在數據集上進行消融實驗。進行兩組實驗,分別是使用峰值幀對網絡進行訓練和不使用峰值幀對網絡進行訓練,其中非峰值幀的選取方式為初始幀到峰值幀中間的一幀。對于不使用峰值幀的實驗,也使用上一節實驗所使用的實驗方式,進行3組對比實驗,即不使用SE模塊只使用初始的ResNet-50進行時實驗;不使用SE模塊只使用改進的殘差網絡ResNeXt-50進行實驗;使用本文提出的同時使用SE模塊和改進的殘差網絡SE-ResNeXt-50進行實驗。通過不同的組合實驗,綜合多種原因對比峰值幀的有效性,使實驗的結果更加客觀。

如表4所示,展示了是否使用峰值幀的實驗結果對比。從表中可以看出使用峰值幀的實驗結果要好于未使用峰值幀的實驗結果。使用本文提出的方法,采用峰值幀的準確率與F1值比不采用峰值幀分別提升了0.071與0.084。使用ResNet-50與ResNeXt-50的方法,采用峰值幀的準確率與F1值比不采用峰值幀也有所提升。實驗結果證實了峰值幀可以提升微表情識別的準確率與F1值,對于微表情識別具有一定的有效性。使用峰值幀的實驗結果提升主要是因為峰值幀包含了更多微表情識別所需要的關鍵表情信息,相對于其余幀這些信息更加的緊湊。同時峰值幀的無用信息也更少,可以減少無用信息對于識別的干擾,進一步幫助模型更好地學習與挖掘到識別時所需要的更深層次的信息。

表4 使用峰值幀結果比較

4 結論與展望

4.1 結論

本文提出了一種基于改進的殘差網絡與峰值幀的微表情識別算法。在微表情數據集CASME Ⅱ上進行了仿真實驗,根據相同評價指標對比各類微表情識別方法,可以發現改進的殘差網絡與峰值幀的微表情識別的準確率達到0.592 6,未加權F1值達到了0.585 3。進一步進行消融實驗,在不同的方法中也可以發現同時使用改進的殘差網絡與峰值幀相較于不使用的方法提高了準確率與F1值。改進的殘差網絡與峰值幀可以降低數據集較少所帶來的影響,數據不平衡問題在一定程度上得到了解決,模型有著良好的擬合效果,同時改善了在不同類別上的表現差異較大的問題,提升了微表情的識別準確率,對于微表情有著更好的識別性能。

4.2 展望

本文針對微表情識別提出了一種深度學習的方法,首先提取微表情CASME Ⅱ數據集的峰值幀;對峰值幀預處理后,使用改進的殘差網絡ResNeXt-50,同時加入SE模塊形成SE-ResNeXt-50模型,用于微表情識別。ResNeXt網絡通過分組卷積的方式用稀疏結構取代密集結構從而使結構更加簡化,融合不同尺度的信息,減少參數數量,提升了識別準確率;SE模塊可以更好地增強有用的特征,在更好地利用這些特征時,抑制一些無用的特征,進一步提升模型的性能;使用Focal Loss函數可以更好地解決圖像領域因數據不平衡而引起的模型性能問題。由于現有的微表情數據集的樣本數量太少,網絡無法學習到更多的信息,所以識別的效果仍有較大的提升空間。后續計劃收集更多的年齡、種族跨度更大的微表情數據,優化提升模型的性能與魯棒性,建立端到端的實用型微表情識別系統,提高其實用價值。

猜你喜歡
殘差峰值準確率
“四單”聯動打造適齡兒童隊前教育峰值體驗
基于雙向GRU與殘差擬合的車輛跟馳建模
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
基于殘差學習的自適應無人機目標跟蹤算法
基于遞歸殘差網絡的圖像超分辨率重建
高速公路車牌識別標識站準確率驗證法
寬占空比峰值電流型準PWM/PFM混合控制
基于峰值反饋的電流型PFM控制方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合