楊 藝,許 源,張俊杰,劉 燕
基于 Kinect與虛擬現(xiàn)實(shí)的社區(qū)家庭康復(fù)系統(tǒng)的研制
楊 藝,許 源,張俊杰,劉 燕
盡管大部分康復(fù)訓(xùn)練需要在醫(yī)院進(jìn)行,但是將訓(xùn)練適量“搬運(yùn)”到患者家中并把結(jié)果定期反饋回醫(yī)院以制定下一步治療計(jì)劃,不僅能減輕康復(fù)醫(yī)師的工作,也可為患者提供更輕松自在的訓(xùn)練環(huán)境和完善的后期治療。在 Visual Studio 2010(VS2010)開(kāi)發(fā)環(huán)境下,嘗試?yán)?Kinect傳感器捕捉患者運(yùn)動(dòng),獲取原始深度數(shù)據(jù)流并從中采集患者全身 20 個(gè)關(guān)節(jié)點(diǎn)的信息,在此基礎(chǔ)上構(gòu)建一個(gè)動(dòng)態(tài)實(shí)時(shí)的康復(fù)訓(xùn)練軟件系統(tǒng)。該軟件系統(tǒng)可存儲(chǔ)歷史訓(xùn)練細(xì)節(jié),并依據(jù)標(biāo)準(zhǔn)動(dòng)作模板生成的評(píng)分函數(shù)得到訓(xùn)練效果分?jǐn)?shù),在預(yù)設(shè)時(shí)間到達(dá)后展示給患者與治療師同時(shí)輸出訓(xùn)練記錄,方便后期實(shí)現(xiàn)部分網(wǎng)絡(luò)交流功能。目前本系統(tǒng)主要收錄的動(dòng)作有五個(gè)分別為:擊掌、舉手上伸、下垂合手、右腿劃圈、左腿劃圈。
虛擬現(xiàn)實(shí);家庭康復(fù);Kinect傳感器;動(dòng)態(tài)實(shí)時(shí)火柴人;自動(dòng)評(píng)分
隨著老年人群的增長(zhǎng),慢性病和老年病成為了社區(qū)醫(yī)療服務(wù)的重要關(guān)注點(diǎn)。通常高血壓、腦卒中、老年癡呆等是老年人群易發(fā)的疾病。患者在經(jīng)過(guò)醫(yī)院的治療后期望通過(guò)一些社區(qū)和家庭式的康復(fù)訓(xùn)練來(lái)增加他們的肌體功能康復(fù)效果,進(jìn)而提高他們的生活質(zhì)量。目前,雖然國(guó)內(nèi)外的科技人員已經(jīng)研究和開(kāi)發(fā)了一些康復(fù)訓(xùn)練系統(tǒng),但大部分都需要在專門的實(shí)驗(yàn)室環(huán)境內(nèi)進(jìn)行康復(fù)訓(xùn)練。因此,有必要開(kāi)發(fā)一類輕便小型的智能康復(fù)訓(xùn)練系統(tǒng)來(lái)輔助這類人群在社區(qū)和家庭進(jìn)行康復(fù)訓(xùn)練。為了實(shí)現(xiàn)這一目標(biāo),首先要尋求捕捉目標(biāo)動(dòng)態(tài)姿勢(shì)的輕巧傳感器。作為一種全新的交互傳感方式,Kinect正逐漸滲透到人們生活的各個(gè)領(lǐng)域[1]。在我國(guó)目前關(guān)于Kinect的應(yīng)用多在教育與娛樂(lè)方面,將它運(yùn)用于康復(fù)領(lǐng)域是一種新的探索嘗試。
基于 Kinect 傳感器開(kāi)發(fā)的社區(qū)家庭式康復(fù)系統(tǒng)將使我們可以借助虛擬現(xiàn)實(shí)技術(shù)通過(guò)一臺(tái) Kinect 傳感器和電腦,在一定范圍的空間內(nèi)實(shí)施趣味性的康復(fù)訓(xùn)練。再結(jié)合遠(yuǎn)程網(wǎng)絡(luò)技術(shù),將使受訓(xùn)者可以通過(guò)網(wǎng)絡(luò)咨詢治療師,而治療師通過(guò)網(wǎng)絡(luò)返回的訓(xùn)練效果給出意見(jiàn)與符合患者訓(xùn)練進(jìn)度的后續(xù)治療方案。這使治療師從繁重的工作中解脫出來(lái),有利于增加患者數(shù)量和方便醫(yī)師在機(jī)械因素以外提供人情關(guān)懷,并逐漸形成具有較強(qiáng)醫(yī)學(xué)性與醫(yī)院緊密聯(lián)系的網(wǎng)絡(luò)社區(qū),從而定期得到技術(shù)與健康指導(dǎo)并完善患者的后期康復(fù)療程。
“讓有限數(shù)量的治療師面對(duì)更多數(shù)量的患者”是我國(guó)康復(fù)治療領(lǐng)域亟待解決的問(wèn)題。將 Kinect 與計(jì)算機(jī)技術(shù)結(jié)合運(yùn)用于康復(fù)領(lǐng)域所研制的社區(qū)家庭康復(fù)系統(tǒng),可以有效從“質(zhì)”(康復(fù)效果)和“量”(患者數(shù)量)上提高我國(guó)的康復(fù)水平,具有非常廣闊的前景。
1.1 系統(tǒng)平臺(tái)的構(gòu)成
家庭式康復(fù)系統(tǒng)的硬件部分由 Kinect 傳感器和計(jì)算機(jī)構(gòu)成。物理上則有5大模塊,如下所列:
1)傳感器數(shù)據(jù)采集處理模塊:數(shù)據(jù)采集、數(shù)據(jù)轉(zhuǎn)換;
2)后臺(tái)實(shí)時(shí)數(shù)據(jù)處理模塊:數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)輸出;
3)虛擬老師標(biāo)準(zhǔn)動(dòng)作模型庫(kù):患者訓(xùn)練模式及動(dòng)作選擇功能和動(dòng)作指導(dǎo)功能服務(wù);
4)患者動(dòng)態(tài)形象虛擬化模塊:患者虛擬化服務(wù)與實(shí)現(xiàn);
5)網(wǎng)絡(luò)交流模塊:患者數(shù)據(jù)上傳、醫(yī)師數(shù)據(jù)下載;
系統(tǒng)主要結(jié)構(gòu)示意如下圖1所示:
圖1 家庭式康復(fù)系統(tǒng)主要結(jié)構(gòu)示意圖
1.2 家庭康復(fù)系統(tǒng)平臺(tái)邏輯構(gòu)成
系統(tǒng)邏輯上分為3個(gè)應(yīng)用部分,名稱及功能分別為:
1)患者訓(xùn)練客戶端:提供康復(fù)訓(xùn)練服務(wù)及數(shù)據(jù)維護(hù);
2)患者網(wǎng)絡(luò)服務(wù)客戶端:數(shù)據(jù)上傳與醫(yī)師建議下載;
3)醫(yī)師網(wǎng)絡(luò)服務(wù)客戶端:數(shù)據(jù)查看及個(gè)人建議上傳;
此三部分基本實(shí)現(xiàn)系統(tǒng)的單機(jī)與網(wǎng)絡(luò)功能。
1.3 基礎(chǔ)技術(shù)開(kāi)發(fā)平臺(tái)
整個(gè)系統(tǒng)的開(kāi)發(fā)環(huán)境采用的是 Visual Studio 2010,使用了 Kinect for Windows SDK v1.6 進(jìn)行傳感器操作?;颊哂?xùn)練客戶端采用 Windows窗體應(yīng)用程序與 WPF 應(yīng)用程序搭建;網(wǎng)絡(luò)服務(wù)客戶端均采用 ASP.NET WEB 應(yīng)用程序構(gòu)建。
1.4 網(wǎng)絡(luò)設(shè)計(jì)
系統(tǒng)網(wǎng)絡(luò)模塊目前分兩部分:患者與醫(yī)師登陸客戶端,利用 VS2010 的 ASP.NET 構(gòu)建。主要功能為:使醫(yī)師可以按編號(hào)查閱患者訓(xùn)練信息并提交評(píng)價(jià)與建議,患者可瀏覽醫(yī)師反饋信息與瀏覽相關(guān)網(wǎng)站。
系統(tǒng)的工作流程為:①用戶界面初始化;②用戶動(dòng)態(tài)訓(xùn)練實(shí)時(shí)數(shù)據(jù)采集;③患者形象動(dòng)態(tài)虛擬化;④用戶訓(xùn)練評(píng)分;⑤評(píng)價(jià)和患者動(dòng)作細(xì)節(jié)記顯示;⑥網(wǎng)絡(luò)模塊數(shù)據(jù)上傳。
2.1 Kinect傳感器數(shù)據(jù)采集處理模塊
Kinect作為史上銷售最快的電子消費(fèi)產(chǎn)品【3】,是微軟公司推出的一款高性能的體感器。它由紅外投影機(jī)、彩色攝像頭、紅外深度投影頭和 PrimeSense 的 PS1080 SoC 芯片組成,空間判斷精確度為 4mm。 Kinect傳感器將數(shù)據(jù)采集和處理結(jié)合一體,可提供三大類原始數(shù)據(jù)信息:深度數(shù)據(jù)流、彩色視頻流和原始音頻流,如圖2所示:
圖2 Kinect傳感器數(shù)據(jù)流應(yīng)用示意
其獨(dú)特骨骼追蹤技術(shù)將用戶全身虛擬化為 20個(gè)關(guān)節(jié)點(diǎn)【4】。利用微軟公司提供的 Kinect SDK 的 APIs 來(lái)實(shí)現(xiàn)對(duì)Kinect傳感器的控制操作。
Kinect傳感器使用的整個(gè)過(guò)程包括:初始化并啟動(dòng)傳感器,數(shù)據(jù)流操作,釋放資源并關(guān)閉。在 WindowLoaded()函數(shù)中實(shí)現(xiàn)傳感器的初始化,邏輯判斷無(wú)誤后啟動(dòng)傳感器。
由于 Kinect 同時(shí)追蹤 6 人而只有一位患者,所以系統(tǒng)將骨骼追蹤限定為只有第一個(gè)被追蹤的人, 使患者訓(xùn)練時(shí)可獲他人幫助。關(guān)鍵語(yǔ)句如下:
Skeleton currentskeleton = (from s in skeletons where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault();
系統(tǒng)利用 SensorSkeletonFrameReady()函數(shù)對(duì)骨骼數(shù)據(jù)進(jìn)行處理,數(shù)據(jù)處理與繪圖的過(guò)程如圖3所示:
圖3 SensorSkeletonFrameReady()函數(shù)流程
①獲取數(shù)據(jù)流,重新分配存放緩沖區(qū);②獲得數(shù)據(jù)流中每一幀的新數(shù)據(jù),并釋放緩沖區(qū);③判斷骨骼追蹤狀態(tài)之后選擇相應(yīng)的執(zhí)行方式。
2.2 后臺(tái)實(shí)時(shí)數(shù)據(jù)處理模塊
數(shù)據(jù)采集并初步處理后,系統(tǒng)對(duì)用戶的運(yùn)動(dòng)數(shù)據(jù)進(jìn)行實(shí)時(shí)評(píng)分,為實(shí)現(xiàn)自動(dòng)評(píng)分,每個(gè)動(dòng)作對(duì)應(yīng)的算法均對(duì)每幀數(shù)據(jù)進(jìn)行操作。基本的原理是計(jì)算出相應(yīng)關(guān)節(jié)連線的夾角,再根據(jù)關(guān)節(jié)點(diǎn)的具體位置進(jìn)行相關(guān)動(dòng)作得分的評(píng)判。其中提取患者關(guān)節(jié)點(diǎn)數(shù)據(jù)程序語(yǔ)句如下:
wex=skeleton.Joints[JointType.WristRight].Position.X-ske leton.Joints[JointType.ElbowRight].Position.X;
2.3 虛擬老師標(biāo)準(zhǔn)動(dòng)作模型庫(kù)
目前系統(tǒng)共收錄了五個(gè)動(dòng)作別針對(duì)手臂與腿部,用戶可選擇的訓(xùn)練模式有兩個(gè),分別為:標(biāo)準(zhǔn)模式(有4個(gè)動(dòng)作,不能增減和改變順序);高級(jí)模式(在五個(gè)動(dòng)作內(nèi)自主選擇,數(shù)目和順序自定)。根據(jù)用戶的選擇指導(dǎo)部分將相應(yīng)的虛擬老師動(dòng)作按照相應(yīng)順序逐個(gè)顯示,每個(gè)動(dòng)作指導(dǎo)與評(píng)分均歷時(shí) 30秒并且都具有相應(yīng)評(píng)價(jià)與特定細(xì)節(jié)識(shí)別函數(shù),訓(xùn)練完畢總評(píng)算法給出綜合評(píng)價(jià)并生成患者訓(xùn)練信息 txt文檔。
2.4 患者動(dòng)態(tài)形象虛擬化模塊
系統(tǒng)設(shè)置 Kinect采集數(shù)據(jù)幀率為每秒 30 幀,并顯示虛擬化患者——?jiǎng)討B(tài)實(shí)時(shí)火柴人,保證用戶可在虛擬訓(xùn)練環(huán)境中對(duì)比自己與虛擬老師的差異進(jìn)行適當(dāng)調(diào)整?;鸩袢擞?20個(gè)關(guān)節(jié)點(diǎn)組成如見(jiàn)圖4所示:
圖4 Kinect 虛擬人體的 20 個(gè)關(guān)節(jié)點(diǎn)
實(shí)現(xiàn)人物虛擬化鏡像。構(gòu)造 DrawBone()函數(shù),對(duì)應(yīng)連接20個(gè)關(guān)節(jié)點(diǎn),完成火柴人的繪制。代碼如下:
drawingContext.DrawLine(drawPen,
this.SkeletonPointToScreen(joint0.Position),this.SkeletonPoint ToScreen(joint1.Position));
2.5 網(wǎng)絡(luò)交流模塊
此部分主要針對(duì)訓(xùn)練結(jié)束后產(chǎn)生的 txt文檔進(jìn)行操作,利用 ASP.NET WEB 應(yīng)用程序初步實(shí)現(xiàn)患者與醫(yī)師使用客戶端登陸后在網(wǎng)絡(luò)頁(yè)面查看或者輸入提交相應(yīng)信息?;颊叩顷戫?yè)面如下圖5所示:
圖5 患者登陸頁(yè)面
為了測(cè)試系統(tǒng)的穩(wěn)定性,編程并選取粗大動(dòng)作—肘關(guān)節(jié)屈曲 80°—90°進(jìn)行了測(cè)試。
由于傳感器芯片 PrimeSense 的深度測(cè)量技術(shù)---Light Coding 利用激光散斑原理(激光在散射體表面的漫反射時(shí)在散射表面或附近光場(chǎng)中可觀察到一種無(wú)規(guī)分布的亮暗光點(diǎn)),因此被檢測(cè)者須與環(huán)境背景有明顯的區(qū)分度。同時(shí)Kinect 的探測(cè)范圍是 0.8~3.5m,所以實(shí)驗(yàn)采用白色墻壁背景,測(cè)試者身著非純白色日常服飾站立在探測(cè)區(qū)內(nèi)動(dòng)作。
實(shí)驗(yàn)環(huán)境如圖6所示:
圖6 實(shí)驗(yàn)室傳感器位置示意
實(shí)驗(yàn)記錄如表1所列:
表1 實(shí)驗(yàn)數(shù)據(jù)記錄
3 51.12 85.61 很不錯(cuò)哦,不過(guò)動(dòng)作有些太大了4 79.65 100 太棒了!您的動(dòng)作完全符合要求5 87.32 100 太棒了!您的動(dòng)作完全符合要求6 92.45 100 太棒了!您的動(dòng)作完全符合要求7 98.66 88.80 需要繼續(xù)努力,請(qǐng)把手臂再抬高一些吧8 105.43 84.76 需要繼續(xù)努力,請(qǐng)把手臂再抬高一些吧9 170.65 75 離要求還有些距離,請(qǐng)?jiān)倥σ恍┌桑?0 136.73 75 離要求還有些距離,請(qǐng)?jiān)倥σ恍┌桑?/p>
標(biāo)準(zhǔn)動(dòng)作引導(dǎo)下的受訓(xùn)者動(dòng)作實(shí)時(shí)復(fù)現(xiàn)如圖7所示:
圖7 標(biāo)準(zhǔn)動(dòng)作引導(dǎo)下的受訓(xùn)者動(dòng)作實(shí)時(shí)復(fù)現(xiàn)
左圖為虛擬老師肘關(guān)節(jié)屈曲動(dòng)作引導(dǎo),右圖為患者的火柴人
經(jīng)多次測(cè)試驗(yàn)證系統(tǒng)的穩(wěn)定性與可靠性,患者火柴人的同步性較高,即使快速動(dòng)作也無(wú)明顯延遲和停滯。
隨著我國(guó)人口老齡化趨勢(shì)加重,目前專業(yè)康復(fù)醫(yī)護(hù)人員與患者數(shù)量不相匹配的狀況較為嚴(yán)重【5】,利用虛擬現(xiàn)實(shí)技術(shù)與康復(fù)治療結(jié)合能有效減輕康復(fù)醫(yī)護(hù)人員工作壓力,增加可治療患者數(shù)量,提升康復(fù)效果,最終達(dá)到雙贏的局面。盡管目前國(guó)內(nèi)關(guān)于康復(fù)訓(xùn)練的系統(tǒng)及儀器為數(shù)眾多,不過(guò)在可普及到社區(qū)和家庭的經(jīng)濟(jì)實(shí)用的康復(fù)訓(xùn)練設(shè)施部分仍然有所欠缺?;?Kinect 傳感構(gòu)建的家庭式康復(fù)訓(xùn)練將會(huì)成為更多患者家庭康復(fù)的首選,相關(guān)的系統(tǒng)也將會(huì)逐漸被廣大患者接受。
[1]徐獻(xiàn)金,腦卒中執(zhí)行功能障礙康復(fù)技術(shù)的研究進(jìn)展,[J]中國(guó)康復(fù)理論與實(shí)踐,2013,1(19)
[2]周柳,王英華,劉強(qiáng),孫弘進(jìn).虛擬現(xiàn)實(shí)技術(shù)在運(yùn)動(dòng)康復(fù)中的應(yīng)用[J].中國(guó)組織工程研究與臨床康復(fù),2007,1 1(5):957-960.
[3]余濤.Kinect 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn):用最自然的方式與機(jī)器對(duì)話,[M]機(jī)械工業(yè)出版社,2012,11
[4]MSDN:Microsoft.Kinect. http://msdn.microsoft.com/e n-us/library/microsoft.kinect.aspx,2013 年 3 月 28 日
[5]王瑞利,劉更謙,于慶增. 虛擬現(xiàn)實(shí)在踝關(guān)節(jié)康復(fù)系統(tǒng)中的應(yīng)用[J];醫(yī)療保健器具,2006 年 11 期:24-26
Study of a Community Hosehold Rehabilitation System Based on Kinect and Virtual Reality
Yang Yi1, Xu Yuan2, Zhang Junjie3, Liu Yan1
1(Department of Biomedical Engineering in Zhong Shan School of Medicine , SYSU , Guangzhou 510080,China)
Although rehabilitation training needs to be taken in hospital, moving considerable amount of training to patients’ home and sending feedbacks to hospital regularly has lots of benefits. As it can reduce the workload of rehabilitation therapists, supply patients with a more comfortable environment and better late treatment. This thesis is aimed at discussing about the feasibility of community household rehabilitation system and introducing the preliminary implementation and improvement. The system uses Kinect sensor to track the motion of patients, get original depth data stream and collect the information of the 20 joints of the patient. It creates a dynamic real-time changing stickman and practicing environment on the platform of Visual Studio 2010 with the data basis before. At the meantime, the computer uses the algorithm to compare the collected data with the model, store the history of the details of the practice and show the results to therapists and patients when the designed time is reached. And it also can output the training records for later network social communication. There are five main actions and they are: clapping hands, raising hands and holding ,dropping hands, right leg cycling ,left leg cycling.
Virtual Reality; Household; Rehabilitation Training; Kinect Sensor; Dynamic Real-time Changing Stickman Auto Rating
TP311
A
1007-757X(2014)02-0032-03
2014.02.21)
楊 藝,女,廣東,中山醫(yī)學(xué)院生物醫(yī)學(xué)工程系,生物醫(yī)學(xué)工程專業(yè)碩士,廣州,510080許 源,男,廣東,中山醫(yī)學(xué)院生物醫(yī)學(xué)工程系,生物醫(yī)學(xué)工程專業(yè)碩士,廣州,510080張俊杰,男,廣東,中山醫(yī)學(xué)院生物醫(yī)學(xué)工程系,生物醫(yī)學(xué)工程專業(yè)碩士,廣州,510080劉 燕,中山醫(yī)學(xué)院生物醫(yī)學(xué)工程系,副教授,項(xiàng)目指導(dǎo)老師,碩士,醫(yī)學(xué)信息學(xué),廣州 ,510080,