徐衛(wèi)偉,程 鵬,李艷君
北京體育大學(xué),北京 100084
隨著人口老齡化水平的加劇,高血壓、腦卒中、老年癡呆等心血管疾病發(fā)病率逐年升高,統(tǒng)計(jì)結(jié)果表明,70%~85%的腦卒中患者會伴隨產(chǎn)生一定程度的運(yùn)動障礙,嚴(yán)重影響患者的生活質(zhì)量[1,2]。大量研究結(jié)果表明,大量重復(fù)性和高密度性的康復(fù)訓(xùn)練可以使得患者的身體功能得到最大限度的恢復(fù),改善患者的生活質(zhì)量,提高其生活、工作和學(xué)習(xí)能力[3]。傳統(tǒng)的康復(fù)訓(xùn)練方法主要采用輔助按摩的方式進(jìn)行,要求在專業(yè)地點(diǎn)進(jìn)行,訓(xùn)練治療過程單調(diào)乏味,而且存在訓(xùn)練效果和訓(xùn)練強(qiáng)度無法準(zhǔn)確評價(jià)的缺點(diǎn)。為了克服傳統(tǒng)康復(fù)訓(xùn)練方法的缺點(diǎn),將Kinect和虛擬現(xiàn)實(shí)結(jié)合起來,開發(fā)出一種基于Kinect和虛擬現(xiàn)實(shí)的康復(fù)訓(xùn)練系統(tǒng),實(shí)現(xiàn)患者在家或者社區(qū)里就能進(jìn)行康復(fù)訓(xùn)練,同時(shí)提高訓(xùn)練效果并對訓(xùn)練效果進(jìn)行評估,為患者的下一步康復(fù)治療提供決策依據(jù)。
圖1 基于Kinect和虛擬現(xiàn)實(shí)的康復(fù)訓(xùn)練系統(tǒng)Fig.1 Rehabilitation training system based on Kinect and virtual reality
基于Kinect和虛擬現(xiàn)實(shí)的康復(fù)訓(xùn)練系統(tǒng)組成模塊如圖1所示,主要包括如下模塊[4]:
(1)傳感器數(shù)據(jù)采集模塊:負(fù)責(zé)數(shù)據(jù)采集和數(shù)據(jù)轉(zhuǎn)換功能;
(2)后臺實(shí)時(shí)數(shù)據(jù)處理模塊:負(fù)責(zé)數(shù)據(jù)處理、數(shù)據(jù)存儲和數(shù)據(jù)輸出等功能;
(3)虛擬老師標(biāo)準(zhǔn)動作模型庫模塊:負(fù)責(zé)指導(dǎo)患者訓(xùn)練動作的示范、選擇和訓(xùn)練模式的選擇等功能;
(4)患者動態(tài)形象虛擬化模塊:負(fù)責(zé)患者訓(xùn)練動作的虛擬化等功能;
(5)網(wǎng)絡(luò)交流模塊:負(fù)責(zé)患者訓(xùn)練數(shù)據(jù)對的加載和上傳、醫(yī)生下載訓(xùn)練數(shù)據(jù)。
該系統(tǒng)主要功能結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)功能圖Fig.2 Function of the system structure
該系統(tǒng)軟件基于Visual Studio 2015環(huán)境開發(fā)[5],傳感器[6]采用Kinect for Windows SDK V1.6,患者訓(xùn)練端采用Windows窗體應(yīng)用程序,網(wǎng)絡(luò)服務(wù)端和客戶端采用ASP.NET Web應(yīng)用程序[7]。圖3所示表示不同訓(xùn)練場景圖。
圖3 訓(xùn)練場景圖Fig.3 Training scene
康復(fù)訓(xùn)練系統(tǒng)的網(wǎng)絡(luò)交流模塊主要分為患者登錄客戶端和醫(yī)生登錄客戶端,基于VS2015的ASP.NET實(shí)現(xiàn)設(shè)計(jì)。主要功能包括患者可以瀏覽醫(yī)生的反饋信息和相關(guān)網(wǎng)站,醫(yī)生根據(jù)患者編號提交訓(xùn)練信息、評價(jià)和建議。
Kinect傳感器通過黑白光譜的方式來感知環(huán)境,通過生成深度圖像流[8],實(shí)現(xiàn)周圍環(huán)境的3D模型復(fù)現(xiàn)。通過Kinect傳感器可以得到20點(diǎn)二維人體骨架投影如圖4所示。通過骨架投影信息可以提取人體運(yùn)動特征和姿態(tài)特征。
圖4 二維人體骨架投影圖Fig.42D projection of the human body skeletons
通過Kinect傳感器采集患者訓(xùn)練數(shù)據(jù)并進(jìn)行預(yù)處理,之后系統(tǒng)將對患者的運(yùn)動數(shù)據(jù)進(jìn)行實(shí)時(shí)自動評分,通過計(jì)算相應(yīng)關(guān)節(jié)連線的夾角,提取關(guān)鍵動作并進(jìn)行評分。
該系統(tǒng)用戶訓(xùn)練模式包括標(biāo)準(zhǔn)模式和高級模式,其中標(biāo)準(zhǔn)模式包含4個(gè)動作,動作順序和數(shù)量不能刪減;高級模式包括5個(gè)動作,動作順序和數(shù)量可以自定義設(shè)置。用戶訓(xùn)練時(shí),可以根據(jù)虛擬老師動作進(jìn)行訓(xùn)練,系統(tǒng)將用戶的動作和虛擬老師動作進(jìn)行對比并評分,訓(xùn)練結(jié)束后,給出綜合評價(jià),并為患者下一步康復(fù)訓(xùn)練提供相應(yīng)的建議和意見。
康復(fù)訓(xùn)練系統(tǒng)通過Kinect傳感器每秒采集30幀數(shù)據(jù),并將患者進(jìn)行虛擬化映射——動態(tài)實(shí)時(shí)火柴人[9,10],其映射結(jié)果如圖5所示,系統(tǒng)根據(jù)用戶和虛擬老師之間的差異進(jìn)行動態(tài)調(diào)整。
圖5 Kinect人體虛擬化節(jié)點(diǎn)Fig.5 Kinect human virtualization nodes
網(wǎng)絡(luò)交流模塊基于VS2015的ASP.NET實(shí)現(xiàn)設(shè)計(jì)。主要功能包括患者可以瀏覽醫(yī)生的反饋信息和相關(guān)網(wǎng)站,醫(yī)生根據(jù)患者編號提交訓(xùn)練信息、評價(jià)和建議,患者登錄客戶端如圖6所示
圖6 患者登錄客戶端界面Fig.6 Interface of patient login
該訓(xùn)練軟件系統(tǒng)主要采用模塊設(shè)計(jì)[11],主機(jī)程序包括主程序、Kinect初始化、圖像識別、串口通信等,基于VS2015和Kinect for Windows SDK V1.6,系統(tǒng)程序流程如圖7所示。
圖7 系統(tǒng)程序流程圖Fig.7 Flow chart of the system programs
Kinect將采集到的患者訓(xùn)練圖像信息(動作特征和姿態(tài)特征)傳送給上位機(jī)[12],上位機(jī)經(jīng)過圖像處理和虛擬化映射后識別出人體動作并輸出結(jié)果。
虛擬老師和患者訓(xùn)練實(shí)時(shí)對比圖,其中,圖8左圖表示虛擬老師肘關(guān)節(jié)屈曲動作引導(dǎo),圖8右圖為患者的虛擬化火柴人。大量實(shí)驗(yàn)結(jié)果表明,該康復(fù)訓(xùn)練系統(tǒng)可以使得患者的身體功能得到最大限度的恢復(fù),改善患者的生活質(zhì)量,提高其生活、工作和學(xué)習(xí)能力
圖8 虛擬老師和患者訓(xùn)練實(shí)時(shí)對比圖Fig.8 Real-time comparison of virtual teacher and patient training
為了克服傳統(tǒng)康復(fù)訓(xùn)練方法的缺點(diǎn),將Kinect和虛擬現(xiàn)實(shí)結(jié)合起來,開發(fā)出一種基于Kinect和虛擬現(xiàn)實(shí)的康復(fù)訓(xùn)練系統(tǒng),實(shí)現(xiàn)患者在家或者社區(qū)里就能進(jìn)行康復(fù)訓(xùn)練,同時(shí)提高訓(xùn)練效果并對訓(xùn)練效果進(jìn)行評估,為患者的下一步康復(fù)治療提供決策依據(jù)。