韓 興, 張紅英, 張媛媛
(1.西南科技大學 信息工程學院,四川 綿陽 621010;2.西南科技大學 特殊環(huán)境機器人技術四川省重點實驗室,四川 綿陽 621010)
面部表情是一種常見的非語言表達形式,能夠有效傳達個人情感和意圖。隨著科學繁榮和人工智能的發(fā)展,人們希望機器能夠相對準確的識別面部表情達到人與機器間的交流,人臉表情自動識別在改善人機交互、遠程教育、輔助醫(yī)療、駕駛疲勞監(jiān)測、營銷輔助等方面都有著重要的研究價值和廣泛的應用空間[1]。
隨著深度學習在計算機視覺領域的發(fā)展,卷積神經(jīng)網(wǎng)絡被廣泛應用于人臉識別領域,并取得了優(yōu)異的成績,相比傳統(tǒng)識別方法具有更高的識別準確率和更好的穩(wěn)定性。Hu J等人[2]提出了SE-Net注意力網(wǎng)絡,獲取特征的通道依賴關系,為卷積神經(jīng)網(wǎng)絡帶來顯著的性能提升,Woo S等人[3]提出CBAM注意力網(wǎng)絡,結合空間與通道注意力得到良好的識別效果,但其參數(shù)量也更加龐大。此外由于表情類間距較小,SoftMax損失函數(shù)表現(xiàn)不是很理想,Cai J等人[4]提出Island損失函數(shù),增大不同表情的類間距離,結合SoftMax損失函數(shù)共同對表情特征進行監(jiān)督。Li S等人[5]提出Local Proserving損失函數(shù),縮小表情類內距離,增強非
受控環(huán)境下表情深度特征的判別能力。但卷積神經(jīng)網(wǎng)絡復雜的網(wǎng)絡模型與難以實時性影響其進一步在實際場景的應用,且表情識別的難點在于不同表情類間差異小,相同表情的類內差距大,易受外界環(huán)境影響,因此提取出表情之間變化明顯的關鍵特征則變得尤為重要。
針對這些問題,本文提出一種基于高效通道注意力模型與聯(lián)合損失的輕量級表情識別方法,該方法基于深度可分離卷積設計新的網(wǎng)絡,嵌入高效通道注意力模型,并提出聯(lián)合損失函數(shù)提高表情判別效果。在輕量化網(wǎng)絡模型的條件下提高識別率,實現(xiàn)精確快速的人臉表情識別。
Howard A等人在2017年提出MobileNet[6]網(wǎng)絡,其將傳統(tǒng)卷積分解為兩部分執(zhí)行,提出深度可分離卷積,極大減少了參數(shù)的計算量并且?guī)缀醪粨p失精度,使網(wǎng)絡的訓練與測試時間大大減少。深度可分離卷積包括深度卷積和點卷積兩個部分,傳統(tǒng)卷積核與深度可分離卷積核的對比如圖1所示。
圖1 傳統(tǒng)卷積與深度可分離卷積對比
本文提出改進的線性瓶頸層以深度可分離卷積為基礎,在MobileNetV3[7]的線性瓶頸層結構的基礎上,對其結構進行了進一步的改進。將線性瓶頸結構中對通道進行縮放的點卷積之后的非線性激活函數(shù)ReLU部分改為PReLU[8],而使用h-swish激活函數(shù)部分則保持不變,圖2為改進的線性瓶頸卷積層結構。
圖2 改進的線性瓶頸結構
在線性瓶頸網(wǎng)絡結構中,首先通過點卷積放縮通道,然后使用深度卷積提取特征,再使用點卷積完成線性瓶頸結構的構建,在每一個卷積層之后使用BN層防止網(wǎng)絡過擬合,保證網(wǎng)絡的穩(wěn)定性。采用了ReLU激活函數(shù),增加網(wǎng)絡非線性建模能力,使網(wǎng)絡具有稀疏性。但是ReLU函數(shù)的使用也可能導致部分神經(jīng)網(wǎng)絡失活,在大梯度流經(jīng)ReLU神經(jīng)元時會導致此神經(jīng)元的梯度輸出永久的變?yōu)榱愣Щ?,這部分的權重就無法繼續(xù)更新,網(wǎng)絡得不到學習,就會導致信息丟失。所以采用PReLU函數(shù)替代ReLU函數(shù),其公式為
(1)
式中ai被初始化為0.25。并采用帶動量的更新方式更新參數(shù)。其在負數(shù)區(qū)域會有一個很小的斜率,該區(qū)域內會進行線性預算,避免了神經(jīng)網(wǎng)絡失活狀態(tài)的發(fā)生,減少了可能的信息丟失,使得后續(xù)表情特征提取更加準確,提高了表情識別的準確率。
為了能夠從人臉表情圖像深層信息中篩選出有效的特征,引入超輕量級注意模塊ECA-Net[9]對改進的線性瓶頸結構的網(wǎng)絡特征通道進行重新校準,其對識別準確率的提升效果卓越。該模塊主要的作用是為每個通道生成權重并學習其相關性,將面部表情關鍵特征生成較大的權重,無關特征則生成較小的權重,就像加入注意力一樣優(yōu)先關注有用的信息,提升網(wǎng)絡對主要特征的敏感度。圖3為ECA-Net模塊的結構。
圖3 ECA-Net結構
ECA-Net首先對輸入的特征圖的使用全局平均池化,將特征從二維矩陣壓縮與提取到單個數(shù)值,然后在不降低維度的情況下通過執(zhí)行大小為k的快速一維卷積來生成通道權重,獲取各個通道之間的相關依賴關系,最后將生成的各個通道的權重通過乘法加權到原來的輸入特征圖上,將通過ECA-Net提取的特征與原本的特征的加權完成在通道空間的特征再標定。
ECA-Net通過k近鄰進行局部性交互,有效減少了跨所有通道進行交互的計算量和復雜度,通過大小為k的一維卷積來為每個特征通道生成權重,獲取特征通道之間的相關性,即
ω=σ(CIDk(y))
(2)
式中 CID為一維卷積,k決定了跨通道局部交互的覆蓋范圍,由于通道維數(shù)C大小與k成正比,得到其指數(shù)函數(shù)對應關系
C=φ(k)=2(γ*k-b)
(3)
因此,在本文給定通道維C的情況下,通過如下函數(shù)關系自適應確定參數(shù)k的大小
(4)
式中 odd為最近的奇數(shù)t。并且這里將γ和b分別設為2和1。映射函數(shù)ψ為通道維數(shù)越大則k越大,跨通道局部交互的范圍也就越大。
基于改進的線性瓶頸結構與高效注意力網(wǎng)絡模型如圖4所示,在線性瓶頸結構的深度卷積層后嵌入高效注意力網(wǎng)絡結構,將深度卷積提取的特征權重重新加權,接著通過點卷積完成通道的縮放,并加入快捷連接層構成倒置殘差結構,在減少網(wǎng)絡結構的同時防止網(wǎng)絡過擬合,最終基于線性瓶頸與倒置殘差構成高效通道注意力網(wǎng)絡。
圖4 高效通道注意力網(wǎng)絡
本文設計的高效通道注意力網(wǎng)絡結構如表1所示,網(wǎng)絡的輸入尺寸為96×96×1,其中Benck為改進的線性瓶頸模型,ECA為高效通道注意力模型,PRE為PRelu激活函數(shù),HS為H-Swish激活函數(shù),根據(jù)表情識別特點設計出如下網(wǎng)絡結構,在保持網(wǎng)絡輕量級的同時提升網(wǎng)絡識別率。
表1 高效通道注意力網(wǎng)絡結構
在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡中,SoftMax損失函數(shù)在表情識別領域表現(xiàn)的不是很理想,在現(xiàn)實生活的場景中,人臉表情不僅在類間的相似度很高,類內的差距也很大。因此本文采用聯(lián)合損失函數(shù),使用Center loss[10]用于加強類內距,改進對比損失用于改進類間的分離度,SoftMax loss保證分類的準確,聯(lián)合不同損失函數(shù)特點,提高人臉表情的識別效果。
首先通過Center loss得到類中心位置,Center loss根據(jù)下式更新類中心
(5)
(6)
式中γ為學習率,t為迭代次數(shù),δ為一個條件函數(shù),如果條件滿足則δ=1,如果條件不滿足則δ=0。
得到類中心位置后,將不同類中心位置的距離通過設置的閾值進行損失的更新,改進類間的分離度,其公式為
(7)
式中D為一個批次的類數(shù)目ci和cj分別為第i類和第j類的中心,M為指定的閾值,這里設置為100。
最后得到聯(lián)合損失函數(shù)公式如下
L=LS+αLC+βLH
(8)
式中α,β為更新?lián)p失函數(shù)的超參數(shù),本文設置為4,3。
實驗中用到了兩種數(shù)據(jù)集:CK+和FER—2013。網(wǎng)絡在訓練時參數(shù)更新策略采用帶動量優(yōu)化的隨機梯度下降優(yōu)化器,總共需要迭代300個批次,動量設置為0.9,每個批次的數(shù)據(jù)量設置為128,初始學習率設置為0.01,并且前80個批次的學習率保持不變,當超過80個批次后按照0.9的衰減率對學習率進行更新。
為了驗證基于高效通道注意力模塊的有效性,將改進的線性瓶頸網(wǎng)絡作為基礎網(wǎng)絡Basis,與嵌入注意力模型SE,CBAM,ECA在FER—2013數(shù)據(jù)集上進行對比實驗,并將ECA-Net的參數(shù)k手動選取3,5,7,9的值與自適應k值進行對比測試其影響。由圖5可知,在相同實驗參數(shù)的情況下,ECA模型手動選擇k數(shù)值的識別率均低于自適應k值,驗證了自適應k大小方法的有效性。嵌入注意力模型的網(wǎng)絡相對基礎網(wǎng)絡的識別率均有明顯的提升,嵌入ECA模型識別率高于CBAM模型和SE模型,準確率相比基礎網(wǎng)絡提高了1.2 %,且ECA模型的參數(shù)數(shù)量小于SE與CBAM模型,因此本文的高效通道注意力模型具有更輕量的網(wǎng)絡模型與更好的識別性能。
圖5 注意力模型對比結果圖
本文驗證了改進線性瓶頸層,高效通道注意力,聯(lián)合損失函數(shù)三個模塊的有效性,實驗結果如表2所示,其中Base是不加任何改進與注意力模塊的基礎網(wǎng)絡,PR表示改進線性瓶頸層,ECA表示高效通道注意力模塊,將各個模塊分別進行對比實驗,結果顯示改進線性瓶頸層,嵌入ECA注意力模塊與使用聯(lián)合損失模塊都能夠有效的提升表情的識別準確率,而在使用改進線性瓶頸層加高效通道注意力模型加聯(lián)合損失模塊的組合時準確率提升最為顯著,在FER—2013與CK+上與基礎模塊相比準確率提升了1.9 %和3.1 %,說明這三個模塊能夠共同促進表情特征的學習,明顯的改進表情識別的性能,從而驗證了本文方法的有效性。
表2 不同模塊識別率對比
為了驗證本文整體算法的可靠性,本文在FER—2013與CK+數(shù)據(jù)集上同當前先進的表情識別網(wǎng)絡進行了對比實驗驗證。以此評估本文算法的性能。表3是不同方法在FER—2013與CK+數(shù)據(jù)集上的識別率對比,在FER—2013與CK+數(shù)據(jù)集上分別取得了73.3 %與97.9 %的更高識別率,本文方法取得了相較其他主流方法更優(yōu)越的性能。
表3 與其他方法在識別率對比
基于深度可分離卷積改進線性瓶頸結構采用注意力模塊將網(wǎng)絡特征通道進行重新校準,加強重要表情特征作用,減少無用特征干擾,使用聯(lián)合損失函數(shù)提高了網(wǎng)絡對于人臉表情的識別準確率。實驗結果表明,本文模型不僅能夠更穩(wěn)定地識別出七種基本的表情,而且能夠滿足實時性要求,識別速度達到90幀/s以上。