李 莉,穆佳瑋
(江蘇大學 計算機科學與通信工程學院,鎮(zhèn)江 212013)
人臉作為重要的生物學特征,在人際交流中傳達著豐富的信息.從面部表情的角度來看,人臉表情包含著豐富的情感以及心理信息,是一種重要的非語言交流方式.另外,還可以從人的面部識別出人的性別,年齡,種族和其他特征.目前,關于面部表情分類的研究已受到國內(nèi)外許多著名大學,研究機構和公司的重視,這主要是由于其重要的理論研究意義和廣泛的應用場景.20世紀60年代,國外學者提出了基于人臉的幾何特征識別方法用于圖像分類.在90年代由Belhumeur提出的線性判別分析(LDA)[1]成為了當時頗具代表性的人臉識別算法.研究者們在此算法基礎上研究產(chǎn)生了許多改進算法,比如并行LDA 算法、基于概率延伸公式的LDA 算法、直接的LDA 判別方法以及近期的一些基于核學習的改進攻略[2].后來Yang 等[3]提出基于稀疏表示(SRC)理論的分類方法開始應用到了面部識別中.
在人臉表情分類的過程中,面部表情特征的提取將會很大程度地影響到最終的分類效果.常用的特征提取方法有基于幾何特征的方法、模板匹配法(ASM)[4]、彈性圖匹配(DLA)[5]、局部二值模式(LBP)[6]以及Gabor 小波變換[7]等方法.由于局部二值模式計算復雜度低以及能更好的體現(xiàn)圖像紋理特征等優(yōu)點,被廣泛地應用于圖像分類等領域中.在分類識別方面,常用的有K 最近鄰(KNN)[8]、支持向量機(SVM)[9]、卷積神經(jīng)網(wǎng)絡[10]等分類器.2011年由國內(nèi)學者Zhang 等[11]提出了協(xié)作表示分類算法,極大地提高了算法的識別速度使得基于表示的分類方法成為研究焦點.但是文獻[8,9]均未對圖像數(shù)據(jù)進行預處理而是直接采用相關算法進行分類,未能解決在圖片分類時效率低下及準確率較低的問題.目前人臉表情分類存在著多種挑戰(zhàn),往往都是由于人臉表情的復雜度、多樣性、多變性等造成人臉特征的顯著改變.隨著年齡的增加,人臉皺紋的出現(xiàn)和面部肌肉的松弛使得人臉的結構和紋理都將發(fā)生改變,另外人臉的部分遮掩也將會造成錯誤分類.同時由于光照、視角、攝取角度的不同,可能會造成圖像的灰度畸變、角度旋轉等,這些都極大地增大了分類的難度.
針對上述的缺點,本文提出了一種基于改進的協(xié)作表示人臉表情分類算法.其算法的主要步驟為:首先采用分塊加權局部二值模式對圖像進行分塊預處理,得到每個子塊的特征向量.為了避免維度災難,接著使用主成分分析法對特征向量進行降維處理,最后使用競爭協(xié)作表示分類算法對圖像進行分類.
競爭協(xié)作表示是在經(jīng)典的協(xié)作表示算法中引入樣本競爭的思想,增強訓練樣本與測試樣本之間的關聯(lián),從而提高算法的學習能力,進而得到更高的分類精度.
LBP 算法的核心思想是,針對圖像中的每一個像素點,以圖像中心像素點的灰度值作為閾值進行編碼,并用相鄰像素點灰度值與其進行比較,將灰度值小于閾值的編碼為0,大于閾值的則編碼為1[12].然后按順時針方向將編碼后的二進制碼組合排列,之后將二進制碼轉化為對應的十進制值,以該十進制值作為區(qū)域中心像素灰度值的編碼.以3×3 區(qū)域為例由此可以計算得到LBP 編碼如圖1所示.
圖1 LBP 編碼計算
LBP 算法的優(yōu)勢在于對人臉的紋理特征有著較好的提取能力,特別是局部的一些暗點、亮點、邊緣特征等有良好的表述性能[13].缺點是隨著鄰域內(nèi)采樣點的數(shù)量增加,經(jīng)過編碼后的模式種類會以指數(shù)形式增長,大大增加了存儲空間,同時也會使計算效率大幅下降.
絕大多數(shù)LBP 模式最多只包含兩次從1 到0 或從0 到1的跳變.因此“均勻模式”定義為:當某個LBP 所對應的循環(huán)二進制數(shù)從0 到1 或從1 到0 最多有兩次跳變時,該LBP 所對應的二進制就稱為一個均勻模式類[14].通過這樣的改進,模式數(shù)量直接降為n(n-1)+2 種,其中n表示鄰域內(nèi)采樣點的個數(shù).對于3×3 鄰域的8 個采樣點來說,二進制模式由最初的256 種,減少為58 種.大大地減少了特征向量的維數(shù).
在同一張人臉圖片中,不同的區(qū)域所包含的紋理信息差異是非常大的.為了能進一步的區(qū)分不同區(qū)域的紋理信息從而體現(xiàn)更好的局部特征,對圖像采取分塊處理并對每個分塊進行了加權,通過計算和比較塊與塊之間的紋理熵,將不同子塊紋理熵的值作為加權因子以區(qū)分不同子塊所代表的信息[15].最終將加權后各個子塊的特征向量組合起來構成一個聯(lián)合特征向量作為該圖像的特征向量.
假設將圖像分為n個子塊,第i個子塊的紋理熵可以表示為:
其中,k表示像素的灰度級,pki表示灰度級為k的像素點在第i個子塊中出現(xiàn)的概率,因此定義第i個子塊的權值為:
設hi為第i個子塊的特征向量,由各個子塊的特征向量構成最終的特征向量:
假設一共有n個訓練樣本可以被分成c類,屬于第i類 (i∈[1,2,···,c])的訓練樣本有ni個,由第i類訓練樣本的特征向量構成的特征矩陣為Xi=[xi,1,xi,2,···,xi,ni]∈Rd*ni,xi,j∈Rd*1(j=1,2,···,ni)表示屬于第i類的第j個訓練樣本的特征向量,d是每個訓練樣本的特征向量維數(shù)[16].
在基于協(xié)作表示的分類算法中,可以將d維n個特征表示成一個矩陣即y=Xα,X是包括c類所有n個訓練樣本的特征矩陣,X=[X1,X2,···,Xc]∈Rd×n.α表示測試樣本重構系數(shù)向量.采用L2范數(shù)最小化來求解系數(shù):
ε為指定的誤差容限,為了進一步降低計算復雜度,將式(4)轉化成正則化最小二乘法形式:
第1 項||y-Xα||22表示由系數(shù)α重建的預估值與實際輸入值之差的2 范數(shù)的平方,第2 項 λ||α||22為算法模型引入的正則化約束條件,λ為可調整參數(shù),整個第2 項的作用有兩點,一是保證上述求解過程中的穩(wěn)定性,二是為系數(shù) α引入一定的稀疏性(用訓練樣本線性組合表示測試樣本時,與測試樣本有相近類別的訓練樣本前的系數(shù)不為0,其余類別的訓練樣本前的系數(shù)均為0 稱為稀疏性).
將式(5)展開,得到:
對式(6)中的系數(shù) α求導,并令導數(shù)為0,得到:
約去式(7)中的公因子:
對式(8)進行化簡可得:
求解式(9)得到重構系數(shù)的最優(yōu)解:
其中,I是一個單位矩陣,令P=(XT X+λI)-1XT,由于P與輸入的測試樣本特征向量y無關,所以可以預先計算P作為投影矩陣,這樣每個測試樣本特征向量y都可以通過式(10)直接計算其對應的重構系數(shù)向量,大大降低了計算復雜度.
αi=[αi,1,αi,2,···,αi,ni],重構誤差定義為:
通過式(11)來衡量類別為i的訓練樣本與測試樣本的相似度,當重構誤差越小,則表明訓練樣本與測試樣本之間的相似度越高,結果對應的就是測試樣本屬于第i類的可能性就越高,最終的測試樣本的分類可以表示為:
競爭協(xié)作表示(CCRC)首先是由Yuan 等[17]提出.該算法針對在協(xié)作表示(CRC)中,由于是使用所有的訓練樣本來表示測試樣本以及使用每一類中的訓練樣本表示測試樣本是相互獨立的過程從而忽略了它們之間的聯(lián)系,即式(4)和式(11)是相互獨立的,因此將其結合起來作為一個整體,在原有模型的基礎上加入新的正則項,模型表示如下:
式(13)中,第1 項是用所有的訓練樣本來表示測試樣本(稱為協(xié)作性),第3 項是用每個類中的訓練樣本來重構測試樣本(稱為競爭性),λ1為可調整參數(shù)用來平衡類別之間的協(xié)作性與競爭性,當 λ1為0 時,式(13)即為協(xié)作表示(CRC),當 λ1逐漸增大時,能夠穩(wěn)定的提高表示的競爭性.對式(13)中的系數(shù) α求導,并令導數(shù)為0可得:
將重構誤差定義為:
運用式(10)計算測試樣本和每一類別訓練樣本之間的重構誤差,將重構誤差ri(y)中最小的i所對應的類別作為相應測試樣本所屬于的類.
針對協(xié)作表示分類精度有待提高,本文提出一種改進的協(xié)作表示分類算法,算法首先采用均勻模式下的分塊加權局部二值模式提取圖像特征,接著使用主成分分析法對訓練樣本和測試樣本的特征向量進行降維,最后運用競爭協(xié)作表示分類算法對圖片進行分類.具體步驟如下:
步驟1.對所有圖片樣本進行歸一化處理為130×130 像素大小.
步驟2.將預處理過后的圖片樣本劃分成為互不重疊的3×3,4×4 以及5×5 三種分塊方式,采用分塊加權LBP 算法來提取特征向量.
步驟3.運用主成分分析法對特征向量進行降維構成最終的訓練樣本和測試樣本矩陣.
步驟4.使用競爭協(xié)作表示分類器對圖片進行分類.
步驟5.為了使實驗的結果更具可靠性,使用10 次交叉驗證的方法重復實驗10 次得到最終分類的平均準確率.
實驗計算機配置:CPU Core(TM)3.40 GHz,內(nèi)存16 GB,顯存8 GB;操作系統(tǒng):Windows7;軟件環(huán)境:Matlab 2017.
本次實驗分為實驗1和實驗2.
實驗1 選取的數(shù)據(jù)為日本女性面部表情數(shù)據(jù)庫.該數(shù)據(jù)集中有7 種表情,每種表情大約有3-5 幅圖片,總共有10 個個體樣本總數(shù)為213 張圖片.選取10 個個體每種表情各1 幅圖片總共70 張圖片作為測試樣本,其余的143 張圖片作為訓練樣本.部分圖像樣例如圖2所示.
實驗2的數(shù)據(jù)來源為瑞典斯德哥爾摩心理學科卡羅琳斯卡情緒導向人臉表情數(shù)據(jù)庫.選取了其中的一個子集共計350 張圖片構成了樣本數(shù)據(jù)集.該數(shù)據(jù)集中有10 個個體,每個個體含有7 種表情,每種表情有5 幅圖片.選取10 個個體每種表情各1 幅圖片總共70 張圖片作為測試樣本,其余的280 張圖片作為訓練樣本.部分圖像樣例如圖3所示.
圖2 實驗1 數(shù)據(jù)庫部分圖像樣例
圖3 實驗2 數(shù)據(jù)庫部分圖像樣例
分別采用LBP+SRC,LBP+CRC,LBP+CCRC 算法測試在不同分塊模式以及不同特征維數(shù)情況下對圖像的分類性能.其中實驗1的測試結果如圖4至圖6所示,實驗2的測試結果如圖7至圖9所示.對測試結果展開分析.
圖4 實驗1 中3×3 分塊模式下的算法對比
(1)由圖4至圖9橫向對比可知LBP+CCRC的分類效果在兩個數(shù)據(jù)集中均優(yōu)于LBP+SRC和LBP+CRC兩種算法,這是因為CCRC 考慮到樣本之間的競爭性從而能更好的表示相似樣本之間的線性關系.
圖5 實驗1 中4×4 分塊模式下的算法對比
圖6 實驗1 中5×3 分塊模式下的算法對比
圖7 實驗2 中3×3 分塊模式下的算法對比
(2)同時從上述實驗結果觀察可以發(fā)現(xiàn),在5×3 分塊模式下各類算法的分類效果均優(yōu)于3×3和4×4 分塊模式下的分類效果,這是因為在5×3 分塊模式下對于紋理特征貢獻度更大的子模塊賦予了更多的權重從而提升了對圖像的分類性能.
圖8 實驗2 中4×4 分塊模式下的算法對比
圖9 實驗2 中5×3 分塊模式下的算法對比
將不同算法的分類結果進行統(tǒng)計,結果如表1.
為了說明分塊加權LBP 與基于協(xié)作表示算法的結合有著良好的分類效率,將不同算法的運行時間進行統(tǒng)計,結果如表2所示.
表1 各數(shù)據(jù)集算法分類準確率對比(%)
表2 各數(shù)據(jù)集算法分類運行時間對比(單位:ms)
從表2的實驗結果可以看出,LBP 與CRC 相結合的算法跟LBP 與CCRC 相結合的算法在運行時間上較為接近,相較于LBP 與SRC 相結合的算法縮短了將近50 倍,同時在不同分塊模式下運行時間誤差更小,穩(wěn)定性更強.
本文基于傳統(tǒng)的CRC 分類模型,使用LBP+CCRC算法實現(xiàn)對原有算法的優(yōu)化,進而使得分類更加精準.LBP+CCRC 算法在原有CRC 算法上提出了兩點改進:(1)采用分塊加權的LBP 算法對數(shù)據(jù)集中的訓練樣本和測試樣本進行特征提取,從而更好地描述人臉表情的局部細節(jié)紋理.(2)由于同一類別中的不同樣本具有一定的相似性,因此引入競爭的思想,使用每一個類中的訓練樣本來重構測試樣本以提高分類的準確率.本文使用LBP+CCRC 算法對日本女性面部表情和瑞典心理學科情緒導向表情兩個數(shù)據(jù)庫中的圖片進行分類,通過實驗從表1可知LBP+CCRC 算法相較于其他算法分類效果更為精準.
雖然引入了競爭的思想提高了分類的準確率,但是在迭代的過程中也損耗了一定的時間,因此在時間的損耗上還有待改進.此外實驗只考慮了3 種分塊模式下的分類情況,未考慮其他的分塊模式.下一步的工作需要考慮更多的分塊模式對實驗的影響,同時要將樣本容量擴大,另外也要在數(shù)據(jù)集中加入噪聲在更多的情形下進行試驗.