王俊峰,木特力甫·馬木提,阿力木江·艾沙,3,努爾畢亞·亞地卡爾,3,庫爾班·吾布力,3+
(1.新疆大學 信息科學與工程學院,新疆 烏魯木齊 830046;2.新疆大學 圖書館,新疆 烏魯木齊 830046;3.新疆大學 新疆多語種信息技術重點實驗室,新疆 烏魯木齊 830046)
隨著硬件計算能力的迅速提升和優(yōu)秀深度學習模型的加持,卷積神經網絡在目標分類任務上取得了很多非常好的成果,在人臉表情識別中應用深度學習方法也已成為研究者的主要選擇。然而關于表情局部特征和粒度的關系、哪種粒度最具有區(qū)別性以及如何在多粒度之間融合表情特征信息研究者投入較少的精力,此外自然場景下人臉表情數據集一般存在錯誤樣本標簽、不確定性和背景復雜等問題。為了降低這些因素的影響,本文基于深度卷積神經網絡提出多粒度與自修復融合的人臉表情識別模型,模型首先采用拼圖生成器生成不同粒度的表情圖像,其次利用漸進式的訓練過程在不同訓練階段學習不同粒度圖像之間互補的特征信息,并通過自修復方法避免網絡模型過度擬合錯誤樣本圖像,有效緩解這些消極因素的影響。
關于人臉表情識別的研究可以追溯到上世紀七十年代,相關研究從最初使用少量小型的表情數據集和一些傳統(tǒng)圖像特征提取算法轉變?yōu)楫斍笆褂煤A看笮偷谋砬閿祿蜋C器學習、深度學習方法,大型數據集和優(yōu)秀的深度學習算法極大地推動了人臉表情識別的發(fā)展。
Ding等[1]提出一種雙局部二值模式(double local binary pattern,DLBP)來檢測視頻中的峰值表情幀,并基于LBP和Taylor展開的Taylor特征模式(TFP),從Taylor特征圖中提取有效的人臉特征,方法優(yōu)于單獨使用LBP的效果,且具有實時的特點。侯小紅等[2]提出結合Harris-SIFT特征點檢測和LBP紋理特征的表情識別方法,采用Harris過濾SIFT提取特征點來獲取更加有效的人臉表情特征。Rahul等[3]提出一種結合Gabor特征和改進的隱馬爾可夫模型(hidden markov model,HMM)表情識別方法,該方法首先使用Gabor方法提取面部表情豐富區(qū)域的表情特征,如:鼻子、嘴巴、眉毛和眼睛等,其次采用主成分分析法(principal component analysis,PCA)進行降維,最后使用兩層的HMM進行測試,該方法具有效率高和魯棒性強的優(yōu)勢。Zhao等[4]提出一種基于三維卷積神經網絡(3D convolutional neural network,3DCNN)的模型,利用3DCNN提取圖像序列中靜態(tài)和動態(tài)特征,并且從光流序列中提取動態(tài)特征,使用不同圖像對的構造方法,獲取面部肌肉運動密集光流:普通光流和累積光流,使用累積光流能夠獲取更多的面部運動信息。
隨著GPU硬件計算能力的快速提升與深度學習方法的出現,優(yōu)秀的深度學習模型近年來在國內外受到眾多研究者的青睞,研究者在人臉表情識別方向引入新的深度學習模型,推動人臉表情識別取得長足進步。與傳統(tǒng)人臉表情識別方法相比,深度學習方法在大批量數據處理方面和優(yōu)秀的擬合能力上有著無可比擬的優(yōu)勢,然而深度學習也存在一些不足之處,如:訓練和調參過程繁瑣、模型過擬合等問題。
利用注意力機制有效提取表情關鍵區(qū)域特征也是表情識別的一個重要研究方向。Xie等[5]提出具有顯著表情區(qū)域注意力的深度多路徑卷積神經網絡(DAM-CNN)模型,模型利用基于注意力的顯著表情區(qū)域描述符(SERD)自適應地估計不同圖像區(qū)域對于人臉表情識別任務的重要性,并使用多路徑抑制網絡(MPVS-Net)區(qū)分與表情無關的信息。基于卷積神經網絡的HoloNet模型[6]通過使用CReLU代替ReLU,減少了冗余信息并增強低卷積層中的非飽和性和非線性,將殘差結構和CReLU激活函數結合構造中間層,增加網絡深度獲得更高的準確率和效率。Kurup等[7]提出一種縮減特征的半監(jiān)督情感識別算法和新的特征選擇方法,首先提取面部圖像特征,并將特征進行縮減,然后將具有可用標記和未標記數據的半監(jiān)督訓練應用于深度信念網絡(deep belief network,DBN),最后在選擇特征時去除不提供信息的特征。Zhang等[8]提出了基于生成對抗網絡(generative adversarial network,GAN)的端到端表情識別模型,能夠擴充人臉表情數據集樣本數,模型驗證GAN方法在生成人臉表情上具有良好的性能,對擴大數據集規(guī)模有積極作用。
目前應用深度學習的人臉表情識別方法性能表現十分突出,但是很多方法存在著一些局限性,而且一些表情數據集存在錯誤標注、復雜背景和模糊等問題,致使準確率難以滿足現實需求。為了進一步提升人臉表情識別的效果,本文基于深度卷積神經網絡提出多粒度與自修復融合的人臉表情識別方法。具體來說,首先使用拼圖生成器生成不同粒度的圖像,利用漸進式的訓練過程學習不同粒度圖像之間相互補充的表情特征信息,利用自修復方法避免網絡過度擬合錯誤樣本圖像,對錯誤樣本進行嚴格的重新標注。實驗結果表明方法具有有效性,在AffectNet數據集和RAF-DB數據集上進行驗證,取得了競爭性的識別結果。
研究者發(fā)現拼圖游戲可以應用于表征學習的自我監(jiān)督任務中,根據這一想法,使用拼圖生成方法生成不同粒度的合成圖像,將拼圖圖像輸入到網絡模型不同的訓練階段,迫使模型學習到多粒度級別的表情圖像特征信息。具體而言,首先將要訓練的大小為3×W×H表情圖像平均劃分為N×N個圖像塊,劃分好的圖像塊大小為3×(W/N)×(H/N), 將劃分的圖像塊隨機打亂順序,然后再重新組合成為3×W×H原始大小圖像,以N值為8,4,2,1大小粒度拼圖生成圖像為例,使用拼圖生成方法生成的多粒度圖像如圖1所示。

圖1 多粒度圖像生成
使用拼圖生成圖像訓練模型,目的是為了學習不同粒度圖像的互補特征[9]。在訓練時,采用漸進式訓練策略進行訓練。具體來說,首先訓練網絡低層,然后依次添加網絡層進行訓練。由于網絡低層的感受野和表征能力是有限的,通過漸進式訓練使模型在網絡低層從局部區(qū)域學習到區(qū)別性的表情特征信息。與訓練整個網絡相比,這種訓練策略在網絡淺層提取特征圖后,逐步輸入網絡深層,可以從局部細節(jié)信息學習到全局的區(qū)別特征信息。
在每個訓練階段完成后計算交叉熵損失(cross entropy loss),對每個階段的交叉熵損失求和作為總的損失值。因此在每個訓練階段對所有參數進行了優(yōu)化,有助于模型中的每個訓練階段起到協同的作用
(1)

由于獲得的多粒度信息可能會傾向于相似區(qū)域,直接使用漸進式訓練不利于表情特征的提取,因此通過引入拼圖生成方法在每個訓練階段提取不同粒度級別的圖像特征信息來緩解這個問題。
模型在最后訓練階段使用自修復方法來抑制表情數據的不確定性,避免模型過度擬合不確定的表情圖像[10]。具體而言,將不同粒度圖片逐漸訓練提取特征信息后,使用原圖訓練時批次輸入的表情圖像經過主干網絡提取得到[B,3072]特征向量,其中B為批處理樣本數BatchSize,使用注意力機制得到圖像注意力得分,對注意力得分依次從高到低排序、高低分組和正則化加權,使高重要性組的平均分值高于低重要性組平均分值,同時將主干網絡提取的特征經Softmax預測,在低重要性組樣本中當預測最大概率Pmax的樣本標簽不是給定標簽時,將最大預測概率Pmax和給定標簽概率Plabel進行比較,二者差別超過閾值δ2時則認為給定標簽錯誤,然后對標簽進行修改,自修復模塊如圖2所示。

圖2 自修復模塊
具體而言,首先將主干網絡輸出的[B,3072]特征向量依次輸入到全連接層和Sigmoid激活函數,得到批次圖像中每個圖像的分值αi。考慮到將分值權重直接與損失相乘會導致有些圖像的損失為零,因此采用加權交叉熵損失LWCE,如式(2)所示
(2)

LRR定義為排序正則化損失,其中δ1是LRR損失函數的參數,M和N為高重要性組和低重要性組樣本數,αi為樣本得分,αH,αL為兩組得分的平均值,如式(3)所示,LRR損失高重要性組和低重要性組樣本區(qū)分度更加明顯。模型的總損失為Lall,其中γ為LWCE和LRR二者的比例系數,具體如式(4)所示
(3)
Lall=γLWCE+(1-γ)LRR
(4)
為了有效提取表情特征信息以及消除表情圖像不確定因素的影響,本文提出多粒度與自修復融合的人臉表情識別方法。在訓練模型前,首先對人臉表情數據集進行簡單的離線預處理操作,包括尺度與灰度歸一化等,采用主流的深度學習殘差網絡ResNet作為主干網絡,通過多次實驗測試后使用層數為50層的ResNet50模型作為本文模型的主干網絡[11]。


圖3 多粒度與自修復融合模型
實驗環(huán)境:CPU為Intel(R) Core(TM) i9-7980XE CPU,顯卡為NVIDIA GeForce RTX 2080 Ti 22G,硬盤為256G SSD的主機。實驗使用Windows10電腦操作系統(tǒng),使用Pytorch深度學習框架搭建網絡模型,其中Pytorch的版本為1.5.1,使用的CUDA版本為10.1版本,使用Python3.7編程語言。
數據預處理:使用兩個自然場景下的人臉表情數據集:AffectNet數據集和RAF-DB數據集,數據集部分樣本如圖4和圖5所示。RAF-DB表情數據集包括7類表情,共計15 339個表情樣本,其中12 271個用于訓練,3068個用于測試。AffectNet數據集[12]是從網絡搜集的樣本廣泛的大批量表情數據集,實驗使用一些研究者對AffectNet數據集進行篩選整理更為均勻的7類表情數據集,共計24 530個樣本,其中訓練集22 077個樣本,測試集2453個樣本。在訓練前對數據進行離線預處理操作,將輸入圖像設置為224×224大小像素的圖像,使用Normalize進行批歸一化,為避免網絡出現過度擬合的問題,對數據進行了數據增廣處理,并對多種數據增廣方法的效果進行驗證。

圖4 AffectNet數據集

圖5 RAF-DB數據集
參數設置:在設定參數上本文通過對每個參數進行實驗選去最佳值,排序正則化損失參數δ1設置為0.15,修改標簽概率閾值δ2設置為0.2。此外每個批次樣本數量BatchSize設置為64,在預訓練模型網絡時學習率Learning-Rate設置為0.0002,其它卷積模塊和全連接層初始學習率LearningRate設置為0.002,采用余弦退火算法來更新學習率,從而加快網絡的收斂速度。
實驗采用VGG13、VGG16、VGG19、ResNet18、ResNet34和ResNet50基本深度學習網絡模型在兩個數據集上驗證多粒度在網絡模型中的有效性,實驗采用1×1(原圖)、2×2、4×4、8×8這4種粒度圖像分4個階段進行驗證,表1和表2分別為多粒度模塊在RAF-DB數據集和AffectNet數據集上的實驗效果。表1和表2實驗結果表明使用不同深度的深度學習模型,隨著網絡深度的不斷增加網絡的識別效果也越來越好,在網絡模型中加入多粒度模型識別效果比單獨使用原始網絡的整體性能表現更好,在每個網絡模型上準確率都有一定的提升。在RAF-DB數據集上ResNet18模型提升最高,可以達到3.61%,其它模型最少也可以提升0.2%。在AffectNet數據集上由于其數據噪聲較大的原因,實驗結果提升不是很明顯,但是準確率最高仍然可以提升1.22%。因此,實驗結果表明在不同的深度學習網絡模型中添加多粒度模塊可以有效提升人臉表情識別的準確率。

表1 在RAF-DB數據集上多粒度的影響/%

表2 在AffectNet數據集上多粒度的影響/%
對于多粒度方法的驗證,采用按4個訓練階段逐步輸入多粒度圖像驗證其效果,由于網絡輸入圖片的大小為3×224×224,根據不同大小的圖像劃分大小合適的粒度,劃分太小可能會造成準確率的下降。因此模型選擇經過拼圖生成器按照1×1(原圖)、2×2、4×4和8×8分塊打亂順序重新排列生成的圖像,通過實驗驗證不同粒度逐步輸入模型按階段訓練是否對識別結果有積極作用。
在RAF-DB數據集和AffectNet數據集驗證不同粒度逐步輸入模型漸進訓練對網絡模型的提升作用。表3實驗結果表明分階段漸進訓練的影響在兩個數據集上準確率的變化趨勢是一致的,隨著多粒度圖像訓練階段的增加,在兩個數據集上模型的準確率均是逐步提升的,分別可以提升3.05%和4.69%,然而當增加到一定程度后模型的準確率反而呈下降趨勢。

表3 漸進訓練的影響/%
經分析,由于輸入圖片的大小為224×224,圖像被劃分過小的粒度時,圖像的特征被過分打散,不利于特征的提取。因此不同的粒度逐步輸入對識別結果有促進作用,但是不是隨著層次一直有效的。實驗結果表明分3個階段多種粒度訓練時效果最好,其輸入分別為1×1、2×2和4×4的粒度圖像。
為了學習到圖像更深層次的特征,模型采用了深層次的經典深度學習基本網絡。相比于數據集的數據量,模型容易出現過擬合現象,因此使用Pytorch深度學習框架下數據增廣方法對表情數據進行擴充,數據增廣的方法種類很多,實驗采用翻轉、隨機遮擋、旋轉和顏色變換4種數據增廣方法,并且依次添加組合驗證數據增廣方法對識別結果的影響。表4實驗結果表明在多粒度模塊下逐漸添加選擇的4種不同數據增廣方法在表情識別結果上效果顯著,提升幅度較大,最高可以提升3.03%,說明使用數據增廣方法降低了模型過擬合問題,而且在模型中使用數據增廣方法擴充了數據規(guī)模,增加了模型的泛化作用。

表4 數據增廣方法的影響/%
由于自然場景下低質的人臉圖像、模糊的表情以及標簽標記的主觀因素等不確定性是表情數據集好壞的重要指標,對實驗結果造成很大的干擾。為了解決這一問題,采用自修復模塊來抑制表情數據的不確定性,避免過度擬合不確定的人臉圖像,同時添加多粒度模塊更有效的提取表情不同區(qū)域的細節(jié)信息。在添加使用數據增廣方法和多粒度模塊的條件下通過實驗對自修復模塊效果進行了驗證,表5實驗結果表明融合模型在RAF-DB數據集和AffectNet數據集上最高準確率分別達到87.10%和63.94%,與不使用自修復模塊相比分別提升2.78%和0.51%。此外,融合模型的運行耗時略有增加,但準確率提升明顯,結果表明模型在RAF-DB數據集和AffectNet數據集上均達到很好的識別效果。

表5 自修復模塊的影響/%
表6和表7是本方法分別在RAF-DB數據集和AffectNet數據集上與近年國內外其它方法的對比結果。實驗結果表明本方法在RAF-DB數據集上和AffectNet數據集的準確率均達到很高的準確率,超過多數現有方法,驗證了本文模型在人臉表情識別方向上的有效性。因此針對自然場景下的人臉表情識別,本文模型在每個組成部分都有效的情況下,具有較高的準確率和良好的魯棒性。

表6 在RAF-DB數據集上與其它方法的對比/%

表7 在AffectNet數據集上與其它方法的對比/%
本文針對表情圖像哪種粒度最具有區(qū)別性以及如何在多粒度之間融合信息,以及在自然場景下所建立的數據集通常存在錯誤數據、不確定樣本的問題,提出基于多粒度與自修復融合的人臉表情識別模型。本研究發(fā)現在人臉表情識別任務上多粒度可以有效提取表情特征信息,在漸進訓練過程中逐步添加不同粒度圖像并不是一直有效,將多粒度與自修復融合后能夠降低表情數據集的不確定因素,同時也有效提取了表情圖像的特征信息,進一步完善了人臉表情識別方法,提升了人臉表情識別的準確率。由于本文主要研究如何利用深度學習構建自然場景下的表情識別,在遠距離、側臉和低質量、低像素等復雜表情圖像方面沒有太多涉及,存在一些不足和改進之處,有待進一步深入研究。