徐 勝,劉志誠,涂鑫濤,周軒陽,費敏銳,張 堃,5
(1.南通職業(yè)大學電子信息工程學院,江蘇 南通 226007;2.華東理工常熟研究院有限公司,江蘇 常熟 215500;3.南通大學電氣工程學院,江蘇 南通 226019;4.上海大學機電工程與自動化學院,上海 200444;5.南通市智能計算與智能控制重點試驗室,江蘇 南通 226019)
手部康復評估對于手部中風和肌肉衰退的患者是必不可少的?,F(xiàn)有的X光、磁共振等方式,一方面依賴于大型設(shè)備,造價昂貴,另一方面依賴醫(yī)生的經(jīng)驗、水平,無法標準化。而基于數(shù)據(jù)手套的虛擬康復系統(tǒng),在佩戴手套時容易對手部有創(chuàng)傷的患者造成二次傷害。本文針對現(xiàn)有手部康復評估手段存在的不足,將計算機視覺技術(shù)用于手部康復評估。
近年來,隨著卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)[1]、遞歸神經(jīng)網(wǎng)絡(luò)、深度信念網(wǎng)絡(luò)等技術(shù)的發(fā)展,研究人員基于計算機視覺技術(shù)開展了手勢識別研究。Alam[2]等采用深度視角傳感獲取手勢圖像數(shù)據(jù)集,用于解決手勢圖像樣本多視角的提取問題。但是,深度視角傳感受光線干擾影響較大,只能在一些特定的場景下使用,不利于普及。Cao[3]等提出的OpenPose模型,采用自低向上的檢測方法,與局部親和算法相結(jié)合,可以檢測出關(guān)鍵點并把關(guān)鍵點連接起來,檢測速度和檢測精度都較傳統(tǒng)模型都有大幅度提高。但是,OpenPose模型規(guī)模太大,不適用于實際場景。王珩[4]采用了卷積神經(jīng)網(wǎng)絡(luò)的方法,使用遷移學習的訓練方式訓練YOLOv3網(wǎng)絡(luò)。但是,該模型檢測速度較慢,并且只能在GPU上運行,對硬件要求比較高。
因此,本文對YOLOv4算法進行改進,提出Hand-YOLOv4算法。經(jīng)過Hand-YOLOv4算法識別出手部區(qū)域,基于RexNet網(wǎng)絡(luò)進行深度學習,檢測出手部21個關(guān)鍵點。通過動態(tài)時間規(guī)整(dynamic time warping,DTW)算法作動態(tài)時間規(guī)整,比較患者動作與標準動作的關(guān)節(jié)角度變化軌跡的相似度,進行康復評估。本文以自主手勢識別技術(shù)為核心,結(jié)合DTW算法,設(shè)計了基于手勢識別的手部康復智能評估算法。該算法架構(gòu)輕量化,具有檢測速度快、檢測精度高的優(yōu)勢。
本文對YOLOv4算法進行改進,提出了針對手部康復的Hand-YOLOv4算法。Hand-YOLOv4算法結(jié)構(gòu)如圖1所示。
圖 1 Hand-YOLOv4算法結(jié)構(gòu)
深度卷積神經(jīng)網(wǎng)絡(luò)通常由大量卷積組成,規(guī)模大,計算成本高。因此,減少計算成本一直是網(wǎng)絡(luò)模型優(yōu)化的一個方向。例如,在MobileNet網(wǎng)絡(luò)中引入深度卷積、ShuffleNet混洗操作,使用較小的卷積核(浮點運算)構(gòu)建有效的CNN。但是1×1卷積層仍將占用大量內(nèi)存,需要較高的每秒浮點運算次數(shù)(floating-point operations per second,F(xiàn)LOPs),降低計算量的效果不理想。
因此,本文參考GhostNet[5]網(wǎng)絡(luò)中的堆疊Ghost模塊的原理,結(jié)合注意力機制,原創(chuàng)性地設(shè)計了輕量化的網(wǎng)絡(luò)模塊Lwblock(light weight block),用于替換YOLOv4算法中的模塊Resblock。利用Ghost模塊生成與普通卷積層相同數(shù)量的特征圖,以Ghost模塊替換卷積層,并集成到現(xiàn)有的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,可減少計算成本。Lwblock網(wǎng)絡(luò)模塊結(jié)構(gòu)如圖2所示。
圖2 Lwblock網(wǎng)絡(luò)模塊結(jié)構(gòu)
患者在康復訓練過程中,由于動作快慢等因素,導致患者動作與標準動作在時間軸上存在一定的差異,不能形成幀與幀對應的關(guān)系。直接使用歐式距離、相關(guān)性系數(shù)等方法無法正確地評估運動數(shù)據(jù)流的相似度[6]。采用DTW算法可以找到2個時間序列的最佳對齊方式[7],尤其適用于不同長度、不同節(jié)奏的時間序列。DTW算法將自動扭曲時間序列,即在時間軸上進行局部的縮放,使得兩個序列的形態(tài)盡可能一致,得到最大相似度[8],從而確定患者動作與標準動作之間的差異性。差異性越大,就意味著患者的肢體運動能力越差。
由于Hand-YOLOv4算法采集的關(guān)鍵點的坐標時間序列受個體影響比較大,所以先將各關(guān)鍵點的坐標時間序列轉(zhuǎn)換為關(guān)節(jié)的角度時間序列,再比較患者動作與標準動作的關(guān)節(jié)角度變化軌跡的相似度,從而進行康復評估,判斷患者的恢復情況。
下面以大拇指角度變化為例,描述DTW算法在動作數(shù)據(jù)流相似度評估中的應用。
首先,將坐標信息轉(zhuǎn)換為角度信息,如式(1)所示。
(1)
根據(jù)DTW算法計算出其相似度,如式(2)所示:
(2)
式中:D為DTW距離;K為路徑長度。
選取閾值λ。當SDTW≤λ時,說明拇指彎曲動作完成度較高,大拇指運動能力較好,康復情況較好。反之,則說明拇指彎曲動作完成度較低,拇指運動能力差,康復情況不好。
為了驗證所提出的基于手勢識別的手部康復智能評估算法,本文設(shè)計了1個非穿戴式的手部康復評估模型。
智能康復評估算法的第一步就是采用Hand-YOLOv4算法框選出手部區(qū)域。此算法分為兩種模式:一種是標準動作流錄入模式,另外一種是康復評估模式。
在標準動作流錄入模式下,標準動作流數(shù)據(jù)庫的建立流程如下。
①3名健康人員進行動作流錄入。基于Hand-YOLOv4算法采集他們的動作流,每人每個動作重復5遍,共15組數(shù)據(jù)。
②讀取15組數(shù)據(jù),將第1組數(shù)據(jù)作為初始動作流模板。
③計算下一組數(shù)據(jù)與模板的DTW距離。若DTW超過閾值,則丟棄。若距離未超過閾值,則將2組動作流按照DTW匹配路徑重新映射,并給模板數(shù)據(jù)分配0.8的權(quán)重,給下一組數(shù)據(jù)分配0.2的權(quán)重,計算對應序列點的加權(quán)值,作為新的動作流模板。
智能康復評估算法流程如圖3所示。
圖3 智能康復評估算法流程圖
④重復步驟③,直到遍歷完15組數(shù)據(jù)。
在康復評估模式下,患者做相應的手部康復動作,由單目相機采集信息,通過Hand-YOLOv4算法進行檢測。基于DTW算法比較患者動作與標準動作的關(guān)節(jié)角度變化軌跡的相似度,進行康復評估,判斷患者的恢復情況。
具體評估步驟如下。
①對攝像頭采集到的圖像數(shù)據(jù)進行預處理,并對圖像作歸一化和標準化處理。
②基于Hand-YOLOv4算法,識別出手部矩形區(qū)域,并建立坐標系。
③用RexNet對手部關(guān)鍵點進行預測,識別出手部的21個關(guān)鍵點,并根據(jù)手部關(guān)鍵點進行連接,構(gòu)成對應的向量。手部關(guān)鍵點對應序號如表1所示。
表1 手部關(guān)鍵點對應序號
④使用DTW算法進行康復評估,判斷患者的恢復情況。
實際場景模擬如圖4所示。
圖4 實際場景模擬
本檢測平臺由S-YUE晟悅1080P攝像頭和1臺計算機組成。攝像頭用于采集手勢信息,通過USB接口與計算機連接。
試驗所用的訓練數(shù)據(jù)集是微軟公司制作的COCO數(shù)據(jù)集。它是一個集訓練、驗證、測試于一體的用于圖像識別的數(shù)據(jù)集,有超過 200 000 張圖片、80種物體類別。所有的物體實例都用詳細的分割mask進行了標注,共標注了超過 500 000 個物體實體。
試驗中所檢測的手部關(guān)鍵部位共21個。所用的精度評價標準為平均精度均值(mean average precision,mAP)。分別使用50%、75%和90%作為每類關(guān)鍵點的檢測精度閾值,然后計算其平均值并作為模型的平均檢測精度。所用的速度評價指標是幀率,單位為每秒傳輸幀數(shù)(frame per second,F(xiàn)PS)。
為了驗證Hand-YOLOv4算法的性能,分別使用Resnet50、Darknet53和Hand-YOLOv4的主干網(wǎng)絡(luò)這3種模型進行分類預測[9]。3種模型參數(shù)指標如表2所示。在輸入尺寸均是416×416時,Hand-YOLOv4的主干網(wǎng)絡(luò)所需參數(shù)量最少,只有20.4 MB,同時幀率也均高于Resnet50和Darknet53。試驗結(jié)果表明,本文提出的Hand-YOLOv4的主干網(wǎng)絡(luò)是最優(yōu)的。
3種主干模型的檢測精度對比如圖5所示。在COCO數(shù)據(jù)集上采用AP、AP50、AP75 3種不同的評價指標進行檢測。由圖5可知,在主干網(wǎng)絡(luò)方面,Darknet53比Resnet50效果更好,但是Hand-YOLOv4的主干網(wǎng)絡(luò)效果最優(yōu)。
圖5 檢測精度對比圖
不同改進方法在COCO數(shù)據(jù)集上的消融試驗結(jié)果如表3所示。
方法一僅使用YOLOv4的主干網(wǎng)絡(luò)Darknet,不作任何改進。
方法二嘗試優(yōu)化提取底層特征的方式,在Darknet的基礎(chǔ)上引入注意力機制(self-attention mechanism,SE),模型的mAP會增加到41.4%,而效率沒有任何損失。
方法三使用網(wǎng)絡(luò)模塊Lwblock替換Darknet中的模塊Resblock,可以提高性能。從表3可以看到,mAP提高了0.24%,F(xiàn)PS提高了近14%,而計算量下降到原來的一半左右,總的計算時間減少了。
方法四將SE引入網(wǎng)絡(luò)模塊Lwblock,整體替換Darknet中的模塊Resblock。模型的mAP會增加到41.6%,計算量較方法一下降了一半,F(xiàn)PS較方法一提高了近14%。
總的來說,采用方法四的檢測效果最優(yōu)[10]。
試驗分別采用OpenPose、YOLOv4+RexNet、Hand-YOLOv4+RexNet作為手部關(guān)鍵點識別算法開展算法性能對比測試。
首先,采用標準動作流錄入模式,錄入6個動作,作為標準模板。每個動作采集5次,完成標準數(shù)據(jù)庫的建立。
然后,在康復評估模式下,選取10名健康受試者按照隨機順序、不同程度地做出標準數(shù)據(jù)庫中的6個動作。每個動作做10次,共計600次試驗,得出600組對應的康復評估結(jié)果。同時,針對系統(tǒng)所錄制的受試者測試過程,進行人工評估,將算法評估結(jié)果與人工評估結(jié)果進行對比。
經(jīng)過統(tǒng)計,OpenPose+DTW的模型檢測精度為75.9%,YOLOv4+RexNet+DTW的模型檢測精度為89.54%,本文提出的Hand-YOLOv4+RexNet+DTW的模型檢測精度高達93.45%,效果最佳。
本文提出將計算機視覺檢測技術(shù)用于手部康復評估,創(chuàng)新性地提出非穿戴式的基于手勢識別的手部康復智能評估算法。該算法能夠避免對手部有創(chuàng)傷的患者造成二次傷害。在YOLOv4算法的基礎(chǔ)上加以改進,提出Hand-YOLOv4算法,測量精度達到41.6%,幀率提高了14%,計算量降低了一半左右;結(jié)合DTW設(shè)計了手部康復智能評估算法,可以找到2個時間序列最佳的對齊方式,進而確定患者動作與標準動作之間的差異性。測試表明,該智能康復評估算法的檢測精度可達到93.45%,能夠勝任手部康復評估的工作,將有效推動手部醫(yī)療康復領(lǐng)域向舒適化、便捷化方向發(fā)展。