當前位置:
首頁 > 最新 > 深度人臉表情識別技術綜述,沒有比這更全的了

深度人臉表情識別技術綜述,沒有比這更全的了

策劃 & 編輯 | Natalie

編譯 | 馬卓奇

AI 前線導讀:面部表情識別技術(FER)正逐漸從實驗室數據集測試走向挑戰真實場景下的識別。隨著深度學習技術在各領域中的成功,深度神經網路被越來越多地用於學習判別性特徵表示。目前的深度面部表情識別系統通常面臨兩個關鍵問題:由於缺乏足夠的訓練數據所造成的過度擬合,和與表情無關的變化,如照明、頭部姿勢和身份偏置信息。

這篇文章是對深度面部表情識別的全面綜述,也是 AI 前線第 30 篇論文導讀。首先,我們結合相關背景知識,介紹深度 FER 系統的標準流程。然後,我們介紹了目前在文獻中廣泛使用的數據集,並提供這些數據集公認的數據選擇和評價準則。對於目前最先進的深度 FER 技術,我們回顧了現有的基於靜態圖像和動態圖像序列的 FER 深度神經網路設計和相關的訓練策略,並且討論了它們的優點和局限性。接著,我們將綜述擴展到其他相關的問題和應用場景。最後,我們分析了該領域未來的挑戰和相應的機會,以及設計健壯的深度 FER 系統的未來方向。

更多乾貨內容請關注微信公眾號「AI 前線」,(ID:ai-front)

面部表情是人類表達自己的情緒狀態和意圖最強大、最自然和最普遍的信號之一。面部表情自動分析在社交機器人、醫療、駕駛員疲勞監測等許多其他的人機交互系統中有大量應用。

FER 系統根據特徵表示可以分為兩類:靜態圖像 FER 和動態序列 FER。在基於靜態圖像的方法中,特徵表示僅由單張圖片的空間信息進行編碼,而基於動態的方法需要考慮輸入面部表情連續幀之間的時間關係。

大部分傳統方法使用了手動提取的特徵,或者淺層學習。但是 2013 年後,各類表情識別比賽,例如 FER2013 和真實場景情緒識別(EmotiW)從充滿挑戰性的真實世界場景中收集了十分充足的訓練數據,推動了 FER 技術從實驗室走向真實場景。由於數據量的增加,傳統特徵已經不足以表示與面部表情無關的因素的多樣性。伴隨著晶元處理能力的大幅提升(GPU 單元)和各種優秀神經網路結構的設計湧現,許多領域開始轉向深度學習方法,大幅提升了識別準確率。同樣地,深度學習技術被越來越多地用於應對真實環境下的表情識別所帶來的挑戰。

圖 1 人臉表情識別數據集和方法

儘管深度學習具有強大的特徵學習能力,它在 FER 中的應用還有一些問題。首先,深度神經網路需要大量訓練數據來避免過擬合。然而,現存的面部表情資料庫不足以訓練那些在目標識別任務中有著顯著效果的深度網路。除此之外,由於不同人物屬性,例如年齡、性別、宗教背景和表達能力,主體間具有高變化性。姿態、光照和遮擋在不受限的表情場景下十分常見。這些因素和表情之間是非線性關係,因此需要增強深度網路對類內變化的健壯性,以及學習有效的表情特徵表示。

深度面部表情識別

圖 2 深度面部表情識別系統

1. 預處理

自然場景下會出現許多與面部表情無關的變化特徵,例如不同的背景、光照、頭部姿勢等等。因此,在訓練深度神經網路之前,需要利用預處理對人臉的視覺語義信息進行標定和對齊。

1.1 人臉對齊

人臉對齊是許多與人臉相關的識別任務中必需的預處理步驟。下面我們將介紹一些常用的方法以及在深度表情識別系統中可用的公開實現。(人臉對齊綜述可參考論文:Automatic analysis of facial actions: A survey,https://ieeexplore.ieee.org/abstract/document/7990582/ )

拿到訓練數據後,第一步是檢測人臉,然後去掉背景和無關區域。Viola-Jones 人臉檢測器是一個經典的廣泛使用的人臉檢測方法,在許多工具箱中都有實現(例如 OpenCV 和 Matlab)。得到人臉邊界框後,原圖像可以裁剪至面部區域。人臉檢測之後,可以利用人臉關鍵點標定進一步提高 FER 的效果。根據關鍵點坐標,人臉可以利用放射變換顯示到統一的預定義模版上。這一步可以減少旋轉和面部變形帶來的變化。目前最常用的人臉標定方法是 IntraFace,在許多深度 FER 中得到了應用。該方法使用級聯人臉關鍵點定位,即 SDM,可以準確預測 49 個關鍵點。

1.2 數據增強

深度神經網路需要足夠的訓練數據才能保證在給定識別任務上的泛化性能。然而用於 FER 的公開資料庫一邊都達不到這樣的訓練數據量,因此數據增強就成了深度表情識別系統非常重要的一個步驟。數據增強技巧可以分為兩類:線下數據增強和在線數據增強。

深度 FER 的線下數據增強主要是通過一些圖像處理操作來擴充資料庫。最常用的方法包括隨機干擾和變形,例如旋轉、水平翻轉、縮放等。這些處理可以生成更多的訓練樣本,從而讓網路對出現偏移和旋轉的人臉更健壯。除了基本的圖像操作,也可以利用 CNN 或 GAN 來生成更多的訓練數據。

在線數據增強方法一般都集成在深度學習工具箱中,來降低過擬合的影響。在訓練過程中,輸入樣本會被隨機中心裁剪,並且水平翻轉,得到比原訓練資料庫大 10 倍的資料庫。

1.3 人臉歸一化

光照和頭部姿態變化會有損 FER 的表現,因此我們介紹兩類人臉歸一化方法來減輕這一影響:光照歸一化和姿態歸一化。

光照歸一化:INFace 工具箱是目前最常用的光照歸一化工具。研究表明直方圖均衡化結合光照歸一化技巧可以得到更好的人臉識別準確率。光照歸一化方法主要有三種:基於各向同性擴散歸一化(isotropic diffusion-based normalization)、基於離散餘弦變換歸一化(DCT-based normalization)和高斯差分(DoG)。

姿態歸一化:一些 FER 研究利用姿態歸一化產生正面人臉視角,其中最常用的方法是 Hassner 等人提出的:在標定人臉關鍵點之後,生成一個 3D 紋理參考模型,然後估測人臉部件,隨後,通過將輸入人臉反投影到參考坐標繫上,生成初始正面人臉。最近,也有一系列基於 GAN 的深度模型用於生成正面人臉(FF-GAN,TP-GAN,DR-GAN)。

特徵學習深度網路

深度學習通過多層網路結構,進行多種非線性變換和表示,提取圖片的高級抽象特徵。下面我們簡要介紹一些用於 FER 的深度學習方法。

2.1 卷積神經網路(Convolutional neural network, CNN)

CNN 對人臉位置變化和尺度變化有更強的健壯性,而且對於未見人臉姿態變化比多層感知器有更好的表現。

表 1 用於 FER 的 CNN 模型設置和特性。

其他 CNN 驅動模型在 FER 的應用:

基於區域的 CNN(R-CNN)在 FER 中用於學習特徵:

Facial expression recognition in the wild based on multimodal texture features

Combining multimodal features within a fusion network for emotion recognition in the wild

Faster R-CNN 通過生成高質量候選區域,鑒別面部表情:

Facial expression recognition with faster r-cnn

2.2 深度置信網路(Deep belief network, DBN)

DBN 由 Hinton 等人提出,可學習提取訓練數據的深度層級表示。DBN 訓練有兩個步驟:預訓練和微調。首先用逐層貪婪訓練方法初始化深度網路,可以在不需要大量標註數據的情況下防止局部最優解。然後,用有監督的梯度下降對網路的參數和輸出進行微調。

2.3 深度自編碼器(Deep autoencoder, DAE)

與之前介紹的網路不同,深度自編碼器通過最小化重構誤差來對輸入進行重構。DAE 有許多變體:降噪自編碼器,可從部分損壞的數據中恢復原始未損壞數據;稀疏自編碼網路,增強學習得到的特徵表示的稀疏性;壓縮式自編碼器,增加活動相關正則項以提取局部不變特徵;卷積自編碼器,使用卷積層代替 DAE 中的隱藏層。

2.4 遞歸神經網路(Recurrent neural network, RNN)

RNN 是聯結主義模型,能夠捕捉時域信息,更適合於序列數據預測。訓練 RNN 用到的是時間反向傳播演算法(back propagation through time, BPTT)。由 Hochreiter 和 Schmidhuber 提出的 LSTM 是一種特殊形式的 RNN,用於解決傳統 RNN 訓練時出現的梯度消失和爆炸問題。

面部表情分類

在學習深度特徵之後,FER 的最後一步是識別測試人臉的表情屬於基本表情的哪一類。深度神經網路可以端到端地進行人臉表情識別。一種方法是在網路的末端加上損失層,來修正反向傳播誤差,每個樣本的預測概率可以直接從網路中輸出。另一種方法是利用深度神經網路作為提取特徵的工具,然後再用傳統的分類器,例如 SVM 和隨機森林,對提取的特徵進行分類。

人臉表情資料庫

表 2 人臉表情公開資料庫概覽

Elicit(表情產生方式):P = posed(擺拍),S = spontaneous(自然)

Condit(收集條件):Lab(實驗室收集),Web(網頁抓取),Movie(電影截圖)

先進演算法

我們將目前的主要工作按數據類型分為兩類:靜態圖像深度 FER 網路和動態序列圖像深度 FER 網路。

1. 靜態圖像深度 FER 網路

表 3 靜態圖像深度 FER 網路演算法評測

1.1 預訓練和微調

直接在相對較小的人臉表情數據集上訓練深度網路容易導致過擬合。為了解決這個問題,許多研究使用額外的任務導向的數據從零開始預訓練自定義的網路,或者在已經預訓練好的網路模型(AlexNet , VGG, VGG-face 和 GoogleNet)上進行微調。

輔助數據可以選擇大型人臉識別資料庫(CASIA WebFace, Celebrity Face in the Wild (CFW) , FaceScrub dataset),或者相對較大的 FER 資料庫(FER2013 和 Toronto Face Database)。Knyazev 等人發現在更大的 FR 資料庫上訓練的效果不好的 FR 模型,經過 FER2013 資料庫的微調,反而能在表情識別任務中達到更好的效果。在大型 FR 資料庫上預訓練對於表情識別準確率有正面影響,並且進一步用人臉表情資料庫微調可以有效提升識別準確率。

Ng 等人提出了了多階段微調方法:第一階段在預訓練模型上使用 FER2013 進行微調,第二階段利用目標資料庫的訓練數據進行微調,使模型更切合目標資料庫。

圖 3 不同微調方式的結合。其中「FER28」和「FER32」是 FER2013 資料庫的不同部分。「EmotiW」是目標資料庫。這一兩階段微調方法達到了最好的效果。

Ding 等人發現由於 FR 和 FER 資料庫之間的差距,人臉主導的信息仍然遺留在微調的 FR 網路中,削弱了網路表示不同表情的能力。於是他們提出了一個新的訓練演算法,叫做「FaceNet2ExpNet」,進一步整合 FR 網路學習到的人臉區域知識來修正目標 FER 網路的訓練。訓練分為兩個階段:

圖 4 (a)階段,固定深度人臉網路,它提供特徵級別的正則項,利用分布函數使表情網路的特徵與人臉網路的特徵逐漸逼近。(b)階段,進一步提升學習到的特徵的判別性,增加隨機初始化的全卷積層,然後利用表情類標信息與整體表情網路聯合訓練。

由於微調人臉網路已經在表情數據集上達到了有競爭性的表現,因此可以作為表情網路的良好初始化。此外,由於全連接層通常捕獲更多領域特定的語義特徵,所以僅使用人臉網路來指導卷積層的學習,而全連接層則利用表情信息從零開始訓練。

1.2 多樣化網路輸入

傳統方法通常使用整張人臉的 RGB 圖像作為網路輸入來學習特徵,然而這些原始像素缺少有效信息,例如紋理和旋轉平移縮放的不變性。一些方法採取手動提取的特徵和它們的延伸信息作為網路輸入來解決這個問題。

圖 5 圖像像素(左)和 LBP 特徵(中)。Levi 等人提出將這兩種信息映射到一個 3D 度量空間(右)作為 CNN 的輸入。

除了 LBP 特徵,SIFT 特徵,AGE(角度 + 梯度 + 邊緣)特徵,NCDV(鄰域 - 中心差分矢量)特徵均被用於多樣化網路輸入。

1.3 輔助網路塊、網路層

在 CNN 結構的基礎上,一些研究提出了增加輔助網路塊和網路層結構來增強與表情相關的特徵表示能力。

圖 6 專為深度人臉表情識別設計的代表性網路層、網路塊結構

(a) Hu 等人將 3 類有監督網路塊嵌入 CNN 結構的實現淺層、中層和深層的監督。這些塊根據原網路的層級特徵表示能力設計。隨後,每個塊的類間評分在連接層進行累積,進行第二級的監督。

(b) Cai 等人提出島損失層。特徵提取層計算的島損失層和決策層計算的 softmax 損失結合起來監督 CNN 訓練。

(c) Liu 等人提出(N+M)組聚類損失層。在訓練過程中,身份感知的難分樣本挖掘和積極樣本挖掘技巧用於降低同一表情類別下身份內部的變化所帶來的影響。

1.4 網路集成

研究表明,多個網路的集成比單個網路的表現要好。網路集成有兩個需要考慮的因素:

(1)網路要具有足夠的多樣性,以保證互補。

(2)合適的集成方法可以有效地累積組成網路。

對於第一個因素,需要考慮不同的訓練資料庫和不同的網路結構及參數來增加多樣性。

對於第二個因素,網路可以在兩個不同層面上進行組合:特徵層和決策層。對於特徵層,最常採取的方法是將不同網路學習得到的特徵連接起來,組成一個新的特徵矢量,來表示圖像。在決策層,常用的三種方法是:多數投票、簡單平均和加權平均。

圖 7 在特徵層面和決策層面的網路集成系統

(a)特徵層集成:Bargal 等人提出將三種不同特徵(VGG13 fc5 層輸出,VGG16 fc7 層輸出和 Resnet 池化層輸出)在歸一化後連接在一起,生成一個單特徵矢量(FV),然後用其描述輸入幀。

(b)決策層集成:Kim 等人提出 3 級組合結構,在決策層融合,獲取充分的決策多樣性。

1.5 多任務網路

許多現有的 FER 網路專註於單個任務,並且學習對錶情敏感的特徵,而不考慮其他潛在因素之間的相互作用。然而,在現實世界中,FER 與各種因素交織在一起,如頭部姿勢、光照和主體身份(面部形態)。為了解決這一問題,引入了多任務學習,將知識從其他相關任務中遷移出來,消除有害因素。

圖 8 FER 多任務網路示例。在 Zhang 等人提出的 MSCNN 中,在訓練時一對圖像輸入 MSCNN 網路。表情識別任務使用交叉熵損失,學習表情變化特徵,面部識別人任務使用對比損失,減少同類表情特徵之間的變化。

1.6 級聯網路

在級聯網路中,處理不同任務的各種模塊按順序組合,形成更深的網路,其中前一模塊的輸出作為後一模塊的輸入。相關研究提出用不同結構的新組合來學習層級特徵,通過這些特徵可以逐層濾除與表情無關的變化因素。

圖 9 FER 級聯網路示例。Liu 等人提出 AU- 感知深度網路(AUDN),有 3 個序列模塊組成:在第一個模塊,一個 2 層的 CNN 訓練生成一個過完備的表示,編碼所有位置的所有表情的表面變化。在第二個模塊,AU- 感知的接受野層用於搜索過完備表示的子集。在最後一個模塊,用多層 RBM 結構學習層級特徵。

2. 動態序列圖像深度 FER 網路

2.1 幀聚合

由於給定視頻片段中的幀具有不同的表情強度,因此直接測量目標數據集中的每幀誤差不能產生令人滿意的效果。很多方法用於聚合每個序列的網路輸出幀,以實質上改善 FER 性能。我們將這些方法分為兩類:決策層幀聚合和特徵層幀聚合。

決策層幀聚合

圖 10 Kahou 等人提出決策層幀聚合。(a)對於超過 10 幀的序列,將總幀數按時間分為 10 個獨立幀組,將其概率矢量平均。(b)對於少於 10 幀的序列,通過均勻重複幀,將序列擴張至 10 個幀。

特徵層幀聚合:Liu 等人提取了給定序列的圖像特徵,然後應用了三個模型:特徵矢量(線性子空間),協方差矩陣,和多維高斯分布。

2.2 表情強度網路

大多數方法主要關注識別峰值強度表情,而忽略了微妙的低強度表情。在本節中,我們介紹了幾個深度網路,以一定強度的訓練樣本為輸入,從而利用不同強度的序列中同一主體表情的內在聯繫。

圖 11 Zhao 等人提出了峰值引導的深度網路(PPDN),用於強度不變的表情識別。PPDN 將來自同一個人的一對峰值和非峰值的同類表情圖像作為輸入,然後利用 L2 範數損失來最小化兩張圖片之間的距離。作者用峰值梯度抑制(PGS)作為反向傳播機制,用非峰值表情的特徵逼近峰值表情的特徵。同時在 L2 範數最小化中忽略峰值表情的梯度信息來避免反轉。

2.3 深度空間 - 時間 FER 網路

雖然上述幀聚合可以集成所學習的幀特徵以產生表示整個視頻序列的單個特徵矢量,但關鍵的時間依賴性卻沒有被利用上。相比之下,時空 FER 網路將一個時間窗口中的一系列幀作為表情強度未知的輸入,並利用圖像序列中的紋理信息和時間依賴性進行更細微的表情識別。

RNN 和 C3D

圖 12 Liu 等人提出的 3DCNN-DAP 模型。輸入 n 幀序列與 3D 濾波器做卷積,13*c*k 部分濾波器對應 13 個人為定義的面部區域,用於卷積 k 個特徵圖,生成 c 個表情類別對應的面部活動區域檢測圖。

面部關鍵點軌跡

圖 13 Zhang 等人提出空間 - 事件網路。時域網路 PHRNN 用於關鍵點追蹤,空域網路 MSCNN 用於身份不變特徵,兩個網路分別訓練。然後,從兩個網路中預測概率的概率進行融合,進行時空 FER。

網路集成

Simonyan 等人提出將雙流 CNN 用於視頻動作識別,其中一個 CNN 網路用於提取視頻幀光流信息,另一個 CNN 用於提取靜止圖像的表面信息,然後將兩個網路的輸出融合。該網路結構對 FER 領域也有所啟發。

圖 14 Jung 等人提出聯合微調方法,聯合訓練 DTAN(屬於「RNN-C3D」)和 DTGA(「屬於面部關鍵點軌跡」)。

表 4 動態深度表情識別的代表方法在常用數據集上的評測結果。

S = Spatial network(空域網路),T = Temporal network(時域網路),LOSO = leave-one-subject-out(留一法交叉驗證)

領域相關問題

遮擋和非正面姿態是 FER 的兩個主要挑戰,它們可能會改變原始表情的視覺表觀,尤其在真實場景中。

儘管 RGB 數據是目前深度 FER 的標準數據,這些數據很容易受到光照條件的影響,並且不同的人臉部件缺乏一定的深度信息。

真實場景下的人臉表情合成,可以通過互動界面合成不同的面部表情。

除了利用 CNN 進行 FER 之外,一些研究利用可視化技術,定性地分析 CNN 對 FER 基於表面的學習過程有何貢獻,並定性地確定人臉的哪些部分能產生最具有判別性的信息。

在原始表情分類問題的基礎上,提出了一些新的問題:主要和補充情感識別挑戰,以及真假情感挑戰。

機遇與挑戰

由於 FER 研究將其主要關注點轉移到具有挑戰性的真實場景條件下,許多研究人員利用深度學習技術來解決這些困難,如光照變化、遮擋、非正面頭部姿勢、身份偏差和低強度表情識別。考慮到 FER 是一個數據驅動的任務,並且訓練一個足夠深的網路需要大量的訓練數據,深度 FER 系統面臨的主要挑戰是在質量和數量方面都缺乏訓練數據。

由於不同年齡、文化和性別的人以不同的方式做出面部表情,因此理想的面部表情數據集應該包括豐富的具有精確面部屬性標籤的樣本圖像,不僅僅是表情,還有其他屬性,例如年齡、性別、種族,這將有助於跨年齡、跨性別和跨文化的深度 FER 相關研究。另一方面,對大量複雜的自然場景圖像進行精準標註是構建表情資料庫一個明顯的障礙。合理的方法是在專家指導下進行可靠的眾包,或者可以用專家修正過的全自動標註工具提供大致準確的標註。

需要考慮的另一個主要問題是,儘管目前表情識別技術已經被廣泛研究,但是我們所定義的表情只涵蓋了特定種類的一小部分,而不能代表現實互動中人類可以做出的所有表情。目前有兩個新的模型可以用來描述更多的情緒:FACS 模型,通過結合不同的面部肌肉活動單元來描述面部表情的可視變化;維度模型提出了兩個連續值的變數,即評價值和喚起程度(Valence-arousal),連續編碼情緒強度的微小變化。

除此之外,不同的資料庫之間的偏差和表情類別的不平衡分布是深度 FER 領域中要解決的另外兩個問題。對於資料庫之間的偏差問題,可以用深度域適應和知識蒸餾來解決。對於表情類別不平衡問題,一種解決方案是利用數據增強和合成來平衡預處理階段中的類分布。另一種選擇是在訓練期間給深度網路增加代價敏感的損失層。

最後,在現實應用中的人類的表情涉及到不同視角的編碼,而面部表情只是其中一種形態。雖然基於可見人臉圖像的表情識別可以達到令人滿意的結果,但是未來應該將表情識別與其他模型結合到高級框架中,提供補充信息並進一步增強魯棒性。例如,EmotiW 挑戰和音頻視頻情感挑戰(AVEC)中的參與者認為音頻模型是第二重要的元素,並採用多種融合技術來進行多模態的人臉表情識別。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI前線 的精彩文章:

用深度學習挖掘海量文本中的寶藏
AI一周熱聞:商湯融資6億美元;GPU或將擊敗摩爾定律;中科院用強化學習解決《星際爭霸》中的微操問題

TAG:AI前線 |