山笑珂,張炳林
(1.鄭州工程技術學院 文化遺產學院,河南 鄭州 450044;2.河南大學 教育科學學院,河南 開封 475004)
人臉表情識別[1,2]一般可分為基于模板的方法和基于特征的方法。基于模板的方法通常適用于正面人臉表情識別,可靠性較低?;谔卣鞯姆椒P注外觀和幾何特征,如:定向梯度直方圖(histogram of oriented gradient,HOG)[4]、Gabor小波變換[5]和尺度不變特性變換(scale invariant feature transform,SIFT)[6]。HOG難以處理遮擋問題,對人臉方向變化和噪點敏感,因此,本文僅考慮Gabor小波變換和SIFT對人臉特征進行提取。然而,直接提取到的特征維度較大,用于分類網絡效果很差,必須通過降維技術對其進行降維。常見的降維技術可分為線性類和非線性類。線性類降維技術有主成分分析(principal component analysis,PCA)[7]和線性判別分析(linear discriminant analysis,LDA)[8]。非線性降維技術有核主成分分析(kernel principal component analysis,KPCA)[9]、局部線性嵌入(locally linear embedding,LLE)[10]、等距特征映射(isometric mapping,Isomap)[11]和T分布隨機鄰嵌入(t-distributed stochastic neighbor embedding,t-SNE)[12]。
針對人臉表情識別問題,已有大量學者對其進行研究。文獻[13]利用圖像顏色信息和通道之間的關聯性,結合卷積神經網絡(convolutional neural networks,CNN)對人臉表情識別。文獻[14]提出一種雙路特征融合模型,將CNN和HOG方法結合對人臉表情識別。文獻[15]提出基于差分CNN兩階段框架的人臉表情識別方法,第一階段利用二元CNN從表情序列中自動提取出中性表情幀和完全表情幀,第二階段利用差分CNN對表情分類。CNN類算法屬于監(jiān)督類算法,雖然精度較高,但是所需樣本必須是標記后的。實際生活中大多數可用數據都是未標記的,這在人臉表情識別領域尤其明顯,因此,半監(jiān)督方式較為合適。為此,文獻[16]提出基于Wasserstein生成式對抗網絡(Wasserstei generative adversarial networks,WGAN)的表情識別方法,該方法通過抑制類內變異來提高表情識別的準確性和魯棒性。文獻[17]提出基于圖形信號處理(graph signal processing,GSP)技術的表情識別方法,該方法利用譜圖小波變換提取信息,使用不同類型濾波器組,找到最佳的識別率性能。基于WGAN和基于GSP的方法具有無監(jiān)督學習能力,訓練測試速度快,但其精度較低。文獻[18]利用誤差逆向傳播(back propagation,BP)算法對半監(jiān)督深度信念網絡(deep belief network,DBN)進行微調,精度較高,但BP算法在鄰近迭代中搜索正交方向時,存在極值點陷入局部極小和收斂時間過長的問題。
基于上述分析,半監(jiān)督類學習對人臉表情識別具有較好的性能,其中半監(jiān)督DBN精度高,優(yōu)勢明顯。但是半監(jiān)督DBN存在極值點陷入局部極小和收斂時間過長的問題。為了解決該問題,半監(jiān)督DBN在本文中被繼續(xù)研究,主要從兩方面入手:一方面提取表情特征后對其進行降維,以此降低半監(jiān)督DBN網絡的學習復雜度;另一方面利用共軛梯度算法(conjugage gradient algorithm,CG)對BP算法處理過程進行加速,解決半監(jiān)督DBN存在的問題。所提方法創(chuàng)新點總結如下:
(1)提出了多特征處理人臉表情的方式,考慮嘴部與眼部的Gabor小波特征和尺度不變特性變換特征;
(2)提出了人臉表情識別中半監(jiān)督DBN的改進方式,利用共軛梯度算法對BP算法處理過程加速,解決其在識別過程中存在極值點陷入局部極小和收斂時間過長的問題。
本文人臉表情識別的流程為:樣本采集、特征提取、降維、改進DBN訓練學習得到人臉表情識別網絡。所用樣本集是開放數據庫的標準人臉表情。通常,表情變化時,眼部和嘴部存在明顯的特征變化。因此,本文重點考慮眼部和嘴部的特征?;诓煌砬樘卣?,從面部數據中提取眼部和嘴部特征,利用Gabor小波變換和SIFT提取眼部和嘴部特征。
為了獲得最合適的提取方法,對4種特征進行了評估,即:嘴部Gabor小波特征、眼部Gabor小波特征、嘴部SIFT特征和眼部SIFT特征。為了加速DBN訓練,對特征向量降維,并將這些降維簡化的特征作為改進DBN輸入,以計算改進DBN對不同人臉表情的識別率。
1.1.1 人臉表情Gabor小波特征
Gabor小波能夠描述人類視覺細胞的刺激響應,高效地提取人臉表情的局部空間和頻域信息。其對光線敏感程度較低,對人臉圖像邊緣敏感,具有良好的方向和尺度選擇特性,能夠承受一定的圖像旋轉和形變。小波變換核心是卷積,即Gabor濾波器函數和圖像信號的卷積。
二維Gabor函數g(x,y) 本質是復正弦調制后的高斯函數。Gabor函數定義為
(1)
式中:ω為正弦頻率,σx,σy是標準差。
Gabor函數經過尺度變換和旋轉生成Gabor小波
gmn(x,y)=a-mg(x′,y′)
(2)
式中:x′和y′表示尺度,具體為x′=a-m(xcosθ+ysinθ) 和y′=a-m(-xsinθ+ycosθ),m∈{0,…,M-1}。θ表示方向,θ=nπ/N,n∈{0,…,N-1}。 其余變量定義為
(3)
(4)
(5)
小波變換是Gabor濾波器函數與原始圖像I的卷積,為
(6)
上式中,Uh和Ul分別為設計頻段的上界和下界。
1.1.2 人臉表情SIFT特征
人眼幾乎能夠在任何尺度下識別出物體,而計算機難以直接識別不同尺度下的物體圖像。SIFT是一種特征提取方法,它解決了目標在圖像旋轉、縮放、平移、光照、遮擋、雜物場景等因素下的影響。SIFT主要步驟為尺度空間的極值檢測、特征點定位、特征方向賦值和特征點描述。
SIFT在構建尺度空間時,采用高斯核函數進行濾波。尺度空間表示為
L(x,y,σ)=G(x,y,σ)*I(x,y)
(7)
式中:I(x,y) 為原始圖像,σ是空間尺度因子,控制尺度的大小,尺度越大越凸顯人臉圖像全局特征,越小越凸顯人臉細節(jié)特征。高斯函數G表示為
(8)
式中:xm,xn表示高斯模糊的維度,決定于σ值。xm,xn是人臉表情照片像素的位置。
高斯拉普拉斯算子(Laplace of Gaussian,LoG)在檢測圖像特征點時,準確性較高,但運算量過大。采用差分高斯(difference of Gaussian,DoG)近似計算LoG為
D(x,y,σ)=[G(x,y,kσ)-G(x,y,σ)]*I(x,y)=L(x,y,kσ)-L(x,y,σ)
(9)
DoG可以實現空間極值的檢測,查找特征點,具體如下。尺度空間二次泰勒展開式為
(10)
(11)
將最小值和主曲率作為閾值,剔除圖像中平滑區(qū)域內不穩(wěn)定的邊緣點和對比度小的特征點。
在尺度不變的情況下,對剩下所有特征點選取一個窗口,求解窗口內特征點梯度向量的幅值mg(x,y) 和方向θg
(12)
(13)
利用表情梯度直方圖確定特征點局部的穩(wěn)定方向。通過特征點位置、尺度和方向確定SIFT的特征區(qū)域。特征描述可通過校正旋轉方向,生成描述子和特征向量歸一化實現。
1.2.1 主成分分析降維
主成分分析(PCA)是一種廣泛使用的方法,其目的是保證在信息盡可能不丟失情況下,對特征降維,所以它的輸出維數線性近似小于輸入維數。PCA中輸入數據向投影面進行投影,使得每個主成分的方差最大,核心步驟是特征去中心化和求解協方差矩陣。對于第i張人臉表情圖片的像素信息xi,N張人臉表情圖像樣本的均值為
(14)
(15)
協方差矩陣的一個特征向量對應一個投影面,特征向量對應的特征值是原始特征投影后的方差值。PCA降維最終所需結果是最大特征值對應的特征向量。
雖然PCA在計算上要求不高,但它不能模擬高維數據中的非線性變量。KPCA可以模擬非線性變量[11],該方法使用不同的內核將輸入投影到非線性特征空間。KPCA最常用的內核是高斯核、多項式核和雙曲正切核。然而,隨著數據點數的增加,KPCA內核矩陣呈現二次增長,矩陣的特征值分解在計算上將變得困難。
1.2.2 線性判別分析降維
另一種有監(jiān)督線性降維算法是LDA,其可等價為計算系數w的線性優(yōu)化問題,目標是使投影后的類間方差與類內方差比最大,即類間方差最大,類內方差最小。目標函數為
(16)
式中:SB是人臉表情類間方差,SW是人臉表情類內方差,上標T代表轉置。
數據集D={(x1,y1),(x2,y2),…,(xm,ym)}, 其中xi為n維向量,yi∈{C1,C2,…,Ck} 是類Ci集合里的一類。人臉表情類間方差和人臉表情類內方差為
(17)
(18)
式中:Nj是人臉表情第j類樣本的個數。μj為人臉表情第j類樣本的均值,Xj為人臉表情第j類樣本的集合,x為n維樣本數據。
LDA也是一種運用很廣的降維方法,但它也有其局限性。出于分類的目的,當數據分布是非高斯分布時,LDA將不能保留數據的復雜結構。
玻爾茲曼機(restricted Boltzmann machines,RBM)可見層和隱藏層的層間和層內均有連接,不利于計算。可見層和隱藏層只存在層間無向加權全連接的玻爾茲曼機稱為RBM,其結構如圖1所示。圖1中,觀察值用可見層單元表示稱為顯元,用于接受輸入。隱藏層單元稱為隱元,用于提取特征,故又稱為特征檢測器。
圖1 受限玻爾茲曼機結構
傳統DBN是由多層RBM組成的網絡,其訓練過程包括一個預處理階段和微調階段。每個RBM都是以無監(jiān)督方式預訓練,一層的輸出是下一層的輸入。
RBM兩層聯合分布相關的能量函數為
(19)
式中:bi是可見層閾值,aj是隱藏層閾值,V和H分別是可見層和隱藏層的單元數量,wij是可見單元i和隱藏單元j之間的權重,vi和hj是單元的二進制狀態(tài),v和h是包含它們的列向量??梢妼訂卧猦和隱藏層單元v的聯合概率為
(20)
式中:Z是歸一化因子,具體為
(21)
可見層單元v的邊緣分布為
(22)
隱藏層單元h的邊緣分布為
(23)
可見層單元v狀態(tài)給定時,隱元狀態(tài)為1的后驗概率為
(24)
隱藏層單元h狀態(tài)給定時,顯元狀態(tài)為1的后驗概率為
(25)
兩種后驗概率都滿足sigmoid激活函數σ。采用對比散度的學習算法訓練網絡。對比散度的學習規(guī)則為
W′=W+ε[p(h=1|v)vT-p(h′=1|v′)v′T]
(26)
b′=b+ε(v-v′)
(27)
a′=a+ε[p(h=1|v)-p(h′=1|v′)]
(28)
式中:ε是學習效率??梢妼觱重構后用v′表示,隱藏層h重構后用h′表示。b和a是閾值的矢量形式,W是所有權值wij的矩陣表達式。b′和a′是經過學習調整后的閾值矢量形式,W′是權值經過學習調整后的矩陣形式。
DBN可由L層RBM(參數為W(l)、a(l)和b(l)(1≤l≤L)) 堆疊構成。這種網絡可逐層訓練,因為每一層節(jié)點在給定前或后一層參數的情況下彼此條件獨立。
為貫徹落實習近平總書記對廣東提出“四個走在全國前列”要求,加快建立現代財政制度,建立全面規(guī)范透明、標準科學、約束有力的預算制度,全面實施績效管理,打造“大財政、大預算”格局,提升財政資源配置效率,提升經濟社會高質量發(fā)展保障能力,2018年5月,廣東省印發(fā)實施了《關于深化省級預算編制執(zhí)行監(jiān)督管理改革的意見》,提出十二條改革措施,推動預算編制執(zhí)行監(jiān)督管理改革“兩轉變、兩精簡、兩提高”,即通過轉變財政財政管理重心,轉變部門權責配置;精簡財政資金項目審批事項,精簡預算執(zhí)行流程;提高部門、市縣推動改革發(fā)展的積極性,提高資金使用效益,為廣東實現“四個走在全國前列”目標提供堅實的財政保障。
傳統典型DBN是一個無監(jiān)督學習網絡,無需標記樣本,但效率較低。而BP算法是有監(jiān)督學習網絡,效率較高但需要標記樣本。結合BP算法和DBN優(yōu)勢,即用標記樣本數據和BP算法對DBN進行微調,可以實現對DBN的改進。但是BP算法在鄰近迭代中搜索正交方向,容易在極值點陷入局部極小,且收斂時間過長。采用共軛梯度算法(CG)對這個過程進行加速,實現對DBN的改進。
CG核心是將共軛和最速下降法結合,用已知點的梯度構造共軛方向,然后進行搜索,找到目標函數的最小點。CG的訓練過程可簡化為均方誤差(mean square error,MSE)函數最小值的求解過程。均方誤差MSE定義為
MSE=E[(μd-μ)T(μd-μ)]
(29)
式中:E表示期望,μd是DBN的理想輸出,即訓練人臉表情樣本的真實類別。μ是DBN的實際輸出,即預測的表情樣本類別。此處,CG目標是找到DBN最優(yōu)的權值和閾值。
在預處理階段,即被CG調整前,計算輸出誤差。在DBN和CG結合階段,DBN的權值矩陣調整方式為
γk+1=γk+αkβk
(30)
式中:β是搜索方向,α是搜索步長,下標k和k+1分別代表迭代的前后。步長采用線性搜索技術搜索,即在γk和βk已知的情況下,沿搜索方向求解MSE(γk+αkβk) 為最小值時對應的αk。 搜索方向初值設為β0, 具體計算為
(31)
式中: -g0是最速下降方向初值。每次的迭代方向指向上次迭代方向和上次最速下降方向,有
dk+1=-gk+δkdk
(32)
前后兩次的迭代搜索方向必須滿足共軛條件,即βk和βk+1滿足共軛條件。δk是CG的更新參數。δk影響著CG的具體種類,本文采用Fletcher-Reeves算法有
(33)
改進的5層DBN結構如圖2所示。本文將人臉表情分為7類,因此分類器需要4個比特位,則輸出層的節(jié)點數是4。提取的特征有4種,因此輸入層有兩個節(jié)點。中間其余層分別有3、3和4個節(jié)點,激活函數均為sigmoid函數。輸出節(jié)點使用softmax函數激活進行標準化。該網絡首先使用對比散度算法以無監(jiān)督的方式進行訓練;然后,輸出層利用softmax函數激活來使用帶有標記數據的BP算法和CG。
圖2 改進的深度信念網絡的結構
擴展Cohn-Kanade數據庫(CK+)[19]和Radboud人臉數據庫(radboud face datebase,RaFD)[20]都經常被用來測試面部表情識別方法,本文將這兩種數據庫作為訓練樣本。CK+是基于實驗室環(huán)境獲取的,而RaFD數據庫包含不同姿勢和注視方向的人臉表情。
實驗所用CK+數據庫由137名志愿者人臉表情視頻幀構成,有中性、憤怒、厭惡、恐懼、開心、悲傷和驚喜7類人臉表情。本文在實驗中,CK+數據庫每一類表情選取200幅圖像,共使用了1400幅表情圖像,圖像分辨率為720×576像素。本文實驗所用RaFD數據庫由67名志愿者8種不同表情的圖像組成。本文將不考慮RaFD中蔑視表情情況,剩余7種人臉表情和CK+數據庫類型一致,各表情分別取200幅圖像,共使用了1400幅表情圖像。同時剩余7種表情僅考慮了120°、90°和60°這3個拍攝角度的樣本,各表情正面人臉圖像選取80幅分辨率為125×160像素,其它姿態(tài)分別選取60幅圖像分辨率為284×284像素。兩個數據集上,各表情選取150幅圖像作為訓練樣本集,剩余圖像作為測試樣本集。RaFD數據庫中正面人臉圖像選取70幅圖像,其它姿態(tài)選取40幅作為訓練樣本集。兩個數據集上的面部表情圖像示例如圖3所示。
圖3 兩個數據集上的面部表情圖像示例
識別準確率和識別速度是人臉表情識別的重要評價指標。識別準確率是所測試樣本集中正確識別表情樣本數和所測試集樣本總數的比值,可以表示為
(34)
式中:A是識別準確率,g是指示函數,xb是測試的樣本,f(xb) 是網絡的輸出值,yb是樣本的標準類別,p表示測試樣本集內總的樣本數,==是邏輯判斷是否相等。
表情識別速度是單個測試樣本所花費的平均時間??梢员硎緸?/p>
(35)
式中:T表示測試樣本集花費的總時間。
表1是各種降維算法下改進DBN網絡人臉表情的識別率對比結果。使用降維方法將嘴部Gabor小波特征、眼部Gabor小波特征、嘴部SIFT特征和眼部SIFT特征投影到低維空間。表1中二維和五維是執(zhí)行降維后的維數。
表1 不同降維方法下改進DBN對CK+數據庫的識別率
當本文方法與降維方法PCA、KPCA、LLE、Isomap和t-SNE聯合對人臉表情識別時,二維和五維識別率是相似的。PCA和KPCA均采用高斯核函數,PCA貢獻率取98%。采用LDA降維方法和改進DBN時,與五維相比,二維識別率顯著提高,且降維后的嘴部SIFT特征識別率為99.31%,性能表現出良好,嘴部Gabor小波變換識別率也達89.68%。
此外,基于PCA降維比KPCA降維識別率高,PCA集中了原始特征的大部分信息。LLE、Isomap和t-SNE的嘴部SIFT特征相比于其它特征具有較高準確率,眼部SIFT與眼部Gabor小波準確率相近。綜合SIFT和Gabor小波變換的準確率,SIFT優(yōu)于Gabor小波變換。降維后的嘴部特征比眼部特征更有效地分類人臉表情。
圖4是CK+數據庫人臉表情眼部SIFT、嘴部SIFT、眼部Gabor小波和嘴部Gabor小波特征的混淆矩陣測試。圖4中主對角線元素數值代表了人臉表情識別的準確率,非主對線元素數值代表了不同人臉表情的混淆率,同一表情的準確率與混淆率之和等于1。圖4中使用的是LDA降維后的人臉表情特征,改進DBN使用的是65%標記人臉表情樣本數據和35%未標記人臉表情樣本數據。
圖4 改進的DBN對CK+數據庫識別的混淆矩陣
從圖4(a)中可知,眼部SIFT特征的情況下,悲傷、厭惡和中性的表情是無法被準確分類的。從圖4(b)可知,在嘴部SIFT特征的情況下,改進DBN具有較高的準確度,只在恐懼時出現2%的混淆。從圖4(c)可知,眼部Gabor小波變換特征僅在驚喜和厭惡的人臉表情出現混淆,而圖4(d)中的嘴部Gabor小波變換特征在所有情況下都有良好的準確度。
對比圖4(c)和圖4(d)可知,嘴部Gabor小波變換特征的整體識別率高于眼部SIFT特征和Gabor小波變換特征。在4個特征中,嘴部SIFT特征具有最低混淆特征,具體為98%的恐懼、99%的開心和100%的其余人臉表情識別率。綜上,降維后的嘴部特征更適合人臉表情識別的應用。
圖5是改進DBN在降維前后人臉表情識別性能比較,圖中前排圓柱代表的是降維前識別率,后排長方體代表的是降維后識別率。通過圖5可知降維后,對于眼部SIFT特征,測試準確率從36.84%提高至67.32%;對于嘴部SIFT特征,測試準確率從71.47%提高至99.87%;對于眼部Gabor小波特征測試準確率從48.93%提高至84.65%;對于嘴部Gabor小波特征從67.35%提高至92.31%。
圖5 降維前后改進DBN的人臉表情識別率
降維后的人臉表情識別率比降維前顯著提高,嘴部SIFT特征處,改進DBN的識別效果最好。線性判別分析將嘴部SIFT特征的維數從6048維降低到2維。與高維數據相比,低維數據能夠更有助于人臉表情的識別。
圖6比較了改進DBN和支持向量機(support vector machine,SVM)[21]的人臉表情測試誤差,為了更直觀比較不同方法的性能,圖中采用了人臉表情嘴部SIFT特征。SVM采用徑向基函數,最佳懲罰系數為135。圖6中SVM方法和本文方法曲線分別在測試誤差0.8和0附近震蕩。SVM曲線遠遠高于本文方法,則SVM的測試誤差遠大于本文方法,故本文方法表情識別率更高。從圖6中可知,采用65%標記數據和35%未標記數據時,本文方法每個特征向量表現出最低的測試誤差。
圖6 不同標記數據百分比下改進的DBN和SVM對于嘴部SIFT特征的人臉表情測試誤差
此外,即使使用了全部的標記數據,SVM人臉表情識別誤差也非常大。因此,與傳統SVM相比,本文方法能夠以較小代價獲得較好的性能。表2是不同方法識別人臉表情精度對比情況,表中除了本文方法外,SVM、CNN[14]、基于WGAN的方法[16]和基于GSP的方法[17]均作為對比方法。CNN中卷積核的大小為5×5,卷積核數量為32,采用最大值池化算法Maxpool,SoftmaxLoss損失函數。
表2 不同方法識別人臉表情精度對比
本文方法能夠獲得與CNN相當的精度,且只需用65%標記數據來訓練網絡,而卷積類方法是監(jiān)督類方法,訓練樣本需要全部標記。此外,卷積類方法訓練時間更長和內存消耗更大。本文方法訓練和測試時間是160.4 s,而卷積類方法需要大約17 832 s。與SVM、基于WGAN的方法和基于GSP的方法相比,本文方法對人臉識別的精度更高。綜合對比可知,本文方法對人臉表情識別具有精度高、時間成本低和內存消耗小的優(yōu)點。
表3是輸入特征向量不同維度的運行時間,表中訓練運行時間為單次周期,考慮了人臉眼部和嘴部不同的特征集,同時也考慮了不同維度下的訓練和測試運行時間。如眼部SIFT特征每個樣本數據的維數從8642維降到5維再降到2維來訓練所提改進DBN。由表3可知,降維后的訓練時間和測試更短。如眼部SIFT特征在維度為8642維時訓練時間和測試時間分別為1.632 s和0.265 s,在5維時訓練時間和測試時間分別為0.0463 s和0.0219 s。
表3 輸入不同維度特征向量運行時間
表3中數據所用降維技術是LDA,因為LDA在準確性方面表現良好,所以它能夠捕捉到人臉表情識別所需的重要特征。降維技術節(jié)省了計算時間和內存使用,運行時間的顯著減少也表明了其降維相關性。
針對人臉表情識別過程中,BP算法對DBN微調時容易陷入極值點局部極小和收斂時間過長的問題,提出一種改進DBN方法,使用共軛梯度算法對原DBN中BP神經網絡處理標記人臉表情圖像的過程進行加速,從而解決極值點局部極小和收斂時間過長的問題。本文首先利用不同的特征提取方法對眼部和嘴部特征進行提取,然后用不同方法降維。最后本文對改進DBN進行了實驗驗證。驗證結果如下:
(1)與高維數據相比,降維后的人臉表情特征被識別率更高,訓練測試時間更短。LDA的降維效果比KPCA、LLE、Isomap和t-SNE的降維效果更好;
(2)嘴部特征比眼部特征更適合人臉表情識別的應用,其中嘴部SIFT特征效果最好;
(3)與SVM、基于WGAN的方法和基于GSP的方法相比,本文方法準確率更高。與卷積類方法相比,本文方法訓練時間更短和內存消耗更小。
雖然本文方法識別人臉表情準確率或效率相對于其它方法已有較大的提升,但并沒有真正實現和人類一樣的人臉表情識別能力,后期針對這一問題還需要進一步研究。