吳天強(qiáng) 袁學(xué)俊 胡文慶
摘要:針對(duì)目前人體動(dòng)作捕捉系統(tǒng)采集節(jié)點(diǎn)數(shù)量少、動(dòng)作采樣精細(xì)度不足、成本高等問(wèn)題,設(shè)計(jì)一套基于MEMS慣性傳感器的47節(jié)點(diǎn)人體動(dòng)作捕捉系統(tǒng)。該系統(tǒng)通過(guò)在人體關(guān)節(jié)部位佩戴傳感器節(jié)點(diǎn),實(shí)時(shí)采集關(guān)節(jié)部位的精細(xì)運(yùn)動(dòng)數(shù)據(jù);運(yùn)動(dòng)數(shù)據(jù)匯聚后通過(guò)Wi-Fi發(fā)送至上位機(jī)進(jìn)行數(shù)據(jù)處理與姿態(tài)再現(xiàn),從而實(shí)現(xiàn)手勢(shì)識(shí)別、碰撞檢測(cè)、物體交互等功能。經(jīng)實(shí)驗(yàn)測(cè)試,該系統(tǒng)能夠正確采集人體姿態(tài)數(shù)據(jù),驅(qū)動(dòng)虛擬人運(yùn)動(dòng),具有采集數(shù)據(jù)節(jié)點(diǎn)多、動(dòng)作精細(xì)、實(shí)時(shí)性強(qiáng)等特點(diǎn),可應(yīng)用于動(dòng)漫、虛擬現(xiàn)實(shí)、影視、體感游戲等領(lǐng)域。
關(guān)鍵詞:慣性傳感器;動(dòng)作捕捉;人體姿態(tài);手勢(shì)識(shí)別;碰撞檢測(cè);物體交互
中圖分類(lèi)號(hào):TP212.9 文獻(xiàn)標(biāo)志碼:A文章編號(hào):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 引言
近年來(lái),隨著虛擬現(xiàn)實(shí)(virtual reality, VR)[1-2]、計(jì)算機(jī)視覺(jué)等人工智能技術(shù)的發(fā)展,智能驅(qū)動(dòng)的數(shù)字人開(kāi)始嶄露頭角,動(dòng)作捕捉技術(shù)也迎來(lái)重大革新。慣性動(dòng)作捕捉是基于慣性傳感器的動(dòng)作捕捉系統(tǒng),不受時(shí)間和空間的限制,可持續(xù)不斷地采集人體各部位的實(shí)時(shí)運(yùn)動(dòng)信息[3-4]。微機(jī)電系統(tǒng)(micro-electromechanical system, MEMS)慣性傳感器因體積小、重量輕,可方便地佩戴在人體的不同部位,常用于人體慣性動(dòng)作捕捉系統(tǒng)。
目前,人體慣性動(dòng)作捕捉系統(tǒng)大都是在人體不同的關(guān)節(jié)部位固定傳感器來(lái)采集人體動(dòng)作,再利用無(wú)線(xiàn)通信、姿態(tài)解算算法、人體三維重建等技術(shù)組成系統(tǒng)[5]。該系統(tǒng)存在數(shù)據(jù)采集節(jié)點(diǎn)數(shù)量少、無(wú)法重現(xiàn)手部精細(xì)動(dòng)作、缺少物體交互功能等問(wèn)題。
本文在傳統(tǒng)的人體17個(gè)關(guān)節(jié)點(diǎn)動(dòng)作捕捉系統(tǒng)的基礎(chǔ)上增加手指關(guān)節(jié)點(diǎn),設(shè)計(jì)基于MEMS慣性傳感器的人體47個(gè)關(guān)節(jié)點(diǎn)動(dòng)作捕捉系統(tǒng),用于識(shí)別全身動(dòng)作,特別是雙手手指精細(xì)動(dòng)作。
1 系統(tǒng)總體設(shè)計(jì)
基于慣性傳感器的人體動(dòng)作捕捉系統(tǒng)主要由慣性傳感器數(shù)據(jù)采集設(shè)備、數(shù)據(jù)傳輸設(shè)備、數(shù)據(jù)接收設(shè)備和數(shù)據(jù)處理設(shè)備3部分組成,如圖1所示。
慣性傳感器數(shù)據(jù)采集設(shè)備利用MEMS慣性傳感器的三軸加速度計(jì)、三軸陀螺儀和三軸磁力計(jì)采集人體姿態(tài)數(shù)據(jù)(加速度、角速度和磁通量數(shù)據(jù));采集的人體姿態(tài)數(shù)據(jù)由數(shù)據(jù)傳輸設(shè)備通過(guò)Wi-Fi[6]經(jīng)由數(shù)據(jù)接收設(shè)備(路由器)發(fā)送給數(shù)據(jù)處理設(shè)備(計(jì)算機(jī));數(shù)據(jù)處理設(shè)備通過(guò)對(duì)人體姿態(tài)數(shù)據(jù)進(jìn)行濾波、降噪、姿態(tài)解算等處理,實(shí)現(xiàn)人體關(guān)節(jié)三維模型的節(jié)點(diǎn)綁定、姿態(tài)再現(xiàn)、手勢(shì)識(shí)別、碰撞檢測(cè)、物體交互[7-8]等功能。
2 系統(tǒng)硬件設(shè)計(jì)
基于慣性傳感器的人體動(dòng)作捕捉系統(tǒng)的硬件組成如圖2所示。
本系統(tǒng)選用ICM20948九軸慣性傳感器來(lái)實(shí)現(xiàn)人體姿態(tài)數(shù)據(jù)的采集,該傳感器集三軸加速度計(jì)、三軸陀螺儀和三軸磁力計(jì)于一體。為解決傳統(tǒng)的人體17個(gè)關(guān)節(jié)點(diǎn)動(dòng)作捕捉系統(tǒng)無(wú)法采集手部精細(xì)動(dòng)作的問(wèn)題,本文在基于慣性傳感器的人體動(dòng)作捕捉系統(tǒng)的基礎(chǔ)上設(shè)計(jì)了動(dòng)作捕捉手套。在傳統(tǒng)動(dòng)作捕捉系統(tǒng)僅在手背安裝一個(gè)傳感器的基礎(chǔ)上新增15個(gè)傳感器,即每根手指上安裝3個(gè)傳感器,一只動(dòng)作捕捉手套共安裝16個(gè)傳感器,雙手加上人體其他部位的15個(gè)傳感器共安裝了47個(gè)ICM20948九軸慣性傳感器。
數(shù)據(jù)傳輸設(shè)備主要包括XC7Z020嵌入式系統(tǒng)、Wi-Fi模塊、路由器等。XC7Z020嵌入式系統(tǒng)采用ARM+FPGA SOC技術(shù)將雙核 ARM Cortex-A9和現(xiàn)場(chǎng)可編程門(mén)陣列(fieldprogrammablegatearray,F(xiàn)PGA)集成在一顆芯片上,減小了系統(tǒng)尺寸,提高了微控制單元(microcontroller unit, MCU)與FPGA間數(shù)據(jù)的交互速率。XC7Z020嵌入式系統(tǒng)先把并行的47個(gè)ICM20948九軸慣性傳感器采集的數(shù)據(jù)進(jìn)行匯聚打包,再通過(guò)Wi-Fi模塊、路由器傳輸至計(jì)算機(jī)進(jìn)行后期處理。本系統(tǒng)的47個(gè)ICM20948九軸慣性傳感器共用一組SPI時(shí)鐘、片選、數(shù)據(jù)輸入鏈路,而47個(gè)慣性傳感器的數(shù)據(jù)輸出則單獨(dú)連接至FPGA,可實(shí)現(xiàn)單個(gè)慣性傳感器的數(shù)據(jù)傳輸速率為傳感器芯片支持的最高速率7 Mb/s,發(fā)揮了傳感器芯片的最佳性能,提供了更高的采樣率、更低的時(shí)延等。
為減少高速數(shù)據(jù)線(xiàn)之間的信號(hào)干擾,提高數(shù)據(jù)的傳輸質(zhì)量,在47個(gè)慣性傳感器之間、慣性傳感器與FPGA之間均采用屏蔽線(xiàn)進(jìn)行對(duì)接。采取插拔形式的接口實(shí)現(xiàn)各分支SPI線(xiàn)與SOC模塊間的連接,并對(duì)SPI信號(hào)采取緩沖等措施,避免信號(hào)反射振鈴等問(wèn)題。
系統(tǒng)使用鋰電池供電,搭配相應(yīng)的電源管理電路,如充放電電路、DC-DC電源轉(zhuǎn)換電路等,為系統(tǒng)提供必需的電壓。
3 系統(tǒng)軟件設(shè)計(jì)
基于慣性傳感器的人體動(dòng)作捕捉系統(tǒng)設(shè)計(jì)了自上而下的模塊化軟件架構(gòu),對(duì)動(dòng)作捕捉手套的數(shù)據(jù)獲取、校準(zhǔn)等基本功能進(jìn)行封裝,并在此基礎(chǔ)上實(shí)現(xiàn)與常用物體的交互功能,提高了通信效率,且可復(fù)用于各模塊?;趹T性傳感器的人體動(dòng)作捕捉系統(tǒng)的軟件主要由DLL模塊、基礎(chǔ)功能模塊、狀態(tài)識(shí)別模塊、交互功能模塊等組成,框架如圖3所示。
3.1? DLL模塊
DLL模塊采用C++編寫(xiě),在Visual Studio下編譯,在Unity上實(shí)現(xiàn)DLL調(diào)用,進(jìn)行數(shù)據(jù)轉(zhuǎn)換,輸出Unity SDK。DLL模塊主要負(fù)責(zé)與硬件通信、姿態(tài)估計(jì)、傳感器校準(zhǔn)[9]等功能。
3.1.1? 硬件通信
系統(tǒng)程序上電后,在局域網(wǎng)內(nèi)進(jìn)行UDP廣播;DLL模塊通過(guò)UDP廣播發(fā)現(xiàn)系統(tǒng)硬件設(shè)備后發(fā)送UDP包進(jìn)行響應(yīng);嵌入式系統(tǒng)收到響應(yīng)后,嵌入式程序與上位機(jī)建立FTP連接,通信程序流程如圖4所示。
3.1.2? 姿態(tài)估計(jì)
本系統(tǒng)利用DLL模塊通過(guò)自定義的數(shù)據(jù)協(xié)議獲取傳感器的原始數(shù)據(jù),并使用姿態(tài)估計(jì)算法計(jì)算姿態(tài)的四元數(shù)[10],同時(shí)對(duì)數(shù)據(jù)進(jìn)行重新編號(hào),避免硬件改動(dòng)時(shí)影響上層數(shù)據(jù)的編號(hào)。姿態(tài)估計(jì)算法流程圖如圖5所示。
姿態(tài)估計(jì)算法流程如下:
1)原始數(shù)據(jù)讀取。通過(guò)自定義數(shù)據(jù)協(xié)議可以分別獲取三軸加速度計(jì)、三軸陀螺儀和三軸磁力計(jì)的原始數(shù)據(jù)。
2)姿態(tài)角計(jì)算。通過(guò)對(duì)三軸加速度計(jì)、三軸磁力計(jì)的原始數(shù)據(jù)進(jìn)行三角函數(shù)變換,可分別得到第一個(gè)旋轉(zhuǎn)角度 :
對(duì)三軸陀螺儀獲取的原始數(shù)據(jù)進(jìn)行積分,可得到第二個(gè)旋轉(zhuǎn)角度 :
3)四元數(shù)轉(zhuǎn)換歸一化。四元數(shù)可看作為一個(gè)多維向量,既可以表示物體的旋轉(zhuǎn),也可以表示物體當(dāng)前的姿態(tài),還可以簡(jiǎn)化計(jì)算機(jī)處理的難度,故采用四元數(shù)作為姿態(tài)數(shù)據(jù)的處理手段。四元數(shù)能夠?qū)W拉角表示方法中的多次旋轉(zhuǎn)等效為繞某一轉(zhuǎn)軸旋轉(zhuǎn)一定的角度來(lái)表達(dá)。設(shè)等效軸的方向向量為? ,繞等效軸旋轉(zhuǎn)的角度為θ。計(jì)算2個(gè)旋轉(zhuǎn)角度的正弦值和余弦值,分別代入四元數(shù)轉(zhuǎn)化公式,計(jì)算得到四元數(shù) :
此時(shí)得到的四元數(shù)不是單位四元數(shù),需進(jìn)行歸一化處理。單位四元數(shù) 需滿(mǎn)足 。首先,計(jì)算四元數(shù)的模值;然后,將四元數(shù)除以模值即為歸一化,模值計(jì)算公式為
4)球面線(xiàn)性插值。ICM20948九軸慣性傳感器采集的數(shù)據(jù)并非為連續(xù)數(shù)據(jù)。為使姿態(tài)數(shù)據(jù)更加平滑,利用球面線(xiàn)性插值進(jìn)行數(shù)據(jù)平滑,進(jìn)而求得平滑后的四元數(shù) 。
3.1.3? 傳感器校準(zhǔn)
傳感器校準(zhǔn)功能主要由上位機(jī)軟件實(shí)現(xiàn),包括陀螺儀歸零、磁強(qiáng)計(jì)尺度歸一化和正交化、磁場(chǎng)干擾檢測(cè)等。校準(zhǔn)數(shù)據(jù)通過(guò)硬件數(shù)據(jù)讀寫(xiě)功能儲(chǔ)存在硬件上。
3.2? 基礎(chǔ)功能模塊
基礎(chǔ)功能模塊封裝了系統(tǒng)的基本功能,使用戶(hù)不需要知道硬件細(xì)節(jié)、通信過(guò)程和具體調(diào)用方法,即可實(shí)現(xiàn)調(diào)用DLL模塊接口、骨骼綁定、姿態(tài)對(duì)齊、硬件狀態(tài)獲取等功能。
3.3? 狀態(tài)識(shí)別模塊
狀態(tài)識(shí)別模塊主要實(shí)現(xiàn)碰撞檢測(cè)、手勢(shì)識(shí)別等功能。
3.3.1? 碰撞檢測(cè)
碰撞檢測(cè)是檢測(cè)2個(gè)物體是否相交。如果物體規(guī)則,如球體,可直接檢測(cè)圓心距離是否小于半徑和;如果物體不規(guī)則,則用簡(jiǎn)單球體去趨近網(wǎng)格。
3.3.2? 手勢(shì)識(shí)別
手勢(shì)識(shí)別過(guò)程如下:
1)利用ICM20948九軸慣性傳感器獲取人體的角速度、加速度和磁通量數(shù)據(jù),通過(guò)姿態(tài)估計(jì)算法得到每根手指上各個(gè)傳感器的姿態(tài)位置;
2)利用手勢(shì)識(shí)別算法提取5個(gè)指尖到指根及掌心的10個(gè)距離 ,其中,5個(gè)指尖到指根的距離分別為 ;5個(gè)指尖到掌心的距離分別為 ;
3)通過(guò)統(tǒng)計(jì)20個(gè)不同的人手樣本,測(cè)量在各種手勢(shì)下(抓、捏、張開(kāi)等),指尖到指根及掌心的10個(gè)距離的平均值 ;
5)根據(jù)測(cè)量值和實(shí)測(cè)結(jié)果,對(duì)每種手勢(shì)預(yù)先設(shè)置經(jīng)驗(yàn)閾值 ,若 ,則判斷手勢(shì)識(shí)別成功。
3.4? 交互功能模塊
物體交互功能主要通過(guò)手勢(shì)識(shí)別和碰撞檢測(cè)實(shí)現(xiàn)抓取、附著和釋放物體。在物體上添加標(biāo)簽,注明相應(yīng)的屬性,表示是否可以被抓取。檢測(cè)到抓或捏的手勢(shì)時(shí),通過(guò)檢查其標(biāo)簽屬性,確定手部物體是否為可抓取的物體。若是,則附著到手上,物體的位置和姿態(tài)跟隨手部一起變化;若不是,則不執(zhí)行附著操作。檢測(cè)到張開(kāi)手勢(shì)時(shí),釋放手中的物體。
4 系統(tǒng)測(cè)試
首先,測(cè)試人員穿戴好手套,綁好身體其他部位的所有關(guān)節(jié)點(diǎn)傳感器,保證與三維軟件的虛擬人同姿態(tài);然后,開(kāi)啟系統(tǒng)電源,對(duì)基于慣性傳感器的人體動(dòng)作捕捉系統(tǒng)進(jìn)行初始化、校正系統(tǒng)誤差;最后,根據(jù)上位機(jī)軟件的提示進(jìn)行傳感器定位校準(zhǔn),即可同步顯示測(cè)試人員與虛擬人的姿態(tài)動(dòng)作,測(cè)試效果如圖6所示。
由圖6可知,測(cè)試人員和虛擬人的姿態(tài)幾乎完全一致,驗(yàn)證了基于慣性傳感器的人體動(dòng)作捕捉系統(tǒng)設(shè)計(jì)的正確性與有效性。
5 結(jié)論
本文利用ICM20948九軸慣性傳感器設(shè)計(jì)了一套人體動(dòng)作捕捉系統(tǒng),采用模塊化的兼容性設(shè)計(jì),可對(duì)手指、手臂及全身動(dòng)作進(jìn)行姿態(tài)捕捉。該系統(tǒng)具有精確定位的能力,最多支持人體47個(gè)關(guān)節(jié)動(dòng)作數(shù)據(jù)的采集,精確至每個(gè)手指關(guān)節(jié),可單獨(dú)捕捉手部、手臂、腿部、上半身等動(dòng)作數(shù)據(jù),也可融合使用;支持室內(nèi)外不同場(chǎng)景,不受影棚環(huán)境、光線(xiàn)或者遮擋的影響。該系統(tǒng)可應(yīng)用于仿真訓(xùn)練、運(yùn)動(dòng)康復(fù)、影視游戲、虛擬直播、機(jī)器人遙操作等場(chǎng)景。下一步將采用性能更高的芯片,改進(jìn)手勢(shì)識(shí)別算法,并對(duì)其進(jìn)行大樣本的訓(xùn)練,以選擇更有效的特征參數(shù),提高人體動(dòng)作的識(shí)別效率和正確率;優(yōu)化系統(tǒng)設(shè)計(jì),采用全無(wú)線(xiàn)節(jié)點(diǎn)的設(shè)計(jì)方案,提高系統(tǒng)的靈活性及實(shí)時(shí)性。
參考文獻(xiàn)
[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] 李強(qiáng),趙文彬,莫新民,等.虛擬現(xiàn)實(shí)技術(shù)在武器裝備研制中的應(yīng)用研究[J].機(jī)電工程技術(shù),2020,49(6):122-123;159.
[3] 楊成,冉冀,吳鐘.基于九軸慣性傳感器的人體動(dòng)作捕捉系統(tǒng)[J].上海電氣技術(shù),2017,10(4):1-8.
[4] 陶幸.基于IMU的人體動(dòng)作捕捉方法研究[D].南京:南京郵電大學(xué),2023.
[5] 張澤宇.基于微慣性傳感器的姿態(tài)捕捉系統(tǒng)設(shè)計(jì)[J].自動(dòng)化博覽,2017(3):85-88.
[6] 侯學(xué)輝.基于無(wú)線(xiàn)傳輸技術(shù)的慣性動(dòng)作捕捉系統(tǒng)研究與設(shè)計(jì)[D].濟(jì)南:山東大學(xué),2016.
[7] 容志能.慣性運(yùn)動(dòng)捕捉系統(tǒng)中傳感數(shù)據(jù)的傳輸與處理[D]. 杭州:浙江大學(xué),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] 徐渤.四元數(shù)體上的矩陣分解[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué), 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.
作者簡(jiǎn)介:
吳天強(qiáng),男,1985年生,工學(xué)學(xué)士,助理工程師,主要研究方向:人工智能。E-mail: tianqiang.wu@giaiac.cn
袁學(xué)俊,男,1995年生,工學(xué)學(xué)士,主要研究方向:人工智能。E-mail:xuejun.yuan@giaiac.cn
胡文慶(通信作者),男,1992年生,工學(xué)碩士,工程師,主要研究方向:智能傳感。E-mail: wenqing.hu@giaiac.cn