劉 勁,羅曉曙,,徐照興
1.廣西師范大學(xué) 電子工程學(xué)院,廣西 桂林 541004
2.江西服裝學(xué)院 大數(shù)據(jù)學(xué)院,南昌 330000
面部表情是人類傳達(dá)情感狀態(tài)和意圖最直接的外部表現(xiàn)之一,賦予機器感知并理解人類的情緒變化,是實現(xiàn)人機交互的重要目標(biāo)。近年來隨著人工智能的迅速發(fā)展,人臉表情識別(facial expression recognition,F(xiàn)ER)在智慧醫(yī)療、疲勞駕駛檢測、社交機器人以及在線課堂教學(xué)效果評價等諸多領(lǐng)域有著廣泛的應(yīng)用前景。但由于人臉表情所特有的復(fù)雜性和微妙性,在實際采集表情圖像時,通常會由于表情強度、頭部姿勢、光照變化等因素,造成不同表情樣本之間類內(nèi)差異大、類間差距小的問題,使模型的識別準(zhǔn)確率降低。因此,人臉表情識別仍面臨著巨大挑戰(zhàn)。
傳統(tǒng)的人臉表情識別方法主要依賴人工設(shè)計的特征提取器,其一般關(guān)注幾何特征和紋理特征,這需要大量的專業(yè)知識,同時模型的泛化能力和魯棒性不足。近些年,隨著深度學(xué)習(xí)在計算機視覺領(lǐng)域的快速發(fā)展,其被成功地應(yīng)用在人臉表情識別領(lǐng)域。深度學(xué)習(xí)通過誤差優(yōu)化算法和梯度反向傳播來進(jìn)行更新迭代提取特征,這相較于傳統(tǒng)方法可以提取到更深層次、更抽象的特征。但深度學(xué)習(xí)在使表情識別準(zhǔn)確率提升的同時,也會導(dǎo)致參數(shù)量和計算量(floating point operations,F(xiàn)LOPs)的急劇增加,影響實際應(yīng)用。He等人[1]利用恒等映射構(gòu)造的殘差網(wǎng)絡(luò)(residual network,ResNet)通過不斷疊加卷積的層數(shù)可以達(dá)到152層的深度,其FLOPs達(dá)到了11.3×109,而這相較于ResNet-18的FLOPs提升了6.3倍。雖然更大更深的網(wǎng)絡(luò)模型效果更好,但是模型運行時對所需要的硬件配置要求也越高,而在實際生產(chǎn)與應(yīng)用環(huán)境中,設(shè)備的配置水平往往受到成本限制,過高的配置需求不利于模型的實際應(yīng)用。Zhou等人[2]利用多任務(wù)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)來完成人臉檢測,并結(jié)合殘差模塊和深度可分離卷積模塊,以減少網(wǎng)絡(luò)的參數(shù)。Kong等人[3]提出了一種基于注意力機制和關(guān)鍵區(qū)域融合的輕量級面部表情識別方法,為了降低計算復(fù)雜度,使用輕量級卷積神經(jīng)網(wǎng)絡(luò)作為表情分類的基本識別模型,這在一定程度上減少了網(wǎng)絡(luò)的計算量。Ni等人[4]提出的多尺度特征融合注意力的輕量級人臉表情識別方法,利用改進(jìn)的殘差模塊與深度可分離卷積來優(yōu)化網(wǎng)絡(luò)參數(shù)??梢钥闯?,在人臉表情識別領(lǐng)域除了在繼續(xù)提高識別準(zhǔn)確率的同時,也應(yīng)考慮如何壓縮模型的計算開銷。
1978年,Ekman等人[5]發(fā)表的跨文化研究中首次定義了六種基本面部表情:高興、傷心、生氣、害怕、厭惡和驚訝。兩年后,心理學(xué)家Plutchik等人[6]的研究表明:人類的大多數(shù)情緒都是由基本面部表情組成。在現(xiàn)實世界中,某一靜態(tài)的人臉表情圖像往往由不同強度的基本情緒組成,有復(fù)雜的情感意圖,但表情圖像卻只對應(yīng)一個標(biāo)簽。由于這種標(biāo)簽信息量不足所帶來的模糊性導(dǎo)致的歧義表情,使得表情識別的效果嚴(yán)重受限,本文通過標(biāo)簽平滑(label smoothing,LS)[7]學(xué)習(xí)來解決單標(biāo)簽無法有效描述復(fù)雜情感傾向的問題,可以進(jìn)一步提高FER模型的識別性能。此外,標(biāo)簽平滑還可以緩解由數(shù)據(jù)集標(biāo)注者的主觀性所造成的噪聲問題[8]。
根據(jù)上述問題的分析,本文提出了一種通過標(biāo)簽平滑學(xué)習(xí)緩解歧義表情的輕量級人臉表情識別方法。給定一張人臉表情圖像,本方法首先利用改進(jìn)后更輕量的ShuffleNet-V2進(jìn)行人臉表情特征提取,并緩解了ShuffleNet模型中倒轉(zhuǎn)殘差結(jié)構(gòu)可能導(dǎo)致信息丟失的問題。此外,由于人臉表情是由嘴巴、眼睛等關(guān)鍵點的肌肉運動所決定,因此在網(wǎng)絡(luò)模型中融入了設(shè)計的通道空間關(guān)鍵權(quán)重推斷模塊,這有利于提高網(wǎng)絡(luò)對人臉表情重要特征信息的表征能力,而該過程并不會大量增加模型的計算復(fù)雜度。最后,將網(wǎng)絡(luò)輸出的硬標(biāo)簽通過標(biāo)簽平滑生成軟標(biāo)簽分布監(jiān)督網(wǎng)絡(luò)學(xué)習(xí),減少歧義表情的影響,以滿足實際人臉表情識別的需要。實驗結(jié)果表明,所提方法在保持較低計算開銷的情況下,在主流數(shù)據(jù)集上較現(xiàn)有的一些表情識別方法有較好的識別性能提升。
傳統(tǒng)的標(biāo)準(zhǔn)卷積既過濾輸入,又將過濾后的輸出進(jìn)行組合,最終形成一組新的輸出。當(dāng)大小為K×K的卷積核作用在大小為H×W的輸入特征圖上時,令輸入、輸出的通道數(shù)分別為k和N,可得標(biāo)準(zhǔn)卷積的計算量為H×W×k×(K×K×N)。深度可分離卷積將標(biāo)準(zhǔn)卷積分解為一個深度卷積(depthwise convolution)和一個點卷積(pointwise convolution),如圖1所示。深度卷積對每一個通道(深度)分別進(jìn)行空間卷積,并對輸出進(jìn)行拼接,完成對輸入特征圖的過濾,其計算量為H×W×k×(K×K×1)。點卷積過程類似于標(biāo)準(zhǔn)卷積,是對每個像素點在不同通道上進(jìn)行線性組合(信息融合),因此保留了特征圖原有的平面結(jié)構(gòu)、調(diào)控深度。相較于深度卷積,點卷積具有改變通道數(shù)的能力,具有實現(xiàn)升維或降維的能力,其計算量為H×W×k×(1×1×N),可得深度可分離卷積總的計算量為H×W×k×(K×K+N),而這僅為標(biāo)準(zhǔn)卷積計算量的。由此可見,相較于標(biāo)準(zhǔn)卷積,深度可分離卷積能夠大幅度減少計算參數(shù),實現(xiàn)網(wǎng)絡(luò)的輕量化。

圖1 標(biāo)準(zhǔn)卷積與深度可分離卷積運算過程Fig.1 Operation process of standard convolution and depth-separable convolution
ShuffleNet網(wǎng)絡(luò)[9]通過深度可分離卷積構(gòu)建倒轉(zhuǎn)殘差模塊,并堆疊緊湊型算子(如深度卷積)以降低模型計算復(fù)雜度,網(wǎng)絡(luò)中的倒轉(zhuǎn)殘差模塊可分為兩種結(jié)構(gòu),一種是每個階段的第一個DownBlock,由于需要下采樣操作并升維,所以將輸入直接復(fù)制為兩份,分別經(jīng)過Branch1和Branch2后,將提取到的特征沿通道維度連接起來進(jìn)行合并,然后將合并后的通道以交錯的方式重新排列,這種Channel Shuffle操作實現(xiàn)了兩個分支之間的信息通信。另外一種普通的BasicBlock是將特征映射的通道分為兩部分,一部分保留原始狀態(tài)實現(xiàn)恒等映射,另一部分輸入到特征提取器中,最后將兩分支進(jìn)行Concat和Channel Shuffle操作,以實現(xiàn)淺層的部分通道周期性地融合到網(wǎng)絡(luò)的深層,達(dá)到特征重用的效果。圖2是以ShuffleNet中Stage2階段為例繪制的下采樣DownBlock和普通BasicBlock。

圖2 Stage2階段下采樣Block和普通BlockFig.2 Downsampling Block and BasicBlock in Stage2
通常在深度卷積的前或后使用1×1點卷積出于兩種目的,一是融合通道間的特征信息,彌補深度卷積對通道間信息融合功能的缺失;另一種是實現(xiàn)輸出通道數(shù)的升維或降維,例如MobileNet中的Inverted Residual模塊。ShuffleNet作為MobileNet的改進(jìn)版本,在每個Block的Branch2中都使用了兩個1×1點卷積,這對于本文更輕量的人臉表情識別任務(wù)來說有些多余,因為此處并沒有升維或者降維的需求,其只是為了融合深度卷積的通道信息,而ShuffleNet提出的Channel Shuffle操作也有利于通道信息的融合,因此這里實際上只需一個1×1卷積就足夠了。為了減少冗余,使模型更加輕量化,本文將圖2中紫紅色虛線框的1×1卷積進(jìn)行剪裁,以實現(xiàn)Light_ShuffleNet版本。
通過實驗觀察ShuffleNet中的計算量分布,發(fā)現(xiàn)模型中主要的計算量都集中在1×1卷積上,而在深度卷積上的計算量占比很小,這也表明了本文對1×1卷積的剪裁具有實際意義。此外,Peng等人[10]的研究表明,大卷積核對語義信息具有更強的表征能力,因此本文對深度卷積的卷積核進(jìn)行擴張,這樣既不會引入太多的計算比重,又能提升人臉表情識別效果,將Block中的3×3深度卷積均擴張成5×5深度卷積,以此構(gòu)成K5_ShuffleNet網(wǎng)絡(luò)。為了更好地表現(xiàn)網(wǎng)絡(luò)的非線性建模性能,同時防止梯度彌散,減少參數(shù)間的依存關(guān)系,在倒轉(zhuǎn)殘差結(jié)構(gòu)中均使用了ReLU激活函數(shù),定義如下:
然而ReLU也有缺陷,對于輸入不大于0的神經(jīng)元將會永遠(yuǎn)被抑制,導(dǎo)致梯度始終為0,使權(quán)重?zé)o法更新,這會影響整個模型的最終表達(dá)。為此,本文將ReLU替換為Mish激活函數(shù):
圖3展示了ReLU與Mish激活函數(shù)的對比圖,可以看出,Mish激活函數(shù)對負(fù)值保留了一定的梯度流,而不像ReLU中的硬零邊界,這有利于特征信息的流動。此外,更重要的是Mish曲線上的每一點都是平滑的,這將允許更好的信息深入神經(jīng)網(wǎng)絡(luò),從而取得更好的識別準(zhǔn)確率和泛化性。

圖3 ReLU與Mish激活函數(shù)對比圖Fig.3 Comparison of Relu and Mish activation functions
人臉表情識別往往與局部細(xì)節(jié)特征有關(guān),例如眉毛、眼睛、嘴巴等部位可以更容易地表現(xiàn)出不同情緒,人眼在識別表情時也往往關(guān)注這些區(qū)域。注意力機制作為一種模仿人的認(rèn)知行為所提出的理論,在計算機視覺領(lǐng)域取得了優(yōu)異的性能。為了進(jìn)一步豐富骨干網(wǎng)絡(luò)的結(jié)構(gòu),提升其性能,本文依次引入了通道注意力機制和空間注意力機制[11],實現(xiàn)對不同關(guān)鍵區(qū)域的注意權(quán)重推斷(attention weight inference for key regions,Key-att),這不僅有利于識別不同表情特征的整體形態(tài),還可以提高關(guān)鍵區(qū)域特征的表征能力,抑制不必要的特征。此外,由于Key-att模塊內(nèi)部并無大量卷積結(jié)構(gòu),只有少量的池化層和特征融合操作,這使得該模塊具有較小的參數(shù)量和FLOPs,保持了本文模型的輕量化。對于給定的輸入特征圖F∈?C×H×W,Key-att模塊會依次沿著輸入特征的通道和空間維度推斷注意力圖,分別生成一維的通道注意力Mc∈?C×1×1和二維的空間注意力Ms∈?1×H×W,這一過程可以描述為:
式中,?表示對應(yīng)元素相乘。最后將得到的注意力圖F″與輸入特征圖相乘進(jìn)行關(guān)鍵權(quán)重自適應(yīng)特征優(yōu)化。
1.2.1 通道維度權(quán)重推斷
隨著網(wǎng)絡(luò)逐層運算的加深,特征圖的通道數(shù)會增加,而每個通道對關(guān)鍵信息的貢獻(xiàn)是不同的,因此當(dāng)通道數(shù)過多時,將會產(chǎn)生信息冗余,本文首先采用通道注意力模塊解決這一問題,其通過池化層壓縮特征圖的空間維度,進(jìn)行通道計算,進(jìn)而篩選出能夠捕獲人臉特征的最佳濾波器。
Ekman等人[5]提出的面部行為編碼系統(tǒng)(facial action coding system,F(xiàn)ACS)揭示了面部肌肉塊的運動規(guī)律,F(xiàn)ACS將人臉劃分為若干個運動單元(action unit,AU)描述面部局部細(xì)節(jié)的信息變化。此前的研究大多偏向采用平均池化作為壓縮和膨脹模塊,在人臉表情識別任務(wù)中,不同的面部表情與特定區(qū)域的AUs相關(guān),模型更應(yīng)該關(guān)注與當(dāng)前表情關(guān)聯(lián)度最高的局部特征,而平均池化并不能很好地勝任表情特征的提取任務(wù),基于此,本文所設(shè)計的Key-att模塊是基于特征圖width和height的最大池化方法,其中通道注意力模塊如圖4所示。

圖4 通道注意力Fig.4 Channel attention module
輸入特征圖F∈?C×H×W,首先通過最大池化方法來聚合特征信息,得到兩個大小為C×1×1的特征圖Fmax,然后將兩個空間描述特征Fmax送入一個權(quán)重共享的多層感知機(MLP)中,該共享網(wǎng)絡(luò)是由含有一個隱藏層的感知機所構(gòu)成,輸出層的尺寸仍為C×1×1。將MLP輸出的兩個特征圖進(jìn)行逐元素求和,再經(jīng)過Sigmoid激活函數(shù)操作,最終生成通道注意力推斷權(quán)重Mc∈?C×1×1。將通道特征圖Mc∈?C×1×1與輸入特征圖F∈?C×H×W逐元素相乘,即可得到縮放后的通道細(xì)化特征F'∈?C×H×W,該通道細(xì)化特征F'將作為空間注意力模塊的輸入特征。
1.2.2 空間維度權(quán)重推斷
在人臉表情圖像中,人臉五官的位置具有一定的空間關(guān)系,眼睛、嘴巴等關(guān)鍵部位可以更容易地區(qū)分不同人臉表情,網(wǎng)絡(luò)更應(yīng)該關(guān)注這些重點區(qū)域,而卷積操作對整張圖像的運算卻是一樣的。為了解決該問題,本文在通道注意力的基礎(chǔ)上引入了空間注意力模塊,利用特征間的位置關(guān)系突出具有辨別能力的重要局部特征信息,將二者相結(jié)合構(gòu)成的Key-att模塊能夠同時獲得關(guān)鍵的通道特征以及特征間的空間關(guān)系,最終將得到更加精細(xì)化的特征圖,利于人臉表情的識別,圖5展示了空間注意力模塊。

圖5 空間注意力Fig.5 Spatial attention module
首先將經(jīng)過通道注意力模塊產(chǎn)生的細(xì)化特征F'∈?C×H×W饋送至空間注意力模塊,在通道軸上利用最大池化的聚合功能生成一個有效的特征描述符,得到大小為1×H×W的特征圖F'max,將生成的兩個二維特征圖采用通道級聯(lián)的方式進(jìn)行合并得到?2×H×W,然后使用7×7大小的卷積核作用于,降維為單通道,再經(jīng)過Sigmoid激活函數(shù)操作,最終生成二維空間權(quán)重推斷系數(shù)Ms∈?1×H×W。此后將此二維空間權(quán)重推斷系數(shù)Ms與輸入的原始特征相乘,得到關(guān)鍵區(qū)域的注意力權(quán)重推斷特征圖。
人臉表情圖像的標(biāo)注往往需要大量的人力物力,且由于人臉表情所特有的復(fù)雜性與微妙性,單標(biāo)簽的靜態(tài)人臉表情圖像往往會導(dǎo)致歧義表情,不利于表情圖像的識別,因此解決表情圖像單標(biāo)簽信息量不足的問題有助于提高模型的識別準(zhǔn)確率。
對于一般圖像識別分類任務(wù)而言,其訓(xùn)練模式基本都遵循如下流程:
步驟1一個深度神經(jīng)網(wǎng)絡(luò)來得到特征向量表示。
步驟2一個Softmax分類器來輸出預(yù)測的標(biāo)簽概率分布p∈(0,1)。給定一張人臉表情圖像x,其groundtruth標(biāo)簽y∈{ }1,2,…,i,其中i表示表情圖像的類別數(shù),通過深度網(wǎng)絡(luò)的全連接層之后會輸出一個當(dāng)前數(shù)據(jù)對應(yīng)于各個類別的置信度分?jǐn)?shù)ωTx,然后將這些分?jǐn)?shù)通過Softmax進(jìn)行歸一化處理,最終得到表情圖像x屬于類別i的條件概率為:
其中,ωi是第i類的權(quán)重向量,K表示總類別數(shù),這些概率之和為1。
步驟3使用交叉熵(cross-entropy loss,CE-Loss)來計算真實標(biāo)簽與預(yù)測值p之間的損失,從而得到優(yōu)化。標(biāo)準(zhǔn)交叉熵?fù)p失函數(shù)如式(6)所示:
其中,N為樣本數(shù)量,qi為真實標(biāo)簽y,通過one-hot生成的硬標(biāo)簽,那么qi的分布可以表示為:
訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,通過誤差反向傳播最小化預(yù)測概率和標(biāo)簽真實概率之間的交叉熵,并更新迭代獲得最優(yōu)的模型參數(shù)解。
由于現(xiàn)實世界中樣本標(biāo)簽的真實分布難以獲得,因此在多數(shù)情況下均使用了理想的All in One假設(shè),即樣本屬于且僅屬于某一類。根據(jù)公式(6)可以看出,在CE-Loss中只有qi為1的那一維度參與了損失的計算,其他的都被忽略了,這會導(dǎo)致真實標(biāo)簽與其他標(biāo)簽之間的關(guān)系被忽略,很多有用的知識無法學(xué)到。而人臉表情圖像往往是由多種不同強度的基本情緒疊加而成,因此one-hot形式的交叉熵并不利于人臉表情的識別,在面對容易混淆的分類任務(wù)、標(biāo)簽有噪聲的人臉表情數(shù)據(jù)集時,模型更容易受到影響。為了彌補表情圖像單標(biāo)簽信息量不足所導(dǎo)致的歧義表情問題,本文利用了標(biāo)簽平滑學(xué)習(xí)(LS)方法[7]來監(jiān)督網(wǎng)絡(luò)的學(xué)習(xí)。LS沒有使用硬標(biāo)簽進(jìn)行模型訓(xùn)練,而是使用通過均勻分布平滑硬標(biāo)簽而生成的軟標(biāo)簽分布。具體而言,圖像x是軟標(biāo)簽中類別i的概率分布可表示為:
其中,ε表示平滑系數(shù),實驗中設(shè)置為0.1。標(biāo)簽平滑學(xué)習(xí)將均勻分布與原始硬標(biāo)簽相結(jié)合,賦予非目標(biāo)類別一定的置信度,使模型預(yù)測的所有標(biāo)簽分?jǐn)?shù)都是激活的,彌補了分類時監(jiān)督信號不足的問題,增加了信息量,由此在反向傳播過程中模型不僅可以學(xué)習(xí)如何增加正確標(biāo)簽的分?jǐn)?shù),也可以學(xué)習(xí)如何減少不正確標(biāo)簽的分?jǐn)?shù),有助于更好地描繪復(fù)雜的情感傾向,將經(jīng)過標(biāo)簽平滑后的軟標(biāo)簽計算的交叉熵記為,重新定義模型的損失函數(shù)如下式:
本文提出了一種基于標(biāo)簽平滑學(xué)習(xí)的輕量級人臉表情識別方法,網(wǎng)絡(luò)框架如圖6所示。將輸入的人臉表情圖像送入本文所改進(jìn)的輕量化ShuffleNet網(wǎng)絡(luò)提取特征后進(jìn)行分類,通過分析原始ShuffleNet網(wǎng)絡(luò)的計算量分布,將Stage2、Stage3和Stage4中的Block替換成本文所設(shè)計的K5_Light_ShuffleNet版本,對1×1點卷積的裁剪不僅可以降低模型的計算復(fù)雜度,而且在實驗過程中發(fā)現(xiàn)并沒有對表情識別精度產(chǎn)生明顯的影響,此外使用的大卷積核可以獲得更大的感受野,提取到更好的全局特征,搭配Mish激活函數(shù)的使用也保證了特征信息的流動。隨著網(wǎng)絡(luò)深度的加深,特征圖的空間大小將縮小,通道數(shù)翻倍,由于Key-att模塊是對空間和通道兩個維度推斷注意力,過淺或過深的網(wǎng)絡(luò)不利于Key-att模塊的學(xué)習(xí),此外為盡可能減少對模型引入額外的計算,本文只在Stage3后融入了設(shè)計的Key-att模塊提取關(guān)鍵的局部特征。最后為緩解單標(biāo)簽信息量不足所導(dǎo)致的歧義表情問題,利用標(biāo)簽平滑監(jiān)督網(wǎng)絡(luò)學(xué)習(xí)最優(yōu)參數(shù)解,而這一過程并不需要引入額外的信息。

圖6 本文人臉表情識別網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Expression recognition network structure
所提網(wǎng)絡(luò)結(jié)構(gòu)的詳細(xì)參數(shù)信息及參數(shù)量和FLOPs如表1所示。網(wǎng)絡(luò)輸入的RGB圖片大小為224×224,通過一系列卷積操作提取特征,并統(tǒng)計相對應(yīng)的參數(shù)量和FLOPs。Stage2、Stage3和Stage4中的第一個DownBlock主要用于下采樣升維,并進(jìn)行Channel Shuffle操作實現(xiàn)不同特征組內(nèi)的通道信息融合,其余BasicBlock主要采用恒等映射實現(xiàn)淺層特征的重用。經(jīng)過Conv5之后達(dá)到了1 024個通道數(shù),最終經(jīng)過全局平均池化(global average pooling,GAP)和全連接層得到七分類人臉表情輸出。從表中可以看出,最終本文方法總的參數(shù)量和FLOPs分別為9.5×105和1.08×108。而本文所設(shè)計的Key-att模塊的參數(shù)量和FLOPs也均保持在較低水平,分別為1.3×104和6×104,這僅占網(wǎng)絡(luò)整體的1.4%和0.06%,表明了其輕量性。

表1 網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)及其計算復(fù)雜度Table 1 Network structure parameters and their computational complexity
為了驗證本文所提方法的有效性,選擇公開的realworld affective faces database(RAF-DB)[12]數(shù)據(jù)集和AffectNet[13]數(shù)據(jù)集進(jìn)行實驗驗證。
RAF-DB數(shù)據(jù)集是源自真實世界人臉情感數(shù)據(jù)庫,共有快樂、憤怒、驚訝、厭惡、悲傷、恐懼、中立七種表情圖像15 339張,每張圖像均由40人獨立標(biāo)注,分為12 271張訓(xùn)練集和3 068張測試集。這些表情圖像存在著年齡、遮擋、姿態(tài)等不同方面的影響,復(fù)合了現(xiàn)實生活中表情圖像的特征,具有較大的差異性與實際應(yīng)用價值。
AffectNet是迄今為止最大的公開野外人臉表情數(shù)據(jù)集,包含超過100萬張來自互聯(lián)網(wǎng)的面部圖片,這些圖片通過不同的搜索引擎檢索情感標(biāo)簽獲得,選擇標(biāo)注了6種基本表情(快樂、憤怒、驚訝、厭惡、悲傷、恐懼)和自然表情的表情圖像進(jìn)行AffectNet-7實驗,通過在AffectNet-7數(shù)據(jù)集的基礎(chǔ)上增加蔑視表情,得到共有八種類別表情標(biāo)簽的AffectNet-8數(shù)據(jù)集。
本文實驗均在Ubuntu 16.04系統(tǒng)下完成,采用深度學(xué)習(xí)框架PyTorch 1.9和解釋器Python 3.9來編寫程序,硬件平臺:CPU為英特爾E5-2637 v4,GPU為NVIDIA GeForce GTX 1080Ti,顯存大小為11 GB,加速庫為CUDA 10.2。
在真實場景采集的人臉表情圖像不僅包含人臉,還包括姿態(tài)、背景等干擾因素,同時要保證人臉位置、尺寸的一致性,因此使用了Retinaface算法[14]對人臉進(jìn)行檢測與對齊,并調(diào)整到224×224像素大小。在RAF-DB和AffectNet數(shù)據(jù)集上的參數(shù)設(shè)置如表2所示。
實驗時采用隨機梯度下降法(stochastic gradient descent,SGD)優(yōu)化損失函數(shù),當(dāng)損失值接近全局最小時,學(xué)習(xí)率應(yīng)變小使模型盡可能收斂于該點,而余弦退火策略(cosine annealing)通過余弦函數(shù)來降低學(xué)習(xí)率滿足這一特性,可以表示如下:
式中,t代表當(dāng)前批次,T表示總迭代次數(shù),ηmax和ηmin表示學(xué)習(xí)率的范圍,實驗時分別取1和0.01。
為了驗證本文所提方法的可靠性并衡量模型的計算復(fù)雜度,以ShuffleNet-V2作為主干網(wǎng)絡(luò),使用本文所設(shè)計的K5_Light_ShuffleNet模塊替換原始的倒轉(zhuǎn)殘差結(jié)構(gòu),并在Stage3階段后嵌入所設(shè)計的Key-att模塊,引入標(biāo)簽平滑學(xué)習(xí),在大規(guī)模人臉表情數(shù)據(jù)集RAF-DB和AffectNet上進(jìn)行實驗驗證,并就識別準(zhǔn)確率與計算復(fù)雜度同其他方法進(jìn)行了比較。
2.3.1 RAF-DB實驗結(jié)果
圖7展示了在RAF-DB數(shù)據(jù)集上的訓(xùn)練與測試的準(zhǔn)確率曲線、損失函數(shù)曲線以及學(xué)習(xí)率曲線,為了在同一坐標(biāo)系下清晰顯示,將損失曲線放大10倍,學(xué)習(xí)率曲線放大2 000倍。從圖中可以看出,最終訓(xùn)練集與測試集的損失值相差不大,這得益于標(biāo)簽平滑學(xué)習(xí),避免了模型的過擬合,模型最終在RAF-DB數(shù)據(jù)集上的識別準(zhǔn)確率達(dá)到了86.91%。

圖7 RAF-DB訓(xùn)練曲線Fig.7 RAF-DB training curve
評價深度學(xué)習(xí)模型的優(yōu)劣不應(yīng)只對比識別準(zhǔn)確率等結(jié)果指標(biāo),還應(yīng)兼顧模型的參數(shù)規(guī)模等性能指標(biāo),在RAF-DB數(shù)據(jù)集上與近年來優(yōu)秀的公開方法就識別準(zhǔn)確率、參數(shù)量以及FLOPs進(jìn)行了比較,由于部分對比模型中并未提及模型的性能指標(biāo),因此本文對這些方法按照原論文中的設(shè)置進(jìn)行了復(fù)現(xiàn),如表3所示。在參數(shù)量方面,本文方法的參數(shù)量僅為9.5×105,這遠(yuǎn)低于pACNN方法和gACNN方法,并且相較于參數(shù)量較小的Separate loss、RAN、SCN以及DDAloss方法,本文方法的參數(shù)量也不到其十分之一,較大地壓縮了模型的參數(shù)量。在浮點運算數(shù)方面,本文方法的FLOPs為1.08×108,相較于pACNN和gACNN方法壓縮了約99.30%的計算量,相較于Separate Loss和SCN方法也壓縮了94.05%的計算量,這也遠(yuǎn)低于近期提出的MFN方法,本文模型具有較低的復(fù)雜度。在準(zhǔn)確率方面,相較于近期提出的MFN方法,本文的準(zhǔn)確率提升了1.52個百分點,相較于pACNN、Separate Loss和gACNN,本文模型的識別準(zhǔn)確率也分別提升了3.86、0.53和1.84個百分點。由于數(shù)據(jù)集中的標(biāo)簽可能存在標(biāo)注錯誤,Li等人[15]提出了自治愈網(wǎng)絡(luò)SCN,通過正則化排序和重新標(biāo)簽等操作糾正網(wǎng)絡(luò)的學(xué)習(xí),在RAF-DB數(shù)據(jù)集上取得了87.03%的準(zhǔn)確率,比本文高出了0.12個百分點,但本文的參數(shù)量和FLOPs分別壓縮了12倍和17倍,驗證了本文方法的有效性。MFN+方法是在MFN方法的基礎(chǔ)上取剪枝通道的60%作為剪枝百分比所得到的結(jié)果,能夠較好地壓縮模型的參數(shù)量和FLOPs,但最終的識別準(zhǔn)確率受到一定影響。LA-Net通過將壓縮和激勵模塊與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,在RAF-DB數(shù)據(jù)集上取得了87.00%的準(zhǔn)確率,但該模塊會引入大量的計算參數(shù),不利于模型的輕量化。LA-Net+方法是對LA-Net取剪枝通道的70%作為剪枝百分比所得到的結(jié)果,剪枝后的模型具有較小的計算復(fù)雜度,但此時的識別準(zhǔn)確率不及本文??梢钥闯?,本文方法在保持較低參數(shù)量與FLOPs的前提下,同時具有較好的識別準(zhǔn)確率,這有利于本文模型在實際生產(chǎn)中的應(yīng)用。

表3 RAF-DB數(shù)據(jù)集上不同方法的性能比較Table 3 Performance comparison of different methods on RAF-DB dataset
2.3.2 AffectNet實驗結(jié)果
圖8展示了在AffectNet-7數(shù)據(jù)集上的訓(xùn)練與測試的準(zhǔn)確率曲線、損失函數(shù)曲線以及學(xué)習(xí)率曲線,與RAF-DB實驗一樣,將損失曲線和學(xué)習(xí)率曲線作同樣的放大的處理。從圖中可以看出,在訓(xùn)練到第30輪左右時,模型已基本收斂,具有較快的擬合速度并穩(wěn)定收斂,這也有利于模型在實際嵌入式設(shè)備上的運行,模型最終在大規(guī)模表情數(shù)據(jù)集AffectNet-7上的識別準(zhǔn)確率達(dá)到了61.80%。

圖8 AffectNet-7訓(xùn)練曲線Fig.8 AffectNet-7 training curve
為了驗證本文方法在AffectNet-7數(shù)據(jù)集上的可靠性及其計算復(fù)雜度,與近年來其他方法進(jìn)行對比,對比情況如表4。在參數(shù)量方面,本文方法僅為pACNN方法的0.7%,相較于其他方法,本文方法的參數(shù)量僅為其0.70%~8.49%,本文的參數(shù)量保持在較低水平。在浮點運算數(shù)方面,相較于MFN方法,本文方法壓縮了99.36%的計算量,該壓縮量與pACNN和gACNN方法相比近似,相較于其他幾種方法,本文方法也壓縮了94.05%的計算量。在準(zhǔn)確率方面,相較于近期提出的SCN和MFN方法,本文的識別準(zhǔn)確率分別提升了1.57和2.99個百分點,相較于pACNN、Separate loss和gACNN方法,本文的準(zhǔn)確率也分別提升了6.47、2.91和3.02個百分點,盡管本文的識別準(zhǔn)確率不及DDA loss,但在參數(shù)量上DDA Loss方法為本文的11.7倍,在FLOPs上為本文的16.7倍,這不利于模型在性能較低的嵌入式設(shè)備上運行。綜合來看,本文方法在有效降低模型計算復(fù)雜度的同時能保持較高水平的表情識別效果,驗證了本文方法的有效性與實用性。

表4 AffectNet-7數(shù)據(jù)集上不同方法的性能比較Table 4 Performance comparison of different methods on Affectnet-7 dataset
同時,為了進(jìn)一步驗證本文方法在含有8類情感標(biāo)簽數(shù)據(jù)集AffectNet-8上的有效性,并評估其參數(shù)量和FLOPs,與其他方法進(jìn)行了對比分析,如表5所示,本文方法在AffectNet-8數(shù)據(jù)集上取得了58.75%的準(zhǔn)確率。在參數(shù)量方面,相較于Weighted loss、VGG variant和RAN方法,本文方法的參數(shù)量分別壓縮了98.4%、85.48%和91.6%。在浮點運算數(shù)方面,Weighted loss方法的FLOPs約為本文方法的6 500倍,RAN和ESR-9方法分別為本文的134倍和10倍。在識別準(zhǔn)確率方面,相較于Weighted loss、VGG variant和MobileNet variant方法,本文分別提升了0.75、0.75和2.75個百分點的準(zhǔn)確率。區(qū)域注意網(wǎng)絡(luò)(RAN)首先通過FC層粗略計算自身各區(qū)域的重要性,然后對區(qū)域特征與聚合內(nèi)容表示之間的關(guān)系進(jìn)行建模,生成更準(zhǔn)確的注意權(quán)重,該方法在AffectNet-8數(shù)據(jù)集上達(dá)到了59.50%的準(zhǔn)確率,盡管本文方法的識別準(zhǔn)確率不及RAN方法,但本文方法的參數(shù)量和FLOPs均優(yōu)于該方法。MobileNet作為經(jīng)典的輕量化模型,MobileNet variant方法通過優(yōu)化MobileNet模型達(dá)到了較低的計算復(fù)雜度,但其識別準(zhǔn)確率比本文低了2.75個百分點。可以看出,本文方法在保持較低參數(shù)量和FLOPs的前提下,在八分類數(shù)據(jù)集AffectNet-8數(shù)據(jù)集上仍取得了不錯的表現(xiàn)。

表5 AffectNet-8數(shù)據(jù)集上不同方法的性能比較Table 5 Performance comparison of different methods on AffectNet-8 dataset
為了更精準(zhǔn)探究模型對各類表情的識別性能,在RAF-DB和AffectNet數(shù)據(jù)集上根據(jù)最終模型訓(xùn)練結(jié)果在測試集上生成混淆矩陣進(jìn)行分析,分別如表6和表7所示,主對角線上表示各類表情的識別精度,其余表示被誤分為其他表情的比例。由表6和表7可知,在兩個數(shù)據(jù)集上對高興的識別準(zhǔn)確率最高,分別達(dá)到了95%和82%,這是因為高興表情往往具有嘴角上揚、眼角有紋路等易于識別的顯著特征,在七種表情中最易識別,此外,高興表情的樣本數(shù)量在兩個數(shù)據(jù)集中的占比數(shù)量都最大,利于模型的學(xué)習(xí)。對于RAF-DB數(shù)據(jù)集,中立、悲傷、驚訝和憤怒表情也都取得了較高的識別準(zhǔn)確率,具有不錯的分類能力。驚訝表情具有嘴巴張開、眼睛睜大等特征,而恐懼表情中也存在嘴巴張開的AU運動,但其動作幅度更大,這使得恐懼表情較易與驚訝混淆。由于厭惡和悲傷表情都具有皺眉、額頭緊皺等相同特征,這使得厭惡容易與悲傷混淆。相比于RAF-DB數(shù)據(jù)集,AffectNet數(shù)據(jù)集中的恐懼、憤怒等消極表情識別準(zhǔn)確率較低,這幾類消極類別的表情本身具有較強的相似性,面部關(guān)鍵點通常只有細(xì)微的變化,大都具有嘴角向下、眉頭緊鎖等特征,人眼也難以完全準(zhǔn)確區(qū)分,給識別工作帶來了一定的難度。此外,由于AffectNet數(shù)據(jù)集中的樣本圖像來自于互聯(lián)網(wǎng),樣本數(shù)量較大,包含的錯誤樣本也多,導(dǎo)致整體表情識別準(zhǔn)確率相比于RAF-DB數(shù)據(jù)集偏低。

表6 RAF-DB數(shù)據(jù)集混淆矩陣Table 6 RAF-DB dataset confusion matrix

表7 AffectNet-7數(shù)據(jù)集混淆矩陣Table 7 AffectNet-7 dataset confusion matrix
最后,為了驗證本文所提不同模塊對人臉表情識別的有效性并衡量模型計算復(fù)雜度,以RAF-DB數(shù)據(jù)集為例,將輕量級網(wǎng)絡(luò)ShuffleNet作為基線(Baseline),依次加入改進(jìn)后的K5_Light_ShuffleNet模塊和通道空間關(guān)鍵權(quán)重推斷模塊(Key-att),并引入標(biāo)簽平滑學(xué)習(xí)(LS)進(jìn)行了消融實驗,實驗結(jié)果如表8所示。

表8 網(wǎng)絡(luò)不同模塊的性能對比Table 8 Performance comparison of different modules of the network
從表8可以看出,通過將原始ShuffleNet進(jìn)行適當(dāng)?shù)募舨?,得到更輕量的Light_ShuffleNet版本,雖然模型的識別準(zhǔn)確率有小幅下降(約0.12個百分點),但網(wǎng)絡(luò)的參數(shù)量和FLOPs相較于原始網(wǎng)絡(luò)分別減少了3.4×105和4.1×107,降低了模型的參數(shù)冗余,使模型更加緊湊,利于其輕量化;在此基礎(chǔ)上,對深度卷積的卷積核進(jìn)行擴增,以增強模型對語義信息的表征能力,在參數(shù)量增加4×104和FLOPs增加7.36×106的情況下,識別準(zhǔn)確率相較于Light_ShuffleNet版本提高了0.98個百分點,而得到的K5_Light_ShuffleNet版本相較于原始ShuffleNet無論在參數(shù)量和FLOPs上,還是在識別準(zhǔn)確率上都更具有優(yōu)勢;本文所設(shè)計的基于最大池化的通道空間關(guān)鍵權(quán)重推斷模塊可以使網(wǎng)絡(luò)更加關(guān)注與當(dāng)前表情關(guān)聯(lián)度較高的局部特征,在參數(shù)量增加1×104和FLOPs增加6×104的情況下,相較于基線網(wǎng)絡(luò)有1.60個百分點的識別準(zhǔn)確率提升;標(biāo)簽平滑學(xué)習(xí)有利于減少歧義表情的影響,而這并不會引入額外的參數(shù)量和FLOPs,模型最終達(dá)到了86.91%的準(zhǔn)確率,現(xiàn)實世界中的人臉表情圖像往往具有復(fù)雜的情感意圖,標(biāo)簽平滑學(xué)習(xí)通過軟標(biāo)簽監(jiān)督網(wǎng)絡(luò)的學(xué)習(xí),來減少歧義表情的不確定性,這有利于緩解單標(biāo)簽所帶來信息量不足的問題??梢姳疚乃氲母鱾€模塊對原始網(wǎng)絡(luò)都是有效的,并且能夠共同促進(jìn)模型性能的提高。
人臉表情識別在諸多領(lǐng)域有著廣泛的應(yīng)用,但在實際生產(chǎn)環(huán)境中,過于復(fù)雜的網(wǎng)絡(luò)模型不利于在配置受限的設(shè)備上運行。因此,本文提出了一種基于標(biāo)簽平滑學(xué)習(xí)的輕量級人臉表情識別方法。本文方法從特征提取的角度,對傳統(tǒng)的ShuffleNet網(wǎng)絡(luò)模型作出改進(jìn),這不僅可以進(jìn)一步壓縮模型的計算復(fù)雜度,而且還有利于增強模型的性能;設(shè)計的基于最大池化的通道空間關(guān)鍵權(quán)重推斷模塊,也有利于強化模型對人臉表情圖像中局部細(xì)節(jié)的特征提取能力。在訓(xùn)練策略上,通過標(biāo)簽平滑學(xué)習(xí),利用軟標(biāo)簽監(jiān)督網(wǎng)絡(luò)的學(xué)習(xí)來解決單標(biāo)簽信息量不足所導(dǎo)致的歧義表情問題,而這一過程并不會增加模型的計算復(fù)雜度,也不需要額外的信息。最后,本文分別在RAF-DB和AffectNet數(shù)據(jù)集上作了對比實驗,實驗結(jié)果表明,本方法在保持較低參數(shù)量和FLOPs的前提下,仍具有較高的識別精度,具備較強的實用性。
深度學(xué)習(xí)模型在人臉表情識別研究中往往需要大量的標(biāo)注數(shù)據(jù),這不僅會產(chǎn)生昂貴的標(biāo)注成本,而且可能會引入主觀因素的標(biāo)簽噪聲。因此在接下來的工作中,將研究如何進(jìn)行半監(jiān)督或無監(jiān)督學(xué)習(xí)的人臉表情識別。