朱婭妮,吳國華,杜加友
(1.杭州電子科技大學軍工處,浙江 杭州310018;2.杭州電子科技大學計算機學院,浙江 杭州310018)
人臉表情識別作為智能化人機交互技術(shù)中的一個重要組成部分,近年來得到了廣泛的關(guān)注,涌現(xiàn)出許多新方法。人臉表情識別系統(tǒng)一般包括3個環(huán)節(jié),即人臉檢測、特征提取、表情分類[1]。本文提出了一種基于多群體遺傳算法進化的支持向量機進行人臉表情識別的新方法。采用多群體遺傳算法對支持向量機的核函數(shù)參數(shù)進行最優(yōu)篩選。由于遺傳算法的主要特點是利用群體搜索策略和群體中個體之間的信息交換,且搜索過程不依賴于梯度信息,所以它尤其適用于處理傳統(tǒng)搜索方法難以解決的復雜和非線性尋優(yōu)問題。實驗證明,采用遺傳算法進化的支持向量機進行分類可以得到很好的人臉表情識別率和魯棒性。
多群體遺傳算法是利用并行遺傳算法的思想,將群體劃分為一些子群體,各子群體按一定的模式分別獨立進行進化,在適當?shù)臅r候,某一些子群體之間交換一些信息。這樣可以維持群體的多樣性,從而達到抑制早熟收斂的效果。
其中,將整個進化群體劃分為3類群體同時進行進化:
(1)子群體1 中采用浮點數(shù)編碼方法進行編碼,群體中的每個個體采用浮點數(shù)編碼方法,該種群具有較強的局部搜索能力,而全局搜索能力不強,這個群體被叫做“開發(fā)”子群體。該群體易于在局部范圍內(nèi)搜索到優(yōu)秀個體,并將優(yōu)秀個體保存下來,設(shè)其群體規(guī)模為N1;
(2)子群體2 中采用二進制編碼方法,每個個體采用二進制編碼方法進行編碼,種群具有較強的全局搜索能力,而其局部搜索能力不強,這個群體被叫做“探測”子群體。二進制編碼方法的強全局搜索能力使遺傳算法易于搜索全局空間[2],從而增大搜索到最優(yōu)個體的可能性,設(shè)其群體規(guī)模為N2;
(3)子群體3為精華種群,它開始并沒有個體,而是由前兩類子群體進化過程中的優(yōu)秀個體組成,其作用在于保存前兩類子群體進化過程中的優(yōu)秀個體,使不遭受破壞,同時群體自身也在進化,設(shè)其種群規(guī)模為(N1+N2)/2。
在進化過程中,為了保持個體分布的多樣性,在子群體1和子群體2 之間進行“移民”,即相互交換一些優(yōu)秀個體,這樣可以吸取其它子群體的優(yōu)點,克服個體趨向,“移民”的數(shù)量設(shè)為N1、N2中較小數(shù)的一半。同時。定期地從1、2類子群體中選擇優(yōu)秀個體,對子群體3 中較差個體進行更新。該方法有效地克服了進化過程中的早熟收斂現(xiàn)象,加快了收斂速度,提高了算法性能。
用基于多群體遺傳算法對典型的優(yōu)化測試函數(shù)進行優(yōu)化,并通過遺傳算法性能檢驗的標準進行檢驗,并將其分別與單群體標準遺傳算法進行性能比較[3]。其中,與單群體遺傳算法的比較中,分別與兩種不同編碼機制下的遺傳算法(即二進制編碼遺傳算法與浮點數(shù)編碼遺傳算法)進行性能比較。
對每個測試函數(shù),分別用各種方法下的遺傳算法進行100次尋優(yōu)計算。如表1所示,基于多群體的遺傳算法在設(shè)定的最大遺傳代數(shù)內(nèi)都能找到全局最優(yōu)解,具有很強的跳出局部極值的能力,不易陷入局部收斂,即使是對極易陷入局部最優(yōu)的f6函數(shù),也能很快地達到最優(yōu)?;诙嗳后w的遺傳算法的收斂速度快,對于較難收斂的多維函數(shù)f8,也能較快地達到全局收斂,計算量明顯少于上述的其它方法。
表1 各種編碼方法下的遺傳算法性能比較
同其他機器學習算法一樣,當SVM 用于模式識別時,首先要解決的問題是如何選擇算法的參數(shù)以得到好的分類性能,由于支持向量機的推廣性取決于核函數(shù)及其參數(shù)的選擇,核函數(shù)參數(shù)主要影響樣本數(shù)據(jù)在高維特征空間中分布的復雜程度,因此要想獲得性能良好的SVM 分類器,首先要選擇合適的核函數(shù)參數(shù)將數(shù)據(jù)映射到合適的特征空間,目前對其核函數(shù)及其參數(shù)的選擇依賴經(jīng)驗[4]。為了提高識別率和識別速度,本文采用多群體遺傳算法對支持向量機參數(shù)進行最優(yōu)篩選:
(1)首先初始化,在參數(shù)空間隨機產(chǎn)生3組群體,群體大小N的選取一般為染色體長度的2-3倍。對染色體進行編碼,因最佳核函數(shù)參數(shù)的搜尋過程是一個復雜的連續(xù)參數(shù)優(yōu)化問題,所以采用多群體遺傳算法以避免有限的染色體長度對進化算法性能和求解精度的影響,染色體的長度與所尋優(yōu)參數(shù)的個數(shù)及參數(shù)取值范圍有關(guān);有時為了提高精度解碼時需進行論域轉(zhuǎn)換,根據(jù)個體的適應度函數(shù)值來決定應復制的個體數(shù),然后按適應度的大小進行排序。
(2)接著進行交叉、變異操作,交叉是將一對染色體按單點或多點進行交換重組。變異是以一定概率改變?nèi)旧w某點的狀態(tài)。在遺傳算法中,交叉與變異的概率對遺傳算法的性能有很大的影響,變異操作一般選取范圍是交叉概率為0.5-1.0,變異概率為0.005-0.1,具體問題應反復試驗。重復進行上一步直到產(chǎn)生N-1個新一代的個體,連同上一代中性能最好的那個個體組成新的群體。給出最佳的核函數(shù)參數(shù)和懲罰因子,用其訓練新的群體直到所有的個體都達到要求為止,群體中適應度最高的染色體所表示的參數(shù)就是所要求的解,利用尋優(yōu)所得合適的核函數(shù),通過非線性變換即可在新空間獲得最優(yōu)分類面。
本文所做仿真實驗是在日本女性面部表情數(shù)據(jù)庫上進行的。該數(shù)據(jù)庫中包含10位日本女性的7種表情如圖1所示,由左至右依次為生氣、厭惡、恐懼、高興、中性、悲傷、驚奇,均為256×256的8位灰度圖像。從日本女性面部表情數(shù)據(jù)庫中選取70幅圖像,共10個人,7幅/人,其中49幅圖像作為訓練樣本,7個人,7幅/人,測試樣本為21幅圖像,3個人,7幅/人。通過隨機變換訓練樣本和測試樣本,重復10次這樣的實驗。對日本女性面部表情數(shù)據(jù)庫中圖像先經(jīng)過前述的預處理,然后分別通過主元分析方法和Fisher 線性判別法提取表情特征,最后分別用支持向量機、最近鄰分類器進行訓練和表情的分類識別[5]。
圖1 日本女性面部表情數(shù)據(jù)庫中的表情圖像
如表2所示,PCA和FLD表示通過主元分析法和線性判別法提取表情特征,NEAREST和SVM表示采用最近鄰和支持向量機兩種分類器進行表情分類。從實驗結(jié)果中可以看出,利用多群體遺傳算法進化的支持向量機進行分類比用最近鄰分類器進行分類得到了的更好分類效果。
表2 JAFFE 庫中7種表情的識別率對比 (%)
本文通過主元分析法提取靜態(tài)人臉表情圖像特征,將多群體遺傳算法進化的支持向量機分類器應用于表情識別,并與使用其他方法提取特征作比較,本文的方法得到了更好的識別結(jié)果,說明了多群體遺傳算法進化的支持向量機分類是可行的。本文實驗中用到的日本女性面部表情數(shù)據(jù)庫是靜態(tài)表情圖像庫,而人臉表情是一個行為過程,表情差別更主要反映為動態(tài)的變化信息,尤其是生氣、厭惡、恐懼和悲傷在靜態(tài)圖像上有更多的相似之處。人之所以能較準確地由靜態(tài)圖像區(qū)分表情,是因為可以根據(jù)以往知識和經(jīng)驗聯(lián)想出表情的動作過程。因此有理由相信,如果能利用多幀序列圖像提取動態(tài)信息作表情分類,將會有更好的識別效果。
[1]Andrea A F,Michele N,Daniel R,etal.2D and 3D face recognition:a survey[J].Pattern Recognition Letters,2007,28(14):1 885-1 906.
[2]Ahonen T,Hadid A,Pietikainen M.Face description with local binary patterns:application to face recognition[J].IEEE Trans on PAMI,2006,28(12):2 037-2 041.
[3]邊肇祺,張學工.模式識別[M].北京:清華大學出版社,2000∶121-186.
[4]陳長軍,詹永照,文傳軍.支持向量描述鑒別分析及在人臉識別中的應用[J].計算機應用研究,2010,27(2):488-490.
[5]Wright J,Yang A Y,Ganesh A.Robust face recognition via sparse representation[J].IEEE Trans on PAMI,2009,31(2):210-227.