鄭 偉
(南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
面部表情識別方法是人機交互領域的重要核心,已經(jīng)廣泛應用于在線教育、疲勞駕駛檢測等領域[1-3]。關于面部表情識別的研究歷經(jīng)了兩個階段:基于傳統(tǒng)手工特征的表情識別和基于深度神經(jīng)網(wǎng)絡的表情識別。在傳統(tǒng)手工特征的表情識別研究階段,針對圖像的幾何、紋理和輪廓等方面設計手工特征算子作為后續(xù)表情分類判別的依據(jù),在特定的場景下取得了較高的識別效果。比如KARANWAL 等[4]通過對圖像紋理特征LBP 進行改進并引入正交編碼,能夠提取更具判別性的圖像紋理特征,取得較好的表情分類效果;LIN 等[5]對圖像輪廓特征HOG 進行改進,通過對表情敏感區(qū)賦予更高的權(quán)重來提高表情識別率。然而面對復雜的實際應用場景,如光照條件復雜、臉部局部遮擋等情況,基于傳統(tǒng)手工特征的表情識別率就會出現(xiàn)大幅下降的問題。因此,隨著深度學習理論的不斷突破和大數(shù)據(jù)時代的到來,將神經(jīng)網(wǎng)絡應用于表情識別領域成為可能。其中卷積神經(jīng)網(wǎng)絡在圖像識別領域表現(xiàn)優(yōu)異,代表性的卷積網(wǎng)絡有VGG19[6]、ResNet[7]等網(wǎng)絡,并誕生了許多對卷積網(wǎng)絡的改進以更適用于表情識別領域,如LIU 等[8]對Le-Net5 網(wǎng)絡進行了改進,引入高低層跨連接思想,豐富網(wǎng)絡提取的特征,提高了網(wǎng)絡的識別率;ZHANG 等[9]針對VGG19 因疊加過多卷積層造成識別率下降的問題進行了改進,引入空間金字塔池化來提高特征表達能力。然而以上神經(jīng)網(wǎng)絡雖然都通過改進網(wǎng)絡結(jié)構(gòu)提高了識別率,但采用的網(wǎng)絡都存在網(wǎng)絡層數(shù)過淺,在面對其他不同數(shù)據(jù)集時無法保持較強的泛化能力。
針對上述問題,本文選擇DenseNet121[10]進行改進,通過簡化網(wǎng)絡層數(shù)、引入多尺度結(jié)構(gòu)和通道注意力模塊MECANet,提高了DenseNet網(wǎng)絡在表情識別領域的識別能力。
DenseNet121 網(wǎng)絡模型是Gao 等[11]于2017 年提出的密集連接卷積神經(jīng)網(wǎng)絡模型。該網(wǎng)絡模型通過設計密集連接的稠密塊加強了特征的傳播,減少網(wǎng)絡的參數(shù)量,緩解了網(wǎng)絡模型過深導致的“梯度彌散”問題,從而提高了深度神經(jīng)網(wǎng)絡的識別率。DenseNet121 網(wǎng)絡模型結(jié)構(gòu)如圖1 所示,整個網(wǎng)絡模型由一個7×7 的卷積核構(gòu)成的初始化卷積層、4 個稠密塊、3 個過渡層、一個7×7 的全局最大池化層以及一個輸出層組成。
DenseNet121 網(wǎng)絡模型與一般的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)不同,其特有的稠密塊讓網(wǎng)絡不再依賴最后一層輸出的高語義特征向量作為分類識別的唯一依據(jù),每個稠密塊包含不同數(shù)量的卷積塊,其獨特的密集連接結(jié)構(gòu)實現(xiàn)了其包含的每個卷積塊的輸入值都是向前所有卷積塊輸出值的并集,具體實現(xiàn)如圖2 所示。假設稠密塊中的卷積塊1 的輸入特征向量為X0,通過卷積塊1 中的非線性轉(zhuǎn)化函數(shù)H1,輸出特征向量X1,因稠密塊特有的密集連接的結(jié)構(gòu),故卷積塊1輸出特征向量為[X0,X1]并作為卷積塊2的輸入向量,以此類推,稠密塊中第n 個卷積塊的輸出特征向量可以表示為:
這種密集連接結(jié)構(gòu)加強了特征的傳播,有利于提高提取特征信息的豐富性,并且由于每層輸入都包含了前層所有的特征信息,在提取下層的特征時只需要提取很少的特征圖,因而也在一定程度上減少了網(wǎng)絡模型的參數(shù)量。
Fig.1 DenseNet121 network model structure圖1 DenseNet121網(wǎng)絡模型結(jié)構(gòu)
Fig.2 Dense block structure圖2 稠密塊結(jié)構(gòu)
DenseNet121 網(wǎng)絡模型中的稠密塊之間都會插入過渡層,其主要作用是對稠密塊提取出的特征向量在通道維度和空間維度兩個方面進行降維,其具體實現(xiàn)結(jié)構(gòu)如圖3 所示。每個過渡層主要由兩個部分組成:瓶頸層[12]和池化層,瓶頸層的作用相當于濾波器,對輸入的特征向量在通道維度上進行壓縮,池化層的作用是對每個通道上的特征向量進行空間維度上的降維。
Fig.3 Transition layer structure圖3 過渡層結(jié)構(gòu)
本文針對DenseNet121 網(wǎng)絡進行三個方面的改進:第一,DenseNet121 包含4 個稠密塊,每個稠密塊包含的卷積塊個數(shù)分別為6、12、24、16,實現(xiàn)1000 種圖像的分類。而本文僅需要實現(xiàn)對7 類表情圖像的分類,采用的表情數(shù)據(jù)集若直接應用于DenseNet121 網(wǎng)絡,會造成因模型參數(shù)得不到充分訓練而導致的過擬合問題,因此對DensNet121 的網(wǎng)絡層數(shù)進行一定程度的簡化。第二,DenseNet121 輸入的圖像大小為224×224×3,初始化卷積層采用的卷積核大小為7×7,本文輸入的圖像大小為48×48×1,為了提取圖像更為細膩和豐富的特征,將初始化卷積層替換為Inception網(wǎng)絡[13]中的多尺度結(jié)構(gòu)。第三,針對每個稠密塊提取出的多通道特征向量,需要對不同通道特征向量依據(jù)對表情分類的貢獻程度賦予不同的權(quán)值,因此引入本文設計的新型通道注意力模塊MECANet。改進后的DenseNet 網(wǎng)絡模型如圖4所示。
Fig.4 Multi-scale attention module DenseNet structure圖4 多尺度注意力模塊DenseNet結(jié)構(gòu)
本文采用的多尺度卷積層的具體結(jié)構(gòu)如圖5 所示。該結(jié)構(gòu)通過并行執(zhí)行不同尺度大小的卷積核來獲取不同尺度上的圖像特征信息,然后通過整合不同尺度的圖像特征信息,獲取更豐富的表情特征。此外,該結(jié)構(gòu)在不同尺度大小的卷積核之前都插入了一個1×1 的卷積核,該卷積核的作用相當于一個濾波器,緩解了使用不同尺度卷積核帶來的模型參數(shù)量增加的情況,提升了網(wǎng)絡的訓練速度。
Fig.5 Multi-scale convolution layer structure圖5 多尺度卷積層結(jié)構(gòu)
MECANet 模塊是對通道注意力模塊的ECANet[14]的改進,具體結(jié)構(gòu)如圖6 所示。原始的ECANet 只依賴全局平均池化(Global Average Pool,GAP)來獲得各通道全局空間信息的特征描述符,接著再經(jīng)過一維卷積層和非線性的激活函數(shù)Sigmoid 來建立各通道的依賴關系。為了更為完善的提取有價值的特征,減少壓縮空間信息過程中的損失,本文提出了MACANet 通道注意力模塊,首先分別對各通道特征信息進行全局平均池化、全局最大池化(Global Max Pool,GMP)和全局隨機池化(Global Stochastic Pool Pool,GSP)來壓縮全局空間信息,然后再分別送入一維卷積網(wǎng)絡和激活函數(shù)層獲得各通道依賴關系,最后融合各通道提取出的依賴關系并對多通道特征信息進行賦值,獲得更具判別性的表情特征。具體計算公式如下:
其中,Wc表示經(jīng)過MECANet 模塊后生成的通道權(quán)重矩陣,F(xiàn)、FC分別表示經(jīng)過通道權(quán)重矩陣加權(quán)前后的特征向量,σ(·)表示激活函Sigmoid 函數(shù)的運算公式。
Fig.6 MECANet structure圖6 MECANet結(jié)構(gòu)
多尺度注意力機制的DenseNet 網(wǎng)絡模型的具體模型參數(shù)如表1所示。
Table 1 DenseNet model parameters of multi-scale attention mechanism表1 多尺度注意力機制的DenseNet網(wǎng)絡模型參數(shù)
本實驗基于Windows10 操作系統(tǒng),使用的深度學習框架為tensorflow 2.1.0,選用的Python 版本為3.7,CPU 為InterCorei7,顯卡為 NVIDIA RTX 2060。
本實驗采用CK+和FER2013 數(shù)據(jù)集對模型進行訓練。其中,CK+數(shù)據(jù)集收集了981 張,包含anger、disgust、fear、happy、sad、surprise 和contempt7 種表情;FER2013 數(shù)據(jù)集由35886 張人臉表情圖片組成,訓練數(shù)據(jù)集有28708 張圖片,公共驗證測試集和私有驗證測試集各有3589 張圖片,包含anger、disgust、fear、happy、sad、surprise 和neutral7 種表情。
由于CK+數(shù)據(jù)集訓練樣本不足,為了防止網(wǎng)絡模型因訓練樣本過小出現(xiàn)過擬合問題,對CK+數(shù)據(jù)集進行數(shù)據(jù)增強操作,通過對CK+數(shù)據(jù)集中每張圖像進行翻轉(zhuǎn)、旋轉(zhuǎn)、模糊和銳化,將數(shù)據(jù)集擴充為原來的5 倍。具體數(shù)據(jù)增強示例如圖7所示。
為了驗證本文提出的多尺度注意力機制DenseNet 的有效性,首先與DenseNet121 在CK+數(shù)據(jù)集和FER2013 數(shù)據(jù)集上進行表情分類對比實驗,并使用識別準確率和混淆矩陣來衡量網(wǎng)絡模型性能。
Fig.7 Data enhancement example of CK+dataset圖7 CK+數(shù)據(jù)集數(shù)據(jù)增強示例
CK+數(shù)據(jù)集上,通過五折交叉驗證實驗獲得網(wǎng)絡模型的最終識別準確率,實驗結(jié)果如表2 所示,改進后的DenseNet 網(wǎng)絡模型在5 次實驗中,最高識別準確率高達98.1%,最低識別率也達到了93.9%,平均識別率為96.2%。相較于DenseNet121,改進后的DenseNet 識別率平均提高了8.4 個百分點。從圖8 所示的混淆矩陣可知,改進后的DenseNet 網(wǎng)絡模型在fear、sad 和contempt 三類表情識別率都獲得了較大的提高,特別是最難分辨的contempt 表情也從原來的0.5 的識別率提高到了0.62,由此可見,改進后的DenseNet 網(wǎng)絡模型相較于DenseNet121 在表情識別領域具有一定的優(yōu)勢。
Table 2 Recognition accuracy of improved DenseNet and DensNet121 on CK+dataset表2 改進的DenseNet與DensNet121在CK+數(shù)據(jù)集的識別準確率(%)
FER2013數(shù)據(jù)集上,改進后的DenseNet與DenseNet121的識別準確率為兩個測試集上識別準確率的平均值,具體實驗結(jié)果如表3 所示。從表中可以看出,改進后的DenseNet 在較難分類的Fer2013 數(shù)據(jù)集上也取得了較佳的識別率,達到了85.3%,相較于DenseNet121 提高了8.6 個百分點,證明了改進后的DenseNet 在不同表情數(shù)據(jù)集上的魯棒性。從圖9 所示的混淆矩陣可知,DenseNet121 對anger、fear、surprise、neutral 這4 類表情識別效果不佳,改進后的DenseNet 提高了對這4 類表情的分類能力,其中對surprise、neutral 這兩類的表情識別效果更是達到了100%,進一步驗證改進后的DenseNet 相較于DenseNet121 具有提取更具判別性特征的能力。
Fig.8 Confusion matrix of DenseNet121(left)and improved DenseNet(right)on CK+dataset圖8 DenseNet121(左)與改進的DenseNet(右)在CK+數(shù)據(jù)集上的混淆矩陣
Fig.9 Confusion matrix of DenseNet121(left)and improved DenseNet(right)on FER2013 dataset圖9 DenseNet121(左)與改進的DenseNet(右)在FER2013數(shù)據(jù)集上的混淆矩陣
Table 3 Recognition accuracy of improved DenseNet and DensNet121 on FER2013 dataset表3 改進的DenseNet與DensNet121在FER2013數(shù)據(jù)集的識別準確率(%)
為了進一步驗證本文設計的網(wǎng)絡模型在表情識別領域的優(yōu)越性,將其與近幾年表情識別領域出現(xiàn)的網(wǎng)絡模型進行了比較實驗,實驗結(jié)果如表4 所示。通過對比不同網(wǎng)絡模型的識別準確率可知,本文設計的多尺度注意力DenseNet網(wǎng)絡模型在表情識別領域具有一定的優(yōu)勢。
本文基于DenseNet121 的網(wǎng)絡模型基礎上進行了三個方面的改進:減少網(wǎng)絡層數(shù)、引入多尺度卷積層和設計了一種新型通道注意力模塊MECANet,提出一種適合于表情識別領域的多尺度注意力機制的DenseNet 網(wǎng)絡模型。接著從識別準確率和每類表情的混淆矩陣兩個方面衡量改進后的DenseNet 與DenseNet121 兩個網(wǎng)絡模型性能,驗證了改進后的DenseNet 網(wǎng)絡的有效性;最后,將改進后的網(wǎng)絡模型與不同網(wǎng)絡模型進行準確率的對比實驗,進一步驗證了本文提出的網(wǎng)絡模型在表情識別領域的優(yōu)越性。但本文的研究工作依然存在不足,即基于靜態(tài)圖像提取表情特征,忽略了表情變化的動態(tài)信息,下一步工作將研究基于圖像序列的表情分類。
Table 4 Comparison of recognition rates of different network models on CK+and FER2013 datasets表4 不同網(wǎng)絡模型在CK+、FER2013數(shù)據(jù)集上的識別率對比(%)