吳天強 袁學俊 胡文慶



摘要:針對目前人體動作捕捉系統采集節點數量少、動作采樣精細度不足、成本高等問題,設計一套基于MEMS慣性傳感器的47節點人體動作捕捉系統。該系統通過在人體關節部位佩戴傳感器節點,實時采集關節部位的精細運動數據;運動數據匯聚后通過Wi-Fi發送至上位機進行數據處理與姿態再現,從而實現手勢識別、碰撞檢測、物體交互等功能。經實驗測試,該系統能夠正確采集人體姿態數據,驅動虛擬人運動,具有采集數據節點多、動作精細、實時性強等特點,可應用于動漫、虛擬現實、影視、體感游戲等領域。
關鍵詞:慣性傳感器;動作捕捉;人體姿態;手勢識別;碰撞檢測;物體交互
中圖分類號:TP212.9 文獻標志碼:A文章編號:1674-2605(2023)03-0006-06
DOI:10.3969/j.issn.1674-2605.2023.03.006
Human Motion Capture System Based on Inertial Sensor
WUTianqiangYUANXuejunHUWenqing
(Guangdong Institute of Artificial Intelligence and Advanced Computing, Guangzhou 510535, China)
Abstract: A 47 node human Motion capture system based on MEMS inertial sensors is designed to solve the problems of the current human Motion capture system, such as the small number of acquisition nodes, the insufficient precision of motion sampling, and the high cost. The system collects real-time fine motion data of joints by wearing sensor nodes on the joints of the human body; After the motion data is gathered, it is sent to the upper computer through Wi Fi for data processing and pose reproduction, so as to achieve Gesture recognition, collision detection, object interaction and other functions. The experimental test shows that the system can correctly collect human body posture data and drive the movement of Virtual humans. It has the characteristics of multiple data collection nodes, fine action, and strong real-time, and can be applied to animation, virtual reality, film and television, and somatosensory games.
Keywords:inertial sensor; motion capture; human body posture; gesture recognition; collision detection; object interaction
0 引言
近年來,隨著虛擬現實(virtual reality, VR)[1-2]、計算機視覺等人工智能技術的發展,智能驅動的數字人開始嶄露頭角,動作捕捉技術也迎來重大革新。慣性動作捕捉是基于慣性傳感器的動作捕捉系統,不受時間和空間的限制,可持續不斷地采集人體各部位的實時運動信息[3-4]。微機電系統(micro-electromechanical system, MEMS)慣性傳感器因體積小、重量輕,可方便地佩戴在人體的不同部位,常用于人體慣性動作捕捉系統。
目前,人體慣性動作捕捉系統大都是在人體不同的關節部位固定傳感器來采集人體動作,再利用無線通信、姿態解算算法、人體三維重建等技術組成系統[5]。該系統存在數據采集節點數量少、無法重現手部精細動作、缺少物體交互功能等問題。
本文在傳統的人體17個關節點動作捕捉系統的基礎上增加手指關節點,設計基于MEMS慣性傳感器的人體47個關節點動作捕捉系統,用于識別全身動作,特別是雙手手指精細動作。
1 系統總體設計
基于慣性傳感器的人體動作捕捉系統主要由慣性傳感器數據采集設備、數據傳輸設備、數據接收設備和數據處理設備3部分組成,如圖1所示。
慣性傳感器數據采集設備利用MEMS慣性傳感器的三軸加速度計、三軸陀螺儀和三軸磁力計采集人體姿態數據(加速度、角速度和磁通量數據);采集的人體姿態數據由數據傳輸設備通過Wi-Fi[6]經由數據接收設備(路由器)發送給數據處理設備(計算機);數據處理設備通過對人體姿態數據進行濾波、降噪、姿態解算等處理,實現人體關節三維模型的節點綁定、姿態再現、手勢識別、碰撞檢測、物體交互[7-8]等功能。
2 系統硬件設計
基于慣性傳感器的人體動作捕捉系統的硬件組成如圖2所示。
本系統選用ICM20948九軸慣性傳感器來實現人體姿態數據的采集,該傳感器集三軸加速度計、三軸陀螺儀和三軸磁力計于一體。為解決傳統的人體17個關節點動作捕捉系統無法采集手部精細動作的問題,本文在基于慣性傳感器的人體動作捕捉系統的基礎上設計了動作捕捉手套。在傳統動作捕捉系統僅在手背安裝一個傳感器的基礎上新增15個傳感器,即每根手指上安裝3個傳感器,一只動作捕捉手套共安裝16個傳感器,雙手加上人體其他部位的15個傳感器共安裝了47個ICM20948九軸慣性傳感器。
數據傳輸設備主要包括XC7Z020嵌入式系統、Wi-Fi模塊、路由器等。XC7Z020嵌入式系統采用ARM+FPGA SOC技術將雙核 ARM Cortex-A9和現場可編程門陣列(fieldprogrammablegatearray,FPGA)集成在一顆芯片上,減小了系統尺寸,提高了微控制單元(microcontroller unit, MCU)與FPGA間數據的交互速率。XC7Z020嵌入式系統先把并行的47個ICM20948九軸慣性傳感器采集的數據進行匯聚打包,再通過Wi-Fi模塊、路由器傳輸至計算機進行后期處理。本系統的47個ICM20948九軸慣性傳感器共用一組SPI時鐘、片選、數據輸入鏈路,而47個慣性傳感器的數據輸出則單獨連接至FPGA,可實現單個慣性傳感器的數據傳輸速率為傳感器芯片支持的最高速率7 Mb/s,發揮了傳感器芯片的最佳性能,提供了更高的采樣率、更低的時延等。
為減少高速數據線之間的信號干擾,提高數據的傳輸質量,在47個慣性傳感器之間、慣性傳感器與FPGA之間均采用屏蔽線進行對接。采取插拔形式的接口實現各分支SPI線與SOC模塊間的連接,并對SPI信號采取緩沖等措施,避免信號反射振鈴等問題。
系統使用鋰電池供電,搭配相應的電源管理電路,如充放電電路、DC-DC電源轉換電路等,為系統提供必需的電壓。
3 系統軟件設計
基于慣性傳感器的人體動作捕捉系統設計了自上而下的模塊化軟件架構,對動作捕捉手套的數據獲取、校準等基本功能進行封裝,并在此基礎上實現與常用物體的交互功能,提高了通信效率,且可復用于各模塊。基于慣性傳感器的人體動作捕捉系統的軟件主要由DLL模塊、基礎功能模塊、狀態識別模塊、交互功能模塊等組成,框架如圖3所示。
3.1? DLL模塊
DLL模塊采用C++編寫,在Visual Studio下編譯,在Unity上實現DLL調用,進行數據轉換,輸出Unity SDK。DLL模塊主要負責與硬件通信、姿態估計、傳感器校準[9]等功能。
3.1.1? 硬件通信
系統程序上電后,在局域網內進行UDP廣播;DLL模塊通過UDP廣播發現系統硬件設備后發送UDP包進行響應;嵌入式系統收到響應后,嵌入式程序與上位機建立FTP連接,通信程序流程如圖4所示。
3.1.2? 姿態估計
本系統利用DLL模塊通過自定義的數據協議獲取傳感器的原始數據,并使用姿態估計算法計算姿態的四元數[10],同時對數據進行重新編號,避免硬件改動時影響上層數據的編號。姿態估計算法流程圖如圖5所示。
姿態估計算法流程如下:
1)原始數據讀取。通過自定義數據協議可以分別獲取三軸加速度計、三軸陀螺儀和三軸磁力計的原始數據。
2)姿態角計算。通過對三軸加速度計、三軸磁力計的原始數據進行三角函數變換,可分別得到第一個旋轉角度 :
對三軸陀螺儀獲取的原始數據進行積分,可得到第二個旋轉角度 :
3)四元數轉換歸一化。四元數可看作為一個多維向量,既可以表示物體的旋轉,也可以表示物體當前的姿態,還可以簡化計算機處理的難度,故采用四元數作為姿態數據的處理手段。四元數能夠將歐拉角表示方法中的多次旋轉等效為繞某一轉軸旋轉一定的角度來表達。設等效軸的方向向量為? ,繞等效軸旋轉的角度為θ。計算2個旋轉角度的正弦值和余弦值,分別代入四元數轉化公式,計算得到四元數 :
此時得到的四元數不是單位四元數,需進行歸一化處理。單位四元數 需滿足 。首先,計算四元數的模值;然后,將四元數除以模值即為歸一化,模值計算公式為
4)球面線性插值。ICM20948九軸慣性傳感器采集的數據并非為連續數據。為使姿態數據更加平滑,利用球面線性插值進行數據平滑,進而求得平滑后的四元數 。
3.1.3? 傳感器校準
傳感器校準功能主要由上位機軟件實現,包括陀螺儀歸零、磁強計尺度歸一化和正交化、磁場干擾檢測等。校準數據通過硬件數據讀寫功能儲存在硬件上。
3.2? 基礎功能模塊
基礎功能模塊封裝了系統的基本功能,使用戶不需要知道硬件細節、通信過程和具體調用方法,即可實現調用DLL模塊接口、骨骼綁定、姿態對齊、硬件狀態獲取等功能。
3.3? 狀態識別模塊
狀態識別模塊主要實現碰撞檢測、手勢識別等功能。
3.3.1? 碰撞檢測
碰撞檢測是檢測2個物體是否相交。如果物體規則,如球體,可直接檢測圓心距離是否小于半徑和;如果物體不規則,則用簡單球體去趨近網格。
3.3.2? 手勢識別
手勢識別過程如下:
1)利用ICM20948九軸慣性傳感器獲取人體的角速度、加速度和磁通量數據,通過姿態估計算法得到每根手指上各個傳感器的姿態位置;
2)利用手勢識別算法提取5個指尖到指根及掌心的10個距離 ,其中,5個指尖到指根的距離分別為 ;5個指尖到掌心的距離分別為 ;
3)通過統計20個不同的人手樣本,測量在各種手勢下(抓、捏、張開等),指尖到指根及掌心的10個距離的平均值 ;
5)根據測量值和實測結果,對每種手勢預先設置經驗閾值 ,若 ,則判斷手勢識別成功。
3.4? 交互功能模塊
物體交互功能主要通過手勢識別和碰撞檢測實現抓取、附著和釋放物體。在物體上添加標簽,注明相應的屬性,表示是否可以被抓取。檢測到抓或捏的手勢時,通過檢查其標簽屬性,確定手部物體是否為可抓取的物體。若是,則附著到手上,物體的位置和姿態跟隨手部一起變化;若不是,則不執行附著操作。檢測到張開手勢時,釋放手中的物體。
4 系統測試
首先,測試人員穿戴好手套,綁好身體其他部位的所有關節點傳感器,保證與三維軟件的虛擬人同姿態;然后,開啟系統電源,對基于慣性傳感器的人體動作捕捉系統進行初始化、校正系統誤差;最后,根據上位機軟件的提示進行傳感器定位校準,即可同步顯示測試人員與虛擬人的姿態動作,測試效果如圖6所示。
由圖6可知,測試人員和虛擬人的姿態幾乎完全一致,驗證了基于慣性傳感器的人體動作捕捉系統設計的正確性與有效性。
5 結論
本文利用ICM20948九軸慣性傳感器設計了一套人體動作捕捉系統,采用模塊化的兼容性設計,可對手指、手臂及全身動作進行姿態捕捉。該系統具有精確定位的能力,最多支持人體47個關節動作數據的采集,精確至每個手指關節,可單獨捕捉手部、手臂、腿部、上半身等動作數據,也可融合使用;支持室內外不同場景,不受影棚環境、光線或者遮擋的影響。該系統可應用于仿真訓練、運動康復、影視游戲、虛擬直播、機器人遙操作等場景。下一步將采用性能更高的芯片,改進手勢識別算法,并對其進行大樣本的訓練,以選擇更有效的特征參數,提高人體動作的識別效率和正確率;優化系統設計,采用全無線節點的設計方案,提高系統的靈活性及實時性。
參考文獻
[1] ZHANG T, WANG J, XU L, et al. Fall detection by wearable sensor and one-class SVM algorithm[J]. Lecture Notes in Control & Information Sciences, 2006, 345:858-863.
[2] 李強,趙文彬,莫新民,等.虛擬現實技術在武器裝備研制中的應用研究[J].機電工程技術,2020,49(6):122-123;159.
[3] 楊成,冉冀,吳鐘.基于九軸慣性傳感器的人體動作捕捉系統[J].上海電氣技術,2017,10(4):1-8.
[4] 陶幸.基于IMU的人體動作捕捉方法研究[D].南京:南京郵電大學,2023.
[5] 張澤宇.基于微慣性傳感器的姿態捕捉系統設計[J].自動化博覽,2017(3):85-88.
[6] 侯學輝.基于無線傳輸技術的慣性動作捕捉系統研究與設計[D].濟南:山東大學,2016.
[7] 容志能.慣性運動捕捉系統中傳感數據的傳輸與處理[D]. 杭州:浙江大學,2012.
[8] TAO G, SUN S, HUANG S,et al.Human modeling and real-time motion reconstructionfor micro-sensor motion cap- ture[C]. IEEE International Conference on Virtual Environ- ments, Human-Computer Interfaces and Measurement Sys- tems Proceedings. IEEE, 2011:1-5.
[9] 徐渤.四元數體上的矩陣分解[D].長沙:國防科學技術大學, 2007.
[10] KANG C W, YOO Y M, PARK C G. Performance improve- ment of attitude estimation using modified Euler angle based Kalman filter[J]. Journal of Institute of Control, Robotics and Systems, 2008,14(9):881-885.
作者簡介:
吳天強,男,1985年生,工學學士,助理工程師,主要研究方向:人工智能。E-mail: tianqiang.wu@giaiac.cn
袁學俊,男,1995年生,工學學士,主要研究方向:人工智能。E-mail:xuejun.yuan@giaiac.cn
胡文慶(通信作者),男,1992年生,工學碩士,工程師,主要研究方向:智能傳感。E-mail: wenqing.hu@giaiac.cn