張金棟, 王宏志
(長春工業大學 計算機科學與工程學院, 吉林 長春 130102)
隨著科技水平的快速發展,人工智能逐漸進入我們的生活,而如何在人機交互中讓機器獲得我們的情感狀態成為機器視覺領域研究的熱點。而人臉表情識別算法基本分為傳統算法和深度學習兩種,隨著算力的不斷提高,基于深度學習的人臉表情識別模型已經憑借其強大的擬合能力,以及端到端的訓練方式獲得了越來越多人的青睞。
目前,人臉表情識別已經廣泛應用到各個領域。在智慧交通領域[1-2],用人臉表情識別技術來監測駕駛員情緒是否穩定,是否屬于疲勞駕駛、酒后駕駛等狀態,為交通安全提供更有效的保障;在智慧教育領域[3-4],人臉表情識別可以幫助教育工作者更好地了解學生的情緒狀態和學習效果;在智慧醫療領域[5-6],人臉表情識別可以在情感類疾病的診斷和疼痛評估方面提供新的數據支撐和判斷依據;在人機交互領域[7,8],現實增強和虛擬現實中通過識別用戶的表情和情感信息,自動調整虛擬信息的呈現方式和內容,從而提高交互的效率。
雖然人臉表情識別算法已經被廣泛應用到各個領域中,但是還仍然存在模型訓練困難、魯棒性不足等問題,諸多學者也提出了自己的解決方法。針對傳統算法,文獻[9-11]對常見的LBP(Local Binary Pattern)算子和方向梯度直方圖(Histogram of Oriented Gradient, HOG)算法進行了改進,克服了人臉圖像紋理的相鄰像素丟失問題,有效地選擇了最優的特征數據。在深度學習方面,注意力機制被認為是可以有效提升模型準確率的可嵌入模塊,文獻[12-14]使用通道注意力機制和自注意力機制等方式讓模型更加關注輸入圖像中更具有決定性因素的部分,提升了網絡模型的準確率。而文獻[15-17]則使用殘差結構構建網絡,加大了網絡中深層特征和淺層特征之間的聯系,避免了由于網絡過深而產生的過擬合問題。
為了更好地利用圖像中的局部特征和全局特征間的聯系,并獲得圖像中更多的特征信息,文中以ResNet18網絡為基礎模型,構建了一個融合局部特征和全局特征的網絡結構,加入多尺度卷積模塊,用遷移學習方式初始化訓練權重,并通過在FER-2013數據集和RAF-DB數據集上的實驗,驗證了文中模型結構的有效性。
文中網絡模型為雙路結構,上路網絡選擇多尺度卷積塊和ResNet18網絡中的四個殘差塊組成全局特征提取網絡,輸入圖像為原始圖像;下路網絡選擇四層卷積層和一層池化層組成局部特征提取網絡,輸入圖像為原始圖像16等分后的局部圖像。其中為了減少網絡模型整體參數,分割后的16張局部圖像共享下路網絡模型參數,具體網絡結構如圖1所示。
圖1 網絡模型整體結構
其中,上路網絡ResNet18中的64@3*3、128@3*3、256@3*3和512@3*3表示對應殘差塊中四層卷積層的卷積核數量,分別為64、128、256和512,卷積核的大小為3*3。下路網絡中的16@3*3、32@3*3、64@3*3和1@3*3表示對應四層卷積層的卷積核數量,分別為16、32、64和1,卷積核的大小為1*1。
從圖1可以看到,網絡共進行了兩次局部特征和全局特征的融合:
第一次融合是將分割后的圖像經過下路四層卷積網絡提取到的與原始圖像大小相同的局部特征,與原始圖像進行融合,然后輸入上路網絡;
第二次融合是分割后的圖像經過下路整體網絡提取到的大小為4*4的局部圖像特征,與上路經過多尺度卷積塊提取得到的圖像特征進行融合,然后輸入全連接網絡進行分類。
整體網絡特征提取分類具體公式為
M(F)=σ(MLP(MC(f))),
(1)
式中:F----輸入圖像;
M(F)----分類結果;
MLP----通過全連接層進行特征提取;
σ----通過Sigmoid函數進行最終分類;
MC(f)----網絡卷積層提取特征,其具體公式為
Mc(F)=Mu[F*Md(F)]*AvgPool[Md(F)],
(2)
式中:F----輸入圖像;
Mc(F)----經過網絡卷積層后提取到的特征;
Md(F)----輸入圖像分割后經過下路四層卷積層提取特征;
Mu----經過多尺度卷積塊后提取到的特征;
AvgPool----平均池化。
在使用卷積神經網絡提取特征的時候,不同大小的卷積核感受野不同,所提取到的特征也不一樣。為了更好地獲得圖像中的特征,文中構建了一個多尺度卷積塊,在同一層中使用不同大小的卷積核以及池化操作提取特征,具體結構如圖2所示。
圖2 多尺度卷積塊結構
圖中:H,W,C----分別表示高、寬和通道維度;
H*W*C----輸入特征的大小;
C/4----該卷積層的卷積核個數;
1*1,3*3,5*5----該卷積層的卷積核大小;
MAXPOOL----最大池化層;
Concat----特征拼接操作;
Add----特征相加操作。
多尺度卷積塊特征提取公式為
Mout(FI)=FI+Mcp(FI),
(3)
式中:FI----輸入原始特征;
Mout----多尺度卷積塊輸出特征;
Mcp----經過卷積層和池化層拼接后的特征,其具體公式為
(4)
C1,C2,C3,Cp----分別為經過卷積核大小為1*1,3*3,5*5的卷積層和池化層后的特征;
Concat----在通道內將特征拼接。
從式(4)和圖2可以看到,原始特征在輸入到不同大小卷積核的卷積層以及池化層之前,先經過一層卷積核數量為原始特征通道數四分之一的卷積層,這樣做的目的是在保證提取并融合各個尺度特征的前提下,減少多尺度卷積塊的參數。而為了防止在網絡訓練過程中產生梯度消失的問題,在每一個卷積層后都進行了批標準化(Batch Normalization)操作,其公式為
(5)
人臉表情數據集根據是否在實驗室狀態下收集分為兩種,在實驗室狀態下收集到的數據集一般都存在樣本數量少和豐富度低的問題,因此雖然實驗室數據集的準確率普遍很高,但依然無法真實反映網絡的性能。故文中選用非實驗室狀態下收集到的數據集FER-2013和RAF-DB來進行實驗。
在FER-2013數據集的35 886張圖像中,有28 708張是訓練集,3 589張是驗證集,3 589張是測試集,而RAF-DB數據集的29 672張圖片中,有12 271張訓練圖像和3 068張測試圖像。兩個數據集的表情分類為生氣、厭惡、恐懼、開心、傷心、驚訝和中性7種,在輸入網絡前將圖片大小均改變為112*112,并進行隨機水平翻轉、隨機角度旋轉、隨機剪裁、隨機擦除和歸一化的數據增強方式。
文中實驗使用深度學習框架為Pytorch1.10和python3.7,操作系統環境為Windows10,CPU為i9-10920X,GPU為RTX3090。批處理大小設置為256,使用SGD優化器,動量設置為0.9,學習率設置為0.1,每10輪變為原來的十分之九,并使用遷移學習對網絡參數進行初始化。
文中算法在FER-2013數據集和RAF-DB數據集的準確率曲線如圖3所示。
圖3 準確率曲線
從圖3可以看到,兩個數據集的最終準確率分別達到72.16%和86.83%,由于通過遷移學習對參數進行初始化,模型訓練初期準確率提升速度很快,在訓練后期也沒有產生過大的準確率波動情況。而FER-2013數據集與RAF-DB數據集相比,由于其樣本本身難度更大,分辨率更低,還存在一定的標簽標注錯誤情況,因此準確率達到峰值,并趨于穩定所需的訓練輪數明顯增多,準確率也更低。
文中算法在FER-2013數據集和RAF-DB數據集的混淆矩陣如圖4所示。
(a) FER-2013數據集 (b) RAF-DB數據集
從圖4可以看到,兩個數據集中識別準確率最高的表情均為開心,分別達到90.3%和94.1%。而兩個數據集識別率最低的表情類別卻并不一致,FER-2013數據集中為恐懼,準確率只有57%,RAF-DB數據集中為厭惡,準確率只有53.1%。
文中算法與其他文獻算法在FER-2013數據集和RAF-DB數據集上的準確率比較見表1。
表1 模型準確率對比 %
從表1可以看出,除了在FER-2013數據集中的準確率低于文獻[20]中的算法,其它均高于對比算法,證明了文中算法的有效性。
以ResNet18網絡為基礎,采用雙路網絡模型對輸入圖像的全局特征和局部特征進行提取,并進行兩次全局和局部的特征融合,將圖像的全局和局部聯系起來,并構建了多尺度卷積塊,利用不同大小的卷積核提取到感受野大小不同的特征,更好地利用圖像中包含的特征信息,通過在FER-2013和RAF-DB數據集中的實驗,證明了文中算法的有效性。