黃麗雯,楊歡歡,王 勃
重慶理工大學(xué) 電氣與電子工程學(xué)院,重慶 400054
人臉表情識(shí)別是對(duì)人臉的表情信息進(jìn)行特征提取和分析,按照人的認(rèn)識(shí)和思維方式加以歸類和理解,利用人類所具有的情感信息方面的先驗(yàn)知識(shí)使計(jì)算機(jī)進(jìn)行聯(lián)想、思考及推理,進(jìn)而從人臉信息中去分析、理解人的情緒的技術(shù)[1]。人臉?biāo)从车囊曈X信息是人類情感表達(dá)和交流最直接最重要的載體,表情作為形體語言,是最自然表現(xiàn)情感的形式,在人際交往中,可以通過對(duì)方面部表情的變化,精確地揣測(cè)出其所處的情感狀態(tài),及時(shí)給予恰當(dāng)?shù)幕貞?yīng),因此表情識(shí)別的研究,不僅是實(shí)現(xiàn)使計(jì)算機(jī)理解并表達(dá)人類的情感,且是人工智能、計(jì)算機(jī)圖形學(xué)、心理學(xué)、計(jì)算機(jī)視覺、人機(jī)交互、生理學(xué)等多個(gè)學(xué)科領(lǐng)域研究的基礎(chǔ),已逐漸成為當(dāng)前學(xué)者們研究的熱點(diǎn)。
表情識(shí)別的流程大同小異,一般包括人臉檢測(cè)、預(yù)處理、特征提取、特征融合、分類識(shí)別這5個(gè)步驟,其中特征提取是表情識(shí)別的核心所在,目前常用的算法有:基于Gabor小波變換[1]、尺度不變特征變換(SIFT)[2-3]、梯度直方圖變換(HOG)[4-5]、局部二值模式變換(LBP)[6]、融合全局與局部特征[7]、多特征融合[8-10],其中Gabor小波變換提取的是多尺度多方向的特征信息,整個(gè)過程比較耗時(shí),不適合實(shí)時(shí)應(yīng)用;SIFT算法雖對(duì)尺度縮放、圖像旋轉(zhuǎn)甚至仿射變換保持不變性,但其過程復(fù)雜且運(yùn)算速度比較慢;HOG特征雖能有效地檢測(cè)圖像的邊緣信息,但它卻忽略了局部特征之間的空間排列信息;而LBP由于其具有灰度不變性,旋轉(zhuǎn)不變性,且具有強(qiáng)大的抗干擾性和紋理判別能力,另外計(jì)算簡單,對(duì)光照有一定的抑制作用,故近年來已被廣泛應(yīng)用于紋理分類、圖像檢索和人臉圖像分析等領(lǐng)域,并且在模式識(shí)別領(lǐng)域越來越受歡迎[11]。
傳統(tǒng)LBP算子雖有諸多的優(yōu)點(diǎn),但也存在缺點(diǎn):對(duì)噪聲、灰度變化比較敏感,只是通過比較中心像素與鄰域像素的差值獲取特征,這樣會(huì)丟失部分信息,識(shí)別效果不理想。為此Tong等人提出了方向性的局部二值模式(DLBP)[12],分別從水平、垂直和對(duì)角3個(gè)方向?qū)︵徲蛳袼剡M(jìn)行灰度值比較和二值編碼,這樣不僅可以提取到比較全面的特征信息,也降低了噪聲的干擾,但它并沒考慮到局部器官對(duì)表情識(shí)別的影響,針對(duì)這一不足,本文提出了異或-非對(duì)稱方向性局部二值模式(XOR-ARDLBP)表情識(shí)別算法,首先,對(duì)人臉表情圖像進(jìn)行預(yù)處理。通過人臉檢測(cè)算法確定出人臉的位置,分割出人臉及表情關(guān)鍵區(qū)域(眉、眼、嘴),后進(jìn)行尺寸歸一化操作,再對(duì)其進(jìn)行去噪處理,消除噪聲的影響;其次,把預(yù)處理后的圖像經(jīng)XOR-AR-DLBP特征提取算法獲取整張表情圖像和局部(眉、眼、嘴)表情圖像的直方圖信息;然后用信息熵來計(jì)算局部表情圖像的貢獻(xiàn)度,獲得權(quán)值分配,對(duì)其進(jìn)行加權(quán)并與整張圖像特征信息融合;最后用SVM分類器進(jìn)行分類識(shí)別。由于此算法在預(yù)處理階段對(duì)噪聲進(jìn)行了處理,并較好地融合了整體和局部特征,結(jié)果表明此算法不僅實(shí)時(shí)性好且識(shí)別效果也比較理想。
為了更好地提取整體與局部特征,預(yù)處理是一個(gè)非常必要的過程,它直接影響最終識(shí)別效果的好壞。針對(duì)光照變化嚴(yán)重影響人臉圖像識(shí)別的問題,本文在預(yù)處理階段進(jìn)行了光照補(bǔ)償[13]。這里圖像尺寸大小統(tǒng)一為64×64,又由于眉、眼、唇對(duì)表情識(shí)別的貢獻(xiàn)比較大[14],故分割出來作為局部特征,眉毛和眼睛、嘴巴尺寸大小分別為64×12,64×30,其預(yù)處理過程如圖1所示。
圖1 預(yù)處理過程
局部二值模式(LBP)是一種能有效提取圖像局部紋理特征的描述子,它通過比較鄰近像素gi與中心像素gc的灰度值大小關(guān)系來進(jìn)行編碼。原始LBP算子規(guī)定圖像中每個(gè)像素是以其為中心,值為閾值,3×3大小的窗口范圍內(nèi),計(jì)算鄰域像素與中心像素的二值關(guān)系,若gi>gc,則為1,反之為0。從左上角開始順時(shí)針依次計(jì)算出相鄰的8個(gè)二進(jìn)制數(shù),得到LBP編碼,再把它們換算成十進(jìn)制數(shù),得到LBP值。其LBP編碼示意圖如圖2所示。
圖2 LBP編碼示意圖
上面原始LBP特征的計(jì)算過程只是針對(duì)中心像素與鄰域像素進(jìn)行了比較,并沒考慮到鄰域像素之間的灰度關(guān)系,因此就不能對(duì)非局部信息進(jìn)行提取。針對(duì)這個(gè)問題,Tong等人[12]提出了基于方向性的局部二值模式(DLBP),分別從水平、垂直、對(duì)角3個(gè)方向上計(jì)算局部像素之間的關(guān)系,既簡單有效,又能準(zhǔn)確地表達(dá)圖像中各個(gè)表情區(qū)域的變化情況,這里窗口范圍設(shè)為3×3,其DLBP編碼示意圖如圖3所示。
圖3 DLBP編碼示意圖
可見,對(duì)相同的像素灰度分布,采用不同的編碼算子所得的結(jié)果也是不同的。
若用數(shù)學(xué)公式表達(dá)DLBP,其算式如下:
式中的s函數(shù)為:
式中的g0~g7為圖4中3×3大小鄰域?qū)?yīng)像素的灰度值,其示意圖如圖4所示。
圖4 DLBP 3×3大小鄰域模板的灰度值示意圖
以JAFFE數(shù)據(jù)庫中的任一表情圖像為例,分別用LBP編碼和DLBP編碼的結(jié)果如圖5所示。
圖5 LBP與DLBP編碼圖像
從圖5可知,由于DLBP考慮到了鄰域像素之間的強(qiáng)度關(guān)系,故編碼處理后的圖像面部肌肉的褶皺形變以及眼睛、嘴巴等關(guān)鍵部位的變化情況相比LBP要清晰得多,這就更有利于最終表情的識(shí)別。
3.2.1 非對(duì)稱方向性局部二值模式(AR-DLBP)
DLBP編碼雖考慮到了鄰域像素間的強(qiáng)度關(guān)系,可以很好地提取圖像的紋理特征,但所提算法的模板大小都是3×3的,并不能在高尺度下獲取有效的紋理特征,為此Naika等人[15]提出非對(duì)稱局部二值模式(AR-LBP),解決了原始LBP算子不能用于高尺度紋理分析的問題。Cheng等人[16]提出非對(duì)稱局部梯度編碼(ARLGC),解決了LGC不能在大尺度下提取圖像紋理特征的不足,并融合了不同尺度不同梯度鄰域間的強(qiáng)度關(guān)系。本文在文獻(xiàn)[15-16]的啟發(fā)下提出了非對(duì)稱方向性局部二值模式(AR-DLBP)。3×3大小,Ri表示每個(gè)子鄰域,其結(jié)果表示如圖6所示。
這9個(gè)子鄰域中,有4個(gè)大小為 a×b:R0,R2,R4,R6,2個(gè)大小為 b×1:R1,R5,2個(gè)大小為 a×1:R3,R7,其中一個(gè)中心大小為1×1,為 Rc。
圖6 AR-DLBP的3×3鄰域灰度值示意圖
這里用每個(gè)子鄰域內(nèi)所有像素值的和除以該鄰域內(nèi)所含像素的個(gè)數(shù),所得的結(jié)果作為該鄰域的像素值,記為:gRi,數(shù)學(xué)表達(dá)式為:
其中,Ni為第i個(gè)子鄰域所含像素的總個(gè)數(shù),Pij為第i個(gè)子鄰域第j個(gè)像素的值。處理后的示意圖如圖7所示。
圖7 處理后的AR-DLBP 3×3鄰域灰度值示意圖
編碼公式如下,這里的s同式(2):
AR-DLBP算法的模板大小不再是3×3固定不變的,并且可以在高尺度下獲取有效的紋理特征,由上面的編碼過程可知所得的結(jié)果依舊是一個(gè)8位的二進(jìn)制數(shù),并沒隨鄰域大小的變化而變化,故所得特征值的維數(shù)是不變的。
3.2.2 異或-非對(duì)稱方向性局部二值模式(XOR-ARDLBP)
雖然改進(jìn)后的AR-DLBP可以在高尺度下獲取有效的紋理特征,但由文獻(xiàn)[16]可知,這也帶來了一定的缺點(diǎn),借鑒文獻(xiàn)[16]的方法給予改進(jìn),即用數(shù)字電路中的異或運(yùn)算來解決各個(gè)子鄰域值由求取均值得到而造成紋理特征平滑化的不足,以及鄰域大小可變后局部子鄰域內(nèi)的變化情況常被忽略的問題。改進(jìn)后算法的基本思想為:對(duì)于像素點(diǎn)a,采用3×3和5×5兩個(gè)不同大小鄰域的AR-DLBP算子處理,獲得兩個(gè)不同的8位二進(jìn)制數(shù)序列,對(duì)其進(jìn)行異或運(yùn)算,得到最終的一個(gè)8位二進(jìn)制數(shù),再轉(zhuǎn)換成十進(jìn)制數(shù),就得到了像素點(diǎn)a的紋理特征值。
用數(shù)學(xué)公式可表示為:
Ai、Bi為A和B兩個(gè)序列的第i位,其編碼示意圖如圖8所示。
圖8 XOR-AR-DLBP編碼示意圖
根據(jù)香農(nóng)定理,若離散隨機(jī)變量X(x1,x2,…,xn)發(fā)生的概率為 p(x1),p(x2),…,p(xn),則這些變量的信息熵可表示為:
同理,表情圖像 f(x,y)的信息熵可表示為:
式中 pi為表情圖像第i個(gè)灰度級(jí)發(fā)生的概率,n為灰度級(jí)的總數(shù)。
由于信息熵能夠表述表情相應(yīng)區(qū)域信息量的多少,而信息量多少可反映局部區(qū)域貢獻(xiàn)度的強(qiáng)弱,為此本文用文獻(xiàn)[17]已改進(jìn)的信息熵方法來求眉毛、眼睛、嘴巴這3個(gè)局部區(qū)域的信息熵,進(jìn)而得到它們的貢獻(xiàn)度。
若定義每個(gè)像素的信息熵為:
ws為可滑動(dòng)窗口的范圍大小,F(xiàn)(i,j)ws為以(i,j)為中心,ws范圍內(nèi)的子區(qū)域,E∈[ ]0,1。
由于每個(gè)像素的信息熵與周圍其他像素的分布是有關(guān)的,為此眉、眼、嘴這3個(gè)局部區(qū)域的貢獻(xiàn)度CMb、CMe、CMm就可通過該區(qū)域的平均信息熵來表示:
面部表情識(shí)別是一個(gè)非常復(fù)雜的過程,僅僅利用單個(gè)特征已不能達(dá)到所期望的數(shù)值,為此本文提出特征加權(quán)融合的方法來提高表情的識(shí)別率,其大致步驟為:預(yù)處理后,對(duì)整張人臉圖像和眉、眼、嘴關(guān)鍵區(qū)域進(jìn)行XOR-AR-DLBP特征變換,獲取局部紋理直方圖特征;由信息熵計(jì)算出眉、眼、嘴這3個(gè)局部區(qū)域的貢獻(xiàn)度CMb、CMe、CMm,并對(duì)其直方圖特征進(jìn)行加權(quán)和級(jí)聯(lián);最后與整張人臉圖像的直方圖特征串聯(lián),構(gòu)成所需的融合特征直方圖,送入SVM分類器訓(xùn)練識(shí)別。其整個(gè)識(shí)別過程的流程如圖9所示。
實(shí)驗(yàn)環(huán)境:Windows 10,MATLAB R2010b,vs2012。數(shù)據(jù)庫:JAFFE和Cohn-Kanade。參數(shù)選擇:圖像尺寸大小統(tǒng)一為64×64,分割出的眉毛和眼睛的尺寸大小為64×12,嘴巴部分尺寸大小為64×30;XOR-AR-DLBP的兩鄰域大小采用3×3和5×5;在求表情局部區(qū)域貢獻(xiàn)度時(shí),滑動(dòng)窗口ws大小取3,5,7等奇數(shù),由識(shí)別率及執(zhí)行時(shí)間可知ws取值較小時(shí),局部圖像的紋理特征能更好地表現(xiàn)[18];SVM分類器選用多項(xiàng)式核函數(shù),次數(shù)d=4。
5.1.1 JAFFE庫實(shí)驗(yàn)
JAFFE數(shù)據(jù)庫來自10位日本女性在悲傷、高興、驚訝、恐懼、生氣、厭惡、中性這七類情況下自發(fā)產(chǎn)生的表情圖像,共213幅。實(shí)驗(yàn)中隨機(jī)選取每人每類表情2幅作為訓(xùn)練樣本,共140幅,在余下的圖像中再隨機(jī)選取每人每類表情1幅作為測(cè)試樣本,共70幅,循環(huán)實(shí)驗(yàn)3次,實(shí)驗(yàn)結(jié)果見表1所示,其中a為整張圖像,b為關(guān)鍵區(qū)域級(jí)聯(lián),c為a、b的融合。
圖9 整個(gè)表情識(shí)別的算法流程
表1 JAFFE庫中(a、b、c)3種情況的實(shí)驗(yàn)結(jié)果
表2 Cohn-Kanade庫中(a、b、c)3種情況的實(shí)驗(yàn)結(jié)果
由表1 JAEEE庫的實(shí)驗(yàn)結(jié)果知,本文算法c的平均識(shí)別率達(dá)95.71%,比加權(quán)局部關(guān)鍵區(qū)域b高6%,比直接對(duì)整張圖像實(shí)驗(yàn)a高15%左右,可見所提算法能取得很好的識(shí)別效果。其中誤判比較多的是把恐懼誤判為厭惡、悲傷,由于這3者之間的變化比較細(xì)微,容易誤判。
5.1.2 Cohn-Kanade庫實(shí)驗(yàn)
Cohn-Kanade數(shù)據(jù)庫的表情圖像都來自一個(gè)視頻序列,一個(gè)表情的變化可以通過一個(gè)序列前后圖像的細(xì)微變化體現(xiàn)出來,共210個(gè)18~30歲的近2 000張表情圖像視頻序列,六類表情為:悲傷、高興、驚訝、恐懼、生氣、厭惡。實(shí)驗(yàn)中隨機(jī)選取20個(gè)人每類表情1~2幅,共200幅,在余下的圖像中再隨機(jī)選取每類表情1~2幅,共200幅,循環(huán)實(shí)驗(yàn)3次,實(shí)驗(yàn)結(jié)果見表2所示,其中a為整張圖像,b為關(guān)鍵區(qū)域級(jí)聯(lián),c為a、b的融合。
由表2 Cohn-Kanade庫的實(shí)驗(yàn)結(jié)果知,本文算法c的平均識(shí)別率達(dá)97.99%,比加權(quán)局部關(guān)鍵區(qū)域b高7%,比直接對(duì)整張圖像實(shí)驗(yàn)a高17%左右,但都比JAFFE庫上的識(shí)別效果要好,主要是由于CK庫中的每類表情圖像都來源于一系列的視頻序列,表情特征更容易表達(dá)和提取,故識(shí)別效果更好。其中誤判比較多的是把厭惡誤判為悲傷,這2者之間的變化屬于微表情,容易誤判。
5.2.1 不同算法識(shí)別率比較
為了驗(yàn)證本文所提算法的有效性,在上面實(shí)驗(yàn)的基礎(chǔ)上對(duì)不同算法做對(duì)比實(shí)驗(yàn),其中a、b為本文算法融合前的情況,c為融合后的情況。與幾種常用表情識(shí)別算法在JAFFE庫和CK庫上的平均識(shí)別率比較結(jié)果見表3所示。
表3 不同算法平均識(shí)別率比較 %
5.2.2 不同算法平均識(shí)別時(shí)間比較
在JAFFE庫和CK庫上,各隨機(jī)挑選10幅表情圖像,用不同算法進(jìn)行識(shí)別實(shí)驗(yàn),其中a、b為本文算法融合前的情況,c為融合后的情況。平均識(shí)別時(shí)間結(jié)果見表4所示。
由表3和表4的實(shí)驗(yàn)結(jié)果可知:本文算法c無論是在識(shí)別率還是識(shí)別時(shí)間上都比常用算法的效果要好。如DLBP算法[12]和XOR-AR-LGC算法[16],都是對(duì)整幅人臉圖像進(jìn)行直方圖分塊提取特征再級(jí)聯(lián)各子塊直方圖分類,故平均識(shí)別時(shí)間要比本文a、b、c情況慢許多;在平均識(shí)別率方面,本文算法融合前的a、b情況雖沒文獻(xiàn)[12,16]的高,但都在80%~90%左右,還是可接受的,且融合后的c情況在常用幾種算法中效果相對(duì)是最好的。另外本文算法c在識(shí)別率上雖與HCBP、AAM、XOR-AR-LGC、精確局部特征描述相近,但識(shí)別時(shí)間都比它們要短。由此表明,本文所提算法較傳統(tǒng)算法既可取得較高的識(shí)別率,又可保持比較理想的實(shí)時(shí)性。
表4 不同算法平均識(shí)別時(shí)間比較ms
本文提出了非對(duì)稱方向性局部二值模式表情識(shí)別算法,用XOR-AR-DLBP獲取整張表情圖像和局部(眉、眼、嘴)表情圖像在不同尺度不同方向的特征信息,通過信息熵計(jì)算局部表情圖像的貢獻(xiàn)度,獲得權(quán)值分配,并與整張圖像加權(quán)融合,最后輸入SVM分類器用于識(shí)別。與傳統(tǒng)表情識(shí)別算法相比,本文算法不僅在識(shí)別率上還是在識(shí)別時(shí)間上都表現(xiàn)出了一定的優(yōu)越性:
(1)本文算法在預(yù)處理階段,對(duì)表情圖像進(jìn)行了光照補(bǔ)償處理,不僅減少了光照、噪聲對(duì)后續(xù)識(shí)別的影響,也增強(qiáng)了圖像的細(xì)節(jié)信息。
(2)XOR-AR-DLBP算法獲取整張表情圖像和局部(眉、眼、嘴)表情圖像不同尺度不同方向的特征信息,不僅考慮到了中心像素與鄰域像素的關(guān)系,也考慮到了鄰域像素間的強(qiáng)度關(guān)系,特征維數(shù)不變,且對(duì)識(shí)別具有更好的鑒別能力。
(3)對(duì)局部表情圖像通過信息熵計(jì)算貢獻(xiàn)度,獲得各子塊直方圖的權(quán)值分配,再與整幅圖像融合,即不同尺度不同方向上局部特征與整體特征的融合,這大大地提高了特征的描述和鑒別能力。在與傳統(tǒng)算法相比時(shí),本文算法不僅在識(shí)別率還是識(shí)別時(shí)間上效果都是最好的。