馬 杰,蔡軼珩,盛 楠
(北京工業(yè)大學 信息學部,北京 100124)
三維人臉表情識別是現(xiàn)在計算機視覺領域研究的熱點問題,在人機交互,醫(yī)療保健,公共安全等領域都有著重要的應用.現(xiàn)有的三維人臉表情識別算法主要包括特征提取和特征分類兩個主要部分.常用的特征提取算法有PCA[1],LDA,活動外觀模型(Active Appearance Model,AAM)[2],Gabor小波變換[3],局部二元模式(Local Binary Pattern,LBP)[4]等.其中,基于AAM的方法雖然能可靠地提取人臉表情特征,但具有計算復雜、初始參數(shù)難以確定等缺點;基于Gabor小波變換的方法為了提取多尺度和方向信息,使用了多個濾波通道對人臉圖像進行卷積運算,非常耗時間和耗內(nèi)存,實時性不高,而且提取的Gabor特征向量的維數(shù)很大,存在大量的冗余,不利于后續(xù)的分類識別;基于LBP的特征提取方法以其計算簡單、提取特征速度快、所需存儲空間小、對光照變化和單調(diào)灰度變化具有很好的魯棒性、能有效地描述圖像的局部紋理信息等優(yōu)點,被廣泛使用.常用的分類識別方法有支持向量機(Support Vector Machine,SVM)[5,6]、人工神經(jīng)網(wǎng)絡[7]以及基于稀疏表示的分類(Sparse Representation based Classification,SRC)[8]等.
本文基于中心化二值模式算子(CBP特征)和稀疏表示的三維人臉表情識別算法框架,提出對原始圖像采用先分塊后分別提取特征的方法,以克服全局CBP特征對表情分類表達不夠的缺點,最后利用稀疏表示實現(xiàn)三維人臉表情識別.為了驗證本文方法的識別性能,實驗分析了分塊提取CBP特征和稀疏表示的分類效果,分別比較了本文特征與LBP算子、CBP算子,以及稀疏表示與SVM的分類性能.
本文方法分為面部多尺度分塊,局部CBP特征提取和稀疏表示分類三部分,如圖1所示.
圖1 本文方法的算法流程圖
1)面部多尺度分塊.為了更好地表達出原圖像人臉表情的細節(jié)特征,提高分類準確率,本文首先對原始圖像進行了不同尺度分塊.分塊數(shù)量分別為1,4,6,9,16塊,如圖2所示.
2)局部CBP特征提取.由于CBP特征對于圖像的紋理特征具有較強的描述能力,而這些特征是表情分類的重要依據(jù),本文基于前步分塊結(jié)果,提取各分塊的局部CBP特征,并計算CBP特征直方圖作為分類特征向量.
3)稀疏表示分類.同表情的人臉樣本可看作一類,其特征向量處于同一個線性空間,任何一個測試樣本都可以用來自于該類的訓練樣本進行線性表示;將所有的訓練樣本特征向量構(gòu)成字典,則測試樣本特征向量在該字典上的表示是稀疏的,同時該稀疏系數(shù)包含了樣本的類別信息.基于此,本文利用稀疏表示進行人臉識別.
圖2 人臉區(qū)域劃分圖
在人臉表情的識別中,多數(shù)的人臉表情特征都集中在上半臉眼睛、眉毛周圍和下半臉的嘴巴附近等局部地區(qū),這些局部特征信息對表情識別的正確率具有重要作用,但是常用的整體圖片的CBP直方圖序列分類特征向量,不能很好的對這些局部信息進行有效的表示.
基于CBP算子表情識別的基本原理是將中心點像素加入到傳統(tǒng)的LBP算子當中,并且賦予它最高權值,通過比較中心像素點與周圍環(huán)狀鄰域的像素灰度差值得出圖像的CBP編碼,即CBP特征圖.然后把圖像的CBP編碼直方圖組成的直方圖序列作為特征向量用于表情識別.本文采用鄰域為8,半徑為1的CBP算子,公式表示為:
式(1)中gC為中心像素點像素值.gi(i=1,2,3,…,7)為鄰域像素點像素值,gT為平均像素值.
圖3 不同表情的CBP特征圖
近些年來,稀疏表示(SRC)[8]已經(jīng)成為信號處理與相關應用領域的重要概念之一,其基本思想是用含有n個不同類別的數(shù)據(jù)集構(gòu)造過完備字典,通過求解測試數(shù)據(jù)在過完備字典下的稀疏表示系數(shù)來判斷其類別.
稀疏表示的原理為:把同一類別的樣本歸于一個特征空間,當樣本屬于某一類時,可由該類特征空間的其它樣本進行線性描述,線性表示能夠找到稀疏解.因此,測試樣本的特征向量可以被訓練樣本的同一類型特征稀疏表示,此時構(gòu)造的過完備字典完全由訓練樣本本身構(gòu)成.
所有的訓練樣本可以構(gòu)成一個稀疏表示的過完備字典D=[D1,D2,···,Dn]那么字典中的每列對應一類人臉表情.若樣本y屬于第k類測試樣本,那么可以由過完備字典表示為:
式(3)中,A表示y在D上的投影系數(shù)矩陣.具體公式如下:
式(4)中,為測試樣本y在D中的第i類第j個訓練樣本上的投影系數(shù).根據(jù)稀疏表示的分類原理可知,當樣本y在字典D中屬于第k類訓練樣本的投影系數(shù)不全為0時,則樣本與y屬于第k類人臉表情,且在其他類別的投影系數(shù)全部為0.因此,找到式(3)的最稀疏解成為判斷樣本y所屬類別的關鍵.通過式(5)求解可以得到特征向量近似解.
在稀疏表示分類的過程中,采取的計算稀疏投影矩陣方法為正交匹配追蹤算法(Orthogonal Matching Pursuit,OMP)[10].與匹配追蹤算法[11](Matching Pursuit,MP)相比.OMP算法在分解的每一步對所選擇的全部原子進行正交化處理,這使得在精度要求相同的情況下,OMP算法的收斂速度更快.最終求得稀疏投影系數(shù)A,并使用同類別的訓練樣本重建測試樣本,計算測試樣本與重建樣本之間的殘差值,然后通過判斷最小殘差值實現(xiàn)人臉表情識別分類.
本文實驗采取的硬件平臺為英特爾i7-7400處理器,軟件包括Opencv3.0,Matlab2014b,Visual studio 2015等開發(fā)工具.
本文實驗采取BU-3DFE[12]數(shù)據(jù)庫進行了大量的實驗.BU-3DFE數(shù)據(jù)集共有來自不同地區(qū),不同年齡的100個人的共計2500幅不同表情圖像.其中女性56人,男性44人.每個人的人臉表情信息包括中性(NE)、生氣(AN)、厭惡(DI).恐懼(FE)、高興(HA)、悲傷(SA)和驚訝(SU),其中除中性表情外,其余六種表情均含有四種不同的強度等級.圖4展示了同一人的不同強度的4種表情圖.
圖4 不同強度等級人臉表情圖
為了有效地進行實驗,對從BU-3DFE數(shù)據(jù)庫中選取實驗材料提出如下規(guī)則: 不只采用最高強度的三維人臉表情模型進行實驗,而是四個強度均被采用,用以驗證本算法對于細微表情的變化是否擁有良好的魯棒性;對于100個隨機選取的三維人臉表情模型,50個用作稀疏表示訓練,50個用作測試樣本,且單一實驗重復20次,然后計算平均識別準確度作為實驗結(jié)果.
本文主要進行兩個實驗,用于驗證基于稀疏表示的三維人臉表情識別方法的有效性.
實驗1.首先,提取人臉表情深度圖像的CBP特征和LBP特征,然后根據(jù)提取的特征進行訓練,分別使用稀疏表示與SVM分類器進行訓練,最后,利用得到的模型進行測試,得到三維人臉表情識別結(jié)果.具體結(jié)果如表1所示.
表1 三維人臉識別結(jié)果對比
根據(jù)表1實驗數(shù)據(jù),我們可以得出如下結(jié)論;
(1)基于稀疏表示分類器的三維人臉表情識別準確率高于基于SVM分類器的識別效果.從表中可以看出,基于稀疏表示的三維人臉表情識別針對CBP特征與LBP特征的識別準確率分別為87.21%與75.90%,均高于基于SVM的三維人臉表情識別針對CBP特征與LBP特征的85.78%與70.27%.這說明稀疏表示分類方法對于三維人臉表情識別來說具有更好的分類識別能力.提出的基于CBP特征與稀疏表示方法的三維人臉表情識別效果最高,識別準確率達到了87.21%;
(2)基于CBP特征的三維人臉表情識別效果遠優(yōu)于基于LBP特征的識別效果.表2中,基于CBP特征的三維人臉表情識別準確率分別為85.78%和87.21%,比基于LBP特征的識別準確率分別提高了15.51%和11.31%;
(3)本文所采用的基于CBP特征與稀疏表示分類的算法框架,同Wang等人[13]和Berretti等人[14]的算法相比具有明顯的優(yōu)勢,分類識別的正確率分別高出3.6%和8.81.實驗1的特征提取對象是整個人臉表情圖像,人臉表情不同區(qū)域?qū)τ谌四槺砬榈拿枋瞿芰Υ嬖诓町?因此為了進一步驗證本文提出的分塊CBP特征的性能,本文基于實驗1中性能最好的CBP+稀疏表示算法框架,進行了實驗2的對比分析.
表2 三維人臉識別結(jié)果(%)
圖5 不同分塊數(shù)識別結(jié)果曲線
從實驗結(jié)果,可以得出以下結(jié)論:
(1)隨著人臉表情區(qū)域分塊增加,基于CBP特征與稀疏表示的三維人臉表情識別平均準確率呈增長趨勢.從表中可以看出,基于1分塊、4分塊、6分塊、9分塊與16分塊的三維人臉表情識別的平均準確率分別為87.2%、88.5%、89.3%、91.6%和89.8%,三維人臉表情平均識別準確率先增加后減少,其中9分塊分類表現(xiàn)最佳.
(2)隨著區(qū)域分塊數(shù)目的增加,三維人臉不同表情的識別準確率大多呈上升趨勢.從圖中可以看出,對于中性、高興、憤怒、驚訝、悲傷與厭惡這6種人臉表情,隨著人臉分塊數(shù)的增加,識別準確率隨著增加,僅有恐懼表情例外,這說明了人臉不同區(qū)域?qū)τ诓煌谋砬橛绊懗潭炔煌?合理地進行人臉區(qū)域分塊能夠有效地提升人臉表情識別準確率:
本文針對三維人臉表情識別,提出了基于分塊CBP特征與稀疏表示的三維人臉表情識別方法,闡述了基于該算法的三維人臉表情識別具體過程.最后實驗部分,針對CBP特征與LBP特征、稀疏表示與SVM分別進行了比較,驗證了基于CBP特征與稀疏表示進行三維人臉表情識別算法框架的優(yōu)越性.在此基礎上,對人臉表情圖像進行均勻分塊,并對不同分塊圖像進行CBP特征提取,以稀疏表示為分類器,實現(xiàn)三維人臉表情識別,最后得出了合理的區(qū)域分塊能有效地提升三維人臉表情識別準確率的結(jié)論 .
在本文算法基礎上,可以將七種表情分類拓展到更多表情,以滿足對現(xiàn)實生活中的人類表情的分類需求.此外,可以在本文工作基礎上進一步進行不均勻分塊,或者特定分塊,自適應權值等思路.可以更加充分的利用人臉面部不同區(qū)域?qū)τ诒砬樽R別的不同影響,從而有效提高識別正確率.