閆 航 陳 剛 崔莉亞 張樂(lè)蕓 胡北辰
1(鄭州大學(xué)信息工程學(xué)院 河南 鄭州 450001)2(鄭州大學(xué)互聯(lián)網(wǎng)醫(yī)療與健康服務(wù)協(xié)同創(chuàng)新中心 河南 鄭州 450052)3(鄭州大學(xué)護(hù)理與健康學(xué)院 河南 鄭州 450001)
近年來(lái)基于視覺(jué)的人體動(dòng)作識(shí)別的研究得到了廣泛的關(guān)注,是計(jì)算機(jī)視覺(jué)中一個(gè)極具挑戰(zhàn)性的課題,其涉及圖像處理、模式識(shí)別、人工智能等多個(gè)學(xué)科,在智能監(jiān)控、人機(jī)交互、康復(fù)運(yùn)動(dòng)等領(lǐng)域有著廣泛的應(yīng)用前景[1]。腦卒中是最常見(jiàn)的慢性病之一,具有高發(fā)病率、高致殘率的特點(diǎn),是老年人健康的重大威脅。而康復(fù)鍛煉是恢復(fù)卒中患者日常生活能力的主要手段,也是廣泛推薦的康復(fù)療法[2]。當(dāng)前在居家康復(fù)領(lǐng)域缺乏護(hù)理醫(yī)師的現(xiàn)場(chǎng)指導(dǎo),同時(shí)存在看護(hù)者缺乏耐心和信心、康復(fù)知識(shí)不足的問(wèn)題,導(dǎo)致患者出院后在家中難以完成有針對(duì)性的康復(fù)目標(biāo),依從性較差[3]。因此建立一種居家康復(fù)場(chǎng)景下的在線動(dòng)作識(shí)別模型,實(shí)現(xiàn)患者康復(fù)過(guò)程中動(dòng)作的實(shí)時(shí)監(jiān)督與指導(dǎo),對(duì)患者中長(zhǎng)期的康復(fù)水平有著重要的意義。
根據(jù)獲取數(shù)據(jù)的方式,可以分為基于傳感器和基于視覺(jué)的人體動(dòng)作識(shí)別?;趥鞲衅鞯膭?dòng)作識(shí)別方式起步較早,且在康復(fù)動(dòng)作識(shí)別領(lǐng)域中也有較多的研究。Bisio等[4]采用三軸加速度計(jì)采集病人運(yùn)動(dòng)信息,通過(guò)SVM分類器對(duì)手臂伸展、肩關(guān)節(jié)屈伸等康復(fù)動(dòng)作取得了良好的識(shí)別效果。馬高遠(yuǎn)等[5]對(duì)采集的上肢肌電信號(hào)通過(guò)小波分解提取特征,在8種常用康復(fù)動(dòng)作上取得了92.86%的識(shí)別率。復(fù)雜動(dòng)作通常需要多個(gè)傳感器協(xié)同工作才能達(dá)到較好的識(shí)別效果,然而該方式會(huì)給身體帶來(lái)極大的不適?;谝曈X(jué)的動(dòng)作識(shí)別主要分為人工特征和深度學(xué)習(xí)特征兩類。傳統(tǒng)的采用人工特征的動(dòng)作識(shí)別方法側(cè)重于局部特征提取,Wang等[6]提出改進(jìn)的稠密軌跡用于動(dòng)作識(shí)別,提升了對(duì)復(fù)雜場(chǎng)景的魯棒性。深度學(xué)習(xí)能自主提取具有強(qiáng)大表征能力的特征,逐漸獲得了更多的關(guān)注。主流的深度學(xué)習(xí)模型有3D CNN[7]、Two-Stream CNN[8]、LRCN(Long-term Recurrent Convolutional Network)[9]、R-C3D(Region Convolutional 3D Network)[10]等。然而以上模型對(duì)整幅視頻幀進(jìn)行深層卷積操作,存在復(fù)雜度高、運(yùn)算速度慢、訓(xùn)練困難等問(wèn)題,制約了其在現(xiàn)實(shí)生活中的應(yīng)用?;谝曈X(jué)的康復(fù)動(dòng)作識(shí)別研究工作較少且主要采用骨架特征。人體骨架特征包含的運(yùn)動(dòng)信息比較完整,對(duì)于肢體動(dòng)作來(lái)說(shuō)是一種良好的表征方式[11]。邵陽(yáng)等[12]采用深度相機(jī)Kinect獲取人體骨架信息,通過(guò)基于余弦的動(dòng)態(tài)時(shí)間規(guī)整方法有效識(shí)別了6種上肢訓(xùn)練動(dòng)作。唐心宇等[13]提出一種基于Kinect的三維人體姿態(tài)估計(jì)方法,并通過(guò)計(jì)算關(guān)節(jié)角度來(lái)評(píng)估指定的康復(fù)動(dòng)作。文獻(xiàn)[14]同樣對(duì)Kinect獲取的三維人體骨架關(guān)鍵點(diǎn)進(jìn)行角度計(jì)算,與標(biāo)準(zhǔn)的動(dòng)作規(guī)范進(jìn)行比較來(lái)識(shí)別動(dòng)作并指導(dǎo)康復(fù)訓(xùn)練。以上康復(fù)動(dòng)作識(shí)別方法存在如下問(wèn)題:每個(gè)動(dòng)作需要人工建立復(fù)雜的對(duì)照模型,不易拓展且泛化能力較差,對(duì)人員位置、角度均有嚴(yán)格的要求;缺乏對(duì)多人場(chǎng)景的兼容問(wèn)題,居家康復(fù)環(huán)境下易受干擾;相比于單目攝像頭,深度相機(jī)Kinect較為昂貴、普及度不高且設(shè)備難以獲?。欢鄶?shù)算法僅能處理經(jīng)過(guò)裁剪的視頻段或識(shí)別過(guò)程需要繁瑣的人工干預(yù),難以實(shí)現(xiàn)在線、連續(xù)的動(dòng)作識(shí)別。
在線動(dòng)作識(shí)別更具挑戰(zhàn)性:預(yù)定義的目標(biāo)動(dòng)作發(fā)生時(shí)間不確定;除了目標(biāo)動(dòng)作外還存在其他動(dòng)作與狀態(tài);處理速度能夠匹配上監(jiān)控視頻流。在線動(dòng)作識(shí)別對(duì)于應(yīng)用落地具有重要的現(xiàn)實(shí)意義,但是相關(guān)的研究工作卻很少。Li等[15]基于Kinect獲取3D骨架數(shù)據(jù),提出了一種聯(lián)合分類和回歸的LSTM網(wǎng)絡(luò)實(shí)現(xiàn)了單人場(chǎng)景下的在線動(dòng)作識(shí)別,但其識(shí)別的是持續(xù)時(shí)間較短的日?;顒?dòng)。
當(dāng)前大多數(shù)基于視覺(jué)的人體動(dòng)作識(shí)別算法存在復(fù)雜度高、建模困難、無(wú)法處理在線視頻、部署條件苛刻等問(wèn)題,而基于傳感器的動(dòng)作識(shí)別會(huì)對(duì)人體造成極大的不適。為了更好地適用于居家場(chǎng)景下卒中患者的康復(fù)動(dòng)作識(shí)別,本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于單目視覺(jué)的在線動(dòng)作識(shí)別算法。采用姿態(tài)估計(jì)算法OpenPose對(duì)單目攝像頭獲取的連續(xù)視頻流進(jìn)行骨架關(guān)鍵點(diǎn)提取并結(jié)合最近鄰匹配生成目標(biāo)動(dòng)作序列,對(duì)人體多個(gè)關(guān)節(jié)的運(yùn)動(dòng)變化進(jìn)行充分的表征,同時(shí)避免了其他圖像區(qū)域帶來(lái)的噪聲干擾。通過(guò)實(shí)驗(yàn)選取合適的滑動(dòng)窗口大小,在目標(biāo)人體的動(dòng)作序列上通過(guò)滑動(dòng)窗口提取原始特征并進(jìn)一步預(yù)處理為魯棒性特征,輸入到預(yù)訓(xùn)練的LSTM分類網(wǎng)絡(luò)中進(jìn)行康復(fù)動(dòng)作識(shí)別。本文提出的方法在康復(fù)訓(xùn)練場(chǎng)景中能夠有效進(jìn)行在線動(dòng)作識(shí)別,模型易于部署,一定程度上能夠適應(yīng)非理想、嘈雜的環(huán)境,對(duì)于腦卒中患者的康復(fù)具有重要的意義。
姿態(tài)估計(jì)OpenPose[16]是首個(gè)基于深度學(xué)習(xí)實(shí)現(xiàn)的實(shí)時(shí)多人姿態(tài)估計(jì)開(kāi)源庫(kù),能夠?qū)崟r(shí)地對(duì)圖片中每個(gè)人的姿態(tài)進(jìn)行精準(zhǔn)的估計(jì),實(shí)現(xiàn)面部、軀干、四肢、手部骨骼點(diǎn)的提取。它兼顧了實(shí)時(shí)性與準(zhǔn)確性,且具有較強(qiáng)的魯棒性。
該方法的核心是一種利用Part Affinity Fields(PAFs)的自下而上的人體姿態(tài)估計(jì)算法,即先檢測(cè)關(guān)鍵點(diǎn)再獲得骨架,在多人的場(chǎng)景下避免了過(guò)多的運(yùn)算時(shí)間。圖1所示為OpenPose的多階段預(yù)測(cè)網(wǎng)絡(luò)結(jié)構(gòu),該框架以VGG-19網(wǎng)絡(luò)模型為基礎(chǔ),將輸入的圖像轉(zhuǎn)化為圖像特征F,通過(guò)分階段預(yù)測(cè)分別回歸L(p)與S(p),其中:L(p)表示親和度向量場(chǎng)PAFs,描述關(guān)鍵點(diǎn)在骨架中的走向;S(p)表示關(guān)鍵點(diǎn)的置信度。該結(jié)構(gòu)將每一次預(yù)測(cè)分為6個(gè)階段,通過(guò)前4個(gè)階段預(yù)測(cè)親和度向量場(chǎng)Lt,后2個(gè)階段預(yù)測(cè)置信度St。在每個(gè)后續(xù)階段,將前一階段的預(yù)測(cè)結(jié)果與原始圖像特征連接起來(lái)作為輸入,用于生成更精細(xì)的預(yù)測(cè)。在得到關(guān)鍵點(diǎn)的置信度及親和度之后,采用匈牙利算法對(duì)相鄰關(guān)鍵點(diǎn)進(jìn)行最優(yōu)匹配,從而得到每一個(gè)人的骨架信息。OpenPose的實(shí)時(shí)性非常出色,采用單目攝像頭即可獲取可靠的關(guān)鍵點(diǎn)信息,無(wú)需專用的深度攝像頭。
圖1 多階段預(yù)測(cè)網(wǎng)絡(luò)架構(gòu)
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是一種利用上下文狀態(tài)來(lái)挖掘數(shù)據(jù)中時(shí)序信息的深度神經(jīng)網(wǎng)絡(luò)。相比于卷積神經(jīng)網(wǎng)絡(luò),RNN會(huì)對(duì)于每一個(gè)時(shí)刻的輸入結(jié)合當(dāng)前模型的狀態(tài)計(jì)算輸出。單純的RNN存在長(zhǎng)期依賴問(wèn)題,可能會(huì)喪失學(xué)習(xí)遠(yuǎn)距離信息的能力。長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)的出現(xiàn)成功解決了梯度消失問(wèn)題,是當(dāng)前最為流行的RNN網(wǎng)絡(luò),廣泛應(yīng)用于語(yǔ)音識(shí)別、自然語(yǔ)言處理、視頻描述、動(dòng)作識(shí)別等領(lǐng)域。
圖2為L(zhǎng)STM的網(wǎng)絡(luò)結(jié)構(gòu)示意圖,LSTM的輸入包括當(dāng)前時(shí)刻網(wǎng)絡(luò)的輸入xt、上一刻LSTM的輸出ht-1、上一時(shí)刻的記憶單元ct-1,輸出包括當(dāng)前時(shí)刻的輸出ht和當(dāng)前時(shí)刻的記憶單元ct。
圖2 LSTM網(wǎng)絡(luò)結(jié)構(gòu)示意圖
LSTM通過(guò)輸入門與遺忘門控制記憶單元并結(jié)合輸出門從而更有效地刻畫長(zhǎng)距離依賴。輸入門、遺忘門與輸出門的計(jì)算如下:
it=σ(Wi·[ht-1,xt]+bi)
(1)
ft=σ(Wf·[ht-1,xt]+bf)
(2)
ot=σ(Wo·[ht-1,xt]+bo)
(3)
式中:Wi、Wf、Wo分別為輸入門、遺忘門和輸出門的權(quán)重矩陣;bi、bf、bo分別為輸入門、遺忘門和輸出門的偏置。LSTM的輸出由記憶單元與輸出門聯(lián)合計(jì)算如下:
(4)
(5)
ht=ot×tanh(ct)
(6)
本文提出的在線動(dòng)作識(shí)別算法主要由動(dòng)作信息采集、特征提取和分類網(wǎng)絡(luò)組成。算法的識(shí)別框架如圖3所示,其輸入為單目攝像頭獲取的實(shí)時(shí)監(jiān)控視頻流,首先采用姿態(tài)估計(jì)OpenPose提取圖像幀中的多人骨架關(guān)鍵點(diǎn),結(jié)合最近鄰匹配算法在持續(xù)的監(jiān)控流中生成目標(biāo)人體動(dòng)作序列,記錄人體手部、手臂、腿部、頸部等多個(gè)關(guān)節(jié)的運(yùn)動(dòng)軌跡。動(dòng)作序列為具備時(shí)序關(guān)系的連續(xù)2D骨架關(guān)鍵點(diǎn),每幀提取的骨架信息作為一個(gè)時(shí)間步長(zhǎng)。在動(dòng)作序列上通過(guò)滑窗選取原始骨架關(guān)鍵點(diǎn)特征,經(jīng)過(guò)坐標(biāo)歸一化、絕對(duì)坐標(biāo)轉(zhuǎn)相對(duì)坐標(biāo)從而轉(zhuǎn)化為魯棒性特征并輸入到構(gòu)建的LSTM分類網(wǎng)絡(luò)中,通過(guò)Softmax分類器判斷三種康復(fù)動(dòng)作并區(qū)分正常活動(dòng)所表現(xiàn)的動(dòng)作與狀態(tài)。
圖3 在線動(dòng)作識(shí)別算法框架
滑窗大小的選擇通過(guò)實(shí)驗(yàn)并結(jié)合平臺(tái)處理速度與動(dòng)作持續(xù)時(shí)間,LSTM分類網(wǎng)絡(luò)則采用經(jīng)過(guò)裁剪的康復(fù)動(dòng)作數(shù)據(jù)集進(jìn)行訓(xùn)練,將訓(xùn)練好的網(wǎng)絡(luò)參數(shù)遷移到在線動(dòng)作識(shí)別算法。該算法通過(guò)2D骨架關(guān)鍵點(diǎn)的時(shí)序信息進(jìn)行動(dòng)作識(shí)別,相比于雙流、3D CNN等算法具有極強(qiáng)的速度優(yōu)勢(shì)。由于每一幀只對(duì)提取的18個(gè)人體骨架關(guān)鍵點(diǎn)進(jìn)行處理,構(gòu)建的LSTM網(wǎng)絡(luò)相對(duì)于主流方法中的CNN網(wǎng)絡(luò)而言其參數(shù)大大減少,模型易于優(yōu)化從而避免了對(duì)海量數(shù)據(jù)集的依賴。
2.2.1動(dòng)作信息采集
本文以1 920×1 080分辨率的單目攝像頭獲取實(shí)時(shí)監(jiān)控視頻流,用于在線動(dòng)作識(shí)別。采用智能手機(jī)以及單目攝像頭采集經(jīng)過(guò)裁剪的康復(fù)動(dòng)作數(shù)據(jù),用于訓(xùn)練分類網(wǎng)絡(luò)。為了提高識(shí)別算法的魯棒性和給予被監(jiān)護(hù)人員一定的自由度,數(shù)據(jù)集存在角度、遠(yuǎn)近、背景、分辨率的差異。
利用姿態(tài)估計(jì)方法OpenPose提取骨架關(guān)鍵點(diǎn),通過(guò)VGG-19網(wǎng)絡(luò)將輸入的圖像轉(zhuǎn)化為圖像特征F,然后通過(guò)多層CNN分別預(yù)測(cè)關(guān)鍵點(diǎn)置信度與親和度向量,聯(lián)合置信度與親和度向量得出人體的骨架信息。訓(xùn)練過(guò)程中模型總損失為置信度網(wǎng)絡(luò)與親和度向量場(chǎng)網(wǎng)絡(luò)兩者的損失之和,通過(guò)不斷迭代完成神經(jīng)網(wǎng)絡(luò)參數(shù)的更新。由于姿態(tài)估計(jì)模型需要大量標(biāo)注人體關(guān)鍵點(diǎn)的數(shù)據(jù)集來(lái)訓(xùn)練,為了達(dá)到更準(zhǔn)確的效果,采用在超大規(guī)模圖像數(shù)據(jù)集COCO中預(yù)訓(xùn)練的參數(shù)來(lái)初始化網(wǎng)絡(luò)。將圖像的分辨率調(diào)整為432×368后輸入到模型中,輸出為人體的18個(gè)2D骨架關(guān)鍵點(diǎn),包括左右耳、左右眼、鼻、脖、左右肩、左右肘、左右腕、左右胯、左右膝和左右腳踝。圖4所示為視頻流中人體18個(gè)骨架關(guān)鍵點(diǎn)的檢測(cè)結(jié)果,展示了“慢走”動(dòng)作發(fā)生過(guò)程中人體關(guān)鍵點(diǎn)的變化。
圖4 視頻流中的人體骨架關(guān)鍵點(diǎn)檢測(cè)
裁剪的視頻段為單人視頻且只發(fā)生一種動(dòng)作,根據(jù)時(shí)序關(guān)系以一定的間隔對(duì)整個(gè)視頻采樣圖像并提取骨架關(guān)鍵點(diǎn)來(lái)訓(xùn)練分類網(wǎng)絡(luò)。視頻流中提取的骨架信息仍是單幀的圖像中獨(dú)立的檢測(cè)結(jié)果,目標(biāo)人體在多人場(chǎng)景下失去時(shí)序關(guān)系,對(duì)于監(jiān)控視頻流則結(jié)合最近鄰匹配算法生成目標(biāo)人體動(dòng)作序列。所設(shè)計(jì)的方法步驟如下:
(7)
3) 生成動(dòng)作序列。結(jié)合最近鄰匹配結(jié)果將視頻流中目標(biāo)人體的18個(gè)骨架關(guān)鍵點(diǎn)按照時(shí)序關(guān)系加入到動(dòng)作序列中,若連續(xù)10幀沒(méi)有檢測(cè)到目標(biāo)人體,則刪除目標(biāo)動(dòng)作序列,重新執(zhí)行步驟1)以確認(rèn)目標(biāo)人體。
2.2.2特征提取
本文通過(guò)滑動(dòng)窗口的方式從動(dòng)作序列中提取原始特征,每幀的目標(biāo)人體有18個(gè)2D骨架關(guān)鍵點(diǎn),共36個(gè)特征。設(shè)置滑動(dòng)窗口的大小為n,即連續(xù)n幀圖像作為一組分段特征,滑窗間隔設(shè)置為k幀。為了合理利用資源,設(shè)計(jì)隊(duì)列的方式進(jìn)行滑窗處理,假設(shè)動(dòng)作隊(duì)列為T,滑窗提取分段特征的流程如下:
1) 目標(biāo)人體的骨架關(guān)鍵點(diǎn)不斷加入隊(duì)列直到隊(duì)列長(zhǎng)度為n,即T=[T1,T2,…,Tn],提取該分段特征。
2) 從隊(duì)頭刪除T1,T2,…,TK,隊(duì)尾不斷加入后續(xù)的k幀關(guān)鍵點(diǎn)即Tn+1,Tn+2,…,Tn+k,提取該分段特征。
3) 重復(fù)步驟2),直至該目標(biāo)消失。
上述提取的分段特征仍是原始的骨架關(guān)鍵點(diǎn),為進(jìn)一步提升算法對(duì)拍攝角度、目標(biāo)遠(yuǎn)近、錄制過(guò)程抖動(dòng)等因素的魯棒性,分別將關(guān)鍵點(diǎn)坐標(biāo)進(jìn)行歸一化、轉(zhuǎn)化為相對(duì)坐標(biāo)、標(biāo)準(zhǔn)化處理。關(guān)鍵點(diǎn)坐標(biāo)的大小范圍是相對(duì)于視頻分辨率的,將坐標(biāo)值(x,y)分別除以視頻分辨率(vw,vh)歸一化到(0,1)范圍,減小了不同視頻分辨率以及不同肢體關(guān)鍵點(diǎn)的數(shù)值差異。然后選取脖子部位的關(guān)鍵點(diǎn)(x0,y0)作為原點(diǎn),對(duì)其他坐標(biāo)進(jìn)行變換:
(8)
(9)
(10)
(11)
2.2.3分類網(wǎng)絡(luò)設(shè)計(jì)
動(dòng)作的描述可以由具備時(shí)序關(guān)系的一系列人體關(guān)鍵點(diǎn)構(gòu)成[17]。為了充分挖掘序列的關(guān)系,設(shè)計(jì)了雙層疊加的長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)。本文設(shè)計(jì)的動(dòng)作分類網(wǎng)絡(luò)如圖5所示,輸入為滑窗提取并經(jīng)過(guò)預(yù)處理得到的長(zhǎng)度為n、特征維度為36的骨架關(guān)鍵點(diǎn)序列。兩個(gè)LSTM網(wǎng)絡(luò)單元的神經(jīng)元個(gè)數(shù)為32,時(shí)間步長(zhǎng)等于滑動(dòng)窗口的大小n,第一層隱藏層每個(gè)時(shí)間步的輸出狀態(tài)傳遞給第二層隱藏層,取最后一個(gè)時(shí)間步的輸出向量傳遞給神經(jīng)元個(gè)數(shù)為64的全連接層,最后通過(guò)Softmax分類器進(jìn)行動(dòng)作類型的識(shí)別。Softmax分類器通過(guò)Softmax激活函數(shù)將多個(gè)神經(jīng)元的輸出映射到(0,1)之間,即各個(gè)類別的數(shù)值轉(zhuǎn)化為概率,概率最大的類別即判定為分類結(jié)果。此外人體的大部分時(shí)間為靜止坐位、慢走、站立等正常活動(dòng),而將正常活動(dòng)誤識(shí)別為康復(fù)動(dòng)作對(duì)于患者的康復(fù)過(guò)程是不可靠的。分類網(wǎng)絡(luò)將多種正?;顒?dòng)視為一類動(dòng)作類型,同時(shí)進(jìn)行康復(fù)動(dòng)作以及正?;顒?dòng)的識(shí)別,提升了對(duì)康復(fù)動(dòng)作識(shí)別的穩(wěn)定性。
圖5 人體動(dòng)作分類網(wǎng)絡(luò)
網(wǎng)絡(luò)參數(shù)的更新采用經(jīng)過(guò)裁剪的康復(fù)動(dòng)作視頻段進(jìn)行訓(xùn)練,即每個(gè)視頻只包含特定的一個(gè)動(dòng)作。由于視頻時(shí)長(zhǎng)不同而導(dǎo)致樣本的時(shí)間步不同,通過(guò)0值填充轉(zhuǎn)化為時(shí)間步一致的樣本,訓(xùn)練時(shí)跳過(guò)特征值全為0的時(shí)間步。首先提取視頻中人體的關(guān)鍵點(diǎn)序列,經(jīng)過(guò)特征預(yù)處理轉(zhuǎn)化為魯棒性特征后輸入到所設(shè)計(jì)的分類網(wǎng)絡(luò)中,通過(guò)前向傳播與反向傳播完成參數(shù)的更新。結(jié)合L2正則化與Dropout來(lái)防止過(guò)擬合,訓(xùn)練完成后保存在測(cè)試集取得最優(yōu)效果的參數(shù)。在線動(dòng)作識(shí)別算法的分類網(wǎng)絡(luò)加載訓(xùn)練好的參數(shù),經(jīng)過(guò)前向傳播并通過(guò)Softmax分類器得出概率最大的動(dòng)作類型,實(shí)時(shí)輸出目標(biāo)人體正在發(fā)生的動(dòng)作類別與概率值。
本實(shí)驗(yàn)的硬件環(huán)境如下:CPU為酷睿i7-8750,2.20 GHz,8 GB內(nèi)存;GPU為GTX 1060,6 GB顯存;監(jiān)控?cái)z像頭的分辨率為1 920×1 080。搭建的深度學(xué)習(xí)模型基于TensorFlow框架,采用GPU加速處理過(guò)程。
為了客觀評(píng)價(jià)算法的準(zhǔn)確性以及在康復(fù)場(chǎng)景的可用性,本文選取一個(gè)公開(kāi)數(shù)據(jù)集KTH[18],并參考文獻(xiàn)[19]規(guī)范的腦卒中患者康復(fù)動(dòng)作采集了一組康復(fù)動(dòng)作數(shù)據(jù)集,各數(shù)據(jù)集如圖6所示。
圖6 KTH與康復(fù)動(dòng)作數(shù)據(jù)集樣本示例
1) KTH是計(jì)算機(jī)視覺(jué)一個(gè)具有標(biāo)志性的數(shù)據(jù)集,包含了4類場(chǎng)景下25個(gè)志愿者的6種行為:慢跑(Jogging)、步行(Walking)、跑步(Running)、拳擊(Boxing)、揮手(Hand waving)和拍手(Hand clappong)。該數(shù)據(jù)集共有599個(gè)視頻,每秒25幀,分辨率為160×120,具有人體尺度和光照的變化,背景較為簡(jiǎn)單。按照與文獻(xiàn)[18]一致的劃分方式采用18個(gè)志愿者的視頻作為訓(xùn)練集,其他9個(gè)志愿者為測(cè)試集。
2) 康復(fù)動(dòng)作數(shù)據(jù)集由5位實(shí)驗(yàn)人員在3種不同的環(huán)境下采集而成,包含4類行為共964個(gè)視頻段,具有光照、人體尺度、背景、拍攝角度的變化。行為類型分為三種康復(fù)動(dòng)作以及一類正?;顒?dòng)動(dòng)作,其中康復(fù)動(dòng)作為上下臂鍛煉、左右臂鍛煉和坐起鍛煉,正?;顒?dòng)包括靜止站立、靜止坐位、慢走、伸展等,具體動(dòng)作說(shuō)明見(jiàn)表1。每個(gè)視頻的分辨率為1 280×720或1 920×1 080,幀速率為15幀每秒,視頻段持續(xù)時(shí)間為8~15 s之間。
表1 腦卒中康復(fù)動(dòng)作描述
兩個(gè)數(shù)據(jù)集都為經(jīng)過(guò)裁剪的短視頻,數(shù)據(jù)集的基本訓(xùn)練流程如下:
1) 視頻段中每幀提取的36個(gè)骨架關(guān)鍵點(diǎn)特征作為一個(gè)時(shí)間步,小于選定步長(zhǎng)的樣本通過(guò)補(bǔ)0的方式進(jìn)行填充。
2) 對(duì)每幀提取的36個(gè)關(guān)鍵點(diǎn)特征進(jìn)行預(yù)處理,將原始特征轉(zhuǎn)化為魯棒性特征。
3) 通過(guò)正態(tài)分布的方式生成隨機(jī)值來(lái)初始化分類網(wǎng)絡(luò)的權(quán)重參數(shù),預(yù)處理后的樣本分批量(batch-size)輸入到分類網(wǎng)絡(luò),進(jìn)行前向傳播得到損失值,采用Adam優(yōu)化器來(lái)最小化損失函數(shù),學(xué)習(xí)率設(shè)置為0.001。
KTH數(shù)據(jù)集的樣本較少,采用數(shù)據(jù)增廣的方法將訓(xùn)練集擴(kuò)充一倍,對(duì)視頻進(jìn)行左右對(duì)稱變換并將其比例轉(zhuǎn)換為5∶4。將康復(fù)動(dòng)作數(shù)據(jù)集按照7∶3的比例隨機(jī)分為訓(xùn)練集與測(cè)試集,同時(shí)保證測(cè)試集中每種動(dòng)作的樣本比例均衡。另外,為了增大幀間動(dòng)作差異同時(shí)提升運(yùn)行效率,每間隔3個(gè)圖像幀進(jìn)行處理。訓(xùn)練時(shí)批量設(shè)置為32,一共分500個(gè)Epoch運(yùn)行,模型在KTH數(shù)據(jù)集和康復(fù)動(dòng)作數(shù)據(jù)集上分別訓(xùn)練迭代9 000、6 000次后逐漸收斂。
3.4.1不同模型設(shè)置對(duì)精度的影響
動(dòng)作識(shí)別數(shù)據(jù)集的對(duì)比分析通常采用準(zhǔn)確率作為評(píng)價(jià)標(biāo)準(zhǔn),為分析不同的模型設(shè)置對(duì)識(shí)別精度的影響,實(shí)驗(yàn)分別從LSTM單元隱藏層節(jié)點(diǎn)個(gè)數(shù)、時(shí)間步長(zhǎng)、特征預(yù)處理三個(gè)方面對(duì)KTH與康復(fù)動(dòng)作數(shù)據(jù)集進(jìn)行分析。實(shí)驗(yàn)分別將LSTM隱藏層節(jié)點(diǎn)個(gè)數(shù)設(shè)置為16、32、64、128,時(shí)間步長(zhǎng)統(tǒng)一設(shè)置為50,實(shí)驗(yàn)結(jié)果如表2所示。當(dāng)隱藏層節(jié)點(diǎn)個(gè)數(shù)依次增加時(shí),KTH與康復(fù)動(dòng)作數(shù)據(jù)集的識(shí)別準(zhǔn)確率分別提高至94.9%、100%。依據(jù)實(shí)驗(yàn)結(jié)果選取最佳的隱藏層節(jié)點(diǎn)數(shù)量,在KTH數(shù)據(jù)集下的隱藏層節(jié)點(diǎn)個(gè)數(shù)設(shè)置為64,康復(fù)動(dòng)作數(shù)據(jù)集中設(shè)置為32。
表2 隱藏層節(jié)點(diǎn)個(gè)數(shù)對(duì)精度的影響 %
選取合理的時(shí)間步長(zhǎng)對(duì)于識(shí)別精度是至關(guān)重要的,過(guò)短的時(shí)間步不能夠充分表達(dá)一個(gè)動(dòng)作,而過(guò)長(zhǎng)的時(shí)間步則導(dǎo)致運(yùn)算速度慢,冗余的信息也會(huì)干擾識(shí)別過(guò)程。實(shí)驗(yàn)分別將時(shí)間步長(zhǎng)設(shè)置為10、20、40、60、80,KTH數(shù)據(jù)集中隱藏層節(jié)點(diǎn)個(gè)數(shù)設(shè)置為64,康復(fù)動(dòng)作數(shù)據(jù)集中隱藏層節(jié)點(diǎn)設(shè)置為32,實(shí)驗(yàn)結(jié)果如表3所示。通過(guò)識(shí)別精度在每個(gè)數(shù)據(jù)集選取合理的時(shí)間步長(zhǎng),時(shí)間步長(zhǎng)在KTH與康復(fù)動(dòng)作數(shù)據(jù)集中分別大于60、40后模型的精度不再提高,即兩個(gè)數(shù)據(jù)集分別通過(guò)提取的前60和40幀就能夠達(dá)到最好的識(shí)別效果。
表3 時(shí)間步長(zhǎng)對(duì)精度的影響 %
本文將姿態(tài)估計(jì)算法獲取的骨架關(guān)鍵點(diǎn)進(jìn)行了預(yù)處理,將其轉(zhuǎn)換為魯棒性特征,在對(duì)比分析加上預(yù)處理后的識(shí)別效果。KTH數(shù)據(jù)集上時(shí)間步為60,隱藏層節(jié)點(diǎn)個(gè)數(shù)為64。康復(fù)動(dòng)作數(shù)據(jù)集上時(shí)間步為40,隱藏層節(jié)點(diǎn)個(gè)數(shù)為32,對(duì)比分析結(jié)果如表4所示。相比于原始特征輸入到分類模型,經(jīng)過(guò)預(yù)處理后的魯棒性特征在KTH與康復(fù)動(dòng)作數(shù)據(jù)集的識(shí)別準(zhǔn)確率分別提高了2.78和1.04個(gè)百分點(diǎn)。
表4 特征預(yù)處理對(duì)識(shí)別精度的影響 %
3.4.2不同算法的識(shí)別精度對(duì)比
為了客觀展示算法的性能,表5展示了與其他文獻(xiàn)中的算法在KTH數(shù)據(jù)集上的對(duì)比結(jié)果。文獻(xiàn)[7]是在傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上增加了對(duì)時(shí)間維度的卷積,是動(dòng)作識(shí)別領(lǐng)域的典型模型。文獻(xiàn)[20]采用樹(shù)狀層次結(jié)構(gòu)的深度網(wǎng)絡(luò)提取視頻的時(shí)空特征,結(jié)合KNN分類器進(jìn)行動(dòng)作識(shí)別。文獻(xiàn)[21]提出融合興趣點(diǎn)表現(xiàn)特征的增強(qiáng)單詞包并通過(guò)SVM分類器實(shí)現(xiàn)動(dòng)作識(shí)別。本文設(shè)計(jì)的動(dòng)作識(shí)別算法均高于以上三種方法,識(shí)別準(zhǔn)確率達(dá)95.37%。由于KTH數(shù)據(jù)集分辨率較低,提取的骨架關(guān)鍵點(diǎn)存在較多丟失,同時(shí)算法在保證一定準(zhǔn)確率的基礎(chǔ)上提升了處理速度,識(shí)別精度略低于文獻(xiàn)[22]方法。文獻(xiàn)[22]首先采用YOLO算法[23]檢測(cè)目標(biāo)框,通過(guò)CNN提取目標(biāo)框的圖像特征并由LSTM網(wǎng)絡(luò)進(jìn)行分類,相比于本文算法,該特征提取模型更加復(fù)雜,計(jì)算量也更大。
表5 KTH數(shù)據(jù)集方法對(duì)比
對(duì)于康復(fù)動(dòng)作數(shù)據(jù)集,采用姿態(tài)估計(jì)算法提取骨架關(guān)鍵點(diǎn)并應(yīng)用相同的特征預(yù)處理方式,分別與隱馬爾可夫模型(HMM)、全連接循環(huán)神經(jīng)網(wǎng)絡(luò)(SimpleRNN)和門控循環(huán)單元(GRU)三種優(yōu)秀的時(shí)序關(guān)系模型進(jìn)行對(duì)比。對(duì)比分析結(jié)果如表6所示,相對(duì)于傳統(tǒng)機(jī)器學(xué)習(xí)算法HMM,循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)時(shí)序關(guān)系的提取能力更強(qiáng),本文算法也取得了最好的識(shí)別結(jié)果。
表6 康復(fù)動(dòng)作數(shù)據(jù)集方法對(duì)比
3.4.3在線康復(fù)動(dòng)作識(shí)別
相比離線的數(shù)據(jù)集,在線動(dòng)作識(shí)別更具挑戰(zhàn)性。為測(cè)試康復(fù)訓(xùn)練場(chǎng)景下動(dòng)作識(shí)別的效果,通過(guò)分辨率為1 920×1 080的單目攝像頭捕獲連續(xù)的視頻流,采用在康復(fù)動(dòng)作數(shù)據(jù)集中訓(xùn)練好的參數(shù)初始化分類網(wǎng)絡(luò)??紤]到康復(fù)活動(dòng)發(fā)生過(guò)程較慢,間隔3幀采樣圖像,采用時(shí)間步長(zhǎng)為80、隱藏層節(jié)點(diǎn)個(gè)數(shù)為32的分類網(wǎng)絡(luò)參數(shù)。實(shí)時(shí)獲取系統(tǒng)時(shí)間作為參考,在線動(dòng)作識(shí)別效果如圖7所示,圖7(a)、圖7(b)演示的動(dòng)作分別為上下臂鍛煉、左右臂鍛煉;圖7(c)、圖7(d)演示的動(dòng)作分別為正?;顒?dòng)、坐起鍛煉,其中加入了無(wú)關(guān)人員的干擾,并且目標(biāo)人體的位置產(chǎn)生了移動(dòng)。算法處理能力達(dá)18 幀每秒,能夠持續(xù)捕捉并判斷監(jiān)控流中目標(biāo)人體的康復(fù)動(dòng)作,實(shí)時(shí)輸出目標(biāo)位置、動(dòng)作類型以及動(dòng)作概率,對(duì)于活動(dòng)位置、其他人員干擾具有較強(qiáng)的適應(yīng)能力。
圖7 在線動(dòng)作識(shí)別結(jié)果
為了客觀展示算法于在線動(dòng)作識(shí)別方式下對(duì)康復(fù)動(dòng)作的識(shí)別準(zhǔn)確率,實(shí)驗(yàn)人員連續(xù)做左右臂鍛煉、上下臂鍛煉、坐起鍛煉各50次,并以站立、慢走等正常活動(dòng)作為間隔動(dòng)作。實(shí)驗(yàn)結(jié)果如表7所示,算法平均識(shí)別率達(dá)93%,且不易將正?;顒?dòng)誤識(shí)別為康復(fù)動(dòng)作,在線場(chǎng)景下能夠有效進(jìn)行康復(fù)動(dòng)作識(shí)別。然而相對(duì)于在康復(fù)動(dòng)作數(shù)據(jù)集中的表現(xiàn),在線場(chǎng)景下模型對(duì)三種康復(fù)動(dòng)作的平均識(shí)別率僅90.66%,原因在于實(shí)時(shí)環(huán)境下不同目標(biāo)的動(dòng)作行為存在較大的不確定性,需要更加充分的數(shù)據(jù)集訓(xùn)練分類網(wǎng)絡(luò)來(lái)進(jìn)一步達(dá)到更好的識(shí)別效果。
表7 連續(xù)動(dòng)作識(shí)別結(jié)果
本文提出了一種基于單目視覺(jué)的在線動(dòng)作識(shí)別算法,結(jié)合姿態(tài)估計(jì)OpenPose與最近鄰匹配算法對(duì)視頻流中的目標(biāo)人體生成動(dòng)作序列,采用滑動(dòng)窗口選取原始關(guān)鍵點(diǎn)特征并轉(zhuǎn)換為魯棒性特征后輸入到雙層LSTM網(wǎng)絡(luò)進(jìn)行動(dòng)作分類。利用OpenPose獲取骨架關(guān)鍵點(diǎn)的實(shí)時(shí)性對(duì)監(jiān)控流中的目標(biāo)人體進(jìn)行快速檢測(cè),同時(shí)基于基準(zhǔn)坐標(biāo)結(jié)合最近鄰匹配算法跟蹤目標(biāo)人體,避免了視頻流中大量無(wú)關(guān)區(qū)域以及其他人體的噪聲干擾。結(jié)合LSTM對(duì)長(zhǎng)時(shí)間序列的處理能力,能夠?qū)σ曨l流中目標(biāo)人體的行為做出準(zhǔn)確的識(shí)別。通過(guò)在公開(kāi)數(shù)據(jù)集KTH和康復(fù)動(dòng)作數(shù)據(jù)集中實(shí)驗(yàn),KTH數(shù)據(jù)集的平均識(shí)別率達(dá)95.37%,康復(fù)動(dòng)作數(shù)據(jù)集中的識(shí)別率達(dá)到了100%。在線動(dòng)作識(shí)別下的康復(fù)動(dòng)作識(shí)別率達(dá)90.66%,證明了該方法的有效性,探索了基于計(jì)算機(jī)視覺(jué)的動(dòng)作識(shí)別方法在康復(fù)訓(xùn)練領(lǐng)域的應(yīng)用。
由于康復(fù)動(dòng)作數(shù)據(jù)集的樣本規(guī)模較小,算法在連續(xù)視頻流中進(jìn)行在線動(dòng)作識(shí)別下的識(shí)別率與其在數(shù)據(jù)集中的表現(xiàn)存在較大差距。未來(lái)研究將會(huì)采集更豐富的數(shù)據(jù)集,加入更多的康復(fù)動(dòng)作類型,同時(shí)優(yōu)化訓(xùn)練策略與分類網(wǎng)絡(luò),進(jìn)一步提升對(duì)真實(shí)場(chǎng)景的適應(yīng)能力,幫助患者在居家場(chǎng)景下更好地完成康復(fù)訓(xùn)練計(jì)劃。