尚宇成 陳格恩 洪 揚(yáng)
(南京郵電大學(xué),江蘇 南京210000)
計(jì)算機(jī)視覺技術(shù)飛速發(fā)展,人臉情緒識(shí)別技術(shù)也得到了快速推進(jìn),作為傳達(dá)感情的一種方式,面部表情傳達(dá)的信息占到了交流時(shí)傳遞信息總量的55%。常見的情感分為七類,包括開心、生氣、驚訝、悲傷、害怕、厭惡和中性。人臉情緒識(shí)別主要包括圖像采集、數(shù)據(jù)處理、特征提取以及情緒識(shí)別四部分,其中關(guān)鍵是對(duì)表情特征的提取,傳統(tǒng)的檢測(cè)方法設(shè)計(jì)較為復(fù)雜且已經(jīng)不能滿足準(zhǔn)確性的要求,因此深度學(xué)習(xí)識(shí)別情緒方法隨之誕生。大規(guī)模視覺識(shí)別挑戰(zhàn)賽等競(jìng)賽提供了豐富的情緒數(shù)據(jù),推動(dòng)了深度學(xué)習(xí)技術(shù)的發(fā)展,其中卷積神經(jīng)網(wǎng)絡(luò)在分類識(shí)別任務(wù)上取得了顯著成效。包含AlexNet、VGG、ResNet 等網(wǎng)絡(luò)。
本文采用深度學(xué)習(xí)方法,在Xception 網(wǎng)絡(luò)的基礎(chǔ)上,設(shè)計(jì)訓(xùn)練輕量卷積神經(jīng)網(wǎng)絡(luò),在FER2013 數(shù)據(jù)集上進(jìn)行訓(xùn)練,在減少訓(xùn)練參數(shù)的同時(shí)提高識(shí)別準(zhǔn)確率,最終達(dá)到了68.91%的識(shí)別率。
卷積神經(jīng)網(wǎng)絡(luò)由傳統(tǒng)的多層神經(jīng)網(wǎng)絡(luò)發(fā)展而來,加入了有效的特征提取部分、卷積層以及池化層,用來有效地提取特征以及減少訓(xùn)練參數(shù),降低網(wǎng)絡(luò)復(fù)雜度。最后的全連接層進(jìn)行損失計(jì)算并得到分類結(jié)果。
本文在Xception 網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行簡(jiǎn)化和改進(jìn),深度可分離卷積相較于正常卷積可以節(jié)省更多參數(shù),其先對(duì)輸入圖像的三個(gè)通道RGB 分別進(jìn)行空間卷積(單通道卷積),然后進(jìn)行1*1通道卷積,與Inception 網(wǎng)絡(luò)恰好相反。
本文模型首先在激活函數(shù)的選取上進(jìn)行改進(jìn),常用的激活函數(shù)RELU,其優(yōu)點(diǎn)很明顯,因其無飽和區(qū)從而解決了梯度消失的問題,計(jì)算效率高,收斂快,但其負(fù)數(shù)部分恒為0,稱為單側(cè)抑制,學(xué)習(xí)率(Learning rarte)較大時(shí),容易出現(xiàn)神經(jīng)單元壞死,對(duì)數(shù)據(jù)無響應(yīng)的問題。SELU,Scaled Exponential Linear Units (如公式(1)),存在飽和區(qū),不存在死區(qū),以及ELU,Exponential Linear Units(如公式(2)),都解決了Relu 函數(shù)造成的神經(jīng)元“死亡”問題,也不存在梯度消失和梯度爆炸現(xiàn)象,本文分別采取兩種激活函數(shù)進(jìn)行實(shí)驗(yàn)。

其中α=1.6732632423543772848170429916717
λ=1.0507009873554804934193349852946

其次對(duì)深度可分離卷積網(wǎng)絡(luò)進(jìn)行輕量化處理,改進(jìn)后的模型總參數(shù)為50263 個(gè),而訓(xùn)練參數(shù)降為49287 個(gè),先將輸入圖像進(jìn)行兩次3*3 卷積,Relu 激活,批歸一化處理后,送入四個(gè)以SELU 或ELU 為激活函數(shù)的可分離卷積模塊,每個(gè)模塊中進(jìn)行兩次深度可分離卷積,批歸一化,激活函數(shù)SELU 或ELU 激活,最大池化層以及殘差直連,最后一個(gè)模塊輸出的數(shù)據(jù)經(jīng)過1*1卷積及全局均值池化后送入Softmax 激活函數(shù)進(jìn)行分類。
在windows10 64 位操作系統(tǒng)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)采用Pycharm軟件編程,在Keras 深度學(xué)習(xí)框架下搭建網(wǎng)絡(luò),其高度模塊化,高級(jí)API 大大簡(jiǎn)化了代碼量,幾十行代碼即可迅速搭建深度學(xué)習(xí)框架,且搭建的網(wǎng)絡(luò)淺顯易懂。在軟件中安裝keras、tensorflow、scikit-klearn、numpy、matplotlib、xlrd 等依賴包進(jìn)行模型訓(xùn)練與數(shù)據(jù)處理。
3.2.1 FER2013
FER2013 表情數(shù)據(jù)集在Kaggle 人臉表情分析比賽提出。含有28709 張訓(xùn)練樣本,驗(yàn)證集與測(cè)試集的樣本數(shù)量均為3859張,像素大小規(guī)整。包含生氣、厭惡、害怕、開心、悲傷、驚訝和中性七種類別的圖像,對(duì)應(yīng)數(shù)字0-6。該數(shù)據(jù)庫人眼判別的準(zhǔn)確率為65%±5%。
3.2.2 CK+數(shù)據(jù)集
CK+數(shù)據(jù)集是進(jìn)行人臉表情識(shí)別最大的實(shí)驗(yàn)室數(shù)據(jù)集,發(fā)布于2010 年。包含有123 個(gè)對(duì)象的327 個(gè)被標(biāo)簽的序列。包含憤怒,輕視、厭惡、悲傷、驚訝、恐懼、快樂七種情緒。也是人臉識(shí)別中較為常用的一個(gè)數(shù)據(jù)庫。
本實(shí)驗(yàn)采用FER2013 數(shù)據(jù)集進(jìn)行模型訓(xùn)練。
3.3.1 數(shù)據(jù)增強(qiáng)
在實(shí)際中,為了增加神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,我們往往會(huì)增加神經(jīng)網(wǎng)絡(luò)的深度和廣度,網(wǎng)絡(luò)的加深會(huì)使學(xué)習(xí)的參數(shù)增多,數(shù)據(jù)集較小時(shí),參數(shù)會(huì)擬合數(shù)據(jù)的全部特點(diǎn),而不是數(shù)據(jù)間的共同特征,容易導(dǎo)致過擬合,使訓(xùn)練出來的模型缺乏泛化能力,準(zhǔn)確率低。
數(shù)據(jù)增強(qiáng)即人為的對(duì)圖像進(jìn)行翻轉(zhuǎn)、切割、旋轉(zhuǎn),可以防止過擬合現(xiàn)象,常見的數(shù)據(jù)增強(qiáng)方式包括隨機(jī)旋轉(zhuǎn)、隨機(jī)裁剪、色彩抖動(dòng)、高斯噪聲等,可以增加數(shù)據(jù)的多樣性,從而擴(kuò)大數(shù)據(jù)量,增強(qiáng)訓(xùn)練網(wǎng)絡(luò)的魯棒性。本文設(shè)置參數(shù)隨機(jī)旋轉(zhuǎn)度數(shù)范圍為10度,隨機(jī)縮放范圍為0.1,水平及垂直偏移的參數(shù)設(shè)為0.1,設(shè)置隨機(jī)水平翻轉(zhuǎn),不進(jìn)行去中心化及標(biāo)準(zhǔn)化。
3.3.2 訓(xùn)練參數(shù)
采用經(jīng)過數(shù)據(jù)增強(qiáng)的FER2013 數(shù)據(jù)集,利用Keras 深度學(xué)習(xí)平臺(tái)搭建改進(jìn)的深度可分離卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并指定訓(xùn)練集的20%作為驗(yàn)證集,驗(yàn)證集與訓(xùn)練集無公共部分,設(shè)置分類個(gè)數(shù)(num_classes)為7 類,訓(xùn)練總輪數(shù)(epochs)為200 次,批大小(batch_size)為32 個(gè),即每次訓(xùn)練時(shí)在訓(xùn)練集中選32 個(gè)樣本,輸入圖像大小為1 通道,大小為48*48,并采用Adam 優(yōu)化器降低損失。
通過多次實(shí)驗(yàn)得到實(shí)驗(yàn)結(jié)果,采用ELU 激活函數(shù)的識(shí)別率優(yōu)于SELU。ELU 激活函數(shù)在FER2013 數(shù)據(jù)集得到的混淆矩陣如表1。

表1 FER2013 數(shù)據(jù)集七類表情混淆矩陣
由混淆矩陣可知,F(xiàn)ER2013 數(shù)據(jù)集的七種表情中開心和驚訝的識(shí)別率較高,分別為:0.86 和0.81,而悲傷和害怕的識(shí)別率較低,為0.54 和0.46。可能是因其兩種情緒的面部表情較為接近,難以分辨,以及可能存在的標(biāo)簽錯(cuò)誤以及頭發(fā)、手等遮擋物的遮擋。
模型識(shí)別的訓(xùn)練集與驗(yàn)證集的準(zhǔn)確率如圖1。

圖1 訓(xùn)練集與驗(yàn)證集的準(zhǔn)確率
改進(jìn)的AlexNet[2]卷積神經(jīng)網(wǎng)絡(luò)的方法在FER2013 數(shù)據(jù)集上實(shí)現(xiàn)了68.85%的準(zhǔn)確率。周章輝等[3]構(gòu)建的雙通道卷積神經(jīng)網(wǎng)絡(luò)在FER2013 數(shù)據(jù)集上準(zhǔn)確率為66.7%。而徐琳琳方法[1]則在此數(shù)據(jù)集上達(dá)到了65.6%的識(shí)別率。本文的方法達(dá)到了68.91%的準(zhǔn)確率,較上述方法優(yōu)化了模型,說明本文改進(jìn)的網(wǎng)絡(luò)模型在面部表情分類上有更好的識(shí)別效率,表2。

表2 模型準(zhǔn)確率對(duì)比
本文在Xception 網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行改進(jìn),ELU 激活函數(shù)解決神經(jīng)元壞死現(xiàn)象,有較好的魯棒性。采用輕量化設(shè)計(jì),大大減少模型參數(shù)數(shù)量,最后在FER2013 數(shù)據(jù)集上取得了68.91%的準(zhǔn)確率。模型訓(xùn)練需要大量數(shù)據(jù)作為支撐,模型準(zhǔn)確率難以大幅度提升與數(shù)據(jù)集的標(biāo)注,數(shù)據(jù)預(yù)處理與參數(shù)設(shè)置有較大關(guān)系,后續(xù)工作將考慮建立自己的數(shù)據(jù)庫,并將光照、遮擋等因素考慮進(jìn)去,進(jìn)一步優(yōu)化網(wǎng)絡(luò)模型與參數(shù)選擇,提高識(shí)別準(zhǔn)確率。