余 濤,鄒建華,徐 君,龍卓群
(1.西安航空學(xué)院電子工程學(xué)院,西安 710077; 2.西安交通大學(xué)系統(tǒng)工程研究所系統(tǒng)工程國(guó)家重點(diǎn)實(shí)驗(yàn)室,西安 710049; 3.廣東順德西安交通大學(xué)研究院,廣東 佛山 528300)
面部表情識(shí)別在很多領(lǐng)域都非常有價(jià)值,如醫(yī)療診斷[1]、教育[2]及人機(jī)交互系統(tǒng)[3]等。被識(shí)別的面部表情主要有兩種類型,即二維表情[3]與三維表情[4],前者直接識(shí)別在二維面部圖像中獲得的處理過(guò)的特征,后者利用多個(gè)攝像機(jī)拍攝多個(gè)視角的面部圖像、特定的3D數(shù)據(jù)庫(kù)、特定的傳感器獲得三維特征??蓪⒍S與三維結(jié)合起來(lái)識(shí)別面部表情[5],獲取并處理特征。
面部表情識(shí)別方法主要包括神經(jīng)網(wǎng)絡(luò)(Neutral network)[6]、支持向量機(jī)(Support vector machine)[5]、馬爾科夫鏈(Markov chains)[4]等。不同的學(xué)習(xí)機(jī)適應(yīng)不同種類的數(shù)據(jù)集,當(dāng)這些學(xué)習(xí)機(jī)被單獨(dú)利用時(shí),它們無(wú)法克服自身的局限性,甚至常常使實(shí)際數(shù)據(jù)集以犧牲很多有用的特征信息為代價(jià)在很大程度上作出改變調(diào)整來(lái)適應(yīng)學(xué)習(xí)機(jī),這樣將影響識(shí)別的準(zhǔn)確率。為盡可能保留這些原有的特征信息,需研究以某種架構(gòu)集成學(xué)習(xí)機(jī)來(lái)提高整體性能。由于在多數(shù)情況下得到的是二維面部表情圖像,故嘗試直接從二維圖像中獲得并利用一些反應(yīng)出的三維信息來(lái)實(shí)現(xiàn)逼近的三維識(shí)別。
本研究針對(duì)來(lái)自一個(gè)非定標(biāo)攝像機(jī)的單目視頻人的面部表情提出一個(gè)進(jìn)行自動(dòng)識(shí)別的框架方法,通過(guò)一個(gè)類似面部肌肉分布的彈性模板提取出相關(guān)的表情特征。經(jīng)過(guò)規(guī)則化和正則化,隨著一個(gè)表情的產(chǎn)生,這些特征在時(shí)空中變化形成的時(shí)間序列被逐行排列進(jìn)一個(gè)矩陣中。利用保持鄰域嵌入法(NPE),對(duì)這個(gè)特征矩陣進(jìn)行降維,以這個(gè)被提煉后的矩陣作為輸入,用一個(gè)集成了隱條件隨機(jī)場(chǎng)(HCRF)和支持向量機(jī)(SVM)的集成分類器來(lái)識(shí)別表情。
圖1給出了面部表情識(shí)別的方法框架,其中單目視覺(jué)的二維動(dòng)態(tài)表情序列或視頻被用來(lái)作為訓(xùn)練或測(cè)試的輸入表情,用表情圖像中面部不同區(qū)域灰度值的質(zhì)心作為特征。因?yàn)榛叶劝炼?、?duì)比度及飽和度的成分,它們都會(huì)隨著不同深度而變化,故灰度值含有一定量的深度信息,特別是它的相對(duì)變化值。隨著每個(gè)表情的產(chǎn)生,這些特征在時(shí)空中運(yùn)動(dòng)。
圖1 面部表情識(shí)別原理Fig.1 Principles of facial expression recognition
通常相同類別表情的特征在時(shí)空運(yùn)動(dòng)中具有類似的周期性形式,因此每種類型表情在識(shí)別框架中只需要一個(gè)面部表情周期。隨著表情產(chǎn)生過(guò)程,相關(guān)特征在時(shí)空中變化形成時(shí)間序列。將其排列成矩陣。這樣識(shí)別問(wèn)題就轉(zhuǎn)化成處理所有時(shí)間序列數(shù)據(jù)的問(wèn)題。
用一個(gè)面部檢測(cè)器檢測(cè)人臉,如果檢測(cè)成功,就在此面部區(qū)域再用相關(guān)檢測(cè)器分別檢測(cè)眼睛、鼻子及嘴巴(若這些感官中的某一個(gè)檢測(cè)失敗,將基于標(biāo)準(zhǔn)普通人臉的一些通用先驗(yàn)解剖學(xué)知識(shí),按照一定比例在面部區(qū)域中確定可能的五官區(qū)域。如果面部檢測(cè)沒(méi)成功,就用面部檢測(cè)器在該圖像中其他區(qū)域搜索)。被檢測(cè)出的區(qū)域用對(duì)應(yīng)的圓圈、三角及橢圓繪制。用線條來(lái)連接檢測(cè)出的區(qū)域邊緣的不同位置,構(gòu)成彈性模板。此方法可節(jié)省處理時(shí)間,檢測(cè)器參照文獻(xiàn)[7]進(jìn)行設(shè)計(jì),可自動(dòng)檢測(cè),不需要手動(dòng)輔助。圖2是用于檢測(cè)面部表情特征的彈性模板工作原理,可以看出,模板特征與人面部肌肉的一般分布在很大程度上是一致的,可從人體解剖學(xué)的角度來(lái)分析表情。圖3為用模板檢測(cè)一個(gè)人的常見(jiàn)表情。該檢測(cè)是在以Microsoft Visual C++ 6.0為平臺(tái)的環(huán)境下實(shí)現(xiàn)的。
圖2 彈性模板匹配原理(a.面部肌肉分布 b.彈性表情模板c.真實(shí)人臉與彈性模板匹配示例)Fig.2 Elastic template matching principle (a.Facial muscle distribution, b.Elastic expression template, c.Real face and elastic template matching example)
圖3 彈性模板與真實(shí)人臉在不同表情下的匹配Fig.3 Matching of elastic template and real face under different expressions
根據(jù)人面部肌肉的分布及其動(dòng)態(tài)性能的解剖學(xué)知識(shí)[8],將面部表情分為8個(gè)區(qū)域。在每個(gè)區(qū)域中用一個(gè)相關(guān)的質(zhì)心來(lái)描述該區(qū)域的像素在時(shí)空中隨著不同表情而產(chǎn)生的整體變化。每一個(gè)質(zhì)心通過(guò)公式(1)進(jìn)行計(jì)算,其中,在時(shí)刻t時(shí),ni是區(qū)域i中像素的數(shù)目;xm、ym和zm分別是每個(gè)像素的水平坐標(biāo)、垂直坐標(biāo)及灰度值。
(1)
圖4用Matlab工具描繪了從一個(gè)人的中性表情開(kāi)始,逐漸產(chǎn)生上述典型表情過(guò)程中運(yùn)動(dòng)質(zhì)心的時(shí)間序列分布。這些時(shí)間序列的分布與形狀因表情種類的不同而不同,故可用來(lái)作為區(qū)分彼此不同表情的依據(jù)。
圖4 一個(gè)人由中性表情逐漸變化到不同種類表情中運(yùn)動(dòng)質(zhì)心的時(shí)間序列分布Fig.4 Time series distribution of the center of mass of motion of a person from neutral expression to different kinds of expression
(2)
公式(2)描述了對(duì)上述時(shí)間序列預(yù)處理的原理,包括提取相對(duì)變化值、正則化及離散化。
由于現(xiàn)實(shí)中時(shí)間序列長(zhǎng)度很長(zhǎng),而序列在認(rèn)知意義上的結(jié)構(gòu)維數(shù)本身較低,需要降維。考慮到對(duì)同種類型的表情來(lái)說(shuō),所有特征的時(shí)間序列互相關(guān)聯(lián)且這種關(guān)聯(lián)性是重要的個(gè)性化特征,故希望這種結(jié)構(gòu)相關(guān)性在進(jìn)行降維的同時(shí)盡可能得以維持繼承。
文獻(xiàn)[9]中的保持領(lǐng)域嵌入法(NPE)是一種在維持?jǐn)?shù)據(jù)流形的局部領(lǐng)域結(jié)構(gòu)的流形學(xué)習(xí)方法,比主成分分析法(PCA)[10]對(duì)外圍數(shù)據(jù)的敏感度小,與流形學(xué)習(xí)方法(如Isomap[11]及LLE[12]相比,NPE方法不只局限于定義在訓(xùn)練數(shù)據(jù)中,而是定義在全局意義上,故采用此方法來(lái)降維。
如文獻(xiàn)[9]所述,主要原理如公式(3)~(5)所示。需注意由相關(guān)曲線產(chǎn)生的每一個(gè)時(shí)間序列i(i=1,…,8×3=24)被看做一個(gè)數(shù)據(jù)點(diǎn)xi。為了保持曲線間的相關(guān)特性,構(gòu)建領(lǐng)近圖的方式用KNN,設(shè)K為24。面部表情中的每個(gè)時(shí)間序列由領(lǐng)近的其他23個(gè)時(shí)間序列進(jìn)行重構(gòu)。盡管這些數(shù)據(jù)點(diǎn)可能屬于一種非線性的支流形,但對(duì)每個(gè)點(diǎn)的局部領(lǐng)域范圍內(nèi)假設(shè)為線性流形也是合理的。用公式(3)來(lái)計(jì)算存在于這些數(shù)據(jù)點(diǎn)中的結(jié)構(gòu)關(guān)系的權(quán)重矩陣W,用公式(4)來(lái)計(jì)算關(guān)于降維的投影,用公式(5)依次對(duì)各數(shù)據(jù)點(diǎn)xi進(jìn)行降維轉(zhuǎn)換。
j=1,2,…,k
(3)
X(I-W)T(I-W)XTa=λXXTa,其中X=(x1,…,xk),I=diag(1,…,1)
(4)
yi=ATxi=(a0,a1,…,am-1)Txi,
(5)
其中,yi是一個(gè)m維向量。
最初,在一個(gè)表情周期下的每條表情特征運(yùn)動(dòng)曲線有50個(gè)空間采樣點(diǎn),用NPE方法后,對(duì)應(yīng)的時(shí)間序列維數(shù)從一個(gè)面部表情周期的50維降至24維,且其局部流形結(jié)構(gòu)以優(yōu)化嵌入的方式在低維空間中得以維持。
在識(shí)別的關(guān)鍵環(huán)節(jié)采用集成隱條件隨機(jī)場(chǎng)(HCRF)和支持向量機(jī)(SVM)來(lái)組建分類器,這種集成分類器同時(shí)具有HCRF與SVM的優(yōu)勢(shì):對(duì)每個(gè)時(shí)間序列以局部特征為條件的隱變量被訓(xùn)練學(xué)習(xí),觀測(cè)值不需要條件獨(dú)立,可在時(shí)空域上重疊[13];分類的最終決策邊界的分類間隔在被稱作特征空間的高維空間中被最大化[14],即這種分類器可解決存在于同一個(gè)時(shí)間段中的多序列分類問(wèn)題。具體說(shuō)明如下:
2.3.1 HCRF用于標(biāo)記所有時(shí)間序列
(6)
(7);
圖1中,對(duì)某第X(X=1,2,…,7)種表情,根據(jù)人面部表情中不同的質(zhì)心點(diǎn)對(duì)應(yīng)不同的運(yùn)動(dòng)時(shí)間序列,對(duì)應(yīng)第X種表情的所有運(yùn)動(dòng)時(shí)間序列可以依次標(biāo)記為:X01A,X01B,X01C,X02A,X02B,X02C,…,X08A,X08B,X08C。
由于所有時(shí)間序列彼此關(guān)聯(lián),故這些觀測(cè)不是條件獨(dú)立過(guò)程。文獻(xiàn)[13]提出的隱條件隨機(jī)場(chǎng)(HCRF)分類方法用中間隱變量來(lái)模型化輸入域的潛在結(jié)構(gòu),并對(duì)類標(biāo)記和以觀測(cè)為條件的隱狀態(tài)標(biāo)記定義了一個(gè)聯(lián)合分布,依賴于由間接圖形關(guān)系表達(dá)的隱變量,不需要條件獨(dú)立,且在時(shí)空域中可以重疊,該方法能夠?qū)g具有暫態(tài)依賴的潛在圖模型關(guān)系的序列進(jìn)行建模,并能夠納入長(zhǎng)范圍的依賴關(guān)聯(lián),故采用HCRF作為一種描述模式來(lái)標(biāo)記這些序列,且這些序列和對(duì)應(yīng)標(biāo)記間的映射是通過(guò)對(duì)HCRF的訓(xùn)練及推理識(shí)別來(lái)進(jìn)行的。HCRF具體方法參見(jiàn)文獻(xiàn)[15],相關(guān)公式如式(6)、式(7)所示。
隱狀態(tài)的數(shù)目設(shè)為10,窗參數(shù)w依次設(shè)為0、1、2來(lái)測(cè)試對(duì)比。在訓(xùn)練中,對(duì)所有的訓(xùn)練個(gè)體的所有表情,人臉每個(gè)區(qū)域中其質(zhì)心運(yùn)動(dòng)的每個(gè)維度的時(shí)間序列及對(duì)應(yīng)的標(biāo)記分別用一個(gè)HCRF模型來(lái)學(xué)習(xí);在推斷中,被測(cè)試的序列用來(lái)自同樣的臉部區(qū)域的產(chǎn)生同種維度的時(shí)間序列HCRF模型來(lái)判別,具有最大測(cè)試概率的類標(biāo)記則為對(duì)應(yīng)該測(cè)試序列的標(biāo)記。這樣就實(shí)現(xiàn)了多特征運(yùn)動(dòng)時(shí)間序列的標(biāo)記訓(xùn)練及標(biāo)記推斷問(wèn)題。
2.3.2 SVM用于對(duì)多序列的所有標(biāo)記分類
通過(guò)HCRF的訓(xùn)練,對(duì)于一個(gè)具體的人面部表情而言,一組標(biāo)記與其對(duì)應(yīng)的一組運(yùn)動(dòng)曲線,即對(duì)應(yīng)的時(shí)間序列被用于學(xué)習(xí),且這些標(biāo)記的定義值因表情和面部區(qū)域而異,故將這些標(biāo)記看作是一個(gè)具體面部表情的一組特征。但大多數(shù)人的表情風(fēng)格中存在一些相似成分,盡管HCRF能夠在一定程度上克服時(shí)空域上的重疊,但在推斷中還可能存在一些表情的某些特征完全相同的情況,此時(shí)這些特征部分是重疊的。參閱文獻(xiàn)[14],根據(jù)SVM的性質(zhì),其決策邊界直接由訓(xùn)練數(shù)據(jù)決定,最終決策邊界的分類間隔在被稱作特征空間的高維空間中被最大化,這樣多數(shù)在低維空間中不可分的數(shù)據(jù)映射在高維空間中變得可分。故將與面部表情相關(guān)聯(lián)的標(biāo)記特征作為輸入,用SVM作為最終分類手段來(lái)識(shí)別表情。
分類支持向量機(jī)(multi-class SVM)有很多種設(shè)計(jì)方法。根據(jù)文獻(xiàn)[17]的比較測(cè)試,1對(duì)1(one-against-one)模型方法較適合于實(shí)際應(yīng)用,采用此方法對(duì)訓(xùn)練樣本中的所有類別的各類之間兩兩建立一個(gè)SVM模型,用以區(qū)別相關(guān)聯(lián)的兩類樣本,具體如文獻(xiàn)[18]所述,如果數(shù)據(jù)庫(kù)中被訓(xùn)練的個(gè)體種類數(shù)量是K,則需要K(K-1)/2個(gè)二分類SVM分類器。每個(gè)分類器采用具有徑向基函數(shù)(RBF)核的C支持向量機(jī)(CSVC)模型,其中有兩個(gè)參數(shù)需要確定,即C和γ,通過(guò)平行網(wǎng)格搜索采用典型的交叉驗(yàn)證法來(lái)實(shí)現(xiàn)參數(shù)選擇,所有K(K-1)/2個(gè)決策函數(shù)共享相同的參數(shù)(C,γ)。
約束條件:
(8)
為證明此方法在一般環(huán)境下的應(yīng)用能力,以奔騰1.73 G的個(gè)人電腦為平臺(tái),在VC++6.0環(huán)境下進(jìn)行試驗(yàn)。
面部表情識(shí)別框架方法用數(shù)據(jù)庫(kù)the Cohn-Kanade AU-Coded Facial Expression(CKACFE) Database[20]進(jìn)行測(cè)試。該數(shù)據(jù)庫(kù)包含來(lái)自97個(gè)個(gè)體的486個(gè)640x480或640x490、8位灰度尺度值的圖像序列。每一個(gè)序列開(kāi)始于一個(gè)中值表情,逐漸進(jìn)入一個(gè)峰值表情。每一個(gè)序列的峰值表情對(duì)應(yīng)一個(gè)情緒標(biāo)記。每一個(gè)個(gè)體有至多7種情緒:中性,驚奇,悲傷,厭惡,生氣,恐懼及高興。在實(shí)驗(yàn)中采用留一交叉驗(yàn)證法(the leave-one-out cross validation)來(lái)訓(xùn)練推斷表情。將第一個(gè)人的所有表情用于識(shí)別,其余人的所有表情用于訓(xùn)練;將第二個(gè)人的所有表情用于識(shí)別,用其他人的所有表情用于訓(xùn)練。再次改變識(shí)別人順序,用其他人的所有表情用于訓(xùn)練,以此類推,直到所有人的表情都有機(jī)會(huì)被識(shí)別過(guò)。計(jì)算每種類型表情被成功識(shí)別的比率,并把它作為最終結(jié)果。計(jì)算公式如(9)所示。其中,函數(shù)function_infer可以看作是當(dāng)?shù)趇個(gè)表情是測(cè)試的情緒xi(xi>0) 時(shí),對(duì)應(yīng)相關(guān)識(shí)別系統(tǒng)(HCRF+SVM)的整體函數(shù),只有在此函數(shù)的結(jié)果等于輸入xi時(shí),此結(jié)果才是正確的。
(9)
其中:δ是單位沖激函數(shù): 若m=0,δ(m)=1 ;否則,δ(m)=0。在對(duì)HCRF的訓(xùn)練中,文獻(xiàn)[16]中的共軛梯度法被用于估計(jì)相關(guān)參數(shù);在對(duì)SVM的訓(xùn)練中,文獻(xiàn)[18]中通過(guò)平行網(wǎng)格搜索的交叉驗(yàn)證法被用于估計(jì)相關(guān)參數(shù)。試驗(yàn)中共有97個(gè)實(shí)驗(yàn)個(gè)體,每個(gè)個(gè)體有7種表情,每個(gè)表情對(duì)應(yīng)8個(gè)3D時(shí)間序列,則共有8×3=24個(gè)HCRF模型和7×(7-1)/2=21個(gè)SVM分類器。當(dāng)對(duì)CKACFE數(shù)據(jù)庫(kù)中的表情訓(xùn)練結(jié)束時(shí),HCRF模型與SVM分類器的所有訓(xùn)練參數(shù)也被存儲(chǔ)在另一個(gè)數(shù)據(jù)庫(kù)database中。
在進(jìn)行完相關(guān)時(shí)間序列的降維后,用暫態(tài)數(shù)據(jù)分別作為單個(gè)分類器HCRF及SVM的輸入來(lái)直接識(shí)別面部表情。在這種情況下,一個(gè)HCRF模型對(duì)應(yīng)一種類型的表情,即此時(shí)共有7個(gè)HCRF模型,SVM分類器的數(shù)量與之前設(shè)置一樣。在相關(guān)訓(xùn)練結(jié)束后也會(huì)產(chǎn)生另一個(gè)與相關(guān)訓(xùn)練參數(shù)有關(guān)的數(shù)據(jù)庫(kù)。在同樣的窗口參數(shù)w下,將相應(yīng)的識(shí)別結(jié)果與本方法的識(shí)別率及典型的Kotsia’s method[5]方法進(jìn)行比較。
圖5為CKACFE數(shù)據(jù)庫(kù)中所有個(gè)體不同表情的時(shí)間序列分布。不同種類的表情對(duì)應(yīng)不同類型的時(shí)間序列分布。這為利用這些時(shí)間序列來(lái)識(shí)別表情提供了很大便利。
圖5 CKACFE數(shù)據(jù)庫(kù)中所有個(gè)體不同表情特征的時(shí)間序列分布Fig.5 Time series distribution of different facial features of all individuals in CKACFE database
表1給出了集成分類器HCRF+SVM方法與典型的Kotsia方法[5]及單個(gè)分類器HCRF/SVM用于表情識(shí)別的結(jié)果比較,可以看出,本方法的識(shí)別率比Kotsia方法更穩(wěn)定,盡管在少數(shù)情況下Kotsia方法比本方法略高一些,但集成分類HCRF+SVM 比單個(gè)分類HCRF 或 SVM 的識(shí)別率高很多。當(dāng)用NPE方法對(duì)時(shí)間序列降維時(shí),相關(guān)數(shù)據(jù)流形的局部臨近結(jié)構(gòu)得到保持;當(dāng)用HCRF訓(xùn)練或推斷時(shí)間序列標(biāo)記時(shí),這些在幀間具有暫態(tài)依賴的潛在圖模型關(guān)系的序列被模型化并納入長(zhǎng)范圍的依賴關(guān)聯(lián);當(dāng)用SVM訓(xùn)練或推斷相關(guān)標(biāo)記的最終表情時(shí),隨著分類數(shù)據(jù)被映射到高維空間中,相關(guān)分類的決策邊界的分類間隔被最大化。這樣與單個(gè)分類器HCRF或SVM相比,集成分類器(HCRF+SVM)在處理數(shù)據(jù)過(guò)程中包含了更多待分類數(shù)據(jù)的結(jié)構(gòu)特征,使得識(shí)別更加充分。識(shí)別率隨著窗口w的不同而不同,當(dāng)w等于1時(shí),識(shí)別率普遍比其他尺度的窗口要高。從總體效果上看,此識(shí)別方法結(jié)果是令人滿意的。
表1 在不同窗口w下與Kotsia方法及單個(gè)分類器HCRF/SVM表情識(shí)別率的比較Tab.1 Comparison of expression recognition rate with Kotsia method and single classifier HCRF/SVM under different window w
在進(jìn)行完相關(guān)時(shí)間序列降維后, 用HCRF的識(shí)別率略高于SVM,這是因?yàn)镠CRF比SVM更適合于分類時(shí)間序列,而SVM直接把相關(guān)序列作為獨(dú)立的參數(shù)來(lái)處理,是不合理的。無(wú)論是用單獨(dú)HCRF還是單獨(dú)SVM,在不同表情下識(shí)別率的變化趨勢(shì)與集成分類器HCRF+SVM在總體上是一致的。
提出了一個(gè)基于集成分類器HCRF+SVM 用于面部表情識(shí)別的方法。根據(jù)人面部通常的肌肉分布,用面部圖像不同區(qū)域的質(zhì)心作為特征,從人的解剖學(xué)結(jié)構(gòu)角度來(lái)分析表情。隨著某個(gè)基本表情的產(chǎn)生,這些質(zhì)心在時(shí)空中運(yùn)動(dòng)形成多個(gè)時(shí)間序列。用NPE方法對(duì)特征序列降維后,這些數(shù)據(jù)流形的局部臨近結(jié)構(gòu)得以保持。在推斷過(guò)程中提出的集成分類器HCRF+SVM包含了數(shù)據(jù)在時(shí)空中更多的結(jié)構(gòu)特征,故試驗(yàn)測(cè)試中相比單個(gè)HCRF 或SVM 直接從特征序列的識(shí)別獲得了更高的識(shí)別率,比典型的Kotsia 方法[5]更加魯棒。
在后續(xù)研究中要進(jìn)一步提高該方法在不同光照及遮擋條件下的魯棒性。用一個(gè)數(shù)學(xué)模型等價(jià)代替二級(jí)分類集成,直接實(shí)現(xiàn)多序列的分類,這樣可有效避免級(jí)間分類可能產(chǎn)生的累積誤差,進(jìn)一步提高識(shí)別率。除了本研究測(cè)試的數(shù)據(jù)庫(kù)外,也可以通過(guò)新的測(cè)試將此方法應(yīng)用于其他數(shù)據(jù)庫(kù)中。為提高方法的實(shí)時(shí)性,還需引入并行機(jī)制,進(jìn)一步提高算法速度。