呂 鵬,單劍鋒
(南京郵電大學(xué) 電子信息與光學(xué)工程、微電子學(xué)院,江蘇 南京 210023)
面部表情在人類的社會交往中起著至關(guān)重要的作用。1971年,心理學(xué)家Ekman與Friesen提出六種人類主要的基本表情,每種表情代表一種獨特的心理活動,分別為憤怒、厭惡、恐懼、高興、悲傷、驚訝。隨著人工智能(AI)技術(shù)的不斷發(fā)展,人機交互、智能控制等技術(shù)的研究變得越來越流行,面部表情識別[1](FER)是其中一個重要的視覺信息,如果機器能借此預(yù)測人類的情緒,就可以做出相應(yīng)的行為來滿足人類的需求。典型的表情識別系統(tǒng)包括人臉圖像采集、特征提取、訓(xùn)練和識別。大多數(shù)人臉圖像特征對噪聲和光照變化非常敏感。因此,能夠容忍噪聲和光照變化的特征有助于生成魯棒的表情識別系統(tǒng)。
傳統(tǒng)的特征提取方法大致分為兩種:基于幾何特征的特征提取方法,即通過對嘴巴、眼睛、眉毛等具有顯著特征的位置進行定位,測量確定其大小、距離、形狀等特征,再進行分類?;贏Us的表情識別算法即通過檢測一些預(yù)定義的AUs,然后根據(jù)FACS將它們的組合編碼為特定的表情。由于AU的定義在語義上有歧義,在實際應(yīng)用中很難實現(xiàn)對AU的準確檢測。基于外觀的傳統(tǒng)特征提取方法,從面部整體或局部的圖像過濾器來提取面部外觀變化,即通過對圖像整體或局部的紋理進行檢測并提取,再進行分類。諸如,Gabor[2]小波、Haar小波、LBP[3]、LDP[4]等方法,在一定程度上提高了表情識別的正確率,但是對光照和噪聲的魯棒性并不高,在人臉圖像的平滑區(qū)域提取基于邊緣的局部特征會產(chǎn)生對噪聲敏感的不穩(wěn)定模式,對分類結(jié)果產(chǎn)生負面影響。LDN[5]算法通過提取表情圖像的梯度方向信息,得到可以區(qū)分具有相同微結(jié)構(gòu)但強度不同的編碼,該算法對光照和噪聲有不錯的魯棒性。
隨著深度學(xué)習的快速發(fā)展,人臉表情識別進入新的階段。G.Wang等[6]通過改進LeNet-5網(wǎng)絡(luò),增加了卷積層和池化層,將低級特征與高級特征相結(jié)合,用可訓(xùn)練卷積核學(xué)習其隱性特征,一定程度上提高了識別率;H.Yang等[7]通過cGAN網(wǎng)絡(luò)生成原始人臉表情對應(yīng)的中性表情,利用過濾在中間層的殘余表情成分進行分類。該算法在一定程度上減少了在表情分類的過程中同一個人的不同表情被誤分為同一類的概率;J.Li等[8]提出一種Faster R-CNN算法,用卷積網(wǎng)絡(luò)提取表情隱性特征之后,利用RPNs生成高質(zhì)量的區(qū)域建議并通過R-CNN進行檢測,最后進行分類,一定程度上避免傳統(tǒng)面部表情識別中復(fù)雜的顯性特征提取過程和低層次數(shù)據(jù)操作的問題。以上大部分方法是提取單一特征或者對不同層次的單一特征進行識別分類,難免會對表情的部分細節(jié)特征有所遺漏,導(dǎo)致難以詳細地描述表情圖像信息。該文在研究淺層DenseNet模型的基礎(chǔ)上,將LDN特征與稠密特征進行融合,利用特征的多樣性提高表情識別率。
K.He等[9]提出ResNet網(wǎng)絡(luò),通過殘差塊增加網(wǎng)絡(luò)深度的同時也在一定程度上緩解梯度消失的問題。G.Huang等[10]提出的DenseNet網(wǎng)絡(luò)借鑒了ResNet網(wǎng)絡(luò)的思想,設(shè)計了Dense Block模塊,通過對比式(1)ResNet中殘差模塊與式(2)DenseNet中Dense Block模塊得出兩者的本質(zhì)區(qū)別,其目的在于將輸入與該層之前的網(wǎng)絡(luò)層輸出疊加作為該層的輸入,增加各卷積層特征的利用率。
x=H(x)+x
(1)
x=H([x0,x1,…,x])
(2)
其中,x為第層輸出,H表示非線性變換,[x0,x1,…,x]表示從0到-1層的特征作合并操作。
每個Dense Block中都有多個BN-ReLU-Conv(3×3)層,同一個Dense Block中在不改變的輸入尺寸的情況下,盡可能提取圖像的隱性特征。假設(shè)每一個非線性變換H的輸出為K個特征,那么第層網(wǎng)絡(luò)的輸入便為K+(-1)×K個輸入特征,其中K稱為增長率。為了防止特征圖過多導(dǎo)致過擬合和計算復(fù)雜度的問題,在Conv(3×3)之前增加1×1的卷積層進行降維,即BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3),在每兩個Dense Block之間增加過渡層,即BN-ReLU-Conv(1×1)+2X2AvgPooling在減小圖像尺寸的同時再次降維,最終輸入到Softmax層進行分類。
BN層為批量標準化層,將每個批量數(shù)據(jù)標準化,用來加快模型學(xué)習和收斂速度,防止梯度爆炸、消失和過擬合的問題。ReLU為激活函數(shù),用以增加非線性因素,提高模型的表達能力。此外,面對全連接層有增加Training以及testing的計算量而降低了訓(xùn)練速度和參數(shù)量過多導(dǎo)致過擬合的缺點,DenseNet中利用全局平均池化層(GAP)來代替全連接層。GAP使得特征圖與最終的分類間轉(zhuǎn)換更加簡單自然,不像全連接層需要大量訓(xùn)練調(diào)優(yōu)的參數(shù),降低了空間參數(shù)會使模型更加健壯,抗過擬合效果更佳。
A. Ramirez Rivera等提出LDN(Local Directional Number)算法,以一種緊湊的方式對人臉紋理的方向信息(即紋理的結(jié)構(gòu))進行編碼,通過與方向算子進行卷積,產(chǎn)生比現(xiàn)有方法更有分辨力的編碼。如圖1所示,借助提取方向信息的kirsch算子來計算每個微圖像的結(jié)構(gòu),并使用突出的方向索引(方向號)和符號來編碼這些信息。這能夠區(qū)分具有不同強度轉(zhuǎn)換的相似結(jié)構(gòu)模式。
圖1 kirsch算子
將人臉表情圖像與M0到M7各個算子卷積得到不同方向的邊界響應(yīng),找出特定方向上具有高值的邊界響應(yīng),生成編碼。這里以高值的邊界響應(yīng)作為主要區(qū)域進行編碼。正響應(yīng)最高和負響應(yīng)最低分別為編碼方案中的MSB和LSB,其表達式為:
LDN(x,y)=8×i(x,y)+j(x,y)
(3)
其中,(x,y)為編碼局域的中間像素,i(x,y)為最大正響應(yīng)(MSB)的方向數(shù),j(x,y)為最小負響應(yīng)(LSB)的方向數(shù),其表達式為:
i(x,y)=argmaxi{Ⅱi(x,y)|0≤i≤7}
(4)
j(x,y)=argmini{Ⅱj(x,y)|0≤j≤7}
(5)
其中,Ⅱi為原始圖像的卷積運算:
Ⅱi=Ⅰ*Mi
(6)
其中,Mi為kirsch第i個掩模,得到整體的LDN編碼和直方圖vi,但是由于該編碼方式缺乏位置信息,需要將圖像分成多個cell,通過順序級聯(lián)每個cell的LDN編碼和直方圖,可以得到人臉表情圖像的全局紋理信息,如公式(7)所示。其中si為第i個cell。
(7)
LDN算法對噪聲和光照有較好的魯棒性,可以有效地描述人臉表情的方向紋理信息。
針對單一特征可能會丟失部分表情圖像信息的問題,設(shè)計一種多特征融合的并行網(wǎng)絡(luò),如圖2所示。上側(cè)通道通過參考DenseNet結(jié)構(gòu),設(shè)計了三個Dense Block級聯(lián)的淺層網(wǎng)絡(luò)結(jié)構(gòu),用以提取人臉表情特征,下側(cè)通道通過LDN算法提取表情圖像的方向信息,將兩種方法提取的特征進行融合,最后一起送入SoftMax進行表情分類。
圖2 文中網(wǎng)絡(luò)模型
左側(cè)通道通過預(yù)處理表情圖像與kirsch算子卷積得到每張圖像的各個方向信息,利用公式計算最高正響應(yīng)和最低負響應(yīng),得到每張圖像的局部方向數(shù)字編碼,再將編碼輸入到全連接層,經(jīng)過BN層后與右通道提取的稠密特征級聯(lián)。
右側(cè)通道是改進的Dense Block結(jié)構(gòu)(如圖3所示),特征圖通過瓶頸層(bottleneck layer)Hi(i=1,2,3)后在通道上進行疊加。圖4為瓶頸層結(jié)構(gòu),每個Dense Block結(jié)構(gòu)中包含3個bottleneck layer結(jié)構(gòu)級聯(lián),每個瓶頸層中包含64個1*1卷積核和32個3*3卷積核,右側(cè)通道網(wǎng)絡(luò)總層數(shù)為20層,在利用稠密網(wǎng)路結(jié)構(gòu)特點的同時大大縮短稠密網(wǎng)絡(luò)的層數(shù),縮短每個Dense Block深度的同時增加每層卷積核來增加特征圖的數(shù)量盡可能提取圖像的隱性特征。為防止特征圖在之后的卷積層中疊加過多造成特征冗余,在每兩個Dense Block之間增加過渡層(Transition Layer,TL結(jié)構(gòu)),壓縮系數(shù)為0.5,用來縮小圖像尺寸和防止特征冗余。
圖3 Dense Block i(i=1,2,3)結(jié)構(gòu)
圖4 bottleneck layer
CK+[11]數(shù)據(jù)集由123名參與者的593個表情圖像序列組成,包含7種基本表情:生氣、蔑視、厭惡、恐懼、高興、悲傷、驚訝。從每個序列中選取3幅最具表情代表性的人臉圖像。通過人臉檢測選取人臉部分,并將圖像裁剪為48*48大小的人臉表情圖像,如圖5所示。
圖5 CK+數(shù)據(jù)集
Jaffe數(shù)據(jù)集是由10位日本女性在實驗室條件下根據(jù)指示做出的7種表情,包括生氣、厭惡、恐懼、高興、悲傷、驚訝、中性,共213張圖像,如圖6所示。通過對每張圖像鏡像反轉(zhuǎn)并在左上角、右上角、右下角、左下角、中心方位裁剪為42*42的圖像,將數(shù)據(jù)集擴大10倍,再送入模型進行訓(xùn)練。
圖6 Jaffe數(shù)據(jù)集
將數(shù)據(jù)集分成5份,令其中4份作為訓(xùn)練集,1份作為測試集,并將5次測試結(jié)果取平均作為最終的識別率。為了增加模型的魯棒性,對訓(xùn)練集部分作數(shù)據(jù)增強:隨機水平翻轉(zhuǎn)、隨機角度旋轉(zhuǎn)、隨機水平或者垂直方向平移、隨機縮放等操作。模型采用Adam優(yōu)化器,進行150輪訓(xùn)練,初始的學(xué)習率為0.001,經(jīng)過100輪訓(xùn)練之后,學(xué)習率衰減10倍繼續(xù)進行訓(xùn)練。CK+數(shù)據(jù)集的批數(shù)量為64,由于Jaffe數(shù)據(jù)集的樣本數(shù)量相對較少,批數(shù)量為16。
表1為CK+數(shù)據(jù)集測試集的混淆矩陣。從表1中可以得出高興、厭惡、恐懼和驚訝的表情識別率最高,蔑視的表情識別率相對較低,模型將某些蔑視的表情誤分類成恐懼,通過觀察CK+數(shù)據(jù)集中的蔑視類和恐懼類表情,原因可能是試驗人員在發(fā)出蔑視和恐懼表情時帶有相似特征,如嘴巴緊閉等,增加了兩類表情的混淆度。
表1 CK+數(shù)據(jù)集混淆矩陣
表2為針對CK+數(shù)據(jù)集的不同算法之間識別率的對比,文獻[12]提出了特征冗余縮減卷積神經(jīng)網(wǎng)絡(luò)(FRRCNN),通過在同一層的特征映射之間呈現(xiàn)更具辨別力的圖像特征來減少冗余,文獻[13]通過利用方向信息和三元模式有效地編碼情緒相關(guān)特征,文獻[14]提出了一種表情敏感對比損失方法來度量表情相似度并且提出了一種身份敏感的對比損失算法,用于從身份標簽中學(xué)習身份相關(guān)信息,實現(xiàn)身份不變表達式識別,都取得了不錯的識別率。從表2中可以看出,利用稠密網(wǎng)絡(luò)改進的卷積神經(jīng)網(wǎng)絡(luò)取得了94.57%的識別率,但是由于數(shù)據(jù)量小,單一特征容易丟失表情圖像信息的問題,表情識別率并不算高。提出的稠密特征與LDN特征融合算法在一定程度上彌補了單一特征的不足,提高了表情的識別率,證明該算法有一定的有效性。
表2 CK+數(shù)據(jù)集算法對比
表3為Jaffe數(shù)據(jù)集的混淆矩陣,從表中得出驚訝和中性的表情識別率相對較高,達到98%。生氣和厭惡表情的識別率相對較低,分別被誤分為悲傷和恐懼。對比歐美人組成的CK+數(shù)據(jù)集,亞洲女性組成的Jaffe數(shù)據(jù)集中面部表情幅度較小,而且生氣會伴隨悲傷,恐懼伴隨厭惡,具有相似的特征,因此增加了表情的混淆度。
表3 Jaffe數(shù)據(jù)集混淆矩陣
表4為Jaffe數(shù)據(jù)集的不同算法之間識別率對比。文獻[15]采用Cabor小波變換提取圖像特征再利用神經(jīng)網(wǎng)絡(luò)進行分類,用單一方法很難提取表情圖像的全部特征,并且該數(shù)據(jù)集相對較小,使得提取的圖像特征更少,因此該方法的識別率并不高。文獻[16]通過訓(xùn)練一個點分布模型(PDM)來提取人臉特定區(qū)域的幾何特征,再利用SVM進行分類。但是該方法依賴特定區(qū)域的定義,而且部分表情的變化對特定區(qū)域的改變很難察覺。文獻[17]的ARLCP算法是利用邊緣響應(yīng)的符號、幅度和方向信息提取表情圖像相關(guān)特征,但單一方法難以提取表情的全部信息,因此改進的DenseNet方法取得的識別率不高,通過結(jié)合LDN算法提取的特征,經(jīng)過5折交叉驗證,并將5次測試結(jié)果取平均值后取得95.43%的識別率。
表4 Jaffe數(shù)據(jù)集算法對比
表5為模型參數(shù)量的對比,其中VGG模型深度為10層,參數(shù)量為180萬左右。DenseNet具有獨特的特征提取和傳遞方式,對比相同深度的卷積神經(jīng)網(wǎng)絡(luò),其模型總體的參數(shù)復(fù)雜度會低很多。而改進的DenseNet縮短了原模型的深度,進一步減少了參數(shù)復(fù)雜度。在其基礎(chǔ)上結(jié)合LDN特征提取算法,最終提高了模型的人臉表情識別率。雖然在一定程度上增加了參數(shù)復(fù)雜度,但相比VGG模型的參數(shù)量,總體增加的參數(shù)復(fù)雜度并不大。
表5 參數(shù)量對比
針對在小數(shù)據(jù)集上單一特征可能丟失表情圖像部分信息,該文提出一種多特征融合的并行網(wǎng)絡(luò),將DenseNet網(wǎng)絡(luò)提取的稠密特征與LDN算法提取的特征進行融合,再用Softmax進行分類。對比改進DenseNet網(wǎng)絡(luò)在CK+數(shù)據(jù)集和Jaffe數(shù)據(jù)集上的識別率,有一定的提升,證明了該并行網(wǎng)絡(luò)的有效性。且該方法采用稠密連接的特點和縮短網(wǎng)絡(luò)深度后使得網(wǎng)絡(luò)的參數(shù)量較少,但該網(wǎng)絡(luò)在有效提高表情識別率的同時也增加了算法復(fù)雜度,下一步工作可以繼續(xù)優(yōu)化網(wǎng)絡(luò)模型和參數(shù)。