郝秉華,吳 華
(內(nèi)蒙古財經(jīng)大學(xué) 計算機信息管理學(xué)院, 呼和浩特 100010)
隨著科技迅速發(fā)展,基于人工智能(artificial intelligence,AI)技術(shù)的目標(biāo)識別算法不斷更新,其中,面部表情識別技術(shù)作為人機交互的重要組成部分,已被廣泛應(yīng)用到生物識別、臨床檢測、課堂檢測等領(lǐng)域[1]。但面部表情比正常的目標(biāo)識別更復(fù)雜,需要更細(xì)粒度的特征學(xué)習(xí)能力來保證識別精度,導(dǎo)致現(xiàn)存的AI識別算法難以取得預(yù)期效果。因此,實現(xiàn)基于AI算法的面部表情穩(wěn)定識別仍是一個充滿挑戰(zhàn)的任務(wù)。
目前,面部表情識別算法主要分為基于傳統(tǒng)的識別方法和基于AI技術(shù)的深度學(xué)習(xí)算法。傳統(tǒng)方法包括特征提取及特征分類兩方面[2],主流算法有主成分分析(principal component analysis,PCA)、局部二值(local binary pattern,LBP)特征、光流法、幾何法等。例如,錢勇生等[3]提出結(jié)合LGRP(local gabor rank pattern,LGRP)與多特征融合方法識別面部表情,該方法首先提取輸入圖像的Gabor多方向與多尺度特征,然后引入Otsu閾值及Hear小波分割法進一步提取表情特征,最后進行分類并輸出結(jié)果;Bougourzi等[4]提出基于融合變換深淺特征的面部表情識別算法,通過將PCA變換后的深層與手工特征結(jié)合,實現(xiàn)對靜態(tài)圖像中6個基本面部表情的識別;胡敏等[5]提出一種基于幾何和紋理特征的表情層級分類方法,利用表情特征自身分布規(guī)律對其進行識別判定。雖然傳統(tǒng)方法可識別基本的面部表情,但大多忽略了對圖像的預(yù)處理操作,導(dǎo)致識別錯誤率較高且耗時長[6]。
隨著人工智能技術(shù)的不斷更新,大量學(xué)者提出基于深度學(xué)習(xí)的面部表情識別算法,主要流程包括圖像預(yù)處理、特征提取及表情結(jié)果分類等階段。Rajan等[7]提出基于最大增強卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)和長短記憶網(wǎng)絡(luò)(long short-term memory,LSTM)的人臉表情識別網(wǎng)絡(luò),首先對輸入圖像進行預(yù)處理,消除照明差異、保留細(xì)微特征,后使用卷積神經(jīng)網(wǎng)絡(luò)提取特征,最后將特征圖與LSTM層結(jié)合并輸出結(jié)果。楊鼎康等[8]提出集成網(wǎng)絡(luò)模型,使用多種網(wǎng)絡(luò)獲得不同語義的特征并將其融合,提高模型學(xué)習(xí)能力,同時使用對抗網(wǎng)絡(luò)生成特定表情圖像,以平衡數(shù)據(jù)分布。宋玉琴等[9]提出嵌入注意力機制和多尺度的表情識別算法,通過疊加不同尺寸的卷積提取多尺度特征,利用空間通道注意力機制提高特征表達(dá)能力,有效提升識別算法的準(zhǔn)確率。雖然上述研究方法大多都能夠提取表情特征,但針對表情細(xì)微特征的區(qū)分能力仍然較差,導(dǎo)致對相似表情特征之間的識別精度不穩(wěn)定。
針對上述問題,本文中提出一種多流交互殘差結(jié)合改進SVM模型的面部表情識別算法。首先,為防止輸入圖像信息缺失導(dǎo)致算法識別率低,提出一種自適應(yīng)多流信息增強模塊(adaptive multi-stream information enhancement module,AM-SIEM)預(yù)處理輸入圖像,并增強面部表情特征,降低網(wǎng)絡(luò)參數(shù);其次,在特征提取階段提出殘差交互融合模塊(residual interactive fusion module,RIFM),進一步從多流信息中提取面部表情特征,突出關(guān)鍵識別信息;最后,使用改進支持向量機方法來分類面部表情,進一步提高算法的準(zhǔn)確度及魯棒性。
深度學(xué)習(xí)網(wǎng)絡(luò)的特征提取能力與精度會隨著網(wǎng)絡(luò)加深而提高,然而當(dāng)層級達(dá)到一定程度時,訓(xùn)練與測試精度會迅速下滑,導(dǎo)致網(wǎng)絡(luò)性能下降[10]。為此,He等[11]提出一種殘差網(wǎng)絡(luò)ResNets(residual networks),將殘差連接應(yīng)用于深度網(wǎng)絡(luò)時,可良好地改善訓(xùn)練過程中因梯度消失而導(dǎo)致的網(wǎng)絡(luò)性能下降問題。如圖1所示,將輸入直接添加到輸出中,使高層專注于殘差部分學(xué)習(xí),避免低層特征丟失導(dǎo)致模型退化。輸出如式(1)所示。
Y=F(X)+X
(1)
式中:X、Y分別為輸入、輸出;F(·)為網(wǎng)絡(luò)內(nèi)部處理結(jié)果。
圖1 殘差網(wǎng)絡(luò)模型
支持向量機(SVM)是一種用于分類和回歸的模型,其主要原理為求解如式(2)所示的凸二次規(guī)劃問題[12]。
(2)
式中:αi與αj分別為第i和j個樣本的拉格朗日因子;C為懲罰參數(shù);x、y為樣本與類別的向量值;K(xi,xj)為核函數(shù)。由式(2)得到最優(yōu)解α*,再進一步由式(3)得到位移項b*。
(3)
最終,對于采用高斯核函數(shù)的支持向量機分類決策函數(shù)如式(4)所示,其中x代表新的觀測數(shù)據(jù)。
(4)
本文中設(shè)計了一種結(jié)合深度學(xué)習(xí)與SVM的面部表情識別算法,結(jié)構(gòu)如圖2所示。相比傳統(tǒng)算法,本文方法利用深度學(xué)習(xí)技術(shù)進行特征提取,在泛化能力和魯棒性等方面有著傳統(tǒng)方法不具備的優(yōu)勢。相比普通的深度學(xué)習(xí)算法,本文使用SVM進行表情分類,模型可解釋性強,便于調(diào)整參數(shù),且SVM具有較少的超參數(shù),模型更加穩(wěn)定,不容易過擬合。
當(dāng)圖像輸入到網(wǎng)絡(luò)時,首先經(jīng)過自適應(yīng)多流信息增強模塊,增強面部表情圖像的多流空間信息,并提升特征關(guān)聯(lián)程度;然后將處理后的特征圖傳輸?shù)綒埐罱换ト诤夏K,進一步對其進行交互提取,突出面部關(guān)鍵特征;最后使用改進的支持向量機進行分類。下面將詳細(xì)介紹各模塊。
圖2 本文網(wǎng)絡(luò)框架
為確保信息完整的同時增強輸入圖像的特征,提出自適應(yīng)多流信息增強模塊(adaptive multi-stream information enhancement module,AM-SIEM),該模塊由多流信息收集模塊(multi-stream information collection module,M-SICM)和權(quán)重注意模塊(weighted attention module,WAM)組成,結(jié)構(gòu)如圖3所示。
圖3 自適應(yīng)多流信息增強模塊
圖3(a)為多流信息收集模塊,該模塊包括3條分支,每條分支主要由批量歸一化層(batch normalization,BN)、卷積核(Conv)、激活函數(shù)(ReLU)組成。BN層主要用于將輸入圖像的特征值調(diào)整到相近范圍,防止因特征值差距過大導(dǎo)致梯度消失,提高信息表征能力[13]。經(jīng)過歸一化處理后,將特征圖輸入到3條分支,即分別使用1×1、3×3、5×5大小卷積來收集不同尺度的多流空間特征信息。其中,1×1卷積單元主要收集圖像的細(xì)微特征,5×5卷積單元用于擴大感受野,3×3卷積單元則作為本文網(wǎng)絡(luò)的主干分支,傳輸主要信息。最后使用ReLU激活函數(shù)輸出,確保信息穩(wěn)定輸出。ReLU激活函數(shù)公式如下。
(5)
由式(5)可以看出,當(dāng)輸入大于零時,函數(shù)可有效維持原有輸出,當(dāng)輸入小于零時,輸出為零,因此,該函數(shù)在一定程度上可抑制無效特征。為防止單一卷積導(dǎo)致收集信息不完整的問題,在激活函數(shù)后使用元素相乘的操作將大尺度特征結(jié)合到鄰級小尺度中,提高信息關(guān)聯(lián)程度的同時進一步擴大小尺度特征的感受野。然后使用Conv-ReLU結(jié)構(gòu)降低維度,緩解學(xué)習(xí)壓力。
受自注意力網(wǎng)絡(luò)[14]啟發(fā),提出的權(quán)重注意力模塊如圖3(b)所示,該模塊由L1和L22條分支組成,能夠?qū)1特征權(quán)重轉(zhuǎn)移到L2主干分支中。首先,為避免L2分支的主干特征權(quán)重較大而抑制其他分支權(quán)重,使用平均池化(Average pooling)來對其進行平滑處理,如式(6)所示。
(6)
式中:R為特征值的個數(shù);vn為對應(yīng)特征值。
使用與主干網(wǎng)絡(luò)和鄰級分支大小相等的卷積單元提高對應(yīng)分支的特征維度;將ReLU和Sigmoid激活函數(shù)結(jié)合,不僅可以抑制無用信息,還可以利用Sigmoid激活函數(shù)特征轉(zhuǎn)移權(quán)重,如式(7)所示。
(7)
圖3(b)中的i、j分別代表不同分支下特征權(quán)重注意力中的卷積核大小,設(shè)置規(guī)則如下:
Algorithm1: Convolution kernel size setting rules
Input: Connect=I1,I2,I3;
Output:i,j;
If Connect==I1:
i=1,j=1;
If Connect==I2:
i=1,j=3;
If Connect==I3:
i=3,j=5;
Return:i,j
此外,當(dāng)模塊連接I1時,L1分支輸入為單位矩陣。
在面部表情圖像信息增強的基礎(chǔ)上,設(shè)計一種殘差交互模塊來提取面部特征,包括深度提取模塊(deep extraction module,DEM)和殘差交互機制(interactive residual mechanism),結(jié)構(gòu)如圖4所示。
圖4 殘差交互模塊
圖4(a)為深度提取模塊結(jié)構(gòu),首先,該模塊使用Conv-ReLU結(jié)構(gòu)對輸入特征進行初步處理,減少特征通道數(shù)量,緩解網(wǎng)絡(luò)學(xué)習(xí)壓力;其次,由于最大池化(Maxpooling)操作在提取圖像深度特征時會損失少量信息[15],因此,分別將3條過濾器大小為2×2、4×4、6×6的最大池化并聯(lián)來增強圖像特征,并將輸入特征與最大池化結(jié)果使用拼接層(Concat)融合,避免信息丟失;最后,使用卷積單元減小特征圖像通道,提取圖像的深度特征。該模塊最終使用SiLU激活函數(shù)輸出,相比于ReLU激活函數(shù),SiLU對于負(fù)樣本權(quán)重的影響進行一定程度的減弱,而不是直接賦值為零,因此可以保留更多信息[16],公式為:
(8)
圖4(b)為殘差交互機制結(jié)構(gòu),該結(jié)構(gòu)輸入為3條附帶面部表情的特征流,將3條特征數(shù)據(jù)流拼接成一個整體,增加特征之間的關(guān)聯(lián)性;通過卷積和激活的操作提取多條特征流之間的交互特征,計算多流特征之間的聯(lián)系;將交互特征與各個原分支的特征進行相加,重新融合并賦予對應(yīng)分支特征。該機制能輸出對應(yīng)分支所提取的空間尺度特征,提高后續(xù)判斷和分類的準(zhǔn)確率。考慮到每個分支得到的特征不同,因此在第一層使用Leaky ReLU函數(shù),避免因特征梯度過大導(dǎo)致神經(jīng)元死亡。第二層使用Sigmoid函數(shù)作為最終輸出,防止信息丟失。
為提高網(wǎng)絡(luò)對多個小樣本分類任務(wù)的準(zhǔn)確度,選擇使用支持向量機來保證表情分類的準(zhǔn)確性,該方法優(yōu)于傳統(tǒng)的Softmax方法,相比決策樹更不容易過擬合。但由于傳統(tǒng)支持向量機分類方法大多采用“一對多”的方式,容錯率低??紤]到本文對預(yù)處理和特征提取階段的網(wǎng)絡(luò)設(shè)計,將其改進為“三對多取大”的方式提高分類的容錯率。改進后的算法流程如圖5所示。
圖5 改進后的SVM算法流程
以CK+[17]數(shù)據(jù)集為例,將面部表情分為7類,并構(gòu)造7個子分類器,訓(xùn)練對應(yīng)分類器模型。當(dāng)3個特征圖輸入時,算法流程如下。
步驟1:將特征圖1、2、3依次傳入對應(yīng)子分類器來判斷特征圖是否為真,若判斷為真,則對應(yīng)樣本數(shù)值+1,其余樣本數(shù)值-1。
步驟2:判斷3條分支的特征圖是否全部計算完畢,如果計算完畢,則比較7個樣本數(shù)值大小,輸出最大數(shù)值對應(yīng)的樣本。否則,繼續(xù)輸入特征圖進行計算。
本實驗環(huán)境為:GPU為GeForce RTX 3090,CPU為Inter(R) i9-12900H,Unbuntu20.04系統(tǒng),Pytorch1.10.1框架。訓(xùn)練網(wǎng)絡(luò)時,批量大小(Batch Size)設(shè)置為8,優(yōu)化器為Adam,動態(tài)學(xué)習(xí)率設(shè)置為10-6~10-3。SVM中C值取1,σ2取1。當(dāng)網(wǎng)絡(luò)訓(xùn)練到85epoch時,網(wǎng)絡(luò)達(dá)到最優(yōu)。
為證明深度SVM模型面部表情識別算法的有效性,選擇在CK+、FER2013[18]及JAFFE[19]數(shù)據(jù)集上進行實驗。其中,CK+數(shù)據(jù)集包括123名參與者在各種環(huán)境下的表情變化,表情示例如圖6(a)所示;JAFFE數(shù)據(jù)集由10位參與者在規(guī)范控制條件下獲得213張表情圖像,示例如圖6(b)所示;FER2013數(shù)據(jù)集共有35 887張圖像,選取30 000張作為訓(xùn)練集,3 000張作為測試集,示例如圖6(c)所示,該數(shù)據(jù)集包括姿態(tài)、旋轉(zhuǎn)、光照等一系列挑戰(zhàn),因此本文及對比算法在此數(shù)據(jù)集上的識別率總體較低。
圖6 數(shù)據(jù)集圖像示例
為驗證所提模塊的有效性,在JAFFE數(shù)據(jù)集中進行消融實驗,結(jié)果如圖7所示。
MSIR表示含有自適應(yīng)多流信息增強模塊、殘差交互模塊及改進后的支持向量機算法的原始網(wǎng)絡(luò);MSIR_AM-SIEM表示去掉自適應(yīng)多流信息增強模塊的網(wǎng)絡(luò);MSIR_RIM為去掉殘差交互模塊后的網(wǎng)絡(luò);MSIR_SVM表示不使用支持向量機算法(使用softmax損失函數(shù)代替)后的網(wǎng)絡(luò)??梢钥闯?原始網(wǎng)絡(luò)在訓(xùn)練76epoch后逐漸平穩(wěn),85epoch左右網(wǎng)絡(luò)識別率達(dá)到最高值。由于MSIR_AM-SIEM去掉了自適應(yīng)多流信息增強模塊,僅通過輸入圖像來提取特征,導(dǎo)致其訓(xùn)練時波動較大,可以證明自適應(yīng)多流信息增強模塊的有效性。MSIR_RIM的準(zhǔn)確率最低,此外,使用Softmax的MSIR_SVM準(zhǔn)確率也比使用SVM的準(zhǔn)確率低,進一步證明了改進后的支持向量機算法可以提高網(wǎng)絡(luò)的識別能力,增強魯棒性。
圖7 消融實驗曲線
為了證明本文方法的泛化能力,分別在CK+、FER2013、JAFFE數(shù)據(jù)集進行測試,對比算法如下:DAM-CNN[20]、VGG19[21]、ResNet50[11]、Xception算法[22]、文獻(xiàn)[23-28]的方法,除VGG19、ResNet50、Xception外的實驗結(jié)果均取自原論文。結(jié)果如表1所示。
表1 標(biāo)準(zhǔn)數(shù)據(jù)集下實驗結(jié)果
續(xù)表(表1)
由表1可以看出,在CK+數(shù)據(jù)集中,所提算法的準(zhǔn)確率達(dá)到98.57%,比經(jīng)典的DAM-CNN、結(jié)合關(guān)鍵點和金字塔卷積算法高出1.43%~2.69%,且均優(yōu)于新穎的深度學(xué)習(xí)算法;在FER2013和JAFFE數(shù)據(jù)集中,本文算法的準(zhǔn)確率分別為77.28%、96.24%,證明了所提出的自適應(yīng)多流信息增強模塊可以增強面部表情信息,提高表情的辨識度。殘差交互模塊可以更好地融合面部信息,SVM能提高模型對面部表情識別的魯棒性。
為了驗證所提算法辨識表情的穩(wěn)定性,在CK+數(shù)據(jù)集中挑選了100張識別難度較高的表情圖像進行測試,得到的結(jié)果如圖8所示。
圖8 表情測試結(jié)果
圖8(a)為混淆矩陣結(jié)果,其中G為真實值,P為預(yù)測結(jié)果,可以看出,算法對“高興”表情的識別準(zhǔn)確率最高,達(dá)到94%;對“中立”“恐懼”“厭惡”表情的識別準(zhǔn)確率較低,分別為79%、88%、84%。為了更直觀地展示本文算法在7個表情上的判斷能力,得到的柱狀圖如圖8(b)所示,可以看出本文算法對“生氣”“驚訝”“悲傷”“高興”表情的判斷能力比較穩(wěn)定,而對“中立”“厭惡”的判斷能力較弱,主要原因可能為:① 由于目前缺少公開的表情數(shù)據(jù)集,本文挑選的數(shù)據(jù)存在一定誤差,導(dǎo)致不同表情存在相似特征,降低了對相似表情的識別準(zhǔn)確率;② 由于該實驗是在正常數(shù)據(jù)集訓(xùn)練得到的權(quán)重來對表情進行測試的,因此對相近表情的辨識度較低;③ 每個參與者的面部特征均有差異,存在某參與者的“中立”表情相似于其他參與者的非中立表情,因此導(dǎo)致本文算法判斷失誤。
為了評估本文算法對輸入表情圖像的預(yù)測速度,分別將所提網(wǎng)絡(luò)與VGG19、ResNet50、Xception算法在相同環(huán)境下訓(xùn)練出對應(yīng)預(yù)訓(xùn)練模型,然后選取100張面部表情圖像進行預(yù)測,得到的平均參數(shù)量與預(yù)測時間如表2所示。
表2 平均參數(shù)量與預(yù)測時間
從表2可以看出,相較于對比算法,本文算法的參數(shù)量僅為1.5 M,這是因為表情識別屬于小樣本識別任務(wù),對模型規(guī)模沒有嚴(yán)格要求,因此本文在深度學(xué)習(xí)模型的通道數(shù)和深度方面作了一定的縮小。除此之外,本文算法采用SVM進行分類,相比其他方法使用全連接層,SVM參數(shù)要少很多。平均預(yù)測時間為1.28 s,優(yōu)于以上對比算法,計算時間主要消耗在SVM分類方面,因為SVM不適合使用GPU計算,因此消耗了一定的時間,但總體上能夠證明所提算法在保證準(zhǔn)確率較高的前提下實現(xiàn)了網(wǎng)絡(luò)模型的輕量化任務(wù)。
針對現(xiàn)存算法難以穩(wěn)定識別面部表情的問題,提出一種多流交互殘差結(jié)合改進SVM模型的面部表情識別算法,提出的自適應(yīng)多流信息增強模塊可以增強面部表情圖像的關(guān)鍵特征信息,提升信息間關(guān)聯(lián)程度;殘差交互模塊可以進一步突出面部表情,提高識別準(zhǔn)確率;改進的支持向量機方法使用3條分支特征判別表情類別,提高算法的魯棒性。大量實驗結(jié)果證明,該算法在CK+、FER2013、JAFFE數(shù)據(jù)集中的測評指標(biāo)均優(yōu)于現(xiàn)存的經(jīng)典及新穎算法,網(wǎng)絡(luò)模型在參數(shù)量及預(yù)測速度上更具優(yōu)勢,具有更可觀的實用價值。然而,由于目前缺少公開的面部表情數(shù)據(jù)集,導(dǎo)致本文算法在表情實驗中,對“中立”“厭惡”表情的判斷能力較弱,在后續(xù)工作中將進一步提升網(wǎng)絡(luò)對相似表情的判斷能力。