南京郵電大學(xué) 尚宇成 林發(fā)學(xué) 陳格恩
現(xiàn)今人類表達(dá)情感的方式極為豐富,包括面部表情、語氣語調(diào)、甚至網(wǎng)上聊天的一個標(biāo)點符號都是情感的體現(xiàn),但是,面部表情是人類表達(dá)情緒最直接、最有效的方式。即使身在異地的二人,視頻通話的方式也可將二人情感表達(dá)地淋漓盡致。深度學(xué)習(xí)實現(xiàn)人臉情緒識別一直是研究的熱點方向之一,人臉情緒識別也可以廣泛的應(yīng)用于教育、輔助治療、人機交互等領(lǐng)域。
本文的目的是在已有的CNN主流框架Xception模型的基礎(chǔ)上進(jìn)行改進(jìn),使得模型在減少訓(xùn)練參數(shù)的同時可以快速準(zhǔn)確地識別人臉情緒。再結(jié)合Opencv中的人臉檢測分類器,實現(xiàn)對視頻中的人臉提取,完成人臉情緒識別的實時情緒檢測系統(tǒng)。
Xception是卷積神經(jīng)網(wǎng)絡(luò)的主流框架之一,包括36個卷積層14個模塊,使用深度可分離卷積來替換Inception V3中卷積模塊,且加入Residual learning的結(jié)構(gòu),除了第一以及最后一個模塊,中間模塊都有殘差連接。Xception網(wǎng)絡(luò)與Inception網(wǎng)絡(luò)極為相似,但仍略有不同。前者首先執(zhí)行通道空間卷積操作,每一次卷積操作之后加入批歸一化和激活函數(shù)RELU。中間的模塊采用殘差直連結(jié)構(gòu),可以減少網(wǎng)絡(luò)復(fù)雜性,在數(shù)據(jù)量很大的圖像分類數(shù)據(jù)集上,訓(xùn)練效果顯著優(yōu)于Inception V3。
Opencv是開源的跨平臺計算機視覺庫,是研究計算機視覺的有力工具。本文基于Windows平臺,使用Python語言進(jìn)行代碼編寫,Opencv主要用于視頻實時讀取和人臉檢測。在Pycharm中安裝Opencv-Python來調(diào)用。視頻讀取用到了Opencv中的VideoCapture類,其可以實現(xiàn)讀取本地視頻和讀取攝像頭視頻。關(guān)于人臉檢測,本系統(tǒng)用到的是基于級聯(lián)的人臉檢測方法,運行速度較快。
基于改進(jìn)的人臉情緒識別系統(tǒng)結(jié)構(gòu)框圖如圖1所示,包括視頻數(shù)據(jù)采集、識別人臉圖像、人臉表情預(yù)測、結(jié)果顯示四部分。計算機通過攝像頭進(jìn)行數(shù)據(jù)采集,并通過Opencv檢測人臉。將截取到的人臉圖像送入模型預(yù)測,并將預(yù)測結(jié)果實時顯示在UI界面。

圖1 情緒識別系統(tǒng)框圖
Xception網(wǎng)絡(luò)中有超過2285萬個參數(shù),而FER2013數(shù)據(jù)集較為簡單,在如此復(fù)雜的網(wǎng)絡(luò)中訓(xùn)練模型有過擬合的風(fēng)險且對于本實驗環(huán)境而言過度消耗計算資源。因此,為了增強模型的泛化能力以及預(yù)測的準(zhǔn)確性,本文在Xception的基礎(chǔ)上改進(jìn)得到EM-Xception網(wǎng)絡(luò),減少原網(wǎng)絡(luò)中的殘差模塊數(shù)量,并將殘差模塊中的激活函數(shù)RELU替換為ELU,其與RELU函數(shù)相比,同樣能夠解決梯度消失問題。不同處在于ELU中含有負(fù)值,可以達(dá)到批標(biāo)準(zhǔn)化的效果,減少計算量,且不存在神經(jīng)元“壞死”的現(xiàn)象。ELU函數(shù)如圖2所示。

圖2 ELU激活函數(shù)

圖3 EM-Xception網(wǎng)絡(luò)結(jié)構(gòu)圖

圖4 準(zhǔn)確率及損失
本文的EM-Xception網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,包含8個深度可分離卷積以及3個普通卷積,改進(jìn)后的模型總參數(shù)為50263個,而訓(xùn)練參數(shù)降為49287個。輸入圖像先經(jīng)過兩次卷積后送入四個Xception模塊中,每個模塊中進(jìn)行深度可分離卷積后用ELU激活函數(shù)激活,再進(jìn)行第二次深度分離卷積后批歸一化,最后經(jīng)過最大池化層送入下一個Xception模塊,該模塊共有四個,每一個模塊都通過殘差直連。最后一個Xception模塊輸出的數(shù)據(jù)經(jīng)過卷積及全局均值池化后送入Softmax激活函數(shù)進(jìn)行分類。模型中均采用1×1及3×3的小卷積核可以減少參數(shù)數(shù)量,提高網(wǎng)絡(luò)的訓(xùn)練效果。每個模塊中加入批歸一化層,加快網(wǎng)絡(luò)的訓(xùn)練速度。
FER2013表情數(shù)據(jù)集在Kaggle人臉表情分析比賽提出。包括28709張訓(xùn)練樣本,驗證集與測試集的樣本數(shù)量相同,為3859張,圖像大小為48×48。有的圖存在缺失標(biāo)簽、標(biāo)簽錯誤以及有頭發(fā)等遮擋物的遮擋、傾斜等影響因素,導(dǎo)致數(shù)據(jù)集存在一定的誤差。這個數(shù)據(jù)庫人眼判別的準(zhǔn)確率為65%±5%。
FER2013數(shù)據(jù)集完善齊全,符合實際場景的需要,且圖像大小規(guī)整,利于數(shù)據(jù)處理,因此選用該數(shù)據(jù)集進(jìn)行測試。
本文使用數(shù)據(jù)增強的方式進(jìn)行數(shù)據(jù)預(yù)處理,數(shù)據(jù)增強即人為對圖像進(jìn)行翻轉(zhuǎn)、切割、旋轉(zhuǎn),可以防止過擬合現(xiàn)象,本文中利用keras中的圖片生成器ImageDataGenerator,對圖片進(jìn)行隨機旋轉(zhuǎn)、變形、歸一化等操作,增強模型泛化能力。本文設(shè)置參數(shù)隨機旋轉(zhuǎn)度數(shù)范圍為10度,隨機縮放范圍為0.1,水平及垂直偏移的參數(shù)設(shè)為0.1,設(shè)置隨機水平翻轉(zhuǎn),不進(jìn)行去中心化及標(biāo)準(zhǔn)化。
將經(jīng)過數(shù)據(jù)增強后的FER2013數(shù)據(jù)集送入EM-Xception中訓(xùn)練,由實驗結(jié)果知EM-Xception訓(xùn)練的總輪數(shù)為134次,在FER2013訓(xùn)練集上準(zhǔn)確率為69.3%,模型訓(xùn)練集和驗證集的損失及準(zhǔn)確率變化如圖4所示。說明采用EM-Xception可以在簡化模型的同時提高模型訓(xùn)練的準(zhǔn)確性,不到50000個訓(xùn)練參數(shù)便可達(dá)到中等偏上的準(zhǔn)確率,大大減少了模型訓(xùn)練的資源消耗。
人臉情緒識別系統(tǒng)加載訓(xùn)練好的模型,并通過Opencv調(diào)用攝像頭,將視頻畫面實時顯示在UI界面上,截取視頻中每一幀的數(shù)據(jù),通過Opencv的函數(shù)檢測人臉,并將檢測到的人臉數(shù)據(jù)送入模型中預(yù)測。將預(yù)測結(jié)果實時顯示在UI界面上。也可以通過送入系統(tǒng)的圖片直接進(jìn)行檢測,本文從網(wǎng)絡(luò)中選取不同類型的圖片送入系統(tǒng)進(jìn)行檢測,結(jié)果如圖5所示,預(yù)測結(jié)果正確。

圖5 情緒識別結(jié)果
結(jié)束語:深度學(xué)習(xí)實現(xiàn)人臉情緒識別是當(dāng)下及未來一段時間的熱門研究方向,人臉情緒識別可廣泛應(yīng)用在醫(yī)療、教育、科技等領(lǐng)域,實現(xiàn)精準(zhǔn)的人臉情緒識別可以為醫(yī)生及教育工作者提供更多的幫助。本文提出的EM-Xception模型在Xception的基礎(chǔ)上進(jìn)行了精簡和改進(jìn),大大減少了參數(shù)數(shù)量,減輕硬件負(fù)擔(dān),可以在FER2013數(shù)據(jù)集上實現(xiàn)較高的準(zhǔn)確率。將模型加入情緒識別系統(tǒng),可以較準(zhǔn)確預(yù)測人臉表情。