陳佳昌,肖 颯,周偉松
(重慶郵電大學(xué) 理學(xué)院,重慶400065)
近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)在視覺識(shí)別、圖像識(shí)別中取得了不錯(cuò)的成果。2012年,Sutskever等[1]在Image Net[2]的圖像分類競(jìng)賽中提出的Alex Net結(jié)構(gòu)取得冠軍之后,卷積神經(jīng)網(wǎng)絡(luò)開始成為計(jì)算機(jī)視覺方向廣泛研究的對(duì)象。研究者們不斷在結(jié)構(gòu)上進(jìn)行調(diào)整,使得網(wǎng)絡(luò)層數(shù)增加,適用性更大,其中最典型的有VGG(Visual Geometry Group)[3]、Res Net[4]、Google Net[5]等。然而這些網(wǎng)絡(luò)結(jié)構(gòu)在人臉表情識(shí)別中會(huì)出現(xiàn)網(wǎng)絡(luò)復(fù)雜度高、訓(xùn)練參數(shù)量過大、分類效果差以及嚴(yán)重的過擬合現(xiàn)象。因此在計(jì)算機(jī)視覺領(lǐng)域中表情識(shí)別(Face Expression Recognition,FER)一直是一個(gè)富有挑戰(zhàn)性的問題。
針對(duì)這一問題,研究者們提出了一些深度學(xué)習(xí)相關(guān)的解決辦法:文獻(xiàn)[6]提出了一種利用深度殘差網(wǎng)絡(luò)ResNet-50進(jìn)行人臉表情識(shí)別;文獻(xiàn)[7]提出了一種帶有注意機(jī)制的端到端網(wǎng)絡(luò)人臉表情自動(dòng)識(shí)別方法,結(jié)構(gòu)模塊分為特征提取模塊、注意模塊、構(gòu)建模塊和分類模塊;文獻(xiàn)[8]提出了一種加權(quán)混合深度神經(jīng)網(wǎng)絡(luò),用于自動(dòng)提取對(duì)Fer任務(wù)有效的特征,實(shí)現(xiàn)了人臉檢測(cè)、旋轉(zhuǎn)校正、數(shù)據(jù)增強(qiáng)等,在數(shù)據(jù)集Cohn-Kanade(CK+)上達(dá)到了97%的準(zhǔn)確率;文獻(xiàn)[9]運(yùn)用改進(jìn)的Alex Net網(wǎng)絡(luò)進(jìn)行表情識(shí)別,相比于Alex Net,改進(jìn)之后降低了網(wǎng)絡(luò)的隱藏層數(shù)和訓(xùn)練參數(shù),加入了批量標(biāo)準(zhǔn)化(Batch Normalization,BN),在Fer2013和CK+數(shù)據(jù)集上的準(zhǔn)確度分別是68.85%和97.46%;文獻(xiàn)[10]針對(duì)圖像局部特征表達(dá)存在的復(fù)雜性、模糊性等不足,采用多層池化的方式在ResNet101模型上進(jìn)行優(yōu)化,加快了模型的收斂并提高了精度。
本文在以上方法的基礎(chǔ)上對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),將Inception結(jié)構(gòu)和殘差結(jié)構(gòu)相結(jié)合,并采用多層池化的方式將不同層的池化結(jié)果整合進(jìn)行優(yōu)化。實(shí)驗(yàn)結(jié)果表明,Inception與殘差結(jié)構(gòu)結(jié)合的網(wǎng)絡(luò)相比于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)精度更高,且加入多層池化之后效果更好。
圖片提取的復(fù)雜性使得單一尺度的卷積核特征提取不完全,導(dǎo)致當(dāng)前層的信息丟失,精確度下降。改進(jìn)的Inception結(jié)構(gòu)在同一層分別采用3×3、5×5的卷積核大小提取不同尺度的信息,并且采用批歸一化解決梯度消失的問題,同時(shí)加快模型訓(xùn)練。
卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中,由于圖像經(jīng)過卷積池化操作,網(wǎng)絡(luò)的表現(xiàn)會(huì)逐漸降低,容易出現(xiàn)梯度消失的問題,而殘差網(wǎng)絡(luò)通過使用跳躍連接緩解了這一問題。
因此,本文通過Inception和殘差相結(jié)合的結(jié)構(gòu)進(jìn)行多尺度并行特征提取,并將前幾層的信息通過跳躍連接進(jìn)行整合,對(duì)人臉表情進(jìn)行分類。改進(jìn)的結(jié)構(gòu)如圖1所示。由于人臉微表情復(fù)雜,小卷積核難以提取局部信息,因此取消Inception結(jié)構(gòu)中1×1的卷積核,只保留3×3、5×5的較大卷積核,使其在表情的局部特征提取中效率更高。
圖1 自定義卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
為了精確提取不同層次的特征,用多層尺度的池化取代單一池化,對(duì)高層次的特征圖實(shí)行池化操作,三個(gè)不同分支對(duì)圖片特征進(jìn)行提取,提取出更加精確與全面的特征圖信息。高層次的池化層提取出來(lái)的特征圖通過信息采樣成低層次大小的特征圖,并通過整合函數(shù)進(jìn)行信息整合,實(shí)現(xiàn)多層池化,其結(jié)構(gòu)如圖2所示。多層池化實(shí)現(xiàn)了不同層次的特征從局部到全局的特征信息的整合,避免了層次信息缺失,有效地將高維度特征信息語(yǔ)義與低維度的基本信息結(jié)合,提高了提取的精確度,為訓(xùn)練速度與分類器分類提供了基本的信息要素。
圖2 多層池化結(jié)構(gòu)圖
表1是模型中每一層的參數(shù)設(shè)置,相比于文獻(xiàn)[9]的模型,采用多層池化優(yōu)化的Inception-resnet模型減少了卷積層的卷積核的數(shù)量,使得整個(gè)網(wǎng)絡(luò)參數(shù)更少。
表1 網(wǎng)絡(luò)參數(shù)設(shè)置
為了防止過擬合現(xiàn)象,數(shù)據(jù)增強(qiáng)應(yīng)運(yùn)而生。深度學(xué)習(xí)中常用的數(shù)據(jù)增強(qiáng)方法有隨機(jī)旋轉(zhuǎn)、隨機(jī)裁剪、水平翻轉(zhuǎn)等。
在 Fer2013[11]數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)時(shí),由于該數(shù)據(jù)集的樣本都是從網(wǎng)上爬取,且數(shù)量較多,對(duì)提升網(wǎng)絡(luò)魯棒性有較大幫助,比起 CK+[22]效果更好。數(shù)據(jù)集共含有35 886張圖像,其中訓(xùn)練部分28 708張,驗(yàn)證部分和測(cè)試部分都是3 589張。每張圖像都是分辨率為48 pixel×48 pixel的單通道圖像,樣本表情被分為anger、normal、happy、fear、disgust、surprised、sad共7類。Fer2013數(shù)據(jù)集的訓(xùn)練集﹑驗(yàn)證集和測(cè)試集的每個(gè)類別的數(shù)量分布如表2所示。
表2 Fer2013數(shù)據(jù)集
對(duì)Fer2013數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng),如圖3所示。
圖3 Fer2013數(shù)據(jù)增強(qiáng)
實(shí)驗(yàn)室基于Pytorch1.6.0框架,模型相應(yīng)的超參數(shù)設(shè)置如下:優(yōu)化算法是自適應(yīng)矩估計(jì)(Adaptive Moment Estimation,Adam);初始學(xué)習(xí)率為0.001;每次批量數(shù)據(jù)batch size為500,基于小批量而不是單個(gè)樣本更新模型可以減少更新模型的方差,保證更穩(wěn)定的收斂[13];激活函數(shù)為ReLU;損失函數(shù)為交叉熵。硬件參數(shù):Intel(R) Core(TM) i7-6700HQ CPU;GTX 950;RAM 8 GB。
圖4給出了Inception結(jié)構(gòu)和殘差結(jié)構(gòu)相結(jié)合的網(wǎng)絡(luò)是否帶多層池化的兩種訓(xùn)練結(jié)果。由圖可以分析出不帶多層池化的模型收斂到穩(wěn)定的速度更快,但最終的精度只有69.97%;帶多層池化的模型收斂速度降低,精確度卻有明顯的提升,達(dá)到了71.25%。
圖4 多層池化對(duì)比精度圖
一般用精確率、召回率和F1值來(lái)評(píng)價(jià)模型,其中精確率的計(jì)算公式為
(1)
式中:TP表示將厭惡類預(yù)測(cè)正確的數(shù)量,FP表示將厭惡類預(yù)測(cè)錯(cuò)誤的數(shù)量。
表3是兩個(gè)模型的精確率、召回率、F1值對(duì)比,其中的生氣、恐懼類別的識(shí)別率在兩個(gè)模型中都相對(duì)較低,是因?yàn)镕er2013數(shù)據(jù)集將數(shù)據(jù)進(jìn)行了錯(cuò)誤的標(biāo)簽導(dǎo)致;未采用多層池化的模型在厭惡這一類的精確率明顯高于多層池化后的結(jié)果。因此,表3的模型在做多層池化的操作時(shí),雖然整體上圖像的特征信息提取更全面,但也會(huì)犧牲掉某些類的信息。
表3 兩個(gè)模型的精確率、召回率和F1值
表4給出了本文中的兩種方法與其他模型的精度對(duì)比,可見相比于文獻(xiàn)[6],Inception結(jié)合殘差結(jié)構(gòu)參數(shù)更少,取得的效果卻更好。
表4 實(shí)驗(yàn)精度對(duì)比
深度神經(jīng)網(wǎng)絡(luò)可以自動(dòng)地從數(shù)據(jù)中學(xué)習(xí)特征,減少了對(duì)人和對(duì)數(shù)據(jù)的依賴。此外,結(jié)合Inception結(jié)構(gòu)和殘差結(jié)構(gòu)的優(yōu)點(diǎn),使得網(wǎng)絡(luò)在特征提取過程中發(fā)揮出了更多的價(jià)值,且模型在以上的基礎(chǔ)上加入了多層池化的方式進(jìn)行優(yōu)化,使得全連接層能直接有效地獲取不同池化層的信息,再結(jié)合數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)充訓(xùn)練數(shù)據(jù)集,從而提高識(shí)別的精度。改進(jìn)后的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,復(fù)雜度低,參數(shù)量少。與使用相同的面部表情數(shù)據(jù)庫(kù)的文獻(xiàn)相比,改進(jìn)后的方法得到了有競(jìng)爭(zhēng)力的結(jié)果。
下一步工作將引入猶豫模糊集構(gòu)造正則項(xiàng),提高模型的準(zhǔn)確率和穩(wěn)定性。