張琳琳, 陳志雨, 張 嘯
(長(zhǎng)春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 吉林 長(zhǎng)春 130012)
面部表情在人與人之間的交流和互動(dòng)中起著重要作用。最近,心理學(xué)研究報(bào)告指出,面部表情是人類表達(dá)情感的最具有判別力的方式。在整個(gè)發(fā)言者的信息中,面部表情所傳達(dá)的信息占55%,言語(yǔ)部分包含的信息占7%,聲音傳達(dá)的信息占38%[1],近年來(lái)人臉表情識(shí)別已經(jīng)被應(yīng)用到越來(lái)越多的領(lǐng)域,比如人機(jī)交互[2]、安全檢測(cè)[3]、操作員疲勞檢測(cè)[4]、情緒音樂(lè)[5]、臨床醫(yī)學(xué)[6]等。由于其廣泛的應(yīng)用,面部表情識(shí)別吸引了大量學(xué)者研究[7-10]。
人臉表情識(shí)別系統(tǒng)流程主要包括圖像預(yù)處理、圖像檢測(cè)、特征提取、特征分類四部分。在整個(gè)流程中,對(duì)面部圖像進(jìn)行特征提取起著至關(guān)重要的作用,是決定算法成功的關(guān)鍵步驟。人臉表情特征提取技術(shù)主要基于外觀特征或幾何特征[11]。使用由表情引起的臉部紋理(例如皺紋等)提取外觀特征,幾何特征是從臉部及其組成部分(例如眉毛、嘴巴、鼻子等)中提取出來(lái)的。1970年,Paul Ekman和Wallace V. Friesen開發(fā)了面部動(dòng)作編碼系統(tǒng)(Facial Action Coding System, FACS)[12],該方法被廣泛應(yīng)用于描述和測(cè)量面部行為。梯度直方圖(Histograms of Oriented Gradients, HOG)、尺度不變特征變換(Scale Invariant Feature Transform, SIFT)、局部二值模式是用于提取面部特征的最新技術(shù)。上述技術(shù)均使用手工特征進(jìn)行面部表情識(shí)別,這使得特征對(duì)包含姿勢(shì)、照明和遮擋變化的面部圖像具有很小的容忍度。卷積神經(jīng)網(wǎng)絡(luò)不同于傳統(tǒng)的機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺(jué)方法,而是從用于訓(xùn)練的數(shù)據(jù)集中通過(guò)使用梯度下降等迭代算法自動(dòng)學(xué)習(xí)并提取特征,通常與前饋神經(jīng)網(wǎng)絡(luò)相結(jié)合完成端到端的訓(xùn)練。
近年來(lái),使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)進(jìn)行圖像數(shù)據(jù)特征提取的深度學(xué)習(xí)變得越來(lái)越流行。隨著并行計(jì)算技術(shù)的廣泛應(yīng)用,CNN在許多計(jì)算機(jī)視覺(jué)任務(wù)中表現(xiàn)出色。從低級(jí)圖像處理(如超分辨率)[13]到高級(jí)圖像理解(如圖像分類[14]、物體檢測(cè)[15]和場(chǎng)景標(biāo)注[16]),CNN的成功主要?dú)w功于其對(duì)復(fù)雜自然圖像不同表現(xiàn)水平的能力。但是現(xiàn)有的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)全連接層關(guān)注較少,全連接層在不同尺度下的特征提取能力不同。文獻(xiàn)[17]針對(duì)CNN全連接層在不同尺度下的特征提取能力問(wèn)題,提出一種三通道全連接層的CNN,該方法在紋身圖像檢測(cè)中取得了比較好的效果。為了提高網(wǎng)絡(luò)性能,增強(qiáng)網(wǎng)絡(luò)特征表達(dá)能力,文中提出了一種基于雙通道卷積神經(jīng)網(wǎng)絡(luò)模型,在全連接層對(duì)傳統(tǒng)的單通道全連接層進(jìn)行改進(jìn),構(gòu)建了一個(gè)有雙通道全連接層的卷積神經(jīng)網(wǎng)絡(luò)。文獻(xiàn)[18]指出,在適當(dāng)選擇的度量空間下,期望理想的面部特征具有比最小類間距離更小的最大類內(nèi)距離。但是,現(xiàn)有算法很少能夠有效地實(shí)現(xiàn)這一標(biāo)準(zhǔn)。因此,文中在訓(xùn)練過(guò)程中使用A-Softmax損失,使用角度作為距離度量,將角度距離和學(xué)習(xí)到的特征相結(jié)合,以便增強(qiáng)辨別力。為了驗(yàn)證該模型的效果,文中在FER2013人臉表情數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。
CNN與普通多層感知器(Multilayer Perception, MLP)的區(qū)別在于其卷積層、池化層和非線性激活函數(shù)的使用。卷積層由濾波器組成,例如,5×5×1(5×5表示寬度和高度各為5個(gè)像素,1表示圖像為灰度)。直觀地說(shuō),卷積層用于“滑動(dòng)”輸入圖像的寬度和高度,并計(jì)算輸入?yún)^(qū)域和權(quán)重學(xué)習(xí)參數(shù)的點(diǎn)積,這反過(guò)來(lái)將產(chǎn)生二維激活圖,并由給定區(qū)域處濾波器的響應(yīng)組成。池化層根據(jù)卷積層中濾波器的結(jié)果減小輸入圖像的大小,結(jié)果使模型中的參數(shù)數(shù)量也減少,因此被稱為下采樣。激活函數(shù)用于在計(jì)算中引入非線性,沒(méi)有激活函數(shù),模型將只學(xué)習(xí)線性映射。目前比較常用的激活函數(shù)是ReLU函數(shù)[19],因?yàn)樗ctanh,sigmoid兩個(gè)函數(shù)相比,大大加速了隨機(jī)梯度下降的收斂[20]。
CNN每個(gè)層包含的特征信息在整個(gè)網(wǎng)絡(luò)中是分層分布的,較低層主要包含圖像的紋理和邊角特征,是圖像的局部特征。較高層包含的是特定類的特征,更適合需要全局特征的復(fù)雜任務(wù)。隨著層的逐漸加深,特征會(huì)變得越來(lái)越復(fù)雜和全局化。通常把全連接層提取的特征認(rèn)為是高層特征,傳統(tǒng)的CNN如Lenet[21]、Alexnet[22]等均使用單通道的全連接層,此外,傳統(tǒng)的單一通道全連接層都是只保留了最后一層池化層的部分“重要”特征,丟棄了那些認(rèn)為“不太重要”的特征,這使得全連接層提取到的特征在圖像表達(dá)能力方面具有一定的局限性。為了充分利用最后一層池化層中的特征信息,同時(shí)增強(qiáng)全連接層對(duì)不同尺度空間特征信息的表達(dá)能力,文中設(shè)計(jì)了一個(gè)雙通道全連接層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),具體如圖1所示。
Maxout網(wǎng)絡(luò)是一種簡(jiǎn)單的前向傳播結(jié)構(gòu)模型,文獻(xiàn)[23]研究表明,傳統(tǒng)的激活函數(shù)(如Sigmod、ReLU)都只能擬合二維函數(shù),Maxout卻可以擬合任意維度的函數(shù)。給定輸入x∈Rd(x表示給定的輸入特征向量或上一隱層的狀態(tài)),Maxout隱層中每個(gè)神經(jīng)元的計(jì)算公式如下:
hi(x)=maxzij
j∈[1,k]
(1)
zij=xTWij+bij
W∈Rd×m×k,b∈Rm×k
(2)
式中:W、b----分別表示權(quán)重和偏置,W是大小為(d,m,k)的三維矩陣;
d----輸入層節(jié)點(diǎn)個(gè)數(shù);
k----每個(gè)隱層節(jié)點(diǎn)對(duì)應(yīng)的“隱隱含層”節(jié)點(diǎn)數(shù),Maxout函數(shù)從k個(gè)“隱隱含層”節(jié)點(diǎn)中取最大值作為該層的輸出。
與傳統(tǒng)的激活函數(shù)相比,Maxout激活函數(shù)的輸出表示具有非稀疏性,將其與Dropout技術(shù)結(jié)合使用,Dropout用在Maxout網(wǎng)絡(luò)層的后面可以在一定程度上優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)。
A-Softmax損失最早在文獻(xiàn)[18]中提出被用于人臉識(shí)別任務(wù),其基本思想是通過(guò)操縱特征面從而產(chǎn)生角度間隔。
在用CNN處理多分類問(wèn)題中,假定輸入特征為xi,對(duì)應(yīng)的標(biāo)簽為yi,A-Softmax損失的計(jì)算方法如下:
(3)

在A-Softmax損失的監(jiān)督下,學(xué)習(xí)的特征構(gòu)造了一個(gè)有區(qū)別的角度度量,其相當(dāng)于超球面流形上的測(cè)地距離。CNN學(xué)習(xí)具有幾何可解釋角間隔的面部特征,因?yàn)锳-Softmax損失需要Wi=1,bi=0,所以預(yù)測(cè)僅取決于樣本x和Wi之間的角度,因此x可以被分類為具有最小角度的身份。添加參數(shù)m是為了學(xué)習(xí)不同身份之間的角度間隔,角度間隔隨著m的增大而增大,如果m=1,角度間隔為0。A-Softmax損失通過(guò)約束學(xué)習(xí)特征從而在超球面流形上進(jìn)行區(qū)分,它與超球面流形之間的緊密聯(lián)系使得學(xué)習(xí)的特征對(duì)于面部識(shí)別更有效。
文中對(duì)傳統(tǒng)CNN模型的全連接層進(jìn)行改進(jìn),構(gòu)造了含雙通道全連接層的CNN模型,新的CNN模型包括5個(gè)卷積層、3個(gè)池化層、1個(gè)全連接融合層和雙通道的全連接層,如圖1所示。

圖1 雙通道CNN模型
將最大池化和平均池化結(jié)合使用,可以保留更多樣化的特征信息。為了防止過(guò)擬合以及提高模型的泛化性,使用了Dropout技術(shù)和批量歸一化技術(shù)。與傳統(tǒng)的CNN模型相比,文中提出的方法具有以下特點(diǎn):
1)充分考慮全連接層不同神經(jīng)元個(gè)數(shù)對(duì)圖像高層語(yǔ)義特征提取能力的影響,設(shè)計(jì)了雙通道融合的全連接層,增強(qiáng)了CNN模型的特征表達(dá)能力。
2)在雙通道全連接層使用Maxout激活函數(shù)代替?zhèn)鹘y(tǒng)的ReLU激活函數(shù),使網(wǎng)絡(luò)能夠表達(dá)更精確的高維特征信息。
3)考慮到在人臉表情識(shí)別過(guò)程中存在的理想面部特征具有比最小類間距離更小的最大類內(nèi)距離問(wèn)題,在訓(xùn)練過(guò)程中,使用A-Softmax損失,使CNN可以學(xué)習(xí)到具有幾何可解釋角度間隔的面部特征。
改進(jìn)后的CNN模型各網(wǎng)絡(luò)層參數(shù)見表1。

表1 雙通道CNN模型參數(shù)
實(shí)驗(yàn)使用的深度學(xué)習(xí)工具為TensorFlow,所有實(shí)驗(yàn)都在MAC OS X上進(jìn)行,使用CPU為2.9 GHz Intel Core i5,內(nèi)存為8 G,硬盤為1 T。
傳統(tǒng)方式進(jìn)行人臉表情識(shí)別通常是手動(dòng)提取特征,這些特征對(duì)光照、姿態(tài)和遮擋變化的容忍度較差,用于這些方法的數(shù)據(jù)集主要在特定環(huán)境(例如在實(shí)驗(yàn)室中)中收集,僅具有正面面部圖像,并且一些表情是不自然和夸大的,這導(dǎo)致許多方法受數(shù)據(jù)庫(kù)影響,如果將這些方法推廣到其他數(shù)據(jù)集或現(xiàn)實(shí),獲得良好性能的概率將非常小。文中實(shí)驗(yàn)使用的是Kaggle網(wǎng)站提供的FER2013人臉表情數(shù)據(jù)集,它是自發(fā)面部表情的代表性數(shù)據(jù)集,包含年齡、種族、性別、姿勢(shì)、背景、光照和遮擋等多種變化,如圖2所示。

圖2 FER2013數(shù)據(jù)集
該數(shù)據(jù)集由35 887個(gè)48×48像素的灰度圖像組成,包含7種表情:高興、悲傷、厭惡、恐懼、吃驚、生氣、中性。圖像的處理方式使得面部幾乎居中,每個(gè)面部在每張圖片中大約占據(jù)相同的空間。
為了使模型對(duì)噪聲和輕微變化更具有魯棒性,使用了簡(jiǎn)單的數(shù)據(jù)擴(kuò)增技術(shù),首先水平翻轉(zhuǎn)圖像,然后對(duì)每個(gè)圖像以(-20,20)之間的隨機(jī)角度進(jìn)行旋轉(zhuǎn),最后將所有圖像歸一化為具有零均值和單位方差。
采用雙通道CNN模型在FER2013數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),卷積層和全連接層全部使用ReLU激活函數(shù),在第三和第五卷積層之后使用批量歸一化技術(shù),訓(xùn)練模型時(shí)使用交叉熵?fù)p失函數(shù),初始化學(xué)習(xí)率為10e-4,卷積層和全連接層Dropout大小均為0.9。使用Adam優(yōu)化器,在訓(xùn)練模型時(shí),分別對(duì)三組擁有不同參數(shù)的雙通道全連接層進(jìn)行實(shí)驗(yàn),三組雙通道參數(shù)分別為:
1)通道1:1 024-1 024,通道2:256-256;
2)通道1:2 048-1 024,通道2:1 024-256;
3)通道1:4 096-4 096,通道2:256-256。
用上述三組參數(shù)進(jìn)行多次實(shí)驗(yàn),發(fā)現(xiàn)只有1)中的參數(shù)表現(xiàn)出較好的效果。用1)中的參數(shù)在FER2013數(shù)據(jù)集上重復(fù)進(jìn)行了5次實(shí)驗(yàn),測(cè)試結(jié)果的準(zhǔn)確率,見表2。

表2 雙通道CNN模型5次實(shí)驗(yàn)準(zhǔn)確率 %
分別對(duì)改進(jìn)前后的模型在訓(xùn)練過(guò)程中的準(zhǔn)確率進(jìn)行了可視化,僅改變?nèi)B接層通道數(shù),保持上述實(shí)驗(yàn)中其它參數(shù)不變,傳統(tǒng)單通道全連接層CNN模型在FER2013數(shù)據(jù)集上的準(zhǔn)確率約為67.2%,使用雙通道全連接層的CNN模型通過(guò)提取不同尺度的特征信息,可以有效地提高模型的特征表達(dá)能力,能夠使模型的準(zhǔn)確率提升約1%,如圖3所示。

圖3 FER2013數(shù)據(jù)集的訓(xùn)練集和測(cè)試集準(zhǔn)確率曲線
為了讓CNN模型能夠更好地?cái)M合圖像的高維特征,在全連接層使用Maxout激活函數(shù)代替上述實(shí)驗(yàn)中的ReLU激活函數(shù),設(shè)“隱隱含層”神經(jīng)元個(gè)數(shù)為5,在使用A-Softmax損失訓(xùn)練模型時(shí),其參數(shù)m用來(lái)學(xué)習(xí)不同類特征之間的角度間隔,設(shè)m值為4,最后結(jié)合數(shù)據(jù)擴(kuò)增技術(shù)分別在FER2013數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),此次實(shí)驗(yàn)中卷積層Dropout為0.8,全連接層Dropout為0.5,學(xué)習(xí)率為10e-4,使用Adam優(yōu)化器進(jìn)行訓(xùn)練,實(shí)驗(yàn)結(jié)果見表3。

表3 不同方法在FER2013數(shù)據(jù)集上準(zhǔn)確率對(duì)比 %
使用傳統(tǒng)CNN模型和文中方法在FER2013數(shù)據(jù)集上不同表情的分類準(zhǔn)確率如圖4所示。

圖4 不同表情分類準(zhǔn)確率對(duì)比
從圖4可以看出,兩個(gè)模型預(yù)測(cè)高興標(biāo)簽的準(zhǔn)確率都比較高,說(shuō)明了高興表情特征比其它表情特征都更容易識(shí)別。其次,對(duì)比傳統(tǒng)CNN模型和文中方法,使用文中方法能夠使大多數(shù)表情標(biāo)簽的識(shí)別準(zhǔn)確率提高,而使厭惡和悲傷兩種表情的識(shí)別準(zhǔn)確率下降,說(shuō)明不同模型對(duì)不同表情的分類能力不同,使用傳統(tǒng)CNN模型更有利于識(shí)別厭惡和悲傷兩種表情。最后,觀察生氣和恐懼兩種表情的識(shí)別結(jié)果,發(fā)現(xiàn)兩種表情的識(shí)別準(zhǔn)確率都有所提升,使用文中方法后兩種表情的類間距離變大。
為了使提取的特征對(duì)光照、姿態(tài)和遮擋等變化具有較好的容忍度,文中在傳統(tǒng)CNN模型的基礎(chǔ)上,將單通道的全連接層改成雙通道,提升了全連接層對(duì)高層語(yǔ)義特征的表達(dá)能力,在全連接層使用Maxout激活函數(shù)代替?zhèn)鹘y(tǒng)的ReLU激活函數(shù),使網(wǎng)絡(luò)能夠表達(dá)更精確的高維特征信息。在訓(xùn)練過(guò)程中,使用A-Softmax損失,使改進(jìn)后的CNN模型可學(xué)習(xí)到具有幾何可解釋角度間隔的面部特征。試驗(yàn)表明,文中方法具有較好的效果。