郭昕剛, 王 帥, 張培棟, 梁錦明
(長春工業(yè)大學(xué) 計算機(jī)科學(xué)與工程學(xué)院, 吉林 長春 130012)
面部表情是交流過程中的微妙信號,理解面部表情是理解溝通中的重要部分。近年來,在計算機(jī)視覺領(lǐng)域中,研究者從視頻或圖像中識別基本的人類表情以解決面部表情識別問題。部分研究從靜態(tài)圖像中識別面部表情,這種方法在提取空間信息方面是有效的,但卻不能很好地捕捉到空間信息表達(dá)過程中的形態(tài)學(xué)和語境變化。目前,表情識別方法主要是利用時間序列來解決,并且利用空間和時間變化提供更好的識別系統(tǒng)?;谏疃葘W(xué)習(xí)的面部表情識別主要從預(yù)處理、深度特征學(xué)習(xí)和面部表情分類三個方面進(jìn)行不斷地優(yōu)化。在預(yù)處理中主要有人臉檢測、人臉對齊、數(shù)據(jù)增強、人臉歸一化等過程,MTCNN[1]人臉檢測算法以快速的檢測速度、高準(zhǔn)確率、模型小的特點受到廣大研究者的認(rèn)可,主流人臉對齊采用SDM[2]算法,人臉歸一化則主要有亮度歸一化和姿態(tài)歸一化。在深度特征學(xué)習(xí)中,主要是基于CNN的網(wǎng)絡(luò)模型,能夠達(dá)到特別高的特征表達(dá)能力。另外,有基于DBN網(wǎng)絡(luò)的特征提取,還有一部分是基于序列建模的RNNs。在面部表情分類中,可以基于深度學(xué)習(xí),直接學(xué)習(xí)特征,預(yù)測概率,也可以把學(xué)習(xí)的深度特征用SVM等淺層分類器進(jìn)行分類。
讓計算機(jī)很好地識別人臉表情并不容易,其中存在兩個問題:
1)雖然目前人臉表情數(shù)據(jù)集很多且各式各樣,但是由于大部分?jǐn)?shù)據(jù)集的表情都是從某特定角度由攝像機(jī)拍攝下來的,并且表情圖像的數(shù)量也不多,因此訓(xùn)練出來的模型存在著一定的不確定性,對隨機(jī)的新數(shù)據(jù)泛化能力較弱,魯棒性很低;
2)傳統(tǒng)LeNet-5神經(jīng)網(wǎng)絡(luò)沒有考慮到低層次的細(xì)節(jié)特征,隨著網(wǎng)絡(luò)深度加深,會出現(xiàn)梯度消失或爆炸問題[3]。
文中提出基于興趣區(qū)域跨層連接LeNet-5神經(jīng)網(wǎng)絡(luò)的人臉表情識別算法,基于興趣區(qū)域(ROI)思想對表情數(shù)據(jù)集做8種處理,再運用跨層連接的方法改進(jìn)LeNet-5神經(jīng)網(wǎng)絡(luò),將低層網(wǎng)絡(luò)特征也考慮在內(nèi)。實驗仿真表明,該算法不僅提高了人臉表情識別的準(zhǔn)確率,還加強了訓(xùn)練模型的魯棒性。
Kuo C M等[4]提出了一種基于圖像幀及圖像序列的表情識別架構(gòu),在性能相當(dāng)?shù)那闆r下,極大減少了卷積核個數(shù),緩解了實驗參數(shù)存儲問題,運用混合光照增強方案緩解了訓(xùn)練過程中的過擬合問題;Li M等[5]提出了一個深度卷積網(wǎng)絡(luò)模型,作為身份感知的人臉屬性轉(zhuǎn)換器,共有兩個階段,第一階段采用GAN的架構(gòu)完成圖片的轉(zhuǎn)換,第二階段分兩種不同屬性,對于轉(zhuǎn)換后的圖片進(jìn)一步加工增強,獲取最終屬性轉(zhuǎn)換圖片;Liu Y等[6]提出MPCNN網(wǎng)絡(luò)來充分利用有限的數(shù)據(jù),對多角度的面部表情進(jìn)行識別,識別過程分為三步:
1)對于一張人臉圖像,先得到不同的面部區(qū)域和尺寸,利用訓(xùn)練好的多通道卷積網(wǎng)絡(luò)得到特征;
2)將特征輸入到多尺度融合網(wǎng)絡(luò)中得到組合的特征,該特征用于判斷角度;
3)根據(jù)已知的角度輸入到特定的表情網(wǎng)絡(luò)中,得到最終結(jié)果。
Khor H Q等[7]提出了一個豐富的長期遞歸卷積網(wǎng)絡(luò)(ELRCN),該網(wǎng)絡(luò)首先通過CNN模塊將每個表情幀編碼成特征向量,然后將特征向量通過一個長-短期記憶(LSTM)模塊,最終得到較好的表情識別效果;Emambakhsh M等[8]用比較經(jīng)典的手動特征加分類器方案,針對鼻子這類表情不變的部位展開分析,得到很好的表情魯棒識別結(jié)果;Yong Li等[9]提出一種基于視頻流的自監(jiān)督特征表達(dá)方法,通過利用巧妙的自監(jiān)督約束信號,得到提純的面部動作特征用于表情識別。該方法能夠在不依賴面部動作單元標(biāo)簽的前提下,從人臉視頻數(shù)據(jù)中自動學(xué)習(xí)面部動作單元表征,用于后續(xù)識別任務(wù)時,只需要利用訓(xùn)練數(shù)據(jù)訓(xùn)練一個分類器即可,顯著減少了所需的訓(xùn)練數(shù)據(jù),并提升了模型的泛化能力;Xia B等[10]通過3D人臉研究了面部表情與性別的關(guān)系,證明了面部表情會影響3D面部中呈現(xiàn)的性別模式,在同一表達(dá)式中,訓(xùn)練和測試時性別識別性能會提高,該實驗直接提取面部表情形成的形態(tài)變化作為特征,用于基于表達(dá)的性別識別;張琳琳等[11]將卷積神經(jīng)網(wǎng)絡(luò)的單通道全連接層改為雙通道,構(gòu)建并訓(xùn)練了一個新的雙通道卷積神經(jīng)網(wǎng)絡(luò)模型以增強模型的特征表達(dá)能力。
由于大部分?jǐn)?shù)據(jù)集的表情都是從某特定角度由攝像機(jī)拍攝下來的,并且表情圖像的數(shù)量也不多,因此訓(xùn)練出來的模型存在一定的不確定性,對隨機(jī)的新數(shù)據(jù)泛化能力較弱,魯棒性很低,利用ROI區(qū)域來解決這個問題。
Xavier等[12]進(jìn)行深度卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,為了增大訓(xùn)練數(shù)量,通過切割不同尺度區(qū)域,把一張圖片切割成多張圖片。文中在進(jìn)行訓(xùn)練時,吸取Xavier方法的精髓,剖析人臉生物學(xué)特點,專門針對要訓(xùn)練的人臉表情庫做了改進(jìn),9個ROI區(qū)域如圖1所示。
首先,對人臉表情庫做了8種改進(jìn)處理,加上表情庫本身的數(shù)據(jù),共9種不同的ROI區(qū)域。這些ROI區(qū)域都是通過一些常見手段處理的,包括切割、遮擋、鏡像、中心聚焦。在進(jìn)行設(shè)置ROI處理之前,需先進(jìn)行人臉識別檢測人臉,盡可能地用人臉填充整個圖像區(qū)域,以降低誤差。ROI設(shè)置方案的關(guān)鍵點是通過檢測眼睛、鼻子和嘴的變化識別人臉表情。
ROI方案還有一個特點就是使表情數(shù)量擴(kuò)大至9倍,減弱了因為表情庫的表情數(shù)量少帶來的問題,增強模型對人臉表情的泛化能力。這種擴(kuò)大的有效性在于不同的ROI區(qū)域之間存在聯(lián)系、相互補充,增強了預(yù)測目標(biāo)的信度。
傳統(tǒng)的LeNet-5網(wǎng)絡(luò)用來識別手寫數(shù)字,用在人臉表情識別上效果很不理想。這是由LeNet-5網(wǎng)絡(luò)本身的特點造成的,即從不同的卷積核中自行提取特征,使數(shù)據(jù)經(jīng)過簡單處理后送往高層網(wǎng)絡(luò)進(jìn)行分類識別。這種特點就使得低層次的特征被忽略,網(wǎng)絡(luò)不斷地進(jìn)行加深,困難度不斷提升,梯度消失或爆炸發(fā)生的可能大大提高。為了解決這個問題,跨層連接的結(jié)構(gòu)應(yīng)運而生,如Srivastava等[13]提出Highway Networks結(jié)構(gòu),這種結(jié)構(gòu)提供了一種門限機(jī)制,使得部分特征經(jīng)過處理通過網(wǎng)絡(luò)層,部分特征不處理直接通過網(wǎng)絡(luò)層。該結(jié)構(gòu)更容易優(yōu)化,并且在CIFAR-10數(shù)據(jù)集上表現(xiàn)優(yōu)于Romero等[14]提出的FitNets;He等[15]提出深度殘差網(wǎng)絡(luò)也是利用跨層連接的思想,不僅層數(shù)很多,而且在ImageNet和COCO等任務(wù)中表現(xiàn)很理想;Sun等[16]提出的PeepId網(wǎng)絡(luò)中,也將最后的池化層和卷積層與全連接層相連達(dá)到很好的效果?;谝陨涎芯糠椒ǎ闹袑⒖鐚舆B接的方法運用在LeNet-5網(wǎng)絡(luò)上,使兩個池化層與全連接層結(jié)合起來組成新的結(jié)構(gòu),如圖2所示。
網(wǎng)絡(luò)包括1個輸入層、3個卷積層、2個池化層、1個全連接層和1個輸出層。Input層為輸入層,輸入的表情圖片像素為32×32。Layer1層為卷積層,該層有6個特征圖,輸入32×32像素圖片,分別與6個5×5像素的卷積核進(jìn)行卷積運算,得到28×28像素的特征圖。Layer2層為池化層,28×28像素的特征圖經(jīng)過池化得到14×14像素的特征圖。Layer3層為卷積層,該層有16個特征圖,上層得到14×14像素的圖片,分別與16個5×5像素的卷積核進(jìn)行卷積運算,得到10×10像素的特征圖。Layer4層為池化層,10×10像素的特征圖經(jīng)過池化得到5×5像素的特征圖。Layer5層為卷積層,該層有120個特征圖,上層得到5×5像素的圖片分別與120個5×5像素的卷積核進(jìn)行卷積運算,得到1×1像素的特征圖。Layer6層為全連接層,共有84個單元。Output層為輸出層,輸出7種表情類型。
計算過程如下:
1)設(shè)卷積層輸入為X,
(5)
式中:x----輸入X中卷積區(qū)域M里的元素;
w----卷積核中的元素;
m,n----卷積核大小;
b----偏置;
f(·)----ReLU激活函數(shù)。
2)設(shè)池化層輸入為Y,
pool=down(max(yi,j)),i,j∈p
(6)
式中:y----池化層輸入Y中池化區(qū)域p中的元素;
down(·)----下采樣過程,保留最大值。
3)設(shè)全連接層輸入為Z,
full=f(w×z+b),
(7)
式中:z----輸入Z中的元素;
w----權(quán)值;
b----偏置;
f(·)----ReLU激活函數(shù)。
4)設(shè)輸出層輸入X,
(8)
式中:w----權(quán)值;
k----總類別數(shù)。
式(8)為Softmax分類器的假設(shè)函數(shù),計算輸入分類為類別j時的概率。損失函數(shù)
(9)
式中:c{·}----示性函數(shù),c{值為真的表達(dá)式}=1,c{值為假的表達(dá)式}=0。
然后要進(jìn)行的是反向傳播,第一步先計算每一層反饋傳遞誤差
(10)
式中:°----矩陣乘法或向量乘法;
δ7----Output層的反饋傳遞誤差;
out----實際輸出;
y----目標(biāo)輸出;
δ6----Layer6層的反饋傳遞誤差;
w7----權(quán)值;
f′----ReLU激活函數(shù)導(dǎo)數(shù);
δ5----Layer5層的反饋傳遞誤差;
w6----權(quán)值,因為是部分連接,故只有1 177≤i≤1 260是有效的;
δ4----Layer4層的反饋傳遞誤差;
w5----卷積核;
?----外卷積運算;
δ3----Layer3層的反饋傳遞誤差;
up(·)----進(jìn)行上采樣;
δ2----Layer2層的反饋傳遞誤差,與Layer4層相似;
δ1----Layer1層的反饋傳遞誤差,與Layer3層相似。
權(quán)值和偏置的偏導(dǎo)數(shù)計算方法如下
(11)
式中:f6、f5、f4、f3、f2----分別為各層的特征圖;
⊙----內(nèi)卷積。
文中所有實驗均在pycharm上實現(xiàn)。硬件平臺基于ubuntu 操作系統(tǒng),GPU型號為GEFORCE GTX 1080 Ti。
實驗使用的數(shù)據(jù)集為JAFFE數(shù)據(jù)集和CK+數(shù)據(jù)集。JAFFE數(shù)據(jù)集是日本九州大學(xué)建立的日本女性面部表情數(shù)據(jù)集,采用6種基本表情構(gòu)建,此數(shù)據(jù)集每種表情有3~4張,共有213張。列舉數(shù)據(jù)集中表情圖片如圖3所示。
CK+數(shù)據(jù)集是2010年基于Cohn-Kanda數(shù)據(jù)集擴(kuò)展而來的,其中包含了123個人的表情,共593個圖片序列。列舉數(shù)據(jù)集中表情圖片如圖4所示。
首先將數(shù)據(jù)集中的所有表情圖像進(jìn)行裁剪,大小統(tǒng)一為32×32像素。再將裁剪后的數(shù)據(jù)集復(fù)制一份,分為A份和B份。將B份數(shù)據(jù)集再根據(jù)本算法的ROI方案進(jìn)行處理。A份和B份中JAFFE數(shù)據(jù)集分為3份,其中2份作為訓(xùn)練集,1份作為測試集;CK+數(shù)據(jù)集分為5份,其中4份作為訓(xùn)練集,1份作為測試集。
將A份和B份數(shù)據(jù)集用LeNet-5網(wǎng)絡(luò)進(jìn)行實驗,其中JAFFE數(shù)據(jù)集和CK+數(shù)據(jù)集的正確率結(jié)果見表1。
表1 LeNet-5網(wǎng)絡(luò)下A、B正確率對比 %
通過表1可以看出,在傳統(tǒng)LeNet-5網(wǎng)絡(luò)下,B份數(shù)據(jù)集因為經(jīng)過ROI方案處理,正確率比A份高4%~5%。但是,無論是JAFFE數(shù)據(jù)集還是CK+數(shù)據(jù)集的正確率都不高,這是由于LeNet-5網(wǎng)絡(luò)自身特點造成的,LeNet-5網(wǎng)絡(luò)本身是用來訓(xùn)練手寫數(shù)字識別的,而表情圖片的特征比手寫數(shù)字圖片復(fù)雜的多,僅用高層網(wǎng)絡(luò)訓(xùn)練是不可行的。
將A份和B份數(shù)據(jù)集采用文中算法,即改進(jìn)后的LeNet-5網(wǎng)絡(luò)進(jìn)行實驗,其中JAFFE數(shù)據(jù)集和CK+數(shù)據(jù)集的正確率結(jié)果分別見表2和表3。
表2 改進(jìn)網(wǎng)絡(luò)下JAFFE數(shù)據(jù)集正確率 %
表3 改進(jìn)網(wǎng)絡(luò)下CK+數(shù)據(jù)集正確率 %
實驗結(jié)果表明,無論是JAFFE數(shù)據(jù)集還是CK+數(shù)據(jù)集,經(jīng)過改進(jìn)網(wǎng)絡(luò)之后正確率都得到顯著提高,因為改進(jìn)網(wǎng)絡(luò)不僅考慮到低層次的特征,還對特征較復(fù)雜的表情圖像更為適合。比較A數(shù)據(jù)集與B數(shù)據(jù)集,發(fā)現(xiàn)經(jīng)過ROI方案處理后,B數(shù)據(jù)集得到的準(zhǔn)確率也有一定的提升。
卷積神經(jīng)網(wǎng)絡(luò)為人類在機(jī)器學(xué)習(xí)領(lǐng)域帶來巨大的價值,有力推動了人工智能產(chǎn)業(yè)的發(fā)展。文中提出一種結(jié)合ROI與改進(jìn)的LeNet-5神經(jīng)網(wǎng)絡(luò)人臉表情識別算法,利用ROI感興趣區(qū)域方案和跨層連接的思想,解決了數(shù)據(jù)集弊端帶來的問題,同時解決了傳統(tǒng)LeNet-5網(wǎng)絡(luò)問題,提高了訓(xùn)練模型對新數(shù)據(jù)的泛化能力和魯棒性,達(dá)到了較好的面部表情識別效果。