田 儆, 余雪麗, 錢 杰
(1.中國聯(lián)合網(wǎng)絡通信有限公司河北省分公司,河北 石家莊050011;2.太原理工大學 計算機與軟件學院,山西 太原030024;3.中國聯(lián)合網(wǎng)絡通信有限公司高碑店分公司,河北 保定074000)
人臉表情是人類進行情感交流的一種重要方式,從表情的變化中可以感知出人的情緒、感受、秉性和氣質(zhì)。自動化的人臉表情識別(FER)技術(shù)可以協(xié)助進行人臉識別、智能人機交互以及行為科學和醫(yī)學研究等。根據(jù)所研究數(shù)據(jù)的不同,FER算法可以分為針對多幅圖像和針對單幅圖像兩大類。由于單幅圖像包含較少的表情信息,從單幅圖像識別表情比從多幅圖像中進行更具挑戰(zhàn)性。然而,在有些情況下,單幅圖像中已包含了足夠的表情信息,而且計算相對簡單。因此,本文主要探討基于單幅圖像的人臉表情識別。
人臉表情識別主要分為三個步驟:尋找感興趣區(qū)域(ROI)、特征提取和表情圖像分類。尋找感興趣區(qū)域,目前常用的方法有基于模板匹配的方法和基于特征提取的方法,前者考慮圖像全局;后者則考慮圖像局部區(qū)域,主要考慮形狀和紋理。通過特征提取過程降低維數(shù),目前常用的方法有主成分分析 (PCA)、Gabor過濾等方法。通過對從ROI中提取出來的特征向量進行分類,目前常用的方法有神經(jīng)網(wǎng)絡(NN)、隱式馬爾可夫鏈(HMM)和支持向量機(SVM)。上述基本方法使研究僅僅考慮到如何在各個步驟中優(yōu)化算法,忽略了步驟之間的依賴性,因為先要選定ROI,然后再進行特征提取,所以步驟連接中需要人工干預。針對此問題,本文有效地利用CGA,通過CGA的不斷迭代將前兩步有機結(jié)合,實現(xiàn)了自動機制,并且簡化了設計。
最近,HERNANDEZ B等[1]人提出利用灰度共生矩陣和遺傳算法相結(jié)合的方法解決紅外線圖像上的人臉表情識別問題,其中存在一些不足之處:遺傳算法中個體是隨機產(chǎn)生的,造成個體在空間內(nèi)分布的不均勻性,使得實驗效果并不明顯;僅可解決紅外線圖像。針對以上不足,本文首先將灰度共生矩陣拓展到可視化圖像上,并用相應的實驗數(shù)據(jù)證明其可行性。利用混沌的隨機性、遍歷性和規(guī)律性,將混沌原理加入遺傳算法中,對傳統(tǒng)遺傳算法進行改進,有效地解決了個體分布的不均勻性,同時也沒有忽略其差異性。經(jīng)過理論推導和實驗仿真,證明本文的方法是切實可行的。
紋理是圖像分析中常用的特征,一般說來可以認為紋理由許多相互接近的、互相交織的元素組成,并具有一定的周期性。量化圖像的紋理內(nèi)容是描述圖像的一種重要方法。基于統(tǒng)計的方法是紋理分析中最基本的一類方法,而基于灰度的共生矩陣法[2]又是一種典型有效的基于統(tǒng)計的紋理提取方法。因此,本文選取灰度共生矩陣來提取特征。
定義1灰度共生矩陣表示了圖像中相距(Δx,Δy)的兩個灰度像素同時出現(xiàn)的聯(lián)合概率分布,其中,Δx和Δy的范圍大小由兩個參數(shù)決定:像素間距d和方向角θ,其中,Δx=dcosθ,Δy=dsinθ。
對以上兩個參數(shù)的選擇并沒有什么確定的算法,一般都考慮指定像素點鄰域范圍內(nèi)的點。對于圖像檢索而言,由于像素的分布在各個方向上都可能不同,因此,宜采用 8-連通鄰域[3]進行灰度共生矩陣計算,即 d=1,θ=0°、45°、90°、135°。
若將圖像的灰度級定為 L級,則共生矩陣為 L×L矩陣,可表示為M(i,j)。其中,位于(i,j)的共生矩陣元素mij的值表示一個灰度為i而另一個灰度為j的兩個相距為(Δx,Δy)的像素對出現(xiàn)的次數(shù)。對圖像中的任一區(qū)域 R,定義S為其中具有特定空間聯(lián)系的像素對的集合,則可定義共生矩陣:
共生矩陣M(i,j)歸一化可得:
其 中 ,i∈[0,L-1],j∈[0,L-1],x2=x1+dcosθ,y2=y1+dsinθ,#(S)表示集合S中對M(i,j)有貢獻的元素的個數(shù)。取日本女性表情數(shù)據(jù)庫JAFFE的一個“Happy”實例,如圖1所示。
取灰度的量化級數(shù)為 8,d=1,θ=90°,它的灰度共生矩陣為:
行和列表示量化級數(shù)。
這樣得到的矩陣可以反映不同像素相對位置的空間信息。共生矩陣中還包含了圖像的紋理信息,對于具有不同特點的圖像紋理,其灰度共生矩陣也會明顯不同。對紋理較為粗糙的區(qū)域,其灰度共生矩陣中mij的值較集中于主對角線附近,對于粗糙紋理,像素對一般具有相同的灰度;而對于紋理較為細膩的區(qū)域,其灰度共生矩陣中mij的值則散布在各處,其像素對灰度差異較大。
1978年,EKMAN和FRIESEN提出了面部表情編碼系統(tǒng)(FACS),并研究了六種基本表情,即高興、悲傷、驚訝、恐懼、憤怒和厭惡[4]。
表情變化的區(qū)域主要集中在眼睛、眉毛和嘴巴,因此,采用公式(1)選取 JAFFE 圖庫中“Neutral”、“Happy”、“Surprise”三種表情對三個主要集中區(qū)域之一的嘴部區(qū)域進行實驗,如圖2所示。
由以上三種表情嘴部區(qū)域所生成的灰度共生矩陣如圖3所示。由圖3可以看出,對于“Happy”這種表情來說,其嘴部區(qū)域的灰度值比之另外兩種表情的嘴部區(qū)域變化要頻繁,其圖像的紋理特性相對屬于“細紋理”。而另兩種屬于“粗紋理”,其灰度共生矩陣中的值較集中于主對角線附近。對于粗紋理,像素對趨于具有相同的灰度;而對于細紋理的區(qū)域,其灰度共生矩陣中的值則散布在各處。就“Neutral”與“Surprise”這兩種表情而言,“Neutral”表情的嘴部區(qū)域口形較小,因為嘴附近膚色的緣故,其灰度值多處于高亮度區(qū)域,反映在灰度共生矩陣上則是主對角線上小序號行列的數(shù)值較低,連通性較差。而“Surprise”表情的嘴部區(qū)域口形較大,其灰度值多處于低亮度區(qū)域,因而其灰度共生矩陣主對角線上數(shù)值比較均衡,連通性較好。
由此可見,用灰度共生矩陣可以反應出各種表情之間的差異,不難想象從中提取出的各種統(tǒng)計量就可以作為表情特性的度量。
當區(qū)域R中像素點過多時,會導致維數(shù)過高很難處理,因此通常采用以下幾個特征量表示。
(1)反差(Contrast):
(2)能量(Energy):
(3)熵(Entropy):
(4)一致性(Homogeneity):
(5)相關(guān)(Correlation):
式中 μ1、 μ2、σ1和 σ2分別定義為:
其中,L為各個分量的量化級數(shù),即上述求出的GLCM矩陣中行和列的值,即L=8。因此,提取出的R的特征向量表示為={β1,…,β5}。
支持向量機(SVM)起初由VAPNIK提出時,是作為尋求最優(yōu)(在一定程度上)二分類器的一種技術(shù),后來它又被拓展到回歸和聚類應用。
定義2 SVM是一種基于核函數(shù)的方法,它通過某些核函數(shù)把特征向量映射到高維空間,然后建立一個線性判別函數(shù)(或者說是一個高維空間中的能夠區(qū)分訓練數(shù)據(jù)的最優(yōu)超平面)。解是最優(yōu)的在某種意義上是兩類中距離分割面最近的特征向量和分割面的距離最大化。離分割面最近的特征向量被稱為“支撐向量”,意即其他向量不影響分割面(決策函數(shù))。假定有一些分好類的訓練數(shù)據(jù)集{xi,yi},i=1,…,m,yi∈{-1,+1},xi∈Rd,最優(yōu)超平面通過以下公式求得:
其中,xi是支持向量,yi是它相應的類別,K(xi,x)是核函數(shù),通用的核函數(shù)類型有線性核函數(shù)、多項式核函數(shù)、徑向基函數(shù)和sigmoid函數(shù)。由于徑向基函數(shù)在劃分非線性問題時比其他函數(shù)性能優(yōu)越,在此采用徑向基函數(shù),即
f(x)的輸出符號表明x的所屬類別。
SVM算法最初是為二值分類問題設計的,當處理多類問題時,就需要構(gòu)造合適的多類分類器。目前,構(gòu)造SVM多類分類器的方法主要有兩類:一類是直接法,直接在目標函數(shù)上進行修改,將多個分類面的參數(shù)求解合并到一個最優(yōu)化問題中,通過求解該最優(yōu)化問題“一次性”實現(xiàn)多類分類,這種方法看似簡單,但其計算復雜度比較高,實現(xiàn)起來比較困難,只適用于小型問題中;另一類是間接法,主要是通過組合多個二分類器來實現(xiàn)多分類器的構(gòu)造常見的方法有兩種。(1)一對多法(one-versus-rest)。訓練時依次把某個類別的樣本歸為一類,其他剩余的樣本歸為另一類,這樣k個類別的樣本就構(gòu)造出了k個SVM。分類時將未知樣本分類為具有最大分類函數(shù)值的那類。(2)一對一法(one-versus-one)。其做法是在任意兩類樣本之間設計一個SVM,因此k個類別的樣本就需要設計k(k-1)/2個SVM。當對一個未知樣本進行分類時,得票最多的類別即為該未知樣本的類別。除了以上兩種方法外,還有有向無環(huán)圖DAG(Directed Acyclic Graph)和對類別進行二進制編碼的糾錯編碼(Error Correcting Code)。本文采用第二種方法并結(jié)合投票策略(voting scheme)[5]來設計需要的多分類器。
由于我們的數(shù)據(jù)樣本集較小,因此引入k-折交叉驗證。
定義3 k-折交叉驗證是指將樣本集分為k份,其中k-1份作為訓練數(shù)據(jù)集,而另外的1份作為驗證數(shù)據(jù)集。用驗證集來驗證所得分類器或者回歸的錯誤碼率。一般需要循環(huán)k次,直到所有k份數(shù)據(jù)全部被選擇一遍為止。
遺傳算法是一種模擬生物進化過程的優(yōu)化方法,它能在有限代數(shù)的進化過程中,在全局解空間內(nèi)自動進行搜索得到最優(yōu)解或是次優(yōu)解。它可以通過編碼技術(shù),將具體的問題抽象處理,僅對編碼串進行操作,在進化過程中以適應度作為標準,從而避開了問題的復雜優(yōu)化判別準則。但是遺傳算法對初始種群最初是采用一種隨機方式產(chǎn)生的,這些個體在解空間內(nèi)分布可能不均勻,為了使遺傳算法能在解空間內(nèi)更好地進行全局搜索,楊宇明等人[6]提出一種新的隨機個體產(chǎn)生方法,將混沌原理引入遺傳算法。混沌具有隨機性、遍歷性和規(guī)律性,用它產(chǎn)生初始種群會提高遺傳算法的效率,使遺傳算法的初始種群不再隨機產(chǎn)生,而是由混沌產(chǎn)生?;煦缡且环N非線性的映射,它看似隨機的過程,其實質(zhì)是一種有著內(nèi)在機制的運動過程。因此,本文也將混沌原理引入,對遺傳算法進行改進,采用logostic映射表示混沌的系統(tǒng):
當μ=4時,這個系統(tǒng)是一個完全混沌系統(tǒng),它沒有穩(wěn)定解,而且是一個滿映射的過程。這些特性能夠提高遺傳算法初始種群的差異性?;煦邕z傳優(yōu)化算法過程[7]如圖4所示。
圖4 混沌遺傳優(yōu)化算法流程圖
GA應用于實際問題時,適應度函數(shù)的定義往往最為困難,而且其計算復雜程度對于整個GA的搜索時間有較大影響。本文方法的目標就是尋找最佳的ROI,在ROI上面提取特征用于分類。因此,每個選定的ROI分類的正確性對適應度函數(shù)起至關(guān)重要的作用。然而,當兩個不同的解決方法得到同樣的分類正確性時,為了簡化計算應該選擇特征值數(shù)量較少者,因此,本文適應度函數(shù)[8]設計如下:
其中,Accuracy為對于給定個體所有SVM的平均正確率,可由k-折交叉驗證[5]求得;Zeros為染色體中起作用的特征值數(shù)量。
選擇方法:假設群體規(guī)模為N,經(jīng)交叉、變異操作后產(chǎn)生N個子代個體。將子父代組成的2N個群體按適應度函數(shù)值從大到小排序,取前面N/2個個體放入配對池,再從后面的N個個體中隨機地選出N/2個個體放入配對池。由于既選擇到適應度函數(shù)的較大值又選擇到適應度函數(shù)的較小值,這樣,既可保證種群向最優(yōu)解收斂,又可保證種群的多樣性不會迅速減少。
變異算子選擇:為了簡化實驗,提高實驗性能,本文采用基本位變異作為變異算子,即以變異概率對個體編碼串中基因座上的基因值做變異運算。
交叉算子選擇:同樣為了簡化實驗提高實驗性能,本文的交叉算子采用單點雜交算子[10],在個體編碼串中隨機設置一個雜交點,然后進行部分基因變換。
(1)染色體編碼,產(chǎn)生初始化種群。用混沌遺傳優(yōu)化算法進行感興趣區(qū)域(ROI)選擇和特征提取。CGA選出一個集合 Ω,其中含有 n個 ROI,在此 n=5,ROI用 w1,…,w5表示,wi為1表示激活,wi為0表示沒有激活。每條染色體編碼[9]如下,定義 5個變量{c1,…,c5},每個變量用1 bit編碼,每一個變量決定對應的wi是否被激活。每個wi包含4個參數(shù) {xwi,ywi,hwi,wwi},由于預處理圖片到32×32,因此每個參數(shù)用 5 bit表示。其中,(xwi,ywi)表示ROI的起始點坐標,hwi表示ROI的高度,wwi表示ROI的寬度。βwi,j為從 wi中提取的第 j個特征值大小,αwi,j表示 βwi,j是否被激活,1表示激活,0表示沒有激活,以此來尋找5個特征值的最佳組合。染色體編碼方式如圖5所示,因此染色體長度為:5+5×4×5+5×5=130?;谝陨暇幋a方式和公式(10)混沌產(chǎn)生初始化種群,每個個體對應預處理后圖片的感興趣區(qū)域。
(2)GLCM參數(shù)選擇。灰度共生矩陣的參數(shù):像素間距 d 和方向角 θ,因為 i=[1,5],?wi∈Ω,考慮 8-連通鄰域,所以取 dwi=1,θwi=90°。 在這個過程中,CGA通過調(diào)整灰度共生矩陣的參數(shù)來進行特征構(gòu)建。
具體方法為:對每個個體中的由wi激活的ROI利用公式(1)計算其灰度共生矩陣,再利用式(2)進行歸一化,利用計算出 來的(i,j),按 照式(3)、式(4)、式(5)、式(6)、式(7)求 得 其 特 征 向 量,即=(β1,… ,β5),其 中 ,?wi∈Ω。集合 Γ={}用于分類。這一過程中,利用CGA將ROI的選擇和特征提取結(jié)合在一起。
(3)支持向量機和k-折交叉驗證。給定一個訓練樣本集(多幅已經(jīng)分好類的圖像),將其平均分成 k份,其中k-1份作為訓練數(shù)據(jù)集,而另外的1份作為驗證數(shù)據(jù)集。對每個wi由激活的ROI,用驗證集來驗證所得分類器的正確性,一般需要循環(huán)k次,直到所有k份數(shù)據(jù)全部被選擇一遍為止。在此,選取k=6。根據(jù)求得分類器的正確性利用公式(11)計算適應度,在此,Zeros=∑i∑jβwi,jwi,i=1,…,5,j=1,…,5,按照 圖 4 的 流程 執(zhí)行遺 傳 算 法的流程,最終可以得到一個滿足所要求條件的最佳個體。通過調(diào)整實驗參數(shù),選定交叉概率為0.66,變異概率為0.05。
(4)利用選擇出的最佳個體和訓練樣本集再次訓練SVM,然后用訓練好的SVM可以對未在樣本集中的未知圖像進行分類。
整體算法流程圖如圖6所示。
圖6 算法流程圖
本文選用Matlab 7.0為實驗平臺,從JAFFE圖庫中選出“Happy”、“Neutral” 、“Angry”和“Surprise”四種表情的圖像樣本共 121幅,其中:“Happy”表情 31幅、“Neutral”表情 30 幅、“Angry”表情 30 幅、“Surprise”表情 30幅。從這些圖像樣本中選擇“Happy”表情 16幅、“Neutral”表情 15 幅、“Angry”表 情 15 幅 、“Surprise”表情 15幅共61幅作為訓練樣本,剩余每種表情 15幅,共 60幅作為測試樣本。經(jīng)過實驗選定種群大小為50,最大遺傳代數(shù)為50,經(jīng)過三次實驗,求得的識別率如表1所示。
由表1不難得出,采用灰度共生矩陣特征值表征的特征對“Happy”和“Neutral”識別效果較為理想,對于“Angry”也有較高的識別率,對“Surprise”識別率較低??傮w來說,本文提出的基于灰度共生矩陣和混沌遺傳優(yōu)化算法相結(jié)合的算法能夠得到81.67%的平均識別率,識別結(jié)果令人滿意。最優(yōu)個體的感興趣區(qū)域數(shù)目為2,參數(shù)為{14 16 13 15}和 {19 3 9 25},分別對應中心點坐標(xwi,ywi)、ROI寬度 hwi和 ROI高度 wwi。最優(yōu)個體ROI在JAFFE庫上一個實例的區(qū)域截圖如圖7所示。
表1 特征識別結(jié)果
本文提出了利用CGA將ROI的選取和特征的提取有機地結(jié)合,通過不斷調(diào)整灰度共生矩陣的參數(shù)尋找最優(yōu)個體,利用最優(yōu)個體標明的ROI訓練SVM,最后通過SVM進行分類。該方法的優(yōu)點在于能夠很好地利用人臉表情處理步驟之間的依賴性,將前兩個步驟有機地結(jié)合成一步,消除了步驟連接中的人為因素,實現(xiàn)了自動機制,并且簡化了設計,而且將混沌原理引入遺傳算法當中,有效地解決了隨機產(chǎn)生個體的不均勻性,又保持了個體的差異性。通過定理、公式推導和實驗仿真,證明該方法切實可行。
[1]HERNANDEZ B,OLAGUE G,HAMMOUD R,et al.Visual learning of texture descriptors for facial expression recognition in thermal imagery[J].Computer Vision and Image Understanding,2007(106):258-269.
[2]謝紅薇,田儆,余雪麗,等.基于 MCM和 CGA的人臉表情識別方法研究[J].微電子學與計算機,2008,25(12):45-49.
[3]冷冰.基于形狀和紋理的微生物菌種圖像智能檢索系統(tǒng)研究[C].visionchina 2006機器視覺會議,2006,6.
[4]EKMAN P,FRIENSEN W.Facial action coding system:A technique for the measurement of facial movement[J].Consulting Psychologists Press.1978.
[5]劉曉旻,章毓晉.基于Gabor直方圖特征和MVBoost的人臉表情識別[J].計算機研究與發(fā)展,2007(7):1089-1096.
[6]楊宇明,李傳東.混沌在遺傳算法中的應用[J].計算機工程與應用,2004,40(5):76-77.
[7]吳建華,李娜,李靜輝,等.基于 CGA和 ICA的人臉特征提取方法研究[J].計算機應用,2007,27(8):2038-2040.
[8]SUN Z,BEBIS G,MILLER R.Object detection using feature subset selection[J].Pattern Recognition,2004,37(11):2165-2176.
[9]唐旭晟,歐宗瑛,蘇鐵明,等.基于AdaBoost和遺傳算法的快速人臉定位算法[J].華南理工大學學報,2007,35(1):64-69.
[10]潘正君.演化計算[M].北京:清華大學出版社,1998.