王子薦,孟小燕
(內蒙古師范大學青年政治學院,內蒙古 呼和浩特 010080)
隨著時代的變化,心理健康問題逐漸升級為人們關注的焦點之一。心理問題不像普通的健康問題容易被診斷,更多時候我們很難發現一個人情緒的好壞,多數人因為各種原因隱瞞自己的情緒。古人言“喜形于色”,通過表情來診察心情的好壞是一種有效的方式。學術調查顯示:人類有55%的情感都是通過面部表情來傳遞的,表情不僅能便捷反映學生的心情變化,更重要的是可以間接凸顯出學生的心理狀態[1]。調查問卷和親自觀察開始研究情緒識別的主要方式,兩種方式的結果都不盡如人意,無法做到樣本數量眾多的情況下實時進行情緒檢測;調查問卷存在一定的主觀性,容易受到環境干擾。所以,在實際應用中迫切需要一種適合實時處理大規模數據進行情緒識別的方式。
隨著人工智能、計算機圖形學和各種硬件設備的不斷發展和演變,情緒分析與識別是神經科學、心理學、認知科學、計算機科學和人工智能領域的一個重要跨學科研究課題。基于計算機視覺的表情識別方法因其數據獲取的便捷性和方法使用的高效性受到研究者的關注。本作品設計是基于Python、OpenCV視覺庫和OpenVino深度學習引擎,可以實時監測對象的情緒變化。前端設計微信小程序,通過攝像頭提取人臉,判別人臉表情,后臺建立學生人臉表情數據庫,生成情緒曲線,用于快速便捷的發現學生心理的波動,開啟一個有效的模式:發現—評估—干預,實時獲取數據為校園心理咨詢服務提供決策依據,從而有針對性地對學生心理問題進行預警和干預,引導青少年形成健康的心理狀態,它是計算機技術與教育學科的深度融合,是人工智能技術在心情識別領域的重要應用。
卷積神經網絡內部涵括了卷積計算在內的反應神經網絡,以抓取、預處理幾步對特征進行構建,是計算機深度學習中的著名結構,卷積神經網絡主要由卷積層、池化層、全連接層三部分組成[2]。算法的轉換特征的方式主要由抓取數據集,預加載文件,構建神經網絡這幾步完成,從而實現我們想要的人臉特征識別。數據集通常是48×48像素的灰色圖像,統一的灰度處理,以減少噪聲干擾。其隱含層內的卷積核參數共享和層間連接的稀疏性使得卷積神經網絡能夠以較小的計算量對格點化特征,例如像素和音頻進行學習、有穩定的效果且對數據沒有額外的特征工程要求。這樣的性質,使CNN 不僅可用于人臉識別,也可用于物體分析、行為認知等其他的計算機視覺識別領域。
CNN 模型相比其他算法,更穩定且識別領域更廣,該模型已被研發者大量使用并將其優化獲得了更精準的識別率[3]。但在特定的條件下,如低光照度、低分辨率時,識別的準確性可能有所下降;使用CNN 進行特征提取,使用者不必關心具體的特征是哪些,即實現了特征提取的封裝。
本作品設計是使用Python 調用OpenCV 庫,可判斷不同同學的心情狀況并基于本人身份進行記錄。前端使用JavaScript 語言開發微信小程序,方便使用者對記錄情況進行觀察,后端系統檢測(程序識別心情),進行心情數據的存儲(獨立存儲學生不同時間段的心情數據),后臺介入(上傳教師管理端程序,匯報需要心理干預的學生)。
1)攝像頭獲取圖像:
設置計算核心,內嵌人臉識別程序的攝像頭安裝在需要評估或者學生流動大的場所,如心理咨詢室門口、宿舍樓門口,通過攝像頭傳入視頻,程序的圖像獲取模塊會捕捉每一幀圖案,供捕捉和識別模塊進行逐幀分析。
2)調用OpenCV視覺庫捕捉人臉:
人臉捕捉模塊會對圖片內繪制檢測矩形,加載OpenCV 視覺庫的人臉檢測模型計算存在權值,捕尋人臉位置,將人臉信息返回到表情識別模塊。
3)利用Python語言做表情識別:
心情分析模塊會計算分析圖片內的人物表情,命名五種心情種類,分別為“自然”“生氣”“傷心”“開心”“驚喜”,為保證心情識別的準確程度,程序會計算最大以及第二大的心情概率,并將心情概率繪制在逐幀的視頻上,進行輸出。
4)基于JavaScript進行前端web開發:
設計微信小程序,優化交互性,學生端記錄學生信息、心情數據。
5)通過MySQL 建立基于人臉識別的心情評估數據庫:
按照預先設計的人臉特征碼,對不同個體的心情數據信息按身份進行存儲。
6)反饋預警學生,及時心理疏導:
連接手機教師端進行反饋,根據心情曲線關注某階段情緒波動較大的學生情況,有針對性地進行心理干預。
使用Python3.7開發,配置環境變量,使用OpenCV視覺庫的人臉識別模塊以及Intel表情識別模型,功能參數如表1所示。

表1 功能參數表
1)人臉捕捉模塊
讀取加載模型和配置文件:定義檢測矩陣的長寬高,代入模型;通過循環截取人臉,計算分數,確定人臉位置,得到坐標。
2)人臉情緒識別模塊
命名五種心情;把人臉坐標代入心情分析模型,分析各種心情的概率;提取最高概率的心情,存入txt1,概率存入nub1;優化交互,繪制最高和次高概率的心情和心情概率在視頻幀上,如圖1—圖2所示。

圖1 遮住半張臉的高興表情

圖2 生氣表情
本次測試筆者選取40張人臉作為數據集,隨機進行80次測試(圖3),通過對比人工識別人物心情和程序處理的結果(圖4),驗證了識別的準確程度,并針對性分析了可能導致錯誤的原因。

圖3 測試樣本
測試結果分析:識別準確度為:96.25%(以正確為1,模糊為0.5),容錯率符合目前使用環境;可能導致錯誤或模糊的原因為:頭發、眼鏡、帽檐對五官的遮擋;背景過高的曝光度。
使用OpenVino加速引擎進行學習訓練。OpenVino是Intel開發的深度學習模型推理加速引擎,相比其他運算引擎可在Intel 平臺上提升計算機視覺相關深度學習性能達19 倍以上[4],對OpenCV,OpenXV 視覺庫的傳統API 實現加速與優化,并且突破了CNNbased網絡在邊緣設備的性能瓶頸。使用面部特征碼對個體人臉進行識別與存儲,JavaScript 編寫微信小程序(圖5),增加人機交互性;后臺連接教師端(圖6),可讓管理者方便看到個體心理情況,提供及時預警。

圖5 人機交互界面

圖6 教師端反饋
通過文獻查找,將Python語言應用于情緒識別平臺建設的研究非常有限。將人工智能技術用于情緒分析,針對青少年群體,更好地對有心理問題的學生進行盡早干預和治療是本次設計作品的意義所在,也是創新特色。除了算法和模型的積累,還需要以寬泛的視角積累大量的用戶數據,建立完善的數據庫和專家知識決策系統,從而提高反饋情感時的精度,真正做到察言觀色、情感分析。
情感識別是社會發展需求、深度學習領域結合人文關懷的綜合體現[5]。在當今時代具有重要的科研意義。心理問題是隱性問題,心理健康逐漸升級成了研究者關注的焦點之一,有效的診療方式成了當務之急。心理問題不像普通健康問題那樣容易被診斷,通過設置產品,實時監測個體的心理波動狀況,可以較為容易地掌握個體的心理狀況,從而及時、高效地對潛在問題的對象進行人文關懷,具有溫馨的社會意義和樂觀的效益前景。