王曉峰,王 昆,劉 軒,郝 瀟
(1.山西大學 物理電子工程學院,山西 太原 030006;2.國網山西省電力公司檢修分公司,山西 太原 030000)
人臉表情作為人類最為直觀的一種情感表達方式,隨著計算機技術的發(fā)展,人臉表情識別一直受到了廣泛的關注[1]。自動人臉表情識別不僅在安全防范、輔助醫(yī)療等領域有廣泛應用,在智能控制、自動駕駛等人機交互領域也起著關鍵性作用[2]。然而,人臉表情識別也是計算機視覺中一項具有挑戰(zhàn)性的任務。傳統(tǒng)表情識別方法通常包括圖像預處理、特征提取和表情識別3個步驟,其中特征提取質量直接影響人臉表情識別分類的魯棒性,并且圖像預處理的效果對保證識別準確度至為重要[3]。
傳統(tǒng)的表情識別特征提取方法一般分為基于靜態(tài)圖像和基于動態(tài)圖像的特征提取算法。其中Gabor小波法、局部二值模式(local binary pattern,LBP)等方法[4]是鑒于靜態(tài)圖像進行的特征提取的算法。而根據動態(tài)圖像進行的特征提取算法主要有差分圖像法、光流法以及根據特征點來進行跟蹤等方法。在表情識別中,特征提取對于識別的準確率至關重要,直接影響到表情分類的準確性,其中表情分類法主要是隱馬爾科夫以及人工神經網絡算法[5]。
隨著深度學習方法的發(fā)展,深度學習算法逐步替代了表情識別中的傳統(tǒng)方法,基于深度學習的多任務學習方法(deep multi-task learning,DMTL)也被用于解決人臉表情識別中的分類識別問題。多任務學習利用包含在多個相關任務中的寶貴信息來改善所有相關任務的性能[6]。此外還開發(fā)了很多基于DMTL的面部表情識別方法,其中包括使用DMTL推斷面部信息以識別面部特征[7]。但現有表情識別方法大多只考慮類別標簽信息,而忽略樣本空間分布的局部信息。針對這一問題,提出了一種自適應重加權池化深度多任務學習的表情識別方法。其主要創(chuàng)新點如下:
(1)為了同時考慮類別標簽信息和樣本空間分布的局部信息,提出一種判別式DMTL方法,將判別性局部空間分布信息添加到softmax損失中;
(2)為了利用來自訓練樣本的判別信息,設計了一個孿生神經網絡,通過自適應重加權模塊并利用具有不同置信度的類別標簽信息來評估局部空間分布;
(3)針對常用池化算法存在特征信息提取模糊,甚至丟失等問題,所提方法通過參數的選取改進自適應池化方法以提高特征提取的靈活性。
作為一種機器學習范例,多任務學習利用多個相關任務中包含的有價值的信息來改善所有相關任務的性能。通過在不同任務之間共享信息并利用這些任務之間的相似性,這是一種轉移學習[8]。文獻[9]提出了一種新穎的任務自適應激活網絡(task adaptive activation network,TAAN),從具有完全共享的網絡其它參數的數據中導出針對不同任務的靈活激活功能。文獻[10]提出了一種多任務人臉推理模型(multi-task facial inference model,MT-FIM),在多任務學習的框架下,通過提取和利用適當的共享信息來同時學習人臉識別和表情識別,MT-FIM同時最小化了類內分散,最大化了不同類之間的距離,從而使每個單獨的任務都具有健壯的性能。但這些方法對于多任務的學習均忽略了局部樣本信息,導致識別效果不佳。
隨著深度多任務學習(DMTL)的發(fā)展,其作為一種高效的機器學習技術,在人臉表情識別中得到了廣泛的應用。文獻[11]提出了一種區(qū)改進DMTL面部表情識別方法,通過同時考慮類別標簽信息和樣本的局部空間分布信息來獲得完整的人臉特征,用于完成表情識別。然而,現實中的情況往往更為復雜,在進行人臉圖像的采集過程中往往會出現光照強度不一、姿勢不斷變化、人臉出現略微變形以及障礙物對人臉造成遮擋等,這也是導致人臉表情識別率相對較低的主要原因。因此,對于滿足實際的需求來說,還存在著一定的差距[12]。
隨著深度學習技術的發(fā)展,已有包括卷積神經網絡(convolution neural network,CNN)和孿生神經網絡等多種神經網絡算法得到了廣泛應用[13]。其中孿生神經網絡由兩個使用共享參數的重復子網組成。當前,孿生神經網絡已被應用于諸如語音特征分類和文本分類等諸多領域。如文獻[14]研究了面部圖像序列中的情緒強度估計的連體和三聯體網絡能力,其中提取了由于面部表情模式中自然起始頂點偏移變化而出現的時域中的順序關系,并且連體和三聯體網絡的分支有助于產生更確定的輸出。當處理相似的順序圖像時,此屬性提高了網絡通用性。但是,由于人臉表情的微妙和復雜性,這些方法在實際條件下效果不佳。
CNN尤其是在圖像處理和視頻處理領域體現出了其優(yōu)越的能力。文獻[15]提出了一個新穎的框架,可以共同學習人臉表情圖像的空間特征和時間動態(tài),使用深度網絡從每個幀中提取空間特征,同時通過卷積網絡對時間動態(tài)建模。但是,該方法不能充分利用人臉圖像中的信息,容易導致關鍵信息的錯判和漏判。另外,文獻[16]提出了一種基于深度學習方法的面部表情識別方法,采用長短期記憶網絡(long and short term memory network,LSTM)存儲單元的卷積神經網絡從圖像序列中提取相關信息,并基于單幀圖像和歷史相關信息進行表情判斷。該方法實現了深度學習模型構建過程中參數的自適應初始化,但在整個處理過程中自適應程度較低,因此,識別準確度仍存在提升的空間。
為了提高人臉表情識別的準確度,提出了一種利用自適應重加權和自適應池化的DMTL人臉表情識別模型,主要由兩部分組成,分別是生成器和判別器,其中生成器由特征提取器和特征合成器組成,如圖1所示。
對于特征提取,提出改進的自適應池化方法,用于改善特征提取的靈活性。且設計了一個孿生神經網絡,通過自適應重加權模塊并利用具有不同置信度的類別標簽信息來評估局部空間分布。
同時,在判別器中利用判別式DMTL算法,充分考慮樣本的局部信息。判別式DMTL的結構如圖2所示。
圖2 判別式DMTL的結構
判別式DMTL網絡中的前3個卷積層為共享層,后3層為粗粒度層和細粒度層,細粒度層的卷積層卷積核數降低至原來的1/4。
本文基于判別式DMTL方法,使用自適應重加權模塊,以softmax損失進行判別,從樣本中獲取局部空間分布信息[17,18]。為了結合類別標簽信息與約束損失,設計一種具有兩種損失函數的孿生神經網絡:判別性softmax損失,使用類別標簽信息和樣本的局部空間分布信息;對比損失,有助于有效防止過度擬合問題。假設給定一個數據集X,該數據集X由來自M個不同類別的N個樣本組成,則判別性softmax損失可以表示為
(1)
判別式DMTL的目標是利用來自訓練樣本的判別信息。因此,提出了一個自適應重加權模塊ωk,將局部空間分布信息添加到提出的孿生神經網絡中。另外,基于樣本對之間的置信度將權重分配給每個樣本的重加權模塊既可以最小化相似樣本之間的距離,又可以最大化不同樣本之間的距離。則該方法的判別性softmax損失函數定義為
SL(xi,xj,φ1,φ2,yi,yj)=
(2)
式中:xi和xj是與訓練樣本xi和xj對應的網絡輸出;yi和yj是與xi和xj對應的類標簽;φ1和φ2是兩個softmax損失的參數。自適應重加權模塊ωk通過提供特定的本地分布信息來提高分類性能。
為了設計自適應重加權模塊ωk,考慮用高級表示來表征同一類別的樣本,而不使用不同類別的樣本。因此,可以將pCON(xi,xj)定義如下
(3)
式中:Nk(xi)是xi個k個最近鄰的集合,max{k-d(xi),d(xi,xj)} 是從xi到xj的可達距離。即,如果xi和xj足夠接近,則可達距離為k-d(xi);如果xi遠離xj,則可達距離為d(xi,xj)。當k=5時,可達距離的說明如圖3所示。
圖3 d(xi,xj2)和k-d(xi)
如果對象xj遠離xi(如圖3中的xj2),則兩個對象(即對象xi和對象xj2)之間的可達距離是它們的實際距離。如果對象xj足夠接近xi(如圖3中的xj1),則在計算兩個對象(即對象xj和對象xj1)之間的可達距離時,實際距離將由xi的k距離代替。因為對于所有接近xi的xj,d(xi,xj)的統(tǒng)計波動都可以大大減少。因此,參數k可以控制平滑效果的強度,這將導致接近的對象達到相似的可達距離。
由于pCON(xi,xj)是一種概率算法,因此可以將自適應加權模塊ωk定義為
(4)
式中:T表示迭代次數,G表示局部高斯統(tǒng)計量轉換,可用于縮放概率值。判別式DMTL迭代不能有復雜的過程。但可以通過足夠長的迭代收斂到相似的結果[19]。
2.3.1 常用池化算法的劣勢
由于各種不同類型的池化算法間的區(qū)別只取決于所選的卷積核,因此,池化算法通常被視為卷積運算,池化操作后的特征矩陣S為
(5)
圖4 不同池化域
2.3.2 自適應池化算法的原理
由上文的分析中我們得知,對于傳統(tǒng)的池化算法來說,在進行卷積神經網絡訓練時卷積核的參數取值是固定的。此外,也無法基于訓練樣本和在訓練過程中發(fā)生的變化來選擇合適的參數。因此,該方法會造成提取的特征信息存在不清晰,以及重要特征信息缺失等問題,仍不是最佳的方法。
能對人腦的自主學習能力進行模仿,這是人工神經網絡中最重要的特征。其中,人腦主要是通過閱讀、傾聽等方式來對外界信息進行接收從而完成自主學習的過程;同理,人工神經網絡也有一個學習的過程,該過程是通過對所得樣本集進行訓練的過程,也可以理解為是對復雜函數關系的一個尋找過程。若神經網絡定義的函數式能滿足訓練樣本集時,就表示完成了網絡模型訓練;反之,便再次對網絡模型參數進行相應的調整,該過程直至定義的函數關系能滿足訓練樣本集時才停止[20]。
上文所提的幾種傳統(tǒng)的池化方法都存在著各自的缺陷,而人工神經網絡由于其自身的特點,即能通過在大量的訓練集中不斷進行監(jiān)督訓練,從而能對參數的特點進行多次修正,最終得到在各種的場景下都能適用,并且能夠進行自適應動態(tài)修正的卷積核參數[21]。
2.3.3 實現方法
本文在根據自適應池化算法的基礎上,對其進行了改進提出了一種自適應改進池化算法。該算法的主要步驟為:①對池化內的參數都進行初始化操作,也就是對卷積核參數γ進行初始化;②在訓練中,池化值是在采用卷積操作后得到的;③在進行訓練迭代時,通過采用梯度下降法對參數γ進行更新;④在多次迭代和優(yōu)化參數后,最后完成了自適應池化操作[22]。
自適應池化算法的過程為:
第一階段:將人臉圖像所得到的灰度矩陣作為輸入,再經過判別式DMTL的映射關系后,最后輸出對人臉表情類別的預測值。
第二階段:基于之前得到的預測值以及真實值,使用損失函數對兩者之間的差值進行計算。其中,SVMLoss和SoftmaxLoss這兩種損失函數是在進行判別式DMTL的訓練過程中使用最為廣泛的兩種函數,本文采用的是SoftmaxLoss,其表達式如下所示
(6)
其中,最后的預測值記為y;θ表示神經元間的權值;示性函數由l{} 進行表示,若 {} 中表達式為真則取1,反之取0;權重衰減項則是由式中第二項所表示。
在每次訓練迭代中,基于所得的SLoss值對網絡模型的參數進行適當的調整,使得損失函數的參數能達到最小,從而使預測的結果能更加接近實際值。
第三階段:基于損失函數,并使用梯度下降法對池化參數γ進行更新,以得到最優(yōu)參數,也就是找到損失函數的極小值。表達式如下
(7)
其中,步長以及學習率均由ε進行表示;損失函數記作f()。
最終池化算法的參數值在經過多次的迭代和更新,以及不斷收斂達到損失函數的極值后便可獲得。
實驗基于MATLAB仿真平臺展開,其中實驗的硬件環(huán)境設置成:主要采用的操作系統(tǒng)為Linux、系列為E5-1620 v4 的CPU、CPU的時鐘頻率為3.5 GHz、型號為NVIDIA Quadro M2000,顯存的大小為2 GB。使用的深度學習平臺是基于Caffe。
本次實驗中對多種數據集進行了采集,在CK+數據集和MMI數據集上分別采集了2940幅和31 570幅圖像,在FER2013數據集上分別對其訓練集和測試集采集了572 796幅和71 620幅圖像。由于不同數據集采集的圖像在數量上存在著差異,因此,分別對不同數據集圖像的輸入大小進行了處理,將CK+和MMI數據集上的圖像分別調整為227×227 像素和128×128像素后再進行輸入;在FER2013數據集上將圖像大小調整為42×42像素。為確保本次實驗結果是有效的,采用了10倍交叉驗證的方法。該方法是通過將CK+數據集以及MMI數據集平均分為10組,再將其中9組均作為訓練集,剩下一組作為測試集;共進行10次實驗,以 10次實驗結果的平均值作為最終結果。在FER2013數據集中,原始測試集的擴展圖像被劃分成10份,在每次需要測試時便選取其中的一份,并將10個預測結果的均值作為最終的得分。如此,便可以確保每個樣本都能作為測試集和訓練集,還有效解決了由于一些誤差較大的數據對識別率造成負面影響的問題。
在小型數據集上直接對深度神經網絡進行預訓練可能會導致過度擬合的問題。因此,判別式DMTL的實驗模型由4個卷積層、一個完全連接層和一個softmax層組成,其中每個卷積層后面是一個最大池化層和一個局部響應歸一化層。從完全連接層中提取的特征將被輸入到softmax層中進行分類。
實驗中將初始網絡學習率設置為0.05,并且學習率在每個時期都會下降,優(yōu)化處理中使用隨機梯度下降法來更新判別式DMTL的參數。將所提方法與文獻[10]、文獻[13]、文獻[16]中方法在3個數據集上進行對比論證。文獻[10]提出了一種MT-FIM,在多任務學習的框架下,通過提取和利用適當的共享信息來同時學習人臉識別和表情識別。文獻[13]提出一種用于面部表情識別的緊密連接CNN結構,將每個卷積層的輸出連接到該結構中下一個卷積層的輸入。文獻[16]提出一種基于深度學習方法的面部表情識別方法,采用LSTM存儲單元的卷積神經網絡從圖像序列中提取相關信息,并基于單幀圖像和歷史相關信息進行表情判斷。
其中,在對人臉表情識別系統(tǒng)的評估中,最常用的實驗室控制數據集是CK+數據集。該數據集擁有593個視頻序列,都是從123個對象中進行提取得到的。該數據集中的序列持續(xù)時間各不相同從10幀到60幀,將人臉表情由中性到高峰表情的轉變過程進行了展示。在這些視頻序列中從118個實驗對象中提取的327個視頻序列中,均有著7個基礎的表情標簽,它們分別為:生氣、蔑視、討厭、害怕、高興、傷心和驚訝等表情,這些都是根據面部運動編碼系統(tǒng)得到的。其中在CK+數據集中的中性表情是通過采用蔑視的表情來代替的,由于CK+數據集并沒有特意設置訓練集、驗證集以及測試集,因此,其并沒有統(tǒng)一的算法評估。借鑒靜態(tài)圖片的方法,一般情況下,大部分人采用的方法是將圖像中擁有高峰表情的最后1幀到3幀和每個序列的第一幀(中性面)進行提取,再將提取的數據分為n組,最后進行n倍的交叉驗證實驗,一般n取5、8、10。CK+表情分類的圖像示例如圖5所示。
圖5 CK+數據集上7個表情圖例
經過10萬次的迭代訓練之后,計算10倍交叉驗證后的人臉表情識別率,所提方法與3種對比方法在CK+數據集上得到的最終結果如圖6所示。
圖6 CK+數據集上不同方法的識別率對比
從圖6中可以看出,經過40 000次的迭代,測試的識別率已逐步趨于穩(wěn)定,即表示這是在經過充分收斂后得到的結果。在CK+數據集中,相比于其它方法,所提方法的識別準確率最高,為95.2%。文獻[10]中的MT-FIM方法利用適當的共享信息完成表情識別,受信息特征的影響較大,識別準確率較低。文獻[13]和文獻[16]均采用了深度神經網絡,但文獻[16]結合LSTM網絡提取表情特征,因此識別準確度稍高。
為更好的對所提方法和其它方法的性能優(yōu)勢做出說明,本文將測試集作為其它對比網絡的輸入,并將混淆矩陣作為評判性能的指標,在CK+數據集上的結果如圖7所示。
從圖7中可以看出,所提方法在7種表情的識別率均優(yōu)于其它對比方法,并且對于高興和驚訝表情的識別準確率超過97%,對于討厭和蔑視表情的識別準確率低于90%,對于害怕表情的識別準確度最低。這是因為害怕和悲傷的表情在某些情況下彼此相似,導致它們在像素空間中并沒有區(qū)別,因此經常會引起混淆。此外,所提方法中采用判別式DMTL中使用樣本之間的局部空間分布信息實現最佳的表情識別效果,將相似樣本之間的距離最小化,并將不同樣本之間的距離最大化。
圖7 CK+數據集上不同方法的混淆矩陣
MMI數據集是實驗室控制的數據集,包括來自32個受試者的326個序列,其中213個序列用6種類型的表情標簽標記,并且在正面視圖中捕獲了205個序列。每個序列以中性表達開始和結束,在序列中間附近達到面部表情的峰值。在實驗中,選擇序列中間附近的3個幀作為峰值幀,并將其與它們的表情標記相關聯。圖8顯示了MMI數據集中的一些樣本圖像。由于MMI數據集僅包含少量樣本數據,這不足以訓練深度神經網絡,因此從CK+數據集中補充了具有相同表情的其它數據作為實驗數據。將8組MMI數據集與其它CK +數據集組合為訓練集,并將其它2組MMI數據集用作評估和測試集。
圖8 MMI數據集的部分示例圖像
經過10萬次的迭代訓練之后,計算10倍交叉驗證后的人臉表情識別率,所提方法與3種對比方法在MMI數據集上得到的最終結果如圖9所示。
從圖9中可以看出,經過40 000次迭代,測試的識別率趨于穩(wěn)定。文獻[10]和文獻[13]的識別準確度較低,低于0.8,而所提方法的實驗結果仍保持著較高的識別準確度,最高時比文獻[16]大約高7%以上。由于所提方法采用判別式DMTL包含樣本的其它判別信息,因此其性能優(yōu)于其它對比方法,由此也驗證了判別式DMTL的穩(wěn)定性和魯棒性。
圖9 MMI數據集上不同方法的識別率對比
本文通過將測試集分別輸入到不同的對比網絡中,并以混淆矩陣作為評判性能的指標,來進一步驗證所提方法相比于其它方法具有更好的性能,最終MMI數據集上的結果如圖10所示。
從圖10可以看出,與CK+數據集上的實驗結果相比,所有表情的識別準確率均有所下降,尤其是所提方法害怕表情的識別準確率僅為54%,這表明人臉表情識別是一項艱巨的任務。但所提方法在7種表情的識別率均高于其它對比方法,這也論證了其魯棒性,適用于多種數據集。
由35 886張人臉表情圖片組成了FER2013人臉表情數據集,該數據集中共有28 708張測試圖,其中包括公共驗證圖3589張、私有驗證圖3589張,并且每張圖片有固定大小為48×48灰度圖像,其中主要有7種表情,為生氣、厭惡、恐懼、開心、傷心、驚訝和中性。該數據集是將人臉的表情、圖片的數據以及用途數據直接存儲到csv文件中,而非以圖片形式給出。實驗中使用pandas解析csv文件,即可提取表情圖片。
經過10萬次的迭代訓練之后,計算10倍交叉驗證后的人臉表情識別率,所提方法與3種對比方法在FER2013數據集上得到的最終結果如圖11所示。
從圖11中可以看出,經過30 000次的迭代,測試的識別率基本保持平穩(wěn)。在FER2013數據集中,相比于其它方法,所提方法的識別準確率最高,為73.6%。由于FER2013數據集的圖像像素較小,且數量龐大,在人臉表情的識別過程中容易混淆,因此識別率低于CK+和MMI數據集。
為更好驗證所提方法相較于其它方法而言更具性能優(yōu)勢,本文將測試集輸入到其它對比網絡中進行計算,并以混淆矩陣作為評判性能的指標,最終得到FER2013數據集上的結果如圖12所示。
圖12 FER2013數據集上不同方法的混淆矩陣
從圖12可以看出,相比于CK+和MIM數據集,FER2013數據集中的各表情識別率均有所下降,這是由數據集的特征造成的。但所提方法的識別率仍高于其它對比方法,尤其是對于高興和傷心表情的識別,準確率高于80%。
為了論證所提方法的識別效率,將其與文獻[10]、文獻[13]、文獻[16]的識別時間進行對比,在CK+數據集上的實驗結果見表1。
從表1中可以看出,所提方法的識別時間僅為0.082 s,由于判別式DMTL中采用了自適應重加權和自適應池化,加快了算法的收斂速度,因此完成識別的時間較短。文獻[10]中MT-FIM通過提取和利用適當的共享信息來同時學習人臉和表情識別,選取信息的過程耗時較長。文獻[13]采用CNN進行人臉表情識別,由于參數以及層數的原因,迭代一次所耗費的時間較長。而文獻[16]采用LSTM存儲單元的卷積神經網絡從圖像序列中提取相關信息,相比文獻[13],執(zhí)行速度較快,耗時較短。
表1 識別時間對比結果
該文提出了用于人臉表情識別的判別式DMTL方法,可以同時利用類別標簽信息和樣本空間分布的局部信息來處理空間分布中的局部信息丟失。判別式DMTL基于具有共享權重的孿生神經網絡,旨在通過自適應重加權模塊測量局部分布,同時利用改進的自適應池化方法動態(tài)調整優(yōu)化參數,以提高面部表情識別的準確性。在CK+、MMI和FER2013這3個廣泛使用的人臉表情數據集上對所提方法進行實驗論證。實驗結果表明,所提方法的識別率和執(zhí)行時間均優(yōu)于其它對比方法,尤其是在訓練樣本相對于局部信息而言較小的情況下。盡管如此,當處理組合的人臉表情數據集(即訓練集由多個人臉表情數據集組合)時,雖然所提方法仍取得了理想的識別結果,但識別準確均略有下降。因此,接下來的研究將側重于如何提高處理組合人臉表情數據集時的識別準確性。