王彥博,王浩然,張劍書,韓磊
(南京工程學院,江蘇 南京 211167)
基于計算機視覺的疼痛檢測是通過人臉面部特征進行疼痛表情等級評估的一種技術。外部攝像頭采集到人臉面部圖像后,經過圖像預處理、人臉檢測、疼痛模型評估這三個過程,可得到面部所表征出的疼痛等級。與傳統的由專業人員進行疼痛等級評估的方法相比,基于計算機視覺的疼痛檢測具有高效性、及時性、便捷性等特點,使用方法靈活,便于康復中心、醫院等醫療機構用以評估患者在治療過程中的不適感受,其在智慧醫療領域有著廣闊的應用前景[1-2]。
為排除圖像背景與環境信息對疼痛表情識別結果的影響,首先需要人臉檢測算法對圖像中的面部信息進行提取。本文在圖像檢測中,使用的是Face_Recognition人臉檢測庫,其核心算法是基于dlib訓練得到的深度學習模型[3],該方法不基于面部特征,支持圖像中不同面部角度的檢測,但檢測速度相對較慢。由于單張圖像檢測不要求實時顯示結果,故以此方式提升人臉檢測成功率。在視頻檢測中,使用Haar+Adaboost算法進行人臉檢測。該方法能夠同時保證檢測準確率和速度,將Haar-like特征、Adaboost算法和Cascade級聯結構結合,在消耗較少計算資源的情況下實現高速高效的人臉檢測,以確保實時視頻檢測的及時性[4]。
為檢測對象面部所表現出的疼痛等級,本系統使用VGG-19(Visual Geometry Group-19)深層卷積神經網絡來訓練疼痛檢測模型[5],該網絡以更小的卷積核進行多層的堆疊,通過不斷堆疊卷積層和池化層,獲得與一個大的卷積核相同的感受野,在減少參數的同時,得到更深的結構。在模型訓練過程中,VGG-19要求輸入圖像大小均為224*224。首先將所有圖像中的人臉部位剪切出來,然后將20位志愿者接受4級電刺激過程中的RGB圖像數據集進行劃分,12個為訓練集,4個為驗證集,4個為測試集,以此進行訓練。最終的訓練結果是模型準確率約為85%,同時精確率、召回率和F1函數也在都在85%左右。
本系統的架構主要包括組管理、圖像檢測和視頻檢測。用戶類型分為普通用戶、專業用戶以及管理員。具體的系統架構如圖1所示:

圖1 疼痛檢測系統架構
其中,普通用戶僅可進行圖像與視頻的檢測。專業用戶可進行圖像檢測、視頻檢測(包括視頻文件檢測及實時視頻檢測),并可對檢測結果進行修正,以及查看視頻檢測結果的可視化統計圖表。僅管理員可進入組管理,管理賬戶信息、提升用戶權限。
本系統的組成模塊主要有成員信息管理模塊,圖像檢測模塊,視頻檢測模塊。
管理員可在組管理中進行成員信息管理。可查看用戶的賬號、密碼及權限信息。可對普通用戶授予專業用戶權限;若存在廢棄賬號,可將其刪除。
圖像檢測模塊中,用戶上傳圖像文件后即可進行在線識別。首先進行人臉檢測,若未檢測到人臉則需要重新選擇圖片;若檢測到人臉則將使用系統訓練好的疼痛檢測模型,對面部圖像進行疼痛等級評估,檢測完成后用戶界面上將顯示識別結果,具體包括:原始圖像、面部位置信息、面部圖像以及疼痛等級。普通用戶僅可查看檢測結果與檢測記錄;專業用戶在此基礎上還可通過專業判斷對檢測結果加以修正。圖像文件檢測結果界面如圖2所示:

圖2 圖像文件識別結果界面
在面向視頻文件的疼痛檢測中,專業用戶需要上傳一個視頻文件,系統會對視頻幀序列進行提取,每一幀圖像均進行與圖像文件的檢測方法一致的處理步驟,并在圖像上標注人臉位置與疼痛等級;若該幀無面部圖像將不進行操作。在將視頻中的所有幀處理完畢后將在用戶界面上顯示檢測結果,如圖3所示:

圖3 視頻識別結果
面向專業用戶,系統將顯示所有視頻幀序列識別結果,并提供批量修改功能,用戶可將幀序列的檢測結果修正為經過專業判斷后的正確的疼痛等級。如圖4所示:

圖4 幀圖像批量修改界面
檢測并確認修改結果后,系統將再下方顯示疼痛信息的統計圖表,包括:疼痛等級頻數柱狀圖,疼痛等級占比餅狀圖,視頻幀序列疼痛變化折線圖,可供用戶更直觀地查看患者的疼痛綜合水平與疼痛感受變化趨勢。如圖5所示。

圖5 疼痛信息數據可視化界面
本系統采用B/S結構(Browser/Service)。在服務器中需要進行Python環境的配置,要安裝Flask,OpenCV,Flask,PyMysql等軟件庫及其插件。啟動服務器后,在客戶端的瀏覽器中輸入服務地址即可訪問系統。注冊賬號并登錄后即可使用系統提供的在線檢測服務。
本文設計了基于CNN模型的疼痛檢測系統,可通過人臉檢測算法與疼痛檢測模型實現便捷的疼痛檢測。用戶操作簡單,識別效果良好,識別效率相對于自我評估與專業人員評估得到大幅提升,并可通過實時監測進行預警。系統對不同用戶類型開放不同的功能,對專業醫師提供疼痛檢測以及結果批量修正功能,如有需要可批量提取識別結果并構建數據集,用于模型的迭代優化,以提高識別效率。