?

基于改進八度卷積算法的人臉表情識別

2023-06-13 03:52唐小煜林逸鑫
關鍵詞:八度集上人臉

唐小煜,王 東,林逸鑫,李 萍

(華南師范大學物理與電信工程學院/華南師范大學電子與信息工程學院/廣東省量子調控工程與材料重點實驗室/廣東省光電檢測儀器工程技術研究中心,廣州 510006)

人臉表情是人類傳達情感狀態最有效、最普遍的信息。近年來,人工智能領域發展迅速,人臉表情識別的應用場景逐漸廣泛,例如人機交互、智慧課堂和智能駕駛等領域,人臉表情識別已逐漸成為計算機視覺中的一個研究熱點。

目前的人臉表情識別方法通常分為傳統方法和深度學習方法兩大類,其中傳統方法大多采用手工特征或淺層學習,例如基于局部二值模式(Local Binary Patterns,LBP)[1]、主成分分析法[2]、非負矩陣分解法[3]、Gabor小波變換法[4]和方向梯度直方圖(Histogram of Oriented Gradient,HOG)[5]等,這些方法在某些特定的情況下能夠取得較好的實驗結果,但是容易受到其他因素影響,比如光照、角度和姿態因素,而且在真實場景中的魯棒性不高。

隨著深度學習技術的發展和人臉數據集的逐漸充實,深度學習方法也逐步應用于人臉表情識別研究中,如:MATSUGU等[6]采用卷積神經網絡(Convolutional Neural Networks,CNN)解決面部表情中的主觀獨立性問題和圖片中的人臉表情位置、角度問題;SUN等[7]通過區域的 CNN(R-CNN)學習人臉表情特征;HUANG[8]提出融合VGG網絡和ResNet網絡,以提高模型性能,但是存在參數多、計算量大的問題;馮楊等[9]借鑒了VGG16模型,提出了基于小尺度卷積核的人臉表情識別方法,使用多層小尺度卷積塊代替大卷積核,減少了參數。為了更加有效地提高模型準確率,學者們在分類器、數據集和損失函數上進行研究,如:GEORGESCU等[10]提出使用SVM代替卷積神經網絡的分類器;WANG等[11]針對數據集中存在的標注不確定性問題,提出了SCN+ResNet18模型;LI等[12]提出了基于粗-細標簽和蒸餾的自適應人臉表情識別方法;崔子越等[13]通過設置概率閾值對Focal Loss進行改進,從而減少了誤標注樣本對模型性能產生的影響;XUE等[14]提出了基于Transformer的人臉表情識別方法,使模型注意到更多的表情局部特征,并且在全局視野下關注局部特征與表情類別的關系,從而提升模型性能。這些方法雖然準確率較高,但是存在網絡結構復雜、參數多和計算量大等問題,而且沒有考慮人臉表情特征圖中信息的冗余和激活函數導致的神經元失活問題。

卷積神經網絡是一類包含卷積計算且具有深度結果的前饋神經網絡,近年來在圖像處理中廣泛應用并取得許多突破性的研究成果[15-17]。CHEN等[18]認為傳統卷積神經網絡的特征圖中存在冗余,提出了八度卷積(Octave Convolution)算法,在降低冗余的同時提高了模型的特征提取能力,但是該算法的參數多、結構復雜。針對以上問題,本文提出一種基于八度卷積改進的人臉表情識別模型(OCNN):使用改進的八度卷積,有效提取人臉表情中的高頻特征、減少特征圖中的低頻冗余;采用最新的激活函數來增加模型的非線性表達能力;使用自適應平均池化下采樣層代替全連接層,從而達到減少參數量、計算量且提高準確率的效果。最后,在FER2013、FERPlus、RAF-DB數據集上進行對比實驗,以驗證模型效果。

1 改進的八度卷積算法

1.1 改進的八度卷積模塊

卷積神經網絡中的核心是卷積操作,該操作對特征圖的計算公式如下:

X(l+1)(i,j)=(Xl?Wl)(i,j)=

(1)

其中,Wl(x,y)c×k×k代表k×k的卷積核,Xc×h×w代表輸入輸出特征圖,X(i,j)代表輸出特征圖中坐標為(i,j)的像素,i,j{0,1,…,Ll+1},Ll+1=(Ll+2p-f)/s+1,Ll為特征圖Xl的寬度或高度,s為每次卷積步長,p為特征圖邊緣空白填充的寬度。

(2)

圖1 改進后的八度卷積模塊Figure 1 The improved octave convolution module

1.2 八度卷積塊

八度卷積塊由批標準化和激活函數組合而成。由圖2可知:每個八度卷積塊包含2個八度卷積層,每個卷積層中又結合了批歸一化層和動態激活層。其中八度卷積層中的卷積核大小為3×3,特征圖邊緣空白填充參數p為1,步長為1。與僅使用1層大尺度的卷積層相比,使用多層小尺度的卷積層可以保持相同感受野且減少參數量。

圖2 八度卷積塊結構Figure 2 The structure of octave convolution block

通常使用的激活函數為ReLU函數,其表達式為f(x)=max(0,x)。該函數的特點是當神經元輸入的加權和為負數時,函數的梯度為0,神經元的輸出也為0,從而導致一些神經元失效。針對ReLU函數在負區間神經元失活的問題,目前已有一些解決方法,例如LeakyReLU函數[20]在輸入為負值時輸出一個接近于0的正數;PReLU函數[21]使用一個帶參數的ReLU函數。但是這些方法的實際應用效果并不明顯,本文使用根據輸入動態調整參數的DyReLU激活函數[22],以期在不增加網絡深度和寬度的前提下,有效提高模型表達能力。DyReLU激活函數的結構如圖3所示,其中,x代表輸入數據,y=fθ(x)(x)代表最終的激活函數,斜率θ根據輸入數據進行自適應調整,從而得到不同斜率的激活函數。DyReLU有3種工作形式(DyReLU-A、DyReLU-B、DyReLU-C),本文選用性能較好、超函數計算參數適中的DyReLU-B,即空間共享而通道不共享形式。

圖3 DyReLU激活函數示意圖Figure 3 Diagram of DyReLU activation function

1.3 OCNN模型結構

本文提出的基于改進八度卷積的人臉表情識別模型(OCNN)框架如圖4所示,該模型由4個八度卷積塊、4個最大池化層、1個自適應平均池化層和1個全連接層組成,其中:4個八度卷積塊的卷積核大小均為3×3,步長和填充均為1,卷積核個數分別為64、128、256、256;最大池化層的池化核大小為2×2、步長為2。網絡輸入尺寸為90 px×90 px的灰度圖,由八度卷積塊1輸出64張尺寸為90 px×90 px的特征圖,再經過池化層進行下采樣,得到64張尺寸為45 px×45 px的特征圖;重復3次相同操作后得到256張尺寸為5 px×5 px的特征圖,然后經過自適應平均池化層生成256張尺寸為2 px×2 px的特征圖,最后展平后接全連接層輸出。

圖4 OCNN模型的網絡結構Figure 4 Network structure of OCNN model

在OCNN模型的網絡結構中,自適應平均池化層用于降維,以減少模型參數。因為在卷積神經網絡中,全連接層的作用是將最后一層卷積得到的特征向量做乘法操作,實現降維后輸出到softmax層中,從而得到每個類別對應的得分。因此,全連接包含大量的參數,訓練時消耗內存且容易導致過擬合。目前雖然已經有一些解決過擬合的方法,例如在全連接層后面加入一個dropout層,隨機失活一部分神經元,但這樣的操作會導致訓練速度慢,而且存在參數量大的問題。自適應平均池化層是根據指定的輸出參數,對輸入的特征圖進行取均值操作,其輸出與輸入的每個特征圖的像素相關,因此,該池化層擁有全局感受野,且本身不帶任何參數,能在不增加參數的同時將特征圖進行降維,以減少模型的過擬合。

2 實驗評估

為了驗證本文模型的有效性,在3個數據集上進行實驗。實驗使用基于PyTorch框架的Python語言,實驗平臺是Ubuntu18.04 LTS系統,CPU是Xeon Gold 5218@2.3 GHz,內存、硬盤大小分別為64 GB、1 TB,顯卡為NVIDIA gtx2080ti。模型訓練使用的優化器是隨機梯度下降法(Stochastic Gradient Descent,SGD),批次大小設置為64,初始學習率為0.005,每訓練10個epoch后衰減為原來的0.9倍,總共迭代200次。

2.1 數據集及預處理

實驗選用的3個典型的公開數據集如下:

(1)FER2013數據集[23]:是一個典型的真實世界的人臉表情數據集,由谷歌搜索引擎收集,包括28 709張訓練圖像,3 589張驗證圖像和3 589張測試圖像,包含了不同光照情況、姿勢角度和比例的人臉。這些圖像用7個表情標簽(中性、快樂、驚訝、悲傷、憤怒、厭惡和恐懼)進行了注釋。

(2)FERPlus數據集[24]:是FER2013數據集的擴展,有10個標簽注釋。本文使用在實驗常用的7種基本情緒的圖像。

(3)RAF-DB數據庫[25]:包含了30 000張由40名受過訓練的編碼人員用基本或復合表情標注的面部圖像。實驗中只使用了具有基本表情的圖像,其中12 271張圖像用于訓練,3 068張圖像用于測試。

預處理是圖像處理中不可或缺的步驟,本算法在預處理過程對數據進行增強處理。在訓練階段,首先將圖片灰度化,尺寸調整為100 px×100 px,從中隨機裁剪出尺寸為90 px×90 px的圖像,隨機角度旋轉10°,再進行50%概率的水平翻轉。在測試階段,首先將圖片灰度化,尺寸調整為100 px×100 px,分別從圖片的左上角、右上角、中心、左下角和右下角裁剪出尺寸為90 px×90 px的5張圖像,然后通過鏡像操作得到另5張圖像,將10張圖像輸入模型得到10個表情類別概率,將對應概率值取平均,從而得到模型對該圖片的表情類別判斷結果。

2.2 實驗結果及分析

2.2.1 消融實驗 在改進的八度卷積模塊中,低頻部分占比越高,模型的計算量越低。本文在RAF-DB數據集上,將設置不同低頻分量占比的OCNN模型進行對比實驗,其中將低頻分量占比為0.00、0.25、0.50、0.75的模型分別記為OCNN-a、OCNN-b、OCNN-c、OCNN-d,參數量和計算量使用torchstat中的stat模塊得到。由對比結果(表1)可以發現:(1)使用本文改進的八度卷積模塊代替傳統卷積,可以在不增加參數量的同時減少計算量,并提高準確率;(2)當低頻分量占比為0.50時,模型的綜合性能較優,計算量比傳統的卷積將近減少40%,準確率提高了1%。

表1 不同低頻分量占比模型的性能對比Table1 The performance comparation of models with different low-frequency components

在3個人臉表情識別數據集中,將準確率最高的OCNN-c模型與傳統八度卷積模型進行對比實驗。結果(表2)顯示:OCNN-c模型的參數量更少,準確率更高。

表2 原始八度卷積模型和OCNN-c模型的對比Table 2 The comparation of original octave and OCNN-c convolution

在OCNN-c模型中,分別使用激活函數ReLU、DyReLU進行對比實驗。將使用全連接層和自適應平均池化層的模型設為a組,未使用的設為b組,分別得到ReLU-a、DyReLU-a、ReLU-b、DyReLU-b子模型。對比結果(表3)表明:使用自適應平均池化下采樣層能夠有效減少參數量并提升模型性能;使用DyReLU激活函數的模型的準確率高于使用ReLU函數的模型,并降低了參數量。

表3 使用不同激活函數的OCNN-c模型的準確率Table 3 Accuracy of OCNN-c model with different activation functions

2.2.2 與經典網絡模型的對比實驗 大多數人臉表情識別模型是基于經典網絡模型進行改進的,如AlexNet[15]、VGG16[16]、ResNet-18[17]和DenseNet-121[26]模型。在深度學習模型中,模型的計算量和參數量是評價模型性能的重要指標。其中,計算量可以從模型的乘加操作總量(Madd)上體現;模型訓練后保存的權重參數文件大小(即存儲空間,單位MB)可以準確地反映模型參數量大小,決定模型后續應用到實際硬件中的可能性。因此,本文將OCNN模型與上述4個經典網絡模型進行對比實驗,選擇模型的計算量和參數量為評價指標。

由對比結果(表4)可知:(1)在FERPlus和RAF-DB數據集上,OCNN模型的準確率最高;在FER2013數據集上,OCNN模型的準確率僅略低于VGG16模型。(2)OCNN模型的計算量最少,其中VGG16模型的計算量最大,約為OCNN模型的18倍,ResNet-18、DenseNet-121模型的計算量分別約為OCNN模型的2、3倍。(3)OCNN模型的參數量為2.7 M,權重文件的存儲空間為10.4 MB,少于其他模型,其中VGG16模型的權重文件的存儲空間約為OCNN模型的52倍,AlexNet、ResNet-18、DenseNet-121模型的權重文件分別約為OCNN模型的22、4、3倍。綜上可知,與目前的4個經典網絡模型相比,本文提出的OCNN模型的準確率更高、計算量更小且參數量更小,在人臉表情識別方面優于目前的經典模型。

表4 與主流網絡模型的對比Table 4 The comparation of mainstream network models

2.2.3 與當前模型的對比實驗 深度學習模型的準確率與數據量有關,數據量越大,訓練的模型效果越好。已有研究結果[11-12,27-29]表明在大規模數據集上預訓練能提升模型的準確率。將本文的OCNN模型在AffectNet數據集[30]上進行預訓練,保存模型參數后在FER2013、FERPlus、RAF-DB數據集上訓練,得到最終的實驗結果后與現有模型進行對比。

由實驗結果(表5至表7)可知:(1)使用大的數據集進行預訓練后,OCNN模型在FER2013、FERPlus、RAF-DB數據集上的準確率都有提升,表明在大的數據集上進行預訓練能夠有效提升模型性能。(2)在FER2013、FERPlus數據集上,OCNN模型的準確率最高。(3)在RAF-DB數據集上,OCNN模型的準確率為88.50%,僅略低于GCN模型(88.92%)。

表5 不同模型在FER2013數據集上的實驗結果Table 5 Experimental results of different models on the FER2013 dataset

表6 不同模型在FERPlus數據集上的實驗結果Table 6 Experimental results of different models on the FERPlus dataset

表7 不同模型在RAF-DB數據集上的實驗結果Table 7 Experimental results of different models on the RAF-DB dataset

綜上所述,OCNN模型在3個常用數據集的準確率較高,計算量、參數量較少,適用于人臉表情識別領域。

3 結論

為解決人臉表情識別模型準確率低、參數多和計算量大的問題,本文提出了一種基于八度卷積改進的人臉表情識別模型(OCNN)。該模型改進了卷積模塊,在原始八度卷積的基礎上增加了低頻分量,降低人臉特征圖中的冗余;使用DyReLU函數來增加模型的表達能力,采用自適應平均池化下采樣層代替全連接層。本文通過消融實驗探究OCNN模型低頻分量占比和激活函數選用,降低了模型大小和計算成本,在RAF-DB、FER2013、FERPlus數據集上都取得了較好的結果。與經典網絡模型及當前模型的對比結果表明:OCNN模型不僅保證了準確率,還有效減少了參數量和計算量,比其他模型具有更高的魯棒性和適用性,擁有應用在多種人臉表情識別場景的能力。

雖然OCNN模型在資源占用上有優勢,但依然是在大算力平臺上進行的,因此,后續工作中將進一步優化模型,以完成人臉表情識別算法的硬件實現,為基于移動設備的表情識別系統奠定基礎。

猜你喜歡
八度集上人臉
有特點的人臉
Cookie-Cutter集上的Gibbs測度
鏈完備偏序集上廣義向量均衡問題解映射的保序性
三國漫——人臉解鎖
復扇形指標集上的分布混沌
鋼琴演奏中的八度技巧
——探究李斯特鋼琴曲《魔王》
馬面部與人臉相似度驚人
芻議音樂表演與鋼琴演奏中的八度技巧
試論音樂表演中如何進行鋼琴演奏中的八度技巧
長得象人臉的十種動物
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合