近年来,健身运动逐渐成为大众生活中的重要组成部分,但传统的健身模式难以提供高效、精准的运动评估与反馈。基于视觉的健身运动评估系统因其无需佩戴额外设备、便捷性高、适用范围广等特点,逐渐受到广泛关注。目前市场中存在的如Freeletics、Mirror健身镜等健身类产品可以通过摄像头实时监控用户的运动姿态,提供反馈和纠正建议,但只能处理常规单一的健身动作,对复杂姿势的评估效果不佳,且对硬件条件及网络性能有较强的依赖性。因此,可以针对多类健身运动且模型简单的软件系统具有广阔的应用前景。
基于视觉的健身运动评估系统通过摄像头获得人体运动姿态信息后自动进行动作识别,无需手动指定动作类别,即可开启对应的动作评估指标,从而为用户提供科学全面的运动反馈。该系统主要由人体姿态估计、动作识别、动作评估3个关键技术组成。
人体姿态估计是从图像或视频中识别出人体的关节点位置的技术
[1]。常用的人体姿态估计算法包括级联深度回归器
[2](human pose estimation via deep neural networks, DeepPose)、堆叠沙漏网络
[3](stacked hourglass networks, SHN)、区域姿态估计框架
[4](regional multi-person pose estimation, RMPE)、实时多人二维姿态估计
[5] (realtime multi-person 2D pose estimation using part affinity fields, Openpose)、高分辨率网络
[6](high-resolution networks,HRNet)、级联金字塔网络
[7](cascaded pyramid networks,CPN)等,都存在计算量大、推理速度慢、硬件需求严苛、实时性低等缺点,不适用于健身运动分析。2019年,Google 提出了一个跨平台的开源框架MediaPipe,用其特别的框架结构和工作流程,极大减小了模型的体积和资源消耗,可在实时视频中估计人体关节点的位置,适用于实时健身动作评估系统的需求。
不同的健身动作具有不同的评估标准,因此在动作评估前进行动作识别可以识别用户的动作类型,并快速开启相应的评估机制
[8]。目前,应用最广泛的基于骨架数据识别方法是Gao等
[9]提出的基于图卷积网络(graph convolutional networks,GCN)的识别方法,该类方法可以更好地处理骨架数据这类具有图结构的人体姿势识别问题,将人体骨架划分为四肢和躯干5个区域,分别提取区域内和区域间的特征,用于骨架数据上的动作识别。Shi等
[10]提出双流自适应图卷积网络(two-stream adaptive graph convolutional networks,2s-AGCN),该网络可以同时建模关节和骨骼信息,显著提升了识别精度。鉴于GCN方法处理时序性问题的能力较差,Yan等
[11]提出了时空图卷积网络(spatio-temporal graph convolutional networks,ST-GCN),将图卷积理论应用到骨架序列的时空动态演变中,设计了表征人体拓扑结构的邻接矩阵。该算法能够自动学习骨架数据的时空特征,同时通过时间卷积捕捉关节随时间的动态变化并用于人体动作识别,具有更强的表现能力和泛化能力,但该模型获取关节点的全局信息能力较差,且网络模型较大,需进行相应的模型精简才能应用于实时动作评估系统中。
动作评估方法主要分为模板匹配和空间-时间法。模板匹配是指将待测动作序列与预先定义动作序列的模板进行比较。Song等
[12]基于人体的关键点数据,设计距离函数,采用动态时间规整(dynamic time warping,DTW)算法来度量时间序列之间的相似性,实现动作评估。于景华等
[13]设置了标准动作和实验动作,计算两个动作帧的平均帧距离,通过DTW将标准动作和实验动作之间的距离进行比较,归一化后获得动作相似度评分。韩丽等
[14]通过计算向量的夹角余弦值,利用特征平面相似性匹配的方法计算运动数据相关匹配度,确定舞蹈表演者的姿势与标准姿势的相似程度。空间-时间法是指分析一个动作中不同身体部位的空间和时间的关系。Alexiadis等
[15]基于Kinect深度相机采集的骨骼点坐标、关节角度和旋转量,提出了一组基于四元数相关的测量分数,与教练的标准动作进行对比,得到舞蹈动作评分。以上运动评估的研究中多使用普遍单一的评估方法,没有针对不同运动的发力特点设计不同方法,因此,评估方法的适应性还需进一步提高。
基于以上研究,本文设计了基于人体姿态估计的健身运动评估系统,此系统可以在任何场合供给用户健身使用。该系统使用实时性极高的MediaPipe算法提取姿态信息,送入添加了注意力机制并简化了网络层结构的ST-GCN中进行动作识别,最后,根据不同的动作类别使用不同的健身动作评估算法来获得运动评估结果,系统可以实现健身者在无需指定动作类别情况下的多类健身动作的自动化健身动作评估。