江大鵬,楊 彪,鄒 凌+
(1.常州大學(xué) 信息科學(xué)與工程學(xué)院,江蘇 常州 213164;2.常州大學(xué) 常州市生物醫(yī)學(xué)信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇 常州 213164)
傳統(tǒng)的面部表情識(shí)別算法,分為3個(gè)主要步驟:檢測人臉、提取特征、表情分類。譬如于明等[1]提出基于局部Gabor二值模式(LGBP)特征和稀疏方法,識(shí)別面部表情,識(shí)別率平均接近于87.5%。Georgoulis S等[2]使用高斯過程隱變量模型,對(duì)人臉面部表情進(jìn)行識(shí)別,表情識(shí)別率到達(dá)90%左右。Ding X等[3]運(yùn)用級(jí)聯(lián)任務(wù)的方法分析人臉面部表情,并在4種CK+、FERA、RU-FACS和GFT數(shù)據(jù)庫上驗(yàn)證,表情識(shí)別率達(dá)到70%左右。童瑩[4]通過提取空間多尺度HOG特征,識(shí)別人臉表情。目前,由于深度學(xué)習(xí)方法具有無監(jiān)督特征學(xué)習(xí)能力的突出優(yōu)點(diǎn),研究員打破了“先手動(dòng)提取特征,后模式識(shí)別”這一傳統(tǒng)觀念。深度神經(jīng)網(wǎng)絡(luò)的技術(shù)將傳統(tǒng)的表情識(shí)別3個(gè)步驟(特征學(xué)習(xí)、特征選擇、表情分類)變成了單一步驟(輸入是一張圖像而不是一組人工編碼的特征)。研究表明,當(dāng)使用更深層次的架構(gòu)(即具有許多層)學(xué)習(xí)具有高級(jí)抽象的特征是非常有效的。由于人臉圖像千變?nèi)f化,背景比較復(fù)雜,因此人手動(dòng)提取的特征越來越難以滿足實(shí)際的需求。深度學(xué)習(xí)網(wǎng)絡(luò)可以自動(dòng)提取任務(wù)相關(guān)的特征并進(jìn)行分類,并且具有更好地性能[5,6]。Liu等[7]提出了一種深度置信神經(jīng)網(wǎng)絡(luò)(BDBN),BDBN是由一組弱分類器構(gòu)成,每一個(gè)弱分類器作用是對(duì)一種特定表通過數(shù)據(jù)的增益來增加訓(xùn)練的數(shù)據(jù)量,并在CK+數(shù)據(jù)集和創(chuàng)建的3個(gè)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),表情識(shí)別率達(dá)到93.5%。然而,目前大多數(shù)針對(duì)面部表情的深度學(xué)習(xí)模型出現(xiàn)精度不高,并且訓(xùn)練階段時(shí)間比較長[8-10],這部分原因在于數(shù)據(jù)庫中表情圖片樣本少和圖片里面包含了與面部表情的無關(guān)信息,比如CK+,JAFFE,Oulu-CASIA數(shù)據(jù)庫中圖像包含了許多與表情無關(guān)的信息[11-13],如圖1所示。
圖1 CK+、JAFFE、Oulu-CASIA數(shù)據(jù)集樣例
進(jìn)行面部表情識(shí)別任務(wù)時(shí)主要分為兩個(gè)階段:測試和訓(xùn)練階段。在訓(xùn)練階段,首先對(duì)圖像進(jìn)行人臉檢測,選取面部表情興趣區(qū)域,對(duì)圖像進(jìn)行裁剪,去除背景干擾,然后對(duì)裁剪完的圖像使用局部二值模式(LBP)提取紋理特征,輸入深度卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型。在測試階段,在測試集進(jìn)行上述一系列的圖像預(yù)處理,通過在訓(xùn)練階段獲得的模型,進(jìn)行表情分類。面部表情系統(tǒng)流程如圖2所示。
1.1.1 人臉檢測
采用Viola-Jones框架[14]進(jìn)行人臉檢測,它主要由三功能固件組成:首先使用積分圖的思想,用一個(gè)較完整的圖像來表征人的面部圖,并在積分圖中得到一個(gè)或者多個(gè)距離特征。然后根據(jù)圖像的信息,訓(xùn)練出一系列的弱分類器,同時(shí)用AdaBoost方法進(jìn)行弱分類器的強(qiáng)化,最終得到一個(gè)強(qiáng)分類器。為了提高檢測效率采用級(jí)聯(lián)的方法組合訓(xùn)練得到的強(qiáng)分類器,極大提高了人臉檢測的速度和準(zhǔn)確率(降低漏檢率和誤檢率),如圖3所示。
圖2 面部表情識(shí)別系流程
圖3 人臉檢測結(jié)果
1.1.2 圖像裁剪
如圖3所示人臉框架中,還有對(duì)面部表情分類不重要的信息(例如耳朵,額頭等),這些信息可能會(huì)降低面部表情的分類率,裁剪過程如圖4所示,在圖4中對(duì)耳朵信息進(jìn)行去除,使用的系數(shù)為0.2,由于人臉是對(duì)稱的,只保留人臉圖像寬度0.6倍。這些因子值是根據(jù)人臉結(jié)構(gòu)和經(jīng)驗(yàn)所確定的。
圖4 裁剪流程
1.1.3 降采樣
通過降采樣的操作確保在深度神經(jīng)網(wǎng)絡(luò)中圖像的大小并且確保尺度的標(biāo)準(zhǔn)化,即所有圖像中面部成分(眼睛、嘴、眉毛等)的位置相同。降采樣使用線性內(nèi)插方法,確保在重新采樣之后可以確保圖像中面部成分處于相同位置,降采樣過程目的在于減少GPU執(zhí)行卷積過程運(yùn)行時(shí)間,如圖2所示。
1.1.4 局部二值模式(LBP)
使用LBP算法對(duì)輸入圖像的流形面從高維降到低維,由于LBP算法具有灰度不變性,并且由圖5可以明顯區(qū)分人臉興趣區(qū)域特征,同時(shí)淡化了研究價(jià)值不大的平滑區(qū)域,同時(shí)降低了特征的維數(shù),減少深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)大量數(shù)據(jù)的運(yùn)行時(shí)間。
圖5 LBP提取紋理特征
1.1.5 樣本增益
深度卷積神經(jīng)網(wǎng)絡(luò)需要大量的樣本,針對(duì)目前現(xiàn)有數(shù)據(jù)庫,樣本量少,不利于使用卷積神經(jīng)網(wǎng)絡(luò),因此需要對(duì)樣本進(jìn)行增益。AT Lopes等[15]對(duì)單張圖片進(jìn)行旋轉(zhuǎn)、翻轉(zhuǎn)采樣的擴(kuò)展訓(xùn)練樣本方法,生成了大量的訓(xùn)練樣本,本文借鑒了此方法來增益樣本如圖6所示。
圖6 增益樣本
基于經(jīng)典LeNet-5的網(wǎng)絡(luò)框架進(jìn)行改進(jìn),本文使用的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)如圖7所示。除了輸入平面,它包含6層,輸入一張32*32人臉圖,輸出每種表情概率,確定最終面部表情。卷積神經(jīng)網(wǎng)絡(luò)(CNN)架構(gòu)包括兩個(gè)卷積層、兩個(gè)降采樣層和一個(gè)全連接層一個(gè)Sotfmax層。CNN的第一層是卷積層,其采用5*5的卷積核并輸出28*28像素的16張圖像。CNN的第二層使用Max-pooling(內(nèi)核大小為2*2)的降采樣層將圖像縮小到其圖像大小的一半,輸出16張14*14像素的圖像。CNN的第三層是卷積層,采用5*5的卷積核并輸出32張10*10像素的圖像。CNN的第四層是降采樣層,采用2*2內(nèi)核,輸出32張4*4像素的圖像。通過一系列卷積和降采樣操作獲得平面,這些平面稱之為特征圖。CNN的第五層是全連接層,全連接層包含了128個(gè)神經(jīng)元。最后一層為Softmax輸出6個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)(每個(gè)節(jié)點(diǎn)表示該面部表情下概率大小)。
圖7 深度卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)
1.2.1 卷積層
(1)
輸入特征圖的卷積核都是相同的,對(duì)于一個(gè)特定特征圖都有一個(gè)偏置系數(shù),通過選取的組合作為輸入的特征圖。卷積層是從圖像的很小領(lǐng)域塊接受輸入,當(dāng)神經(jīng)元的輸入塊維度大于特征圖維度時(shí),神經(jīng)元快會(huì)在不同領(lǐng)域塊重復(fù)加權(quán)計(jì)算,構(gòu)成權(quán)值共享。CNN使用隨機(jī)梯度下降法計(jì)算神經(jīng)元之間的突觸權(quán)重,這種方法由Buttou等[16]提出。卷積層和全連接層的突觸的初始值,是由Gulcehre C等[17]提出的,如式(2)所示
(2)
其中,Fin為輸入的維度,F(xiàn)out為輸出的維度,W為突觸的初始化值。式(3)所示神經(jīng)元網(wǎng)絡(luò)中的權(quán)值由t時(shí)刻到t+1時(shí)刻的更新過程
W(t+1)=W(t)+ηδ(t)x(t)
(3)
其中,η是學(xué)習(xí)速率,x(t)為神經(jīng)元的輸入,δ(t)為其誤差項(xiàng)。為了使得模型獲得圖像的平移不變性和增強(qiáng)模型的泛化能力,采用Lecun等神經(jīng)視覺感受野的概念。局部感受野使得神經(jīng)元可以提取基本的視覺特征,主要是眼睛,眉毛和嘴唇的形狀,棱角和邊緣。當(dāng)特征被檢測到,由于在不同的人臉圖像絕對(duì)位置可能是不同的,因此它的絕對(duì)位置信息被淡化,只要此特征相對(duì)其它特征位置的特征是相關(guān)的。比如驚訝表情,由于個(gè)體差異性不同,眉毛的精確位置不同,但是眉毛和眼睛之間相對(duì)距離可以區(qū)別面部是否呈現(xiàn)一個(gè)驚訝表情的趨勢。每個(gè)卷積層之后通常有一個(gè)降采樣層,是因?yàn)樵谟成錀l件下,造成不同特征的編碼位置不同,減少位置精度的一個(gè)簡單的方式時(shí)減少映射圖像的控件分辨率。
1.2.2 降采樣層
降采樣層的目的是減少特征圖的空間分辨率[18],在圖像進(jìn)行平移、扭曲、比例變化和旋轉(zhuǎn)的操作時(shí),減少了輸出的敏感性。降采樣的計(jì)算過程如式(4)所示
(4)
其中,將采樣函數(shù)為down(),采樣窗口是將圖像分割成若干個(gè)均勻分布的小塊,其目的是為了降低分辨率來得到縮放不變性,每個(gè)輸出特征圖都有自己的乘性偏置參數(shù)β和加性偏置參數(shù)b。
1.2.3 全連接層和Softmax層
全連接層與一般神經(jīng)網(wǎng)絡(luò)相類似,它的神經(jīng)元與之前的網(wǎng)絡(luò)層相連接,目的在于增加神經(jīng)網(wǎng)絡(luò)深度,保持結(jié)構(gòu)中深度和廣度的平衡。全連接層接收所學(xué)習(xí)的特征集合,最后輸出每個(gè)面部表情的置信水平。使用soft-max的邏輯函數(shù)(SoftmaxWithLoss)計(jì)算損耗。神經(jīng)元的激活函數(shù)是ReLu,如式(5)所示。ReLu函數(shù)通常在深層架構(gòu)中激活速率快[19]
ReLu(x)=max(0,x)
(5)
本節(jié)使用構(gòu)建深度神經(jīng)網(wǎng)絡(luò)框架對(duì)3個(gè)公開可用的數(shù)據(jù)庫進(jìn)行實(shí)驗(yàn),其中3個(gè)數(shù)據(jù)分別為:Cohn-Kanada(CK+)、The Japanese Female Facial Expression(JAFFE)、NIR&VIS數(shù)據(jù)庫。評(píng)估環(huán)節(jié)的目標(biāo)包括:原圖像與預(yù)處理圖像評(píng)估、數(shù)據(jù)集間的驗(yàn)證、與其它方法比較。在硬件平臺(tái)上:本實(shí)驗(yàn)使用的GPU為NVIDA GeForce GTX 1080,其顯存容量為8 G,CPU為Intel Core i7 3.7 GHz。軟件平臺(tái):操作系統(tǒng)配置的是Linux Ubuntu 12.04,安裝了Python 3.0、NVIDIA CUDA Framework 6.5和cuDNN庫。
提出的系統(tǒng)使用CK+、JAFFE和Oulu-CASIA數(shù)據(jù)庫進(jìn)行了訓(xùn)練和測試。表1是3個(gè)數(shù)據(jù)庫基本信息。
表1 3個(gè)數(shù)據(jù)庫的基本信息
由于CK+、JAFFE、Oulu-CASIA數(shù)據(jù)集下樣本數(shù)量少,需要進(jìn)行數(shù)據(jù)提升,本文采用Keras框架下圖像生成器(ImageDataGenerator),對(duì)圖像生產(chǎn)器設(shè)置的訓(xùn)練參數(shù)見表2。
(1)CK+:選取該數(shù)據(jù)庫6種原始表情圖片一共572張,使用ImageDataGenerator進(jìn)行數(shù)據(jù)提升,一共生成了12 834張圖像,其中訓(xùn)練數(shù)據(jù)為12 054張圖像,測試數(shù)據(jù)為780張圖像。
(2)JAFFE:選取該數(shù)據(jù)庫6種原始表情圖片一共184張,使用ImageDataGenerator進(jìn)行數(shù)據(jù)提升,一共生成了12 720張圖像,其中訓(xùn)練數(shù)據(jù)為12 000張圖像,測試數(shù)據(jù)為720張圖像。
(3)Oulu-CASIA:選取該數(shù)據(jù)庫6種原始表情圖片一共2864張圖像,使用ImageDataGenerator進(jìn)行數(shù)據(jù)提升,一共生成了18 440張圖像,其中訓(xùn)練數(shù)據(jù)為17 460張圖像,測試數(shù)據(jù)為980張圖像。
2.2.1 原圖像與預(yù)處理圖像對(duì)比評(píng)估
為了比較原圖像與預(yù)處理圖像在卷積網(wǎng)絡(luò)識(shí)別效果,在公開CK+數(shù)據(jù)集上設(shè)計(jì)了兩組實(shí)驗(yàn),在訓(xùn)練階段使用相同訓(xùn)練參數(shù),ImageDataGenerator圖像生產(chǎn)器的訓(xùn)練參數(shù)見表3。
原圖像識(shí)別結(jié)果如圖8所示(表情編號(hào)0-生氣,1-厭惡,2-害怕,3-高興,4-傷心,5-驚訝),6類表情的識(shí)別率為89.89%。通過使用第1節(jié)中設(shè)計(jì)圖像預(yù)處理與神經(jīng)網(wǎng)絡(luò)組合方案,在公開CK+數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果如圖8所示,6類表情的識(shí)別率為94.56%。通過在CK+數(shù)據(jù)集上使用原圖像和預(yù)處理對(duì)比的結(jié)果,見表4,在生氣表情上識(shí)別率提高10.60%,在害怕表情上提高10.19%,在傷心表情上提高14.12%,平均識(shí)別率也得到了提高,在原始圖像上每個(gè)Epochs大約為10 s,在預(yù)處理圖像上每個(gè)Epochs為5 s,訓(xùn)練階段總體時(shí)間也減少了一倍,從以上數(shù)據(jù)說明了本文在預(yù)處理和深度模型框架組合方案對(duì)面部微表情識(shí)別率比使用原圖像使用卷積神經(jīng)網(wǎng)絡(luò)的方法更加高效。為了進(jìn)一步體現(xiàn)本文提出的方案,在下一小節(jié)設(shè)計(jì)了對(duì)3個(gè)標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行驗(yàn)證。
表2 ImageDataGenerator訓(xùn)練參數(shù)
表3 訓(xùn)練參數(shù)
2.2.2 數(shù)據(jù)集間評(píng)估
圖8 預(yù)處理與原圖像在面部微表情上的識(shí)別率
圖像生氣厭惡害怕高興傷心驚訝時(shí)間/s識(shí)別率/%原圖像80.10%93.25%77.31%93.75%68.25%99.89%30088.76LBP圖像90.70%96.275/%87.50%97.58%94.12%100%15094.58
圖9 3個(gè)數(shù)據(jù)集對(duì)6種面部微表情識(shí)別的混合矩陣(confusion matrix)
本節(jié)分別在CK+、JAFFE和Oulu-CASIA NIR&VIS數(shù)據(jù)集上使用預(yù)處理與深度框架組合方案得到混合矩陣(normalized confusion matrix),圖9(a)是在CK+數(shù)據(jù)集上使用本文框架所得混合矩陣,圖9(b)是在JAFFE數(shù)據(jù)集上所得的混合矩陣圖,圖9(c)是在Oulu-CASIA數(shù)據(jù)集上所得混合矩陣。表5是3個(gè)數(shù)據(jù)庫的面部識(shí)別率。訓(xùn)練階段30個(gè)Epochs(大約3000次迭代)對(duì)應(yīng)的損失(Loss)和預(yù)測值(Accurcay)分別在CK+、JAFFE和Oulu-CASIA數(shù)據(jù)集如圖10(a)、圖10(b)和圖10(c)所示,3個(gè)數(shù)據(jù)庫都在第25個(gè)Epochs之后收斂,根據(jù)混合矩陣和面部微表情的識(shí)別率和損失率和識(shí)別曲線表明,提出的方法能夠有效的用于識(shí)別面部微表情。
從整體實(shí)驗(yàn)結(jié)果來看,3種數(shù)據(jù)集的6種表情識(shí)別率都在80%以上,尤其在生氣、高興、驚訝3個(gè)表情識(shí)別率都在90%以上,這表明使用預(yù)處理與深度卷積神經(jīng)網(wǎng)絡(luò)組合方案,對(duì)3個(gè)數(shù)據(jù)集訓(xùn)練出的各個(gè)模型有很好的表現(xiàn),而且在訓(xùn)練階段的運(yùn)行時(shí)間都在160 s左右,結(jié)果表明,提出的預(yù)處理與深度卷積神經(jīng)網(wǎng)絡(luò)方案能夠很好融入3個(gè)數(shù)據(jù)集,體現(xiàn)了該方案具有較強(qiáng)穩(wěn)定性和訓(xùn)練速度快的能力。
表5 使用本文方法在3個(gè)數(shù)據(jù)集上識(shí)別率
圖10 3個(gè)數(shù)據(jù)集上訓(xùn)練階段的損失率和準(zhǔn)確率
2.2.3 與其它方法比較
為了比較本文方法與其它方法在面部表情的性能,設(shè)計(jì)了另一組實(shí)驗(yàn)(SVM+CNLF),在公開CK+數(shù)據(jù)集上,與SVM、PCA、ASM等方法進(jìn)行了比較,本文列出了人工提取特征方法和基于深度學(xué)習(xí)方法進(jìn)行對(duì)比,其中本文圖像預(yù)處理和深度卷積網(wǎng)絡(luò)組合方案體現(xiàn)了在傳統(tǒng)的數(shù)據(jù)集上有非常優(yōu)異的表現(xiàn)。見表6。
表6 在CK+數(shù)據(jù)集的模型對(duì)比
由于面部表情數(shù)據(jù)量小且如何利用少量原始數(shù)據(jù)提高表情識(shí)別率是一個(gè)難題,本文對(duì)此進(jìn)行了研究。深度神經(jīng)網(wǎng)絡(luò)的目的無需人工干預(yù),直接將原始數(shù)據(jù)輸入進(jìn)網(wǎng)絡(luò),自動(dòng)進(jìn)行特征選擇,由于一張圖像背景比較復(fù)雜,包含的噪聲(背景)比較多,影響面部表情識(shí)別率和神經(jīng)網(wǎng)絡(luò)的運(yùn)行時(shí)間。因此,本文使用Viola-Jones框架提取面部表情的感興趣區(qū)域,提取感興趣區(qū)域的LBP圖像,使得在圖像預(yù)處理階段具有魯棒性,以減少圖像之間的變化并選擇要學(xué)習(xí)的特征,以簡易快捷的方式,間接地觀測了模型地情況,對(duì)于深度卷積神經(jīng)網(wǎng)絡(luò)這樣的模型,有很好的提升效果。
本文使用圖像預(yù)處理與深度卷積神經(jīng)網(wǎng)絡(luò)的組合方案,在3個(gè)數(shù)據(jù)集(CK+,JAFFE,Oulu-CASIA)上進(jìn)行了評(píng)估,實(shí)驗(yàn)結(jié)果表明使用該方案降低了在訓(xùn)練階段所用的時(shí)間,在3個(gè)數(shù)據(jù)庫上的識(shí)別率分別為94.58%,93.48%,93.15%,體現(xiàn)了本文提出的預(yù)處理和深度卷積神經(jīng)網(wǎng)絡(luò)組合方案對(duì)面部表情識(shí)別有很大的優(yōu)勢。