基于骨骼关键点检测的士兵训练动作分类研究

2022-03-31 09:35曾文献李伟光
河北省科学院学报 2022年1期
关键词:关键点骨骼体能训练

曾文献,马 月,李伟光

(河北经贸大学 信息技术学院,河北 石家庄 050061)

0 引言

计算机视觉技术已经应用到各个领域,其中人体骨骼关键点检测受到越来越多研究者的关注,已经在很多领域取得了不错的成绩,所以利用计算机视觉技术解决士兵体能训练中的问题已经成为未来的趋势[1]。士兵的体能训练在保证身体健康的基础上,通过一定的体能训练提高适应执行特殊任务的身体素质,主要包括力量训练、耐力训练、速度训练和柔韧训练等。士兵体能训练主要包括引体向上、俯卧撑、仰卧起坐、障碍跑、越野跑、蛙跳等。随着信息智能化的发展,智能化手段必将应用于军队未来的发展[2],对于提升士兵体能训练的水平具有巨大潜能。然而目前士兵体能训练大多采取人工监督的方法,存在训练监督不精准、训练手段不先进和浪费人力成本等问题。

本文将人体骨骼关键点检测引入士兵体能训练中,提出一种士兵体能训练动作分类算法,主要针对士兵体能训练的基本训练项目:仰卧起坐、俯卧撑和引体向上三种动作进行分类。该方法通过利用OpenPose模型提取士兵训练视频中的骨骼关键点位置信息,对获取的关键点信息进行补全等处理,然后针对体能训练动作设计特征,最后利用改进的支持向量机进行视频分类。

1 算法流程概述

基于人体骨骼关键点的士兵体能训练运动识别方法流程图,如图1所示。该方法首先进行人体骨骼关键点检测,对提取的关键点位置信息进行补全等处理。然后进行特征提取,最后针对提取的特征进行分类。

图1 算法流程图

1.1 人体骨骼关键点检测

OpenPose网络模型[3]是由Cao等人提出,在CPM[4]的基础上引入了部位亲合场(Part Affinity Fields,PFAs),其中PAFs是一个矢量场,用于编码四肢的位置和方向信息,以便将获取的人体关键点进行连接,得到不同的人体姿态。但由于OpenPose模型提取出来的骨骼关键点信息是针对视频中的单帧图像提取出来的,没有充分利用视频帧间信息,丢失了目标人体在场景中的时间联系,会出现漏检、误检等情况,如图2所示。

图2 OpenPose模型检测结果

图3 骨骼关键点编号图

(1)

(2)

1.2 数据预处理

OpenPose模型获取18个人体骨骼关键点信息,检测出来的关键点示意图,如图3所示,其中编号对应的关键点含义,如表1所示。

表1 关键点编号对应含义

首先,进行归一化处理,由于OpenPose提取的关键性位置信息不仅和运动动作有关,还受人体在图像中的位置和视频拍摄角度、距离有关。直接提取出来的数据不能用于后续的处理,需要对其进行归一化处理。将人体骨骼关键点坐标示(x,y)归一化到(0,1)的范围,并将鼻子的关键点坐标作为参考坐标来转换其他坐标。然后,由于人体骨骼关键点14-17号在运动过程中没有发挥作用,不会影响完整动作的表示,所以舍弃了14-17号关键点。最后,进行关键点缺省补全。由于体能训练视频可以看作是一组连续的视频帧,每一帧都包含了18个关键点的二维坐标,人体运动具有连续性,不会发生很大的突变,所以人体关键点坐标具有一定的局部线性特征。为了获得比较完整的运动序列坐标,可以使用线性插值的方法补全缺省的关键点坐标[6]。

2 士兵体能训练动作分类

2.1 基于士兵体能训练的特征提取

为了识别出士兵体能训练中的不同训练动作,需要对获取人体骨骼关键点之间的关系进行分析,提取关键点之间的特征关系。主要针对士兵体能训练中的引体向上,俯卧撑和仰卧起坐进行分类。由于拍摄的视频中存在许多干扰因素,如拍摄距离的远近、拍摄角度、训练者的体态和服装等因素,会对人体运动轮廓产生很大的干扰,针对以上分析,本文采用关键点坐标之间的几何关系和关节角作为特征描述,保证体能训练运动的行为检测不变性,其中人体关节角是人体关节与水平方向(Horizon Line,HL)的夹角。

利用关键点坐标之间的几何关系计算关键点之间的距离和比较关键点之间的位置关系,可以作为训练动作的一个特征。如仰卧起坐运动中,可根据鼻子关键点与膝盖关键点之间的距离,判断该距离是否在设定的阈值内,若符合,则表示仰卧起坐运动中头膝距离指标合格。引体向上训练运动中,判断颈部关键点和腕部关键点是否在同一水平线上,作为引体向上是否合格的一个标准。

针对每一种训练动作,其关节角会在一定的范围内变化,利用关节角的夹角和变化规律来描述训练动作。如仰卧起坐运动,仰卧起坐运动可以分成准备阶段、起身阶段、坐姿阶段和坐姿躺下阶段四个阶段,通过需要人体脊柱角和鼻膝距离就能判断出士兵处于仰卧起做的那个阶段,判断该阶段动作对否标准,从而可以对仰卧起坐进行计数。人体关节角的含义如表2所示。

表2 关节角的含义

2.2 基于SVM的体能训练动作分类器

由于目前还没有体能训练动作识别的数据集,采用的是在网上搜集的数据集和自己拍摄的数据集,数据集样本比较小,动作类型只有三种,考虑到用深度神经网络的方法会出现过拟合的线性,综合考虑,决定采用支持向量机(Support Vector Machine,SVM)[7]。SVM支持向量机(SVM)在泛化能力好,适合处理小样本数据和高维数据。支持向量机是一种有监督学习的方法,可广泛地应用于分类以及回归分析[8]。其核心思想是将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面[9],样本中起到决定作用的样本点叫做支持向量。松弛标量的加入提高支持向量机的泛化能力,核函数的引入使SVM能够轻松处理高维度数据。本质上,SVM是一个二类分类器,不能用于多分类任务中,所以需要构造一个多分类SVM。构造SVM多类分类器[10]的方法主要有两类:一类是直接法,直接在目标函数上进行修改,将多个分类面的参数求解合并到一个最优化问题中,通过求解该最优化问题“一次性”实现多类分类。另一类是间接法,主要是通过组合多个二分类器来实现多分类器的构造,常见的方法有one-against-one和one-against-all两种。本文采用one-against-all方法构造的决策树支持向量机,并利用蚁群算法对支持向量机的核宽度参数σ和惩罚参数C进行优化,然后将基于人体骨骼关键点的体能训练行为中提取的特征向量作为输入,经过决策树支持向量机进行体能训练行为视频分类。

蚁群算法(Ant Colony Optimization, ACO)[11]是一种新型的模拟进化算法,由意大利学者首次提出。ACO属于群集智能算法的一种,具有良好的鲁棒性、良好的正反馈特性和并行搜索的优点。蚁群优化算法被用来搜索最佳目标函数值,并最终得到正确的参数值组合[12]。在我们的模型中,选择了RBF,是SVM最常用的核函数。所以有两个参数σ,C。要做的是通过使用ACO优化σ,C来提高分类的准确率。具体的算法步骤描述如下:

(1)首先给每只蚂蚁提供的初始参数(σ,C)。

(2)基于初始参数(σ,C),通过SVM学习训练集后,计算得到SVM的误差模型,如公式(3)所示。其中,Yt为训练样本的值,Yr为真实样本的值。

E(i)=|Yt-Yr|

(3)

(3)当蚂蚁在位置i时,其信息素表示,如公式(4)。根据公式可知,误差越小,信息素越大,设定α=3。

J0(i)=αE(i)

(4)

(4)根据每只蚂蚁的信息素值,得到每只蚂蚁的转移概率 ,如公式(5)。其中,Bindex是拥有最大信息素的蚂蚁。

(5)

(5)为了防止得到局部最优解,本文采用了自适应方法。信息素的挥发系数在开始时被设定得比较小,随着蚂蚁进化数量的增加而不断增加,信息素的挥发系数,如公式(6)。其中,这里K=0.1,N是蚂蚁进化一代的现有数量。Nmax是演化一代蚂蚁的最大数量。

(6)

(6)基于ACO优化的SVM参数的信息素更新表示,如公式(7)所示 。

J0(i)=(1-ρ)·J0(i)+α-E(i)

(7)

(7)在一个迭代工作结束时,保存最大的信息素,并根据误差模型计算误差,同时步骤转到步骤(1)继续。当迭代符合设定的频率时,找到最优的蚂蚁获得最优参数C和σ。

3 实验结果分析

3.1 实验数据集及评价指标

目前已有很多与行为分析相关的数据集,但是针对性不高,所以本文采用的实验数据集由两部分组成,一部分是从网络搜集的数据集,包含引体向上,俯卧撑和引体向上三种训练运动,另一部分是由10名退伍军人在多种复杂环境中采集的视频数据集。整体数据集包含了不同的光线明暗、背景、拍摄距离和拍摄角度,数据集共包含3种训练动作1140个视频片段,视频分辨率为1278×712、60FPS,视频时长均大于10s,其中三种体能训练动作的标签分布,如表3所示,引体向上为1,俯卧撑为2,仰卧起坐为3。

评价标准采用准确率(Accuracy)、召回率(Recall)和F1值作为评价指标,其中F1值是评价体育视频分类方法的优劣性能指标。定义分别如下:

其中:TP(true positive)表示真正例、TN(true negative)表示真负例、FP(false positive)表示假正例、FN(false negative)表示假负例。

3.2 实验结果分析

实验采用的环境是Windows10,python编程语言,Core(TM)i7-10100F型号处理器,NVIDIA GeForce RTX 3090型号24 G GPU 和32G的运行内存。采用本文方法对实验数据进行分类,实验结果如表4所示。实验结果表明本文方法可以有效的对3种不同的体能训练动作进行分类。

实验对比本文方法与未进行优化的SVM和RBF神经网络[13]进行对比,如图4所示。实验结果表明本文方法的准确率、召回率和F1值均高于其他两种方法,证明本文方法对于体能训练动作视频有较好的性能。

图4 实验结果对比图

结论

本文提出了一种基于骨骼关键点检测的士兵体能训练的动作分类方法,可以有效针对体能训练动作视频进行分类。采用OpenPose模型来检测获取人体骨骼关键点位置信息,然后通过一个多分类SVM进行动作分类。实验结构表明本文提出的方法对体能训练动作视频的分类准确率为92.9%,证明了该算法的有效性。

猜你喜欢
关键点骨骼体能训练
论建筑工程管理关键点
消防员体能训练与应用
做家务的女性骨骼更强壮
肉兔育肥抓好七个关键点
三减三健全民行动——健康骨骼
建筑设计中的防火技术关键点
青少年运动员体能训练的方法
我国冰球运动员体能训练综合述评
对体能训练认识的理性回归
机械能守恒定律应用的关键点