尚宇成 陳格恩 洪 揚
(南京郵電大學,江蘇 南京210000)
計算機視覺技術(shù)飛速發(fā)展,人臉情緒識別技術(shù)也得到了快速推進,作為傳達感情的一種方式,面部表情傳達的信息占到了交流時傳遞信息總量的55%。常見的情感分為七類,包括開心、生氣、驚訝、悲傷、害怕、厭惡和中性。人臉情緒識別主要包括圖像采集、數(shù)據(jù)處理、特征提取以及情緒識別四部分,其中關(guān)鍵是對表情特征的提取,傳統(tǒng)的檢測方法設(shè)計較為復雜且已經(jīng)不能滿足準確性的要求,因此深度學習識別情緒方法隨之誕生。大規(guī)模視覺識別挑戰(zhàn)賽等競賽提供了豐富的情緒數(shù)據(jù),推動了深度學習技術(shù)的發(fā)展,其中卷積神經(jīng)網(wǎng)絡(luò)在分類識別任務(wù)上取得了顯著成效。包含AlexNet、VGG、ResNet 等網(wǎng)絡(luò)。
本文采用深度學習方法,在Xception 網(wǎng)絡(luò)的基礎(chǔ)上,設(shè)計訓練輕量卷積神經(jīng)網(wǎng)絡(luò),在FER2013 數(shù)據(jù)集上進行訓練,在減少訓練參數(shù)的同時提高識別準確率,最終達到了68.91%的識別率。
卷積神經(jīng)網(wǎng)絡(luò)由傳統(tǒng)的多層神經(jīng)網(wǎng)絡(luò)發(fā)展而來,加入了有效的特征提取部分、卷積層以及池化層,用來有效地提取特征以及減少訓練參數(shù),降低網(wǎng)絡(luò)復雜度。最后的全連接層進行損失計算并得到分類結(jié)果。
本文在Xception 網(wǎng)絡(luò)的基礎(chǔ)上進行簡化和改進,深度可分離卷積相較于正常卷積可以節(jié)省更多參數(shù),其先對輸入圖像的三個通道RGB 分別進行空間卷積(單通道卷積),然后進行1*1通道卷積,與Inception 網(wǎng)絡(luò)恰好相反。
本文模型首先在激活函數(shù)的選取上進行改進,常用的激活函數(shù)RELU,其優(yōu)點很明顯,因其無飽和區(qū)從而解決了梯度消失的問題,計算效率高,收斂快,但其負數(shù)部分恒為0,稱為單側(cè)抑制,學習率(Learning rarte)較大時,容易出現(xiàn)神經(jīng)單元壞死,對數(shù)據(jù)無響應(yīng)的問題。SELU,Scaled Exponential Linear Units (如公式(1)),存在飽和區(qū),不存在死區(qū),以及ELU,Exponential Linear Units(如公式(2)),都解決了Relu 函數(shù)造成的神經(jīng)元“死亡”問題,也不存在梯度消失和梯度爆炸現(xiàn)象,本文分別采取兩種激活函數(shù)進行實驗。
其中α=1.6732632423543772848170429916717
λ=1.0507009873554804934193349852946
其次對深度可分離卷積網(wǎng)絡(luò)進行輕量化處理,改進后的模型總參數(shù)為50263 個,而訓練參數(shù)降為49287 個,先將輸入圖像進行兩次3*3 卷積,Relu 激活,批歸一化處理后,送入四個以SELU 或ELU 為激活函數(shù)的可分離卷積模塊,每個模塊中進行兩次深度可分離卷積,批歸一化,激活函數(shù)SELU 或ELU 激活,最大池化層以及殘差直連,最后一個模塊輸出的數(shù)據(jù)經(jīng)過1*1卷積及全局均值池化后送入Softmax 激活函數(shù)進行分類。
在windows10 64 位操作系統(tǒng)進行實驗,實驗采用Pycharm軟件編程,在Keras 深度學習框架下搭建網(wǎng)絡(luò),其高度模塊化,高級API 大大簡化了代碼量,幾十行代碼即可迅速搭建深度學習框架,且搭建的網(wǎng)絡(luò)淺顯易懂。在軟件中安裝keras、tensorflow、scikit-klearn、numpy、matplotlib、xlrd 等依賴包進行模型訓練與數(shù)據(jù)處理。
3.2.1 FER2013
FER2013 表情數(shù)據(jù)集在Kaggle 人臉表情分析比賽提出。含有28709 張訓練樣本,驗證集與測試集的樣本數(shù)量均為3859張,像素大小規(guī)整。包含生氣、厭惡、害怕、開心、悲傷、驚訝和中性七種類別的圖像,對應(yīng)數(shù)字0-6。該數(shù)據(jù)庫人眼判別的準確率為65%±5%。
3.2.2 CK+數(shù)據(jù)集
CK+數(shù)據(jù)集是進行人臉表情識別最大的實驗室數(shù)據(jù)集,發(fā)布于2010 年。包含有123 個對象的327 個被標簽的序列。包含憤怒,輕視、厭惡、悲傷、驚訝、恐懼、快樂七種情緒。也是人臉識別中較為常用的一個數(shù)據(jù)庫。
本實驗采用FER2013 數(shù)據(jù)集進行模型訓練。
3.3.1 數(shù)據(jù)增強
在實際中,為了增加神經(jīng)網(wǎng)絡(luò)的學習能力,我們往往會增加神經(jīng)網(wǎng)絡(luò)的深度和廣度,網(wǎng)絡(luò)的加深會使學習的參數(shù)增多,數(shù)據(jù)集較小時,參數(shù)會擬合數(shù)據(jù)的全部特點,而不是數(shù)據(jù)間的共同特征,容易導致過擬合,使訓練出來的模型缺乏泛化能力,準確率低。
數(shù)據(jù)增強即人為的對圖像進行翻轉(zhuǎn)、切割、旋轉(zhuǎn),可以防止過擬合現(xiàn)象,常見的數(shù)據(jù)增強方式包括隨機旋轉(zhuǎn)、隨機裁剪、色彩抖動、高斯噪聲等,可以增加數(shù)據(jù)的多樣性,從而擴大數(shù)據(jù)量,增強訓練網(wǎng)絡(luò)的魯棒性。本文設(shè)置參數(shù)隨機旋轉(zhuǎn)度數(shù)范圍為10度,隨機縮放范圍為0.1,水平及垂直偏移的參數(shù)設(shè)為0.1,設(shè)置隨機水平翻轉(zhuǎn),不進行去中心化及標準化。
3.3.2 訓練參數(shù)
采用經(jīng)過數(shù)據(jù)增強的FER2013 數(shù)據(jù)集,利用Keras 深度學習平臺搭建改進的深度可分離卷積神經(jīng)網(wǎng)絡(luò)進行訓練,并指定訓練集的20%作為驗證集,驗證集與訓練集無公共部分,設(shè)置分類個數(shù)(num_classes)為7 類,訓練總輪數(shù)(epochs)為200 次,批大?。╞atch_size)為32 個,即每次訓練時在訓練集中選32 個樣本,輸入圖像大小為1 通道,大小為48*48,并采用Adam 優(yōu)化器降低損失。
通過多次實驗得到實驗結(jié)果,采用ELU 激活函數(shù)的識別率優(yōu)于SELU。ELU 激活函數(shù)在FER2013 數(shù)據(jù)集得到的混淆矩陣如表1。
表1 FER2013 數(shù)據(jù)集七類表情混淆矩陣
由混淆矩陣可知,F(xiàn)ER2013 數(shù)據(jù)集的七種表情中開心和驚訝的識別率較高,分別為:0.86 和0.81,而悲傷和害怕的識別率較低,為0.54 和0.46??赡苁且蚱鋬煞N情緒的面部表情較為接近,難以分辨,以及可能存在的標簽錯誤以及頭發(fā)、手等遮擋物的遮擋。
模型識別的訓練集與驗證集的準確率如圖1。
圖1 訓練集與驗證集的準確率
改進的AlexNet[2]卷積神經(jīng)網(wǎng)絡(luò)的方法在FER2013 數(shù)據(jù)集上實現(xiàn)了68.85%的準確率。周章輝等[3]構(gòu)建的雙通道卷積神經(jīng)網(wǎng)絡(luò)在FER2013 數(shù)據(jù)集上準確率為66.7%。而徐琳琳方法[1]則在此數(shù)據(jù)集上達到了65.6%的識別率。本文的方法達到了68.91%的準確率,較上述方法優(yōu)化了模型,說明本文改進的網(wǎng)絡(luò)模型在面部表情分類上有更好的識別效率,表2。
表2 模型準確率對比
本文在Xception 網(wǎng)絡(luò)的基礎(chǔ)上進行改進,ELU 激活函數(shù)解決神經(jīng)元壞死現(xiàn)象,有較好的魯棒性。采用輕量化設(shè)計,大大減少模型參數(shù)數(shù)量,最后在FER2013 數(shù)據(jù)集上取得了68.91%的準確率。模型訓練需要大量數(shù)據(jù)作為支撐,模型準確率難以大幅度提升與數(shù)據(jù)集的標注,數(shù)據(jù)預處理與參數(shù)設(shè)置有較大關(guān)系,后續(xù)工作將考慮建立自己的數(shù)據(jù)庫,并將光照、遮擋等因素考慮進去,進一步優(yōu)化網(wǎng)絡(luò)模型與參數(shù)選擇,提高識別準確率。