季欣欣,邵 潔,錢勇生
(上海電力大學 電子與信息工程學院,上海 200090)
智能情感分析研究已經走過了漫長的道路,但傳統上一直關注場景中的單一個體,而不是群體[1]。群體可分為大小群體,大群體如街道的人流,此時人與人之間并沒有情感的交流和統一的情緒,本文是對多位個體間有情感交流的小群體進行情緒識別,下文提及的群體均指小群體。由于面部遮擋、光照變化、頭部姿勢變化,各種室內和室外環境不同以及由于相機距離不同而導致低分辨率的面部圖像,因此群體情緒識別問題具有挑戰性。
目前,針對群體情緒識別已有許多研究方法。Dhall等[2]介紹了AFEW數據庫和群體情緒識別框架,包括使用面部動作單元提取面部特征,在對齊的面上提取低級特征,使用GIST和CENTRIST描述符提取場景特征并使用多核學習融合,但是他們提出的方法依賴于LBQ和PHOG特征和CENTRIST,其捕獲面部表示和場景表示是有限的。Y. Qiao[3]提出將基于面部和整張圖像上的卷積神經網絡(CNN)單獨訓練,并融合以得到分類結果。然而群體情緒計算為群體成員的幸福水平的平均值,忽略了特殊個體信息(例如臉部的遮擋水平和哭笑的臉),因此對于群體情緒識別仍有待提高。
在本文中提出通過建立混合網絡來解決這一問題,該網絡在面部、場景和骨架上單獨訓練3個卷積神經網絡(CNN)分支,然后通過決策融合以獲得最終的情緒分類。其中一個模型是基于人臉面部特征來訓練,并使用注意力機制學習不同人臉的權重,獲得整張圖片關于人臉的特征表示。通過對比實驗,驗證了本文方法的有效性,并獲得較高的準確率。
本文的系統框架如圖1所示。首先對檢測到的人臉做對齊相似變換,作為面部CNN的輸入,并通過注意力機制學習圖像中不同人臉的權重,獲得整張圖片關于人臉的特征表示。其次使用OpenPose獲得圖像中人體的骨架,作為骨架CNN的輸入。同時考慮了圖片的場景信息,將整張圖片作為場景CNN的輸入。3種類型的CNN都訓練了多個模型,然后對選取的模型執行決策融合以學習最佳組合。
群體圖像中人臉所描繪的表情傳達了充分的情感信息,在情緒識別中起著至關重要的作用,因此建立面部情感CNN來進行群體情緒識別。本文使用ResNet18[4]模型,模型的輸入為對齊的人臉圖像。為了減輕過擬合現象并增強模型泛化能力,使用CASIA-Webface數據集對其進行預訓練,然后使用L-softmax損失在EmotiW訓練數據集[5]中進行微調。下面介紹本文使用L-Softmax損失函數和注意力機制。

圖1 群體情緒識別系統框架
1.1.1 L-Softmax損失函數
Softmax Loss函數經常在卷積神經網絡被用到,較為簡單實用,但是它并不能夠明確引導網絡學習區分性較高的特征[6]。Large-margin Softmax Loss(L-Softmax)被引入用于判別學習,它能夠有效地引導網絡學習使得類內距離較小、類間距離較大的特征[7],圖2從幾何角度直觀地表示兩種損失的差別,W1=W2即指等量的二分類問題。同時,L-Softmax不但能夠調節不同的間隔(margin),而且能夠減輕過擬合問題。在微調階段,對于面部特征xi,損失通過以下公式計算
(1)
其中,yi是xi的標簽,wyi是全連接層中j類的權重
(2)
(3)
其中,m是預設角度邊界約束,k是整數且k∈[0,m-1]。

圖2 L-Softmax損失幾何理解
1.1.2 注意力機制
群體圖像中存在多個人臉,為了可以獨立于圖像中存在的不同面部來進行情感識別,需要將所有的面部特征轉換為單個表示。
最簡單的解決方法是計算平均特征,但圖像中某些面部情感與圖像的標簽無關,可能會混淆最終的分類。例如考慮哭笑的情況,許多方法容易將其混淆為負面情緒,因而無法進行有效識別。如果將置信度值與圖像中每個面部相關聯,就可以通過對哭泣的面部賦予較低的重要性,從而來推斷圖像表示正面情緒。
基于上述理解,本文使用注意力機制來找到圖像中每個面部的概率權重,根據這些權重計算加權和以產生面部特征的單個表示。該注意力機制的方案如圖3所示。將圖像中檢測到的面部輸入到特征提取網絡,即ResNet18。再把面部特征向量Pi輸入到具有一維輸出μi的全連接層,μi獲取了面部的重要性,并用其計算得分向量Pm
(4)
然后將Pm和pi連接起來并將其輸入另一個全連接層,其中一維輸出注意權重δi表示pi和Pm之間的關系。根據注意權重計算特征的加權和,以產生特征向量Pd,其指示基于人臉的圖像全局表示

圖3 注意力機制
(5)
圖像的全局場景為群體情緒識別提供重要線索。例如在葬禮期間拍攝的照片最有可能描繪出負面情緒;在婚禮中拍攝的照片最有可能表現出積極的情緒;而會議室中出現的照片更可能是中立的情緒。因此,本文使用最先進的分類網絡SE-net154[8]從整個圖像中學習全局場景特征,訓練基于圖像全局的場景CNN。SE-net154是一種先進的識別網絡,引入了壓縮和獎懲網絡模塊篩選有用特征,壓縮和獎懲網絡模塊如圖4所示[8]。

圖4 SE網絡模塊
壓縮和獎懲網絡模塊(squeeze-and-excitation blocks,SE)通過精確的建模卷積特征各個通道之間的作用關系來改善網絡模型的表達能力,是一種能夠讓網絡模型對特征進行校準的機制,使網絡從全局信息出發來選擇性地放大有價值的特征通道并且抑制無用的特征通道。壓縮功能如下所示
(6)
其中,zc是壓縮通道的第c個元素,Fsq(.)是擠壓函數,uc是第c個通道的輸入,W和H表示輸入的高度和寬度。
獎懲操作包括兩個全連接層兩個激活層操作,具體公式如下
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
(7)

以往的情緒識別廣泛使用人體面部特征,但根據實驗心理學和情感計算的研究結果,身體姿勢特征也傳達重要的情感信息。為了保留人臉標志和身體特征關鍵點的相對位置,本文使用骨架特征表示,對應于人臉、身體和手的關鍵點集合。
本文使用OpenPose[9]來獲得人體骨架姿勢,它可以聯合檢測單幅圖像中人體、手和面部的關鍵點(每個人總共135個關鍵點),并且與圖像中檢測到的人數相同,效果如圖5所示。提取結果顯示清晰的嘴形、身體姿勢、手勢和人物在圖像中的布局,骨架特征圖像與原始圖像尺寸相同,再將圖像按人體骨架外部最大矩形裁剪。本文使用ResNet101[4]、SE-net154[8]作為骨架CNN來識別群體情緒,首先通過模型獲取圖像中每個人骨架的得分,然后將所有骨架的得分和平均作為整個圖像的預測。

圖5 骨架提取
實驗使用EmotiW數據庫,其圖像來自Group Affect Database 2.0[5]。它包括9815個訓練圖像,4346個驗證圖像和3011個測試圖像,圖像標簽將群體情緒分類為正面,中性或負面。這些圖像是從社交活動中收集的,例如聚會、結婚、派對、會議、葬禮、抗議等。該數據集的一些樣本如圖6所示。

圖6 EmotiW數據庫樣本
本文在基于Python的深度學習框架PyTorch環境下進行訓練和測試實驗。電腦系統環境如下:
(1)Ubuntu16.04×64;
(2)AMD Ryzen 5 1600 CPU;
(3)16 GB內存;
(4)NVIDA GeForce GTX 1080。
2.2.1 面部CNN訓練
本文使用多任務級聯卷積網絡模型(MTCNN)來檢測圖像中人的面部,MTCNN是基于卷積神經網絡的人臉檢測方法,具有性能高和速度快的優點。它包含3個級聯CNN,可以快速準確地檢測和對齊面部5個關鍵點(即兩只眼睛、兩個嘴角和鼻子)。它根據輸入圖像構建多尺度圖像金字塔,然后將它們提供給以下三級級聯框架,候選區域在第一階段產生并在后兩個階段細化,面部標志位置在第三階段產生。
從MTCNN模型獲得的面部因圖像差異而具有不同的方向和比例,為了學習更簡單的模型,將每個面部標準化為正面視圖并且統一面部圖像的分辨率。可使用5個檢測到的面部標志點來進行相似變換,使得各臉部的眼睛處于同一水平并將圖像尺寸重新縮放到96×112,獲得所有基于人臉表情面部CNN所需要的對齊人臉。
對基于人臉表情的面部CNN,本文訓練了注意力機制模型,即ResNet18_Attention。模型訓練設置批量大小為16,初始學習率為0.001,且應用學習率衰減,每9個時期將其除以10,持續27個時期。
為了比較不同先進網絡架構的性能,除了ResNet18模型,本文還使用了SphereFace[10]、VGG-FACE[11]和SE-net154。先在FERPlus表達數據集上預先訓練這些CNN,然后在EmotiW訓練數據集中使用L-Softmax損失對它們進行微調。
2.2.2 場景CNN訓練
對基于圖像全局的場景CNN,本文使用了4種網絡:VGG19[11],ResNet101[4],SE-net154[8]和DenseNet-161[12]。其中VGG19在Places數據集上預先訓練,ResNet101、SE-net154和DenseNet-161在ImageNet數據集上進行預訓練,然后使用Softmax損失在訓練數據集中進行微調。在這4個模型中,將所有圖像保持長寬比例縮放至最小邊256,這樣可以最大程度保持圖片形狀,并隨機裁剪224×224區域。訓練參數設置與基于注意力機制的面部CNN模型相同。
2.2.3 骨架CNN訓練
對于骨架CNN,本文采用的ResNet101和SE-net154在ImageNet數據集上進行了預訓練,然后在提取的骨架圖像上進行微調,且使用與基于圖像全局的場景CNN模型相同的訓練策略。
2.2.4 模型融合
單個分類器通常不能處理現代模式識別任務的多樣性和復雜性,而且決策融合不同分類器的優越性也已經得到了證明。
混合網絡是通過融合各個模型的預測而構建的,在所有模型的預測中執行網格搜索以學習每個模型的權重[13]。盡管它只是通過手動指定的超參數空間子集進行窮舉搜索,并且不能保證是最優的,但它是決策融合有效且廣泛使用的方法。權重范圍從0到1,增量為0.05,其總和限制為1。權重為0的模型是冗余的,因此從混合網絡中刪除。
評估人臉表情的面部CNN,表1顯示了EmotiW驗證集上5種面部CNN模型的結果,所有型號的準確度均達到70%左右。如表可得使用注意機制的網絡比Resnet18基線提高了性能約2%,即訓練面部CNN時,本文使用注意機制是有效的。
評估基于圖像全局的場景CNN,表2列出了EmotiW驗證集上4種場景CNN模型的結果。其中VGG19使用L-Softmax損失,ResNet101、SE-net154和DenseNet-161使用Softmax損失。由表可見SE-net154和DenseNet-161獲得了較優的性能。

表1 EmotiW驗證集上面部CNN模型的結果

表2 EmotiW驗證集上場景CNN模型的結果
評估基于人物的骨架CNN,表3顯示了EmotiW驗證集上兩種骨架CNN模型的結果。由表可見SE-net154的性能優于ResNet101。

表3 EmotiW驗證集上骨架CNN模型的結果
如圖7給出了3個CNN分支上最優模型的混淆矩陣,可知面部CNN和骨架CNN對于正類和負類表現相對更好,但在識別中性類時更差。這背后的原因可能是這兩個分支的群體情緒由人體的面部和肢體語言主導,而沒有考慮人物所處的環境。場景CNN在識別中性時取得了較好的效果,因此有必要結合多個分支的優點,提高準確率。

圖7 各分支最優模型的混淆矩陣
混合網絡最終由7個模型組成:SphereFace、ResNet18_Attention、ResNet18、VGG-FACE、SE-net154(場景)、DenseNet-161(場景)和SE-net154(骨架)。表4顯示了EmotiW 測試集上具有不同權重的多個模型組合結果,并與文獻[14]和文獻[15]進行比較,準確率分別提高了3.82%和1.9%,驗證了本文方法的有效性。

表4 EmotiW測試集上混合模型的結果
本文研究了對圖像中小群體情緒進行識別的問題,提出基于3種視覺特征的卷積神經網絡(CNN),即基于人臉表情的面部CNN,基于圖像全局的場景CNN和基于人體姿勢的骨架CNN。在面部CNN中引入有效的注意機制來融合不同人臉的面部特征,降低了由個別面部表情混淆最終分類的可能,還利用L-Softmax損失進行判別性學習。用OpenPose獲得圖像中的人體骨架作為骨架CNN的輸入,充分利用了圖像中人物的情緒線索,并在網絡中引入壓縮和獎懲網絡模塊來改善模型的表達能力。最后還探索了多個模型的決策融合,在EmotiW數據庫上進行實驗以評估所提出方法的識別性能。與現有技術方法相比,實驗結果表明本文模型獲得了較高的識別率,驗證了本文方法的有效性。