焦陽(yáng)陽(yáng),黃潤(rùn)才
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
在情感計(jì)算領(lǐng)域中,面部表情可以最有效地表達(dá)出一個(gè)人的情感信息。隨著計(jì)算機(jī)的飛速發(fā)展,研究人員開始嘗試使用機(jī)器自動(dòng)識(shí)別人臉表情。人類的面部表情按照Ekman 和Friesen[1]的定義可分為憤怒、厭惡、恐懼、興奮、悲傷與驚訝等6 類。伴隨著研究的不斷深入,表情識(shí)別準(zhǔn)確率不斷提高,人臉表情識(shí)別也開始廣泛應(yīng)用于人們的日常生產(chǎn)生活中,如醫(yī)療診斷、駕駛員疲勞檢測(cè)以及學(xué)生課堂管理等。
人臉表情識(shí)別按技術(shù)路線可分為3 個(gè)步驟:表情圖像預(yù)處理、特征提取與表情識(shí)別。目前用于提取人臉表情特征的方法有兩種:基于傳統(tǒng)特征的方法與基于深度學(xué)習(xí)的方法。傳統(tǒng)特征提取方法使用不同的編碼算子來(lái)提取圖像的局部信息,其中編碼算子主要有局部二值模式(LBP)[2]、方向梯度直方圖(HOG)[3]和局部圖結(jié)構(gòu)(LGS)等。Abusham[4]于2011 年提出使用局部圖結(jié)構(gòu)來(lái)提取圖像特征,隨后Mohd[5]等針對(duì)LGS 的非對(duì)稱性提出了改進(jìn)后的SLGS。但傳統(tǒng)方法只能提取圖像的局部信息,無(wú)法獲取全局語(yǔ)義信息,因此深度學(xué)習(xí)技術(shù)被不斷運(yùn)用在表情識(shí)別領(lǐng)域。馮楊[6]等設(shè)計(jì)了一個(gè)小尺度卷積核的神經(jīng)網(wǎng)絡(luò)來(lái)提取面部表情特征,提高了表情識(shí)別的準(zhǔn)確率。Jiang[7]等設(shè)計(jì)了一種混合深度分離殘差網(wǎng)絡(luò),用于表情特征提取。Transformer 在最近幾年中被廣泛運(yùn)用在自然語(yǔ)言處理領(lǐng)域中,研究人員也開始嘗試將其運(yùn)用在計(jì)算機(jī)視覺任務(wù)。Alexey[8]等人提出了VIT,將Transformer 移植到了計(jì)算機(jī)視覺領(lǐng)域中,在圖像分類及目標(biāo)檢測(cè)等不同任務(wù)中均獲得了巨大的成功。由于單一方法提取的特征信息不夠豐富與小樣本表情數(shù)據(jù)集的表情樣本不足等問題,不少研究人員開始嘗試融合不同特征以提高特征的表征能力,并嘗試使用遷移學(xué)習(xí)的方法訓(xùn)練神經(jīng)網(wǎng)絡(luò)。Wang[9]等使用MO-HOG 與卷積神經(jīng)網(wǎng)絡(luò)提取的特征進(jìn)行融合。Yang[10]等將幾何特征、紋理特征與ResNet 網(wǎng)絡(luò)提取的特征進(jìn)行結(jié)合,構(gòu)成復(fù)合面部特征進(jìn)行表情識(shí)別。
傳統(tǒng)的LGS 算子表征了圖像的局部信息,但存在一些不足,如采樣范圍小,左右兩邊權(quán)重分配不均勻。本文首先對(duì)LGS 進(jìn)行了改進(jìn),提出了完全局部圖結(jié)構(gòu)(Complete Local Graph Structure,CLGS)特征描述符,通過CLGS 對(duì)表情圖像提取局部圖像特征。隨后通過遷移學(xué)習(xí)的方法,使用視覺注意力機(jī)制對(duì)面部表情進(jìn)行全局特征提取,通過將局部特征與全局特征進(jìn)行級(jí)聯(lián)融合,使表情特征能夠表達(dá)更加豐富的信息,最后使用Softmax 對(duì)表情進(jìn)行分類。
本文提出的人臉表情識(shí)別模型如圖1 所示。首先將原始圖像經(jīng)過預(yù)處理操作,把背景等無(wú)關(guān)因素去除掉,然后對(duì)圖像進(jìn)行分塊處理,分別送入兩條支路提取特征向量。將分塊后的圖像展平成一維向量,在每個(gè)向量位置上添加一個(gè)位置嵌入,得到Transformer 編碼器的輸入向量,經(jīng)過Transformer 處理后得到全局特征向量。與此同時(shí)將分塊后的圖像通過CLGS 特征描述符提取特征,并轉(zhuǎn)換為直方圖形式,得到局部紋理特征。最后將全局特征與局部紋理特征拼接融合,經(jīng)過全連接層后送入Softmax中得到最終預(yù)測(cè)結(jié)果。
圖1 人臉表情識(shí)別模型Fig.1 Facial expression recognition model
在原始圖像中存在著許多對(duì)表情特征提取無(wú)關(guān)的信息,如果直接將原圖像送入模型進(jìn)行處理,對(duì)表情識(shí)別的準(zhǔn)確性有一定的影響。因此需要對(duì)表情圖像進(jìn)行預(yù)處理,包括人臉檢測(cè)、灰度及尺寸歸一化等。檢測(cè)并裁剪出人臉部位,然后將三通道RGB 圖像轉(zhuǎn)換為灰度圖,統(tǒng)一縮放成相同規(guī)格的尺寸大小,得到模型所需的輸入圖像。
Abusham 等提出的局部圖結(jié)構(gòu)(LGS)算子用于描述局部紋理特征,其通過構(gòu)建一個(gè)圖結(jié)構(gòu)來(lái)描述中心像素與周邊像素的關(guān)系,其計(jì)算過程如圖2所示。在中心像素周邊選取5 個(gè)像素點(diǎn),從左側(cè)開始按照?qǐng)D中標(biāo)記的箭頭位置,依次比較箭頭首端與箭頭末端所指像素的大小,大于則將連接兩像素的邊取0,小于取1。沿著圖中標(biāo)記的順序,依次得到8 個(gè)二進(jìn)制數(shù),將其按照排列順序賦予一定的權(quán)重轉(zhuǎn)換為十進(jìn)制數(shù),這個(gè)數(shù)值即為中心像素的LGS 特征值。在圖2 中,得到的8 個(gè)二進(jìn)制數(shù)為00110100,轉(zhuǎn)換為十進(jìn)制數(shù)52。
圖2 LGS 編碼示意圖Fig.2 Diagram of LGS coding
從圖2 可知,LGS 存在著對(duì)左右兩邊像素點(diǎn)利用不均勻與權(quán)重賦予左重右輕等特點(diǎn),左邊采樣兩個(gè)像素點(diǎn),權(quán)重賦予了128、64 與32,而右邊雖然多一個(gè)采樣點(diǎn),但權(quán)重明顯比左邊低。于是SLGS 通過在中心像素兩側(cè)提取相同數(shù)量的像素,解決了采樣不平衡的問題。但SLGS 的采樣范圍僅利用了周邊的一半像素點(diǎn),另一半像素點(diǎn)則沒有利用,并且權(quán)重賦予的問題也沒有解決。因此,本文提出了CLGS描述符對(duì)上述問題進(jìn)行了改進(jìn)。
如圖3 所示,CLGS 描述符通過構(gòu)建兩個(gè)不同的圖結(jié)構(gòu)分別計(jì)算出特征值,描述符采樣范圍擴(kuò)大了一倍。然后根據(jù)圖4 所示的權(quán)重賦予機(jī)制,分別對(duì)計(jì)算完成后的二進(jìn)制值乘以相應(yīng)的權(quán)重得到兩個(gè)特征值,中心像素的兩邊權(quán)重分配更加合理。局部最大特征值能夠更好地反映周邊像素的變化情況,保存更多的紋理信息,因此取最大的那個(gè)值作為中心像素的特征值。將圖像分為16×16 大小的圖像塊,分別處理為CLGS 圖像,再對(duì)這些圖像內(nèi)的特征值進(jìn)行統(tǒng)計(jì)得到特征直方圖,作為圖像的局部特征信息。
圖3 CLGS 示意圖Fig.3 Diagram of CLGS
圖4 權(quán)重賦予示意圖Fig.4 Weight assignment diagram
VIT 通過計(jì)算圖像塊之間的關(guān)系獲得圖像的全局特征,視覺注意力機(jī)制的結(jié)構(gòu)如圖5 所示。
圖5 VIT 示意圖Fig.5 VIT diagram
首先將圖像進(jìn)行裁切,分為16×16 大小的圖像塊,再將圖像塊進(jìn)行展平處理,轉(zhuǎn)換為一維向量。與自然語(yǔ)言處理中的BERT 類似,在輸入序列的最前端添加一個(gè)可學(xué)習(xí)的向量,用于表示分類信息;然后使用可學(xué)習(xí)的一維向量作為位置向量,與圖像向量進(jìn)行相加,保留位置信息。式(1)展示了輸入向量的計(jì)算過程:
將處理得到的向量序列作為編碼器的輸入。在整個(gè)編碼器中,最重要的部件是多頭注意力機(jī)制,由z個(gè)自注意力構(gòu)成。自注意力通過計(jì)算單個(gè)向量與其他向量之間的關(guān)系得到全局注意力表示,其通過可學(xué)習(xí)的3 個(gè)參數(shù)Q、K、V來(lái)進(jìn)行表示。具體的計(jì)算如式(2):
其中,d為輸入向量的維度,輸入向量與3 個(gè)權(quán)重矩陣相乘得到Q、K、V。
在得到單個(gè)自注意力矩陣后,使用多個(gè)自注意力頭,生成多頭注意力。計(jì)算公式如式(3):
其中,wo為權(quán)重矩陣。輸入的向量矩陣首先進(jìn)行歸一化處理,然后送入多頭注意力機(jī)制中,再次經(jīng)過歸一化以及感知機(jī)層,得到輸出向量矩陣。在編碼過程中,編碼器還使用了兩個(gè)殘差連接,其目的是為了防止梯度消失。經(jīng)過多個(gè)編碼器的計(jì)算后,輸出最終的特征向量。
由于表情識(shí)別數(shù)據(jù)集樣本小,而深度學(xué)習(xí)的訓(xùn)練需要大量樣本的支撐,因此遷移學(xué)習(xí)被廣泛運(yùn)用于小樣本任務(wù)中。遷移學(xué)習(xí)指的是首先在一個(gè)與目標(biāo)任務(wù)類似的任務(wù)上進(jìn)行模型的訓(xùn)練,該任務(wù)的樣本量非常大,常用的有ImageNet 數(shù)據(jù)集。在該任務(wù)上訓(xùn)練好模型,然后將模型參數(shù)遷移到目標(biāo)任務(wù)上。遷移學(xué)習(xí)可以解決小樣本數(shù)據(jù)集圖像特征不足的問題,本文使用在ImageNet 上預(yù)先訓(xùn)練過的模型,通過微調(diào)得到全局特征向量。
如前所述,通過CLGS 描述符得到了圖像的局部特征信息后;再通過遷移學(xué)習(xí)的方式,使用VIT 得到了圖像的全局信息。在此基礎(chǔ)上可通過將局部信息與全局信息相融合,得到最終的表情特征向量。融合方法使用串聯(lián)拼接的方式:
其中,Xdeep為全局特征向量;Xclgs為局部特征向量;X為模型最終得到的特征向量。
經(jīng)過全連接層后,通過Softmax 進(jìn)行表情分類。在整個(gè)模型訓(xùn)練過程中,選擇交叉熵?fù)p失函數(shù)作為梯度下降的優(yōu)化函數(shù):
其中,yi為真實(shí)值為預(yù)測(cè)值;N為樣本數(shù)。使用梯度下降的方法不斷縮小預(yù)測(cè)值與真實(shí)值之間的差異。
本文模型使用Pytorch 深度學(xué)習(xí)框架搭建,操作系統(tǒng)為Ubuntu,GPU 為NVIDIA Tesla K80,Python版本為3.8。其中神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置為:優(yōu)化器使用Adam,Batchsize 為64,Epoch 設(shè)置為20。
本文所進(jìn)行的所有實(shí)驗(yàn)均使用CK+[11]與Oulu-CASIA[12]數(shù)據(jù)集。CK+數(shù)據(jù)集包含了123 個(gè)被采集對(duì)象的593 個(gè)表情圖像序列,其中包含憤怒、厭惡、恐懼、中性、興奮、悲傷與驚訝7 種表情,本文選用CK+數(shù)據(jù)集最后三幀的圖像進(jìn)行實(shí)驗(yàn)。Oulu-CASIA 數(shù)據(jù)集共采樣80 個(gè)人的6 種基本表情,對(duì)比CK+數(shù)據(jù)集缺少中性表情,采樣方式分為兩種:可見光與近紅外光,本文使用可見光數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。將兩個(gè)數(shù)據(jù)集均按照8 ∶2 的比例劃分出訓(xùn)練集和測(cè)試集,模型驗(yàn)證使用五折交叉方法。
為了驗(yàn)證本文提出的模型有效性,進(jìn)行了模型消融實(shí)驗(yàn),共設(shè)置了兩組對(duì)照實(shí)驗(yàn)。實(shí)驗(yàn)一僅使用VIT 視覺注意力機(jī)制,實(shí)驗(yàn)二使用未經(jīng)過預(yù)訓(xùn)練的VIT 模型,使模型從頭開始訓(xùn)練。實(shí)驗(yàn)分別在CK+與Oulu-CASIA 數(shù)據(jù)集上進(jìn)行,并與本文模型進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果見表1。
表1 消融實(shí)驗(yàn)結(jié)果Tab.1 Results of ablation experiments
從表1 中可見,本文模型比單一特征提高了8%的準(zhǔn)確率,證明本文將全局特征與局部特征進(jìn)行融合,能夠表達(dá)更加豐富的信息。實(shí)驗(yàn)二的結(jié)果證明了經(jīng)過預(yù)訓(xùn)練的模型比重新開始訓(xùn)練的模型識(shí)別效果更好,能夠提升表情識(shí)別的準(zhǔn)確率。
本文提出了CLGS 特征描述符,為了驗(yàn)證描述符的有效性,選用了不同類型的描述符進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)選用LGS、SLGS 作為參照,最終實(shí)驗(yàn)結(jié)果如圖6 所示。
圖6 紋理特征實(shí)驗(yàn)結(jié)果Fig.6 Experimental results of texture features
從圖6 可知,本文提出的CLGS 在CK+數(shù)據(jù)集上取得了97.4%的準(zhǔn)確率,在Oulu-CASIA 上得到了87.6%的準(zhǔn)確率,均高于其他特征描述符。CLGS對(duì)目標(biāo)周圍像素的利用率均高于其他紋理特征,而改進(jìn)后的權(quán)重賦予機(jī)制對(duì)左右兩邊像素的利用更加合理。
為了反映本文模型對(duì)不同表情的識(shí)別率,繪制了CK+和Oulu-CASIA 數(shù)據(jù)集的表情分類混淆矩陣。
從圖7(a)可以得知,模型對(duì)CK+數(shù)據(jù)集中部分恐懼、自然及悲傷圖像識(shí)別效果較差;在圖7(b)中,悲傷、厭惡及憤怒的識(shí)別率明顯低于其他表情,模型對(duì)于興奮和驚訝兩種表情的識(shí)別率較高。分析可知,識(shí)別率較低的表情其面部動(dòng)作相似度高,動(dòng)作幅度較小,識(shí)別率高的表情面部動(dòng)作幅度較大,特征比較明顯。
圖7 混淆矩陣Fig.7 Confusion matrix
表2 展示了本文提出的方法與其它主流表情識(shí)別算法的識(shí)別率對(duì)比。經(jīng)過對(duì)比,無(wú)論是傳統(tǒng)方法還是深度學(xué)習(xí)方法,本文模型在CK+與Oulu-CASIA 數(shù)據(jù)集上的識(shí)別準(zhǔn)確率均高于表中所列其它方法,證明了本文方法的有效性。
表2 與其他算法識(shí)別率對(duì)比Tab.2 Comparison of recognition rate with other algorithms
本文對(duì)傳統(tǒng)LGS 算子進(jìn)行了改進(jìn),提出的CLGS 算子能更加合理地表示出圖像的局部紋理信息,并通過遷移學(xué)習(xí)的方式提取了表情的全局特征,將局部特征與全局特征進(jìn)行融合與表情分類。在CK+和Oulu-CASIA 上的實(shí)驗(yàn)證明了本文表情識(shí)別模型的有效性。由于模型還存在對(duì)特定表情識(shí)別準(zhǔn)確率不高的問題,下一步將繼續(xù)研究如何提高難區(qū)分表情的識(shí)別率。