呂 誨,童倩倩,袁志勇
武漢大學 計算機學院,武漢430072
人臉表情識別(Facial Expression Recognition,FER)在社交機器人、醫療服務、駕駛員疲勞監測等許多人機交互系統中具有重要的現實意義。無論是可控環境(無遮擋、姿勢標準和光照平衡)還是復雜環境下的FER都是計算機視覺領域長期以來的研究重點。與可控條件下的FER相比,復雜環境下的FER更具實際應用價值。然而,由于受人臉姿勢,遮擋物以及光照不平衡等因素影響,實現復雜環境下的實時精確的FER更具挑戰性,更是當前FER領域的一大難題。
FER程序一般分為三個步驟:人臉圖像預處理、人臉表情特征提取以及表情判定。其中,人臉對齊作為最常見的人臉圖像預處理方式,通過提取人臉特征點坐標,利用仿射變換將雙眼坐標旋轉至同一水平線的方式來矯正人臉。然而,人臉對齊處理存在兩方面弊端:首先,人臉特征點提取本身耗費大量時間,而且復雜環境下由于遮擋、姿勢傾斜、光照不平衡等因素可能造成特征點提取失敗;再者,通過雙目坐標來轉正人臉可能損失與表情識別相關的人臉像素。Kim等人[1]針對自然環境下人臉特征點提取易失敗的問題,提出對齊映射網絡(Alignment-Mapping Network,AMN),學習非對齊面部狀態到對齊面部狀態的映射;Yu等人[2]通過結合三種人臉特征點提取方法(DCNN[2]、JDA[3]、MoT[4])提高特征點提取的準確率。然而,目前鮮有研究解決特征點轉正造成面部像素丟失的問題,導致復雜人臉表情識別的精度較低,魯棒性較差。
傳統表情識別方法一般采用手動方式進行表情特征提取,并利用傳統機器學習方法進行表情判定。文獻[5]采用局部二值化模式(Local Binary Pattern,LBP)提取表情特征以減少面部光照不平衡對表情識別的影響,利用支持向量機(Support Vector Machine)進行表情判定。Zhao等人[6]進一步通過融合三個正交平面上的LBP(LBP on three orthogonal planes)特征加強表情特征提取的魯棒性,減少面部姿勢及光照等因素影響,并且結合K近鄰K-Nearest Neighbors,KNN)及隱馬爾科夫模型(Hidden Markov Models,HMM)對表情進行判定。Zhi等人[7]在非負矩陣分解(Non-negative Matrix Factorization,NMF)的理論基礎上提出圓形保留稀疏非負矩陣分解(Graph-preserving Sparse Non-negative Matrix Factorization,GSNMF)方式來凸顯面部特征提高表情特征識別率,最終的表情判定同樣使用KNN實現。傳統表情識別研究中,缺乏對表情識別效率的考慮,同時由于傳統機器學習分類方法的局限性造成表情識別的準確率低下。
隨著卷積神經網絡(Convolutional Neural Network,CNN)在圖像分割、圖像分類等計算機視覺領域展現出優異的性能,越來越多的研究傾向于利用卷積神經網絡來實現表情特征提取以提高表情判定的魯棒性。Kim等人[8]通過融合多個CNN的結果進行指數加權決策融合判定靜態表情類型;Li等人[9]提出了一種新的保持深度局域的CNN方法,旨在通過保持局部緊密度的同時最大化類間差距來增強表情類別間的辨別力。Kample等人[10]在分析了多個文獻中的算法差異和性能影響之后,通過構建級聯CNN來提高表情識別的精度。上述研究雖然在一定程度上提升了識別準確率,但是復雜的網絡結構和連接方式使得訓練過程相當繁瑣,難以達到實時識別。為了提高識別效率,Arriaga等人[11]結合殘差模塊和深度可分離卷積層極大程度簡化了網絡結構,使得構建的CNN能實現實時識別效果,但是該模型只能達到基準精度。綜上所述,現有的表情識別研究無法兼顧識別精度和識別效率。
本文提出一種基于人臉分割的實時復雜表情識別框架,該框架包含人臉區域分割網絡FsNet(Face segmentation Network)以及輕量級表情分類網絡TcNet(Tiny classification Network)。FsNet采用全卷積的U型網絡結構,分割出復雜環境人臉圖像中與表情識別最相關的感興趣區域,定義為識別感興趣區域(Recognition Region of Interest,RROI)。采用深度可分離卷積、線性bottlenecks和倒置殘差結構構建TcNet對FsNet分割得到的人臉圖像RROI進行表情分類。FsNet和TcNet均具備網絡結構輕量化,訓練參數量以及模型占用內存少的優點,有助于提高整個表情識別框架的效率。本文創新點如下:
(1)提出基于人臉區域分割的復雜表情識別框架,該框架首先采用分割網絡FsNet檢測與FER最相關的RROI以減少非目標區域的影響,分割所得RROI再通過分類網絡TcNet實現人臉表情識別。
(2)利用U型全卷積結構構建分割網絡FsNet檢測RROI,避免了復雜環境下利用特征點分割人臉失敗的情況,并且較大幅度提升了復雜環境下FER的精度。
(3)采用深度可分離卷積構建分類網絡TcNet以減少網絡參數,并引入線性bottlenecks和倒置殘差結構,以緩解低維特征退化并增加網絡容量與特征表達能力。實驗表明本文方法既能提高識別效率又能確保表情識別精度。
本文構建的基于人臉分割的表情識別框架如圖1所示,框架整體包含人臉區域分割和人臉表情識別,兩部分功能分別通過FsNet和TcNet實現。在訓練FsNet之前,基于已有數據集構建人臉區域分割數據集,提取現有的復雜人臉表情圖像中的人臉特征點,對于能夠成功提取特征點的人臉圖像,根據特征點坐標構成的凸多邊形裁剪出與FER最相關的面部RROI并將其處理成Mask圖像作為FsNet的訓練標簽,原始人臉圖像作為網絡的輸入數據。最終,原始復雜人臉圖像先經過FsNet進行人臉區域分割預處理,再經過TcNet判定表情類別。

圖1 基于人臉分割的表情識別框架
2.2.1 數據集構建
本文所有實驗基于兩個復雜環境下表情識別經典數據集:FER-2013和RAF-DB。FER-2013[12]數據集是在ICML2013表達學習挑戰期間引入的,由Google圖像搜索API自動收集的大規模且無約束的數據庫。大多數圖像是在真實條件下捕獲的。該數據集中包含一些噪聲,人類識別準確度大約為65%。FER-2013包含35 887張灰度人臉,像素大小為48×48,其中28 709張訓練圖像,3 589張驗證圖像和3 589張測試圖像。數據集包含7種表情類別:憤怒、失望、恐懼、快樂、悲傷、驚訝和中立。
真實世界人臉情感數據集(Real-world Affective Face Database)RAF-DB[9]是一個采集于真實場景中的數據庫,包含從互聯網下載的29 672張高度多樣化的面部圖像。通過手動眾包注釋和可靠估計,為樣本提供了7種基本和11種復合情感標簽。本實驗中使用的是基本情緒集中的15 339張圖像,包含12 271張訓練樣本和3 068張測試樣本,數據集被標注為7種情緒類別:驚訝、恐懼、失望、快樂、悲傷、憤怒和中立。
在人臉區域分割數據集構建階段。首先,應用文獻[13]中的二維人臉關鍵點定位技術提取人臉圖像的68個人臉特征點坐標,該過程存在特征點提取失敗的案例,將特征點提取成功的案例定義為“可對齊狀態”,特征點提取失敗的案例定義為“非可對齊狀態”。其次,對于“可對齊狀態”的人臉圖像,根據68個特征點坐標構成的凸多邊形裁剪出與FER最相關的面部RROI。最后,將標定好面部區域的人臉圖像處理成Mask圖像作為FsNet的訓練標簽,處于“可對齊狀態”的人臉原圖像作為FsNet的訓練數據。在數據集構建階段,FER-2013數據集中成功對齊34 674張圖像,1 213張圖像處于“非可對齊狀態”。RAF-DB數據集的情況為15 092張圖像處于“可對齊狀態”,247張圖像處于“非可對齊狀態”。
2.2.2 FsNet分割網絡
在成功構建人臉分割數據集之后,本文提出針對人臉區域分割網絡FsNet。由于數據集的構建方式與人臉區域分割思路的獨特性,FsNet需滿足以下條件:
(1)在訓練數據量較少的情況下達到精準的分割效果,提取出人臉圖像中與FER最相關的面部RROI,去除非RROI面部區域。
(2)網絡框架精簡,模型占用空間少,保證實時分割效率。
Unet[14]是基于全卷積網絡[15]的一個語義分割網絡,適用于醫學圖像分割領域。作為一個端到端的網絡結構,該網絡包括捕獲上下文信息特征的收縮路徑和對稱的對像素進行定位分割的擴展路徑,網絡整體不包含全連接層,可以通過訓練極少量的圖像獲得精確高效的分割效果。同時因為醫學圖像具備組織像素易變性的特性,Unet網絡對于學習形變中的不變形具有更高的魯棒性。而自然環境下FER研究中由于物體遮擋,人臉姿勢等因素同樣存在人臉像素易變形的問題,這一點與醫學圖像的形變頗為類似。
綜上,Unet的網絡結構特征恰巧滿足于本文中對FsNet的需求。因此,本文最終的FsNet基于Unet結構,但是整體結構更加精簡高效。圖2展示了本文的網絡結構。整體結構由收縮路徑(左側)和擴展路徑(右側)組成,收縮路徑與傳統卷積神經網絡類似,包括三組兩個3×3二維卷積層(Conv2D),每個卷積后跟一個ReLU激活函數和一個步長為2的2×2極大值下采樣層(Max-Pooling2D),在每個下采樣步驟中,特征通道的數量都會加倍。擴展路徑中的每一步都包括對特征映射進行上采樣,然后進行2×2二維卷積(Conv2D),將特征通道數量減半,與來自收縮路徑的相應裁剪特征映射串聯,以及兩個3×3卷積層,每個卷積層之后都接一個ReLU激活函數。在最后一層,使用1×1卷積操作將每個特征向量映射到所需數量的類。網絡有19個卷積層,包含約7 500個計算參數。

圖2 FsNet網絡結構
一般來說,應用于表情識別的CNN網絡,網絡深度的增加會使其具備更精確的特征提取效果。這一觀點在Kample等人[10]的研究中得以證實。作者通過比較與分析不同深度的CNN產生的表情識別效果證明:更深層次的網絡對學習決策基礎的結構施加了更強的先驗,有效地克服了過擬合的問題,使得識別效果更具魯棒性。另一方面,隨著現階段網絡結構研究的深入,越來越多的研究[13-15]表明更深的網絡不一定具有更多的參數,網絡的深度不僅僅取決于網絡的層數,重點在于學習更深層次特征的能力。最后,Khorrami等人[16]的研究表明,應用于FER的CNN網絡并不需要很深的層次,5層的網絡已經足夠學習到有辨別力的高級特征。
2.3.1 深度可分離卷積
深度可分離卷積是許多高效神經網絡框架[14-19]的關鍵構建塊,基本思想是將傳統卷積操作分解為深度卷積和逐點卷積兩部分,前者通過對每個輸入通道應用單個卷積濾波器來執行輕量級濾波,后者預先形成1×1標準交叉通道,通過計算輸入通道的線性組合構建新特征。假設在H×W×di的特征圖上使用卷積核大小為k×k,深度為dj的標準卷積操作,計算參數為H×W×di×dj×k×k。
深度可分卷積與傳統卷積操作產生的效果一樣,計算參數為H×W×di(k2+dj)。
由此可見,同等效果的卷積操作,常規卷積操作的計算參數量是深度可分離卷積的k2di/(k2+dj)倍,結構差異如圖3所示。

圖3 結構差異示意圖
2.3.2 線性bottlenecks和倒置殘差結構
深度可分離卷積確實大大降低了網絡的計算量,但是Howard等人[20]的研究表明,深度可分離卷積中經過降維所產生的輸入流形由于維度較低,在經過非線性函數ReLU的激活后,極易造成有用信息的缺失。考慮到如果興趣流行經過ReLU后參數非0,那么輸出和輸入必定是經過了一個線性變換,那么ReLU的作用僅僅相當于線性分類器。而研究表明,要想保持輸入流形的完整信息,必須讓輸入流形位于輸入空間的低維子空間。線性bottlenecks的思想在于在維數較低的通道后去掉ReLU激活函數,減少ReLU對有利特征的破壞。
傳統的殘差模塊設計中,往往會將輸入通道數先用逐點卷積降維,執行正常的卷積操作后再用逐點卷積還原,殘差操作將網絡輸入與輸出之間建立恒等的快捷連接加快網絡的收斂。而倒置殘差結構剛好相反,先進行1×1卷積將通道擴張到較高的維度,在進行深度卷積操作之后再將特征通道降維成原先的維度,使得快捷連接建立在通道數較少的特征表述層之間。
線性bottlenecks和倒置殘差的結構的設計,極大程度緩解ReLU帶來的特征退化的問題,同時將層輸入、輸出空間與層變換操作分離,增加了網絡容量和特征學習表達力,減少了網絡運行時間及占用內存。
2.3.3 TcNet分類網絡
本文最終采用深度可分離卷積操作,線性bottlenecks模塊和倒置殘差結構構建表情識別網絡TcNet,網絡結構如圖4所示,分割后的人臉圖像首先經過通道數為8的二維卷積(Conv2D),中間連接4個使用線性bottlenecks的倒置殘差層,最后使用輸出通道為7(等同于情感類別數)標準二維卷積(Conv2D)產生情感類別,并使用二維全局平均(Global Average Pooling2D)和SoftMax激活函數產生每個情感類別的預測概率。網絡包含約66 000個計算參數。

圖4 TcNet網絡結構
本文所有實驗基于Python語言的Keras框架搭建,操作系統為64位Ubuntu16.04 LTS,硬件平臺為Intel-Corei5-7400,主頻3.00 GHz,內存為8 GB,GPU 1050Ti,顯存4 GB。

表1 FsNet分割結果
FsNet人臉區域分割網絡實驗中,人臉圖像與Mask標簽均處理成64×64像素大小,訓練結果如表1所示。在FER-2013數據集上獲得95.02%的分割準確率,略低于RAF-DB數據集上的分割準確率,為96.23%。利用FsNet網絡分割人臉區域效果與使用人臉特征點裁剪人臉區域的效果如圖5所示,圖中的分割結果表明,FsNet具備與利用特征點裁剪人臉基本相同的分割效果。FsNet最終保存模型的大小為188 kb。

圖5 FER-2013與RAF-DB分割效果示意圖
原始人臉圖像和利用FsNet分割處理后的人臉圖像(圖像大小統一處理成64×64像素)分別進行訓練以驗證分割效果對于識別準確度的提升,其次與文獻[11]中同樣具備參數量少且內存需求小特點的mini-Xception以及其他不同網絡做對比實驗。實驗結果表明,利用FsNet進行人臉分割預處理后的圖像對于FER精度有顯著的提升。表2展現了不同文獻研究方法在FER-2013數據集上的性能,本文框架在保證實時識別效果的同時在人臉區域分割預處理的加持下,TcNet在FER-2013數據集上的識別率達到71%,相較于基準識別率65%來說提升了6%。表3展現了不同網絡結構在RAF-DB數據集上的性能,本文框架識別精度高至82%,相較于數據集提出者[9]的最高精度74%來說,提升了8%,識別率遠高于其他網絡模型。同時表4顯示了Kaggle網站上關于FER-2013數據集人臉表情識別挑戰的排行榜,本文框架超越了已提交的所有網絡模型。最終TcNet的模型占用內存在1.1 MB左右。

表2 FER-2013數據集上不同方法性能比較

表3 RAF-DB數據集上不同方法性能比較

表4 Kaggle挑戰FER-2013識別率排行榜
為了進一步驗證TcNet的整體性能優于同樣具備實時識別效果的mini-Xception網絡,本文采用導向反向傳播可視化[27]技術,分別提取兩種網絡最終卷積層中的高維特征進行顯示,結果如圖6所示。通過對比二者高維可視化特征顯示,TcNet網絡學習到的人臉高級特征有更清晰的輪廓和更少的顆粒感,整體效果優于min-Xception。

圖6 FER-2013與RAF-DB導向反向傳播可視化示意圖
除此之外,圖7展示了兩個數據集隨機測試的各類表情的混合交叉矩陣,通過觀察可以發現,“快樂”,“驚訝”和“生氣”這三種表情具有更高的識別度,而“悲傷”、“失望”和“恐懼”三種表情極易產生混淆。

圖7 TcNet的測試混合交叉矩陣FER-2013(上)和RAF-DB(下)
最后,針對整體框架的實時性進行了測試,實驗結果表明,組合FsNet人臉RROI分割模塊和TcNet表情識別模塊的整體FER框架處理單幀人臉圖像的時間為(0.20±0.05)ms,能夠確保實時識別效果。
本文研究了基于人臉分割的復雜環境下表情識別實時框架,提出了用于人臉區域分割的FsNet網絡模型和用于表情識別的TcNet網絡模型。成功基于已有數據集構建分割網絡所需數據集,參照醫學圖像分割網絡Unet結構構建FsNet,在保證網絡結構精簡的同時實現對人臉圖像興趣區域的精準分割。結合深度可分卷積,線性bottlenecks和倒置殘差結構的優點構建TcNet,提升網絡對表情識別率的同時保證模型的計算量與內存占用均為少量水平。在FER-2013和RAF-DB復雜人臉表情數據集上進行實驗證實所提思路對于FER識別率的提升,并進行實時性檢測實驗證明整體框架符合實時要求。實驗結果表明,與現有技術方法相比,所提的方法展現了較好的思路與識別性能。下一步工作將把整體框架移植至移動端或嵌入式設備中,提高框架的實用性并進一步改善識別效果。