?

基于樹莓派的實時人臉表情識別

2021-04-20 02:36牛犇滕運江
電子技術與軟件工程 2021年1期
關鍵詞:樹莓人臉分類器

牛犇 滕運江

(金陵科技學院電子信息工程學院 江蘇省南京市 211169)

人臉表情能夠快速、準確傳遞出當事人的狀態、思想和態度等內在心理,成為眾多情感表達中最自然、最直接有效的方式?;诜墙佑|式圖像和視頻序列的人臉表情識別成為人機交互及人工智能領域不可或缺的環節,具有重要的研究意義。人臉表情識別在生活中的應用非常廣泛,如情感機器人能夠通過捕捉人臉表情來感知人類的喜怒哀樂;醫療服務方面,可以通過對病患的人臉表情識別判斷其痛苦情況,輔助醫生進行診斷;交通安全方面,通過對車輛駕駛員進行實時人臉表情識別,可以在疲勞駕駛和突發情況時及時給予提示;公共安全方面,通過人臉表情識別可以預測人們的心理變化,從而預防惡性事件的發生;教育方面,可以通過實時的人臉表情識別來反映學生的學習狀態[1]。

著名心理學家Ekman 定義了6 種基本表情和1 種無表情狀態,即:生氣、厭惡、恐懼、高興、悲傷和驚訝,無表情狀態也稱為“自然表情”。Ekman 等根據面部肌肉的運動將人臉劃分成不同區域,建立了“面部動作編碼系統”(Facial Action Coding System,FACS)。不同的肌肉運動過程,能夠產生不同的表情,從而實現人臉表情識別[2]。研究人員在此基礎上開展了大量的研究工作。目前人臉表情識別主要基于兩種方法:傳統的特征提取方法和深度學習方法。傳統的人臉表情識別方法依賴于特征提取的有效性及分類器設計的合理性,常用的特征提取方法主要有局部二值模式(Local Binary Pattern, LBP)、Gabor 小波變換、方向梯度直方圖(Histogram of Oriented Gradients, HOG)、尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)等,常用的分類器主要包括K 近鄰分類器(K Nearest Neighbor,KNN)、樸素貝葉斯分類器(Naive Bayes, NB)、支持向量機(Support Vector Machine, SVM)、隨機森林(Random Forest, RF)、決策樹(Decision Tree, DT)等[3]。對于傳統人臉表情識別方法,特征提取具有較強的人為干擾因素,且分類器選取也決定了識別精度,因此魯棒性不強。深度學習方法能夠自動地提取更深層次的表情特征,排除了人工選取特征的不利因素,從而大大提高了識別率。使用卷積神經網絡進行人臉表情識別,通常是將整張圖片作為輸入,通過網絡模型的訓練以達到分類識別的目的[4]。本文主要研究基于深度學習的人臉表情識別方法,并在樹莓派中實現實時人臉表情識別。

1 樹莓派簡介

2012年3月,樹莓派是由英國的“Raspberry Pi基金會”研發成功,被譽為最小的臺式機,因為外形的大小跟信用卡相近,所以又被稱為卡片式電腦。

樹莓派自發售以來,風靡全球,受到廣大計算機愛好者的廣泛追捧。樹莓派具有圖形化的操作界面,可以作為一臺微型電腦使用,實現常用的文檔編輯、網頁瀏覽、音視頻播放等功能。樹莓派也可以用于硬件智能化,實現智能小車、電子相框、人臉識別、語音識別等嵌入式開發工作。

圖1:較弱光照條件下的人臉表情識別

樹莓派4B 使用1.5GHz 四核ARM Cortex-A72 處理器,4G 內存,并引入USB3.0 接口,支持雙頻無線Wi-Fi,5V/3A 的USB-C 接口供電,具有良好的性能和豐富的接口[5]。

2 基于樹莓派的實時人臉表情識別系統設計

本文所設計的基于樹莓派的實時人臉表情識別系統采用樹莓派4B 作為載體,軟件平臺及版本為Python3.7+OpenCV4.2.0+Tensorfl low2.0.0+Keras2.3.1,人臉檢測采用Haar-like 特征算法,分類器模型為深度學習卷積神經網絡模型,該模型具有訓練簡單、權值損失小、能夠并行學習、復雜度低等優點?;跇漭傻膶崟r人臉表情識別系統主要分為以下幾個部分。

獲取圖像:圖像的獲取可以直接上傳拍攝的照片,也可以選擇用攝像頭實時捕捉畫面,本系統采用攝像頭進行實時人臉檢測。代碼實現主要通過語句cv2.VideoCapture(0)獲取視頻幀,然后傳入一個變量cap,最后調用語句cap.set()繪制視頻窗口,通過獲取的視頻幀圖像形成視頻流,從而達到實時檢測的目的。

人臉檢測:該系統調用OpenCV 自帶的基于Haar-like 特征的人臉檢測模型對當前幀圖像進行檢測,對人臉區域進行標注。代碼實現使用cv2.CascadeClassifier()語句導入OpenCV 的haarcascade_frontalface_default.xml 模型,然后使用cap.read()語句讀取視頻幀圖像,使用face_classifier.detectMultiScale()語句進行檢測參數的設置,最后把檢測到的人臉特征傳入faces 變量,即完成了人臉檢測部分的功能。

特征提?。涸撾A段通過事先訓練好的人臉表情分類器提取視頻幀圖像的人臉表情特征。首先安裝Tensorflow 框架,然后再安裝一個Keras 模塊來加載訓練模型,完成環境的搭建后,使用load_model()語句加載事先訓練好的模型,將檢測到的人臉特征即上文提到的faces 變量導入人臉表情分類器模型即可。

表情分類:使用訓練好的深度學習模型檢測提取到的人臉表情特征。通過將所提取的人臉表情特征進行分類,即可得到當前圖像中的人臉表情類別。代碼實現需要定義一個字典表示7 種表情,因為從表情分類器模型中返回值是0~6 的數字,然后把數字傳入字典后得到所定義的表情類型。

輸出結果:將識別結果在原圖像中進行標注。代碼實現主要是先從faces 變量中提取四個參數,然后使用cv2.rectangle()語句繪制人臉區域,之后使用cv2.putText()語句在繪制出的人臉區域上方輸出對應的人臉表情標簽。

3 實驗結果與分析

3.1 實驗測試

本文采用攝像頭在真實環境下進行面部表情采集,通過改變光照條件、膚色條件等對基于樹莓派的實時人臉表情識別系統進行測試。

3.1.1 正面人臉的實時表情識別測試

正面人臉表情采集環境為大學宿舍室內,具有簡單的室內家具環境,測試對象性別均為男性,年齡22-25 歲,黃種人,人臉正對設備,共測試自然(neutral)、高興(happy)、驚訝(surprise)、悲傷(sad)、生氣(angry)、恐懼(fear)、厭惡(disgust)七種表情。在正常光照情況下,該系統能夠成功檢測出人臉區域,進行實時人臉表情識別,并顯示表情類別標記??紤]到光照對于圖像檢測的影響,改變光照條件,在光照較為微弱的環境下進行測試。測試對象為男性,23 歲,黃種人,人臉正對設備,共測試七種表情。人臉表情識別結果如圖1所示,在室內較弱光照環境下,雖然圖像對比度較低,但該系統仍能成功檢測出人臉區域,正確識別出人臉表情,并顯示表情類別標記。

本文所設計的基于樹莓派的人臉表情識別系統在不同光照條件下均能夠達到較好的識別效果。不同測試對象在不同的表情下具有非常強烈的個人特征,本系統可以正確識別不同人臉的表情。共進行十組實驗,人臉表情的平均識別率為93.4%,其中厭惡和生氣兩種表情在識別過程中容易發生混淆,需要測試者做出較為夸張的表情才能夠正確識別,可能的原因是該兩種表情在面部肌肉的運動表現較為相似,從而造成一定的識別誤差。

3.1.2 非正面人臉及部分遮擋人臉的實時表情識別測試

在實際應用場景中,所采集到的人臉圖像可能并不是正面人臉,本文對非正面人臉進行測試。實驗分別測試了人臉旋轉45 度和旋轉90 度的人臉表情圖像,從實驗結果可以看出,本文所設計的基于樹莓派的實時人臉表情識別系統對于角度較大的非正面人臉表情識別效果并不理想,需要進一步改進完善。

在實際應用場景中,所采集到的人臉圖像可能會發生遮擋,比如測試對象佩戴帽子、眼鏡等,本文對部分遮擋人臉進行表情識別測試。如圖2左邊兩個圖像為佩戴眼鏡的人臉表情識別結果,右邊三個圖像為使用紙張對人臉進行部分遮擋情況下的表情識別結果。從實驗結果可以看出,對于佩戴眼鏡的人臉表情識別效果較為理想,但是對于紙張遮擋部分人臉的表情識別效果較差。

3.1.3 不同種族及多人臉情況下的實時表情識別測試在實際應用場景中,所采集到的可能是不同種族的人臉圖像,比如白種人,黑種人和黃種人,本文對于不同種族的人臉進行表情識別測試。實驗結果表明,對于不同膚色的人臉表情同樣能夠正確識別。在實際應用場景中,可能會出現多張人臉的情況,本文對于多張人臉進行實時表情識別。在實際的實驗過程中,會出現個別人臉表情無法正確識別的情況。

3.2 結果分析

通過以上實驗結果可以看出,由于硬件限制,識別結果會出現一定的延時。此外,受攝像頭像素和光照條件等因素的影響,部分人臉表情識別結果不夠準確,人臉的偏轉角度也對人臉表情識別結果具有一定的影響。

在實驗過程中,每個測試對象的表情強度各不相同,從而引起面部變化的不同,因此可能造成不同的識別結果。實驗結果表明,在背光、昏暗的室內進行人臉檢測時,由于人臉的陰影面積較大,造成人臉檢測較為困難,從而無法進行后續的表情識別。在光照良好的條件下,當人臉一側背光時,則無法準確檢測出人臉,造成表情識別錯誤,而當人臉曝光良好時,識別結果較為準確。實驗結果表明,生氣和厭惡這兩種表情識別較為困難,可能的原因是該兩種表情在面部肌肉的運動表現較為相似,同時也與表情強度有關。

復雜情況下人臉檢測難度較大,造成人臉表情識別困難,人臉轉動一定角度時無法正確檢測到人臉,從而導致了人臉表情識別錯誤。在人臉被部分遮擋時,佩戴透明或透光性較差鏡片的眼鏡時能夠正確識別人臉表情,而使用不透光的紙片遮擋眼部、眼鼻部、嘴部等情況下都無法識別人臉表情。

通過對不同種族的人臉表情進行識別,發現人臉表情識別仍較為準確。但在多個人臉表情識別時會發生個別人臉檢測不到,無法進行表情識別的情況。

通過對實驗中所使用的表情進行分類對比,不難發現,現實生活中最常見的表情更容易識別,如開心、驚訝、悲傷。另外幾種表情在實驗過程中識別較為困難,可能是因為面部肌肉運動較難區分,同時表情強度較弱。

從實驗結果可以看出,人臉表情識別受環境因素影響很大,在后續的研究中可以通過優化分類模型來改善識別效果,同時也可以通過調整實驗環境來達到識別效果的最優化。

4 結語

本文設計了一種基于樹莓派的實時人臉表情識別系統,對人臉表情識別的主要方法進行了分析,使用深度學習框架Tensorfllow在樹莓派上實現對人臉表情的實時識別。實驗結果表明,本文設計的基于樹莓派的實時人臉表情識別系統對于正面人臉表情識別具有較好的識別精度和較高的魯棒性,但對于旋轉角度較大的非正面人臉表情和低分辨率多人臉表情識別效果不佳。后續將圍繞非正面人臉表情和低分辨率多人臉表情實時識別開展研究工作,對深層網絡模型進行優化。

猜你喜歡
樹莓人臉分類器
有特點的人臉
基于樹莓派的騎行智能頭盔設計
三國漫——人臉解鎖
BP-GA光照分類器在車道線識別中的應用
基于樹莓派的遠程家居控制系統的設計
加權空-譜與最近鄰分類器相結合的高光譜圖像分類
結合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
響應面法優化紅樹莓酒發酵工藝
馬面部與人臉相似度驚人
基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合