馮 楊,劉 蓉,魯 甜
(華中師范大學物理科學與技術學院,武漢 430079)
在人際交往過程中,人們通常根據(jù)對方面部表情變化來判斷其情緒,以更好地進行交流。隨著人工智能和機器學習的興起,人臉表情識別技術得到深入發(fā)展,其應用日益廣泛。通過增強人機界面,機器能更好地感知用戶情緒,在行為科學和臨床實踐中捕捉并分析罪犯與患者的微觀表情可了解其潛意識,基于人臉表情識別的情感分類器能幫助情感交互存在障礙的人群增進情感交流。此外,人臉表情自動識別技術還應用于人體異常行為檢測、計算機接口、自動駕駛以及健康管理等多個領域。
關于人臉表情識別的研究最早始于1978 年,SUWA 等人[1]跟蹤臉部視頻動畫獲取每幀圖像關鍵點的運動規(guī)律,并將其與原始圖像關鍵點模型對比后得到識別結果。1991 年,MAS 等人[2]采用光流方法跟蹤肌肉運動走向,獲取局部空間光流值組成表情特征向量構建人臉表情識別系統(tǒng)。傳統(tǒng)的人臉表情識別主要采用局部二值模式[3]、非負矩陣因子分解[4]和稀疏學習[5]等機器學習方法來提取淺層特征。
從2013 年開始,深度學習方法逐漸應用于面部情感識別的研究。文獻[6]采用卷積神經網絡(Convolutional Neural Network,CNN)解決了面部表情的主觀獨立性問題以及圖像平移、旋轉和尺度不變等問題。文獻[7]利用區(qū)域卷積神經網絡(Region Convolutional Neural Network,R-CNN)學習人臉表情特征。隨著深度學習技術的不斷發(fā)展,研究人員基于CNN 設置輔助網絡模塊、網絡層結構和網絡集成來增強表情識別能力。文獻[8]在AlexNet 卷積神經網絡中引入特征選擇機制設計特征選擇網絡FSN。文獻[9]在特征層中增加島嶼損失層,結合決策層的Softmax 損失函數(shù)共同監(jiān)督CNN 訓練。文獻[10]提出一種3 級混合結構網絡,通過決策層集成實現(xiàn)決策多樣性,其在FER2013 數(shù)據(jù)集上識別率達到70.86%。文獻[11]采用改進的深度殘差網絡增加網絡深度,引入遷移學習方法解決數(shù)據(jù)集較小的問題,改進網絡在CK+數(shù)據(jù)集上識別率達到91.33%。上述研究表明,采用卷積神經網絡可得到較好的識別效果,在此基礎上加深和加寬網絡能有效提高識別率,但網絡參數(shù)過多也造成計算復雜度大幅增加,從而導致模型計算性能下降。
為進一步提升表情識別效果,解決網絡結構復雜與數(shù)據(jù)計算量大等問題,本文提出一種應用于人臉表情識別的小尺度核卷積方法。結合小尺度核卷積層、批標準化層和Leaky-ReLU 激活函數(shù)形成組合塊提取圖像特征,在不增加網絡參數(shù)的基礎上加深網絡,以減少靜默神經元的影響,保障神經元充分學習,并使用Adam 優(yōu)化器更新網絡參數(shù)加速網絡訓練。
卷積神經網絡主要由卷積層、池化層(也稱為采樣層)和全連接(Fully connected)層構成,其結構如圖1 所示。其中,卷積層用于局部感知和實現(xiàn)參數(shù)共享,池化層用于特征降維與壓縮參數(shù)量,全連接層用于整合局部特征信息。感受野[12]是卷積神經網絡中最重要的概念之一,其定義為卷積神經網絡每一層輸出特征圖的像素點在輸入圖像上映射區(qū)域的大小。每個卷積核均對應一個感受野,卷積核越大,則神經元感受野的值越大,卷積核能接觸到的原始圖像范圍越大,可提取到更全面、語義層次更高的特征,但會造成網絡參數(shù)量增大和計算復雜度大幅增加。因此,本文用多個小卷積核代替大卷積核,以在獲取相同大小感受野的同時減少參數(shù)量。
圖1 卷積神經網絡結構Fig.1 Structure of convolutional neural network
在早期的研究中,為獲取更大感受野,研究人員主要采用卷積核尺寸為11×11、7×7 和5×5 的卷積神經網絡。隨著計算性能不斷提升,研究人員開始嘗試使用更深和更寬的卷積神經網絡。2012 年,KRJIZHEVSKY 等人[13]使用AlexNet 卷積神經網絡提取特征得到良好的識別效果。AlexNet 包括5 個卷積層和3 個全連接層,每個卷積層中卷積核大小分別為11×11、5×5、3×3、3×3 和3×3。2014 年,SIMONYAN 等人[14]提出一種VGG16 網絡,采用2 個3×3 卷積核組合替代1 個5×5 卷積核,得到的感受野大小與5×5 卷積核相同。2 個3×3 卷積核的參數(shù)量為19,1 個5×5 卷積核的參數(shù)量為26,由此可見在相同感受野下,采用小尺度卷積核所需參數(shù)量更少。
本文在VGG16 網絡模型的基礎上設計小尺度核卷積塊(Conv-block),其結構如圖2 所示。每個小尺度核卷積塊包含2 個卷積塊,每個卷積塊由1 個卷積層、1 個批標準化(Batch Normalization,BN)層和1 個激活層組成。卷積層均采用3×3 卷積核,每個卷積層后加入BN 層處理,以加大搜索補償并加快收斂。為使網絡具有非線性,在BN 層后引入激活層。小尺度核卷積塊選擇小尺度卷積核代替大尺度卷積核,并通過增加網絡層數(shù)保持圖像性質,避免圖像特征丟失,確保提取特征時有足夠的感受野,在減少參數(shù)量的同時提升網絡性能。
圖2 小尺度核卷積塊結構Fig.2 Structure of small-scale kernel convolution block
卷積層采用內核大小為m×m的濾波器與輸入圖像進行卷積運算。每個卷積層的網絡神經元與輸入圖像局部區(qū)域有m×m個連接,計算公式如下:
其中,x為輸入圖像中進行卷積運算的局部感受野像素值,y為輸出特征圖的像素值,w為卷積核的權重值,b為偏置值,f(·)為Leaky-ReLU 激活函數(shù)[15]。
f(·)是ReLU 激活函數(shù)的變體,其計算公式如下:
其中,斜率α∈(0,1),本文中設置α=0.01。由于導數(shù)不為零,因此激活函數(shù)使負軸信息不會完全丟失,從而減少靜默神經元,可有效解決ReLU 函數(shù)在負區(qū)間時神經元不學習的問題。
批標準化操作采用單位高斯分布規(guī)范網絡中的激活函數(shù)以避免輸入初始化,從而使每層輸入達到穩(wěn)定分布,以幫助網絡訓練并避免出現(xiàn)過擬合現(xiàn)象。
本文基于小尺度核卷積的人臉表情識別模型結構如圖3 所示。該模型由5 個采用3×3 卷積的小尺度核卷積塊、5 個最大池化(Max pooling)層、1 個全連接(Fully connected)層和1 個輸出層組成。5 個小尺度核卷積塊的卷積核個數(shù)分別為64、128、256、512和512,步長和填充均為1。模型輸入為44 像素×44 像素的灰度圖,經過第1 個小尺度核卷積塊處理后,輸出64 張44 像素×44 像素的特征圖,與原輸入圖像大小相同。最大池化層進行下采樣,得到64 張大小為22 像素×22 像素的特征圖,每張?zhí)卣鲌D大小均為原輸入圖像的一半。經過第2 個小尺度核卷積塊處理后,輸出128 張大小為22 像素×22 像素的特征圖。最大池化層進行下采樣,得到128 張大小為11 像素×11 像素的特征圖。再經過3 次相同的“小尺度核卷積塊+池化”操作后,得到512張大小為2像素×2像素的特征圖,輸入含有512 個神經元的全連接層,輸出1 個512 維向量,最終通過Softmax 分類器獲得7 種表情的分類結果,人臉表情識別模型的各層具體參數(shù)如表1 所示(“—”表示該參數(shù)值不存在)。
圖3 人臉表情識別模型Fig.3 Facial expression recognition model
表1 人臉表情識別模型參數(shù)Table 1 Parameters of facial expression recognition model
在上述模型中,池化層對輸入層的空間維度執(zhí)行下采樣操作,通過降低特征維度來減小輸入圖像的特征圖大小并采用最大池化操作。完全連接層具有與輸入中每個權重相連的神經元,最終輸出結果為1 個向量,其維度大小為卷積核個數(shù)。
Softmax 分類器將輸入值壓縮為0~1 輸出直觀的歸一化類概率,計算公式為:
其中,N為總類別數(shù),S(x)j為Softmax 分類器將輸入x分類為j的概率。
交叉熵損失函數(shù)的表達式如下:
其中,g(xi) 為模型輸出預測值,yi為真實值,N為樣本數(shù)。
模型計算復雜度通常采用參數(shù)量衡量,參數(shù)量的計算公式如下:
其中,S為模型整體參數(shù)量,K為卷積核尺寸,I為輸入圖像通道數(shù),O為輸出圖像通道數(shù)。本文模型參數(shù)量較傳統(tǒng)AlexNet 網絡和VGG16 網絡大幅減少,并少于改進AlexNet[16]網絡,表明采用小尺度核卷積塊的模型結構可有效減少參數(shù)量,在一定程度上降低計算復雜度。
本文實驗采用GPU 版本的pytorch 框架,硬件平臺為Ubuntu 16.04.2,雙核Intel 2.2 GHz CPU,Tesla K80 GPU,1 TB 硬盤內存,11 GB 運行內存。在全連接層上應用Dropout 算法,丟失率設置為0.6,以避免出現(xiàn)過擬合現(xiàn)象。采用參數(shù)β1=0.600 和β2=0.999 的Adam 優(yōu)化器來更新網絡模型參數(shù)。
本文采用FER2013 數(shù)據(jù)集[17]和CK+數(shù)據(jù)集進行訓練與測試。FER2013 數(shù)據(jù)集是常用的人臉表情公開數(shù)據(jù)集,共有35 888 張面部表情圖像,包含不同光照情況、姿勢角度和面部比例的人臉。該數(shù)據(jù)集由28 709張訓練圖像、3 589 張公開測試圖像和3 589 張私有測試圖像組成,圖像均為48 像素×48 像素的灰度圖。其中,每張圖像的類別標記如下:0=憤怒,1=厭惡,2=恐懼,3=快樂,4=悲傷,5=驚喜,6=中立,7 種表情示例如圖4 所示。
圖4 FER2013 數(shù)據(jù)集中7 種表情示例Fig.4 Example of seven kinds of expressions in FER2013 dataset
CK+數(shù)據(jù)集[18]是人臉表情識別的代表性數(shù)據(jù)集之一,其包括123 個人共593 組圖像序列,展示人臉從表情平靜到表情變化達到峰值的過程。該數(shù)據(jù)集中帶標簽的表情序列有327 個,包含中性、憤怒,蔑視、厭惡、恐懼、高興、悲傷和驚訝8 種表情。本文實驗選取除中性表情之外的其他7 種表情圖像,7 種表情示例如圖5所示。從每組圖像序列中提取最后3幀圖像,共981張。所有圖像經過預處理大小均為48 像素×48 像素。
圖5 CK+數(shù)據(jù)集中7 種表情示例Fig.5 Example of seven kinds of expressions in CK+dataset
為解決數(shù)據(jù)樣本小造成模型泛化能力差的問題,本文實驗對數(shù)據(jù)進行增強處理。在訓練階段,對原始圖像進行隨機剪裁,得到大小為44 像素×44 像素的圖像,再進行隨機鏡像處理以弱化過擬合作用。在測試階段,分別在每張圖像的左上角、右上角、左下角、右下角和中心處進行切割,并通過水平鏡像處理使數(shù)據(jù)集擴大10 倍,將其輸入人臉表情識別模型得到相應的概率,概率取平均值后的輸出類別即為最終的表情類別。
在FER2013 數(shù)據(jù)集實驗中,在模型訓練階段將28709張圖像作為訓練集。實驗共迭代250 輪,批大小設置為128。初始化學習率設置為0.01,前80 輪迭代學習率保持不變,當?shù)啍?shù)超過80 后,學習率開始衰減,每迭代5 輪衰減1 次,學習率減少1/10。在測試階段,用3 589 張公開測試圖像得到識別率,并通過反向傳播進一步優(yōu)化網絡。然后用3 589 張測試圖像驗證模型,對每輪迭代的識別率取平均值得到最終識別效果,以此來評估算法性能。
本文生成的FER2013 測試集表情分類混淆矩陣如圖6 所示,其反映了人臉圖像在7 種表情上的識別率??梢钥闯?,快樂最易區(qū)分,其識別率達到92%,明顯高于其他表情。驚訝、厭惡和中性的識別率也較高,分別為85%、78%和74%,這4 種表情也是人類日常生活中常見的面部表情。憤怒、恐懼和悲傷的識別率相對較低,分別為64%、56%和61%,其原因為:1)數(shù)據(jù)集中這3 種表情圖像數(shù)量較少造成訓練不足,導致分類出現(xiàn)誤差;2)這3種表情具有一定相似性,容易混淆難以區(qū)分。
圖6 FER2013 數(shù)據(jù)集表情分類混淆矩陣Fig.6 Confusion matrix of expression classification in FER2013 dataset
在CK+數(shù)據(jù)集實驗中,將數(shù)據(jù)集按9∶1 的圖像數(shù)量比例分為訓練集和測試集,得到882 張訓練圖像和99 張測試圖像。實驗共迭代60 輪,批大小設置為128。初始化學習率設置為0.01,前20 輪迭代學習率保持不變,當?shù)啍?shù)超過20 后,學習率開始衰減,每迭代1 輪衰減1 次,學習率減少1/5,采用十折交叉驗證法得到CK+測試集表情分類混淆矩陣,如圖7所示。與FER2013 測試集實驗類似,由于恐懼、悲傷和蔑視3 類表情的圖像數(shù)量相對較少且表情不易區(qū)分,因此其識別率低于憤怒、厭惡、高興和驚訝。
圖7 CK+數(shù)據(jù)集表情分類混淆矩陣Fig.7 Confusion matrix of expression classification in CK+dataset
為驗證本文方法的有效性,分別在FER2013數(shù)據(jù)集和CK+數(shù)據(jù)集上,將本文方法與FER2013 record[19]、DNNRL[10]和CPC[20]、FsNet+TcNet[21]、MSSD+KCF[22]、FRR-CNN[23]、多特征融合[24]以及改進殘差網絡[11]等其他表情識別方法的識別率進行比較。其中,F(xiàn)ER2013 record、DNNRL 和CPC 是人臉表情識別的經典方法,F(xiàn)ER2013 record 具有Kaggle2013 比賽識別率排行榜最高的記錄,DNNRL 提出3 級混合結構并采用決策層集成獲取決策多樣性,CPC 將數(shù)據(jù)集進行復雜感知分類,可解決環(huán)境和表情類別的不一致問題。FsNet+TcNet和MSSD+KCF 為近年來提出的方法,F(xiàn)sNet+TcNet 對圖像進行人臉分割處理,通過分割出與表情識別關聯(lián)度最大的人臉區(qū)域來提升網絡識別精度,MSSD+KCF采用多尺度核特征卷積,以通道數(shù)合并的特征融合方式提高表情識別精度。上述方法在FER2013 數(shù)據(jù)集和CK+數(shù)據(jù)集中的比較結果如表2 所示。
表2 不同表情識別方法在2 個數(shù)據(jù)集中的識別率Table 2 Recognition rate of different expression recognition methods in two datasets %
由表2 可以看出,對于FER2013 數(shù)據(jù)集和CK+數(shù)據(jù)集,本文方法優(yōu)于減少特征冗余的卷積神經網絡FRR-CNN、多特征融合方法和改進殘差網絡的方法。本文方法保留了圖像特征的完整性,在原始圖像基礎上進行數(shù)據(jù)增強處理,并采用多層小尺度核卷積減少網絡參數(shù)量,在一定程度上降低了算法復雜度,因而其識別效果更好。
本文提出一種利用小尺度核卷積的人臉表情識別方法,采用小尺度核卷積塊與池化層相結合的網絡結構提取人臉表情特征,在相同感受野下加深網絡并精簡網絡結構,利用Softmax 分類器獲取表情分類結果,同時在模型訓練和測試階段對數(shù)據(jù)進行增強處理,提升網絡泛化能力以減少識別誤差。實驗結果表明,與FER2013 record、DNNRL 等方法相比,該方法的人臉表情識別率更高。后續(xù)將去除人臉圖像中與表情無關的冗余部分,以更精確地提取表情特征。