黃 浩,葛洪偉+
1.江蘇省模式識別與計算智能工程實驗室(江南大學),江蘇 無錫214122
2.江南大學 人工智能與計算機學院,江蘇 無錫214122
面部表情是人類情緒的最直接外部表現之一,同樣的信息配合不同的表情可能有完全不同的涵義。要達到高效的人機交互,機器準確理解人類表情至關重要。除了追求未來科技上的進步,在各種現實問題上,表情識別也有廣泛的應用前景。在心理學研究、疲勞駕駛檢測、自閉癥行為研究等現實問題上已經有了部分應用。其分支微表情識別也具備成為公共安防和刑偵審訊的重要工具的潛力。
在實際的課題研究中,數據是表情識別任務中的關鍵。根據數據的來源,可以將數據分為室內(lab-controlled)數據和野外(in-the-wild)數據。前者是邀請志愿者拍攝給定的表情,后者多是網絡上收集數據交由專業人士標注。一般而言,網絡數據要比實驗室擺拍更貼近真實生活中的場景,人的表情更加自然。同時,網絡數據也更能涵蓋不同國家、不同種族、不同膚色、不同信仰的人物數據,因而近年來的多數研究都集中在野外表情識別上。野外數據集擁有海量的數據,數據的量級和復雜程度導致傳統方法表現不佳,基于深度學習的表情識別已是現階段表情識別研究的最熱門也是最有效的方法。
如圖1 所示,深度人臉表情識別系統一般由三個部分組成:數據預處理、深度特征學習、深度特征分類。數據預處理包括人臉對齊、數據增強、數據清洗等方面。受益于人臉識別的多年發展,數據預處理階段的多數問題有了成熟的解決方案。多數的研究都是在后兩個主題上做修改,通過修改網絡結構或者損失函數來學習到更準確的數據模型。

圖1 深度表情識別通用流程Fig.1 General pipeline of deep facial expression recognition system
將表情視為動態過程更契合事實,這一方面也有了很多研究工作。然而,無論是處理成圖像序列還是視頻數據庫,都存在著計算量大、標簽成本高等實際問題。靜態的圖片用于情感識別雖有不合理之處,但由于其數據較易獲得、較易標記、便于研究等特點,是現階段表情識別的重點。同時,從靜態圖像中研究出來的成果也可以較為方便地移植到圖片序列的識別任務中。
不同于其他的模式識別任務,人臉表情識別數據中的有用信息相對較少。具體而言,識別表情主要依靠分辨五官和整體面部的幾何特性,人臉的毛發、紋理、裝飾物往往起到的是負面作用。大量的冗余信息使得表情識別問題的精度嚴重受限,即使是深度學習方法也需要引入部分先驗知識作為輔助。2016 年,Barsoum 等提出使用眾包算法可以提高人臉表情數據庫的標簽可靠性,同時達到節約成本的目的。通過重標簽引入了更多信息,提供了Ferplus數據庫;2019 年,Barros 等提出了一種基于傳統對抗性自編碼器的神經網絡模型來學習如何表示和編輯一般的情緒表達,通過一個PK(prior-knowledge)模塊引入喚起/效價(arousal/valence)表征和面部分布信息。2020 年,Takalkar 等提出了一種集成多種特征進行微表情識別的方法,引入了LBP-TOP 手工特征信息,結合CNN(convolutional neural network)深度特征,在大規模數據上取得了良好效果。
目前,國內在這一方向上的研究也已經走到了世界前沿。其中,北京郵電大學的鄧偉洪教授小組發表了多篇高水平論文,鄧教授小組主要研究了野外(相對以前長期的實驗室研究)表情識別問題,更貼切現實世界的情況,對于表情識別技術走向成熟和實際應用有重要意義,提出了DLP-CNN(deep locality-preserving CNN)模型,引入了深層特征的K近鄰聚類損失;中國科學院計算技術研究所的山世光研究員所領導的小組在有遮蓋的人臉表情識別方面取得了目前最好的結果,提供了有部分遮蓋的人臉數據集,提出了pACNN(convolution neural network with attention mechanism)方法,引入了人臉特征點局部信息。
為了解決人臉表情識別精度較低的問題,本文引入了類間關聯信息,提出了一種強化類間區分的深度殘差表情識別網絡RMRnet(recall matrix distinguished residual net),通過歸一化召回矩陣的分析,得出類間聯系,融合類間聯系到殘差網絡的設計中,通過強化強聯系類別的區分和適度平衡弱聯系類別的區分為網絡引入類間關聯信息。在多個大型數據庫上的實驗表明,本文模型性能卓越,在精度上優于基礎模型,在與先進方法的比較中也有良好的表現。
殘差網絡(residual net,Resnet)由何凱明等提出,引入殘差塊概念來代替重復的卷積層,將一層卷積層的特征提取能力描述為(),那么對應的殘差塊為()=()-。由于采用了下采樣跳層,一個殘差塊在反向傳播時梯度遞減的幅度僅相當于一層卷積。殘差網絡用來處理網絡退化問題,有著強大的特征提取能力,并且有相對較少的參數。圖2 展示了一個[[3×3,64],[3×3,64]]×2 殘差塊的結構(即Resnet18 中的第一個殘差塊),本文使用Resnet18 作為深度特征分析工具,也用作本文的骨干網絡。

圖2 一個[[3×3,64],[3×3,64]]×2 殘差塊Fig.2 A[[3×3,64],[3×3,64]]×2 residual block
通常來說,評價一個表情識別模型的優劣主要依據總體分類精度(overall sample accuracy)。如果探究類間關系,利用CM(confusion matrix)。直接使用CM 矩陣,各次實驗的數據之間會出現數值波動,也不夠直觀。為了下一步進行定量分析,對CM 矩陣做以下歸一化:

其中,c表示未歸一化混淆矩陣(CM)的第行、第列的值,表示真實分類為第類卻被劃分為第類的樣本數量,進一步可以求得CM 對應的RM(recall matrix)矩陣,RM 矩陣中的元素表示為:

用RM 來對各類表情做定量分析,探究類間聯系,如果各類數據之間確實關聯程度不盡相同,那么聯系更為緊密的類之間應該更難區分。本文在RAFDB 數據庫上做了如下先驗實驗。
本文使用Resnet18 作為先驗實驗的網絡模型,為了減少數據的長尾問題帶來的影響,對RAF-DB 數據庫做隨機欠采樣實現數據平衡:以最短類的數量為基準,在其他類中隨機選擇相同數量的圖片(以后簡稱為平衡集)。圖3 展示了在平衡集上的實驗結果。由于平衡數據庫的數據量較少,為了避免數據量的影響,還取了與此平衡數據集數量相等的符合原數據庫分布的圖片數據作為對照組(以后簡稱同分布集),對照實驗結果如圖4 所示。

圖3 平衡數據集的Resnet18 實驗(精度為58.6%)Fig.3 Resnet18 experiment of balanced dataset(accuracy is 58.6%)

圖4 原數據集同分布的Resnet18 實驗(精度為65.6%)Fig.4 Resnet18 experiment with codistribution of original dataset(accuracy is 65.6%)
由于數據的長尾效應,在數據模型中的各類數據有著不同的權重,表現在對照組中就是如圖4 所示的各類數據精確度的極度不平衡。例如圖中的恐懼(fear)和快樂(happiness),恐懼(有26%的精確度)是原數據庫中數量最少的類,僅僅有281 張圖片,而快樂(有86%的精確度)作為原數據中最多的類,包含了4 772 張圖片。
在經過數據平衡之后,由于數據的長尾效應引起的各類權重不一致被消除了。但由于測試集也有著和訓練集類似的數據分布,就整體精度而言,Resnet18 在同分布集上的表現優于平衡集上的表現。通常情況下,并不希望一個網絡模型對兩個類識別精度有較大的差異,本文的網絡模型設計也是基于平衡集給出的信息。并且,同分布集的數據被識別為大樣本類的概率更大,從它的實驗結果中也不可能得到公平的類間關系。使用以下的公式得到兩個類之間的關聯程度:

其中,(,)為true 時表示類和類相關度高,構建強關聯集{,},反之,相關度低;R表示RM 矩陣中類被錯誤識別為類的概率,表示相關系數閾值,依經驗設定。對于類,本文只考慮它的最大強關聯集。例如:∈{,}且∈{,,}時,為了避免類的分類權值被高估,也為了避免設定過小時類間關系過于復雜,本文將只考慮包含類的最大強關聯集{,,},舍棄強關聯集{,}。最后將不屬于任何一個強關聯集的類別劃分到弱關聯集中。應用這樣的方法,可以得到兩個強關聯集{fear,anger},{disgust,sadness,neutral}以及一個弱關聯集{surprise,happiness}。
融合上文中獲取到的類間關聯信息,本文的網絡模型如圖5所示。RMRnet模型接受RGB圖片信息作為輸入預測圖中人物表情,網絡由三部分組成:骨干網絡Resnet18,強聯系分支branch1、branch2和補充分支cp-branch。最后得到兩個輸出主干輸出out和類間區分匯總信息b_out。對目標圖片的預測值表示為:

圖5 RMRnet整體網絡結構Fig.5 Pipeline of RMRnet network

其中,表示類間信息參數,一般取0.1。對于骨干網絡輸出,選擇交叉熵函數作為損失函數:


相較于弱關聯類,強關聯類更難區分,需要更深層網絡提取差異信息。出于對特征層次的考慮,本文將強聯系分支branch1、branch2 放置在Resnet18 的第三個殘差塊與第四個殘差塊之間,將弱聯系分支cp-branch 放置在Resnet18 的第二個殘差塊和第三個殘差塊之間。
每一個強化支路設計為一個殘差塊和兩層全連接層的組合,分支的目的是為了進一步區分關聯集中的類別組合。如果經過第個殘差塊得到的特征向量記為x,自然可以得到:

例如:要設計7 分類表情中{fear,anger}類別組合的分支(即第二和第六類),該支路將會輸出一個二維而非七維的特征向量y,該向量只包含第二和第六類的高維特征。但為了實現的便利,在其他位對應的位置填充零值,依然將它處理為一個七維特征向量,以便進行后續的向量加法運算。
補充支路與分支支路設計的模式基本相同,都是一個殘差塊與兩個全連接層的組合,唯一不同的是,將除去有關類別的剩余類別作為該支路的目標輸出。這樣的考量是基于以下推斷,對于分類支路所得的特征向量y做加權后,該分支所涉及的類別對最終的高維特征有了影響,如果不設計補充支路,相當于其余維度的額外影響置零,在復雜的現實情況中,可能會帶來誤差。
補充支路與分類強化支路的輸出匯總表示為:

其中,y表示第個分支的特征向量,y表示補充支路得到的特征向量,表示各自的權重。同樣使用交叉熵函數作為損失函數,支路誤差表示為:



圖6 數據流圖Fig.6 Data flow diagram
數據經過網絡得到支路匯總輸出y和骨干網絡輸出,兩者都有分類能力,但是信息的側重點不同。要利用支路信息輔助骨干網絡進行分類,兩者之間在數量級上不能有太大的差異。同時,要保證支路信息的完整性,兩者也不能完全相同。為此,定義了差值約束損失如下:

其中,表示約束參數,用于約束雙方差異;為抑制參數,用于抑制梯度爆炸。整體網絡模型的損失函數為:

由差值約束損失的定義可得,的三個構成部分有一定的聯系,不能獨立存在。作為本文結構中的關鍵部分,進一步消融是受限制的,也沒有必要性。
實驗部分,本文將簡單地介紹用到的幾個大型數據庫,詳盡地描述本文的實驗環境,展示本文的模型與基準方法的對照,最后展示本文與現存的先進深度學習方法在各個數據集上的對比。由于各個數據庫制作標準的客觀差異,在不同數據集上的預處理方法各有不同。數據結果方面,除去基準方法Resnet18和本文模型的精度,其余提到的文章精度均取信于各自的論文精度。
文中選用的野外(in-the-wild)數據庫是RAF-DB數據庫、AffectNet 數據庫和Ferplus 數據庫。RAF-DB 數據庫包括了29 672 張圖片,每張圖片由40 人標注。用到其中經過Face++定位過人臉的單標簽類,包含12 271 張圖片的訓練集和包含3 068 張圖片的測試集;AffectNet 是目前最大的公開表情識別數據庫。它包含了超過100 萬張圖片,圖片數據從互聯網上收集。本文使用其中的已經人工標注過的圖片,包括414 801 張圖片的訓練集和5 501 張圖片的驗證集,相較于RAF-DB,AffectNet 的標簽要模糊許多。Ferplus 數據庫是在Fer2013 數據庫上重標簽而來,一張圖片有10 個標注者,圖片為48×48 的灰度圖,采用最大投票法,將十維標簽轉化為單標簽。
本文實驗設定如下參數:網絡模型接受224×224尺寸的RGB 三通道圖片作為輸入,批處理大小設定為16,動量設定為0.5,學習率設定為0.01,迭代次數為40。采用權重衰減和學習率衰減策略,權重衰減系數為10,學習率衰減方法為指數衰減。網絡模型部署在單張Nvidia 2080Ti 顯卡上,使用pytorch 深度學習框架。模型的骨干網絡Resnet18 在ImageNet 數據庫上做預訓練。文中提到的各個參數設定如下:相關系數閾值∈(0,0.33),根據實際情況取值;類間信息參數一般取0.1;、、λ均取1;約束參數取值0.25;抑制參數視實際情況將×(-y)整體控制在(0,10)量級即可,實驗中取10。
正如前文提到的,本文用到的各類數據庫有不同的制作標準,實際上,幾乎所有的表情數據庫制定標準都不盡相同。RAF-DB 數據庫為研究者提供了一個裁剪好的人臉圖像,而AffectNet 數據庫提供的圖片甚至尺寸、格式也不統一,Ferplus 則僅僅提供了48×48 的灰度值矩陣。本文使用dlib 開源工具裁剪AffectNet 數據庫中的原始圖像。對于所有圖片采用最鄰近插值法,將圖像尺寸調整為224×224。對于單通道圖片,通過復制法將其轉化為三通道圖片。
與基準方法Resnet18 進行對比,如果本文方法有效,各類數據被錯誤分類的情況不會再出現在某些類上較多,其他類上較少,應當是均勻的,表示本文方法中類間聯系信息起到了作用。圖7 和圖8 展示了本文模型和基準模型在RAF-DB 數據庫上預測結果的混淆矩陣,可以看出除happiness 類型以外的各類數據識別率,相較于基準模型,本文方法都取得了更好的效果。本文方法不僅僅在整體精度上超過了基準方法,類平均精度上也高于基準方法(圖7 對應的實驗類平均精度為80.55%,圖8 對應的實驗類平均精度為76.80%)。也如預期的,各類數據的誤識別率相對均勻,被本文處理為強關聯類的{fear,anger}和{disgust,sadness,neutral}沒有再出現10%以上的誤分類情況。

圖7 RMRnet在RAF-DB 上的預測值Fig.7 Predicted value of RMRnet on RAF-DB

圖8 Resnet18 在RAF-DB 上的預測值Fig.8 Predicted value of Resnet18 on RAF-DB
本實驗結果與多個近年表現優異的網絡模型在多個大型數據庫上進行了對比。相比較基準方法Resnet18,在平均精度上,本模型在RAF-DB 上提高了3.26 個百分點,在AffectNet 上領先了3.91 個百分點,在Ferplus 上領先了4.16 個百分點。如表1 所示:在AffectNet 上,本文與DLP-CNN、EAU-Net、pACNN、IPA2LT 等方法進行了對比,本文的整體效果僅次于EAU-Net,對AffectNet 數據庫做隨機欠采樣之后,網絡的預測精度最高達到了59.29%,平均精度達到了58.43%。如表1 所示:在RAF-DB 上,本文與DLPCNN、EAU-Net、pACNN、DeepExp3D 等方法進行了對比,在一眾先進方法中本文效果達到了最優,甚至最高精度達到了86.66%。如表1 所示:在Ferplus 上,本文與SHCNN、TFE-JL、VGG13-PLD、ESR-9 等方法進行了對比,取得了最優效果,在Ferplus 上的最高精度可達87.45%。

表1 在AffectNet、RAF-DB、Ferplus上的對比實驗Table 1 Comparative experiment on AffectNet,RAF-DB,Ferplus
顯然,各種網絡模型在各個數據庫上的表現有較大差異。AffectNet 上極低的精確度是由于表情標簽的主觀性,而RAF-DB 和Ferplus 兩個數據庫都由多人標記,標簽的置信度高。Ferplus 是谷歌公司團隊對Fer2013 數據集再標記得到。目前,在Fer2013上的模型精度一般也較低,遠遠達不到80%的精度?;蛟S,從再標記上解決數據問題也是表情識別進一步提升精度的重要手段。
本文提出了一種研究表情識別的新角度,從各類表情的類間關系出發,通過觀察分類之后的RM 矩陣結合本文的篩選算法來構建分類支路。通過分析類間關系,可以獲取各類表情之間的關聯程度,相當于獲取了表情識別問題理論情況下的客觀規律。將這樣的規律設計到網絡模型之中,模型就獲取到了特定的先驗知識,而這樣的先驗知識在一般的深層神經網絡中能否被學習到有著不確定性。本文方法在神經網絡的深層上固定了參數,實驗表明,這樣的方法效果顯著。
本文方法存在著一定的缺陷,本意是通過客觀的類間關系引入類間信息,然而由于數據處理和人工分類上的模糊性,本該清晰的類間關系并非總是不變的??梢酝ㄟ^多次分析來得到不同的網絡結構,針對數據差異應用本文的分析方法可以達成這樣的目的,但是這樣的設計不夠智能,下一步研究方向是讓網絡自己學習到這樣的類間關系。