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