何東浩,王振宇,汪 曦,甘 于,白亞雯
(無(wú)錫太湖學(xué)院,江蘇 無(wú)錫 214064)
近年來(lái),隨著機(jī)器學(xué)習(xí)及圖像處理技術(shù)的發(fā)展,在醫(yī)學(xué)康復(fù)領(lǐng)域的應(yīng)用越來(lái)越廣泛,并得到臨床醫(yī)生的認(rèn)可。為了彌補(bǔ)傳統(tǒng)量表式評(píng)估方法的缺點(diǎn),便捷評(píng)估使用者健康狀況,結(jié)合嵌入式、傳感器、串口通信、藍(lán)牙模塊及動(dòng)作識(shí)別技術(shù)等,本文提出一種基于Kinect傳感器和表面肌電傳感器的上肢運(yùn)動(dòng)功能數(shù)字化評(píng)估系統(tǒng)設(shè)計(jì)方法,以此滿(mǎn)足更便捷地評(píng)估自身健康狀況、更直觀(guān)地體會(huì)測(cè)試結(jié)果指數(shù)及更有效地消除健康隱患。
開(kāi)啟Kinect姿態(tài)識(shí)別應(yīng)用,進(jìn)入到Kinect姿態(tài)識(shí)別主程序,獲取人體深度圖數(shù)據(jù)和骨骼數(shù)據(jù),再進(jìn)入不同的姿態(tài)識(shí)別程序,當(dāng)執(zhí)行完后進(jìn)入下一種姿態(tài)識(shí)別程序,直到最后一個(gè)動(dòng)作識(shí)別結(jié)束。
接下來(lái)將介紹不同動(dòng)作的動(dòng)作識(shí)別程序及原理,姿態(tài)識(shí)別程序會(huì)在運(yùn)行時(shí)每十一幀采集1次人體姿態(tài)信息,在每十一幀的第十一幀,程序開(kāi)始姿態(tài)識(shí)別,以下為采集程序代碼及注釋。
Emg單導(dǎo)肌肉電傳感器部分,只需把傳感器輸入的端口配置好ADC初始化,再讀取實(shí)時(shí)信息輸出到OLED模塊中,以下是Emg肌電ADC值采集程序。
遙控器部分較為簡(jiǎn)單,本設(shè)計(jì)設(shè)置了16個(gè)按鈕,當(dāng)檢測(cè)到某個(gè)按鈕被按下,執(zhí)行相關(guān)的按鈕處理程序。
此時(shí)姿態(tài)程序識(shí)別會(huì)讀取該D:/ccc.txt文本文檔,并根據(jù)里面的參數(shù)執(zhí)行不同的姿態(tài)識(shí)別程序。
每個(gè)姿態(tài)動(dòng)作都有起始動(dòng)作和結(jié)束動(dòng)作,程序會(huì)在每十一幀的第一幀記錄起始動(dòng)作姿態(tài),在第十一幀識(shí)別第十一幀及第一幀是否滿(mǎn)足動(dòng)作要求,人體的特定關(guān)節(jié)是否符合特定特征,以此來(lái)準(zhǔn)確判斷人體姿態(tài)動(dòng)作是否完成。第一個(gè)動(dòng)作,起始動(dòng)作是左手放在右膝蓋上,而結(jié)束動(dòng)作是左手放在左耳旁。
伸展共同動(dòng)作和屈曲共同運(yùn)動(dòng)類(lèi)似,左手放在右膝蓋上方,再舉至頭左一段距離,由此采用類(lèi)似第一個(gè)動(dòng)作的處理。
Stm32遙控器上電后,可以看見(jiàn)OLED也亮起來(lái),此時(shí)可以通過(guò)按鍵輸入希望發(fā)送的信息,當(dāng)遙控器檢測(cè)到按了D鍵后,把信息發(fā)送到電腦串口,其中4×4的按鍵各對(duì)應(yīng)著數(shù)。
可以看到一開(kāi)始OLED只有“-”符號(hào),此時(shí)當(dāng)輸入幾個(gè)數(shù)字后,數(shù)字可以成功顯示到OLED上,并在程序里記錄到待發(fā)送的數(shù)組里面。
藍(lán)牙模塊選用的是2塊HC05藍(lán)牙模塊,其中電腦串口的藍(lán)牙模塊采用藍(lán)牙模塊+TTL轉(zhuǎn)USB方式連接電腦,其中藍(lán)牙模塊和TTL的Vcc和GND對(duì)應(yīng)連接,而其rx和tx口交叉連接。2個(gè)模塊起初是沒(méi)有相互配置的,首先分別將2個(gè)模塊上的小按鈕按住,再連接至電腦然后放開(kāi)按鈕,此時(shí)2個(gè)藍(lán)牙模塊都進(jìn)入了AT模式,發(fā)送AT指令設(shè)置好主從模式及綁定地址,下一次上電后2個(gè)模塊自動(dòng)連接起來(lái),可以通過(guò)串口程序像普通串口一樣收發(fā)數(shù)據(jù)。
此時(shí)發(fā)送Stm32遙控器中的數(shù)據(jù),可以看見(jiàn)藍(lán)牙串口接收到數(shù)據(jù)并顯示于輸出串口,保存于ccc.txt中,供Kinect姿態(tài)識(shí)別程序調(diào)用。
連接好Kinect攝像頭,啟動(dòng)程序后可以看見(jiàn)攝像頭燈光亮起來(lái),如圖1所示。
圖1 Kinect攝像頭
當(dāng)打開(kāi)姿態(tài)識(shí)別程序,程序會(huì)打開(kāi)一個(gè)MFC界面,可以看到此時(shí)Kinect攝像頭前的人的骨骼圖和深度圖,并有程序設(shè)定的打印顯示,如圖2所示。
圖2 程序啟動(dòng)界面
此時(shí)康復(fù)訓(xùn)練者跟隨打印提示一步步完成每個(gè)動(dòng)作的姿態(tài)識(shí)別流程,如動(dòng)作一:屈曲共同運(yùn)動(dòng)。
由圖3可知,當(dāng)動(dòng)作識(shí)別成優(yōu)秀后,可以看到FMA動(dòng)作計(jì)分加了2分,并在窗口打印出下一個(gè)動(dòng)作的提示,此時(shí)繼續(xù)執(zhí)行動(dòng)作二。
圖3 識(shí)別成功:動(dòng)作一
由圖4可知,動(dòng)作二識(shí)別成優(yōu)秀后,可以看見(jiàn)分?jǐn)?shù)累計(jì)成4分,接著依次執(zhí)行完所有動(dòng)作。
圖4 識(shí)別成功:動(dòng)作二
由圖5可知,姿態(tài)識(shí)別全部結(jié)束,可以看見(jiàn)調(diào)試流程是符合本設(shè)計(jì)程序設(shè)置的,并能實(shí)現(xiàn)姿態(tài)識(shí)別和累計(jì)動(dòng)作評(píng)分的功能。
圖5 識(shí)別成功:所有動(dòng)作
本文提出一種基于Kinect傳感器和表面肌電傳感器的上肢運(yùn)動(dòng)功能數(shù)字化評(píng)估系統(tǒng)設(shè)計(jì)方法,本設(shè)計(jì)整體包含Kinect、表面肌電傳感器、Stm32和藍(lán)牙模塊等。經(jīng)過(guò)硬件與軟件設(shè)計(jì)、測(cè)試,本系統(tǒng)功能符合預(yù)期要求。
(1)Kinect采集人體骨骼信息傳送到姿態(tài)識(shí)別應(yīng)用里,姿態(tài)識(shí)別程序可以成功識(shí)別出每個(gè)動(dòng)作并對(duì)此進(jìn)行打分。
(2)Stm32上的按鍵信息輸出到OLED上,當(dāng)按下發(fā)送鍵時(shí),存在數(shù)組里的指令信息通過(guò)Stm32上的藍(lán)牙模塊傳送到電腦端的串口軟件,串口軟件再保存至本地。由Kinect應(yīng)用再讀取本地文本文檔的信息,把當(dāng)前動(dòng)作識(shí)別切換至遙控器指令對(duì)應(yīng)的動(dòng)作識(shí)別并輸出到MFC窗口上。