王從澳, 黃潤才, 孫延標(biāo), 楊 彬, 孫劉成
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201600)
面部表情識別是計算機(jī)視覺領(lǐng)域的一個重要研究方向。近年來,基于計算機(jī)的人臉情感識別應(yīng)用越來越廣泛,如人機(jī)交互(human computer interaction,HCI)、商業(yè)產(chǎn)品、醫(yī)學(xué)研究等。在HCI領(lǐng)域,以人為中心的計算機(jī)系統(tǒng)不僅能夠根據(jù)用戶輸入做出響應(yīng),還可以根據(jù)用戶行為做出響應(yīng)。在商業(yè)應(yīng)用領(lǐng)域,如駕駛員疲勞檢測系統(tǒng)、游戲、視頻等娛樂系統(tǒng)。在醫(yī)學(xué)研究領(lǐng)域,通常用于臨床抑郁癥的識別,疼痛評估以及行為和神經(jīng)科學(xué)的研究。
傳統(tǒng)的人臉表情識別方法依賴于從人臉圖像中手工提取的面部情感特征。應(yīng)用廣泛的手工特征提取方法包括方向梯度直方圖[1](histogram of oriented gradients,HOG),線性二進(jìn)制模式(linear binary pattern,LBP),局部相位量化[2](local phase quantization,LPQ)等。Abdulrahman M等人[3]首先提取面部手工特征,然后按順序進(jìn)行面部動作單元編碼,最后輸入支持向量機(jī)(support vector machine,SVM)分類器中進(jìn)行識別。
在過去幾年中,基于深度學(xué)習(xí)(deep learning,DL)的技術(shù)在解決一系列計算機(jī)視覺問題中表現(xiàn)突出,例如目標(biāo)識別、醫(yī)學(xué)圖像分析和運(yùn)動分析等。其中,Jain D K等人[4]提出了一種基于多角度的最優(yōu)模式深度學(xué)習(xí)(multi-angle optimal pattern deep learning,MAOPDL)技術(shù),通過使用基于多角度的最優(yōu)配置對特征集進(jìn)行適當(dāng)?shù)膶R,從而克服了照明突變等問題。但是深度卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練依賴大量的樣本數(shù)據(jù),因此,針對小樣本的表情識別,往往會出現(xiàn)過擬合現(xiàn)象,嚴(yán)重影響模型的識別準(zhǔn)確率。
深度學(xué)習(xí)技術(shù)能夠自動提取面部的深層次情感特征,而基于面部界標(biāo)點的外觀特征能夠提供表情變化期間面部不同關(guān)鍵點位置的細(xì)節(jié)特征?;诖耍疚奶岢隽艘环N融合手工特征[5]和深度學(xué)習(xí)特征的特征選擇算法,只需要采用少量訓(xùn)練樣本就能夠?qū)崿F(xiàn)較理想的人臉表情精準(zhǔn)識別。
本文提出基于特征融合與選擇算法進(jìn)行小樣本人臉表情識別,該算法模型包含4個部分,即特征提取模塊,特征融合模塊,特征約簡與選擇模塊和分類模塊。
根據(jù)人臉情感表達(dá)所涉及的關(guān)鍵區(qū)域進(jìn)行68個特征點標(biāo)記,提取眼睛和嘴巴部位的6個主要特征向量作為人臉幾何特征,同時利用遷移學(xué)習(xí)的思想通過DenseNet網(wǎng)絡(luò)[6]進(jìn)行學(xué)習(xí),提取面部表達(dá)的更深層次特征,使用串聯(lián)融合的方式對面部幾何特征與深度特征進(jìn)行融合,生成完整的面部表情特征向量。然后對融合特征向量進(jìn)行特征約簡和選擇,降低特征向量的復(fù)雜性和冗余度。再使用多分類支持向量機(jī)(multi-class SVM,MCSVM)做最后的情感分類,識別出7種不同的表情類別。該算法模型的系統(tǒng)流程如圖1所示。
圖1 算法流程
首先,需要對圖片中的人臉進(jìn)行檢測,通過Dlib庫函數(shù)識別人臉關(guān)鍵區(qū)域的68個特征點[7]坐標(biāo);然后,使用眼睛和嘴巴周圍的特征點進(jìn)行面部幾何特征提取。選擇眼部靠近鼻子的最近點40#和43#坐標(biāo),以及鼻子的最低點34#坐標(biāo)作為固定點。從固定點出發(fā),計算區(qū)域關(guān)鍵點到該點的歐氏距離作為情感特征表征值。圖2顯示了68個坐標(biāo)點,線段表示選擇標(biāo)記點對的距離。
圖2 人臉68個特征點坐標(biāo)
使用眉毛部位的8個坐標(biāo)點和嘴巴部位的6個坐標(biāo)點進(jìn)行特征值計算,為了減少外界因素影響,本文對各點坐標(biāo)距離進(jìn)行歸一化處理。為了規(guī)范左眉毛特征表征距離,將所有計算出的距離除以40#和22#坐標(biāo)點之間的距離。類似地,在右眉上,使用43#和23#坐標(biāo)距離進(jìn)行規(guī)范化。最后使用34#和52#之間距離標(biāo)準(zhǔn)化嘴巴寬度,嘴巴高度和嘴唇頂部坐標(biāo),組合左眉、右眉、左上唇和右上唇的這些歐氏距離以創(chuàng)建包含6個表征值的總特征向量。
首先,計算左眉的歸一化特征向量
(1)
Nleft=D(Eleft1,Eleft2)
(2)
等式(1)表示左眉相關(guān)特征值的計算過程,等式(2)表示左眉?xì)w一化距離。其中,Eleft1為40#坐標(biāo)點,Eleft2為22#坐標(biāo)點,D(Eleft1,i)為給定兩坐標(biāo)點(x,y)坐標(biāo)以計算其歐氏距離,i=[19,20,21,22]。
左唇的特征值表征類似
(3)
Nlips=D(C1,C2)
(4)
式中C1為鼻尖坐標(biāo)點34#,C2為嘴唇中點52#坐標(biāo),i=[49,50,51]。
類似地,使用不同i值,但歸一化距離與左側(cè)唇歸一化距離相同。對于寬度(width)和高度(height)值,將分別計算坐標(biāo)點(49,55)和(52,58)之間的距離,并使用相同的lips值進(jìn)行歸一化,最后創(chuàng)建總的面部幾何特征向量
Feature=〈Eyeleft,Eyeright,Lipleft,Lipright,Mouthleft,
Mouthright〉
(5)
對于圖像中性姿勢臉和頂點姿勢臉都分別計算方程式(5)中的特征向量,并計算頂點和中性的向量差,作為面部關(guān)鍵區(qū)域的幾何特征向量。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)隨著網(wǎng)絡(luò)深度的增加,其梯度和層數(shù)會越來越深。其梯度在到達(dá)網(wǎng)絡(luò)的最后一層之前就消失了,該梯度消失問題會嚴(yán)重影響神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。ResNets和Highway等網(wǎng)絡(luò)使用跳過連接來克服梯度消失問題。但是在小樣本的表情識別過程中,微小的梯度信息在識別中起著至關(guān)重要的作用,因此,必須以更復(fù)雜的方式保存其梯度信息。
DenseNet網(wǎng)絡(luò)通過使用各層之間的前饋連接,從而克服了梯度消失問題。如圖3所示,網(wǎng)絡(luò)中,一個塊(block)的每一層都連接著它的后續(xù)層,并且所有特征在進(jìn)入下一個塊之前被串聯(lián)起來,因此DenseNet消除了梯度消失問題,通過鼓勵特征復(fù)用增強(qiáng)在網(wǎng)絡(luò)中的傳播功能,改進(jìn)了梯度流在整個網(wǎng)絡(luò)中的信息傳遞。該網(wǎng)絡(luò)模型采用concat的形式進(jìn)行連接,公式表示為
Xl=Hl(X0,X1,…,XL-1)
(6)
式中Hl為一個組合函數(shù),主要包括BN,ReLU,Poolong,Conv等操作。所有的層輸入來源于前面所有層在Channel維度的Concat。
圖3 DenseNet網(wǎng)絡(luò)結(jié)構(gòu)
實驗采用DenseNet169進(jìn)行分類,采用微調(diào)技術(shù)來加快模型訓(xùn)練。首先,凍結(jié)模型的最初幾層權(quán)重,僅訓(xùn)練模型的最高層;然后,利用2個全連接層對原網(wǎng)絡(luò)進(jìn)行替換。實驗的最小批次設(shè)置為256,損失函數(shù)為分類交叉熵函數(shù),采用自適應(yīng)梯度優(yōu)化算法Adam進(jìn)行優(yōu)化,學(xué)習(xí)率初始化為0.1,每15 000次迭代將學(xué)習(xí)率除以10,該模型共訓(xùn)練了20個批次。同時,為了解決樣本量不足的問題,引入Dropout正則化,進(jìn)而提升模型分類性能和泛化特性。
在人臉關(guān)鍵區(qū)域的手工特征提取中,為了最大程度讓提取的特征值能夠體現(xiàn)某一特定情緒的特點,算法通過計算人臉“中立”與“巔峰”時刻兩組特征點的歐氏距離作為變量表示采樣點的特征信息。變量轉(zhuǎn)換如下
β=Tmax-Tmin
(7)
然后將手工提取的特征向量與深度學(xué)習(xí)的特征向量進(jìn)行串聯(lián)融合[8],并將融合后的特征描述符送入特征選擇模塊進(jìn)行熵減和選擇。
在上一步提取了DenseNet的最后一個卷積層特征,并利用全局平均池化來降低深度特征的維數(shù)。平均池化完成后,將7×7×2 048個特征向量映射到1×1×2 048個特征圖中。因為基于歐氏距離的手工特征和深度特征位于不同的空間,所以,需要將深層特征和手工特征分別進(jìn)行歸一化,完成后再進(jìn)行串聯(lián)融合,得出4 326個總的特征向量。
針對融合后的特征向量冗余度高、復(fù)雜性強(qiáng)等問題,提出一種新的基于熵的特征約簡技術(shù)[6]。該技術(shù)可以基于高熵值來約簡特征向量,首先,需要計算融合特征的向量熵值,從而給出一個新的熵特征向量;之后,將熵向量按照升序排序并計算其概率值,概率值較高的向量用于支持閾值功能。閾值函數(shù)用于根據(jù)較高的概率特征值刪除不相關(guān)的特征,熵方法的計算定義如下:
記融合后特征向量為ξFd(FV),尺寸大小為ξM×4 096(FV),其中,M表示測試樣本的總數(shù),每個FV(i)和FV(i,j)的熵值計算公式為
E(FV(i))=-∑iP(Fvi)log2(P(Fvi))
(8)
E(FV(i,j))=-∑jP(Fvj)∑iP(Fvi│Fvj)
log2(P(Fvi│Fvj))
(9)
式中P(Fvi)為融合特征向量的先驗概率,P(Fvi│Fvj)為δFd(FV)所有特征的后驗概率,而E(FV(i,j))為熵向量。然后,將E(FV(i,j))進(jìn)行升序排序,并計算其概率值,從中選擇最高概率(MHP)特征,MHP表示閾值函數(shù),低于MHP值的特征將被丟棄到融合矢量中
(10)
式中P(E(FV))為MHP值,SL為選定特征,DC為丟棄特征。之后執(zhí)行CHI2以選擇最佳特征,因為在特征約簡之后,一些不相關(guān)的特征仍然保留在約簡向量R(FV)中。因此,選擇一種基于CHI2的特征選擇算法,該方法能夠準(zhǔn)確測量特征之間的關(guān)聯(lián)度
(11)
式中χ2(FV)為選定的特征向量,然后使用MCSVM進(jìn)行分類。RBF內(nèi)核函數(shù)用于分類。定義如下
K(ξ(i),ξ(j))=exp(-λ‖ξ(i)-ξ(j)‖2)
(12)
式中λ>0,該方法能夠?qū)ψ罴烟卣飨蛄窟M(jìn)行有效標(biāo)記和篩選。
為了評估算法模型的分類性能,需要對數(shù)據(jù)集進(jìn)行10倍交叉驗證[8],并將MCSVM與其他算法分類器進(jìn)行對比,例如線性SVM(linear SVM,LSVM),三次SVM(cubic SVM,CSVM),精細(xì)K最近鄰(fine KNN,FKNN)和加權(quán)KNN(weighting KNN,WKNN)等。分類器性能對比指標(biāo)有正確識別率(correct recognition rate,CRR),靈敏度,假陰性率(false negative rate,FNR),假陽性率(false positive rate,FPR)和曲線下面積(area under the curve,AUC)等。
圖4列出了不同分類算法在CK+數(shù)據(jù)集上對各類表情的測試CRR,結(jié)果表明,MCSVM分類器的平均最大CRR為95 %,與其他分類器相比具有更好的分類效果。
圖4 不同分類算法在CK+上的對比統(tǒng)計
由圖4可知,圖中5 條曲線分別代表LSVM分類器,CSVM分類器,MCSVM分類器,F(xiàn)KNN分類器和WKNN分類器在CK+人臉表情數(shù)據(jù)集上的9次實驗結(jié)果對比圖。從圖中可以看出,MCSVM分類器的平均識別準(zhǔn)確率要高于其他四個分類器,因此,MCSVM算法更適用于本文人臉表情的識別與分類。
本文提出的算法模型采用Tensorflow框架進(jìn)行設(shè)計和實現(xiàn)。實驗程序的計算機(jī)運(yùn)行配置為Windows10專業(yè)版操作系統(tǒng),采用i7核心處理器和NVIDIA GE—Force(1070—Ti 4GB—256位)的GPU,內(nèi)含16GB DDR5 RAM以及64位操作系統(tǒng)等。
為了驗證提出方法的有效性,在JAFFE和CK+兩個著名的人臉表情數(shù)據(jù)集上對提出的融合算法進(jìn)行評估,并將識別結(jié)果與最新的實驗方法進(jìn)行對比。
其中,JAFFE數(shù)據(jù)集是日本ATR機(jī)構(gòu)用于人臉表情識別研究的標(biāo)準(zhǔn)數(shù)據(jù)集,其中包含213幅日本女性的不同姿態(tài)面部表情,表情庫中共有10個人,每個人有7種不同的表情樣本。圖5展示了該數(shù)據(jù)庫中不同表情的樣本圖像。按照十折交叉驗證的方法對213個數(shù)據(jù)樣本進(jìn)行訓(xùn)練和測試。表1列出了本文融合算法模型在該數(shù)據(jù)集下的識別混淆矩陣。
圖5 JAFFE數(shù)據(jù)集中的樣本圖像
表1 本文融合算法在JAFFE數(shù)據(jù)集上的混淆矩陣 %
從混淆矩陣中,可以推斷,本文的融合模型在“高興”和“悲傷”表情中表現(xiàn)良好,而在“失望”“中立”和“憤怒”這些情感表達(dá)的識別中存在混淆。不過綜合來看,本文算法模型在JAFFE數(shù)據(jù)集上能夠達(dá)到98.57 %的平均識別準(zhǔn)確率。
CK+數(shù)據(jù)集包含從123個對象中收集的593個圖像序列,每個圖像序列從中性臉逐漸達(dá)到表情巔峰。本文對于每一類情感表達(dá)的狀態(tài),本文選擇具有峰值信息的最后3個幀作為訓(xùn)練數(shù)據(jù)。圖6顯示了CK+數(shù)據(jù)庫中不同表情的樣本圖像。
圖6 CK+數(shù)據(jù)集中的樣本圖像
類比JAFFE數(shù)據(jù)集,本文同樣按照十折交叉驗證的方法對樣本數(shù)據(jù)進(jìn)行訓(xùn)練和測試。表2列出了本文融合算法模型在CK+數(shù)據(jù)集上的識別混淆矩陣。
表2 本文融合算法在CK+數(shù)據(jù)集上的混淆矩陣 %
由混淆矩陣可以看出,本文的融合算法對CK+數(shù)據(jù)集上“高興”和“驚訝”表情的識別準(zhǔn)確率最高,能夠達(dá)到100 %的識別精度,而在“憤怒”和“中立”表情中容易出現(xiàn)混淆??偠灾?,在該數(shù)據(jù)集上的平均識別準(zhǔn)確率能夠高達(dá)99.2 %。
表3顯示,本文融合算法(GF)與其他最新算法如SRC(稀疏表達(dá)分類)、IL(島嶼缺失)函數(shù)、EB/OL(電子文獻(xiàn))、SIFT-AVG(平均特征匹配)在JAFFE和CK+數(shù)據(jù)集上的性能對比,對比結(jié)果顯示,較單一的手工特征提取和深度學(xué)習(xí)特征提取,本文的特征融合算法能夠顯著提升模型的識別能力。其中,基于熵的特征約簡和選擇技術(shù)大大降低了模型參數(shù)和計算復(fù)雜度等,有效提升了網(wǎng)絡(luò)的識別效率和識別準(zhǔn)確率。
表3 不同算法在JAFFE和CK+上的性能對比 %
本文提出了一種基于特征融合與選擇的人臉表情識別算法,該算法融合了手工提取的人臉關(guān)鍵區(qū)域幾何特征和DenseNet網(wǎng)絡(luò)提取的面部深層次情感特征,然后利用一種基于熵的特征約簡技術(shù)對融合后的特征向量進(jìn)行降維,并使用MCSVM進(jìn)行表情分類。利用標(biāo)準(zhǔn)的小樣本數(shù)據(jù)集JAFFE和CK+對所提方法進(jìn)行實驗評估,結(jié)果顯示,該融合算法優(yōu)于許多現(xiàn)有的深度學(xué)習(xí)算法,能夠在樣本量較小的前提下,進(jìn)一步提升表情識別的準(zhǔn)確率。
下一步的研究計劃將在本文融合算法的基礎(chǔ)上繼續(xù)改進(jìn)算法體系結(jié)構(gòu),使其具有更廣的泛化能力和魯棒特性,能夠適用于視頻數(shù)據(jù)[14],3D人臉數(shù)據(jù)集和深度圖像數(shù)據(jù)等。并努力探索更好的深度學(xué)習(xí)算法來增強(qiáng)網(wǎng)絡(luò)的識別性能。