楊文璐,李小瑞,夏斌
(上海海事大學信息工程學院,上海 201306)
甩手療法又名“甩手功”,簡稱“甩手”,是一種簡便易行的群眾性自主醫(yī)療體育運動[1]??茖W研究表明,甩手運動其功效一方面體現(xiàn)在加快血液流向肢體末梢,打通經(jīng)絡,加快血液回流,促進新陳代謝,增強機體對氧的攝錄,提高心肺功能[2]。此外,甩手運動對于肩周炎[3]、心血管疾病以及肱骨外傷[4,5]引起的上肢功能性障礙具有良好的康復輔助作用。故甩手運動的推廣對廣大群眾,尤其是中老年人的保健具有重要意義。
傳統(tǒng)的甩手療法主要通過視頻或書面文字等形式進行傳播教學,且甩手療法動作單一,需要長時間堅持,才能達到康復理療的效果。這些傳統(tǒng)訓練方式存在著訓練過程枯燥乏味、動作規(guī)范性不夠等不足,在沒有監(jiān)督的情況下,用戶難以堅持自主學習及獲得康復評價。近年來,隨著Kinect體感器[6]的問世,眾多科研人員將該技術運用于醫(yī)學領域。在國外,Alessandro Scano等[7]人將Kinect體感器采集的上肢骨骼點數(shù)據(jù)與穿戴式設備采集的數(shù)據(jù)進行了比較,實驗結(jié)果表明,Kinect采集數(shù)據(jù)的精度足以運用于肢體康復評估領域;Chang[8]等人研發(fā)的Kinect康復系統(tǒng),通過判斷患者關節(jié)點的位置等數(shù)據(jù),評估患者的運動是否達到了康復的標準,17歲患有先天性腦癱的彼得和16歲患有肌肉萎縮的西里分別在該系統(tǒng)下進行了基礎階段、干預階段的訓練,通過這兩個階段的康復訓練后,彼得和西里的運動功能得到了明顯的改善,證明了該研究系統(tǒng)的實用性。在國內(nèi),劉亞瑞[8]等將Kinect運用于手勢識別領域,實現(xiàn)了5種手勢的識別,平均識別率高達95.2%。薛智宏[9]等研發(fā)了基于Kinect的原地太極拳輔助系統(tǒng),利用Kinect進行數(shù)據(jù)采集,使用動態(tài)時間規(guī)整算法(DTW)對動作進行評估,實現(xiàn)了對用戶動作的引導及評估功能。
鑒于此,本文考慮到傳統(tǒng)甩手療法的訓練過程枯燥乏味、用戶動作規(guī)范性不夠等不足之處,研發(fā)出一款基于Kinect骨骼跟蹤技術和虛擬現(xiàn)實技術的甩手療法輔助訓練系統(tǒng),該系統(tǒng)可以對手臂功能進行必要的評估,并通過Unity3D游戲引擎的動畫系統(tǒng)[13]制作出3D引導動畫,引導人們進行正確規(guī)范的甩手運動。
系統(tǒng)的流程圖如圖1所示。首先,用戶進入系統(tǒng)主界面后,選擇進入評估場景或訓練場景。以選擇進入訓練場景為例,用戶在系統(tǒng)的提示下,根據(jù)3D人物引導動畫進行訓練,同時Kinect體感器實時采集人體25個骨骼點的三維坐標數(shù)據(jù),并將三維坐標數(shù)據(jù)轉(zhuǎn)換為相關關節(jié)點角度序列和距離序列。最后,對角度序列和距離序列進行數(shù)學分析,得出訓練得分反饋給用戶,從而輔助用戶進行正確高效的甩手訓練。
圖1 系統(tǒng)流程圖
甩手療法由來已久,同時吸取了中醫(yī)和“易筋經(jīng)”的某些理論,是一種科學化、大眾化的群體性保健體育活動,曾風靡于江浙滬一帶,著有《甩手三字訣》、《甩手十六決》等相關書籍[1]。甩手療法具體步驟和要點如下:
(1)雙腳與肩同寬,平行站立,呼吸自然,雙手向前伸直,肩膀放松;
(2)雙手往后來回甩動,甩動的時候肩膀放松,跟著節(jié)奏甩動,無需太用力;
(3)每甩手5次,雙膝微蹲2次;
(4)循環(huán)(1)-(3)步驟,每次至少持續(xù) 30分鐘。
根據(jù)甩手療法的動作要領,可知主要運用到人體上肢功能,故在進行訓練之前需對用戶的上肢功能進行評估,以便后期觀察訓練效果。根據(jù)手功能康復學[12]的建議,上肢功能的評估主要通過手臂外展、前屈、后伸和外展四個動作,根據(jù)動作的活動范圍可以將上肢功能分為三個等級,即正常(沒有任何障礙)、基本(僅能滿足工作生活等方面需求)和不合格(無法滿足日常需求),具體活動范圍如表1所示。本文通過對用戶上述四個動作評估對用戶上肢功能進行評估。
表1 上肢功能活動要求
首先解析Kinect2.0體感器采集到的用戶動作數(shù)據(jù),然后提取手臂運動特征,最后分別實現(xiàn)評估場景和訓練場景的各項得分策略。
Kinect 2.0體感器是微軟于2014年6月推出的全新一代人機交互傳感器,該設備由彩色攝像頭、紅外投影機、深度傳感器等硬件構成,不但可以獲取彩色圖像、深度圖像和輪廓圖像,還可以以30幀/秒實時獲取人體25個骨骼節(jié)點的三維坐標數(shù)據(jù)[14]。
利用Kinect體感器獲取如圖2所示人體25個骨骼節(jié)點的空間坐標數(shù)據(jù)流,每一幀共包括25個三維坐標數(shù)據(jù)。
圖2 Kinect捕捉的人體25個骨骼節(jié)點
整個評估訓練過程中,主要以手臂前后往復運動為主。描述手臂動作時,由肩關節(jié)和肘關節(jié)旋轉(zhuǎn)特性決定的手臂空間位置對動作的表達起關鍵性作用[9]。因此,本文主要研究并提取肩關節(jié)與肘關節(jié)在運動過程中的旋轉(zhuǎn)角度特征。根據(jù)Kinect體感器獲取到的25個骨骼點坐標信息對本文涉及到動作特征描述的貢獻程度不同,初步篩選出如表2所示的5個骨骼節(jié)點,其作用主要包括兩個方面:(1)描述左右手臂運動姿態(tài);(2)確定人體相對于體感器的位置。
表2 特征骨骼節(jié)點及其作用
(1)描述手臂運動姿態(tài)
將描述兩側(cè)手臂運動姿態(tài)的4個關節(jié)點,根據(jù)其自由度不同分成兩類:
①ElbowLeft、ElbowRight只能在一個二維平面上旋轉(zhuǎn);
②ShoulderLeft、ShoulderRight可以在三維空間中旋轉(zhuǎn)。
對于只能在一個平面上旋轉(zhuǎn)的骨骼點,其角度范圍是0°~180°,可以通過計算2個向量的夾角來確定。以計算左肘關節(jié)點ElbowLeft角度為例,如圖3所示,選取HandLeft、ElbowLeft和ShoulderLeft三個關節(jié)點,分別記其三維坐為A、B和C,肘關節(jié)角度記為?,則?的相關計算公式如下:
圖3 左肘角度計算
對于可以在三維空間中旋轉(zhuǎn)的骨骼點。以左肩關節(jié)點ShoulderLeft為例,當手臂外展或者手臂前屈時,肩關節(jié)角度都是90°,若仍然使用計算向量夾角的方式提取其角度特征數(shù)據(jù),則對于各個動作的描述不具有唯一性。針對這一問題,本文為了使角度特征數(shù)據(jù)能夠唯一描述各個動作的狀態(tài),對于手臂外展、手臂前屈、手臂后伸、手臂上舉4個動作的不同特征,采用計算線面夾角的方式分別提取它們的角度特征數(shù)據(jù)。以上4個動作肩關節(jié)特征角度如圖4所示,計算線面夾角的相關公式如下所示:
其中,A→和B→是對應平面內(nèi)的兩個不共線的向量,n→為該平面的法向量,?為手臂與該平面的夾角。
圖4 肩關節(jié)角度特征提取
(2)確定人體位置
對于人體位置姿態(tài),要保證用戶在訓練過程中垂直站立在Kinect體感器正前方2至3米的位置。本研究以SpineMid骨骼節(jié)點的位置表示人體所處位置,假設以O表示體感器位置,A表示SpineMid點,則人體距離體感器距離可表示為:
計算評估得分主要有三步:首先提取評估特征值,然后計算各個特征值得分,最后經(jīng)過加權平均計算最終評估得分。
提取評估特征值:評估得分旨在對用戶手臂評估動作的準確性、穩(wěn)定性以及協(xié)調(diào)性進行反饋。其中,準確性是指動作角度是否達到要求,穩(wěn)定性是指用戶進行動作時能否堅持一定時間,協(xié)調(diào)性是指用戶雙臂動作是否一致。系統(tǒng)分別采集了用戶的4個評估動作10秒鐘的特征角度數(shù)據(jù)序列,動作的準確性通過肩關節(jié)與肘關節(jié)能夠達到的最大角度和10秒時間的平均角度表達;穩(wěn)定性通過對應角度10秒鐘角度序列的標準差來判定;協(xié)調(diào)性通過雙臂之間的夾角來描述。綜上所述,每個評估動作涉及到的特征共13個,記為Pa={c0,c1,c2…c12},其中 ci代表一種特征,具體對應關系如表3所示。
計算各個特征值得分:對特征值集合Pa中的每一項特征值進行百分制得分計算,本文使用閾值法求取得分,即參考表1中人體上肢活動范圍情況,以滿足“正?;顒右蟆钡闹禐榈梅?00分、以達到“基本活動要求”的值為及格60分設定閾值,最終以同比例轉(zhuǎn)換的方式求取最后得分。記特征值獨立得分集合為Ps={d0,d1,d2…d12},其中 di代表特征值變量 ci的得分,di值由公式(8)確定。
其中,i={0,1,2,…,12},M表示表1中不同動作對應的“正常活動要求”值,N表示表1中不同動作對應的“基本活動要求”值,D表示對應動作最小值。
計算最終評估得分:用戶完成評估后,需向用戶反饋最終得分情況,其中包括用戶完成的4個動作的準確性、穩(wěn)定性和協(xié)調(diào)性三方面得分以及最終的加權得分。如表4所示,為最終得分展示內(nèi)容,其中Dij表示對應項的分數(shù)。以手臂外展為例,通過計算各個特征值得分,得到一個特征值獨立得分集合Ps={d0,d1,d2,…,d12},經(jīng)過多次實驗后,發(fā)現(xiàn)不同di得分對于不同D0j分數(shù)結(jié)果的貢獻度存在差異,本文通過計算加權平均數(shù)的方式得到D0j結(jié)果。以計算D00(左臂外展準確性得分)為例,該項得分主要考察用戶左臂活動角度能否達到健康人標準,故對該得分起到?jīng)Q定性作用的特征值為c0(左肩最大角度)、c1(左肩平均角度)、c3(左肘最大角度)和c4(左肘平均角度),經(jīng)過多次實驗后,設置其權值集合為 W00={0.5,0.3,0,0.1,0.1,0,0,…,0},記為
表3 特征值變量與對應名稱
表4 最終得分展示
圖5 評估系統(tǒng)界面
如圖5(a)所示為評估系統(tǒng)場景效果圖,用戶進入系統(tǒng)后,根據(jù)系統(tǒng)提示進行相應的評估測試,評估結(jié)束后,系統(tǒng)會彈出“評估報告”,該報告共包括評估得分和評估過程中詳細數(shù)據(jù)兩部分,如圖5(b)所示為評估得分部分,展示表3各項得分內(nèi)容,如圖5(c)所示為詳細數(shù)據(jù)部分,展示表4各項特征值數(shù)據(jù)。
為驗證系統(tǒng)評分的普適性與準確性,本次測試共分為2部分:
(1)普適性測試與分析
為測試評分算法與受試者無關性,即系統(tǒng)評分的普適性,征集了5名健康的志愿者,其中2名女性,3名男性,年齡均在24歲左右,在系統(tǒng)的提示下盡可能正確地完成評估測試,5名志愿者的各項得分數(shù)據(jù)如圖6所示。從圖中數(shù)據(jù)可以看出,5名志愿者各項分數(shù)都集中在80至100分之間,達到了較高的標準,符合得分與數(shù)據(jù)的一致性。
圖6 志愿者標準動作得分
(2)準確性測試與分析
為測試評分算法對受試者動作能夠準確反饋,即系統(tǒng)評分準確性,對5名志愿者進行了第二次測試。在此次測試中,5名志愿者盡可能多地做出與系統(tǒng)要求不同的動作,最終得分與其標準動作得分對比如圖7所示。從圖中數(shù)據(jù)可以看出,兩次不同的測試各項得分差距巨大,標準動作得分集中在較高水平,而亂做動作得分極低,驗證了系統(tǒng)對數(shù)據(jù)的靈敏性以及準確性。
圖7 志愿者對比動作得分數(shù)據(jù)
本文以Unity游戲引擎為開發(fā)平臺,構建了仿家居式評估訓練場景,給予了康復訓練游戲的代入感,吸引用戶自主完成手臂功能評估訓練,擁有較強的趣味性。本文提出的特征提取算法與評估得分算法具有較高的普適性和準確性,得分反饋可以引導用戶更好地按標準調(diào)整正訓練動作,最終達到較好的康復訓練效果。