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