本發(fā)明屬圖像處理和模式識別技術(shù)領(lǐng)域,具體涉及一種人臉表情的識別方法。
背景技術(shù):
人臉表情識別是一個典型的圖像處理、理解和分類的問題,是多學(xué)科交叉研究的前沿?zé)狳c。除了涉及到圖像處理、模式分析、模式分類、形態(tài)學(xué)的理論與方法外,還需要光學(xué)、心理學(xué)、矩陣等方面的理論做支撐。因此,表情識別技術(shù)的發(fā)展對這些學(xué)科的諸多方面提出新的要求,從而帶動它們的發(fā)展。
早期的人臉表情識別多是在刻意擺出的、靜態(tài)圖片表情庫中進行研究的。然而,人臉表情是一個連續(xù)的動態(tài)過程,因此在視頻序列中進行人臉表情識別的研究更具有現(xiàn)實意義。對于識別視頻序列中的人臉表情有兩大挑戰(zhàn):(1)不同對象表達表情的差異性;(2)識別不同對象表達同種表情的速率。為克服這兩大問題,需要一種更具有魯棒性的方法,在更好的捕獲變化表情的同時減輕不同目標之間差異性的影響。
心理學(xué)和生理學(xué)理論研究表明,人臉表情依靠肌肉的運動體現(xiàn)。攝像機捕獲的人臉表情圖像直觀的反映了表情發(fā)生時人臉肌肉運動所產(chǎn)生的面部變形和紋理的變化。從整體上看,表情變化造成了面部器官的明顯形變,會對人臉圖像的全局信息產(chǎn)生影響。人臉表情發(fā)生時不僅有整體變化,也存在局部的變化,如面部肌肉的紋理,褶皺等。如果忽略不同表情對象之間的差異性,可以發(fā)現(xiàn)仍存在一些典型的局部運動模式,這些運動模式能夠被不同對象所共享。其中面部運動編碼系統(tǒng)(Facial Action Coding System:FACS)就是一個典型例子。FACS通過手動獲得一系列運動單元(Action Units:AU),這些運動單元被定義為由人臉產(chǎn)生表情所引發(fā)的肌肉運動。因此可以通過分析AU的存在以及組成來進行表情識別。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種在格拉斯曼(Grassmann)流形上基于原型和Simile的表情識別方法,在以往人臉表情檢測方法的基礎(chǔ)上加以改進和創(chuàng)新,使識別結(jié)果更為理想,更適用于自然場景中的人臉表情識別。
本發(fā)明的格拉斯曼流形上基于原型和Simile的表情識別方法,包括下列步驟:
1.1選擇人臉表情數(shù)據(jù)庫:選取擴充的Cohn-Kanade人臉表情數(shù)據(jù)庫,該數(shù)據(jù)庫分別由不同種族、性別、年齡的123位人物的7種不同表情組成;選取共計950幅表情圖像,包含高興140幅、驚訝150幅、憤怒165幅、悲傷135幅、厭惡135幅、恐懼120幅、中性105幅7種表情圖像;
1.2對步驟1.1所述人臉表情數(shù)據(jù)庫的950幅表情圖像進行不同人臉表情視頻序列圖像預(yù)處理:采用基于YIQ色彩空間建立膚色模型,進行人臉檢測,確保樣本序列中存在人臉圖像,將檢測出的人臉所有圖像剪裁并歸一化成96×96像素的灰度圖像;
1.3將經(jīng)過步驟1.2預(yù)處理的950幅表情圖像平均分成5份,每份都包含7種表情圖像,選取其中4份作為訓(xùn)練樣本集,剩下的1份作為測試樣本集;
1.4建立人臉局部表情模型:對步驟1.3中4份訓(xùn)練樣本集圖像的局部斑塊區(qū)域建模,假設(shè)斑塊的大小為s×s,長與寬分別為s個像素值,得到s2維的灰度特征向量,對于訓(xùn)練樣本集序列的所有幀圖像,都選取相同位置、相同大小的斑塊作為處理對象,得到特征集F:
F={f1,f2,...,fT}
其中:代表第t幀表情圖像的斑塊特征;T為總幀數(shù);
通過奇異值分解算法,將特征集F用一個線性子空間的協(xié)方差矩陣表示為:
其中:X=[x1,x2,…xr];x1,x2,…xr分別是第1,2,…,r個主導(dǎo)特征向量,線性子空間為r維;
將不同表情視頻序列的不同表情局部斑塊的特征向量的集合表示為:{Xi|i=1,2,…,N},將其作為一種表情特征,定義Xi為人臉局部表情模型;
1.5基于學(xué)習(xí)“原型”對局部表情模型Xi聚類:定義“原型”為通用的局部表情特征,這些局部表情特征能被不同目標的不同表情所共享,對所有人臉局部表情模型采用聚類算法從擴充的Cohn-Kanade人臉表情數(shù)據(jù)庫中自動地發(fā)掘“原型”,得到一系列幾何中心,每一個幾何中心被視為其對應(yīng)類集模型的樣本;采用基于Grassmann核函數(shù)計算的關(guān)聯(lián)矩陣的聚類算法,兩個線性子空間Xi和Xj的相似性由下式計算:
其中:A為Grassmann流形上用于光譜聚類運算的關(guān)聯(lián)矩陣;Xi和Xj分別表示第i個和第j個線性子空間,i,j=1,2,…,N且i≠j;F代表Frobenius范數(shù);
定義一個對角線矩陣D,Dij=∑jAij,j=1,2,...,N;對關(guān)聯(lián)矩陣A進行歸一化,得到矩陣L:
L=D-1/2AD-1/2
選取矩陣L的前l(fā)個特征向量構(gòu)成一個新的矩陣U,將U的每一行作為Rl上的一個點來對待,在這個新的嵌入式的空間中,采用K-means算法得到聚類分配結(jié)果,這個結(jié)果能簡單地與Grassmann流形中原始人臉局部表情模式Xi一一對應(yīng),整個聚類算法的步驟如下:
輸入人臉表示視頻庫訓(xùn)練樣本集提取出的人臉局部表情模型:{Xi|i=1,2,...,N}
輸出K個聚類結(jié)果:{Jk|k=1,2,...,K},Jk表示第k個聚類值,其中:
1)計算關(guān)聯(lián)矩陣A∈RN×N,其中:
2)定義一個對角線矩陣D,其中:Dij=∑jAij,計算歸一化矩陣L=D-1/2AD-1/2;
3)尋找矩陣L的前l(fā)個特征向量:u1,u2,...,ul;
4)用u1,u2,...,ul作為每一列的元素構(gòu)成一個新矩陣U,按下式重新進行歸一化: i,j=1,2,...,l;
5)選取矩陣U每一列的前N行作為Rl上的一個點,然后對這些點采用K-means算法,使Rl上的第i點對應(yīng)Grassmann流形上原始人臉表情模式Xi;
6)當(dāng)矩陣U的第i行被聚類為第k類的時候,將聚類結(jié)果Jk,k=1,2,...,K,分配對應(yīng)至原始模型Xi;
1.6基于Simile分類器的高級特征提取,包括下列步驟:
1.6.1構(gòu)建Simile分類器:通過訓(xùn)練樣本集構(gòu)建Simile分類器,訓(xùn)練樣本集包括M個局部表情模型,針對之前K個原型,訓(xùn)練出M×K個Simile分類器Ci=1,...,M×K;其中分類器的正樣本為特定局部表情模型的特征值,負樣本為其他局部表情模型的特征值;
1.6.2計算高級描述子:對步驟1.5的聚類結(jié)果Jk,k=1,2,...,K通過步驟1.6.1的M×K個Simile分類器Ci=1,...,M×K,形成高級特征C(X)=<C1(J(X)),...,CM×K(J(X))>;
1.7采用SVM分類器進行人臉表情識別,包括下列步驟:
1.7.1構(gòu)建多類SVM分類器:采用One-against-one投票策略的SVM,識別7種表情:高興、悲傷、憤怒、厭惡、害怕、驚訝、中性,構(gòu)建21個SVM二分類器;
1.7.2識別過程:讓表情訓(xùn)練樣本集依次經(jīng)過21個SVM二分類器,通過One-against-one投票策略,決定最終類別歸屬;
1.8輸出人臉表情識別結(jié)果。
因此選取CK+人臉表情數(shù)據(jù)庫后,通過人臉區(qū)域檢測,圖像尺寸歸一化,訓(xùn)練樣本集,建立人臉局部表情模型,基于學(xué)習(xí)“原型”對局部表情模型聚類,構(gòu)建Simile特征分類計算特征描述子,構(gòu)建SVM分類器后就能實現(xiàn)人臉表情的識別。本發(fā)明只對局部表情區(qū)域進行建模,與對全臉進行建模相比降低了計算量;對表情局部特征進行進一步高級提取,能夠更好地捕捉到人臉表情的微妙變化,提高自然場景下人臉表情的識別率,具有很好的魯棒性。
附圖說明
圖1為格拉斯曼流形上基于原型和Simile的表情識別方法流程圖
圖2為流程詳解框圖
其中:(A)為不同對象的人臉表情圖;(B)為表情“原型”圖;(C)、(D)為測試圖像局部區(qū)域與原型之間相似值圖;(C)和(D)中柱狀表示與“原型”的相似度;
圖3為基于學(xué)習(xí)原型的詳解圖
其中:(a)為視頻序列;(b)為Grassmann流形上的人臉表情模式;(c)為原型:每個類集的karcher質(zhì)心。
具體實施方式
下面結(jié)合附圖對本發(fā)明的目的、具體技術(shù)方法和效果進行描述。
本發(fā)明在格拉斯曼流形上基于原型和Simile進行表情識別,如圖1所示為本發(fā)明的基本框架,本方法的具體實施從八點進行描述:
1.選擇人臉表情數(shù)據(jù)庫:選取擴充的Cohn-Kanade人臉表情數(shù)據(jù)庫:the extended Cohn-Kanade database,CK+,該數(shù)據(jù)庫分別由不同種族、性別、年齡的123位人物的7種不同表情組成;選取共計950幅表情圖像,包含高興140幅、驚訝150幅、憤怒165幅、悲傷135幅、厭惡135幅、恐懼120幅、中性105幅7種表情圖像;
2.進行不同人臉表情視頻序列圖像預(yù)處理:本發(fā)明采用基于YIQ色彩空間建立膚色模型,進行人臉檢測,確保樣本序列中存在人臉圖像;
2.1.對于彩色人臉表情圖像中任意像素點p,將其從RGB模型變換YIQ模型;
2.2.如果滿足不等式則p點為膚色像素,反之為非膚色像素:其中Ip和Qp分別代表YIQ空間中的I分量和Q分量,g和q分別代表I分量和Q分量的范圍,m代表I分量的均值;
2.3.選擇YIQ空間的膚色范圍為(5,150),進行人臉檢測;
2.4.將檢測出人臉的圖像進行剪裁,保留臉部區(qū)域,并剪裁為96×96像素的歸一化灰度圖像;
3.將步驟2.4所述經(jīng)過人臉檢測以及尺寸歸一化后的950幅表情圖像平均分成5份,每份都包含7種表情圖像,選取其中4份作為訓(xùn)練樣本集,剩下的1份作為測試樣本集;
4.建立人臉局部表情模型
對步驟3中4份訓(xùn)練樣本集圖像的局部斑塊區(qū)域建模,假設(shè)斑塊的大小為s×s,長與寬分別為s個像素值,得到s2維的灰度特征向量,對于訓(xùn)練樣本集序列的所有幀圖像,都選取相同位置、相同大小的斑塊作為處理對象,得到特征集F:
F={f1,f2,...,fT}
其中:代表第t幀表情圖像的斑塊特征;T為總幀數(shù);
通過奇異值分解算法,將特征集F用一個線性子空間的協(xié)方差矩陣表示為:
其中:X=[x1,x2,...xr];x1,x2,...xr分別是第1,2,...,r個主導(dǎo)特征向量,線性子空間為r維;
將不同表情視頻序列的不同表情局部斑塊的特征向量的集合表示為:{Xi|i=1,2,...,N},將其作為一種表情特征,定義Xi為人臉局部表情模型;
5.基于學(xué)習(xí)“原型”對局部表情模型Xi聚類
定義“原型”為通用的局部表情特征,這些局部表情特征能被不同目標的不同表情所共享,對所有人臉局部表情模型采用聚類算法從擴充的Cohn-Kanade人臉表情數(shù)據(jù)庫中自動地發(fā)掘“原型”,得到一系列幾何中心,每一個幾何中心被視為其對應(yīng)類集模型的樣本;因為線性子空間{Xi|i=1,2,...,N}是位于Grassmann流形上點的集合,因此傳統(tǒng)歐氏空間的聚類算法不適用,為解決這個問題,采用基于Grassmann核函數(shù)計算的關(guān)聯(lián)矩陣的聚類算法,兩個線性子空間Xi和Xj的相似性由下式計算:
其中:A為Grassmann流形上用于光譜聚類運算的關(guān)聯(lián)矩陣;Xi和Xj分別表示第i個和第j個線性子空間,i,j=1,2,...,N且i≠j;F代表Frobenius范數(shù);
定義一個對角線矩陣D,Dij=∑jAij,j=1,2,...,N對關(guān)聯(lián)矩陣A進行歸一化,得到矩陣L:
L=D-1/2AD-1/2
選取矩陣L的前l(fā)個特征向量構(gòu)成一個新的矩陣U,將U的每一行作為Rl上的一個點來對待,在這個新的嵌入式的空間中,采用K-means算法得到聚類分配結(jié)果,這個結(jié)果能簡單地與Grassmann流形中原始人臉局部表情模式Xi一一對應(yīng),整個聚類算法的步驟如下:
輸入人臉表示視頻庫訓(xùn)練樣本集提取出的人臉局部表情模型:{Xi|i=1,2,...,N}
輸出K個聚類結(jié)果:{Jk|k=1,2,...,K},Jk表示第k個聚類值,其中:
1)計算關(guān)聯(lián)矩陣A∈RN×N,其中
2)定義一個對角線矩陣D,其中Dij=ΣjAij,計算歸一化矩陣L=D-1/2AD-1/2;
3)尋找矩陣L的前l(fā)個特征向量:u1,u2,...,ul;
4)用u1,u2,...,ul作為每一列的元素構(gòu)成一個新矩陣U,按照下式重新進行歸一化: i,j=1,2,...,l;
5)選取矩陣U每一列的前N行作為Rl上的一個點,然后對這些點采用K-means算法,使Rl上的第i點對應(yīng)Grassmann流形上原始人臉表情模式Xi;
6)當(dāng)矩陣U的第i行被聚類為第k類的時候,將聚類結(jié)果Jk,k=1,2,...,K分配對應(yīng)至原始模式 Xi;
6.基于Simile分類器的高級特征提取
為了獲得一個統(tǒng)一的基于原型的人臉表情表示,設(shè)計Simile特征來探索通用原型和特定模式之間的關(guān)系。Simile的核心思想是:一張人臉表情圖像可以描述為與訓(xùn)練樣本集各個人臉表情圖像之間的相似性,這些相似值作為人臉圖像的高級特征,包括下列步驟:
6.1.構(gòu)建Simile分類器:通過訓(xùn)練樣本集構(gòu)建Simile分類器,訓(xùn)練樣本集包括M個局部表情模型,針對之前K個原型,訓(xùn)練出M×K個Simile分類器Ci=1,...,M×K;其中分類器的正樣本為特定局部表情模型的特征值,負樣本為其他局部表情模型的特征值;
6.2.計算高級描述子:對步驟5的聚類結(jié)果Jk,k=1,2,...,K通過步驟6.1的M×K個Simile分類器Ci=1,...,M×K,形成高級特征C(X)=<C1(J(X)),...,CM×K(J(X))>;如圖2(C)、(D)所示,兩張人臉圖像通過步驟6.1構(gòu)建的Simile分類器能得到一系列相似值(圖中塊的高度);這些相似度輸出值組成了人臉表情圖像的高級特征描述子C(X);
7.采用SVM分類器進行人臉表情識別,包括下列步驟:
7.1.構(gòu)建多類SVM分類器:采用One-against-one投票策略的SVM,識別7種表情:高興、悲傷、憤怒、厭惡、害怕、驚訝、中性,構(gòu)建21個SVM二分類器;
7.2.識別過程:讓表情訓(xùn)練樣本集依次經(jīng)過21個SVM二分類器,通過One-against-one投票策略決定最終類別歸屬;
8.輸出人臉表情識別結(jié)果。