?

基于DenseNet 的人臉表情識別方法研究?

2024-01-23 13:38顧狀狀許學斌路龍賓豆陽光
計算機與數字工程 2023年10期
關鍵詞:樣本數人臉準確率

顧狀狀 許學斌 路龍賓 豆陽光

(1.西安郵電大學計算機學院 西安 710000)(2.長安大學地質工程與測繪學院 西安 710054)

1 引言

近年來,隨著計算機科學技術的迅猛發展,機器學習以及深度學習技術伴隨著智能終端的推廣成為了一個極其熱門的研究方向,推動了人臉識別技術的飛速發展。目前人臉識別[1]技術的識別精度已經遠超人類所能識別的范圍,使得其在多個領域占據著不可或缺的一席之地。人臉表情識別作為人臉識別技術的一個重要分支:其在人機交互、安全、機器人制造、自動化、醫療、通信和駕駛等領域備受關注[2],且在近十年里也取得了由量到質的突破,成為國際前沿研究領域的熱門領域之一。

人臉表情的研究,起源于心理學。1972 年達爾文就從心理實驗中得出結論,并在他的著名論著《The Expression of the Emotions in Animals and Man》中闡述了人臉表情和動物面部表情的聯系和區別[3]。在1978 年,Ekman 和Friesen 制定了FACS(Facial Action Coding System)系統,該系統主要用來檢測面部的變化,并定義了六種基本表情,即:傷心、開心、厭惡、害怕、憤怒和驚訝[4]。計算機領域對人臉表情的研究最早是在1978 年,Suwa 和Sugie等人對人臉表情圖像中面部的20 個點進行追蹤進行表情識別,提出了在圖片流中對人臉表情進行自動分析[5]。1981年,通過仿生學方法建立了人臉表情模型[6]。20 世紀90 年代初,K.Mase 和A.Pentland提出了光流法,該方法很快被應用到人臉表情識別研究中[7]。Rashid T A 提出了一種使用不同的面部表情不平衡數據集來識別面部表情的技術[8]。Fathallah 等提出基于CNN 的用于面部表情識別的新架構網絡,并使用視覺幾何組模型(VGG)微調了架構以改進結果,精度達到了71.04%[9]。Cheng S 等提出一種改進的視覺幾何組(VGG)深度卷積神經網絡(CNN)的表情識別模型,改進后的VGG-19 網絡模型在人臉表情識別上可以達到96%的準確率[10]。目前為止人臉表情識別研究已歷經了半個世紀,然而它的熱度不降反升,近年來更是伴隨著神經網絡技術的發展成為了一個熱門的研究課題。

本文提出了一種基于稠密卷積神經網絡的人臉表情識別方法,通過特征復用與旁路連接的方式,實現人臉表情特征提取,在擴展的KDEF 數據集數據集上訓練卷積神經網絡,對面部表情進行分類,精度達到了96.88%,并利用預先訓練的網絡模型開發出一個可以實時檢測人臉表情的操作軟件。本文不僅在人臉表情識別網絡的學術領域取得了一定的成果,也對社會生產實踐有一定的指導意義。

2 人臉表情識別方法

2.1 人臉表情識別過程

人臉表情[11]是傳遞人類情緒信息和協調人際關系的有效手段。人臉表情是由面部多處肌肉(如,眼部,口部等)的變化組合來表達人類自身的各種心理狀態。人類的面部表情至少包含21 種,1971 年,心理學家Ekman 與Friesen 首次提出人類的6 種主要情緒狀態,分別是:生氣(Anger)、開心(Happiness)、傷心(Sadness)、驚訝(Surprise)、厭惡(Disgust)和害怕(Afraid)[4]。本文所研究的人臉表情即是在此六種基本表情基礎上加入了中立(Neutrality)表情。

人臉表情識別主要基于三個步驟組成:人臉表情圖像獲取、圖像特征提取、特征分類[12],如圖1 所示。

圖1 人臉識別過程

2.2 DenseNet網絡模型

從CNN 開始不斷地加深網絡,梯度消失和模型退化問題就一直存在,其中批量規范化使得梯度消失問題得到一定程度的緩解,ResNet[11]的出現進一步減少梯度消失和模型退化問題的發生。DenseNet[13]的優勢在于其通過特征重用和旁路設置,使得網絡的性能得到大幅度提升。相比于ResNet,減少了可訓練參數量,加強了特征的傳遞,更加有效地利用特征,減輕了梯度消失和模型退化問題。

ResNet 將每一層和前面的某一層短路連接起來,在一定范圍內減輕了該問題的發生,而DenseNet做了一個更加激進的緊密連接機制:將每一層網絡都和前面所有的層連接起來(如圖2),即在DenseNet網絡的第n 層有(n-1)個連接與前面的所有層。這種緊密連接機制,避免了特征信息在層之間傳遞導致的梯度消失問題。

圖2 DenseNet短路連接機制

2.3 基于DenseNet 預訓練網絡的人臉表情識別方法

2.3.1 人臉表情識別數據集

本文所采用的數據集由KDEF 和手動制作的人臉數據集組成。

KDEF[14]數據集包含了70個年齡位于20歲~30歲之間的成年人,由35 個男性,35 個女性從5 個不同的角度:正前方,左前方,左側,右前方,右側,拍攝了7 種表情:生氣、開心、傷心、驚訝、厭惡、害怕和中立,每個表情拍攝兩次,總共4900 張人臉表情圖片。圖片為562*762 像素的RGB 圖像,圖3 所示為KDEF中的部分表情圖片。

圖3 KDEF部分圖片示例

手工制作的人臉表情數據集同樣包含7 種表情,每種表情包含10 張不同的圖片,共70 張,圖片為420*620 像素的RGB 彩色圖像,部分圖片如圖4所示。

圖4 手工制作數據集部分示例

訓練集包含KDEF數據集中的3780張圖片,以及手工制作數據集中的56 張圖片,驗證集包括KDEF 數據集中的1120張圖片,手工制作數據集中的14張圖片。

2.3.2 數據處理

歸一化處理[15]可以提升訓練模型的收斂速度、訓練精度以及防止梯度爆炸。文章采用了最大-最小標準化方法對輸入的圖像數據進行歸一化處理,數學定義式為

式中:x為數據灰度值,max 為圖像灰度最大值,min 為圖像灰度最小值。

文中采用了隨機上下、左右翻轉和隨機裁剪對圖像進行數據增強,對圖像進行隨機上下左右翻轉和隨機裁剪,大大擴充了樣本量,訓練出來的模型泛化能力更強[16]。

2.3.3 網絡模型

本文采取的人臉表情識別方法是基于DenseNet預訓練網絡搭建的。為了減輕梯度消失和梯度爆炸問題,在模型中用添加BatchNormalization層做批量正則化處理,選擇ReLU作為激活函數,可以減輕梯度消失和梯度爆炸問題,而且計算量小,收斂迅速。添加一層GlobalAveragePooling,對特征信息的高度和寬度兩個維度進行平均化求值。

兩層Dense 做分類器,第一層Dense 有1024 個隱藏單元,使用ReLU作為激活函數,最后一層輸出層Dense 隱藏單元數為7,使用softmax 作為激活函數。

網絡模型如圖5 所示,該模型共有8098375 個參數,其中可訓練參數為8012679個。

圖5 人臉表情識別方法整體結構

2.4 編寫實時人臉表情識別系統界面

文章編寫了一個系統,來實時檢測人臉表情。將訓練好的模型加載進來,調用計算機攝像頭,在視頻流中獲取到每一幀的圖片,然后調用OpenCV提供的人臉識別分類器,找出人臉所在的坐標,并記錄下來,按下空格鍵,系統則會先保存下當前圖像,將圖像按照人臉識別出來的坐標裁剪出合適的圖片,用于人臉表情識別。此時載入人臉表情識別模型,對圖片內容進行識別,并識別內容返回,使用OpenCV在顯示圖像的每一幀時將上一次的識別結果放在圖片左上角,按下Q 鍵則退出系統,軟件操作界面如圖6所示。

圖6 人臉表情識別系統軟件界面

3 實驗結果分析

3.1 優化模型

經過測試512*512、256*256、224*224、128*128 不同大小尺寸的圖像輸入網絡后的結果,如表1 所示,可以看出當輸入圖像尺寸為256*256 和224*224的時候,都取得了93%的較高準確率,但是大小為224*224 像素時每次迭代訓練速度更快,模型收斂速度也略快,所以最終采用圖像的輸入尺寸為224*224像素。

表1 不同尺寸的圖像輸入對準確率的影響

3.2 結果分析以及模型評估

文章建立的數據集對模型進行5000 次迭代的訓練,模型的準確率隨著訓練進行產生的變化如圖7 所示,圖中紅色的線表示訓練集上的準確率情況,藍色的線表示驗證集上的準確率情況,橫軸表示迭代的次數,縱軸表示準確率。在進行第2085次迭代之后,模型的準確率達到了5000 次訓練的最大值96.88%。

圖7 模型準確率變化情況

除了訓練集和驗證集的準確率和損失,本文還運用了其他評估方法對模型進行了評估。

1)計算模型在不同人臉表情上的識別精度,如表2所示。

表2 不同表情上的識別準確率精度

2)計算混淆矩陣。本文中的人臉表情識別模型的混淆矩陣[17]如表3 所示。引入了五個分類精度評價指標,分別為準確率(Accuracy)、精確率(Precision)、召回率(Recall)、特異度(Specificity)、F1-值(F1-score)。其中,準確率是所有的預測正確的樣本數占總預測樣本個數的比重,數學公式為

表3 混淆矩陣精度評估表

式中:TP表示預測值為當前表情且預測正確,TN則為預測值為非當前表情且預測正確,FP 表示真實值不是當前表情且預測錯誤,FN 則為真實值是當前表情且預測錯誤。

精確率表示預測值為當前表情且正確預測的樣本數占預測正確的樣本數的比重,精確率的數學公式:

計算出每一個表情的精確率,如表4。

表4 精確率的精度評估表

召回率表示預測值為當前表情且正確預測的樣本數占全部預測當前表情的樣本數的比重,召回率的數學公式為

每個表情的召回率如表5。

表5 召回率的精度評估表

特異度是錯判的樣本數占全部預測錯誤的樣本數的比重,特異度的數學公式為

計算結果如表6所示。

表6 特異度的精度評估表

F1 Score是P和R 的調和平均數,F1 Score的數學定義為

式中:P 代表精確率,R 代表召回率,所以每個表情的F1 Score值如表7所示。

表7 F1 Score值的精度評估表

3.3 對比其他人臉表情識別方法

本文提出的基于DenseNet 預訓練神經網絡的人臉表情識別方法,相對于直接使用DenseNet有較大的優勢,從表8 中可以看出,DenseNet121 預訓練網絡模型在本文的數據集下最高準確率為93.66%。

表8 不同的網絡模型的識別準確率

使用文章中的數據集對ResNet121、MobileNet流行的預訓練網絡模型以及傳統方法PCA+KNN、2DPCA[18]、Gabor+2DPCA、NFM+SVM進行了對比試驗。ResNet121 同樣采取跳接的方式,取得了85.62%的準確率,但DenseNet 更為激進的跳接方式在特征提取上取得了更好的效果。MobileNet 在體積上有著很大的優勢,極大地減少了參數量,但與此同時損失了精度,準確率為90.54%。傳統機器學習方法:PCA+KNN、2DPCA相對于卷積神經網絡對圖像特征提取能力較差,人臉圖像識別準確率較低。Gabor+2DPCA 中Gabor 類似于人體視覺細胞刺激響應方式,能夠較好提取局部特征信息,取得了82.51%的準確率。NFM+SVM 能夠快速學習到高階線性組合圖像特征,取得了較高的準確率83.17%。綜上,文章所提出的基于DenseNet 的人臉表情識別方法在準確率上明顯優于其他方法。

4 結語

本文提出的基于稠密卷積神經網絡的人臉表情識別方法,最終取得了驗證集上96.88%的準確率,與此同時設計出了人臉表情識別原型軟件,利用已經訓練好的模型實時檢測人臉表情,取得了很好的效果。本文主要做出的貢獻如下:

1)提出基于稠密卷積神經網絡的人臉表情識別方法,該模型能夠有效提取人臉表情特征信息,識別率較高,收斂速度快。

2)手工制作了人臉表情數據集并結合目前主流的公開數據集,測試了不同圖像尺寸下模型的表現情況。

3)設計出了人臉表情識別的原型軟件,對人臉表情識別的普及推廣具有重要的現實意義。

文中所提出的模型雖然已經取得了不錯的識別效果,但是還需要繼續增大訓練數據樣本,其普遍性無法推廣到整個人類的表情數據,還需要經過更多的數據檢驗。其次,文中所提出的模型方法,需要提供擁有非常強大算力的計算機,訓練參數達到了百萬級,訓練過程較長,在不降低模型性能的基礎上,適當優化模型,減少模型訓練參數,以減少計算量。

猜你喜歡
樣本數人臉準確率
勘 誤 聲 明
有特點的人臉
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
三國漫——人臉解鎖
高速公路車牌識別標識站準確率驗證法
Fisher線性判別式閾值優化方法研究
三時間間隔圓錐補償姿態更新算法性能分析
馬面部與人臉相似度驚人
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合