譚論正,丁 銳,夏利民
1(中山職業技術學院,廣東 中山 528400) 2(中山火炬職業技術學院,廣東 中山 528436) 3(中南大學 信息科學與工程學院,長沙 410075)E-mail:tanlunzheng@126.com
人臉表情識別是計算機視覺的重要科研課題,對于推動自然和諧的人機交互以及智能監控等方面具有十分重要的意義[1].人臉表情識別采用機器和軟件對人臉表情信息進行采集及分類,使計算機能夠根據人的表情信息,推斷人的心理狀態.
目前大多數表情識別技術主要專注于識別7種經典表情即:中性,高興,驚訝,恐懼,憤怒,悲傷和厭惡[2].傳統的人臉表情識別方法都是采用手工設計的方法進行圖像特征提取.例如通過提取Gabor[3]特征或局部二值特征(LBP)[4]結合活動外觀模型(AAM)[5]進行面部動作編碼[6]跟蹤特征運動,使用支持向量機(SVM)[7]、最近鄰算法[8]、PLAS[9]等統計方法進行表情分類.
傳統的表情識別方法存在以下缺陷:
1)特征選取需要人為手工操作,耗費大量時間且摻雜人為因素,難以滿足實際需求;
2)特征維度高,識別算法訓練時間長,效率低;
3)傳統的統計識別方法,需大量的標注特征樣本來訓練概率模型,但在實際中很難得到足夠多的手工標注的表情特征的樣本.因此,傳統表情識別算法的識別率不高.
近年來深度學習[10,11]作為一種新的機器學習方法,通過卷積神經網絡[12](CNN)自動學習圖像特征,把低層特征組合起來形成具有良好表示的高層特征,在圖像識別相關的任務中取得了很大成功.
針對傳統表情識別方法識別率低、實時性差的問題,本文提出了一種基于歸一化正交投影的卷積神經網絡的人臉表情識別方法.研究CNN對圖像素材的要求,本文對圖像進行光照預處理、姿態歸一化、尺度歸一化處理;為增加訓練圖像的數量進行數據增益;為提高機器訓練速度,提出歸一化正交投影方法對圖像進行降維,同時保留全局幾何以及局部鄰域關系;將預處理后的人臉圖像輸入到卷積神經網絡,在海量人臉表情數據庫上訓練卷積神經網絡并進行監督微調.最后在人臉表情數據庫中對提出的方法與已有的方法進行了對比實驗.
由于現實環境中低照明度、不均勻照明、低分辨率、遮擋、非正面頭部姿勢、以及運動模糊等都會給人臉表情識別帶來很大困難.因此,先對人臉圖像進行預處理,盡量降低這些不利因素的影響.
采用形態學的頂帽和底帽操作進行光照處理,減少光照不均對人臉識別的影響.令f代表灰度圖,B代表結構化單元,形態學中的膨脹和腐蝕通過開操作和閉操作,定義如式(1)(2)所示:
f⊕B=maxi,j(f(x-u),y-v)+B(v,u)
(1)
f?B=mini,j(f(x+u),y+v)-B(v,u)
(2)
f(x,y)通過B(u,v)進行開和閉運算:
f°B=(f?B)⊕B
(3)
f·B=(f⊕B)?B
(4)
開操作和閉操作增強了有利于表情識別的低頻成分,突出了感興趣的區域,如眼睛、鼻子和嘴.在此基礎上,采用TT代表Top-hat,BT代表Bottom-hat,TT變換和BT變換如式(5)(6)所示:
TT(x,y)=f(x,y)-f°B(x,y)
(5)
BT(x,y)=f·B(x,y)-f(x,y)
(6)
Top-hat變換適于提取基于暗背景的明亮對象;而Bottom-hat變換則適于提取基于亮背景的暗對象.
通過使用變換操作符,不僅減少了光照和噪聲的影響,而且將圖像的隱含特征塊聚集在一起.增強了圖像對比度,用結構化像素和圖像細節代替所選的像素,利于將面部特征與背景分割開來.
使用OpenCV的Viola&Jones人臉檢測器檢測所有面部的正面和輪廓[13],然后采用Intraface[14]庫檢測49個面部點.由Intraface提供的對齊模型的擬合度用于判斷是否假性人臉:任何擬合度低于0.3的區域都被認為是非人臉面部,系統將其丟棄.接著計算眼睛的4個點(兩眼的眼角)的水平及垂直位置的平均值得到兩眼的中心,連接兩眼中心得到眼睛中線,通過計算眼睛中線與水平直線的夾角,進行圖像旋轉達到人臉角度校正.
由于卷積神經網絡對尺度的敏感性,我們預處理還需進行人臉圖像的尺度歸一化.根據人眼距離(e2e:眼睛到眼睛的距離)的比例來定義面部圖像邊框的邊界:側邊界為 0.62×e2e,上邊界為0.9×e2e,下邊界為1.34×e2e,產生一個近似方形的邊界框,為面部方框的邊界,然后將截取的人臉圖像進行歸一化調整,將人臉圖像調整為48×48像素.
為了增加表情圖像的數量,采用離線和在線兩種不同的數據增強的方式來處理訓生成圖像.
離線數據增強的第一種形式包括采取隨機擾動和變換(平移,翻轉,縮放,旋轉)提取隨機的42×42像素圖像塊.數據增強的第二種形式包括改變訓練圖像的RGB通道的強度,噪聲添加,以及在眼睛之間添加2維高斯隨機分布的噪聲.
在線數據增強,在圖像經過歸一化正交投影后進入卷積神經網絡進行預測時,對測試數據進行圖像剪切,水平翻轉等操作生成多張類似的測試圖,然后每張測試出圖預測出的輸出做均值.
采用歸一化正交鄰域保持投影法(ONPP)降低圖像的維數,聚類相同類別的特征數據,提高卷積神經網絡對海量數據的訓練和識別速度.ONPP通過正交基和標準化投影矩陣顯示數據映射,投影矩陣將新數據點嵌入到低維子空間中,保留了局部鄰域關系以及全局幾何關系.
步驟1.采用基于歐幾里德距離的K近鄰來選擇鄰域,X=[x1,x2,…,xN],Nxi代表xi的K近鄰集合.

(7)
(8)
其中Gi是數據點xi的k*k維Gram矩陣.
步驟3.尋找投影矩陣VNPP,NPP的目標是找到一個投影矩陣V∈Rmn×d,將數據X從mn維子空間映射到d維空間Y中.NPP的成本函數計算如下:
(9)
argmintr[VTX(I-W)T(I-W)XTV]=
argmintr[VTXMXTV]
(10)
使用規范化約束去除投影空間中的任意縮放因子.
YYT=VTXXTV=I
(11)
M=(I-W)T(I-W)
(12)
ONPP優化問題的拉格朗日方程,可用正交約束表示:
L(V)=tr[VTXMXTV]-λ(VTXXTV-Id)
(13)
為了求解最優投影矩陣V,對式(13)求微分:

(14)
XMXTV=λXXTV
(15)
步驟4.求投影矩陣VONPP,減少維數,通過最小化較低維空間中的重建誤差的平方和,式(11)中矩陣V使得高維度xi可以在較低維度yi上重建:
VTV=Id
(16)
用正交約束求解子空間的正交基,投影矩陣V的ONPP優化問題的拉格朗日方程:
L(V)=tr[VTXMXTV]-λ(VTV-Id)
(17)
對上式求微分得到:
XMXTV=λV
(18)
ONPP算法:
輸入:X=[x1,x2,…,xN]
輸出:投影矩陣V
Y=[y1,y2,…,yN]
1.尋找每個數據點的最小鄰域
2.采用式(8)計算W
3.計算M=(I-W)T(I-W)
4.計算V1:XMXTV1=λ1XXTV1
5.fork=2 tod
V(k-1)=[V1,V2,…,Vk-1]
(19)
U(k-1)=[V(k-1)]T[XXT]-1[V(k-1)]
(20)
A=[XXT]-1[V(k-1)][U(k-1)]-1[V(k-1)]T
(21)
迭代至{I-A}[XXT]-1[XMXT]Vk=λkVk
步驟5.X通過矩陣V投影到d維空間Y.

圖1 圖像預處理效果Fig.1 Effect of image preprocessing
如圖1所示,人臉圖像經過以上5種預處理后的效果.
基本網絡模型:包括3個卷積層、3個降采樣層、2個全連接層.為提高網絡的訓練速度,我們將所有權重層的激活函數(最后一層除外)取為ReLU激活函數,最后一層是多路softmax分類器.
輸入圖像為42*42像素的人臉圖,第一卷積層用5*5的卷積核并輸出32張42*42像素的圖像,步幅為1個像素,邊界填充pad為2個像素.第二層為下采樣層,將第一卷積層的輸出作為輸入,采用最大池化下采樣因子3*3的內核對其進行過濾,步伐為2,輸出為32個21*21像素圖像.第三層為卷積層內核大小為3*3,步伐為1,邊界填充為1,輸出為32個20*20像素圖像.第四層為下采樣層,采用最大池化下采樣因子3*3的內核,步伐為2,輸出為32個10*10像素圖像.第五為卷積層:內核大小為5*5,步伐為1,邊界填充為2,輸出64張10*10像素圖像.第六層為下采樣層,采用最大池化下采樣因子3*3的內核,步伐為2,輸出為64個5*5像素圖像.全連接層1有2048個神經元.全連接層2有1024個神經元,最后的完全連接層的輸出被饋送到7路softmax分類器,其產生7個類別標簽上的分布,然后根據式:
Y*→X=argYmaxp(Y|X)
(22)
即得到待識別的人臉表情分類.其中,在訓練網絡時首先隨機初始化網絡參數,然后通過反向傳播算法(BP)優化網絡,得到最優的參數.本文采用帶權重衰減的自適應梯度下降(Adam W)進行參數訓練.假設隨機從訓練集中提取i個樣本數據{x1,x2,…,xi},yi為xi對應的標簽,首先計算平均梯度:
(23)
其中ft(·)表示卷積網絡,θ表示網絡參數,權重衰減系數ω.梯度的一階矩估計和二階矩估計:
mt=β1·mt-1+(1-β1)·gt
(24)
(25)
再計算網絡參數的更新量:
(26)
為了使網絡具有更高的泛化能力,在網絡訓練完成后,將其在其它數據集上進行微調,本文采用hinge loss函數對CNN的全連接層進行微調優化:
(27)


圖2 深度卷積神經網絡架構Fig.2 Architecture of our CNN
為驗證文中算法有效性,我們收集了多個表情數據庫分別是:CAS-PEAL[15]人臉數據庫(包含 1040名中國人共 99450幅人臉圖像,并包含姿態、表情、飾物和光照4種主要變化條件),FER-2013[16](包括7種表情共35886張人臉表情圖片),JAFFEE數據庫,Cohn-Kanade Dataset[17](包括CK和CK+,含有近500人,7種表情),AR數據庫(包含126人在各種表情、遮擋及光照下4000張人臉圖像),LFW[18]數據庫(5749人,13000余張圖像),ORL-faces數據庫(包含40人在不同表情、人臉姿勢和遮擋下的4000張圖像),CelebA[19]中有10177個人,共202,599幅圖像.圖3是部分數據庫的表情圖像樣例.

圖3 部分數據庫的表情圖像樣例Fig.3 Some images of partial expression database
由于收集的人臉數據庫中有部分數據庫沒有對表情圖像進行分類,我們對這些數據庫進行整理及表情標注,再通過線下數據增益得到百萬級數量的人臉表情數據庫,達到卷積神經網絡的訓練要求.

在4個常用表情數據庫中進行識別實驗,測試歸一化正交鄰域保持投影法的維度.首先圖像大小調整為48×48像素,為避免因隨機選擇訓練集而產生偏差,進行了20次迭代,圖4為不同數據庫中具有不同維數(d)的識別精度,衡量準確率與運算復雜度,最后本文選擇的ONPP運算維數為d=70.
為了驗證本文提出方法的有效性,分別對有無ONPP算法預處理、數據增益、網絡微調三個實驗,并與直接采用網絡分類進行對比實驗,實驗結果見圖5.當直接利用網絡在原始數據集上進行分類,其準確率為75.5%,無ONPP算法預處理、數據增益、網絡微調三個實驗的準確度分別為85.3%、86.2%和88.5%.采用歸一化正交鄰域保持投影法(ONPP)能降低圖像的維數,聚類相同類別的特征數據,使神經網絡能在特征上直接提取,減少非主要特征的干擾,提高識別準確度.通過數據增益使得卷積神經網絡對海量數據進行訓練,提取更多的表情特征.在其它數據集上進行網絡結構的微調,使網絡具有更高的泛化能力.

圖4 表情識別準確度與OPNN尺寸數量關系圖Fig.4 Recognition accuracy with varying number of dimensions
經ONPP算法預處理、數據增益和訓練微調后,進行表情識別的正確識別率到達了92.6%,表1為本文方法在海量表情數據庫進行7種表情識別的平均混淆矩陣.可以看出本文的算法區分“悲傷”“恐懼”表情準確率低,然而即使對于人類來說,判斷某些細微情緒有時也很困難,這意味著我們的CNN模型區分這種類似的微表情(悲傷和恐懼)方面需要尋找更具表達性的特征及分類方法,同時目前的數據庫中這兩類圖像數量相當較少,后期工作需要采集并標注更多這些種類的表情圖像,以提高機器此類表情的識別率.

圖5 不同設置下的識別率Fig.5 Recognition accuracy with different methods

表1 文中方法的混淆矩陣Table 1 Confusion matrix of our method
圖6為本文算法與目前流行算法及經典算法的對比實驗結果,訓練微調后進行表情識別的正確識別率到達了92.6%,相比其他的方法有所提高.文獻[12]采用Caffe框架進行分類,該方法沒有進行圖像預處理,在FER數據庫進行模型訓練,數據量不夠大,實驗結果在“開心”與“驚訝”2種不同類別的樣本分類最優.文獻[20]采用多任務級聯的卷積神經網絡對比實驗表明該方法對樣本預處理不夠完善,卷積神經網絡收斂慢訓練時間長,識別率較低.文獻[21]采用SIFT方法提取特征,再將特征向量組成的特征矩陣輸入到神經網絡中,但該提取會丟失一部分的表情特征,造成識別率不高.文獻[22]采用神經網絡與圖像預處理的方法對表情進行識別,但其采用的訓練數據集較少,沒有在其它數據集上對網絡進行微調,泛化能力較差.

圖6 不同方法的識別結果Fig.6 Recognition results of different methods
最后,我們對本文方法的計算復雜度在Cohn-Kanade Dataset數據庫上進行測試,5種方法分別在數據庫中計算平均時間.由圖7可以看出,文獻[20]的分類時間最長,因為該方法中采用三個網絡級聯的方式,該方法花費的時間較多.文獻[21]在提取SIFT點特征時需要消耗一些時間.文獻[22]與本文方法相似,首先都對圖像進行預處理,再將處理后的圖片傳送到網絡中進行分類,并且網絡結構相比文獻[20]較為簡單,所以花費的時間基本一致.文獻[12]由于分類前未對圖片進行預處理,所以花費的時間較小.所以本文方法在檢測時間上優于大部分的方法.圖8為不同方法訓練時的損失曲線文獻[12]由于網絡簡單和圖片未預處理,所以訓練時收斂速度快,但損失比較大.文獻[20]網絡復雜所以在訓練時收斂速度較慢.文獻[21,22]和本文網絡結構相似,所以在收斂速度上相似.

圖7 不同方法的計算復雜度Fig.7 Computational complexity ofdifferent methods

圖8 不同方法訓練時的損失曲線Fig.8 Loss curves of different methods
本文提出了一種基于歸一化正交鄰域保持投影法的卷積神經網絡的人臉表情識別方法.由于CNN對圖像素材的要求,對圖像進行一系列的預處理:光照預處理、姿態歸一化、尺度歸一化等.為了降低特征維數,提高機器識別準確率,提出歸一化正交鄰域保持投影方法,在大幅降低維數,同時保留了局部鄰域關系以及全局幾何關系;然后對歸一化正交鄰域保持投影的圖像進行在線增益輸入到卷積神經網絡,并在海量人臉表情數據庫上訓練并監督微調卷積神經網絡以提高分類速度和準確率.最后在表情數據庫上對本文提出的方法與已有的方法進行了對比實驗,結果表明該方法具有較強的穩定性.