林克正,白婧軒,李昊天,李 驁
哈爾濱理工大學 計算機科學與技術(shù)學院,哈爾濱150080
人臉表情識別一直是富有挑戰(zhàn)性的研究課題,在檢測精神障礙、人機交互等方面有著廣泛的應用。它有助于創(chuàng)造出更多具有識別人類情緒能力的智能機器人。許多現(xiàn)實生活中的應用程序,如疲勞駕駛檢測和互動游戲開發(fā),也得益于這種技術(shù)。目前表情識別領(lǐng)域運用多種特征提取和機器學習算法。
早期的人臉表情識別研究大多基于手工制作的特征[1]。在ImageNet 大型視覺識別競賽(ImageNet large scale visual recognition challenge,ILSVRC)[2],AlexNet[3]深度卷積神經(jīng)網(wǎng)絡(luò)模型取得成功后,深度學習在計算機視覺領(lǐng)域中開始得到廣泛的應用。人臉表情識別(facial expression recognition,F(xiàn)ER)挑戰(zhàn)[4]或許是最早提出表情識別運用深度學習方法的作品之一。之后在2013年FER 挑戰(zhàn)賽中得分最高的系統(tǒng)是深度卷積神經(jīng)網(wǎng)絡(luò)[5],而手工特征的最佳模型僅排在第四位[6]。除了少數(shù)例外[7-8],最近關(guān)于人臉表情識別的研究大多基于深度學習[9-14]。最近的研究[15]提出訓練卷積神經(jīng)網(wǎng)絡(luò)級聯(lián)從而提高性能。在大多數(shù)情況下,CNN(convolutional neural network)的訓練依賴大量的數(shù)據(jù),然而在模型訓練中,樣本的大小會直接影響模型和網(wǎng)絡(luò),故當樣本有限時,模型很容易發(fā)生過擬合現(xiàn)象,因此在樣本有限時,希望防止過擬合并且不影響性能甚至提高性能。目前通常采用的方法是,樣本的旋轉(zhuǎn)、對比度分析、光亮度變化來進行樣本擴充。雖然這樣可以在一定程度上增加樣本數(shù)量,但更容易產(chǎn)生過擬合現(xiàn)象。Kaya 等人[16]則將深層特征與HOG(histogram of oriented gradient)、局部Gabor 二元模式的手工制作的特征結(jié)合起來使用,從而提高性能。黃凱奇等人[17]利用遷移學習得到很好的泛化模型,但是識別準確率不是特別理想。Zhang等人[18]的生成對抗網(wǎng)絡(luò)與遷移學習的集合模型在小樣本中達到較高的識別準確率。
因此本文提出了深度學習下融合不同模型的小樣本表情識別方法。首先對單個CNN 模型進行比較,篩選相對合適的CNN,然后SIFT(scale-invariant feature transformation)提取局部特征,最后將所有模型進行匯總,得到CNN-SIFT-AVG(convolutional neural network and scale-invariant feature transformation average)模型。雖然尺度不變特征變換[19]和其他傳統(tǒng)局部特征提取方法的結(jié)果不如CNN 準確,但它們不需要大量的數(shù)據(jù)集就可以得出結(jié)果。模型分別在FER2013、CK+和JAFFE 三個數(shù)據(jù)集上進行實驗。
本文的主要貢獻:(1)研究了SIFT 特征與CNN結(jié)合對小數(shù)據(jù)性能的影響。(2)設(shè)計了一種新的基于CNN 和SIFT 模型的人臉表情識別分類器,在FER2013、CK+和JAFFE 三個數(shù)據(jù)集上都得到了更好的識別效果。(3)可以降低在人臉表情識別過程中訓練樣本的成本。
(1)卷積層
對輸入數(shù)據(jù)進行特征提取,其內(nèi)部包含多個卷積核,組成卷積核的每個元素都對應一個權(quán)重系數(shù)和一個偏置項。卷積層內(nèi)每個神經(jīng)元都與前一層中位置接近的區(qū)域的多個神經(jīng)元相連,區(qū)域的大小取決于卷積核的大小。卷積核在工作時,會有規(guī)律地掃過輸入特征,在感受野內(nèi)對輸入特征做矩陣元素乘法求和并疊加偏差量,計算方式如式(1)所示:
式中的求和部分等價于求解一次交叉相關(guān)。b為偏差量,Zl和Zl+1表示第l+1 層的卷積輸入和輸出,也被稱為特征圖,Ll+1為Zl+1的尺寸,這里假設(shè)特征圖長寬相同。Z(i,j)對應特征圖的像素,k為特征圖的通道數(shù),f、s0和p是卷積層參數(shù),對應卷積核大小、卷積步長(stride)和填充(padding)層數(shù)。
(2)dropout正則化方法
dropout 層是通過遍歷神經(jīng)網(wǎng)絡(luò)每一層的節(jié)點,然后通過對該層的神經(jīng)網(wǎng)絡(luò)設(shè)置一個節(jié)點保留概率p,即該層的節(jié)點有p的概率被保留,p的取值范圍在0 到1 之間。通過設(shè)置該層神經(jīng)網(wǎng)絡(luò)的節(jié)點保留概率,使得神經(jīng)網(wǎng)絡(luò)不會偏向于某一個節(jié)點(因為該節(jié)點有可能被刪除),從而使得每一個節(jié)點的權(quán)重不會過大,來減輕神經(jīng)網(wǎng)絡(luò)的過擬合。標準網(wǎng)絡(luò)如圖1所示,帶有dropout網(wǎng)絡(luò)的如圖2 所示。
Fig.1 Standard neural network圖1 標準的神經(jīng)網(wǎng)絡(luò)
Fig.2 Part of temporarily deleted neurons圖2 部分臨時被刪除的神經(jīng)元
在訓練模型階段,訓練網(wǎng)絡(luò)的每個單元都要添加一道概率流程。沒有采用dropout 方法的如式(2)。預測的時候,每一個單元的參數(shù)要預乘以p。
采用dropout網(wǎng)絡(luò)的如式(3)。
(3)激活函數(shù)
ReLU 函數(shù)如式(4),當x<0 時,隨著訓練的推進,部分輸入會落入硬飽和區(qū),導致對應權(quán)重無法更新。故針對x<0 的硬飽和問題,采用Leaky ReLU 函數(shù),函數(shù)如式(5)。
使用Leaky ReLU 優(yōu)于ReLU 的優(yōu)點是:ReLU 是將所有的負值都設(shè)為零,相反Leaky ReLU 中,a是一個很小的常數(shù),這樣保留了一些負軸的值,使得負軸的信息不會全部丟失。這就解決了ReLU 函數(shù)進入負值區(qū)間后,導致神經(jīng)元不學習的問題。
SIFT 特征在旋轉(zhuǎn)、尺度縮放、亮度等情況下可以保持不變性,因此對于每個圖像,采用尺度不變特征變換(SIFT)從人臉圖像中提取關(guān)鍵點。定位關(guān)鍵點后,利用關(guān)鍵點相鄰的像素點計算網(wǎng)格的方向和大小。為了識別主方向,建立梯度直方圖。最后,SIFT描述符通過將圖像分割成4×4個正方形來確定。對于每一個正方形中的16個方塊,采用一個長度為8的向量來表示。通過合并所有的向量,得到每個關(guān)鍵點的大小為4×4×8=128 的特征向量,最后進行歸一化處理。如式(6)所示。
本文的網(wǎng)絡(luò)模型結(jié)構(gòu)的輸入層是像素為48×48的灰度圖像,即為1 的單通道圖像,故輸入的圖像維度用48×48×1 來表示。卷積層是一個3×3 的過濾器(filter),為了保持輸入輸出規(guī)格的空間大小不變,在邊框周圍添加了零填充padding。過濾器處理的矩陣深度和當前神經(jīng)網(wǎng)絡(luò)節(jié)點矩陣的深度是一致的,故為1。通過一個filter 與輸入圖像的卷積可以得到一個48×48×1 的特征圖,連續(xù)用32個filter 得到了32個特征圖。卷積過后輸入圖像的像素位置再進行滑動,滑動步長stride等于1。
然后采用最大池對卷積結(jié)果進行了整合,它是一種非線性下采樣。此處采用2×2 過濾器,對每一個2×2 的區(qū)域進行一次最大池化操作。同時每添加一次最大池化層,下一層卷積核的數(shù)量就會翻倍。因此卷積濾波器的數(shù)目分別為64、128 和256。
卷積層輸出之后,完成flatten,再輸入給全連接層,全連接層由2 048個神經(jīng)元組成。在每個最大池化層之后引入一個dropout 層,來降低網(wǎng)絡(luò)過擬合的風險。最后,在網(wǎng)絡(luò)的最后一個階段放置一個softmax 層,該層有7個輸出。
為了給CNN 引入非線性,使用了Leaky ReLU 作為激活函數(shù),函數(shù)圖像如圖3。具體參數(shù)如式(7)。最后,損失函數(shù)用分類交叉熵的方法,采用自適應梯度優(yōu)化方法Adam 進行優(yōu)化。
Fig.3 Leaky ReLU functional image圖3 Leaky ReLU 函數(shù)圖像
為了獲得更好的分類性能,使用了多個CNN 模型。算法中采用dropout正則化方式,很好地解決了由于訓練樣本較少,學習到的特征不足而產(chǎn)生的過擬合問題。其中dropout的概率p會影響模型的效果。通常情況下概率p∈[0,0.5]之間,因為如果比例p太小則起不到效果,太大則會導致模型欠擬合。故在{0,0.05,0.10,…,0.45,0.50}范圍內(nèi)確定相對合適的p值。
Fig.4 Effect of different dropout values in different layers on training accuracy圖4 不同層中不同的dropout值對訓練準確率的影響
由圖4中可以看出,CNN模型的結(jié)果會因為概率p的變化而隨之變化,由圖4(a)~圖4(c)可知:FER2013數(shù)據(jù)集中第1 層的p=0.25,第2 層的p=0,第3 層的p=0.5 時效果最好;CK+數(shù)據(jù)集中第1 層的p=0.1,第2 層的p=0.1,第3 層的p=0.4 時效果最好;JAFFE數(shù)據(jù)集中第1 層的p=0.1,第2 層的p=0.1,第3 層的p=0.3 時效果最好。因此建立了3種不同的dropout概率的模型,即C1、C2和C3。改變dropout概率是為了增加模型的多樣性。在C1時,dropout1=0.25,dropout2=0,dropout3=0.5。C2時,dropout1=0.1,dropout2=0.1,dropout3=0.4。C3時,dropout1=0.1,dropout2=0.1,dropout3=0.3,dropout4恒為0.5。整體CNN 模型如圖5 所示。
Fig.5 Adopted CNN model圖5 采用的CNN 模型
為了在分類中使用SIFT 中的關(guān)鍵點描述符,需要一個固定大小的向量。為此,K-means 用于將描述符分組到一些集群中。然后通過計算每個集群中包含的描述符的數(shù)量形成一袋關(guān)鍵點,得到的特征向量的大小為K。
K向量通過4 096 全連接層,以及dropout 層。全連通層的權(quán)值采用L2 范數(shù)正則化,取值為0.01。3 種不同的模式S1、S2、S3都已經(jīng)做過實驗,每個模型的K值分別為K1=256、K2=512 和K3=1 024。最后與C2模式合并,如圖6 所示。
為了提高模型的準確性,使用簡單平均的方法對CNN-ONLY、CNN-SIFT 和CNN-SIFT-AVG 輸出進行模型融合。如圖7 所示。其中CNN-ONLY 僅為C1、C2、C3的普通平均值,如式(8)。CNN-SIFT為S1、S2、S3的普通平均,如式(9)。最后,將6個模型普通平均到CNN-SIFT-AVG 模型中,如式(10)。
Fig.6 Fusion of CNN and SIFT model圖6 CNN 與SIFT 模型融合
Fig.7 Aggregating all models into CNN-ONLY,CNN-SIFT and CNN-SIFT-AVG圖7 將所有模型融合為CNN-ONLY、CNN-SIFT和CNN-SIFT-AVG
xCi表示在Ci模型下的輸入,C(e|xCi)表示在Ci模型下判定為某一表情的概率。xSi表示輸入在Si模式下,由上文可知,S1時K=256,S2時K=512,S3時K=1 024,S(e|xSi)表示在Si模式下判定為某一表情的概率。P1(e|x)表示CNN-ONLY 模型下判定為某一表情的概率;P2(e|x)表示CNN-SIFT 模型下判定為某一表情的概率;P3(e|x)表示CNN-SIFT-AVG 模型下判定為某一表情的概率。由于每個模型都有一個softmax層作為最后一層,因此輸出限制在0 到1 之間。
根據(jù)前面的推倒和分析,以本文模型為例,闡述該方法的具體操作步驟。
步驟1將訓練樣本和測試樣本里的人臉表情圖像大小統(tǒng)一為48×48,并將所有圖像歸一化為零均值和單位方差的向量。
步驟2構(gòu)造CNN 網(wǎng)絡(luò)模型,輸入數(shù)據(jù){xi},利用公式ai=f(e)=f(w*xi+h)計算卷積層的特征向量,w表示卷積層的權(quán)重矩陣;h為偏置量;f(?)表示激活函數(shù)。再根據(jù)式b=max(b1,b2,…,bt),bi為卷積特征向量,t表示有t個卷積核,得到池化層的輸出B=(b1′,b2′,…,bt′)。之后分別以C1、C2、C3為dropout概率值p,利用式(3),隱藏層節(jié)點個數(shù)為y1,y2,…,yi,經(jīng)過dropout 后,i個節(jié)點中有隨機p×i個被置0。得到輸出的特征值后,多個特征值組成一維特征向量D。
步驟3對數(shù)據(jù)庫中的樣本進行SIFT 特征提取,根據(jù)式(6),得到每個關(guān)鍵點描述符,大小為128 的向量S=(s1,s2,…,s128)。再采用K-means 算法針對聚類得簇劃分C={C1,C2,…,Cj},通過計算每個簇中包含的描述符的數(shù)量形成一袋關(guān)鍵點,得到的特征向量的大小為K(S1時K=256,S2時K=512,S3時K=1 024)。
步驟4將步驟3 得到特征向量K與CNN 網(wǎng)絡(luò)的dropout=C2模型提取的特征向量D,利用式F=K°D合并為F,其中°表示以串聯(lián)形式合并兩個特征向量,送入全連接層,將輸出映射到(0,1)的區(qū)間上,利用式q=f(y)=f(WF+B),q表示輸出;W和B表示softmax層的參數(shù)。選出概率最大的類別,作為預測的類別。
步驟5利用式(8)~式(10),將步驟1 中得到的3個dropout模型與步驟4 得到的模型結(jié)果普通平均。
為了驗證本文提出方法的有效性,實驗采用3個數(shù)據(jù)集FER-2013、CK+和JAFFE 來評估本文方法的性能。表1 為FER2013、CK+和JAFFE 數(shù)據(jù)集中每種表情的數(shù)量分布。在實驗之前,將圖像的大小統(tǒng)一為48×48,并將所有圖像歸一化為零均值和單位方差的向量。
本文以Tensorflow 深度學習框架為實驗基礎(chǔ),使用Python3.6 的編程語言,在Windows 10 的操作系統(tǒng)上進行相關(guān)實驗。硬件平臺為:第七代Intel 酷睿i5,Nvidia Geforce GTX 1070Ti GPU,顯存8 GB。
Table 1 Expression quantity distribution of FER2013,CK+and JAFFE dataset表1 FER2013、CK+和JAFFE 數(shù)據(jù)集的表情數(shù)量
圖像大小為48×48 像素,共有7種表情分別用0~6數(shù)字進行標注處理,分別為angry、disgust、fear、happy、sad、surprise、neutral。包含訓練集和測試集,其中訓練集共含有28 709 張圖像,測試集含有3 589 張圖像。圖8展示了FER2013數(shù)據(jù)庫中7種表情的示例圖像。
Fig.8 Sample images of 7 expressions in FER2013 database圖8 FER2013 數(shù)據(jù)庫中7 種表情的示例圖像
CK+數(shù)據(jù)集包含327個表情。屬于小樣本數(shù)據(jù)集(憤怒Angry、輕蔑Contempt、厭惡Disgust、恐懼Fear、快樂Happy、悲傷Sad 和驚訝Surprise)。
為了使實驗與其他實驗和FER2013 的數(shù)據(jù)兼容,刪除了蔑視的表情。用剩下的6個表情中的309張圖片來訓練模型。圖9 展示了CK+數(shù)據(jù)庫中的樣本。
JAFFE 數(shù)據(jù)集是日本ATR(Advanced Telecommunication Research Institute International)的專門用于表情識別研究的基本表情數(shù)據(jù)庫,該數(shù)據(jù)庫中包含了213 幅日本女性的臉。表情庫中共有10個人,每位女性的每種表情有3、4 張,每個人有7 種表情(包含憤怒Angry、中性臉Normal、厭惡Disgust、恐懼Fear、快樂Happy、悲傷Sad 和驚訝Surprise)。圖10展示了JAFFE 數(shù)據(jù)庫中的樣本。
Fig.9 Sample images of 6 expressions in CK+database圖9 CK+數(shù)據(jù)庫中6 種表情的示例圖像
Fig.10 Sample image of 7 expressions in JAFFE database圖10 JAFFE 數(shù)據(jù)庫中7 種表情的示例圖像
對于FER2013 數(shù)據(jù)集,所有的模型都經(jīng)過了28 709個樣本的訓練。其中28 709 張作為訓練集,而3 589 張用作測試集。每個網(wǎng)絡(luò)訓練300個epoch,批處理大小為128。CK+數(shù)據(jù)集中使用所有的309 張圖像進行訓練,每項實驗均按照十折交叉驗證的方法重復10 次。為了防止過擬合,所有網(wǎng)絡(luò)只訓練了20個epoch。JAFFE 數(shù)據(jù)集也采用交叉驗證法,將數(shù)據(jù)集中的表情圖片分成5 份,每次用其中的4 份作為訓練集,剩余的1 份作為測試集。
在訓練過程中均采用隨機初始化權(quán)重和偏置,初始學習率為0.01,最小學習率設(shè)定為0.000 1,記錄訓練的網(wǎng)絡(luò)參數(shù)和每個epoch 的損失。如果驗證損失增加了10%以上,則學習率降低了1/10,并且重新加載之前具有最佳驗證損失的網(wǎng)絡(luò)。將驗證損失最低的模型作為最終的訓練模型。
在本文中,共提出3個模型CNN-ONLY、CNNSIFT和CNN-SIFT-AVG。每一種模型在每一個數(shù)據(jù)集下都進行實驗。表2、表3 和表4 分別為CNN-ONLY模型、CNN-SIFT 模型和CNN-SIFT-AVG 模型下的不同數(shù)據(jù)集于不同表情的識別準確率。
Table 2 Facial expression recognition accuracy of CNN-ONLY model in different data sets表2 CNN-ONLY 模型在不同數(shù)據(jù)集下表情識別準確率 %
Table 3 Facial expression recognition accuracy of CNN-SIFT model in different data sets表3 CNN-SIFT 模型在不同數(shù)據(jù)集下表情識別準確率 %
在FER2013 數(shù)據(jù)庫中,本文的3個模型中識別率最高的一直是Happy(高興),由以上數(shù)據(jù)集分析可知,Happy(高興)的特征比其他表情特征更加明顯。由實驗結(jié)果可知,集成模型對個體有顯著的改進效果,CNN-SIFT 和CNN-SIFT-AVG 模型均優(yōu)于CNNONLY 模型,特別是CNN-SIFT-AVG 模型比其他兩個模型提高了1%左右的精確率,且兩種方法的使用都極大地提高了性能。
Table 4 Facial expression recognition accuracy of CNN-SIFT-AVG model in different data sets表4 CNN-SIFT-AVG 模型不同數(shù)據(jù)集下表情識別準確率 %
本文模型與其他先進模型進行了人臉表情識別的準確率對比,如圖11 所示??梢钥闯?,本文模型較穩(wěn)定,雖然某些表情的識別率略低,但整體識別的準確率略高于其他模型。如表5 所示,對比實驗的Multi-scale CNNs[20]參數(shù)設(shè)置:學習率0.001 并且采用了訓練自動停止策略,當出現(xiàn)過擬合現(xiàn)象時,訓練經(jīng)過100個epoch 后,自動停止并保存模型。Subnet3[21]參數(shù)設(shè)置:batch 為100,動量為0.9,網(wǎng)絡(luò)的權(quán)重采用正態(tài)分布中的隨機數(shù)字初始化,學習率設(shè)置為0.01,逐漸減少到0.001 為止,epoch 的數(shù)量在20 到100 之間。DNNRL[22](deep neural networks with relativity learning)參數(shù)設(shè)置:初始學習率設(shè)定為0.01,最小學習率設(shè)定為0.000 1,每個epoch 都有100個batch,從訓練集中隨機選擇訓練樣本,如果驗證損失增加了10%以上,則學習率降低10%。
Fig.11 Recognition accuracy of models in FER2013 data set圖11 FER2013 數(shù)據(jù)集下幾種模型識別的準確率
Table 5 Comparison of overall accuracy in FER2013 data set with other methods表5 FER2013 數(shù)據(jù)集上與其他方法整體準確率的對比 %
在CK+數(shù)據(jù)集的實驗中發(fā)現(xiàn),隨著表情樣本數(shù)量的減少,CNN-SIFT 和CNN-SIFT-AVG 的性能比CNN-ONLY 模型的準確率和性能有所提高,且CNNSIFT-AVG 模型的性能相對更優(yōu)。圖12 為CK+數(shù)據(jù)集在CNN-SIFT-AVG 模型上實驗的混淆矩陣。由圖可看出,Angry、Fear、Sad 會被輕微混淆,在識別中會導致錯誤,相比其他表情,Happy 表情比其他表情更容易識別。但隨著數(shù)據(jù)集的減少,SIFT 的優(yōu)勢體現(xiàn)出明顯的效果,相比FER2013 數(shù)據(jù)庫,在CK+數(shù)據(jù)庫中,識別的準確率大幅度提高了。圖13 為CK+數(shù)據(jù)集下不同模型識別的準確率比較。表6 為CK+數(shù)據(jù)集上與其他方法整體準確率的對比。
Fig.12 Confusion matrix of CK+data set on CNN-SIFT-AVG model圖12 CK+數(shù)據(jù)集在CNN-SIFT-AVG模型上的混淆矩陣
對比實驗Xu 等[23]的參數(shù)設(shè)置:學習率0.000 01,迭代次數(shù)200,權(quán)值衰減0.000 5,batch 為20。傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置:學習率0.001,最大迭代次數(shù)1 001,batch 為128。Zhang 等[24]的參數(shù)設(shè)置:學習率0.001,迭代次數(shù)100,batch 為30。由實驗結(jié)果可知,本文的模型均優(yōu)于另外幾種模型,不論是每種表情的識別準確率還是整體的識別率,本文識別的準確率相比其他方法至少提高3個百分點,且CNN-SIFTAVG 模型相對更優(yōu)。
Fig.13 Recognition accuracy of models in CK+data set圖13 CK+數(shù)據(jù)集下幾種模型識別的準確率
Table 6 Comparison of overall accuracy with other methods in CK+data set表6 CK+數(shù)據(jù)集上與其他方法整體準確率對比 %
在JAFFE 數(shù)據(jù)集上,本文模型達到了較好的準確率,其中Happy 與Sad 兩種表情識別達到了無差錯的結(jié)果。圖14 為JAFFE 數(shù)據(jù)集在CNN-SIFT-AVG 模型上的混淆矩陣。其中每一行都表示真實的類別,每一列對應的則是預測的類別的概率。圖15 為JAFFE 數(shù)據(jù)集下不同模型識別的準確率比較。表7為JAFFE 數(shù)據(jù)集上與其他方法整體準確率的對比。其中對比實驗中Zhang等[24]的參數(shù)設(shè)置:學習率0.001,迭代次數(shù)100,batch 為30。Yao 等[25]的參數(shù)設(shè)置:最大迭代次數(shù)為2 000,識別率閾值為95%。Lajevardi等[26]則是結(jié)合不同特征如Gabor、LBP(local binary patterns)和HLAC(higher-order local auto correlation)的表情識別。
結(jié)果表明,CNN-SIFT 模型和CNN-SIFT-AVG 模型均優(yōu)于現(xiàn)有模型。特別是CNN-SIFT-AVG 模型在JAFFE 數(shù)據(jù)庫中的識別率達到了98.96%的準確率,與其他方法相比,準確率提高了2 到6個百分點。
Fig.14 Confusion matrix of JAFFE data set on CNN-SIFT-AVG model圖14 JAFFE 數(shù)據(jù)集在CNN-SIFT-AVG模型上的混淆矩陣
Fig.15 Comparison of recognition accuracy of models in JAFFE dataset圖15 JAFFE 數(shù)據(jù)集下幾種模型識別準確率比較圖
Table 7 Comparison of overall accuracy with other methods in JAFFE data set表7 JAFFE 數(shù)據(jù)集上不同方法整體準確率對比 %
由以上實驗結(jié)果可以看出,3個模型的識別率略有不同。對于模型,由式(8)可知,僅僅將C1、C2、C3不同dropout值的卷積神經(jīng)網(wǎng)絡(luò)模型進行簡單平均融合,對于表情的特征提取可能存在一定局限,當訓練數(shù)據(jù)減少時,可能會產(chǎn)生過擬合現(xiàn)象,導致訓練的模型不是特別理想。對于CNN-SIFT 模型,由式(9)可知,將dropout 為C2的網(wǎng)絡(luò)與S1、S2、S3模型得到的結(jié)果進行平均,進而得到結(jié)果。根據(jù)實驗結(jié)果可知,不僅在大數(shù)據(jù)集中的識別率相對較高,當數(shù)據(jù)集減小時,識別率沒有因為訓練數(shù)據(jù)的減少而降低,反而有了更好的效果。這是因為加入了SIFT 提取特征,提高了小數(shù)據(jù)的性能,將SIFT 特征與卷積特征結(jié)合,更增加了輸入特征的多樣性。對于CNN-SIFT-AVG模型,由式(10)可知,是將6個模型采用普通平均模型融合的方法。由于個體學習器準確性越高,多樣性越大,則融合效果越好。因此,CNN-SIFT-AVG 模型對于大數(shù)據(jù)集和小數(shù)據(jù)集的識別率相比其他方法更優(yōu),數(shù)據(jù)集較大時,訓練數(shù)據(jù)足夠,CNN 網(wǎng)絡(luò)模型更加準確,加上SIFT 特征,識別率更高;當數(shù)據(jù)集較小時,SIFT 能夠很好地在小數(shù)據(jù)集上提取特征,將CNN 特征與SIFT 特征融合進行訓練分類,彌補了CNN 網(wǎng)絡(luò)由于訓練數(shù)據(jù)不夠而過擬合的問題,因此在提高了小樣本性能的同時,獲得了較高的識別率。
本文針對提高小樣本數(shù)據(jù)集下表情識別率等問題,提出了一種深度學習下融合不同模型的小樣本表情識別方法。文中已經(jīng)展示了SIFT 特征和卷積神經(jīng)網(wǎng)絡(luò)是如何協(xié)同工作的,這種混合方法綜合了這兩種方法的優(yōu)點。一方面,充分利用了SIFT 不需要大量數(shù)據(jù)提取特征,提高小數(shù)據(jù)的性能的優(yōu)勢;另一方面,不同模型的融合,不僅在大數(shù)據(jù)中表情的識別率有一定提高,同時也解決了CNN 需要大量數(shù)據(jù)訓練的問題,提高了小樣本下表情識別的準確率。由實驗結(jié)果可知,本文的CNN-SIFT-AVG 模型有明顯優(yōu)勢,在很大程度上發(fā)揮了小樣本中SIFT 的作用,數(shù)據(jù)越小,改善效果越明顯。