李開貴,游 燕
(成都紡織高等專科學(xué)校,成都 611731)
無線傳感器網(wǎng)絡(luò)(WSN)是借助大量部署的傳感元件來監(jiān)控環(huán)境變量的智能系統(tǒng),近年來,其發(fā)展十分迅速,傳感器的嵌入式技術(shù)已經(jīng)成熟,已經(jīng)可以穿到身上,并且不會給穿戴者帶來不適[1,2]。
2002年P(guān)rof.Guang-Zhong Yang將WSN延伸,提出了體感網(wǎng)絡(luò)(BSN)的全新概念[3]。體感網(wǎng)絡(luò)基于無線傳感網(wǎng)絡(luò)的低功耗與實時性特性,只需使使用者穿上一些傳感元件,就可遠(yuǎn)程實時監(jiān)控穿戴者的狀況。
本文系統(tǒng)在錄制教練動作視頻的同時,同步地記錄教練標(biāo)準(zhǔn)動作的傳感器信息,使學(xué)員可通過無線通訊設(shè)備,同步地將連續(xù)動作的傳感器信息上傳到云端計算設(shè)備,進(jìn)行動作軌跡重建特征比對,并且同步回傳學(xué)員需要更正的錯誤動作,如圖1所示。
本文提出的系統(tǒng)其關(guān)鍵技術(shù)包括:初始化多運動傳感器的位置和傳感器之間同步、運動軌跡重建、拍攝視頻與運動傳感器信息同步、相似度比對等,以下章節(jié)將詳細(xì)描述。
圖1 系統(tǒng)示意圖
我們將初始化多運動傳感器位置和傳感器間同步,描述如下:
1)定義人體前方為X軸正向、左側(cè)為Y軸正向、上方為Z軸正向。
2)通過一個輸入裝置,如鍵盤、鼠標(biāo)來告知系統(tǒng)該學(xué)員的身高。
3)依據(jù)學(xué)員的身高,依照標(biāo)準(zhǔn)人體肢體比例來得知各肢體的長短,進(jìn)而推算各個運動傳感器在空間中的初始位置。
4)此外學(xué)員可以在動作開始前,利用一個致動方法,如按鈕、聲音、手勢等,告知運動學(xué)習(xí)系統(tǒng)利用無線通訊,如ZigBee、Bluetooth等方式,開始讀取運動傳感器的數(shù)值。
5)假設(shè)學(xué)員身上穿戴m個重力傳感器,開始讀取運動傳感器數(shù)值時,得到各個傳感器初始Tick的時間是{t1, t2, ..., tm},則之后記錄各個運動傳感器的傳感器信息其時間為(Ti-ti)×si,其中i=1...m, s代表每秒取樣數(shù)的倒數(shù)。
有些球類運動,如:高爾夫、網(wǎng)球等,相對于擊球力量,更重要的是能穩(wěn)定地?fù)舻角虿⒖刂魄虻姆较颉8郀柗蜻\動,為了在最少揮桿次數(shù)下達(dá)到最終進(jìn)洞的目標(biāo),擊球方向的穩(wěn)定性就非常重要,所以必須建立一個完美的揮桿,才能提高成功擊球的機(jī)率,以及更接近所想要達(dá)到的位置。因此,必須要有一套工具來反映出學(xué)員所揮擊的信息。我們在球桿的桿身上嵌入慣性傳感器,借此抓取球桿在移動過程中的物理信息,利用重力傳感器來獲取球桿移動的加速度狀況,陀螺儀來獲取球桿旋轉(zhuǎn)的角度變化狀況。
因此我們可以利用運動傳感器中的三軸重力傳感器(Triple-axis G-accelerometer sensor)、磁力計等,提供加速度、方位角等傳感器信息。接著,我們利用式(1),對上述傳感器信息進(jìn)行積分,參考運動傳感器的初始位置,就可以計算出運動傳感器在X、Y、Z每一軸向的位移量,并進(jìn)一步推算出運動傳感器的位置信息。
此外由于球桿旋轉(zhuǎn)和移動的過程中,傳感器本身坐標(biāo)也一直在變換,傳感數(shù)值沒有一個相同的參考坐標(biāo),會造成連續(xù)的數(shù)值沒有關(guān)聯(lián)性,因此我們必需將坐標(biāo)軸轉(zhuǎn)到同一個參考坐標(biāo),所以我們借助陀螺儀偵測的角速度乘上取樣時間得到角度變化,再依據(jù)角度變化得到轉(zhuǎn)換矩陣,利用這個轉(zhuǎn)換矩陣就可以把傳感器移動的狀況全部轉(zhuǎn)換到一開始揮桿的坐標(biāo)系,再進(jìn)行積分,推算出傳感器的位移信息,流程如圖2所示。
圖2 軌跡重建流程
為了使學(xué)員可以更為精確的學(xué)習(xí)動作的細(xì)節(jié),我們嘗試將動作的傳感器信息,嵌入教學(xué)視頻中,并基于視頻畫面速率和傳感器取樣率,使兩者記錄的信息,能夠達(dá)到時間同步的效果。此時的視頻與傳感器信息可以分別記錄在不同檔案,如AVI和XML檔中,或是將傳感器信息寫入于視頻檔案的字段中。舉一個例子來說,我們可以調(diào)整傳感器取樣率為視頻畫面速率的倍數(shù),如傳感器每秒取樣120次,而視頻的畫面速度為60fps。視頻和傳感器記錄的起始時間,都應(yīng)該將Tick值或是Timestamp值,轉(zhuǎn)換至同一個時間軸上表示,如式(2)所示:
假設(shè)傳感器讀到第一個傳感器信息的Tick值(t0)為52642,第二個傳感器信息的Tick值(t2)為52646,取樣率為120Hz,此時記錄的時間(TC)分別為0和0.03。同樣的,假設(shè)視頻第一張畫面的Timestamp為52646,第二張畫面的Timestamp為5238,每秒畫面速率為60,則此時記錄的時間(TC)則分別為0和0.03。
我們定義6個高爾夫揮桿的關(guān)鍵動作,包括帶、轉(zhuǎn)、移、放、跟、收的步驟:
帶:(上桿前期)將雙掌帶到右大腿前方的位置。手→手臂→肩膀→臀部。以上述順序帶動球桿,并且右手腕轉(zhuǎn)動至正前方;
轉(zhuǎn):(上桿后期)左肩旋轉(zhuǎn)至下巴下方,作出一個大幅度的上桿動作。手臂彎曲,上升至頂點時球桿與地面平行,且左手腕固定約90度角;
移:(下桿前期)右肩下沉,右肘帶到右肋下方,進(jìn)入“擊球準(zhǔn)備位置”,桿子約在腰帶上方;
臀部啟動下桿,手腕保持角度,展現(xiàn)系統(tǒng)的“鞭打效應(yīng)”,下桿前期順序:臀部→肩膀→手臂;
放:(加速期)手腕到達(dá)腰部之后到擊球。手腕在下桿前期所維持的角度做完全的釋放;
跟和收:(收桿前后期)這2個動作合為一個,視為一個收桿動作,從擊球完成到整個收桿動作結(jié)束。
再利用傳感器信息判斷出關(guān)鍵動作后,會產(chǎn)出一個視頻片段和傳感器信息的對應(yīng)表。此對應(yīng)表將記錄在哪一個時間點發(fā)生什么關(guān)鍵動作,可以是一個獨立的電子檔案,或是將傳感器信息寫入于視頻檔案的字段中,如圖3所示。
圖3 不同的視頻片段和傳感器信息對應(yīng)方法
在高爾夫運動中,揮桿的好壞有一些評比標(biāo)準(zhǔn),例如動作的時間節(jié)奏、桿頭揮動的軌跡與桿面位置、桿頭的速度和力量等,其中:
1)動作的時間節(jié)奏:揮桿必須要有節(jié)奏才打得出好球,揮桿動作雖然很短暫,但也要有一致的節(jié)拍,才有穩(wěn)定的球路及速度揮桿。Neal,Abernethy和Moran的研究中也指出新手以及專業(yè)球員在上下桿的時間分布上仍有不小的差異。新手球員在揮桿的時間分布中,上桿所占的時間從20%至60%不等[4]。相對來說,專業(yè)球員的上桿時間分布很密集的分布于70%上下。
2)桿頭揮動的軌跡和桿面的位置:揮桿時桿頭維持在一個圓的平面上,有如一個呼拉圈。揮桿時若離開這個平面,代表桿頭會時而在平面之上,時而在平面之下。這一點主要可以由軌跡進(jìn)行判斷,當(dāng)全部的揮桿資料都轉(zhuǎn)換回地球坐標(biāo)(Earth Frame)后,并且計算出每筆資料的位移,如此一來便可在同一個坐標(biāo)系統(tǒng)下,比較兩次揮桿間,其揮桿面的傾斜角度是否相同。
3)桿頭的速度及力量:參考桿頭的加速度資料進(jìn)行判斷,由于速度與力量成一正比關(guān)系,只要計算出桿頭各階段的加速度,即可知道使用者的力道是否正確。
4)各肢體部位動作先后的問題:借助將各部位的傳感器資料進(jìn)行分群,參考收集到的正確動作的分群時間軸,檢查學(xué)員的動作傳感器資料是否落在正確的分群當(dāng)中。
利用章節(jié)1.2介紹的運動軌跡特征描述方法,我們可以將標(biāo)準(zhǔn)的教練的三維運動軌跡參數(shù)描述為(ae,x,i,ae,y,i,ae,z,i,),而學(xué)員的運動軌跡參數(shù)為(al,x,i,al,y,i,al,z,i,)。我們可以定義一個動作相似度(Similarity),如式(3)所示:
其中動作相似度經(jīng)過正規(guī)化后,會介于0%~100%。假設(shè)教練運動軌跡為{(0,-45,130), (20,-45,120), (40,-40, 100)},而學(xué)員的運動軌跡是{(0,-40,125),(15,-40,120),(35,-35,105)},則相似度為88%。
在本實驗章節(jié)中,我們將對多運動傳感器的同步結(jié)果、軌跡繪制與不同肢體在時間軸上的動作相對時間進(jìn)行討論。
如圖4所示,首先在運動傳感器同步的實驗中,我們將兩個運動傳感器重疊擺放,之后同時給傳感器一短暫振動,如此以來,兩個傳感器的數(shù)值波形應(yīng)該是同時發(fā)生,且同時結(jié)束,但是從圖的前兩張可很清楚地看到,傳感器1以及傳感器2的開始時間明顯有段差距。經(jīng)過同步后,傳感器2的時間軸會向傳感器1的時間軸對齊,從第三張可以清楚看出兩個傳感器的波形已經(jīng)完全吻合。
利用章節(jié)1.2的軌跡重建技術(shù),我們可以繪制出學(xué)員的揮桿軌跡,如圖5所示,為兩次揮桿的軌跡,學(xué)員可以自行檢查單次揮的上下桿軌跡是否位于同一個平面上,亦可以比較某一次的揮桿軌跡,使學(xué)員可以自行修正動作錯誤。
圖4 多傳感器同步實驗
圖6比較兩次揮桿是否在同一平面,我們以十項資料做分析,依據(jù)上述高爾夫揮桿動作分解中的起桿以及下桿順序,對傳感器資料的分布做合理群聚分析。我們可明顯看出在上下桿的起始動作上,手腕和腰部的動作時間點會有明顯的群聚現(xiàn)象,加上配合上述高爾夫球動作解析中的起桿以及下桿順序,即可為本次揮桿動作進(jìn)行評分。
圖5 比較兩次揮桿是否在同一平面
本文設(shè)計了一個基于云計算的高爾夫運動訓(xùn)練平臺,使學(xué)員可以避免花費大筆資金去聘請教練和購買高端學(xué)習(xí)設(shè)備,學(xué)院可通過3G或Wi-Fi可隨時連接云端系統(tǒng),進(jìn)行動作姿勢比對。在實驗章節(jié)中,我們討論系統(tǒng)中的核心關(guān)鍵技術(shù),包括運動傳感器位置初始化與同步、軌跡繪制與討論不同肢體動作在時間軸上的相對時間,以驗證技術(shù)的可行性。
圖6 不同肢體動作的相對時間分布圖
[1] 楊靖, 熊偉麗, 等.無線傳感器網(wǎng)絡(luò)中基于蟻群算法的路由算法[J].計算機(jī)工程, 2009, 35(6): 4-6 .
[2] 樊俊青, 趙麗華, 等.基于網(wǎng)絡(luò)分簇的WSN能量感知路由協(xié)議[J].計算機(jī)工程, 2010, 36(10): 108-109.
[3] 車力軍, 孫峰.3G時代體感游戲的發(fā)展思考[J].電信技術(shù),2011, 25(11): 55-58.
[4] 范旭東.現(xiàn)代高爾夫運動的發(fā)展趨勢: 從貴族走向平民[J].體育科技文獻(xiàn)通報, 2012, 18(1): 123-124.