潘婉蘇,李曉風,許金林,李皙茹,程龍樂
(1.中國科學院 合肥物質研究院,安徽 合肥 230026;2.中國科學技術大學,安徽 合肥 230031)
人體運動姿態的準確解算是人體運動行為辨識與理解的基礎,其在人機交互、康復醫學及體感游戲等研究領域扮演著十分重要的角色。而人體運動非常復雜,受到很多內在因素或者外在環境的影響,如生理、人體結構、環境等。目前研究人體姿態識別的方法主要基于兩種識別[1]:基于圖像分析的人體姿態識別[2]和基于運動傳感器的人體姿態識別[3]。基于圖像分析的識別方法能清晰看見人體運動姿態,準確性高,但對設備要求較高,應用場景特殊且不便攜帶[4-6]。但基于運動信號并加以識別具有更好的實時性、適用性。隨著MEMS技術和無線傳感器網絡技術的快速發展,運動傳感器逐漸微型化、智能化,由加速度傳感器、陀螺儀和磁阻傳感器組成的慣性測量模塊被廣泛應用于姿態識別[7-9]。Li等在靜態環境下利用體域網系統采集多組加速度信號,提出了1種基于DS證據理論的數據融合算法[10],對人體常見的4種基本姿勢進行識別(坐姿、站姿、平躺、蹲坐),但無法動態跟蹤人體姿態。
針對上述問題,文中提出了一種基于MEMS慣性傳感器的行為活動方式反演系統,由MEMS慣性傳感器感測人體行為數據,通過無線通信模塊,將采集的信息交由終端進行運算處理,使用量化的姿態數據作為輸入數據,重建身體的運動狀態模型,反演出人體行為狀態并即時反饋給用戶。系統跟蹤記錄人體一天或長時期的活動狀,用以評估用戶的能量消耗和能量代謝當量,在人體運動能耗的檢測領域有廣泛的應用前景。
利用MEMS傳感器感測人體運動信號,把采集到的數據隨機分為訓練樣本和測試樣本,對其進行加窗、平滑、濾波等歸一化處理。由于采集的原始數據信息比較多(包括加速度、角速度、磁場、氣壓、角度等),計算也會變得越來越復雜,空間維數也會越來越高,影響了識別效果。因此,利用主成分分析法[11](principal components analysis,PCA)對數據進行降維處理,再把運動信號數據依次送入姿態解算模塊、特征提取模塊和選擇模塊,具體的工作流程如圖1所示。

圖1 系統測量流程
其中系統姿態解算模塊利用四元數法來表示旋轉角度和方向,求解姿態角,并通過四元數微分方程更新四元數的方式來更新姿態角。解算出的數據經過特征提取模塊,提取后的特征向量送入選擇模塊,選擇后的特征向量可作為表征相關運動特點的訓練樣本。系統通過分類模型對樣本數據進行訓練,最后獲得可用于行為分類的參考模型。再以訓練完成的參考模型為基礎,采用KNN分類算法將未知樣本與參考模型進行逐一匹配計算,匹配程度最高的模型類別即被認為是該未知樣本的所屬類別,也就是識別結果。系統跟蹤記錄人體一天或是長時期的運動信號,最終反演出人體行為軌跡。
人體運動狀態反演系統分為數據采集模塊、數據處理模塊、顯控模塊和無線通信模塊。系統通過MEMS慣性傳感器MPU9250感測出身體運動信號,該信號經濾波調理電路后進入微處理器STM32,通過自帶的A/D轉換器,將模擬信號轉換成數字信號,微處理器負責將采集到的信息進行數據分析處理,通過藍牙通信模塊把數據上傳到云平臺中進行存儲,另一方面微處理器給顯控模塊發送控制指令執行相應操作。系統總體結構框圖如圖2所示。

圖2 系統總體架構
文中采用的核心處理器是基于高性能ARM Cortex-M4 32位RISC內核的超低功耗微控制器(MCU)STM32L4xx器件,工作頻率高達80 MHz。Cortex-M4內核具有單精度浮點單元(FPU),支持所有ARM單精度數據處理指令和數據類型。它還實現了全套DSP指令和存儲器保護單元(MPU),加強了應用安全。
文中選擇用于感測人體行為信號的模塊是MEMS慣性傳感器MPU9250,該模塊集成三軸加速度傳感器,三軸陀螺儀和三軸地磁計,解決了三軸加速度傳感器中存在的Z軸漂移問題,性能穩定可靠。同時內部集成高精度的卡爾曼濾波姿態融合算法[12],并將經緯度、高度、航向、速度等信息數據傳輸到終端。
系統分為兩部分,一部分是底層信息采集,另一部分是信息處理中心。底層信息采集是基于MEMS慣性傳感器進行人體運動信號的采集,采集的原始信號波形如圖3所示。

(a)加速度曲線

(b)角速度曲線

(c)角度曲線
傳感器通過I2C通信,把采集到的數據發送到信息處理中心。信息處理中心基于STM32微處理器接收數據并匹配使其重新組合成準確的信息,通過基于四元數的互補濾波算法進行數據姿態解算,求出一個包含載體全部姿態信息的3*3矩陣,通過計算姿態矩陣可以得出所需要的全部的姿態信息,如俯仰角θ(pitch)、航向角φ(yaw)和橫滾角γ(roll),根據氣壓信息求出海拔高度,耦合得到目標人體的運動信息。對運動信息進行長時間的跟蹤測量,分析云端數據服務器存儲的數據,反演人體一天甚至更長時間的行為活動方式。
系統選擇四元數法進行姿態解算分析[13]。四元數可以描述一個坐標系或一個矢量相對某一個坐標系的旋轉,其標量部分表示了轉角的一半余弦值,而其矢量部分則表示瞬時轉軸的方向、瞬時轉動軸與參考坐標系軸間的方向余弦值[14]。因此,一個四元數既表示了轉軸的方向,又表示了轉角的大小。利用四元數姿態矩陣微分方程式求解4個一階微分方程式組,這種方法比方向余弦姿態矩陣微分方程式計算量明顯減少,同時能滿足工程實踐中對實時性的要求,彌補通常描述剛體角運動的3個歐拉角參數在設計控制系統時的不足。所以利用四元數法將加速度傳感器、地磁計和陀螺儀的數據進行融合,解算出θ、γ和φ[15-16]。
具體解算步驟如下:
(1)確定初始四元數(q0,q1,q2,q3),采用二階龍格庫塔法對四元數標量部分與矢量部分進行實時計算;
(2)確定姿態矩陣,由四元數轉換成姿態矩陣中的幾個元素,如式1:
QT=
(1)
(3)計算人體姿態角,用這幾個元素轉換為歐拉角,最終求出姿態角,計算公式為:

(2)
系統采用最簡單有效的KNN分類算法[17-19],利用測量不同特征值之間的距離方法進行分類。KNN分類算法依賴距離判別計算一個點A與其他所有點之間的距離,取出與該點最近的K個點,然后統計這K個點中所屬分類比例最大的,則點A屬于該分類。該系統先進行受試者訓練樣本數據的采集,根據所屬類別判斷訓練樣本數據的類別。再將試驗樣本中的待分類樣本與訓練數據進行比較,先計算待分類樣本與已知類別的訓練樣本之間的距離,找到距離與待分類樣本數據最近的K個鄰居,即選取與當前待分類樣本數據距離最小的K個點,統計前K個鄰居中4種類別(坐、躺臥、行走和跑步)的樣本出現的頻率,然后返回最近的K個鄰居的多數類別作為當前類別的預測分類。
為驗證系統測試的準確性,選取64名實驗者,男性志愿者32名,女性志愿者32名,年齡分布在21~60歲之間。志愿者按年齡段分為四組,分別為20~30歲,30~40歲,40~50歲和50歲以上,其中每組16名志愿者,男性志愿者和女性志愿者各8人。以上志愿者通過問卷的形式確認他們無慢性疾病及心血管疾病。讓實驗者佩戴檢測裝置,讓他們分別完成4種動作:坐、躺臥、行走,跑步。每種行為的持續時長全部大于4分鐘,數據采集完成后,首先提取信號特征,并對這些數據信息進行分類,作為訓練樣本集。再記錄志愿者1天,15天,30天的活動情況進行后續的統計分析。從實驗樣本集中提取一名實驗者(男,26歲)的運動信息進行分析,如表1所示。發現隨著時間的增加,樣本數據量有所增加,測量值與實際值較為接近。

表1 識別結果分析
采用適當的問卷方法,記錄64名志愿者30天的實際運動狀況。把實驗者日常運動狀況和該運動反演系統測試結果進行對比,以評估系統準確性。由表2可知,隨著時間的增加,系統測量相對準確度有所提高,其中靜坐的準確性達到了96.7%,長時間的躺臥的準確性達到了99.97%。而且通過該表發現,男女之間的運動識別準確度差別不是很明顯,說明系統對性別沒有十分嚴格的要求,同一種運動情況,每個年齡段的準確度存在一定的差別,但誤差小于1%,關于這個原因,還有待進一步研究。故該系統的總體精度較高,具有很大的可實施性,評估結果可以代表該實驗者的運動習慣,并且可以根據對受試者的運動習慣分析反演出人體行為方式。

表2 識別結果準確性對比 %
文中設計了基于MEMS慣性傳感器便攜式人體運動反演系統,集成了高性能ARM4和低功耗的STM32L4xx器件,并結合MEMS慣性傳感器芯片MPU9250,具有測量準確、功耗低的特點。對系統所用的硬件系統和人體運動識別檢測算法進行了系統分析和驗證,并在實驗中對比了男女性別、年齡因素對系統的差異。該系統為人體運動識別提供了技術基礎,實現了對人體行為方式的反演和評估,使用戶通過可穿戴式智能設備更加全面、及時、專業地感知自身運動狀況成為可能。最后,系統將進一步改進算法,構建運動方式與能量代謝當量的關系模型,實現對用戶動態能量消耗的檢測。