賈茜偉,閆 娟,楊慧斌,劉向前
(上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院,上海 201620)
人的面部表情識別可以識別出中性、憤怒、厭惡、驚訝、高興、悲傷和恐懼七類表情,該表情識別技術(shù)有許多應(yīng)用場景,例如:在汽車司機(jī)的疲勞駕駛監(jiān)測中,通過司機(jī)的表情變化來推測司機(jī)的駕駛狀態(tài),從而對司機(jī)發(fā)出提醒。在智能安防中,通過監(jiān)測公眾場合人們表情的變化來推測其心理想法,并及時阻止?jié)撛谖kU行為,從而避免危險事故的發(fā)生。在醫(yī)療單位中,通過監(jiān)測病人表情的變化來了解病人的身體狀況,一旦發(fā)現(xiàn)異樣及時采取措施等。
Mehrabian研究指出,人臉面部表情可以傳遞人們的內(nèi)心活動和情感變化,如果計算機(jī)可以獲取到人臉信息,人機(jī)交互將會有很大的發(fā)展空間。經(jīng)過Ekman等人的一系列研究,人臉的面部表情識別技術(shù)已經(jīng)迅速發(fā)展起來。一般來說,將表情識別分為特征提取和特征分類這兩步,特征提取主要是解析人臉面部圖像,并將局部特征提取出來,分類器再根據(jù)提取到的局部特征進(jìn)行最優(yōu)分類。近年來,部分學(xué)者提出依據(jù)人臉的特征點(diǎn)發(fā)生的形變程度來推測人臉面部表情,然而僅僅依靠部分特征點(diǎn)的形變并不能代表整個人臉表情,從而造成表情識別準(zhǔn)確率較低。伴隨著卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)的研發(fā)問世,一些學(xué)者提出可以在表情識別中融入CNN算法,經(jīng)過劃分好的區(qū)域提取人臉的全局特征迭代回歸,取得了不錯的識別效果,但是只有面部全局特征,未能突顯出局部特征,因此會造成相似表情在一定程度上的區(qū)分困難,例如驚訝和恐懼的區(qū)分。Kaleekal等人基于面部68個特征點(diǎn)周圍提取8個面部突出塊(Salient Facial Patches,SFP)的Hahn特征,并采用SVM進(jìn)行分類,經(jīng)過試驗(yàn)表明,在CK+與JAFFE數(shù)據(jù)集的識別率分別為91.33%與93.16%。SFP方法雖然突出了面部的局部特征,但是選取時并未設(shè)置一個固定的標(biāo)準(zhǔn),也忽視了不同表情中局部特征比例上的不同。另外,根據(jù)Li等人研究,面部的6類基本表情均有FACS編碼中對應(yīng)的面部肌肉運(yùn)動單元,但是該分區(qū)方法需要大量識別,而單個的識別準(zhǔn)確率并不高。
因此,本文提出基于面部多重局部特征的人臉表情識別技術(shù),論文的創(chuàng)新點(diǎn)可表述為:
(1)本算法基于人臉的68個特征點(diǎn),再將額頭部分加上去,總共將面部分為23個子區(qū)域。面部表情也會在額頭上體現(xiàn)出來,例如額頭的皺紋和表面舒張等。本文統(tǒng)計了6類基本表情產(chǎn)生域,再依據(jù)其產(chǎn)生域、面部肌肉單元以及面部器官將23個子區(qū)域歸類到8個候選區(qū)域中,為SFP的選取提供了依據(jù),而且可以不用重復(fù)就能提取不同表情中包含的相似的局部特征,從而解決了需要重復(fù)識別和識別單個效率低的問題。
(2)本文算法采用8個并行的分支進(jìn)行提取,并根據(jù)候選區(qū)域所占的面積比例支配不同維全連接層,解決了局部候選區(qū)域提取得不夠均衡的問題。每個分支的輸出按照注意力自適應(yīng)地連接,經(jīng)過函數(shù)將人臉面部表情基本分為7類:中性、憤怒、厭惡、恐懼、高興、悲傷、驚訝。在CK+和JAFFE數(shù)據(jù)集得到的平均準(zhǔn)確率分別為99.87%與96.72%,相比S-Patches方法分別增加了6.03%與10.28%。
根據(jù)人臉的構(gòu)造以及產(chǎn)生表情時一些運(yùn)動的局部肌肉單元,將面部肌肉運(yùn)動分為45種,現(xiàn)選取部分FACS展示,詳見表1。這些局部肌肉運(yùn)動單元可以組成多個人臉表情,其中包含6類人臉基本表情。繼而研究得到的表情相應(yīng)結(jié)果見表2。分析表1、表2可知,眉毛緊在一起、眉毛間出現(xiàn)直形皺紋等,對應(yīng)著表1的面部肌肉運(yùn)動單元中的、、、、的一種或幾種,表情表現(xiàn)為憤怒;眉毛向下壓、上嘴皮向上抬、下眼皮下面出現(xiàn)皺紋,對應(yīng)著表1的面部肌肉運(yùn)動單元中的、,表情表現(xiàn)為厭惡;眉毛緊皺并抬起、額頭顯現(xiàn)皺紋、上眼瞼向上抬起、下眼皮向下拉伸、嘴微微變化或張大等,對應(yīng)著表1的面部肌肉運(yùn)動單元中的、、,表情表現(xiàn)為恐懼;牙齒露出、嘴角向外拉并微微抬起、眉毛可能會向下彎一點(diǎn)、眼皮下面凸起等,對應(yīng)著表1的面部肌肉運(yùn)動單元中的、、,表情表現(xiàn)為高興;眉毛向內(nèi)收縮、嘴角向下拉伸、上眼皮下拉、額頭舒張等,對應(yīng)著表1的面部肌肉運(yùn)動單元中的、、、,表情表現(xiàn)為悲傷;眼睛睜大、上眼皮向上抬起、下眼皮向下拉伸、嘴巴張大等,對應(yīng)著表1的面部肌肉運(yùn)動單元中的、、、,表情表現(xiàn)為驚訝。
表1 部分面部肌肉運(yùn)動單元AUTab.1 Part of facial muscles movement unit AU
表2 表情相應(yīng)AUsTab.2 AUs corresponding to the expression
6類基本表情產(chǎn)生時,大部分面部肌肉運(yùn)動單元存在明顯動作,基于此,將面部分為23個局部特征區(qū)域,如圖1所示,再將這23個面部區(qū)域按照人臉的構(gòu)造分為8個局部區(qū)域AUo,為1到8。每個候選區(qū)域都包含一定的特征區(qū)域,且只提取本候選區(qū)域內(nèi)的特征,在候選區(qū)域內(nèi)產(chǎn)生的表情見表3。人臉表情的局部區(qū)域示意如圖2所示。由圖2可看出,圖2(a)中包含額頭和眉毛部分,是、、和的產(chǎn)生域,包含1、2、3、6、7面部的局部特征區(qū)域,屬于憤怒、恐懼、悲傷、驚訝等表情發(fā)生時的肌肉運(yùn)動單元活動區(qū)域;圖2(b)中包含眉毛和眼睛部分,是產(chǎn)生域,包含2、3、6、7、8、11面部的局部特征區(qū)域,屬于憤怒、恐懼、悲傷表情產(chǎn)生區(qū)域;圖2(c)中包含眼睛、鼻梁及其鼻子附近部分,是產(chǎn)生域,包含8、9、10、11、13、15面部的局部特征區(qū)域,屬于高興表情產(chǎn)生區(qū)域;圖2(d)中包含縱向鼻子及鼻梁部分,是產(chǎn)生域,包含4、5、9、10、14面部的局部特征區(qū)域,屬于厭惡表情產(chǎn)生區(qū)域;圖2(e)中包含鼻子和嘴巴部分,是、產(chǎn)生域,包含14、17、18、19面部的局部特征區(qū)域,屬于高興、驚訝、悲傷表情產(chǎn)生區(qū)域;圖2(f)中包含嘴巴、下巴及附近肌肉部 分,是、、產(chǎn)生域,包含17、18、19、20、21、22、23面部的局部特征區(qū)域,屬于高興、驚訝表情產(chǎn)生區(qū)域;圖2(g)中包含下巴部分,是產(chǎn)生域,包含20、21、22、23面部的局部特征區(qū)域,屬于厭惡、悲傷表情產(chǎn)生區(qū)域;圖2(h)中包含嘴巴部分,是、產(chǎn)生域,包含18面部的局部特征區(qū)域,屬于憤怒表情產(chǎn)生區(qū)域。
表3 AU組包含區(qū)域Tab.3 AU group contains area
圖1 面部區(qū)域分區(qū)Fig.1 Facial area division
圖2 局部區(qū)域示意圖Fig.2 Local area diagram
本文算法基于面部區(qū)域的68個特征點(diǎn)和23個分好的局部特征區(qū)域,構(gòu)成8個局部候選區(qū)域,并將候選區(qū)所占的面積最小的矩形框輸入卷積神經(jīng)網(wǎng)絡(luò)中。8個局部候選區(qū)選取的矩形框如圖3所示。
圖3 局部候選區(qū)最小矩形示意圖Fig.3 Schematic diagram of the smallest rectangle of the local candidate area
本文算法的整體流程如圖4所示。每個AUo圖像中選取的局部特征區(qū)域大小不一,并且都需要經(jīng)過CNN網(wǎng)絡(luò)提取特征,再將提取得到的特征拼接為4096大小的全連接層。為了得到更好的識別效果,就需要突出不同表情的局部特征,因此再將拼接的全連接層乘以不同表情所占的權(quán)重值,后續(xù)又經(jīng)過特征提取與函數(shù)將表情基本分為7類:中性、憤怒、厭惡、恐懼、驚訝、高興、悲傷。
圖4 本文算法流程圖Fig.4 Flow chart of the algorithm in this paper
每一類基本表情都有不同的局部特征,將其局部特征突顯出來,損失函數(shù)是必不可少的。損失函數(shù)在許多視覺工作中被經(jīng)常使用,主要通過最大化真實(shí)樣本類別的后驗(yàn)概率將特征從不同的類中分離出來,給定輸入特征為x,對應(yīng)的標(biāo)記y,其計算公式如下:
其中,為批次的大??;為類的數(shù)量;w∈R是第類最后一個完全連接層的權(quán)重;是特征維度;b∈是偏置項(xiàng)。在w和x上應(yīng)用歸一化來優(yōu)化球面上的特征,特征距離與特征角的計算關(guān)系如下:
其中,θ是w和x之間的角度。
為驗(yàn)證本文算法的有效性,實(shí)驗(yàn)選用Win10系統(tǒng)、內(nèi)存8 G、CPU為i5-9500、硬盤為512 G固態(tài)硬盤,實(shí) 驗(yàn) 中 所 需 要 的 軟 件 包 括:Ubuntu16.04、Pytorch1.9.0、Opencv4.5.1、Cudnn7.5、CUDA10.1。
本文算法的模型選用CK+數(shù)據(jù)集和JAFFE數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)前先將圖像進(jìn)行預(yù)處理,統(tǒng)一大小為48×48的灰度圖,訓(xùn)練集和測試集大致按照4:1隨機(jī)進(jìn)行劃分,由此得到的CK+和JAFFE數(shù)據(jù)集中7類基本表情的訓(xùn)練集和測試集的數(shù)量分布見表4和表5。
表4 CK+數(shù)據(jù)集中各表情分布情況Tab.4 Distribution of expressions in the CK+dataset
表5 JAFFE數(shù)據(jù)集中各表情分布情況Tab.5 The distribution of expressions in the JAFFE dataset
現(xiàn)選取2組不同的局部候選區(qū)域與AUo進(jìn)行實(shí)驗(yàn)驗(yàn)證,對比結(jié)果如圖5所示。選取的2組不同局部候選區(qū)域組成見表6。由圖5(a)可看到,本文算法選取的區(qū)域在CK+數(shù)據(jù)集的平均準(zhǔn)確率達(dá)到99.87%,相比于選取的特征區(qū)域1與特征區(qū)域2高出6.89%與8.84%。在JAFFE數(shù)據(jù)集的平均準(zhǔn)確率達(dá)到96.72%,相比于選取的特征區(qū)域1與特征區(qū)域2高出11.68%與18.68%。實(shí)驗(yàn)表明,精確選取局部特征區(qū)域比簡單選取面部的器官區(qū)域得到的識別效果要高得多,局部特征區(qū)域?qū)θ四樏娌勘砬樽R別的準(zhǔn)確率起到重要的作用。
表6 對比局部候選區(qū)域組成Tab.6 Comparing the composition of local candidate regions
圖5 對比圖Fig.5 Comparison chart
不同表情的權(quán)重值W是不同的,也會對面部表情的識別造成一定的影響,現(xiàn)從偏置的值為0、1、2、3、4這五種來進(jìn)行實(shí)驗(yàn)驗(yàn)證不同偏置值對表情識別準(zhǔn)確率的影響。由圖5(b)可知,當(dāng)偏置值為1時,CK+數(shù)據(jù)集中的準(zhǔn)確率最高為99.87%;當(dāng)偏置值為0時,JAFFE數(shù)據(jù)集中的準(zhǔn)確率為96.72%。實(shí)驗(yàn)表明,偏置值不是越大、或者越小越好。
算法對比結(jié)果見表7。將本文算法與CNN算法在CK+和JAFFE的混合數(shù)據(jù)集下對7類基本表情識別的準(zhǔn)確率進(jìn)行對比后,從表7中可以看出,本文算法除在厭惡表情識別上略低于S-Patches算法外,其余表情識別和平均準(zhǔn)確率均高于S-Patches算法。對于CNN算法而言,本文算法只在悲傷表情識別中略低,其余方面均與其相等或勝過CNN算法??偟貋碚f,實(shí)驗(yàn)通過與兩大經(jīng)典算法做對比,可以證明本文算法在對面部特征劃分成有效的局部特征區(qū)域后,具有有效性,并且提高了表情識別性能。
表7 算法對比Tab.7 Comparison results of the algorithms
本文基于68個特征點(diǎn)和面部肌肉運(yùn)動單元,提出基于面部多個局部特征的人臉表情識別算法。算法將包含額頭的人臉面部區(qū)域劃分成23個子區(qū)域,再經(jīng)卷積神經(jīng)網(wǎng)絡(luò)提取特征,最后經(jīng)函數(shù)進(jìn)行表情分類。本文算法在CK+和JAFFE數(shù)據(jù)集的平均準(zhǔn)確率分別為99.87%和96.72%,相對于S-Patches則分別提升了6.03%和10.28%。本文算法也存在一定的不足,比如大量提取局部特征,必然會增加訓(xùn)練時長,還有就是提取局部特征后的降維問題,這些都需要后續(xù)進(jìn)一步地去研究。