黃小剛,黃潤才,王桂江,馬詩語
(上海工程技術(shù)大學 電子電氣工程學院,上海 201620)
隨著計算機技術(shù)的發(fā)展,人臉檢測技術(shù)已經(jīng)廣泛應(yīng)用于生活各領(lǐng)域中,如日常鎖定和支付等,用來提高安全性。面部表情圖像的獲取正不斷增多,如何進行表情情感分析、實現(xiàn)人機情感交互也就隨即成為了當下的研究熱點。
表情識別的過程可分為3個部分:圖像采集與圖像預處理、表情的特征提取、表情的分類。其中,人臉表情識別過程中又以表情特征提取為重點。在傳統(tǒng)的人臉表情識別當中,有許多優(yōu)秀的特征提取算法:局部二值模式(LBP)、方向梯度直方圖(HOG)、Gabor小 波 變 換、活 動 外 觀 模 型(AAM)等。其中,局部二值模式由于其特征提取方式簡潔明了,提取效果較好,受到眾多學者青睞,因此衍生出了許多變體:CS-LBP、CLBP、CSLOP等。在特征提取當中,文獻[8]使用LBP的變體,能更好地處理像素邊緣的特征。文獻[9]提取了LBP紋理特征以及用HOG算法提取眼睛、眉毛區(qū)域、連同嘴部區(qū)域的邊緣信息,并對這3個區(qū)域進行不同權(quán)值的融合。文獻[10]使用了一種活動外觀模型與Gabor小波變換融合的方法。上述特征提取方法都具有一定的局限性,識別的穩(wěn)定性也欠佳,研究學界逐漸掀起了對深度學習的研究熱潮。
近年來硬件技術(shù)取得了較大的突破,深度學習也隨之得到迅猛發(fā)展,許多學者開始把深度學習方法應(yīng)用于表情識別當中。文獻[13]使用了改進的AlexNet網(wǎng)絡(luò)進行表情識別,文獻[14]構(gòu)造表情局部特征融合的卷積網(wǎng)絡(luò)模型。2017年,Sara等人提出了膠囊網(wǎng)絡(luò),使用膠囊單元存儲信息,并使用獨特的動態(tài)路由機制傳遞傳輸膠囊信息,該網(wǎng)絡(luò)不僅能夠檢測到特征,還能檢測到特征的空間、大小、位置等信息,具有可觀發(fā)展前景。文獻[16]驗證了膠囊網(wǎng)絡(luò)相比卷積神經(jīng)網(wǎng)絡(luò)在表情識別上具有更強的魯棒性。文獻[17]使用了膠囊網(wǎng)絡(luò)和卷積網(wǎng)絡(luò)的結(jié)合,同時加入大量的卷積操作和層注意力機制,實驗結(jié)果表明該網(wǎng)絡(luò)穩(wěn)健性強,但是也存在著網(wǎng)絡(luò)結(jié)構(gòu)冗余、網(wǎng)絡(luò)收斂很慢、訓練時間很長的問題。
本文把傳統(tǒng)的特征提取方法與深度學習膠囊網(wǎng)絡(luò)相結(jié)合,提取了圖像的局部二值模式特征,與原圖通道合并,形成雙通道輸入,送入膠囊網(wǎng)絡(luò),形成一種多通道輸入膠囊網(wǎng)絡(luò)。殘卷積網(wǎng)絡(luò)(ResNet)具有收斂速度快,能避免梯度彌散的優(yōu)點,本文又在雙通道輸入的基礎(chǔ)上添加殘差網(wǎng)絡(luò)形成多通道輸入增強膠囊網(wǎng)絡(luò)模型。通過局部二值模式、ResNet提取復雜低層特征,送入膠囊網(wǎng)絡(luò)分類,在CK+數(shù)據(jù)集和RAF-DB數(shù)據(jù)集上的實驗結(jié)果表明2種特征增強能充分發(fā)揮膠囊網(wǎng)絡(luò)的效果,獲取了更具表達能力的特征。
紋理信息對于圖像的模式分析非常重要,局部二值模式(LBP)是一種簡單而高效的紋理描述方法。局部二值模式是能夠獲得中心像素和相鄰像素之間差異的二進制模式。具體通過用中心值對每個像素的3×3鄰域進行閾值化并將結(jié)果作為二進制數(shù)來標記圖像的像素,中心點像素的LBP編碼如式(1)、(2)所示:
其中,g表示中心像素的灰度值;是涉及鄰域像素的總數(shù);g(0,1,,1)是以為中心的鄰域像素的灰度值。中心像素及鄰域半徑為1的3×3的像素如圖1所示。
圖1 3*3像素點Fig.1 Pixels of 3*3
膠囊網(wǎng)絡(luò)(CapsNet)以膠囊作為基本神經(jīng)元存儲信息,不同于卷積神經(jīng)網(wǎng)絡(luò)標量輸入、標量輸出的傳遞形式,膠囊網(wǎng)絡(luò)是一個向量輸入、向量輸出的形式。膠囊是一個向量,具有多個值,包含更多圖像實體的信息,不僅可以表示是否存在特征,還可以表示特征之間的關(guān)系,輸出綜合這些信息,使用向量的模長表示實體存在的概率。用于Mnist手寫數(shù)字識別的膠囊網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 膠囊網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Capsule network structures
膠囊網(wǎng)絡(luò)由輸入層()、卷積層(1)、主膠囊層()、數(shù)字膠囊層()組成。輸入層即輸入2828大小的灰度圖。1就是普通的卷積層,使用256個步長為1的99卷積核,為激活函數(shù),用于提取圖像的低層特征,得到2020256的特征圖。
主膠囊層開始使用膠囊單元存儲信息,該過程可以看作是普通卷積層的縱向擴展,使用了8組、32個步長為2的99卷積核,把特征圖進行三維拼接,得到6*6*32、即1024個膠囊,每個膠囊是一個長度為8的向量。對膠囊進行歸一化,使用非線性壓縮函數(shù),對膠囊進行壓縮,確保長度在01之間,壓縮函數(shù)如式(7)所示:
其中,s是膠囊的輸入,v是輸出。
數(shù)字膠囊層的輸出是10個維數(shù)為16的向量,每個向量的模長代表該類的預測概率。層采用的是動態(tài)路由機制,進行3次動態(tài)路由迭代。動態(tài)路由的過程原理如圖3所示。參數(shù)更新公式的數(shù)學表述可寫為:
圖3 動態(tài)路由過程Fig.3 Dynamic routing process
其中,∈(1,2,…,1024),∈(1,2,…,10),這是由于主膠囊層共有1024個膠囊,數(shù)字膠囊層輸出類別有10類;u是主膠囊層輸出的1024個向量;W是權(quán)重矩陣;^是預測向量,表示當前向量條件下預測為類別的概率。式(5)中,s是上一層預測向量^乘以膠囊間耦合系數(shù)c的加權(quán)和;式(6)是壓縮函數(shù),式(7)、式(8)用來迭代更新耦合系數(shù)b,c。
膠囊網(wǎng)絡(luò)采用的是邊際損失函數(shù),如式(9)所示:
其中,T表示類是否存在:存在為1,不存在為0;m取值為0.9,懲罰假陽性,當類存在預測不存在時會使損失函數(shù)很大;m取值為0.1,懲罰假陰性,當類不存在預測存在時會使損失函數(shù)很大;取值為0.5,調(diào)整假陰性的權(quán)重。
本文提出的基于特征提取與膠囊網(wǎng)絡(luò)的表情識別算法實現(xiàn)流程如圖4所示。圖4中,首先對圖片進行預處理操作,使用Harr級聯(lián)器進行人臉檢測,獲取人臉部分圖片,尺寸歸一化為48×48、像素歸一化為0~1之間。對圖片進行數(shù)據(jù)增強,數(shù)據(jù)增強操作包括圖片的旋轉(zhuǎn)、平移、錯切獲取更多的訓練樣本。提取圖像LBP紋理特征,提取圖像ResNet18特征,送入膠囊網(wǎng)絡(luò)分類訓練,驗證模型準確率。
圖4 識別算法流程圖Fig.4 Flow chart of recognition algorithms
多通道輸入膠囊網(wǎng)絡(luò)使用LBP算子提取圖像的紋理特征,灰度圖和其紋理特征如圖5所示。將紋理特征圖與灰度圖進行通道合并的多通道輸入膠囊網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。該網(wǎng)絡(luò)共進行2組實驗。第一組實驗輸入只使用灰度圖作為對照實驗,用于驗證是否提取紋理特征的多通道輸入膠囊網(wǎng)絡(luò)相比單一的膠囊網(wǎng)絡(luò)具有更好的識別效果,第二組實驗輸入為灰度圖-LBP特征圖。2組實驗輸入分別送入膠囊網(wǎng)絡(luò)的1卷積層,得到的40×40×32的特征圖,接著輸入到主膠囊層中,特征圖從標量變?yōu)槭噶?,得到特征長度為8的1024(16*16*4)個向量,最后送入到數(shù)字膠囊層,通過動態(tài)路由算法迭代3次得到預測結(jié)果為16×8的向量,8表示表情的類別(RAF-DB數(shù)據(jù)集為7類表情,預測結(jié)果為16×7,這里的16表示向量的長度,包含了預測該類別的特征信息)。網(wǎng)絡(luò)各層詳細編碼參數(shù)見表1。
表1 特征提取的膠囊網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)Tab.1 Structural parameters of capsule network based on feature extraction
圖5 特征圖Fig.5 Feature map
圖6 多通道輸入膠囊網(wǎng)絡(luò)Fig.6 Multi-channel input capsule network
從圖6和表1可以看出,該網(wǎng)絡(luò)2組實驗使用2組不同的特征作為輸入進行訓練,由于原圖尺寸為48×48,對主膠囊層的卷積核個數(shù)進行了調(diào)整,使得輸出仍為1024個維度為8的向量,主膠囊層和數(shù)字膠囊層的膠囊維數(shù)并沒有改變,數(shù)字膠囊層輸出尺寸16×8為CK+數(shù)據(jù)集,16×7為RAF-DB數(shù)據(jù)集輸出,后續(xù)不再做重復說明。
多通道輸入增強膠囊網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示。在輸入圖像為灰度圖和LBP特征圖基礎(chǔ)上,再使用泛化能力強的ResNet18網(wǎng)絡(luò)對膠囊網(wǎng)絡(luò)進行增強。ResNet18網(wǎng) 絡(luò) 由1個層,4個 殘 差 模 塊組成,該結(jié)構(gòu)使用了大量的3×3的卷積核,為了滿足主膠囊1024個8維向量的輸出,對網(wǎng)絡(luò)卷積核個數(shù)步長進行了相應(yīng)的調(diào)整改進。輸入圖像經(jīng)過ResNet18得到6×6×256特征圖,送入主膠囊層,ResNet18網(wǎng)絡(luò)可以提取豐富特征,主膠囊層對特征進行整理,把標量變?yōu)橄蛄?,得?024個維度為8的向量。主膠囊層的膠囊送入數(shù)字膠囊層通過動態(tài)路由迭代3次得到最終分類結(jié)果,數(shù)字膠囊層的膠囊維數(shù)為16。網(wǎng)絡(luò)各層詳細編碼參數(shù)見表2。
表2 增強膠囊網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)Tab.2 Enhanced capsule network structure parameters
圖7 多通道輸入增強膠囊網(wǎng)絡(luò)Fig.7 Multi-channel input enhanced capsule network
實驗程序運行在Window10操作系統(tǒng)上,使用GeForce GTX3060 GPU,仿真環(huán)境使用Tensorflow2.6的深度學習框架。
本文采用CK+和RAF-DB數(shù)據(jù)集進行實驗。CK+數(shù)據(jù)集是實驗環(huán)境下表情序列,在表情序列中選取了1085張基本圖片,這些圖片中有7類基本表情,分別是:生氣、厭惡、害怕、開心、傷心、驚訝、輕蔑。由于樣本較少,添加了對應(yīng)的中立表情,總共8種表情。對這些圖片進行數(shù)據(jù)增強得到更多的數(shù)據(jù)集,其中70%的圖片用于訓練,30%的圖片用于測試。RAF-DB數(shù)據(jù)集是自然環(huán)境下的表情圖片,包含7類基本表情,訓練集圖片有12271張,測試集圖片有3068張。
2個數(shù)據(jù)集分別進行3組實驗。第一組實驗為基準實驗,直接用灰度圖送入膠囊網(wǎng)絡(luò)進行訓練,稱為CapsNet。第二組實驗為紋理特征的多通道輸入膠囊網(wǎng)絡(luò)實驗,稱為LBP-CapsNet。第三組實驗是基于紋理特征和深度殘差網(wǎng)絡(luò)的多通道輸入增強膠囊網(wǎng)絡(luò),稱為ResNet-CapsNet。
實驗中,使用優(yōu)化器進行梯度下降,總共迭代200次,批大小為30。前80次迭代學習率為0.01,80~160次迭代學習率為0.005,160次后迭代學習率為0.001,CK+數(shù)據(jù)集3組對照實驗的驗證集訓練曲線如圖8所示,RAF-DB數(shù)據(jù)集3組對照實驗的驗證集訓練曲線如圖9所示。
根據(jù)圖8、圖9可以看出,相比于只使用膠囊網(wǎng)絡(luò)CapsNet實驗,多通道輸入膠囊網(wǎng)絡(luò)LBPCapsNet損失值較小,準確率相比于CapsNet實驗有所提高。加入ResNet網(wǎng)絡(luò)提取特征后的多通道輸入增強型膠囊網(wǎng)絡(luò)ResNet-CapsNet的初始損失值較大、準確率較低,這是由于添加ResNet網(wǎng)絡(luò),使網(wǎng)絡(luò)結(jié)構(gòu)變得更為復雜,隨著網(wǎng)絡(luò)不斷訓練迭代,學習的特征越來越多,網(wǎng)絡(luò)損失值變小,準確率明顯高于CapsNet。
圖9 RAF-DB訓練曲線Fig.9 RAF-DB training curve
CK+和RAF-DB數(shù)據(jù)集的3組實驗最終準確率見表3。本文提出的多通道輸入膠囊網(wǎng)絡(luò)和多通道輸入增強膠囊網(wǎng)絡(luò)方法相比于只使用膠囊網(wǎng)絡(luò)在2個數(shù)據(jù)集上準確率有明顯提高,其中多通道輸入增強膠囊網(wǎng)絡(luò)在CK+和RDF-DB數(shù)據(jù)集準確率分別達到99.69%、82.02%。表4和表5分別列舉了其他表情識別算法在CK+和RAF-DB數(shù)據(jù)集上的準確率。分析可知,本文算法在表情識別方面具有很好的表現(xiàn),準確率有明顯的提升。
表3 本文方法準確率比較Tab.3 Recognition rate comparison of the proposed method
表4 CK+的不同算法的準確率比較Tab.4 Recognition rate comparison of different algorithms on CK+
表5 RAF-DB的不同算法的準確率比較Tab.5 Recognition rate comparison of different algorithms on RAF-DB
本文提出了多通道輸入膠囊網(wǎng)絡(luò)和多通道輸入增強膠囊網(wǎng)絡(luò)表情識別方法,2種方法的本質(zhì)都是通過充分提取低層特征,增強了膠囊網(wǎng)絡(luò)提取特征的能力,得到了能夠充分表示表情的特征的信息。在CK+和RAF-DB數(shù)據(jù)集上,本文的方法與其他論文方法對比可知,準確率有明顯提高。本文算法只提取了圖像的紋理特征作為低層特征,而幾何特征也是人臉表情的重要特征,后續(xù)可以進一步加入幾何特征進行實驗。膠囊網(wǎng)絡(luò)仍有較大發(fā)展?jié)摿ΓS多細分方向仍有待深入挖掘,比如膠囊維數(shù)、動態(tài)路由迭代次數(shù)、函數(shù)等等對網(wǎng)絡(luò)的影響。結(jié)合紋理特征、幾何特征、深度學習這些方法,使用更多復雜場景的人臉圖片進行驗證以提高識別率是下一步的研究方向。