鄭麗
(成都理工大學工程技術學院,四川樂山 614007)
人體運動姿態的準確分析與預測可以為運動訓練提供有效的數據支撐。通過獲取人體運動的相關數據,結合標準數據庫數據矯正運動員動作的細節,能夠達到提高運動員運動水平的作用。
隨著計算機科技的不斷進步,人工智能技術逐漸成熟。深度神經網絡(DNN)可以自動學習數據特征,從而發現稀疏與分布式的大數據特征[1],但最新卷積技術仍不能直接應用于捕獲人體運動數據。為了捕獲人體運動數據,卷積濾波器需要覆蓋人體關節的整個范圍,以便卷積僅在時間方向上發生。文中提出了一個具有瓶頸的全連接網絡,該網絡可以在給定先前幀的情況下,學會預測未來的移動幀,并訓練人類運動的時間編碼器[2]。
為取得準確的人體運動數據,文中基于IMU 核心傳感器、Arduino 嵌入式開發板為數據采集器,設計了一套人體運動數據采集系統。DMP 是IMU 設備獨特的硬件功能,能夠從傳感器讀數計算四元數數據。IMU 直接從輔助傳感器獲取數據,允許嵌入式處理器處理傳感器融合數據,而無需系統應用處理器的干預[3]。
文中基于處理語言開發了MPU6050 IMU 監視程序。通過DMP 將加速度計與陀螺儀獲得的原始數據相融合,隨后從四元數表示中提取歐拉角信息以計算IMU 的偏航、俯仰、橫滾運動[4]。該軟件首先從XBee Pro 中獲取方向值,再使用人體各個部位的長度和取向值計算IMU 的相對位置[5]。
文中測量人體關節運動狀態的核心傳感器為兩組IMU 傳感器[6]。由于來自IMU 的加速度原始數據包含大量未過濾的噪聲,且在短時測量中容易因波動而出現顯著誤差。因此,關節運動數據并非直接來自于對IMU 加速度的積分,文中基于人體關節的形狀,開發了基于人體運動分析的IMU 相對運動數據處理算法。
文中使用步進電機保證IMU 數據的準確性。其使用的步進電機NEMA 23 YH57BYGH56-401A 規格如下:步進角為1.8°,控制精度為±5%;額定電流為2.8 A;相電阻為0.9 Ω,控制精度為±10%;相電感為2.5 mH,控制精度為±10%;保持扭矩為1.2 N·m。
為了保持最小的軸徑向和軸向游隙,將小于450 g 的轉子盤連接到步進電機。在驗證IMU 測量的角速度數據時,使用精度相對較高的步進電機進行的實驗,更加可控且可靠性高。將IMU 安裝在轉子盤上進行測試,Arduino Uno R3 用于控制速度以及測試過程中步進器移動的步數。
人體運動分析設備被開發,用于分析人體關節運動,因此,需測試其在測量人體關節運動中的準確性。
將人體運動分析裝置戴在肩膀上,兩個IMU 分別放在大臂和小臂上。在測試期間,受試者被要求放下手并反復彎曲肘部5 次;然后,將手伸直到平面中的原始位置。在對象移動的同時,使用人體運動分析設備收集運動數據,采用GoPro Hero 3 設備在2D 平面上記錄了有效照片分辨率為12 M、像素和幀速率為47 fps 的高分辨率視頻;最后,對視頻進行后期處理。
使用運動分析軟件MaxTRAQ 2D 進行分析,以分析肘部的運動。MaxTRAQ 2D 是基于視頻的運動跟蹤軟件,可用于從標準AVI 視頻文件中提取運動學特性。通過手動與自動跟蹤,用戶可以逐幀查看角度、點之間的距離等。
借助開發的Arduino Uno R3 程序,計算機可以從兩個IMU 接收偏航角、俯仰角和側傾角值,使用獲得的值實時模擬IMU 的方向,并設計軟件實時顯示[7]。在該軟件中,長方體用于表示IMU,其中長方體的不同側面具有不同的顏色,以便用戶可以區分方向。表1 顯示了與IMU 軸相對應的側面顏色。

表1 顏色與IMU軸對應關系
該軟件在程序中將IMU 表示為兩個立方體,并使用人體的肢體結構顯示人體關節的運動。左側的長方體用于模擬第一個IMU 的方向,右側的長方體用于模擬第二個IMU 的方向。偏航、俯仰和橫滾的數值顯示在軟件的上部,以便準確跟蹤IMU 的方向。
為實現以2D 方式顯示IMU 與人體關節的運動,對該軟件進行了改進,以更準確地表示人體各部位和關節在所有軸上的運動。使用兩個IMU 的方向計算IMU 傳感器之間的相對運動狀況。
第一節中基于嵌入式系統獲取準確的速度與角速度等信息,是為了準確識別運動數據的規律。該節建立基于時間編碼的模型,以準確識別人體運動模式[8]。文中使用了識別模型的3 個變體:對稱編碼S-TE、時間尺度編碼C-TE 和結構編碼H-TE[9]。
選取笛卡爾空間中的Mocap 骨架,即在時間t處的幀由ft=[fx,i,t,fy,i,t,fz,i,t]i=1:Njoints,其中Njoints為關節數目。
為了標準化模型,將關節角度轉換為標準化人體模型的笛卡爾坐標。關節位置以坐標系的原點為中心,在保留骨骼全局旋轉的同時,忽略平移[10]。
在Δt個時間窗口內可確定連接到矩陣Ft:(t+Δt-1)=[ft,ft+1,…,ft+Δt-1]中的數據集。該數據集由每個時間步長t∈[Δt,(T-Δt-1)]的輸入幀窗口F(t-Δt+1):t與輸出幀窗口F(t+1):(t+Δt)組成,其中T是采樣時間長度。
編碼-解碼框架用于計算高維輸入數據到低維圖形上的投影,并基于該投影預測輸出數據[11]。給高維輸入數據x∈?N經自動編碼器進行優化,如式(1)所示。

其中,編碼器y=g(x)將輸入數據映射到低維空間y∈RM,N>M,而解碼器x^=f(y)映射回輸入空間x^ ∈RN,函數f和g用對稱的多層感知器表示[12]。
該系統中使用了一種替代方法,以捕獲人體運動數據的時間相關性,而不是人體姿勢的靜態表示。令x∈RN為時間t的觀測值,時間編碼器的優化函數如式(2)所示。

式中,編碼器y=g(X(t-Δt+1):t)將輸入數據映射到低維空間y∈RM,(N×Δt)>M,解碼器=f(y)∈RN×Δt用于映射回數據空間[13]。
該應用中,輸入和輸出矩陣的尺寸為3×Njoints×Δt,編碼器將輸入數據映射到低維空間y∈RM,(3×Njoints×Δt)>M,解碼器映射回數據空間。
文中使用了3 種不同的時間編碼器結構:對稱編碼、時標編碼和層次編碼,如圖1 所示。

圖1 編碼結構
對稱結構如圖1(a)所示,遵循自動編碼器原則[14]。由于解碼器是編碼器的鏡像版本,因此,可以將解碼器視為編碼器倒數的近似值,即對稱時間編碼器(S-TE)。
時間刻度編碼如圖1(b)所示。由于可以在不同的時間尺度上描述人體運動,因此,可以將該屬性明確引入時間編碼器[15]。對于給定的窗口大小Δtw,卷積濾波器的大小為3×Njoints×Δtw,其中3 表示笛卡爾空間x、y和z中的3 個維度。輸入數據與不同大小的過濾器卷積,這些卷積層的輸出通過編碼器-解碼器的方式使用octree 結構層級聯,以便進一步處理。
層次結構編碼如圖1(c)所示。人體用樹狀結構圖來表示,其中的節點由各個關節組成,分別與人體相應肢體的節點相連。樹狀結構由L層組成,其中每個層l∈[0,L-1] 由Nl個節點組成,每個父層l∈[1,L-1]連接到其子層k=l-1。第l層中的節點i和第k層中的節點j間鏈路為ξ{(l,i),(k,j)}。
將這些節點建模為單一前饋節點,底層中的每個節點均從單個關節接收輸入[16],即N0=Njoints。隨后這些節點由代表肢體的父級連接,若關節i屬于肢體j,則ξ{(0,i),(1,j)}=1;否則,ξ{(0,i),(1,j)}=0,直到單個節點代表整個主體為止。單層用作臨時編碼器的輸入,該臨時編碼器與樹形圖同時訓練。
文中開發了用于Arduino的程序,以從InvenSense MPU 6050 IMU 的DMP 中獲取信號,從而通過XBee Pro 無線串行通信將信號發送至計算機。嵌入式DMP 位于IMU 內,可從主機處理器分流運動處理算法的計算。DMP 從加速度計和陀螺儀獲取數據,并提供集成的運動融合輸出。為了顯示、繪制XBee 接收到的數據,基于處理語言開發了一個計算機程序,以使用串行通信端口讀取數據[17-18]。
將實驗被測人員放置在4 個kinect 攝像頭之間,使用定制軟件記錄被測人員的軀干運動。使用來自校準步驟的變換矩陣,將4 個攝像機的每幀圖像拼接在一起,可以獲得一組3D 點云信息,通過比較每幀處的點云,可以從中精確推演出被測人員的動作變化。為了推演人員動作變化,使用Geomagic Studio 2012 計算創建的集合宏數據。
綜上所述,實驗數據的記錄與推演步驟如下:加載從定制軟件導出的每個點云、構建3D 網格、填充網格、使用網格診斷工具對網格進行平滑處理。為保證對身體運動的準確分析,需對分析范圍進行限制,即在初始圖像周圍放置一個邊界框,將volume 計算限制在人體軀干領域內。
實驗獲取的數據庫包含144個不同主體的2 235個記錄,這些主體執行各種各樣的復雜動作。由于眾多記錄的采樣率為120 Hz,而其他記錄則以60 Hz 采樣,因此,將以前的試驗采樣降至60 Hz。為了進行評估,使用預處理過的H3.6M數據集,以100幀,1 660 ms的時間窗來訓練當前模型。
圖2 中給出了激發H-TE 中間層中多個單元的平均姿勢。為了降低噪聲,其僅在S 型單元的輸出超過0.8 時才考慮姿勢和網絡活動。

圖2 多個單元的平均姿勢
文中將整個動作序列進行分類,而不是將單個運動序列進行分類。將3 種模型(S-TE、C-TE 和HTE)的預測能力與最近提出的ERD 分類預測算法進行比較,如表2 所示。

表2 分類誤差比較
這些模型均經過了H3.6M 數據集的記錄訓練。將采樣頻率降低到25 Hz,并將關節角度轉換為指數圖。當時間窗口大約涵蓋1 660 ms 時,循環網絡將初始化為40 幀,相當于1 600 ms。對于每個動作,均使用單獨的預訓練遞歸模型。
盡管LSTM3L 在初始預測方面的表現優于文中的某些模型,但時間編碼器C-TE 在160 ms 或更長時間的預測中表現出了更優的性能。因為人體動作是一個復雜的非平穩動作,所以循環網絡難以做出短期預測,該模型卻能夠推斷未來的預測框架。在大多數預測中,對稱時間編碼器S-TE 和卷積時間編碼器CI-TE 優于分層時間編碼器H-TE,這表明結構先驗對運動預測是有益的。通過混合編碼的方式減少了對特定動作微調的預測誤差,且能對原始訓練數據中未包含的動作進行有效的分類與預測。
文中在采集人體運動數據的基礎上,提出了一種用于人類運動特征學習的時間編碼器方案,既可以用作生成模型又可以用作特征提?。徊⑻岢隽? 種解決此問題的方法。由于該結構可以直接在特征上進行動作分類而無需進行微調,提高了對人體運動特征分析的準確性和魯棒性。
文中系統基于高性能的GPU 運算,如何將該系統移植到普通設備,并保證系統的穩定運行將是下一步的工作重點。