基于惯性传感器的人体动作捕捉系统
2023-10-08吴天强袁学俊胡文庆
吴天强 袁学俊 胡文庆
摘要:针对目前人体动作捕捉系统采集节点数量少、动作采样精细度不足、成本高等问题,设计一套基于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