滕 飛
(沈陽理工大學(xué) 遼寧 沈陽 110159)
隨著科技的進步,尤其是計算機技術(shù)的飛速發(fā)展,計算機的交互方式發(fā)生了重大的變化。通過計算機對人臉表情的識別,促進了人機交互技術(shù)的快速發(fā)展,這使得人臉表情識別成為信息領(lǐng)域炙手可熱的研究課題之一。人臉表情識別主要功能是對自然環(huán)境下人們的各種表情進行識別,從而來判斷人的心情和狀態(tài)。但是現(xiàn)有的人臉表情識別方法都有識別率低的通病,因此提高識別率是一件非常具有挑戰(zhàn)性的工作。
通過對現(xiàn)有的SVM算法和AdaBoost算法的研究過程中,從中發(fā)現(xiàn)兩種算法之間有很多相似點,即在兩種算法的學(xué)習(xí)過程中都在不斷迭代訓(xùn)練信息樣本點。SVM算法中對錯分的樣本采用松弛變量和懲罰因子的方法進行樣本訓(xùn)練;AdaBoost算法中采用增大錯分樣本權(quán)重的方法更新樣本的分布,從而對弱分類器進行反復(fù)迭代強化,最終得到理想的效果。但是AdaBoost算法在計算過程中有一些很難避免的問題,當(dāng)數(shù)據(jù)訓(xùn)練的樣本增加時會容易導(dǎo)致分類器的分類效率下降、穩(wěn)定性變差等問題,AdaBoost分類器不適合和強分類器進行級聯(lián)。本文提出一種算法融合的方法,即AdaBoost算法和SVM算法的融合,在判斷弱分類器個數(shù)到達上限時,能否達到誤檢率的最大值,以這種標準來判斷是否讓SVM來替代。
本文用到的AdaBoost和SVM的融合算法的具體步驟如下:
Step1:先對每一個樣本添加一個權(quán)重屬性,并且對每個樣本權(quán)重進行初始化。
Step2:再對每一個樣本點增加一個參數(shù),該參數(shù)用來記錄每個樣本點被錯誤分類的次數(shù),并且對錯分次數(shù)進行清零。
Step3:緊接著采用SVM算法進行迭代學(xué)習(xí)訓(xùn)練,對每次學(xué)習(xí)得到的樣本點進行分類,然后判斷是否正確,根據(jù)判斷的結(jié)果來對每個樣本的權(quán)重進行更改,通過每次學(xué)習(xí)得到的分類器樣本點分類的正確與否,對每個樣本權(quán)重進行更改。當(dāng)判斷的結(jié)果為錯誤的,則增大錯誤分類的樣本權(quán)重;當(dāng)判斷的結(jié)果為正確的,則減少正確分類的樣本權(quán)重,并記錄每個樣本的錯分次數(shù)。于是在下一個迭代學(xué)習(xí)時就可以根據(jù)新的樣本集進行訓(xùn)練。
從以上的步驟可知,為了提高分類器的分類能力,本文對各個分類器進行了權(quán)值賦予的工作。首先用AdaBoost算法訓(xùn)練方式來加強其SVM算法泛化出來的分類器,來提高SVM分類器的分類能力,然后將每個分類器的錯誤率計算出來,這里用到了歸一化的方法來處理SVM分類器的權(quán)重,最后將較小的權(quán)值賦值給錯誤率相對較低的分類器,將較大的權(quán)值賦值給錯誤率較高的分類器,使得人臉表情識別率提高。
為了可以更好地證實新算法的可行性,本文對AdaBoost算法、SVM算法和本文運用的算法進行人臉表情識別訓(xùn)練,實驗數(shù)據(jù)如圖1、2、3所示。
從下圖1、圖2和圖3可知,本文提出的算法的正確識別率為97.76%,而單純使用AdaBoost算法的正確識別率為71.92%,單純使用SVM算法的正確識別率為88.01%。所以新的算法在識別率上有了很大的提升。

圖1 SVM算法 圖2 AdaBoost算法 圖3 本文算法
本文通過對三種分類算法對人臉表情識別準確率的比較,從而發(fā)現(xiàn)將傳統(tǒng)的AdaBoost算法和SVM算法進行融合,不僅降低了后續(xù)訓(xùn)練計算的復(fù)雜度,而且在一定程度上提高了人臉表情識別率。