于 延 劉忠旭
(哈爾濱師范大學計算機科學與信息工程學院,黑龍江 哈爾濱 150025)
人臉表情識別是計算機視覺技術(shù)中的熱點問題,在眾多領(lǐng)域得到廣泛關(guān)注。對人臉圖片的特征提取是表情識別技術(shù)中的關(guān)鍵,基于卷積神經(jīng)網(wǎng)絡(luò)的深度學習技術(shù)通過反向傳播與誤差優(yōu)化對權(quán)值進行迭代優(yōu)化,可以提取出人類預(yù)想不到的關(guān)鍵點和特征[1,2],是目前表情識別任務(wù)的主要研究方向。本研究在SCN[3]算法的基礎(chǔ)上針對其特征提取,提出了一種改進的輕量級人臉表情識別算法MSCN,降低了模型的參數(shù)量和計算量,并且模型具有輕量級特征。
實際中采集的大量人臉表情圖片存在模糊、低質(zhì)量和標注者主觀性等因素的干擾,對大規(guī)模人臉表情數(shù)據(jù)集進行標注是相當困難的。為了克服這一困難Wang K.等人提出了一個簡便且可行的算法即SCN,以抑制大規(guī)模人臉表情識別的不確定性。具體來說SCN由自注意重要性加權(quán)、排序正則化、噪聲重標記3個模塊組成。
(1)自注意重要性加權(quán)模塊在給定一批圖像的基礎(chǔ)上,首先利用ReNet18[4]提取人臉特征。然后通過全連接層和sigmoid激活函數(shù)為每個圖像分配一個重要性權(quán)重。這些權(quán)重乘以樣本重加權(quán)方案的對數(shù)。捕捉樣本對訓練過程的重要貢獻,對于確定性樣本可以產(chǎn)生很大的重要性權(quán)重,但不確定性樣本的重要性則較少。
(2)排序正則化模塊首先對學習到的每張圖片的重要性權(quán)重進行降序排序,然后按照β比例將圖片分成兩組,確保高重要性組的平均權(quán)重高于低重要性組的平均權(quán)重,同時定義了秩正則化損失函數(shù)。
(3)噪聲重標記模塊針對低重要性組中的樣本,將最大預(yù)測概率與給定標簽的概率進行大小比較。假設(shè)最大預(yù)測概率大于給定標簽的預(yù)測概率,那么就為樣本分配一個新的標簽,否則不變。
MobileNetV2是由谷歌公司所開發(fā)的輕量級神經(jīng)網(wǎng)絡(luò),它相較于MobileNetV1[5]版本,模型的參數(shù)量減少了20%,然而精度卻超越了MobileNetV1,其主要創(chuàng)新包括:
(1)采用了深度可分離卷積取代普通卷積,減少了模型的計算量和參數(shù)量。
(2)提出利用反向殘差結(jié)構(gòu)增強網(wǎng)絡(luò)層數(shù)加深和對特征的表達能力。
(3)通過線性瓶頸結(jié)構(gòu)以減少對低維特征信息的損失。
注意力機制可以用來加強模型注意重點信息和位置,現(xiàn)已經(jīng)被普遍應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)中以提高模型的性能。但是在網(wǎng)絡(luò)大小被嚴格控制的輕量級網(wǎng)絡(luò)中,對注意力機制的使用還是滯后的,因為大多數(shù)注意力機制的計算量開銷是輕量級網(wǎng)絡(luò)所承受不起的。考慮到輕量級神經(jīng)網(wǎng)絡(luò)有限的計算能力,Qibin Hou 等人提供了一個專門針對輕量級網(wǎng)絡(luò)而開發(fā)的注意力機制CA(coordinate attention,CA),該機制將位置信息內(nèi)嵌入到了通道注意力中,能夠通過將其嵌入到卷積神經(jīng)網(wǎng)絡(luò)模塊中實現(xiàn)端到端的訓練,并且只需要少許的計算量。其基本功能設(shè)計如圖3 中展示,每一個CA 模塊都可被認為是一個計算模塊,用以提升模型對信息的表達能力。CA利用精確的位置信息對通道關(guān)系的長期依賴性進行了編碼,具體操作包括協(xié)調(diào)信息嵌入和協(xié)調(diào)注意生成2個階段。深度可分離卷積其原理如圖1所示。
圖1 深度可分離卷積原理圖
本研究以搭建低消耗、高精度同時具有大規(guī)模數(shù)據(jù)集中人臉表情識別不確定性抑制的表情識別算法為目標,提出了一種輕量級的MSCN 人臉表情識別算法。以MobileNetV2為基礎(chǔ)進行特征提取網(wǎng)絡(luò)的改進。調(diào)整原始MobileNetV2網(wǎng)絡(luò)層結(jié)構(gòu),在模型中嵌入CA 注意力機制來增強模型對重要特征的學習;通過增大深度可分離卷積中深度卷積(DW)卷積核為5×5 的方式增大卷積特征感受野;采用一個14×14的全局逐深度卷積(GDConv)代替MobileNetV2中的全局平均池化層,減少特征信息丟失;通過調(diào)整MobileNetV2 的通道因子α,在準確率可承受的范圍內(nèi),進一步減小模型的參數(shù)量和計算量;改進后的網(wǎng)絡(luò)結(jié)構(gòu)如表1以及圖2所示。
表1 改進后的特征提取網(wǎng)絡(luò)結(jié)構(gòu)表
圖2 改進后的特征提取網(wǎng)絡(luò)結(jié)構(gòu)圖
表1 中,t、c、n 和s 分別是MobileNetV2 中瓶頸結(jié)構(gòu)進行升維的通道擴增系數(shù)、輸出特征矩陣深度、bottleneck的循環(huán)次數(shù)和卷積核的步距。表中每個bottleneck模塊如圖3所示。
余三進野村谷是重陽節(jié)前后,氣候已值深秋,白龍山萬山紅遍,層林皆染。而山谷與山上唱反調(diào),滿谷盡帶黃金甲。密匝匝的銀杏樹林蔭道上,飄落的銀杏葉鋪成一條黃金地毯,鋪向山谷縱深地帶。明黃的、暗黃的、深黃的、淺黃的,細辨又有金黃、谷黃、橙黃、鵝黃……之不同。黃得恣意放肆的銀杏葉,在穿林陽光照射下,折射出精靈古怪的色澤,炫耀成令人迷醉的黃金世界幻象。
圖3 改進后的網(wǎng)絡(luò)bottleneck模塊圖
在人臉圖片的特征提取中,一張圖片不同像素點所提取的表情特征對表情分類的貢獻是不同的,圖像中眼睛或嘴角處的權(quán)重自然要比邊緣出的作用大,使用全局平均池化將權(quán)重平均會降低模型性能,所以采用一個14×14的全局逐深度卷(GDConv)積代替全局平均池化層以實現(xiàn)提取特征圖中不同位置具有不同重要程度的特征,使網(wǎng)絡(luò)提取到的特征具有高度泛化性和全局性。全局逐深度卷積由MobileFaceNet[6]所提出,一個GDConv 層就是一個逐深度卷積。其kernel 大小等于輸入的size,pad=0,stride=1。全局逐深度卷積層的輸出如式1:
這里F是輸入的特征矩陣,其大小為W×H×M;K是逐深度卷積核,其大小為W×H×M;G 是輸出,其大小為1×1×M。其中在G的第m個通道上只有一個元素Gm。(i,j)表示F和K中的空間位置,m表示通道的索引。整個MSCN表情識別算法結(jié)構(gòu)如圖4所示。
圖4 MSCN表情識別算法結(jié)構(gòu)
圖5 數(shù)據(jù)集實例圖片
圖6 ResNet18特征可視化
本研究所作實驗在一臺中央處理器為11th Gen Intel(R)Core(TM)i5-11400H@2.70GHz 2.69 GHz,內(nèi)存16GB,GPU為RTX3050 的計算機,操作系統(tǒng)為64 位Windows 11 家庭中文版,編程環(huán)境為Python3.10 深度學習框架為Pytorch。編譯器為Pycharm 通過python 編程語言實現(xiàn)。訓練總輪數(shù)epoch 設(shè)置為30,訓練中的bitch size 設(shè)置為24。學習率設(shè)置為0.1。
RAF-DB為真實場景的人臉表情標準數(shù)據(jù)集,該數(shù)據(jù)集包含7 類基本情緒(驚訝、恐懼、厭惡、快樂、悲傷、憤怒、中立);在本實驗中使用了這7 類基本情緒共15339 張圖像,包括訓練集12271張圖像和測試集3068張圖像。
FERPlus是從FER2013中拓展而來的人臉表情標準數(shù)據(jù)集,它由3589 張驗證圖片,3589 張測試圖片和28709 張訓練圖片組成,它增加了輕蔑表情,因此該數(shù)據(jù)集有8個類別。圖4 為數(shù)據(jù)集樣本圖像展示,第一行是RAF-DB 數(shù)據(jù)集樣本圖像,第二行為FERPlus數(shù)據(jù)集樣本圖像。
為了研究各項改進對模型性能提升的幫助以及計算量和參數(shù)量的變化,將改進后的算法在RAF-DB數(shù)據(jù)集上進行消融實驗。在不加預(yù)訓練的情況下記錄模型在測試集top1準確率。消融實驗包括改變MobileNetV2的寬度因子模塊、是否嵌入CA 注意力機制的瓶頸模塊、是否用全局逐深度卷積(GDConv)代替全局平均池化層模塊和是否改變DW卷積核的大小為5×5模塊。消融實驗結(jié)果如表2所示。
表2 消融實驗結(jié)果
實驗分別以寬度因子為0.5的情況下對3種因素進行消融對比實驗。由表中結(jié)果可以看出寬度因子為0.5的本研究算法的精度、參數(shù)量和計算量分別為79.46%、177904 和90.18MFlops。相較于寬度因子為1 時,精度降低了1.19%,參數(shù)量減少了302308,計算量減少了134.98MFlops。表明本研究算法對降低模型的參數(shù)量計算量效果明顯。
4.3.1 與SCN對比實驗
為了研究本文所提出的MSCN 算法在參數(shù)量、計算量和精度上的優(yōu)勢,將MSCN 與SCN 在數(shù)據(jù)集RAF-DB 和FERPlus 上進行對比實驗,模型在沒有預(yù)訓練的情況下實驗結(jié)果如表3所示。
表3 改進后的算法與SCN對比實驗表
相較于SCN,改進后的算法在RAF-DB 和FERPlus 精度分別提高了7.81%和5.37%,參數(shù)量和計算量分別減少了11511608 和1731.21 MFlops,分別是原模型的1.52%和4.95%,參數(shù)量計算量得到了大幅縮減。
4.3.2 不確定性抑制評估
為了驗證改進后的MSCN仍具有表情標簽不確定性抑制的特點,對RAF-DB和FERPLus數(shù)據(jù)集各個類別的標簽隨機選取10%、20%和30%比例將其隨機更改為其他類別,將改進后的算法與原SCN進行對比實驗,結(jié)果如表4所示。
表4 不確定性對比實驗表
由表4 改進后的MSCN 算法較原SCN 算法在帶有10%、20%和30%不同比例的噪聲標簽下,在RADF-DB上精度分別提升了8.05%、6.11%、7.12%,在FERPlus 上精度分別提升了4.27%、3.9%、3.13%。證明MSCN表情識別算法具備對人臉表情數(shù)據(jù)集大規(guī)模不確定性的抑制效果及魯棒性。
4.3.3 特征可視化分析
為了研究本文所提出MSCN算法對圖像特征提取的程度和關(guān)鍵信息捕捉的能力,分別將改進的特診提取模型與SCN算法中ResNet18網(wǎng)絡(luò)模型所提取的淺層、中層、深層的特征圖做特征可視化。證明改進的模型擁有更好的表征能力。如圖所示,圖中用于測試的人臉圖像來自數(shù)據(jù)集RAF-DB。
圖中第一列是測試原圖,第一行是來自模型淺層的特征提取可視化,結(jié)果表明改進后的模型提取的表情紋理特征更加細致清晰,第二行是來自模型中層的特征提取可視化,結(jié)果表明CA注意力機制對表情眼關(guān)鍵位置的著重定位。第三行是來自模型深層的特征提取可視化,改進后的模型對圖片語義信息的把控更加注重。
4.3.4 計算量參數(shù)量對比實驗
為了證明該研究算法在保證高識別準確率的同時模型輕量化的優(yōu)勢,與經(jīng)典網(wǎng)絡(luò)模型AlexNet[7]、VGG16[8]以及其他輕量級網(wǎng)絡(luò)Shufflenet[9]、EfficientNet[10]、MobileFaceNet 在RAF-DB數(shù)據(jù)集上進行對比實驗結(jié)果如表5中給出。可以看出,本研究算法的參數(shù)量和計算量不僅低于其他輕量級網(wǎng)絡(luò),精度也高于其他網(wǎng)絡(luò)模型。
表5 不同模型在RAF-DB上的性能對比表
本文基于MobileNetV2 中的深度可分離卷積,優(yōu)化網(wǎng)絡(luò)層結(jié)構(gòu),在瓶頸模塊中引入CA混合注意力機制,并使用了全局逐深度卷積(GDConv)代替全局平均池化層,增大深度可分離卷積中深度卷積核大小,調(diào)整MobileNetV2 的寬度因子,構(gòu)建出改進的MobileNetV2來做SCN表情識別的特征提取網(wǎng)絡(luò)。RAF-DB和FERPlus數(shù)據(jù)集上的實驗結(jié)果驗證了所提方法的可行性和優(yōu)越性。在沒有預(yù)訓練的前提下所提方法在識別上的正確率為79.46%和81.65%高于原SCN 算法,且參數(shù)量和計算量僅為177904 和90.18 MFlops 得到了大幅度降低,對比其他方法具有明顯優(yōu)勢。