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