陳加敏,徐 楊,2
1.貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴陽 550025
2.貴陽鋁鎂設(shè)計(jì)研究院有限公司,貴陽 550009
近年來人臉表情識(shí)別在情感分析方面的研究取得了較大的進(jìn)步,成為情感分析的關(guān)鍵技術(shù)之一。面部表情中含有豐富的特征信息,Mehrabian等人[1]的研究表明,在人類的日常溝通與交流中,表情所占有的信息高達(dá)55%,而語言所占有的信息僅含7%。因此,高效地提取表情特征更有利于人機(jī)交互過程。面部表情是指通過臉部肌肉塊的變化而表現(xiàn)出來的情緒,不同運(yùn)動(dòng)單元的變化產(chǎn)生了不同的情緒。Ekman等人[2]將表情分為憤怒、厭惡、驚訝、高興、悲傷、恐懼。在其研究基礎(chǔ)上,基于運(yùn)動(dòng)單元的面部動(dòng)作編碼系統(tǒng)(facial action coding system,F(xiàn)ACS)被提出,F(xiàn)ACS主要通過分析運(yùn)動(dòng)單元的運(yùn)動(dòng)特征來說明與之聯(lián)系的相關(guān)表情。
人臉表情識(shí)別的關(guān)鍵步驟可分為圖像獲取、人臉檢測、特征提取、特征分類。其中特征提取是人臉表情識(shí)別中最為關(guān)鍵的一步,直接影響表情識(shí)別的效果。Gu等人[3]提出了全局特征與局部特征相結(jié)合提高整體特征表現(xiàn)力的表情識(shí)別方法。Yan等人[4]將原始人臉圖像與LBP圖像結(jié)合,將其輸入連續(xù)卷積提取高級(jí)語義特征,并將提取的特征進(jìn)行下采樣處理提高表情識(shí)別準(zhǔn)確率。Zeng等人[5]建立了深度稀疏自編碼(deep sparse autoencoder,DSAE),通過學(xué)習(xí)魯棒性和判別性特征,實(shí)現(xiàn)了對人臉表情的高精度識(shí)別??簼嵉热薣6]將特征分組并建立空間增強(qiáng)注意力機(jī)制,突出表情特征重點(diǎn)區(qū)域。柳璇等人[7]將灰度圖、局部二值模式特征、Sobel特征進(jìn)行融合提高特征表現(xiàn)力。由此可見,現(xiàn)有的深度學(xué)習(xí)模型大多從特征提取維度進(jìn)行改進(jìn)來提高表情識(shí)別準(zhǔn)確率。
近年來,隨著深度學(xué)習(xí)的不斷發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)在圖像特征提取方面展現(xiàn)了顯著的優(yōu)勢,可通過增加網(wǎng)絡(luò)的深度或者寬度來提取更為高級(jí)的語義特征。Wang等人[8]通過增加卷積神經(jīng)網(wǎng)絡(luò)的深度和寬度來增強(qiáng)特征提取能力,將高層次與低層次的特征行融合,取得了較好的表情識(shí)別效果。不同的表情之間具有細(xì)微的差異信息,若模型只關(guān)注人臉表情的少數(shù)特征,就很可能預(yù)測出錯(cuò)誤的類別。因此,融合多尺度特征尤為重要。具有競爭力的多尺度特征融合方法如下:早期的網(wǎng)絡(luò)架構(gòu)AlexNet[9]和VGGNet[10]通過堆疊卷積運(yùn)算符,但是過度地堆疊網(wǎng)絡(luò)的層數(shù)會(huì)出現(xiàn)梯度消失以及梯度爆炸[11-12]等問題;InceptionNets[13]通過使用不同內(nèi)核大小的卷積,增加網(wǎng)絡(luò)的寬度,提高多尺度特征提取的能力,增加寬度能在一定程度上提高效率,但是仍存在局限性,過度增加寬度會(huì)出現(xiàn)過擬合等問題;ResNet[14]通過使用殘差模塊的跨層連接有效地解決了網(wǎng)絡(luò)梯度消失和梯度爆炸的問題,使得網(wǎng)絡(luò)的層數(shù)可以達(dá)到上千層;金字塔卷積(pyramidal convolution,PyConv)[15]通過堆疊不同大小的卷積核擴(kuò)大感受野,具備細(xì)化特征的優(yōu)勢,在圖像分類、目標(biāo)檢測等圖像識(shí)別的基本任務(wù)中都取得了顯著的優(yōu)勢。注意力機(jī)制將關(guān)鍵部分分配較高的權(quán)重,SENET[16]作為最后一屆ImageNet分類比賽的冠軍,只是在通道維度上標(biāo)注注意力權(quán)重;卷積塊注意模塊(convolutional block attention module,CBAM)[17]是一種從通道和空間維度進(jìn)行雙重特征權(quán)重標(biāo)定的卷積注意力機(jī)制模塊,其依據(jù)多方向的特征增強(qiáng)改善網(wǎng)絡(luò)識(shí)別效果。
為了更好地提取面部表情中眼、眉、口等部位的局部變換特征,本文以殘差網(wǎng)絡(luò)為主要框架,融合金字塔卷積模塊和CBAM模塊中的通道注意力(channel attention,CA)以及空間注意力(spatial attention,SA),提出一種注意力金字塔卷積殘差網(wǎng)絡(luò)(attention PyConv ResNet,APRNET)。該網(wǎng)絡(luò)分為兩個(gè)子模塊,分別是PyConv-CAblock和PyConv-CSneck模塊,在網(wǎng)絡(luò)中將PyConv-CAblock替換殘差網(wǎng)絡(luò)中的基礎(chǔ)模塊(basicblock),將PyConv-CSneck替換殘差網(wǎng)絡(luò)的瓶頸模塊(bottleneck)。該網(wǎng)絡(luò)將金字塔卷積、通道注意力和空間注意力融合在一起,在提取多尺度全局信息的同時(shí)有效地突出重點(diǎn)區(qū)域。實(shí)驗(yàn)證明該模型有效地提高了表情識(shí)別的性能,在CK+[18]和FER2013[19]數(shù)據(jù)集上準(zhǔn)確率可達(dá)94.949%和73.001%,相比于現(xiàn)在的表情識(shí)別方法具有較大的優(yōu)勢。本文的主要貢獻(xiàn)如下:
(1)在表情識(shí)別中,結(jié)合金字塔卷積的不同大小和深度的卷積核獲取具有細(xì)節(jié)信息的全局特征,捕獲面部表情圖像的細(xì)微差異。
(2)嵌入通道注意力以及空間注意力機(jī)制模塊來學(xué)習(xí)具有判別性的局部特征,突出了表情識(shí)別的重點(diǎn)特征區(qū)域。模型在公共數(shù)據(jù)集CK+和FER2013上進(jìn)行實(shí)驗(yàn),驗(yàn)證注意力金字塔殘差網(wǎng)絡(luò)的競爭性。
金字塔卷積(PyConv)包含不同大小和深度的卷積核,可提取多尺度信息。如圖1所示,從Level 1到Leveln卷積核大小依次增大,深度依次減小,為了能夠在PyConv的每個(gè)級(jí)別上使用不同深度的內(nèi)核,借鑒分組卷積,如圖2所示,將輸入特性映射分成不同的組,并為每個(gè)輸入特性映射組獨(dú)立地應(yīng)用內(nèi)核。與標(biāo)準(zhǔn)卷積圖3相比,標(biāo)準(zhǔn)卷積僅包含單一的核,卷積核的空間分辨率為K21,而深度則等于輸入特征通道數(shù)FMi。那么執(zhí)行FMo個(gè)相同分辨率與深度卷積核,得到FMo個(gè)輸出特征。因此,標(biāo)準(zhǔn)卷積的參數(shù)量與計(jì)算量分別為:
金字塔卷積將輸入的特征劃分為不同的組獨(dú)立地進(jìn)行卷積計(jì)算。假設(shè)金字塔卷積的輸入包含F(xiàn)Mi個(gè)通道,PyConv每一層卷積核尺寸為K21,K22,…,K2n,深度為FMi,FMi/(K22/K21),…,FMi/(K2n/K21),對應(yīng)的輸出特征維度為FMo1,FMo2,…,FMon基于上述的描述,可以得出,金字塔卷積的參數(shù)量和計(jì)算量分別為:
FMo1+FMo2+…+FMon=FMo時(shí),式(3)中每一行表示PyConv中某個(gè)Level的參數(shù)量和計(jì)算成本,如果每個(gè)Level輸出相同參數(shù)量的特征映射,則PyConv的參數(shù)數(shù)量和計(jì)算代價(jià)沿每一級(jí)金字塔均勻分布。在這個(gè)公式中,無論P(yáng)yConv的Level有多少,無論核空間大小K21持續(xù)增加到K2n,其計(jì)算代價(jià)和參數(shù)數(shù)量都與單個(gè)核大小K21的標(biāo)準(zhǔn)卷積相似。
本文以ResNet網(wǎng)絡(luò)作為基礎(chǔ)網(wǎng)絡(luò),將通道注意力和空間注意力融入金字塔卷積模塊,得到注意力的金字塔卷積殘差網(wǎng)絡(luò)。受文獻(xiàn)[12]的啟發(fā),本文在PyConv之后依次加入通道注意力和空間注意力構(gòu)成PyConv-CSblock和PyConv-CSneck模塊,PyConv-CSblock由一個(gè)金字塔卷積、通道注意力、空間注意力以及1×1卷積構(gòu)成,PyConv-CSneck由一個(gè)金字塔卷積、通道注意力、空間注意力以及兩個(gè)1×1卷積組成,如圖4所示。
在本文中,模型的框架分為4個(gè)Layer,每個(gè)Layer由不同參數(shù)的PyConv連接構(gòu)成,根據(jù)參數(shù)的不同將其分為PyConv18和PyConv50,具體參數(shù)情況如表1所示。
若金字塔卷積提取的特征為F∈RH×W×C(H為高度,W為寬度,C為通道數(shù)),對其在通道和空間上分配注意力權(quán)重,使得所提取的人臉表情特征能夠聚集于眼睛、眉毛、嘴巴等人臉表情的關(guān)鍵部位,提升表情識(shí)別的特征提取能力,從而提高表情識(shí)別的準(zhǔn)確率。將模型APRNET應(yīng)用于表情識(shí)別具體結(jié)構(gòu)如圖5所示(以APRNET50為例)。首先,使用一個(gè)7×7的卷積提取圖像的特征信息。其次,參照ResNet的網(wǎng)絡(luò)結(jié)構(gòu),用PyConv-CSblock替換ResNet中的basicblock,用PyConv-CSneck替換殘差網(wǎng)絡(luò)中的bottleneck,PyConv-CSblock和PyConv-CSneck中的PyConv提取多尺度特征信息,CA和SA分別在通道維度與空間維度分配注意力權(quán)重,獲取具有判別性的局部細(xì)節(jié)信息,突出人臉表情關(guān)鍵部位的特征表現(xiàn)力。分別通過4個(gè)不同的Layer堆疊構(gòu)成APRNET18和APRNET50,不同Layer的PyConv由不同尺度的卷積核堆疊而成,具體參數(shù)如表1所示,最后使用一個(gè)全連接層作為分類器進(jìn)行表情識(shí)別。
表1 金字塔卷積模塊參數(shù)Table 1 Pyramid convolution module parameters
在人臉表情識(shí)別中,表情與特定區(qū)域的特征有較大的相關(guān)性。金字塔卷積可以很好地將人臉表情圖像中的特征提取出來,注意力模型可以提高特定區(qū)域特征的表征能力,聚焦重要的特征,抑制不必要的特征。為進(jìn)一步提高表情識(shí)別準(zhǔn)確率,本文將通道注意力融入金字塔卷積之后,將金字塔卷積所提取的特征在通道維度標(biāo)注權(quán)重,提高了通道維度具有判別性的局部特征的表現(xiàn)力,通道注意力模塊如圖6所示。假設(shè)金字塔卷積提取的特征為F∈RH×W×C,首先將金字塔卷積特征經(jīng)過最大池化以及平均池化后得到兩個(gè)不同的空間描述特征Fcmax和Fcavg,然后將兩個(gè)空間描述特征經(jīng)過一個(gè)共享網(wǎng)絡(luò)后將其相加得到通道注意力權(quán)重系數(shù)Mc∈RC×1×1,共享網(wǎng)絡(luò)由包含一個(gè)隱層神經(jīng)元的三層感知機(jī)組成,然后將Mc與F相乘得到通道注意力圖。
其中,F(xiàn)為金字塔卷積輸出的特征,σ為sigmoid操作,Mc為通道注意力權(quán)重。
空間注意力是對通道注意力的一個(gè)補(bǔ)充,利用特征間的空間關(guān)系生成空間注意圖,如圖7所示。首先利用池化操作的聚合功能在通道軸上應(yīng)用最大池化和平均池化各生成一個(gè)有效的特征描述符,分別為F′max和F′avg,然后使用torch中的cat函數(shù)將兩者進(jìn)行橫向拼接后將其放入7×7的卷積降為一個(gè)通道,在經(jīng)過sigmoid生成空間注意力權(quán)重Ms∈RC×1×1,再將Ms與F′相乘得到F′。
其中,Ms為空間注意力權(quán)重,F(xiàn)′是經(jīng)過通道注意力模塊后的特征輸出,F(xiàn)′是經(jīng)過空間注意力模塊后的特征輸出圖。
將空間注意力模塊嵌入通道注意力之后,該方法可將金字塔卷積提取的特征依次在通道和空間維度推斷注意力圖,增強(qiáng)表情中具有判別性的局部特征的通道維度信息和空間維度信息,從而提高表情識(shí)別準(zhǔn)確率。
本文對所提方法進(jìn)行了對比實(shí)驗(yàn)驗(yàn)證,實(shí)驗(yàn)平臺(tái)是Ubuntu16.04 LTS系統(tǒng),實(shí)驗(yàn)環(huán)境python3.5,在深度學(xué)習(xí)框架PyTorch1.0上使用具有11 GB顯存的NVIDIA GeForce GTX 1080Ti實(shí)現(xiàn)。本文在FER2013和CK+公開人臉表情數(shù)據(jù)集上對所提模型進(jìn)行實(shí)驗(yàn),并與之前的工作進(jìn)行對比分析。
本文選擇FER2013、CK+數(shù)據(jù)集。FER2013數(shù)據(jù)集是由International Conference on Machine Learning(ICML)2013挑戰(zhàn)產(chǎn)生,是目前較大規(guī)模的表情識(shí)別數(shù)據(jù)集,包含28 709張圖片,7種表情分類標(biāo)簽,其中測試集分為公有測試集和私有測試集,數(shù)量均為3 589。CK+數(shù)據(jù)集包含從123個(gè)對象中提取的593視頻序列,這些序列持續(xù)時(shí)間從10幀到60幀不等,展示了從中性臉表情到高峰表情的轉(zhuǎn)變,選擇帶有標(biāo)記的327個(gè)序列的最后3幀共981張圖片。FER2013、CK+的像素值均為48×48,它們的數(shù)據(jù)分布圖分別如圖8所示。
表2為本文所提方法在FER2013公有數(shù)據(jù)集(Public)和私有測試集(Private)上的實(shí)驗(yàn)結(jié)果。在訓(xùn)練過程中,數(shù)據(jù)的擴(kuò)充采取隨機(jī)裁剪以及水平翻轉(zhuǎn)操作,其中裁剪大小為44×44,權(quán)重更新使用隨機(jī)梯度下降,動(dòng)量設(shè)置為0.9,初始學(xué)習(xí)率為0.1,從迭代50次開始每增加5次學(xué)習(xí)率以0.9的速率下降,總迭代次數(shù)為250。
表2 FER2013實(shí)驗(yàn)結(jié)果Table 2 FER2013 experimental result
PyConv18是將金字塔卷積模塊融入ResNet18,PyConv18+CA是在PyConv18的基礎(chǔ)上嵌入通道注意力,PyConv18+SA是在PyConv18的基礎(chǔ)上嵌入空間注意力,APRNET18是在PyConv18的基礎(chǔ)上同時(shí)嵌入通道注意力和空間注意力。
PyConv50是將金字塔卷積模塊融入ResNet50,PyConv50+CA是在PyConv50的基礎(chǔ)上嵌入通道注意力,PyConv50+SA是在PyConv50的基礎(chǔ)上嵌入空間注意力,APRNET50是在PyConv50的基礎(chǔ)上同時(shí)嵌入通道注意力和空間注意力。
將APRNET18、APRNET50在私有數(shù)據(jù)集測試結(jié)果用混淆矩陣表示,如圖9所示。
從表2可以看出:APRNET18在私有測試數(shù)據(jù)集上表情識(shí)別準(zhǔn)確率相比于PyConv18增加了2.953個(gè)百分點(diǎn),相比于PyConv18+CA和PyConv18+SA分別增加了2.229個(gè)百分點(diǎn)和2.730個(gè)百分點(diǎn)。APRNET50在私有測試數(shù)據(jù)集上表情識(shí)別準(zhǔn)確率相比于PyConv50增加了2.062個(gè)百分點(diǎn),相比于PyConv50+CA和PyConv50+SA分別增加了1.198個(gè)百分點(diǎn)和0.139個(gè)百分點(diǎn)。本文所提出的APRNET50獲得了較好的表情分類結(jié)果,達(dá)到73.001%。由此可見,本文選取金字塔卷積作為特征提取部分,能夠獲得較好的分類結(jié)果。這是由于金字塔卷積能夠提取多尺度的細(xì)節(jié)特征信息,注意力模塊能夠提取具有判別性的局部特征,殘差結(jié)構(gòu)能夠?qū)娱g的相關(guān)性很好地結(jié)合起來。
從圖9可以看出,高興和驚訝的表情識(shí)別結(jié)果明顯高于其他,而悲傷、害怕、厭惡、生氣的準(zhǔn)確率較低,因?yàn)檫@四者在一定程度上存在相似的特征,在生活中,人眼也很難區(qū)分。其中害怕的準(zhǔn)確率最低,出現(xiàn)這個(gè)問題的原因可能是數(shù)據(jù)集的分布不均勻,從數(shù)據(jù)分布圖來看,害怕類的數(shù)據(jù)明顯低于其他。
為驗(yàn)證本文所提網(wǎng)絡(luò)模型的有效性,將FER2013私有測試集中訓(xùn)練的模型保存,并在網(wǎng)上隨機(jī)選取圖像運(yùn)用該模型進(jìn)行人臉表情識(shí)別,識(shí)別結(jié)果如圖10所示。
為證明本文所提方法的有效性,將本文所提模型應(yīng)用于CK+數(shù)據(jù)集,結(jié)果如表3所示。在訓(xùn)練過程中,數(shù)據(jù)的擴(kuò)充采取隨機(jī)裁剪以及水平翻轉(zhuǎn)操作,其中裁剪大小為44×44,權(quán)重更新使用隨機(jī)梯度下降,動(dòng)量設(shè)置為0.9,初始學(xué)習(xí)率為0.1,從迭代20次開始每增加5次學(xué)習(xí)率以0.9的速率下降,總迭代次數(shù)為100。
表3 CK+實(shí)驗(yàn)結(jié)果Table 3 CK+experimental result
從表3可以得出,APRNET18相比于PyConv18的識(shí)別準(zhǔn)確率提高了3.535個(gè)百分點(diǎn),APRNET50相比于PyConv50的識(shí)別準(zhǔn)確率提高了5.050個(gè)百分點(diǎn)。
為進(jìn)一步說明本文所提方法的有效性,選取了近幾年最新的表情識(shí)別算法在FER2013上進(jìn)行對比分析,這些方法包括SHCNN[20]、Zhou[21]、Gan[22]、Parallel CNN[23]、CNN[24]、Liang[25]。文獻(xiàn)[20]通過一個(gè)含有三個(gè)卷積層的淺層網(wǎng)絡(luò)來抑制過擬合以及梯度爆炸等問題,在訓(xùn)練FER2013數(shù)據(jù)集時(shí)采用0.001的學(xué)習(xí)率;文獻(xiàn)[21]通過對Softmax函數(shù)的改進(jìn)來提取更加具有區(qū)分力的特征,在訓(xùn)練過程中動(dòng)量設(shè)置為0.9,權(quán)值衰減為0.000 5,批處理大小為512,初始學(xué)習(xí)率設(shè)置為0.1;文獻(xiàn)[22]在卷積層嵌入注意力模塊進(jìn)行識(shí)別;文獻(xiàn)[23]設(shè)計(jì)兩個(gè)并行卷積池化結(jié)構(gòu),并行提取三種不同圖像特征;文獻(xiàn)[24]在VGG的基礎(chǔ)上卷積核的大小從3改為8,一種卷積核的數(shù)量設(shè)置為固定值32,另一種卷積核的數(shù)量設(shè)置為變量,分別為32、16、8,通過對卷積核大小和數(shù)量的更改提出了兩種網(wǎng)絡(luò)結(jié)構(gòu);文獻(xiàn)[25]將深度可分離卷積和壓縮激發(fā)模塊相結(jié)合,提出了一種輕量型的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)提取特征,在訓(xùn)練過程中批處理大小為32,初始學(xué)習(xí)率為0.1。將文獻(xiàn)[26-28]的結(jié)果與本文所提方法在CK+數(shù)據(jù)集進(jìn)行對比。文獻(xiàn)[26]提出了一種新的人臉表情識(shí)別方法,該方法利用圖像預(yù)處理技術(shù)去除不必要的背景信息,并將深度神經(jīng)網(wǎng)絡(luò)ResNet50與傳統(tǒng)的支持向量機(jī)多類模型相結(jié)合進(jìn)行人臉表情識(shí)別;文獻(xiàn)[27]提出一個(gè)重點(diǎn)發(fā)現(xiàn)感興趣區(qū)域的表情識(shí)別框架;文獻(xiàn)[28]提出一個(gè)新的DNN模型識(shí)別表情。對比結(jié)果如表4所示。
表4 對比結(jié)果Table 4 Comparison result
從表4可以看出,本文所提的方法在FER2013數(shù)據(jù)集上比CNN方法提高了8.001個(gè)百分點(diǎn),比Zhou等人所提的方法也高出了2.091個(gè)百分點(diǎn),在CK+上識(shí)別準(zhǔn)確率相比于Fei提高了1.499個(gè)百分點(diǎn),相比于ROI提高了0.279個(gè)百分點(diǎn),相比于Jain提高了1.709個(gè)百分點(diǎn)。可見本文方法的識(shí)別準(zhǔn)確率具有競爭性的優(yōu)勢。
本文提出了一種新的網(wǎng)絡(luò)模型APRNET50用于人臉表情識(shí)別,該方法可以實(shí)現(xiàn)多尺度特征融合以及定位人臉表情的關(guān)鍵部位。其中金字塔卷積可以很好地提取多尺度特征信息,注意力模塊可以定位人臉的關(guān)鍵部位,充分地利用關(guān)鍵部位的詳細(xì)信息對于人臉表情識(shí)別來說尤為重要。以端到端的方式在公開人臉表情數(shù)據(jù)集FER2013以及CK+上設(shè)計(jì)了對比實(shí)驗(yàn)來評估本文模型,結(jié)果表明,本文方法有效地提高了表情識(shí)別的效率。
接下來,將考慮如何將特征深入地進(jìn)行融合,以及對表情識(shí)別進(jìn)行深入的研究,將本文方法應(yīng)用到現(xiàn)實(shí)場景中進(jìn)行表情識(shí)別,以提高表情識(shí)別的利用率。