?

基于LBP和注意力機制的改進VGG網絡的人臉表情識別方法

2024-01-29 00:31張中華楊慧炯
軟件工程 2024年1期
關鍵詞:注意力機制

張中華 楊慧炯

關鍵詞:面部表情識別;局部二值模式;注意力機制

0 引言(Introduction)

面部表情是判斷人類情感和人機交互效果的重要依據,早在20世紀,EKMAN等[1]系統地將面部表情劃分為生氣、害怕、厭惡、開心、悲傷、驚訝六類,這一理論的提出在表情識別領域具有跨時代的意義,同時開啟了表情識別領域新世界的大門。

目前,表情識別的方法有傳統算法和深度學習算法兩大類。常見的傳統表情識別算法有局部二值模式(LBP)[2]、Gabor小波變化法[3]和尺度不變特征變換[4-5]等。深度學習算法主要是利用神經網絡模型實現自動特征提取和面部表情分類。常見的網絡模型有卷積神經網絡、深度置信網絡和堆疊式自動編碼器等[6]。

上述算法雖然在當時取得了良好的效果,但是存在一些問題,例如提取的特征單一化、模型參數過大、訓練時間過長及識別精確度低等。為了避免追求高準確率而不斷增加網絡模型深度或不斷對面部表情數據集進行擴充而將問題復雜化,本文不再對實驗數據集樣本進行擴充,而是對VGG網絡模型進行改建,創建NEW-VGG模型,以此加快模型的訓練速度,通過傳統算法與深度學習算法相結合的方法,將LBP算法與NEWVGG模型進行融合,并對兩種具有代表性的數據集CK+和Fer2013進行驗證,本文所提方法不僅降低了樣本的訓練時間,還提高了表情識別的準確率。

1 基于LBP和注意力機制的改進VGG 模型(Improved VGG model based on LBP andattention mechanism)

本文首先對原始數據集進行圖片歸一化處理,以消除原始數據集中與表情識別無關的干擾因素;其次使用LBP算法對已處理數據集圖片的紋理特征進行提取,同時對VGG網絡模型進行改建,創建了新的神經網絡模型NEW-VGG,并將LBP紋理特征與NEW-VGG網絡進行級聯;最后通過Softmax分類器對面部表情進行分類。本文表情識別總體流程圖如圖1所示。

1.1LBP特征提取

LBP是一種用來描述圖像局部紋理特征的算子,與SIFT(Scale-Invariant Feature Transform)和HOG(Histogram ofOriented Gradient)算法的作用類似,都可以對圖片的局部紋理特征進行提取,對于原始的LBP算法來說,其最大的缺點在于它只能覆蓋一個固定的小區域,這并不能滿足不同尺寸和不同頻率紋理的需求。繼原始LBP算法之后又出現了許多改進的LBP算法,例如LBP等價模式、多尺度LBP(Multiscale BlockLBP)和CS-LBP(Center-Symmetric LBP)等,本文通過比較后決定采用CircularLBP算法,因為其具有旋轉不變性、灰度不變性及光照變化不敏感等顯著的優點。利用LBP算法對歸一化的數據集進行紋理特征的提取,通過多次實驗,對比LBP(R=1,P=8)、LBP(R=3,P=8)和LBP(R=1,P=6)不同參數下表情識別的效果,最終采用半徑R=1和采樣點P=6時的最佳結果。不同參數下的特征提取效果圖如圖2所示。

1.2 改進后的VGG網絡

為快速、準確地對面部表情實現分類,需要對VGG-16模型進行一定的改進,改進后的模型NEW-VGG如圖3所示。眾所周知,在VGG-16網絡模型中,第一個全連接層FC1有4 096個節點,上一層POOL2有7×7×512=25 088個節點,則該傳輸需要4 096×25 088個權值,需要消耗很大的內存。LIN等[7]設計了一個維度自適應全局平均池化(GlobalAverage Pooling,GAP)層取代傳統CNN中的全連接層,用于融合學習到的深度特征。借鑒LIN等[7]提出的方法,在NEWVGG模型中利用自適應全局平均池化層(GAP)取代傳統VGG-16中的全連接層,解決全連接層容易造成的過擬合、參數超多及模型臃腫等問題,極大地降低了模型的訓練速度。此外,在VGG-16模型的第一層卷積層后和全局平均池化層前加入注意力機制模塊,可以使模型更多地關注面部表情中一些重要的特征。在本文模型的每個卷積層之后還添加了BN 層、ReLU激活函數和2×2最大池化層。BN層和ReLU 激活函數可以使卷積層線性輸出的數據以非線性化的形式來表達,避免梯度爆炸和彌漫的問題。Softmax層則是進行表情圖片的輸出分類。

1.3 注意力機制模塊

在NEW-VGG網絡中,為了達到快速準確的分類效果,采用增加不同區域特征的關注程度,加入注意力模塊的方法,即引入注意力機制,這已經被證明在像素級計算機視覺任務中能取得不錯的效果,可以使模型更多地關注面部表情一些重要的特征。

本文所提注意力機制模塊采用混合注意力機制(CBAM)[8],CBAM模塊會沿著通道和空間兩個維度依次獲取注意力特征圖,然后將注意力特征圖與輸入特征圖相乘,對特征進行自適應修飾。相較于只具有通道注意力機制的SENet[9]來說,CBAM 模塊可以取得更好的效果。同時,CBAM模塊還是輕量級的,在保證網絡模型速度穩定的情況下,還可以提高對面部表情的識別率?;旌献⒁饬C制(CBAM)網絡框架圖如圖4所示。

對于本文來說,LBP提取的紋理特征經過一次卷積后得到在空間維度上的特征圖F 會分別沿著全局最大池化層(Maxpool)和全局平均池化層(Avgpool)兩個方向進行壓縮得到空間描述特征Fcmax 和Fcavg,從而提高特征圖F經過通道注意力模塊的計算效率;空間描述特征Fcmax 和Fcavg 會經過一個共享網絡MLP,將兩個特征相加后經公式(1)得到通道注意力權重系數Wc(F)。

其中:σ 為sigmoid操作,通過公式(2)將通道注意力權重系數Wc(F)乘以輸入特征圖F生成通道注意力特征圖F1,通道注意力模塊網絡框架如圖5所示。

空間注意力模塊的使用是對通道注意力模塊的補充,其模塊內部操作和通道注意力模塊類似。首先將通道注意力機制模塊得到的特征圖F1作為其輸入特征圖。其次輸入特征圖F1經過最大池化層(Maxpool)和平均池化層(Avgpool)在通道維度上聚合信息,得到特征描述符Fsmax 和Fsavg,將特征描述符Fsmax 和Fsavg 橫向拼接后傳入一個7×7的卷積核中進行卷積操作;通過公式(3)得到空間注意力權重系數Ws(F)。

其中:σ 為sigmoid操作,通過公式(4)將空間注意力權重系數Ws(F)乘以輸入特征圖F1生成空間注意力特征圖F2,這樣就可以使輸入的特征圖變成更為精細的特征圖,從而進一步增強NEW-VGG網絡的魯棒性??臻g注意力模塊網絡框架如圖6所示。

2 實驗(Experimental)

2.1 實驗條件

本文實驗的開發環境是基于Python語言的PyTorch框架,實驗軟硬件平臺為64位Linux操作系統、CPU 為第三代Intel Xeon Gold系列,主頻為2.2 GHz,內存為32 GB,GPU型號為NVIDIA RTX A4000,顯存是16 GB。本文選取了兩種著名的人臉表情數據集CK+數據集、Fer2013數據集。兩種數據集在樣本數量、參與者的種族和參與者的年齡上具有較大差異,甚至數據集中還有些圖片并不是關于人臉表情的。本文選取這兩種數據集可以確保網絡模型的可靠性。本文實驗方法采用消融實驗法,探索全局平均池化層和注意力模塊對VGG-16網絡的影響。本文驗證方法采用10倍交叉驗證法,將預處理好的CK+和Fer2013數據集分為10份進行實驗以測試算法的準確性,其中9份作為訓練數據,1份作為測試數據。

由于CK+和Fer2013兩種實驗數據集樣本數量存在較大差異,本文對兩種數據集設置了不同的網絡模型參數(表1)。

2.2 實驗結果和分析

為了驗證本文改進方法的正確性,對其進行消融實驗,并在CK+數據集上做多次測試,選取平均識別率作為最終的測試結果(表2)。由表2中的數據可知,融合了注意力機制且用平均池化層替代全連接層的NEW-VGG模型,比基準模型的識別準確率高。同時還發現NEW-VGG在CK+數據集上訓練迭代一次的平均時間為0.1 s,而基準模型訓練迭代一次的平均時間為0.2 s,對比后發現NEW-VGG模型訓練速度更快,LBP和NEW-VGG融合后的識別率進一步提高,達到較好的識別效果。

本文比較了本文所提方法和文獻[10][該文獻主要探究準映射網絡(AMN)在Fer2013數據集的性能表現]、文獻[11][該文獻本文首先綜述了目前最流行和最先進的降維方法,然后提出了一種新的、更有效的流形學習方法—軟局部保持映射(SLPM)并探究其在CK+和Fer2013數據集上的表現]、文獻[12](該文獻為了進行分類,使用了基于樣本和原型分布的庫爾巴克判別法的方法)、文獻[13][該文獻首先使用卷積神經網絡(CNN)從VGG_Faces中學習面部特征,然后將其鏈接到長短期記憶網絡,以利用視頻幀之間的時間關系,報告了CK+面部表情數據集中的競爭結果]、文獻[14][該文獻提出了一種面部姿勢生成對抗網絡(FaPE-GAN),用于合成新的面部表情圖像以增強數據集并應用于訓練目的,然后學習基于LightCNN的Fa-Net模型進行表情分類]在CK+和Fer2013數據集上的準確度(表3、表4),表3和表4的結果表明,本文所提方法的識別率明顯高于其他方法。

本文通過繪制混淆矩陣探究每個表情在不同數據集上的識別效果。CK+混淆矩陣中對開心、驚訝和蔑視3種表情的識別率最高,因為人們在做出這3種表情時,其面部顯露特點比較明顯,不易與其他表情混淆;然而,生氣、憎惡、恐懼和悲傷4種表情的識別率相對較低,這是因為人在消極的情況下表露的表情的特點較為相似,這也給網絡模型區分這些表情帶來了一定的困難。本文所提方法在CK+數據集和Fer2013數據集上的混淆矩陣分別見表5和表6。Fer2013數據集上的混淆矩陣中只有開心和驚訝2種表情的識別率最高,其他5種表情的識別率較低。主要原因在于Fer2013數據集標簽本身存在錯誤且受干擾因素也比較多,這也說明了原始數據集樣本在實驗過程中的重要性。

3 結論(Conclusion)

本文提出了一種融合LBP特征和注意力機制的面部表情識別方法,通過對VGG-16網絡進行改進,創建出了NEWVGG模型,并通過消融實驗驗證了全局平均池化層和注意力機制對VGG-16網絡模型在速度、精度提升上的正確性。將LBP算法和NEW-VGG模型進行融合,并對CK+和Fer2013兩種著名人臉表情數據集進行實驗,實驗結果表明,該模型在CK+和Fer2013數據集上分別取得了97.98%和76.75%的準確率,經與其他文獻識別率對比可以發現,本文方法明顯高于文獻[10]至文獻[14]的表情識別方法。但是,從實驗中繪制的數據集混淆矩陣可以發現,本文所提方法針對生氣、恐懼和悲傷表情的識別效果不盡如人意。在接下來的工作中,應考慮進一步探索用更好的深度學習方法增強網絡,通過增強數據特征的提取,以便更加快速、準確地區分易混淆的面部表情。

猜你喜歡
注意力機制
基于注意力機制的行人軌跡預測生成模型
基于注意力機制和BGRU網絡的文本情感分析方法研究
多特征融合的中文實體關系抽取研究
基于序列到序列模型的文本到信息框生成的研究
基于深度學習的手分割算法研究
從餐館評論中提取方面術語
面向短文本的網絡輿情話題
基于自注意力與動態路由的文本建模方法
基于深度學習的問題回答技術研究
基于LSTM?Attention神經網絡的文本特征提取方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合