宋玉琴, 高師杰, 曾賀東, 熊高強(qiáng)
(西安工程大學(xué) 電子信息學(xué)院, 西安 710600)
面部表情識(shí)別作為人機(jī)智能交互系統(tǒng)的關(guān)鍵技術(shù),是當(dāng)前人工智能的重要研究課題。 傳統(tǒng)的表情識(shí)別主要是應(yīng)用機(jī)器學(xué)習(xí)方法人為設(shè)計(jì)特征,最后用分類算法判定表情。 提取特征的方法主要有局部二值模式(local binary pattern, LBP)[1]、主成分分析法(principal component analysis, PCA)[2]、Gabor 小波變換[3]、尺度不變的特征變換(scale invariant feature transform, SIFT)[4]、灰度共生矩陣(gray-level co-occurrence matrix, GLCM)[5]等。常用的分類算法有支持向量機(jī)(support vector machine, SVM)[6]、K 近鄰算法(K-nearest neighbor,KNN)[7]等。 上述方法特征提取與表情分類是2 個(gè)分開(kāi)的過(guò)程,效率較低,且其特征提取受到人為因素影響,容易丟失部分表情特征,特征提取的不完備使得最終分類效果一般。
基于深度學(xué)習(xí)的表情識(shí)別,其特征提取與表情分類可同時(shí)進(jìn)行。 李勇等[8]基于LeNet-5 優(yōu)化網(wǎng)絡(luò)模型,將網(wǎng)絡(luò)中提取的低層特征與高層特征相結(jié)合,在CK +數(shù)據(jù)集上取得了83.74%的識(shí)別率。 Mollahosseini 等[9]將AlexNet 與GoogleNet 網(wǎng)絡(luò)融合,增加了網(wǎng)絡(luò)的深度和寬度,在CK + 數(shù)據(jù)集上取得了93. 20% 的識(shí)別率。 Jung 等[10]通過(guò)輸入人臉外貌特征與人臉關(guān)鍵點(diǎn)聯(lián)合訓(xùn)練網(wǎng)絡(luò),增強(qiáng)了特征提取的多樣性,在CK +數(shù)據(jù)集上取得了97.25%的識(shí)別率。
研究表明,更深更寬的卷積神經(jīng)網(wǎng)絡(luò)能夠有效提高表情識(shí)別率,但隨著網(wǎng)絡(luò)深度的增加,會(huì)出現(xiàn)梯度爆炸和梯度彌散的現(xiàn)象,導(dǎo)致模型訓(xùn)練難以收斂。 對(duì)此,何凱明等[11]提出了深度殘差網(wǎng)絡(luò)(ResNet),有效緩解了網(wǎng)絡(luò)性能退化和梯度爆炸等問(wèn)題。 受此啟發(fā),本文構(gòu)建了殘差網(wǎng)絡(luò)嵌入CBAM[12](convolutiona block attention module)的多尺度深度可分離表情識(shí)別網(wǎng)絡(luò)。 通過(guò)疊加多層深度可分離卷積層來(lái)代替5 ×5、7 ×7、9 ×9 等大卷積核,提取不同深度的特征信息,降低網(wǎng)絡(luò)運(yùn)算參數(shù),采用CBAM 注意力機(jī)制提高網(wǎng)絡(luò)模型對(duì)關(guān)鍵表情特征的敏感度,提升網(wǎng)絡(luò)中面部表情特征權(quán)重,剔除無(wú)關(guān)的冗余特征,提升網(wǎng)絡(luò)的魯棒性。同時(shí),通過(guò)恒等映射有效緩解了網(wǎng)絡(luò)中的梯度問(wèn)題,提高網(wǎng)絡(luò)收斂速度。
注意力機(jī)制是模仿人類在瀏覽時(shí)專注自己感興趣的事物而忽視無(wú)關(guān)事物的特性。 CBAM 注意力機(jī)制由通道注意力與空間注意力串聯(lián)組合而成。 其中,通道注意力關(guān)注的是有意義的輸入特征,空間注意力關(guān)注的是最具信息量的特征部分。
假設(shè)輸入特征F大小為H×W×C,H、W和C分別為特征的長(zhǎng)、寬和通道數(shù)。 通道注意力如圖1所示。 首先,特征F分別進(jìn)行最大池化(Maxpool)和平均池化(Avgpool)后,特征變化為1 ×1 ×C,再分別輸入共享權(quán)值的多層感知器(multi-layer perception, MLP),其中隱藏層為降低參數(shù)運(yùn)算設(shè)置C/r個(gè)神經(jīng)元,r為縮減倍數(shù),激活函數(shù)為ReLU。 然后,將經(jīng)MLP 運(yùn)算后并相加的特征采用Sigmoid 激活函數(shù)完成映射,得到權(quán)重系數(shù)MC。 最后,將輸入特征與MC相乘,得到完成通道注意力的新特征。
圖1 通道注意力模塊Fig.1 Channel attention module
空間注意力如圖2 所示。 首先,特征F分別經(jīng)最大池化和平均池化后,并在通道上完成拼接,得到H×W×2 的特征。 然后,將其輸入到卷積核為7 ×7、Sigmoid 激活函數(shù)的卷積層,得到最終的權(quán)重系數(shù)MS。 最后,F與MS相乘便可得到完成空間注意力的新特征。
圖2 空間注意力模塊Fig.2 Spatial attention module
本文提出的嵌入CBAM 的多尺度深度可分離卷積殘差塊如圖3 所示,其中,深度可分離卷積由點(diǎn)卷積(pointwise convolution, PW)和深度卷積(depthwise convolution, DW) 組成,如圖中A_Conv2d 和B_Conv2d 所示。 假設(shè)輸入F′特征類型為H×W×C。 以本文采用的卷積核為例,F′特征經(jīng)N個(gè)點(diǎn)卷積,其參數(shù)量為H×W×C×N,通過(guò)卷積核為3 ×3 ×1 的深度卷積,參數(shù)量為H×W×C×3 ×3,因此,深度可分離卷積的計(jì)算量為H×W×C×3 ×3 +H×W×C×N。 特征F′經(jīng)卷積核為3 ×3 ×N標(biāo)準(zhǔn)卷積運(yùn)算,其參數(shù)量為H×W×C×3 ×3 ×N。 深度可分離卷積與標(biāo)準(zhǔn)卷積參數(shù)運(yùn)算量對(duì)比如式(1)所示。 采用深度可分離卷積神經(jīng)網(wǎng)絡(luò)替代標(biāo)準(zhǔn)卷積使得網(wǎng)絡(luò)模型的參數(shù)減少1/8 ~1/9,從而輕量化網(wǎng)絡(luò)模型。
圖3 嵌入CBAM 的多尺度深度可分離卷積殘差塊(基礎(chǔ)塊)Fig.3 Multi-scale depthwise separable convolution residuals embedded in CBAM(Basic Block)
A_Conv2d 和B_Conv2d 均由卷積層、批歸一化層(batch normalization)、ReLU 激活層組成。 其中,批歸一化層通過(guò)歸一化每批數(shù)據(jù),緩解深層神經(jīng)網(wǎng)絡(luò)中梯度消失的問(wèn)題,提升網(wǎng)絡(luò)模型的非線性表達(dá)。 ReLU 激活函數(shù)能有效改善梯度的彌散問(wèn)題,增強(qiáng)網(wǎng)絡(luò)模型的收斂效率。 本文利用2 層A_Conv2d 和B_Conv2d 的疊加代替一個(gè)5 ×5 的卷積核,利用3 層A_Conv2d 和B_Conv2d 的疊加代替一個(gè)7 ×7 的卷積核,使用4 層A_Conv2d 和B_Conv2d 的疊加代替一個(gè)9 ×9 的卷積核,從而豐富網(wǎng)絡(luò)提取特征的多樣性,在每個(gè)通道后嵌入CBAM,并對(duì)不同通道進(jìn)行特征融合。 CBAM 能提高網(wǎng)絡(luò)表情相關(guān)特征的權(quán)重,剔除冗余特征,提升特征的有效性。 通過(guò)恒等映射緩解深層網(wǎng)絡(luò)梯度彌散和梯度爆炸的問(wèn)題,提高網(wǎng)絡(luò)訓(xùn)練的收斂速度,輸入X在經(jīng)過(guò)卷積激活等圖中運(yùn)算輸出為F(X)。 若輸入X與輸出F(X)的特征維度相同,則直接加和。 若維度不同,則與輸出F(X)維度一致,最終輸出H(X) =X+F(X)。
本文提出的殘差網(wǎng)絡(luò)嵌入CBAM 的多尺度深度可分離表情識(shí)別網(wǎng)絡(luò)如圖4 所示,由1 個(gè)卷積核為3 ×3 ×64 的卷積層、8 個(gè)Basic Block、全局平均池化層(Golbal Average Pooling)和全連接層(FC)等構(gòu)成。 其中,Basic Block 的卷積核的個(gè)數(shù)依次為64、64、128、128、256、256、512、512。 全局平均池化層能生成與分類類別相對(duì)應(yīng)特征圖,增強(qiáng)特征圖與類別的一致性,對(duì)每個(gè)特征圖求和取均值,最終輸入到Softmax 分類層。 此外,全局平均池化可看做對(duì)模型的網(wǎng)絡(luò)結(jié)構(gòu)整體進(jìn)行正則化,從而提高模型的泛化性能。
圖4 基于殘差網(wǎng)絡(luò)的嵌入CBAM 的多尺度深度可分離表情識(shí)別網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Structure of multi-scale depthwise separable facial expression recognition network embedded in CBAM based on residual network
網(wǎng)絡(luò)損失函數(shù)選用交叉熵(cross-entropy)損失函數(shù), 其能度量預(yù)測(cè)的概率與真實(shí)的差異情況,交叉熵?fù)p失越小,則模型預(yù)測(cè)的準(zhǔn)確率越高。交叉熵?fù)p失函數(shù)表示為
式中:g(xi)為模型輸出預(yù)測(cè)值;yi為輸入xi真實(shí)值;C為樣本數(shù);L為計(jì)算后的交叉熵?fù)p失值。
如圖4 所示,向模型輸入預(yù)處理過(guò)后的44 ×44 ×3 的圖像,經(jīng)過(guò)第1 個(gè)卷積處理后特征格式為44 ×44 × 64,經(jīng)過(guò)8 個(gè)Basic Block 特征圖為6 ×6 ×512,最終送入到全連接層和Softmax 分類層得出表情類別。 網(wǎng)絡(luò)模型的特征變化如表1所示。
表1 表情識(shí)別網(wǎng)絡(luò)特征參數(shù)Table 1 Feature parameters of expression recognition network
本文設(shè)計(jì)的網(wǎng)絡(luò)在Ubuntu18.04 LTS 系統(tǒng)下使用Pytorch 深度學(xué)習(xí)框架完成搭建,實(shí)驗(yàn)硬件平臺(tái)如下:CPU 為AMD Ryzen 5 3600X,主頻為3.8 GHz,內(nèi)存為32 GB,GPU 為顯存11 GB 的NVIDIA GTX 1080TI,選用Fer-2013 和CK +公開(kāi)表情數(shù)據(jù)集進(jìn)行表情識(shí)別網(wǎng)絡(luò)模型的訓(xùn)練與測(cè)試。
Fer-2013 數(shù)據(jù)集[13]是Kaggle 面部表情識(shí)別比賽提供的一個(gè)數(shù)據(jù)集,包括訓(xùn)練集圖像28 709 張,公共驗(yàn)證集與私有驗(yàn)證集均3 589 張圖像,圖像的像素都為48 ×48。 該數(shù)據(jù)集包含憤怒(4 953 張)、厭惡(547 張)、恐懼(5 121 張)、快樂(lè)(8 989 張)、悲傷(6 077 張)、驚喜(4 002 張)和中立(6 198 張)7 類表情,各類表情如圖5 所示,每列為一類表情,其同類表情的面部姿態(tài)、年齡、表情強(qiáng)度、膚色有明顯的差異,并且很多人臉有被眼鏡、帽子、手等物體遮擋,這樣更符合真實(shí)場(chǎng)景下的人臉表情,使用該數(shù)據(jù)集更能說(shuō)明算法模型的泛化性能。
圖5 Fer-2013 數(shù)據(jù)集的表情示例Fig.5 Sample expression diagram of Fer-2013 dataset
CK +數(shù)據(jù)集[14]是面部表情識(shí)別的代表性數(shù)據(jù)集之一,其在實(shí)驗(yàn)室條件下采集,較為嚴(yán)謹(jǐn)可靠。 數(shù)據(jù)集包括123 人的593 個(gè)圖像序列,展示了表情從平靜狀態(tài)到峰值的過(guò)程,其中327 個(gè)為帶有標(biāo)簽表情序列。 本文實(shí)驗(yàn)選取除中立表情外的其他7 種表情,提取表情序列中最后3 幀,并將其處理為48 ×48 像素的圖像,如圖6 所示。 這7 種表情共有981 張圖像,包含憤怒(135 張)、厭惡(177 張)、恐懼(75 張)、快樂(lè)(207 張)、悲傷(84 張)、驚喜(249 張)和藐視(54 張)。
圖6 CK +數(shù)據(jù)集的表情示例Fig.6 Sample expression diagram of CK + dataset
為提高網(wǎng)絡(luò)的泛化性能,實(shí)驗(yàn)對(duì)Fer-2103 數(shù)據(jù)集和CK +數(shù)據(jù)集進(jìn)行了數(shù)據(jù)增強(qiáng)。 如圖7(a)所示,在訓(xùn)練網(wǎng)絡(luò)模型時(shí),將訓(xùn)練集的圖像隨機(jī)裁剪為44 ×44 大小,其中隨機(jī)裁剪掉的為紫色部分,并進(jìn)行水平翻轉(zhuǎn),將數(shù)據(jù)集擴(kuò)充數(shù)據(jù)為原來(lái)的2 倍后輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練。 如圖7(b)所示,為提高網(wǎng)絡(luò)模型的魯棒性能,在進(jìn)行測(cè)試集驗(yàn)證時(shí),將輸入圖像分別在左上角、左下角、四邊、右上角和右下角進(jìn)行裁剪,裁剪部分如圖7(b)中紫色部分所示,得到5 張44 ×44 大小的圖像,并水平翻轉(zhuǎn),得到10 倍數(shù)據(jù),將處理后的圖像輸入模型得到類別概率求和并取均值,其最大概率分類為最終表情類別。
圖7 Fer-2013 訓(xùn)練集與測(cè)試集的數(shù)據(jù)增強(qiáng)示例Fig.7 Sample figure of data enhancement of Fer-2013 training set and test set
在Fer-2013 數(shù)據(jù)集上訓(xùn)練時(shí),網(wǎng)絡(luò)超參數(shù)如下:實(shí)驗(yàn)共迭代300 次,初始學(xué)習(xí)率設(shè)為0.01,批量大小設(shè)為32,50 次迭代后,每8 輪迭代學(xué)習(xí)率衰減為之前的0.8 倍。 在公共驗(yàn)證集上測(cè)試優(yōu)化網(wǎng)絡(luò)權(quán)值,在私有驗(yàn)證集上測(cè)試模型,評(píng)估模型性能。 混淆矩陣如圖8 所示。 本文算法在Fer-2013數(shù)據(jù)集得到73.89%的準(zhǔn)確度,快樂(lè)(91%)、驚喜(84%)、中立(74%)等表情因相對(duì)其他表情具有明顯的面部特征從而獲得較高的識(shí)別率,而厭惡(69%)、憤怒(64%)、悲傷(64%)和恐懼(58%)4 種表情之間誤判率相對(duì)較高,其主要原因是:這些表情本身就有較高的相似性,人類也難以辨認(rèn)陌生人的這4 類表情。
圖8 Fer-2013 私有驗(yàn)證集表情分類的混淆矩陣Fig.8 Confusion matrix of expression classification in Fer-2013 private validation set
此外,這些表情圖像數(shù)據(jù)相對(duì)其他表情較少,類別數(shù)據(jù)的不均衡導(dǎo)致網(wǎng)絡(luò)訓(xùn)練不充分,也是影響其識(shí)別率的重要因素。
在CK + 數(shù)據(jù)集上訓(xùn)練時(shí),因其數(shù)據(jù)較少,故采用十折交叉驗(yàn)證,實(shí)驗(yàn)以9 ∶1 的比例將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,訓(xùn)練集882 張圖像,測(cè)試集99 張圖像。 實(shí)驗(yàn)共迭代200 次。 訓(xùn)練批量大小設(shè)為64,前50 次迭代其學(xué)習(xí)率為0. 01,之后每8 輪迭代,學(xué)習(xí)率衰減為之前的0. 7 倍。 其測(cè)試集混淆矩陣如圖9 所示。 本文算法在CK + 數(shù)據(jù)集得到97. 47% 的準(zhǔn)確度,快樂(lè)(100%)、驚喜(99%)、厭惡(98%)、憤怒(97%)等均有較高的識(shí)別率。 恐懼(95%)、藐視(93%)、悲傷(92%)等表情因受類別數(shù)據(jù)不均衡和本身易混淆的影響,識(shí)別率相對(duì)較低。
圖9 CK +測(cè)試集表情分類的混淆矩陣Fig.9 Confusion matrix of expression classification in CK + test set
為驗(yàn)證本文算法的先進(jìn)性,在Fer-2013 和CK +公開(kāi)表情數(shù)據(jù)集上,與近年其他表情識(shí)別算法進(jìn)行對(duì)比,對(duì)比結(jié)果如表2 所示,本文構(gòu)建的網(wǎng)絡(luò)模型具有更強(qiáng)的泛化性能。 此外,因?yàn)镕er-2013 數(shù)據(jù)集存在較多的受遮擋面部圖像,且存在部分表情標(biāo)簽誤分的問(wèn)題,模型在Fer-2013 數(shù)據(jù)集準(zhǔn)確度整體相對(duì)CK +數(shù)據(jù)集較低。
表2 本文算法與其他表情識(shí)別算法的準(zhǔn)確度對(duì)比Table 2 Comparison of recognition rates between proposed algorithm and other expression recognition algorithms
為進(jìn)一步驗(yàn)證CBAM 注意力機(jī)制與多尺度卷積結(jié)構(gòu)特征提取的有效性,實(shí)驗(yàn)通過(guò)增刪Basic Block 中不同通道的卷積結(jié)構(gòu)與注意力機(jī)制進(jìn)行實(shí)驗(yàn)驗(yàn)證。 實(shí)驗(yàn)在Fer-2013 和CK + 數(shù)據(jù)集上訓(xùn)練時(shí),網(wǎng)絡(luò)中的超參數(shù)與2.2 節(jié)中一致。 消融實(shí)驗(yàn)結(jié)果如表3 所示,表3 中的A、B、C、D 分別表示不同尺度的卷積模塊,如圖3 所示,此外ACBAM、B-CBAM、C-CBAM、D-CBAM 分別對(duì)應(yīng)A、B、C、D 卷積模塊后添加CBAM 注意力機(jī)制。 由表3 分析可知,隨著B(niǎo)asic Block 中通道由A 增加到ABCD 通道,2 個(gè)數(shù)據(jù)集上表情識(shí)別率均有明顯提升,驗(yàn)證了通過(guò)提取多尺度的表情特征能有效提升表情的識(shí)別率。 此外,隨著B(niǎo)asic Block 各各個(gè)通道依次增加CBAM 注意力機(jī)制,數(shù)據(jù)集上的表情識(shí)別率穩(wěn)步提升。 驗(yàn)證了嵌入CBAM 注意力機(jī)制能有效提升網(wǎng)絡(luò)中表情特征的表達(dá),削弱了網(wǎng)絡(luò)中無(wú)關(guān)特征的權(quán)重。
表3 消融實(shí)驗(yàn)Table 3 Ablation experiments
本文設(shè)計(jì)的嵌入CBAM 多尺度深度可分離殘差表情識(shí)別網(wǎng)絡(luò),通多層小卷積層的疊加來(lái)代替大卷積核,在豐富了特征信息同時(shí),有效縮減了網(wǎng)絡(luò)訓(xùn)練參數(shù),通過(guò)注意力機(jī)制進(jìn)行特征的篩選,提升有效特征的表達(dá)權(quán)重,有效提高了表情識(shí)別率,網(wǎng)絡(luò)模型具有較高的泛化性。
后續(xù)將通過(guò)生成式對(duì)抗網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)增強(qiáng),豐富面部表情樣本的多樣性,從而提高表情識(shí)別網(wǎng)絡(luò)的訓(xùn)練效率。 對(duì)因表情數(shù)據(jù)類別數(shù)據(jù)不均衡,導(dǎo)致網(wǎng)絡(luò)無(wú)法均衡訓(xùn)練部分參數(shù)的現(xiàn)象展開(kāi)研究,進(jìn)而提升網(wǎng)絡(luò)模型的泛化性。