王 蔚 馮亞琴 楊再興 王曉燕
(南京師范大學教育科學學院,南京,210097)
人體重心是反映人體形態(tài)結構和質量分布特征的基本參數(shù),在體育運動和醫(yī)療康復等領域有著重要的作用,因此人體重心的測量具有重要的學術和應用價值[1]。人體重心的測量方法主要有測力板法、穿戴設備和影像解析法[2]。測力板法是利用力傳感器計算出人站在測力臺上的壓力中心[3],它可以提供較精確的重心位置測量,如文獻[3]中為提高靈敏度設計了一種用于人體靜態(tài)平衡研究的多維力傳感器的測力臺, 并對Footscan 壓力平板測試系統(tǒng)的重復性和可靠性進行了研究。但測力板設備體積較大不便攜帶,測量范圍受到測力板面積的局限。穿戴設備法主要依據(jù)足底的重力傳感器,根據(jù)靜力學中的力矩平衡方程式進行重心位置的二維坐標測量,可提供靈活的運動測量范圍[4]。如文獻[5]提出了一種基于應變式壓力傳感器的可穿戴設備的重心計算方法,能由穿戴者的足底力準確地測量計算出相應的實時重心位置,但是穿戴設備設備較為昂貴,重心測量的精度也有待改善,難以獲取人體豎直方向的重心位置,影響了其推廣。
隨著影像測量在體育科學研究中的廣泛應用,影像解析法逐漸被重視。影像解析法即從運動技術的相片或錄像中獲取人體環(huán)節(jié)重心或關節(jié)點坐標位置,依據(jù)人體通用模型測定人體重心,可大致分為分析法(又稱力矩合成法)[6]和合成法,其中應用較廣泛的是分析法,通常對錄像解析法不作區(qū)分時指的就是該方法。分析法依據(jù)重心坐標公式,通過身體各環(huán)節(jié)相對重量和各環(huán)節(jié)重心位置計算獲得人體重心位置[7]。若向計算機輸入的是人體各環(huán)節(jié)中心點的坐標,該方法需要通過各環(huán)節(jié)中心坐標計算出環(huán)節(jié)重心坐標,顯然增加了不必要的計算,于是文獻[8]中介紹了乘系數(shù)法,該方法的計算過程更加簡便迅速,在下文中將給出詳細介紹。錄像解析法過度依賴于人體通用模型,采用不同的人體通用模型往往得出不同的重心位置,且相對于測力臺法和重心板法的誤差較大,但卻可以通過計算估計人體三維重心坐標。此外,隨著技術的發(fā)展,還出現(xiàn)了使用運動捕捉[9]設備獲得人體運動生物力學數(shù)據(jù)并以此得到重心的方法。例如:文獻[10]通過獲取的人體環(huán)節(jié)重心結合力矩合成法獲得重心的坐標位置;文獻[11]認為人體的密度是均勻的,并認為身體的體積中心就是人體的重心。但這些方法通常依賴于精密而昂貴的設備,實施起來比較復雜,如Optotrak Certus和Vicon的光學動作捕捉系統(tǒng)(8 Vicon MXF40 cameras)等。Kinect體感交互設備是微軟發(fā)布的一種典型的紅綠藍(Red green blue, RGB)帶深度測度的光學傳感器[12-13],現(xiàn)已被應用于醫(yī)療康復和運動訓練等領域,使用Kinect提供的人體關節(jié)點坐標位置可以獲取人體重心,如文獻[14]使用Kinect設備提供的20個關節(jié)點坐標通過力矩合成法獲取人體三維重心坐標;文獻[15]結合Optotrak Certus設備對Kinect獲取的重心進行驗證,其中計算重心的方法為力矩合成法;文獻[16]利用單臺Kinect對人體進行高精度、個性化建模。但Kinect提供的數(shù)據(jù)為關節(jié)點中心坐標而非環(huán)節(jié)重心坐標,研究問題需要解決實時捕捉人體的重要關節(jié)點,并將關節(jié)點計算環(huán)節(jié)重心坐標,進一步利用環(huán)節(jié)重心計算人體重心。
本研究的目的是針對以上重心測量方法,尋找一種利用Kinect提供的關節(jié)點坐標位置,快速、動態(tài)地獲得人體重心三維坐標位置,并且計算方便快捷、具有擴展性的重心計算方法。本文利用FootScan獲取到的壓力重心數(shù)據(jù)對其可用性和準確性進行驗證。
力矩合成法是在獲得身體各關節(jié)中心坐標值的基礎上,將其乘上相應的系數(shù),其乘積總和即為人體總重心的坐標值[8]。依據(jù)4種有關人體重心的資料得出每種資料下的乘系數(shù)法人體重心計算公式的系數(shù)。該系數(shù)是二維空間坐標系下的系數(shù),人體重心坐標為
(1)
(2)
式中:xi,yi為環(huán)節(jié)重心坐標;Pi為環(huán)節(jié)重量;P為人體重量。
圖1 人體關節(jié)點 Fig.1 Human body joints
根據(jù)人體環(huán)節(jié)慣性參數(shù)應用時的一般原則,忽略統(tǒng)計模型、性別和民族的差異,并且目前人體運動環(huán)節(jié)慣性參數(shù)的測量應用中還忽視了人體左右側發(fā)展的不平衡,這為筆者提供了繼續(xù)深入研究的可能性。結合Kinect設備和具體實驗環(huán)境,選擇目前使用較普遍的由德國資料得出的系數(shù)作為本研究中乘系數(shù)法的系數(shù)。計算人體重心位置的公式為
Gpos=∑ki*Ji
(3)
式中:Gpos表示重心位置;Ji表示人體某環(huán)節(jié)的位置;ki表示該環(huán)節(jié)對應的系數(shù)。
由于利用體感交互設備Kinect可以直接獲取人體25個關節(jié)點的坐標信息,所以使用力矩合成法的改進方法“乘系數(shù)法”進行線性累和的方法計算重心,相較于力矩合成法省去了通過關節(jié)點坐標計算環(huán)節(jié)重心坐標的計算過程,減少了重心計算步驟,節(jié)約了計算時間,更有利于實時獲取重心的目標。本研究選擇目前使用較普遍的由德國人體重心資料提供的關節(jié)系數(shù)構建人體重心計算模型,該模型共包含19個人體關節(jié)點。然而,利用Kinect獲取的人體25個關節(jié)點并不能與系數(shù)合成法中的關節(jié)點一一對應,具體表現(xiàn)在:
(1)通過Kinect無法獲取腳跟的坐標,但是其提供了腳掌(Foot left,F(xiàn)oot right)和腳踝(Ankle left,Ankle right)的坐標。在Kinect的3D坐標系中,腳跟的水平方向(X和Y方向)的坐標與腳踝相同,豎直方向(Z方向)的坐標與腳掌相同,那么腳跟的坐標就可以由腳掌和腳踝的坐標獲得。
(2)通過Kinect可以獲得手掌、手指和大拇指的坐標,但只需要手的重心坐標,所以要求被試者握拳使3個關節(jié)點盡可能相近,這樣得到的手(Hand left,Hand right)的坐標作為手重心的坐標。另外,如脖子(Neck)、脊柱中點(Spine mid)等關節(jié)點均未使用。
利用Kinect獲取的人體關節(jié)點和構建力矩合成法模型后的人體各模塊點的中心點如圖1所示,該模型中的人體各模塊點及其對應系數(shù)見表1。根據(jù)Kinect的采集數(shù)據(jù)計算得到的人體重心的X和Y方向值分別為
(4)
(5)
式中:ki為表1中的對應系數(shù);Xi(t)和Yi(t)分別為人體構建模型后各模塊中心位置的X和Y坐標分量;Xc和Yc為由Kinect數(shù)據(jù)計算出的人體重心的X和Y坐標位置分量。
圖2 Kinect追蹤的三維關節(jié)點 Fig.2 3D skeleton joints tracked by Kinect
受試對象為3名課題小組成員1男2女,年齡25,26歲,無明顯平衡及相關的肌肉神經疾病,健康狀況良好。
2.2.1 Kinect
所采用的第二代Kinect體感交互設備(Kinect for Windows v2 sensor)是一臺集成RGB攝像頭和紅外攝像頭的光學傳感器[15],能夠為本研究提供人體關節(jié)點的三維坐標信息。各關節(jié)點在人體中的位置如圖2所示。采樣頻率為30 Hz,但實際應用中的采樣頻率并不十分精確,通常在30 Hz左右。
2.2.2 Footscan平板壓力測試系統(tǒng)
采用Footscan(一米板)平板壓力測試系統(tǒng)所提供的壓力中心(Center of force,COF)數(shù)據(jù)作為本研究的標準數(shù)據(jù),對Kinect下利用乘系數(shù)法得到的重心數(shù)據(jù)進行驗證。Footscan平板壓力測試系統(tǒng)的特點是具有較高的采樣頻率(最高達500 Hz,本實驗采樣頻率為30 Hz)和較大的作用面積(1 m板和2 m板),現(xiàn)已被廣泛的用于生物力學測試。
被試者裸足站在Footscan平板上,并將Kinect正對被試者放置于高度為25 inch(約63.5 cm)的Kinect 2.0三角支架上,使被試始終在視野范圍內。實驗開始時,兩臺儀器同時記錄采集到的數(shù)據(jù),并保存到計算機中。為了比較 Kinect 在不同幅度動作下測量重心的準確性,設立大幅動作、小幅動作和靜止站立動作實驗。在實驗中被試者在保持站立的姿勢下,最大幅度向四周作自由運動,要求保持全身挺直且雙腳不能挪動。
本實驗只考慮了與身體平行的左右方向(X方向)和與身體垂直的前后方向(Y方向)的坐標位置。由于Footscan只能提供X,Y兩個方向的坐標數(shù)據(jù),所以無法對人體高度的豎直方向上進行討論。
2.4.1 基于Kinect 的關節(jié)數(shù)據(jù)處理和重心計算
在Kinect的25個關節(jié)點中,并沒有提供腳跟的坐標位置,所以并不是所有的關節(jié)都能與乘系數(shù)法中的關節(jié)作到一一對應,但是其提供了腳掌(Foot left,F(xiàn)oot right)和腳踝(Ankle left,Ankle right)的坐標位置。在實驗中人體直立、運動不劇烈的情況下,腳踝的彎曲程度較小,可以認為在Kinect的3D坐標系中,腳跟的X和Y方向的坐標與腳踝相同,豎直方向的坐標與腳掌相同,即腳跟的坐標可由腳掌和腳踝的坐標獲得。由式(3)根據(jù)Kinect獲得的關節(jié)位置計算出重心位置。
圖3 不同插值法比較 Fig.3 Comparison of different interpolation methods
2.4.2 插值法選取
由于兩設備采樣頻率不同,計算時Kinect采集到的重心數(shù)據(jù)時間序列Kt不一定與Footscan采集到的重心數(shù)據(jù)時間序列Ft的采樣值全部對應,因此需要利用插值法估算Kt在對應時刻的取值。利用Matlab插值工具箱中的一維插值函數(shù),該函數(shù)包含4種基本的插值方法:三次樣條插值、最近項插值、線性插值和立方差值。不同插值法比較如圖3所示,圖中最近項插值和線性插值的光滑性較差,而立方插值在部分區(qū)域插值后的擬合效果較差(特別是在t∈[50,80]處),所以選用三次樣條插值法[21]進行計算。
2.4.3 時序數(shù)據(jù)曲線
Footscan的壓力測試系統(tǒng)由RSscan公司官方的數(shù)據(jù)采集軟件提供,而Kinect的數(shù)據(jù)采集程序由筆者開發(fā)。由于兩者分立于兩個系統(tǒng),所以需要額外的人工操作,在數(shù)據(jù)采集過程中無法做到絕對同步,兩者數(shù)據(jù)采集時刻存在一定的先后差異,約0~3 s。
基本思路:設置采集時刻差異下限tmin和上限tmax,即兩設備開始采集的時刻差Δt,滿足:tmin≤Δt≤tmax,然后固定Ft,移動Kt,每次移動步長為1 ms,移動距離i(i∈[tmin,tmax] ),利用三次樣條插值法獲得Kt對應Ft時刻的坐標位置估值,然后求Ft和Kt在對應時刻的距離并累加,得到對應時刻的距離之和Di,最后對所有的Di排序,最小值所對應i即時差Δt的取值,可表示為
(6)
Δt=min(Di)→i
(7)
圖4—6為在3組動作下分別測得的兩設備的重心軌跡示例,其中動作1為頭、肩及軀干部位各向幅度較大的動作,動作2為身體前傾的動作,動作3為裸足靜止站立時的動作。
從圖中可以看出,兩時間序列所繪制的圖形整體走勢趨于相似,但在部分區(qū)域存在較大差異。如圖4的(a,b),兩時間序列整體趨勢相似,但在時間t∈[1.2×104ms,1.9×104ms]時,Kt與Ft出現(xiàn)了較大差異,可能是由于Kinect對動作幅度較小的關節(jié)活動不敏感造成的,這一點在圖5(a)中同樣可以看到,Kt的曲線要較Ft更平滑一些,但整體趨勢仍然基本一致??梢奆ootscan提供的重心要比Kinect
圖5 動作2的重心變化曲線
圖6 動作3的重心變化曲線
Fig.6 Center of gravity change curve of action 3
利用乘系數(shù)法求得的重心更敏感。由于動作2為身體前傾的動作,所以其Y方向的運動幅度要大于其X方向的運動幅度(約6倍)。
3組動作的的多個指標參數(shù)具體如表2所示。從表2可以看出,在靜止狀態(tài)和較小幅度動作變化的X方向上,基于Kinect的系統(tǒng)與平衡儀Footscan結果相比,均方根誤差均小于7 mm,而在大幅動作和小幅動作的Y方向上,運動范圍較大,均方根誤差也較大,約33±3 mm。雖然幅度較大的動作和方向上表現(xiàn)為較大的均方根誤差,但是相對誤差卻較小,這與上述在靜止性動作中的觀察結果是吻合的,動作幅度雖小,相對誤差卻大。另外,從皮爾森相關系數(shù)(Pearson correlation coefficient)中可以看出,所有動作均呈現(xiàn)出線性正相關關系且相關系數(shù)較高,小幅動作X方向的相關系數(shù)0.5 表2 各動作參量 從前述分析看,本研究中的兩時間序列(Kt,F(xiàn)t)為同源信號,由不同設備采集得到,在進行協(xié)整檢驗之前,需首先對兩個序列進行單位根檢驗,最常用的檢驗方法為增強單位根(Augmented Dickey-fuller, ADF)檢驗。若ADF檢驗結果表明兩序列都是d(d>0)階單整的,才可以繼續(xù)進行協(xié)整關系判定。 對兩個序列的原序列和一階差分序列的單位根檢驗結果如表 3所示。由表3可知,3組動作的Kt和Ft都是一階單整序列,所以可以進一步檢驗其協(xié)整性。首先用OLS方法對Kt和Ft進行靜態(tài)回歸,并計算非均衡誤差,即有 表3 ADF單位根檢驗結果 (8) (9) 其中系數(shù)a,b的對應參數(shù)值可由OLS估計獲得,具體結果如表4所示。圖7為動作3在Y方向利用OLS擬合后的結果。使用ADF檢驗殘差序列μt,結果如表5所示。圖8為動作3在Y方向的殘差序列。從結果可以看出,動作2在X方向的殘差序列非平穩(wěn),即認為此處的Kt和Ft不具有協(xié)整關系,其他序列的判斷結論均為平穩(wěn),即認為Kt和Ft具有協(xié)整關系。 表4利用OLS估計所得參數(shù) Tab.4ParametersobtainedfromOLS 序列XYabab動作10.855 3-17.355 90.992 126.934 1動作21.384 2-1.652 81.516 31.058 1動作32.254 8-1.305 21.886 8-1.305 8 表5殘差序列ADF檢驗結果 Tab.5ADFtestresultsofresidualseries 序列ADF檢驗值XY5%顯著水平P值XY判斷結論XY動作1-2.39-2.19-1.940.016 50.027 5平穩(wěn)平穩(wěn)動作2-1.44-2.65-1.940.139 40.008 3非平穩(wěn)平穩(wěn)動作3-4.91-3.28-1.940.001 00.001 1平穩(wěn)平穩(wěn) Fig.8 Residual error in action 3-Ydirection 如表4, 5所示,當動作幅度減小時,參數(shù)a增大,到動作3的靜止動作時,Kt約為Ft的2倍,造成這種現(xiàn)象的原因可能是Kinect對肢體末端(如手、腳跟和腳踝等)的識別精確度較低,在靜止狀態(tài)下,肢體末端關節(jié)點的識別誤差被凸顯了出來??梢?,目前利用Kinect的乘系數(shù)法合成重心的方法更適合較大動作幅度時的重心軌跡測量。 本研究利用Kinect提供的關節(jié)點位置信息通過乘系數(shù)法合成人體重心,并與Footscan平板壓力測試系統(tǒng)提供的壓力重心進行比較,發(fā)現(xiàn)該方法測量人體重心具有相似的結果,尤其在幅度較大的運動測量中,相對誤差更小。在傳統(tǒng)的乘系數(shù)法中,各方向的系數(shù)相同,并且X和Y方向的系數(shù)相差不大,由此認為仍可以使用該系數(shù)計算豎直方向的重心位置。 本文中使用的乘系數(shù)法作為一種計算量更小、更實時的重心計算方法,由于需要采用特定的人體模型降低了重心計算的精確性,同時由于Kinect自身以及硬件系統(tǒng)的局限性使人體部分關節(jié)點位置在某些情況下出現(xiàn)較大的誤差,從而進一步影響了乘系數(shù)法的性能。下一步擬充分利用Kinect提供的25個關節(jié)點數(shù)據(jù)得出更個性化、更準確的系數(shù)。4 結束語