一、前言
人臉表情識別旨在利用圖像處理和數據分析等技術,通過人臉信息描述人的真實情感。以往人們使用VoVNet網絡[1]、ECA注意力機制[2-3]、DenseNet網絡[4],基于卷積塊注意力模塊(CBAM)、SwinTransformer主干網絡[5]、注意力機制等方法有效提高了人臉表情識別的準確率,但是目前仍然難以有效識別模糊圖像中的表情。本文提出了一個雙階段的人臉識別方法,首先利用人臉關鍵點信息檢測圖像中的人臉,然后構建融合空間注意力機制[(SAM)和殘差特征提取模塊的編碼解碼網絡(RSNet)識別人臉表情。RSNet依據人臉嘴部關鍵點框定的區域圖像數據,利用融合了SAM的ResNet殘差模塊RPM進行4層信息編碼[],并在解碼階段通過跳躍連接融合多層特征信息,最終使用Softmax函數實現人臉表情分類識別。
二、本文方法
(一)處理流程
本文提出的人臉表情識別方法包括人臉檢測和表情分類兩個階段。首先,利用Dlib工具中的HOG特征提取和級聯分類器方法檢測人臉,并可視化展示人臉關鍵點信息。然后,根據關鍵點信息和圖像處理技術,獲取圖像中的嘴部區域,依據訓練的RSNet表情識別模型,判斷圖像中人臉的表情,并進行標記。處理流程如圖1所示。
(二)Dlib人臉檢測
Dlib是一個開源的機器學習庫,涵蓋了大量的機器學習算法,包括已經訓練好的人臉關鍵點檢測器等多個模型[8。圖2顯示了使用Dlib中基于HOG和級聯分類器的68點人臉關鍵點檢測方法及其訓練數據shape_predictor_68_face_landmarks實現的人臉關鍵點檢測結果。該方法能夠有效獲取人臉框架以及人臉特征點坐標,并且得到與人臉表情相關的嘴部關鍵點的序號為48點至68點,可以通過簡單的圖像切片方法獲取人臉中的嘴部區域,為后續的處理提供數據依據。
(三)RSNet表情識別模型
RSNet模型采用了編碼解碼結構,如圖2所示,旨在提高特征提取準確性的同時,降低圖像模糊對識別結果的干擾。其中,編碼部分順序使用了2個特征提取模塊RPM、1個 2 × 2 的最大值下采樣模塊、1個RPM、1個RPM提取圖像特征。解碼部分使用了2個上采樣模塊和2個 3 × 3 的傳統卷積模塊進行特征重構融合。此外,跳躍連接融合了編碼部分的淺層和解碼部分的深層特征,最后實現人臉表情的識別。
RPM特征提取模塊是在殘差模塊的Bottleneck結構基礎上,融合空間注意力機制SAM,如圖3所示。在主分支中首先經過 1 × 1 卷積后得到64通道的特征圖,然后進行 3 × 3 卷積和又一個 1 × 1 卷積,每一個卷積后均使用Relu激活函數,最后使用SAM空間注意力機制提取嘴部特征。殘差分支將輸入信息直接連接到主分支的輸出并求和,實現特征的進一步融合。
SAM空間注意力機制將輸入的特征圖依次經過全局最大值池化、全局平均值池化和進行 7 × 7 的卷積操作處理后,利用Sigmoid激活函數得到關注的特征圖,在壓縮通道大小的基礎上,學習空間維度特征,見公式(1)。示意圖如圖4所示。
三、實驗設計與驗證
(一)數據集
本文收集了典型的人臉表情數據集JAFFE、FER-2013、RAF-DB和阿里天池的開源數據集,并使用Request技術從互聯網上爬蟲獲取了一部分人臉和動物的圖像數據。篩選出40960幅 1 2 8 × 1 2 8 像素的圖像,按照8:1:1的方式劃分了訓練集、驗證集和測試集,包含無人臉、無表情、微笑、吃驚和嘟嘴五個類別。數據集中類別分布見表1。
(二)實驗環境
本文方法在GPU為RTX3090、操作系統為Ubuntu20.04的機器上進行了實驗驗證,所采用的編譯環境中python版本為3.9,Pytoch版本為2.1.0,cuda版本為11.8。訓練過程中的batchsize選擇為16,損失函數為交叉熵損失函數,優化器為SGD,epoch取值為50,學習率取值為0.01,衰減系數為
(三)評價指標
實驗過程中選用查準率(P)查全率(R)F1值(F1)和準確率(Acc)作為評價指標,計算方法見公式(2),其中,TP為正類被預測為正類的數目,FP為反類被預測為正類的數目,FN為正類被預測為反類的數目,TN為反類被預測為反類的數目。本文實現過程中采用宏計算方式,即先計算各個類別的評價指標,再將平均結果作為最終結果進行評價。
(四)實驗結果分析
1.模型訓練結果
圖5顯示了本文提出方法訓練過程中隨著迭代輪次增加,訓練集和驗證集的損失值變化情況,從圖中可以看出RSNet模型前面10個迭代輪次中的損失值波動幅度較大并且快速降低,到40輪左右趨于平穩狀態。
2.消融實驗
為了驗證人臉檢測方法,以及融合SAM空間注意力機制的RSNet在人臉表情識別任務中的有效性,基于上述數據集開展了消融實驗驗證。表2分別顯示了不使用人臉檢測、不使用SAM的方法(RNet),使用人臉檢測、不使用SAM的方法(D-RNet),不使用人臉檢測直接使用RSNet的單模型方法,以及本文提出的雙階段方法(D-RSNet)的對比實驗結果。
從表2可以看出,使用人臉檢測技術對圖像數據進行預處理,對于后續的人臉表情識別具有一定的指導意義,特別是在定位嘴部區域后,不但能夠減少數據處理量,提升數據處理效率,還能夠避免臉部其他信息對于表情識別的干擾,有助于提升整體的識別準確率。同時,本文提出的RPM特征提取模塊相比于傳統的ResNet殘差模塊,能夠更好地關注圖像中人臉嘴部的空間位置信息,學習細微表情特征,特別是過渡表情和模糊圖像中的表情細節,進而提升人臉表情識別的準確性。
3.對比實驗
本文與典型目標檢測識別網絡ResNetl8、ResNet50和YOLOv5進行了對比實驗,見表3。相比ResNetl8,D-RSNet在準確率上有明顯的提高,說明融合SAM空間注意力機制的RPM模塊能夠較好地提升表情特征提取的準確度。此外,對于表情識別,特別是對較簡單背景的圖像數據進行表情識別,深層神經網絡起到的作用并沒有比本文僅6個卷積層的效果好。可見,本文設計的雙階段方法在人臉檢測階段很好地去除了非人臉數據的干擾,在表情識別階段能夠很好利用空間位置信息提升表情詳細特征的提取,進而提升識別準確率。
四、結語
本文提出的采用DIib庫的人臉檢測模塊和融合注意力機制的編碼解碼網絡的人臉表情識別方法,能夠在檢測已標記的人臉關鍵點基礎上,利用RSNet模型有效區分無人臉、無表情、微笑、吃驚和嘟嘴五類圖像,準確率明顯優于現有的經典檢測分類網絡。后續將擴大數據集的數據量和復雜度,研究適用于解碼階段的注意力機制,進而提升方法的普適性和魯棒性。
參考文獻
[1]李嬌,王彬彬,周心荊,等.基于改進VoVNet的人臉表情識
別[J].計算機應用與軟件,2023,40(08):155-160+200.
[2]徐杰,鐘勇,王陽,等.基于上下文通道注意力機制的人臉屬性估計與表情識別[J].計算機應用,2025,45(01):253-260
[3]彭奇,劉銀華,尚云瑞.融合關鍵區域注意力機制的人臉表情識別方法[J].計算機工程,2025(03):1-10.
[4]顧狀狀,許學斌,路龍賓,等.基于DenseNet的人臉表情識別方法研究[J].計算機與數字工程,2023,51(10):2425-2430.
[5]王坤俠,余萬成,胡玉霞.嵌入混合注意力機制的SwinTransfomer人臉表情識別[J].西北大學學報(自然科學版),2024,54(02):168-176.
[6]焦陽陽,黃潤才,萬文桐,等.基于圖像融合與深度學習的人臉表情識別[J].傳感器與微系統,2024,43(03):148-151.
[7]史志博,譚志.融入注意力的殘差網絡表情識別方法[J].計算機應用與軟件,2023,40(09):222-228.
[8]張杜娟,丁莉,吳玉蓮.基于Python+Dlib方法的人臉識別技術研究[J].電子設計工程,2024,32(01):191-195.
作者單位:中國電子科學研究院
■責任編輯:張津平尚丹