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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

圖11 兩設備右髖關節(jié)Z坐標

圖12 右髖關節(jié)Z坐標融合數(shù)據(jù)

圖13 左膝關節(jié)角度融合數(shù)據(jù)

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

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