董俊蘭,張 靈,陳云華,姜文超
(廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣州 510006)
人臉表情識別技術(shù)是生理學(xué)、模式識別和計(jì)算機(jī)視覺等領(lǐng)域一個非常熱門的課題,相關(guān)技術(shù)也越來越成熟.為了確保表情圖像信息的完整性,大多數(shù)研究都是在可控的實(shí)驗(yàn)條件下進(jìn)行.然而在實(shí)際應(yīng)用中,人臉表情識別需要克服光照、遮擋、姿態(tài)等各種隨機(jī)性問題.因此,人臉表情識別仍然是一個具有挑戰(zhàn)性的學(xué)科.
在遮擋人臉表情識別方面,研究人員提出了許多方法來減少遮擋對表情識別的影響,最常用的方法有特征重構(gòu),子區(qū)域分析、稀疏表示、深度學(xué)習(xí)等[1].Xia[2]等將RPCA和顯著性檢測聯(lián)合應(yīng)用于遮擋表情識別.首先利用顯著性檢測定位遮擋物,然后用RPCA重建出圖像的遮擋區(qū)域.Zhang等[3]結(jié)合迭代最近點(diǎn)(ICP)和模糊C-Means(FCM)算法來重建被遮擋人臉圖像中的54個基準(zhǔn)點(diǎn).這種基于面部輪廓特征恢復(fù)被遮擋區(qū)域的特征嚴(yán)重依賴可靠的面部檢測和面部特征的跟蹤,并且需要預(yù)先定位遮擋區(qū)域以及精確的面部對齊,這在實(shí)際應(yīng)用程序中很難實(shí)現(xiàn).Dapogny等[4]提出在局部遮擋條件下用來表情分類預(yù)測和AU預(yù)測的局部表達(dá)預(yù)測算法(LEPs)來減少遮擋帶來的負(fù)面影響.Lin等[5]利用人臉點(diǎn)位移的幾何特征預(yù)測口腔遮擋下的AU單元;通過高斯混合模型(GMM)對人臉區(qū)域的灰度像素分布進(jìn)行建模來實(shí)現(xiàn)遮擋區(qū)域檢測.基于子區(qū)域分析的方法都假設(shè)遮擋只出現(xiàn)在面部的一小部分,這種方法通常能夠?qū)π》秶恼趽醍a(chǎn)生滿意的性能.然而,將人臉細(xì)分為局部區(qū)域的粒度及其對性能的影響仍然是一個有待解決的問題,特別是對于沒有固定位置、形狀和大小的隨機(jī)遮擋.同時基于子區(qū)域的方法由于人臉定位、對齊和歸一化不準(zhǔn)確,對噪聲也很敏感.Ranzato等[6]提出一種深度生成模型,該模型使用帶門的馬爾可夫隨機(jī)場(MRF)作為遮擋下表情識別的第一層DBN.Cheng等[7]提出一種局部遮擋條件下的深層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu).利用Gabor濾波器從人臉圖像中提取出多尺度、多方向的Gabor量級,并將其輸入三層深玻爾茲曼機(jī)(DBM)進(jìn)行情緒分類.姚等[8]提出通過Wasserstein生成式對抗網(wǎng)絡(luò)來補(bǔ)全人臉圖像的遮擋區(qū)域,可以緩解因局部表情信息缺失帶來的影響.雖然深度學(xué)習(xí)技術(shù)可以從原始面部數(shù)據(jù)中自動學(xué)習(xí)到最具鑒別性的面部表情特征模式,通常不需要單獨(dú)的遮擋檢測或重建過程.然而,使用深度架構(gòu)需要大量的訓(xùn)練數(shù)據(jù)來確保適當(dāng)?shù)奶匦詫W(xué)習(xí)、調(diào)整大量的系統(tǒng)參數(shù)的困難以及昂貴的計(jì)算量的需要.朱明旱等[9]通過對圖像進(jìn)行分塊得到各級的遮擋基圖像,利用這些圖像構(gòu)建出非正交的遮擋字典,然后對待測圖像稀疏分解得到系數(shù),在待測圖像的子空間內(nèi)實(shí)現(xiàn)表情類別判斷.劉帥師等[10]提出一種魯棒的正則化編碼隨機(jī)遮擋表情識別.通過給表情圖像的每個像素點(diǎn)賦予不同的權(quán)重,連續(xù)迭代使權(quán)重收斂到閾值,最后,待測圖像的稀疏表示通過最優(yōu)權(quán)重矩陣計(jì)算.該方法取得了較好的識別效果,但是該方法沒有避免身份特征對表情分類的干擾.稀疏表示方法的最大優(yōu)點(diǎn)是它不僅對遮擋和損壞具有魯棒性,而且可以用來估計(jì)臉部的遮擋或損壞部分.
傳統(tǒng)的稀疏表示方法SRC和CRC將每個字典原子分隔開,獨(dú)立處理,沒有考慮各原子之間的關(guān)系,所產(chǎn)生的稀疏表示是非結(jié)構(gòu)的.同時SRC和CRC都是采用原始的訓(xùn)練數(shù)據(jù)集作為分類字典,當(dāng)訓(xùn)練樣本受損、遮擋、形變等情況下,算法缺乏穩(wěn)健性,分類效果差.在低秩算法中,一般都是用核范數(shù)代替秩函數(shù),但是核范數(shù)不一定能有效地估計(jì)矩陣的秩,且核范數(shù)對高斯噪聲比較敏感.考慮到矩陣秩函數(shù)的非凸近似在實(shí)際應(yīng)用中所展現(xiàn)出的優(yōu)勢,我們借鑒文獻(xiàn)[11]中Lγ范數(shù)引入對數(shù)函數(shù)來近似秩函數(shù).基于此,在稀疏表示理論的基礎(chǔ)上引入非凸對數(shù)函數(shù)的低秩分解,與傳統(tǒng)的低秩分解算法相比,對數(shù)函數(shù)近似秩函數(shù)能更接近矩陣的秩估計(jì),同時抗干擾能力更強(qiáng).對同一表情不同人的表情圖像進(jìn)行分解,低秩部分表征這類表情的同一性、相關(guān)性即表情特征,稀疏部分表征個體的差異性即身份特征.通過對低秩部分和稀疏部分進(jìn)行字典學(xué)習(xí),得到類內(nèi)相關(guān)字典以及差異結(jié)構(gòu)字典,使得字典規(guī)模減少,減少了字典訓(xùn)練過程的過擬合和不穩(wěn)定性問題.另外,構(gòu)建雙字典使稀疏表示自適應(yīng)性更強(qiáng),稀疏結(jié)構(gòu)更有效、緊湊,表達(dá)能力更強(qiáng).最后,引入單個矩陣來表示遮擋引起的誤差,通過雙字典和誤差矩陣協(xié)同表示測試樣本,最終根據(jù)各類別表情特征的重構(gòu)誤差來實(shí)現(xiàn)分類.
本文的主要貢獻(xiàn):
1)針對同類表情的訓(xùn)練樣本,運(yùn)用非凸對數(shù)低秩分解分離出表情特征和身份特征,可以抑制由身份信息導(dǎo)致的類內(nèi)差異來提升表情識別的準(zhǔn)確性和魯棒性.同時充分利用類別標(biāo)簽和同類表情的相關(guān)性和差異性,基于稀疏矩陣和低秩矩陣構(gòu)建字典.
2)在稀疏編碼時,定義了單個誤差矩陣來表示遮擋信息帶來的誤差,同時利用雙字典協(xié)同表示測試圖片,可以補(bǔ)全表情圖像的人臉表情特征,從而緩解因局部表情信息缺失帶來的影響.
假設(shè)n個訓(xùn)練樣本,可分為c個類別,則訓(xùn)練集D=[D1,D2,…,DC]∈Rm×n.稀疏表示算法中測試樣本y可以近似的被表示成訓(xùn)練樣本特征向量的組合:
y=D1x1+D2x2+…+Dcxc
(1)
稀疏表示問題就是在滿足式(1)的約束條件下求解系數(shù)向量x,并使x的L0范數(shù)最小.根據(jù)壓縮理論的知識可知,在式(1)足夠稀疏的情況下,L1范數(shù)的最小化和L0范數(shù)最小化具有等價性,可以通過求解式(2)的凸松弛最優(yōu)化問題求得系數(shù)x的近似解.
(2)
稀疏表示分類相比于傳統(tǒng)的SVM等分類器,更加魯棒,異常噪聲點(diǎn)對分類的干擾影響較少.
在表情識別中,不同人的同種表情之間存在著相似的特征,同時也存在著身份、光照、遮擋等差異,而這些細(xì)節(jié)因素并非決定類別的關(guān)鍵,將這些因素加入會降低稀疏表示的分類精度.為此,利用非凸對數(shù)函數(shù)低秩矩陣分解將表情圖像的表情特征和身份特征分離開,分別進(jìn)行字典學(xué)習(xí),得到類內(nèi)相關(guān)字典以及差異結(jié)構(gòu)字典的雙字典模式.通過對圖像的內(nèi)部結(jié)構(gòu)信息特征進(jìn)行分解,可以提高稀疏表示的精度同時增強(qiáng)識別的魯棒性.
給定一個訓(xùn)練樣本X=[X1,X2,…,Xc],假定其可以分解為低秩矩陣L和稀疏矩陣S.目標(biāo)函數(shù)如下所示:
(3)
式(3)中,rank(*)是秩函數(shù),為了防止過擬合,常量γ>0是用來平衡矩陣的秩與噪聲矩陣稀疏度的權(quán)重因子.
秩函數(shù)具有非凸性和不連續(xù)性,其最小化問題是一個NP問題,在特定條件下都是用核范數(shù)凸近似來替代矩陣的秩.矩陣的秩只與最大的非零奇異值的值相關(guān),而核范數(shù)只是簡單地將矩陣的所有奇異值相加,當(dāng)出現(xiàn)一些大的奇異值時,核范數(shù)過分的松馳使得最終的計(jì)算結(jié)果會偏離真正的秩.相比核范數(shù),非凸的近似函數(shù)能更準(zhǔn)確逼近矩陣真實(shí)的秩.文獻(xiàn)[12]在求解子空間聚類問題時,利用對數(shù)行列式函數(shù)對矩陣秩函數(shù)進(jìn)行非凸近似,在Yale B人臉庫的聚類分析實(shí)驗(yàn)效果優(yōu)于核范數(shù),表明利用對數(shù)行列式函數(shù)來近似矩陣的秩函數(shù)效果更好,同時還具有抗干擾能力強(qiáng),偏差較小的優(yōu)勢.
對數(shù)近似函數(shù)的定義如公式(4)所示
(4)
式(4)中I為單位矩陣,σi(x)為矩陣x的奇異值,m、n為矩陣x的維度.式中取xTx的平方根是為了便于優(yōu)化.
(5)
采用增廣拉格朗日乘子法對式(5)進(jìn)行求解.為了計(jì)算方便引入輔助變量Y,則式(5)的拉格朗日函數(shù)如下所示:
(6)
公式(6)中Y為拉格朗日乘子,初始值取0;<·>表示矩陣的歐式內(nèi)積.具體求解步驟如下所描述.
輸入:訓(xùn)練矩陣X,參數(shù):μ,γ,ε
循環(huán)迭代更新:
1)固定其他值,更新L:
(7)
2)固定其它值,更新S:
(8)
3)固定其它值,更新Y:
YK+1=YK+γμ(X-LK+1-SK+1)
(9)
4)檢查收斂條件是否滿足:
‖X-LK+1-SK+1‖F(xiàn)<ε
(10)
若不收斂則繼續(xù)循環(huán),收斂則結(jié)束.
輸出:L、S
分別對每類訓(xùn)練樣本進(jìn)行低秩分解,通過分解后得到L,S.L表示表情特征,S表示身份特征.
L=[L1,L2,…,Lc]∈Rn×mc
(11)
S=[S1,S2,…,Sc]∈Rn×mc
(12)
式中L表示表情特征矩陣,S表示身份特征矩陣,c表示表情類別數(shù).然后使用k-svd字典學(xué)習(xí)算法對L和S進(jìn)行字典學(xué)習(xí)得到能捕捉類判別特征的字典A和體現(xiàn)類內(nèi)變化的字典B,k-svd算法主要提升字典更新速度和降低復(fù)雜度.
對于任意一張表情圖片,不僅包含著表情信息、身份信息,還包含著噪聲、光照等其他信息.由于完備字典A,B是由非遮擋的人臉表情圖像構(gòu)成的,能很好地表征人臉表情,當(dāng)測試圖像有局部遮擋時會造成巨大的編碼偏差.因此,本文在稀疏編碼的時候引入統(tǒng)一判別重構(gòu)誤差約束,可以有效地減少噪聲和遮擋的干擾同時更好的保留原始數(shù)據(jù)的結(jié)構(gòu)信息.模型表示如下:

(13)
公式(13)中e表示為:
e=ea+eb+es
(14)
式(13)中x1為字典A的稀疏系數(shù)向量,x2為字典B的稀疏系數(shù)向量,字典A表示表情特征的字典,B表示身份特征的字典,式(14)中ea表示重建表情特征的誤差,eb表示重建身份特征的誤差,es表示遮擋帶來的誤差.
利用非精確拉格朗日來解決式(14)優(yōu)化問題,優(yōu)化函數(shù)如下所示:

(15)
式(15)中Φ是拉格朗日乘法的一個向量,ξ是懲罰項(xiàng)參數(shù),具體求解方法如算法1所示.
算法1.非精確ALM求解公式(15)

初始化:x1=0,x2=0,e=0,Φ=0,ξ=1,ε=10-6,ρ=1.5
While 沒有收斂 do
1.固定其它值,更新e
2.固定其它值,更新x1
3.固定其它值,更新x2
4.更新Φ
Φ=Φ+ξ(y-Ax1-Bx2-e)
5.更新ξ
ξ=min(ρξ,ξmax)
6.判斷是否滿足收斂條件:
end
輸出:x1,x2,e
通過算法1可以得到測試表情圖像的系數(shù)和噪聲信息,通過重構(gòu)出測試圖片的身份部分和遮擋部分的信息.去掉與表情無關(guān)的部分,減少數(shù)據(jù)的冗余部分.
dy=y-Bx2-e
(16)
式(16)中dy表示測試圖片干凈的表情特征,Bx2表示重構(gòu)出的身份信息,e表示噪聲信息同時也包含遮擋帶來的誤差信息.
為了判別測試樣本的類別,結(jié)合表情字典A來重構(gòu)測試樣本的表情信息,哪類字典能更好的重構(gòu)測試樣本,便將測試樣本歸為相應(yīng)的類別.具體如式(17)所示:

(17)
圖1是本文的算法框架圖,訓(xùn)練集總共6組數(shù)據(jù)(快樂、悲傷、厭惡、驚訝、害怕和恐懼),圖中展示了其中兩組數(shù)據(jù)的分解.
抽象的人臉表情圖像傳達(dá)了豐富的信息,這些信息可以被認(rèn)為是與某些屬性相關(guān)的低復(fù)雜度的信息疊加組成.我們針對人臉表情圖像進(jìn)行了不同方式下的低秩分解,得到了不同的實(shí)驗(yàn)結(jié)果.具體效果圖如圖2所示.

圖1 本文算法框架圖Fig.1 Algorithm frame diagram

圖2 不同方式下的低秩分解示意圖Fig.2 Schematic diagram of low rank decomposition in different modes
圖2中(a)、(b)、(c)表示了不同方式下低秩分解的效果圖,每副子圖的第一行圖像為原圖,第二行為低秩部分,第三行為稀疏部分.根據(jù)低秩分解理論,低秩部分為特征矩陣的相關(guān)性,稀疏部分表示差異性,因此同一類向量化的人臉圖像具有一定的低秩結(jié)構(gòu).圖2(a)圖為同一個人不同表情的低秩分解,那么低秩部分表征身份特征,稀疏部分即表情特征.圖2(b)圖為不同人的同種表情的低秩分解,低秩部分即為表情特征,相應(yīng)的稀疏部分即為身份特征.圖2(c)圖中不同人不同表情的低秩部分即為人臉五官共通的部分,稀疏部分為人臉圖像的個性特征.
同人不同表情分解后低秩部分用來實(shí)現(xiàn)人臉識別[13],表情特征實(shí)現(xiàn)表情識別.低秩分解去除稀疏部分進(jìn)行人臉識別可以減少表情對人臉識別的影響,提高識別精度.由于低秩分解時,稀疏部分的信息量非常少,所以單一利用分解后的表情特征來進(jìn)行表情識別會導(dǎo)致最終的識別率非常低.因此本文將不同人的同一表情進(jìn)行分解,通過對兩部分進(jìn)行字典訓(xùn)練和學(xué)習(xí),可以提高稀疏表示的精確性.由于每個人都是獨(dú)一無二的,因此,圖2(c)圖提取的低秩圖像中信息非常少,圖像質(zhì)量低,不利于用來識別.

圖3 不同低秩分解的峰值信噪比曲線圖Fig.3 Peak signal to noise ratio curve of different low rank decomposition
圖3展示了三種方式的低秩分解的峰值信噪比曲線.從圖3可以看出同人不同表情以及同表情不同人的值保持在35dB左右,而不同人不同表情的值在30dB左右,而圖片的峰值信噪比低于30dB是非常模糊的,不利于分類.
為了驗(yàn)證本文方法對遮擋表情識別的有效性,選取了CK+和KDEF兩個數(shù)據(jù)庫進(jìn)行了相關(guān)的實(shí)驗(yàn),通過對CK+和KDEF兩個表情數(shù)據(jù)庫不同位置添加不同大小的黑塊來進(jìn)行遮擋模擬.面部遮擋具有隨機(jī)性,遮擋的大小和區(qū)域都會給最終的實(shí)驗(yàn)結(jié)果帶來一定的影響.主要模擬了對眼部,嘴巴,鼻子三個顯著性區(qū)域的遮擋.部分遮擋圖像如圖4所示,圖4(a)(b)依次為原圖、遮左眼,遮右眼,遮雙眼,遮嘴巴,遮鼻子的示意圖,遮擋大小為30×30個像素.

圖4 部分遮擋模擬樣本Fig.4 Partial occlusion simulation sample
CK+數(shù)據(jù)庫是由210個對象的6種表情圖像序列構(gòu)成,每個表情序列都是從平靜的狀態(tài)開始,情緒逐漸增強(qiáng),最后達(dá)到最夸張的狀態(tài).選取生氣、厭惡、害怕、高興、悲傷、驚訝這6種表情組成數(shù)據(jù)集,針對每種表情在數(shù)據(jù)庫中隨機(jī)挑選30個不同對象視頻序列的最后一張組成訓(xùn)練集,共180幅圖片,然后選取50個對象的6種表情組成測試集,共300張.KDEF數(shù)據(jù)集包含70個人,35個男性,35個女性,每種表情有5個角度,本文選取的實(shí)驗(yàn)數(shù)據(jù)為正臉圖像.在KDEF數(shù)據(jù)庫中,正臉圖像隨機(jī)選取30個不同對象的6種表情圖像作為訓(xùn)練集,剩下的40個對象的6種表情圖像作為測試集.由于CK+數(shù)據(jù)庫中的表情圖像稍有頭部傾斜和尺寸大小不一的情緒,預(yù)處理方法類似文獻(xiàn)[14],通過旋轉(zhuǎn)使眼睛水平面對準(zhǔn),并根據(jù)兩眼間的距離來從原始的表情圖像裁剪出只含正面人臉表情的矩形區(qū)域,將頭發(fā),脖子這些冗余信息都去除掉.本文所有的實(shí)驗(yàn)均是在訓(xùn)練集圖像沒有遮擋,測試圖像有遮擋的情況下進(jìn)行.
實(shí)驗(yàn)環(huán)境為Windows 10系統(tǒng)運(yùn)行環(huán)境(CPU:I5-7500U,2.5GHz,運(yùn)行內(nèi)存8GB)和MATLAB 2015b平臺.
主要從嘴部遮擋、眼睛遮擋、鼻子遮擋,雙眼遮擋4個方面來研究,針對這四種遮擋進(jìn)行了10×10、20×20、30×30、40×40四種不同大小的處理.通過對不同區(qū)域不同大小的遮擋來進(jìn)行實(shí)驗(yàn),可以檢測出不同區(qū)域?qū)Ρ砬樽R別有不同的影響.圖5和圖6分別表示的是本文提出的方法在CK+和KDEF數(shù)據(jù)庫上對應(yīng)不同部位不同遮擋級別的平均識別率.
從圖5圖6可以看出,隨著遮擋面積的增大,干擾因素越來越復(fù)雜,兩個數(shù)據(jù)庫的識別率出現(xiàn)了微弱的下滑.當(dāng)遮擋級別為10×10時,兩個數(shù)據(jù)庫遮擋不同部位的識別率都達(dá)到了90%,這是因?yàn)檎趽跫墑e小,丟失的信息少.當(dāng)遮擋級別為40×40像素時,兩個數(shù)據(jù)集的識別都有所下降,說明丟失的決策信息增加,最終會影響最后的識別率.綜合圖5和圖6的實(shí)驗(yàn)結(jié)果看,本文提出的算法受遮擋的影響相對較小,仍能取得較好實(shí)驗(yàn)結(jié)果.

圖5 CK+數(shù)據(jù)庫識別率Fig.5 CK+database recognition rate

圖6 KDEF數(shù)據(jù)庫識別率Fig.6 KDEF database recognition rate

圖7 隨機(jī)遮擋圖片示意圖Fig.7 Random occlusion picture diagram
另一方面,可以觀察到不同的遮擋部位對識別也有顯著的影響.相同的遮擋面積不同的區(qū)域?qū)ψ詈蟮淖R別也會產(chǎn)生不同的影響,其中嘴部和雙眼遮擋的識別率最低.針對高興、驚訝、悲傷這3類表情,嘴巴和眼睛是這幾種表情的顯著性區(qū)域,高興的時候,嘴巴會露出牙齒同時眼角會上揚(yáng).驚訝時,嘴巴和眼睛會張成o狀.悲傷時,嘴巴會緊閉,所以嘴部和雙眼遮擋相較其他部位的遮擋識別率有所降低.
為了驗(yàn)證聯(lián)合雙字典和誤差協(xié)同表示分類方法的有效性,與幾種經(jīng)典的稀疏表示分類方法在隨機(jī)遮擋的表情數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)如圖7所示.從表1可知,人臉表情圖像隨機(jī)遮擋大小的增大會導(dǎo)致最終識別率的降低;通過實(shí)驗(yàn)結(jié)果可以看出,在多個數(shù)據(jù)庫不同的遮擋大小的條件下,本文算法都獲得了較高的的識別率.與KDEF數(shù)據(jù)集相比,CK+數(shù)據(jù)集對遮擋的魯棒性較強(qiáng).
表1 不同算法的識別率比較
Table 1 Recognition rate of different algorithm

CK+庫KDEF庫遮擋大小方法SRCGSRC[15]CRC文獻(xiàn)[16]本文SRCGSRC[15]CRC文獻(xiàn)[16]本文10×1090.00%91.33%91.67%92.33%93.34%89.52%89.90%90.24%90.71%91.42%20×2089.33%89.67%90.33%91.67%92.67%88.33%89.04%90.00%89.52%90.48%30×3088.67%89.00%89.33%90.00%91.33%87.62%88.80%88.33%88.57%89.76%40×4087.67%88.33%88.67%89.67%89.67%86.90%87.86%88.09%87.14%88.80%60×6083.30%86.67%85.67%87.33%87.76%85.00%85.24%86.67%85.48%86.90%
本文提出一種非凸低秩分解下聯(lián)合雙字典和誤差的遮擋表情識別方法.該方法使用非凸對數(shù)近似秩函數(shù)的低秩分解將人臉圖像的身份特征和表情特征分離開,然后進(jìn)行字典學(xué)習(xí)得到雙字典;通過雙字典來重構(gòu)出測試圖像的身份特征和表情特征,同時引入了統(tǒng)一編碼誤差來表示噪聲信息,使得在識別時可以減少因局部遮擋帶來的影響,最終根據(jù)各類別表情特征在聯(lián)合稀疏表示中的貢獻(xiàn)量來實(shí)現(xiàn)分類.在CK+和KDEF的實(shí)驗(yàn)數(shù)據(jù)表明本文算法在一定程度上可以克服個體差異帶來的負(fù)面影響.不僅提高了稀疏表示的魯棒性,對人臉不同區(qū)域、不同程度遮擋的表情識別也具有較強(qiáng)的魯棒性.下一步研究工作將針對多姿態(tài)的表情圖像進(jìn)行處理和識別.