(東華大學信息科學與技術學院,上海 201620)
隨著人工智能的飛速發展,人機交互和機器視覺成為研究熱點。面部表情識別作為一種新興的生物特征識別技術,在模式識別和人工智能領域受到關注。生物學家Darwin[1]2003 年就已經對表情開始研究。1972 年,兩位美國科學家Ekamn[2]創造性提出將高興、驚訝、恐懼、悲傷、憤怒、厭惡作為人類6 種基本表情。
目前,人臉特征提取方法有Gabor 濾波器[3]、尺度不變特征轉換(SIFT)[4]、梯度直方圖(HOG)[5]、線性判別分析(LDA)[6]和局部二值模式(LBP)[7]等。文獻[8]將SIFT 特征應用到人臉表情識別,取得78.43% 的識別結果;文獻[9]將LBP 與Gabor 兩種特征相結合,取得98% 的識別結果。雖然這些特征提取方法識別效果較好,但存在特征提取方法維度大、對光照比較敏感等問題。
在點跟蹤法中,經典的ASM 和AAM 廣泛應用在人臉表情識別中。胡珍珍[10]采用AAM 算法對人臉關鍵點建模,使用最小距離分類器對人臉表情進行研究;Cristinacce等[11]提出一種AAM 算法與特征相應成對增強算法相結合的方法,檢測鼻尖、嘴角和眼眶等局部區域的邊緣特征及特征點;Michel 等[12]在面部標記22 個關鍵點,通過跟蹤22點在各個表情中和中性表情中的位移實現人臉識別。但在面部22 個關鍵點中,眉毛上面只標記了2 個關鍵點,并且這2 個關鍵點只存在于眉頭,這些關鍵點并不能完全表示眉毛的動態變化。為彌補關鍵點分布不均勻問題,本文通過AAM 算法對人臉進行68 個關鍵點檢測,利用關鍵點提取人臉幾何特征。
提取人臉特征點后,還需使用合適的分類器對特征進行分類。李郭宇等[13]將LBP 算法與BP 神經網絡相結合實現人臉表情分類;黃忠等[14]將SIFT 算法與SVM 算法相結合實現人臉表情分類;齊興[15]結合主方向和SVM 算法實現人臉表情分類。本文使用改進的貝葉斯算法用于人臉表情識別,通過實驗驗證算法的可行性。
ASM 算法和AAM 算法是典型的關鍵點跟蹤算法,AAM 算法實現關鍵點定位,該模型包含模型建立和匹配兩個步驟。
首先,建立外觀模型和紋理模型,手工標記訓練數據中人臉圖像的68 個特征點,將關鍵坐標作為形狀的特征向量,表示為xi=(xi1,yi1,…,xi68,yi68),其中xik和yik,k∈1,…,68 為特征點坐標值。對標記好的特征向量使用普氏分析法實現所有訓練樣本對齊,然后使用PCA 算法進行降維,得到n 個形狀的特征向量Pn=[p1,…,pn],則形狀模型可表示為:

其中,S0是平均形狀模型,bn是形狀參數。
然后,對樣本形狀和平均形狀進行三角仿射變換實現紋理歸一化,對歸一化后的紋理結果進行PCA 降維,得到m 個紋理特征向量Tm=[t1,…,tm],則紋理模型可表示為:

其中是平均紋理模型,am為紋理參數。

其中,W(x;p)是圖像與模型T(x)的仿射變換,p是形變參數,迭代更新p使公式(3)的值最小。圖1 是圖像定位結果。
人臉表情細節主要集中于眼睛、眉毛、嘴巴等局部區域[16],經過統計和實驗選擇嘴高、嘴寬、眼高、眉毛高度之和、眉毛寬度之和、嘴巴最小外接矩形面積、眉頭和眼頭距離、眉頭距離、唇珠和嘴角高度、兩眼睛最小外接矩形面積等10 個幾何特征作為圖像提取特征。考慮到個體的差異性,本文使用幾何特征變化率Gv作為分類樣本數據,計算公式如下:

其中,G 是有表情時幾何特征,G0對應的是無表情幾何特征。

Fig.1 Face positioning圖1 人臉定位

Fig.2 Facial expression feature extraction圖2 人臉表情特征提取
樸素貝葉斯模型(NBC)來自概率論,有著堅實的數學理論基礎。貝葉斯分類算法以貝葉斯公式作為理論基礎計算每個屬性屬于某一類別的概率。樸素貝葉斯定理是基于各個屬性之間相互獨立假設的分類方法,具體如下:
(1)訓練樣本由n 維特征向量X={X1,X2,…Xn}表示,描述具有n 個屬性A 的n 維度,則有A={A1,A2,…An},表示樣本n 個屬性。
(2)已知有m 個類別,則類別集合C={c1,c2,…cm}。P(Ci)是先驗概率,當有一個未知數據樣本向量X 時,樸素貝葉斯方法計算在X 條件下后驗概率的最大類別。貝葉斯公式如下:

(3)由于P(X) 是常數,所以在計算后驗概率時只需計算P(X|Ci)P(Ci)即可。先驗概率,其中N 是訓練樣本數量,是訓練樣本中類別Ci的數量。
(4)樸素貝葉斯因為屬性間獨立性假設,所以計算P(X|Ci)公式如下:

當屬性是連續屬性時,Ai是連續值,則假設屬性服從正態分布,即,其中分別是類別Ci中的均值和標準差。
(5)對于未知樣本 X 類別,計算每個類別的P(X|Ci)P(Ci),最后概率最大的那個類別則是樣本X 的預測類別,即:

樸素貝葉斯訓練簡單,分類效果好,但也存在以下不足:①樸素貝葉斯在屬性之間的獨立性假設在實際數據中往往是不成立的;②對于連續屬性值往往使用高斯函數直接估計屬性條件密度,但和實際條件密度可能有較大差別,影響分類效果;③貝葉斯算法決策將后驗概率最大作為分類類別,主觀性太強。根據以上樸素貝葉斯模型缺點,本文將從屬性獨立性、估計概率密度函數和分類決策3個方面優化算法。
(1)根據不同屬性對分類結果的影響賦予不同權重值Wi,將樸素貝葉斯分類器擴展為加權的樸素貝葉斯分類器,根據屬性重要度分配不同權值,削弱屬性獨立性假設。
(2)在估計屬性條件密度時,使用高斯函數作為屬性條件密度函數,根據不同屬性權值直接調節高斯函數,見公式(8)[17]。其中是在類別Ci下的某一屬性數量,是類別Ci的數量。

(3)找出后驗概率最大的類別,基于KNN 算法對貝葉斯算法進行決策判斷,將加權樸素貝葉斯分類器得到的各個類別概率作為訓練樣本進行二次學習。
選擇專門用于人臉表情研究的CK+數據集和JAFFE數據集進行建模和實驗,對常見的憤怒、輕蔑、厭惡、恐懼、快樂、悲傷、驚喜7 種表情進行研究,不包括中性表情。
圖像預處理包括圖像灰度化和圖像尺寸歸一化以及人臉對齊。圖像灰度化使用加權灰度化方法。數據集中人臉會傾斜,通過普氏分析法將傾斜的人臉轉正并歸一化圖像大小,圖3 為普氏分析法處理后的效果。
在CK+和JAFFE 數據集中,將80% 的數據作為訓練數據,20% 的數據作為測試數據,步驟如下:①對人臉進行灰度化處理后提取關鍵點坐標;②利用關鍵點坐標信息提取人臉幾何特征,然后利用無表情幾何特征計算人臉表情幾何特征變化率,變化率即分類樣本數據;③利用信息增益算法計算屬性重要權值。各屬性權值如表1 所示;④利用公式(8)得到表情后驗概率,各個表情的后驗概率作為二次學習訓練樣本,利用KNN 算法實現表情最終分類。

Fig.3 Platts analysis treatment effect圖3 普氏分析法處理效果

Table 1 Attribute importance表1 屬性重要度
Kohavi[18]曾對各種常用的分類準確性估計方法進行綜合實驗與統計分析,認為基于10 折交叉有效性驗證是所有驗證方法中可靠性最高的。因此,本文分類驗證采用10折交叉有效性驗證方法。從表2 和表3 可以看出,快樂表情各評價指標均達到90% 以上,這是由于快樂表情在數據集中有較明顯的表現形式。在JAFFE 數據集上查準率、召回率、F 值以及準確率達84%、86%、85%、95%。在CK+數據集上查準率、召回率、F 值以及準確率達88%、90%、89%、98%。CK+的識別效果比JAFFE 數據好,這是由于JAFFE 訓練比CK+訓練數據量少的緣故。

Table 2 JAFFE WNBC -KNN algorithm表2 JAFFE WNBC-KNN 算法

Table 3 CK+WNBC -KNN algorithm表3 CK+WNBC-KNN 算法

Fig.4 Different average index comparison algorithm圖4 不同算法平均指標對比
圖4 是本文方法提取的特征分別在NBC、WNBC、WN?BC-KNN 數據庫中表情指標的平均值。從圖4 可以看出,在CK+數據中,WNBC 優于NBC,WNBC-KNN 優于WN?BC。JAFFE 數據集中,WNBC 和NBC 各個指標持平,在JAFFE 數據集上WNBC 效果不太明顯。但是,在JAFFE數據集上WNBC-KNN 分類效果提高30%,這是由于JAFFE 訓練比CK+訓練數據量少,改進后的算法對小數據影響會更明顯的緣故。
針對傳統的圖像特征提取具有較高維度而影響后續分類效率問題,本文使用AAM 算法定位68 個關鍵點,利用68 個關鍵點坐標提取人臉幾何特征,利用不同表情在幾何特征上的差異提取人臉幾何特征。針對樸素貝葉斯算法的不足提出WNBC-KNN 算法,利用信息增益率計算人臉幾何特征屬性權值,利用屬性權值直接調節屬性概率密度函數,最終在分類決策時利用K 近鄰進行二次學習。為進一步提升樸素貝葉斯在人臉表情分類上的性能,后續可在條件概率密度估計方面進行改進與創新。