向莉 薛紅 黃巋 錢瑩晶
(1.吉首大學信息科學與工程學院 湖南省吉首市 416000)
(2.懷化學院武陵山片區生態農業智能控制技術湖南省重點實驗室 湖南省懷化市 418008)
當今社會,越來越多老人因疾病突發、處理不及時導致猝死現象。降低病人監護的技術門檻和人力成本,提高疾病突發時候的預警效率和準度是目前亟需解決的問題。為實現患者病情的高效、可靠和低成本檢測,本文通過研究人臉檢測技術[1]、微表情特征提取技術[2]和微表情識別技術[3]等內容,擬研制一套基于微表情識別的病人病情預警系統。
基于計算機的人臉表情識別是指:首先在視頻或圖像中檢測出人臉,然后對人臉的面部特征進行提取,最后通過已訓練的模型對表情進行分類。該系統主要包括視頻采集模塊、圖像預處理模塊、人體目標識別模塊、病人表情識別模塊、VAS(微表情庫)疼痛評分模塊、病情預警模塊及服務器數據中心和信息管理平臺。系統通過監控設備對監控區域出現的心臟病病人的表情、行為進行采集、處理、訓練和識別,進而預測病人的病情。
整個系統先通過視頻采集模塊將含有人物特征的圖片集從視頻中提取出來。第二步,將經過預處理的視頻通過人體識別模塊標出人物位置。第三步,使用病人表情識別模塊,識別出視頻人物所出現的表情變化。最后,通過VAS疼痛評分模塊將臨床病人的痛苦表情打分,超過一定閾值時觸發報警,尋求家人或者護理人員的幫助。
圖像采集模塊是指從原始視頻流中按照一定的滑動窗口選擇連續的數幀圖像。對于預處理模塊,首先將這些圖像灰度化轉為灰度圖,再使用圖像去噪算法,去除圖像噪聲。本系統采用傅里葉變換與高斯濾波算法降噪,并采用運動模糊圖像復原算法,復原處于運動中的臨床病人的圖像。使用降噪的圖像作為輸入可以提高圖像后期人物與微表情識別模塊的準確性。
本系統的人體目標識別模塊的主要任務是從預處理的數幀圖像中確定,將獲取的視頻逐幀輸入DarKNet-53變型網絡,并以卷積層leaky relu損失函數作為基本組件。在人物識別模塊采用多尺度融合的方式進行預測在多個尺度特征圖上進行位置和類別預測,提高人物檢測的準確率。用k近鄰的方法對數據集的目標框進行維度聚類,對于尺度更大的特征圖則采用更小的先預測框使用獨立的邏輯分類器進行類別預測。對于高層特征圖和低層特征圖則采用上采樣和下采樣進行特征融合,對人物目標選取與其重疊并且IOU最大的作為候選框。

圖1:系統卷積神經網絡模型網絡結構圖

圖2:積極與消極表情測試結果的樣本分布

表1:實驗模型在7種表情的數據集中的表現結果
系統設計前期,構建了病人表情圖像采集系統,收集訓練樣本并且人工的進行標注,建立病人表情數據集并且采用多尺度訓練的策略方式對病人表情進行多尺度訓練,結合Keras框架搭建卷積神經網絡進行特征提取。在時間維度的流結構中引入LSTM網絡[4],使其網絡架構能夠獲得更長的視頻幀信息。之后再重新構造標準化圖像的誤差函數、平滑誤差函數以及ssim誤差函數并進行整合。最后通過雙向LSTM獲取關鍵時域信息進行聯合訓練,去除無用幀。
使用該訓練好的識別模型,針對人這一人物特征進行學習,將時間流和空間流進行加權融合采取softmax回歸從而識別視頻中的微表情將其結果傳遞給服務器。
目前微表情識別的方法主要有LBP、SVM和深度學習等。卷積神經網絡是用于微表情識別最熱門的方法之一,如VGGNet、CNN16等。本系統采用了卷積神經網絡模型結構,使用OpenCV中分類器積分圖與Ada Boost級聯分類器[5],大量節省了識別微表情的時間,提高了系統的運行效率。微表情識別模塊在患者實時監護系統中的主要目的是精確判斷患者的面部表情是否痛苦。相較于目前主流的微表情識別系統的主要區別在于,本系統較為關心其面部表情的痛苦程度、憤怒等具有消極性的面部表情,對于其他類型面部表情本系統將不予區分,進一步縮短訓練與識別時間,提高識別效率,能夠更快的響應實時性的視頻流數據,降低計算的資源消耗。
同時,該模塊采用的卷積神經網絡是一種包含卷積層、池化層、全連接層及Softmax層的深度神經網絡,圖1為系統的卷積神經網絡模型的網絡結構圖。
其中卷積層采用大小為3×3、步長為1的卷積核對圖像進行卷積計算,同時使用ReLU激活函數減少計算量、增加網絡稀疏性、防止發生過擬合。卷積層和池化層交替出現,對輸入的參數進行降維處理,使得提取出來的特征數據方便連接全連接層。Softmax分類器輸出每一個類別對應的輸出概率,最終選擇輸出概率最大的類別作為分類器輸出結果。
fer2013/PublicTest共含有7種表情標簽,分別為anger、disgust、fear、happy、neutral、sad以及surprise。為將這些表情用于病床監護系統中去,我們將這七種表情分為兩類:happy以及neutral標簽的分為positive類,其余五種表情歸為negative類,這五類表情因為與痛苦表情具有一定的相通性,在實際病房中,可以將該類表情均歸為一類。
使用CNN模型對fer2013/PublicTest的七種表情的數據集測試結果如表1。
其中face_detection_rate表示在包含人臉的圖片中識別出人臉的概率,可以評估出人臉檢測模塊的準確性。emotion_identify_accuracy表示在已識別出人臉的樣本中劃分表情性質的準確度,可以評估表情識別模塊在區分積極與消極表情的準確度。total_accuracy表示最終正確劃分的結果占總樣本的比重,用于評價組合模型的整體性能。
同時,實際程序在CPU占用峰值<600%(6線程)的情況下,平均檢測速度達到7張圖(512×512)每秒,能夠滿足高通量數據流的病床監護系統需求。
從實驗結果中,我們對積極與消極兩種表情的人臉檢測錯誤、表情識別成功與表情識別錯誤的樣本個數的統計結果如圖2所示。
實驗模型使用了目前主流的人臉表情數據集CK+、JAFFE進行了訓練,對fer2013/PublicTest的數據集進行了測試。在人臉表情的識別這一模塊中能達到80.56%的準確度,但由于受到人臉檢測模型準確度的影響,使得最終準確度維持在57.48%。但實際應用中,我們可以在高通量的圖片數據流中,對于連續的多幀圖片的檢測結果來綜合判定短時間內患者的表情,提高最終預測的準確性。