吳楠,錢晉武,沈林勇,趙凌
(上海大學機電工程與自動化學院,上海 200072)
步態分析的研究和應用從19世紀末攝影技術剛興起時就開始發展,迄今已有 100多年的歷史,但是真正進入臨床實用階段只有10多年的時間。步態分析是指在康復評定、訓練與治療的過程中,客觀、定量地評定人體步行功能,全面反映患者的康復功能狀態,可為顱腦損傷、中樞及周圍神經系統損傷及骨關節病損的患者制定康復治療方案及評定康復療效,提供客觀的手術方案以及用于評定術后療效等[1]。
步態信息包含了比較全面的人體運動信息,將這些肢體宏觀運動從目前定性的語言描述轉化定量的數字化描述,就能夠準確地反映肢體運動時的細節變化和區別[2],通過科學的方法可以實現微小病理性步態的早期發現和鑒別。
Kinect 是微軟開發的體感設備,主要用于捕捉人體骨骼結構,以此實現以身體作為控制器的構想。近年來,基于Kinect體感設備的人體動作識別在醫學領域表現出巨大的應用價值,國內外很多機構都在開展相關研究[3]。Hu RZ等人在學步車上安裝 Kinect 用來提取腿信息從而進行醫療步態分析[4]。Shotton等人利用Kinect 獲得的深度信息檢測人體的關節點,利用隨機森林分類器將深度圖像像素分類為身體的多個部位[5]。Schwarz等人則結合人體解剖學標記和人體骨架模型,并利用Kinect 獲得深度圖對人體進行全身的姿勢估計等[6]。醫療專家也將其帶入到醫療康復當中,利用 Kinect 進行康復治療,可以有效地增強康復的質量,幫助患者恢復運動功能的同時也提高了患者的心理素質[7-8],探究了Kinect采集的數據用于步態分析的表現。這些研究均證明了Kinect設備在步態采集方面應用的可行性[9-10]。
使用Kinect進行步態數據采集時,單個設備的采集距離較短,獲得的步態周期有限,很難對步態特征進行分析,而新一代Kinect無法實現一臺計算機同時連接多臺設備。本研究提出了一種基于局域網通信協議,實現多臺計算機分別連接Kinect,同步進行步態采集、坐標標定以及數據融合的新方法,解決了如何延長采集距離的問題,并證明能夠獲得足夠的步態周期來進行步態特征的提取。
本實驗采用的設備有:兩臺Kinect 2.0(見圖1),兩個三角支架,兩臺計算機以及一個人體模型。第二代Kinect較第一代精度更高,數據更穩定,支持獲取全身25個關節點的三維坐標值,見圖2。在步態采集中,我們主要關注下半身關節點:髖關節、膝關節與踝關節。

圖1 Kinect2.0
通過Kinect2.0性能測試,配置實驗環境見圖3。Kinect放置高度1.0 m;為了不阻擋行走路線,攝像頭與行走方向成45°夾角,且與行走路線橫向相距1.0 m;兩臺Kinect相距1.5 m。
系統的實驗方案分為3個過程:

圖2 人體骨架關節點
(1)首先建立多臺計算機局域網通信,通過設置服務器與客戶端,連接兩臺計算機,實現多臺設備同時啟停;
(2)對固定的人體模型進行一次數據采集,標定設備坐標,結合加權整體最小二乘法[11],得到兩臺Kinect之間的位姿關系;
(3)對被測者進行多次步態采集,結合兩設備之間的關系,融合不同攝像頭采集到的步態數據。

圖3 實驗環境示意圖
Kinect2.0具有對人體骨骼識別以及跟蹤精度高的特點,但每臺設備必須配有一臺計算機,一臺計算機不能同時連接多臺設備。要求不同計算機的數據采集軟件具有通訊功能,實現同時控制多臺設備,開發數據采集軟件的界面見圖4。
系統的數據采集流程主要包括建立通訊、采集和數據的傳輸,見圖5。

圖4 Kinect步態采集軟件
系統啟動后,首先初始化系統參數,設定Kinect深度幀分辨率、幀率等,建立起不同計算機之間的局域網通訊。方法是在同一個無線局域網內建立起TCP/IP協議,利用socket進行通訊[12]。當為服務器與客戶端的計算機啟動采集軟件之后,客戶端進入等待服務器命令的模式,隨時進行采集數據或停止。

圖5 數據采集流程
采集階段需啟動兩臺Kinect設備,執行數據采集:采集開始時,同時向兩設備發送命令,進行采集人體骨骼關節點的三維坐標,采集結束,則將不同計算機數據發送到作為服務器的1號計算機,以供進行數據融合。
兩臺Kinect數據融合之前,由于兩設備處在不同一個坐標系下,見圖6,1號Kinect為目標坐標系,2號Kinect為源坐標系,需將不同數據統一在1號設備的坐標系下[13]。兩個坐標系之間的關系可以通過擺放示意圖得到,考慮到擺放設備時存在偏差,以及攝像頭俯仰角的偏差,無法精確得到轉換矩陣,需進行標定坐標系。
坐標系轉換的目的是為得到兩臺Kinect的系統坐標系之間的關系,利用不同坐標系下的公共點求得轉換矩陣T,將不同設備采集到的數據統一在同一坐標系下,以便后面進行數據融合與處理。

圖6 兩臺Kinect坐標系
系統對人體模型采集一組關節點數據,見圖7。這組數據具有穩定的特征,可以使用這些點對轉換矩陣進行求解。取其中6個關節點的坐標(左右髖關節,左右膝關節和左右踝關節),利用通用整體最小二乘算法,求得轉換矩陣。
算法分為五個步驟[11]:
(1)對坐標轉換模型建立函數映射關系。
Y+VY=μR(A+VA)+1n[ΔxΔyΔz]
(1)
式中Y、A為在兩坐標系中的準確值,V_Y、V_A為兩坐標系可能存在的誤差,n為坐標點數6,R為旋轉矩陣(含有α1、α2、α3三個參數),μ表示尺度參數,這里為1,1n為n×1的元素為1的向量,[ΔxΔyΔz]表示平移向量。
(2)將模型中系數矩陣的隨機量與坐標轉換參數同時作為待估計參數,則描述為:
(2)

(3)坐標轉換的EIV 模型可表示為非線性的GM 模型。
l+V=f(β)
(3)

(4)上式的整體最小二乘最優估計可表示為以下最優化問題。
min(VTWV)=(f(β)-l)TW(f(β)-l)
(4)
式中W表示觀測值l的一般性權陣。其梯度即一階偏導項
(5)
(5)根據非線性最優化理論,可以采用多種方法求解模型參數的最佳估值,這些方法均為非線性估計的基本方法[14]。本研究采取擬牛頓法進行求解βc,可以得到轉換矩陣T。

(6)
經過以上步驟,利用在兩個坐標系下的6個公共關節點坐標求得轉換矩陣。
按照圖3實驗環境示意圖,搭建起實際的實驗平臺見圖7。對被測者進行多次數據采集實驗,圖8顯示為不同設備同時進行數據采集的畫面。
利用轉換矩陣T,將兩臺Kinect數據轉換在1號設備坐標系下,然后進行融合不同設備的數據。數據融合的方法很多,可根據Kinect深度圖像建立起多模型來進行數據融合方法[15];可通過設置不同設備的權值,來實現重合數據部分的融合。

圖8 軟件運行顯示
本實驗采用數據拼接的方法。由于兩臺設備同時采集,所以數據的時間軸是統一的,那么采集到的兩組數據可以分為3個部分(圖9粗線表示該次實驗的時間軸,所有數據被虛線分為3個部分):
(1)在1號設備采集范圍,不在2號設備范圍,僅1號設備采集到數據。
(2)同時在1號、2號設備采集范圍,二者均能采集到數據。

圖9 不同設備數據流
(3)越過1號設備,在2號設備采集范圍,僅2號設備采集數據。
我們數據融合的對象在第二個階段,數據重合的部分。當兩設備均采集數據時,被測者位置距1號設備近,2號設備遠。
常用方案根據與設備距離的不同,設定此時不同設備數據在總數據中占有的比例。但據資料顯示,Kinect的精度與距離并不是線性的關系,而是隨著距離的增大,精度減小較多[16]。加權融合法并不適用,因為距離較遠的Kinect數據的融入,會增大另一Kinect的誤差。在時間軸對齊的前提下,采用數據拼接的方案:當1號設備數據失真后,采用2號設備的數據替代和補充,見圖10。

圖10 融合不同設備數據流
在坐標系標定實驗中可以采集到兩設備關于6個關節點的三維坐標數據,見表1、表2。Kinect的坐標系方向見圖1,通過6個關節點坐標,經加權整體最小二乘法求得轉換矩陣T。

表1 六個關節在1號Kinect中坐標(mm)

表2 六個關節在2號Kinect中坐標(mm)
數據融合以右髖關節為例,結合轉換矩陣T。圖11表示進行坐標系變換和數據融合前,右髖關節的Z坐標值在不同坐標系下的變化。圖12表示2號設備數據利用矩陣T經坐標變換后,與1號數據融合的結果,Z坐標可以完整的延續下來,兩組數據可靠地融合在了一起,可以達到要求的連續性以及完整性。同時,以左膝關節為例,融合后關節角度變化的曲線見圖13。
關于Kinect2.0數據精度的問題,有研究對Kinect1.0與VICON運動捕捉系統進行對比[17],測試Kinect的精度,證明其可以進行步態分析。本實驗對Kinect2.0與OptotrakCertus運動捕捉儀進行了對比測試。以左膝關節的角度變化為例,見圖14,本系統獲得的數據與運動捕捉儀在精度上有一定的差距,但是在Kinect的數據中,仍然可以提取步態特征。

圖11 兩設備右髖關節Z坐標

圖12 右髖關節Z坐標融合數據

圖13 左膝關節角度融合數據

圖14 Kinect與運動捕捉儀數據對比
Kinect數據中包含著步態的特征,后續的提取步態特征研究中,利用AR模型功率譜估計算法,對普通步態與模擬患者步態(步態中增加抖動)數據進行分析。對膝關節角度變化處理后的兩種步態曲線見圖15,普通步態的第一個峰值縱坐標均為20以下,模擬患者步態的均為30左右,特征比較明顯。

圖15 功率譜密度曲線
進行步態數據的采集已有大量的相關研究,Kinect 作為一種新型深度傳感器,可以快速獲取大量的深度數據,用其進行采集步態具有明顯的優勢:體型小巧易于操作,相比傳統的運動捕捉儀系統價格便宜,同時又能進行步態的分析。
本研究重點探討了利用多臺Kinect步態采集系統的方法,彌補其檢測范圍有限的缺點。通過配置局域網通訊以及數據融合,成功獲得了完整的步態數據,將采集步態周期從3~4個增加到7~8個。實驗中使用了兩臺Kinect設備,如果要進一步延長采集距離,可以以此為基礎添加更多的設備,同時此方法為以后的步態特征分析提供了數據基礎。