一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于BlazePose的健身动作识别方法及装置与流程

2022-11-28 13:12:53 来源:中国专利 TAG:

基于blazepose的健身动作识别方法及装置
技术领域
1.本发明属于计算机视觉领域,特别是涉及到一种基于blazepose的健身动作识别方法及装置。


背景技术:

2.随着计算机信息技术的飞速发展,如今人们开始利用计算机对视频、图像等信息进行分析和判断。其中人体姿态估计作为计算机视觉领域的热点,在智能视频监控、自动驾驶等应用中发挥着越来越重要的作用。近年来,随着深度学习在图像分类、语义分割、目标检测等计算机任务上的优秀表现,采用深度学习方法进行二维人体姿态估计,相较于传统需要人工设定特征的方法,更能充分地提取图像信息,获取更具有鲁棒性的特征。因此,基于深度学习的方法已成为二维人体姿态估计算法研究的主流方向。
3.目前,国内外对基于深度学习的二维人体姿态方法估计主要分为单人与多人两大类进行论述。根据真值类型的不同将单人姿态估计分为基于热图检测与基于坐标回归两类,根据不同的算法步骤将多人姿态估计分为二步法与一步法两类。
4.典型的单人姿势估计方法的框架可以被表述为由一个姿势编码器和一个姿势解码器组成。姿势编码器是提取高级特征的骨干,而姿势解码器则以基于回归的方式或基于检测的方式得到关键点的二维位置。
5.在多人姿态估计中,需要检测和定位图像中所有人物的关键点,其中人物的数量事先是未知的。根据处理范式的不同,两阶段方法可以分为自上而下的方法和自下而上的方法。自顶向下的方法主要由两部分构成:人体检测器与单人姿态估计器。该类方法先使用检测器检测框出人体,再对框出的人体做类似单人姿态估计的操作。自底向上的方法也主要由两部分构成,人体关节点检测器和关节点候选分组。该类方法使用检测器定位图像中所有人物的关节,然后对关节空间进行建模,最后对关节进行优化分组。为了简化两步多人姿态估计的过程,提高多人姿态估计的效率,也可以使用单阶段多人姿态检测器(spm)来简化人体分割和关节定位的过程。
6.对健身运动学习而言,现有的大多数方法仅提供健身教练的标准运动视频给用户学习,忽略了用户动作学习程度的评估。此外,st-gcn等方法使用人体姿势估计来评估用户动作。这些算法取得了更好的性能是因为从人体骨架和关节点随运动变化的轨迹中能更好地捕捉到运动信息。然而也容易忽略用户错误动作的特征,不能根据错误特征给出相应的改进建议。


技术实现要素:

7.本发明提出一种基于blazepose的健身动作识别方法及装置,能够自动分析运动动作,准确检测运动错误姿势提高健身效率,降低用户因动作不标准所导致肌肉拉伤的风险性。
8.为达到上述目的,本发明的技术方案是这样实现的:
一种基于blazepose的健身动作识别方法,包括:s1、基于blazepose轻量级卷积神经网络对图像进行人体姿态估计,得到图像中用户在进行健身时的关节点位置信息;s2、将关节点位置信息转换为特征向量,基于knn分类提取当前运动类别;s3、通过角度分析与距离阈值判断检测用户在当前运动类别的姿态准确与否,并根据结果反馈动作改进建议。
9.进一步的,步骤s1所述人体姿态估计具体包括:将图像输入到blazepose轻量级卷积神经网络结构中,得到图像坐标系下各个关节点坐标信息,每个关节点信息表示为(x,y,z,v);其中x和y表示为在图像坐标系下关节点归一化的坐标位置;z表示以胯部中点深度为原点的关节点深度;v表示关节点可见的可能性值。
10.进一步的,步骤s2所述将关节点位置信息转换为特征向量包括:将人体左胯与右胯的中心点视为人体中心点,人体中心点到左肩与右肩的中心点距离视为人体躯干尺寸;然后基于人体中心点初始化每个关节点的相对位置,将每个关节点与人体中心点的相对距离作为特征的一部分,按人体关节关联性规则提取关节之间的成对距离作为特征的另一部分。
11.进一步的,步骤s2所述基于knn分类提取当前运动类别包括:将每类运动,划分为开始姿势和完成姿势两种类别,即n类运动有2n种姿势类别;挑选每类运动的开始姿势图片与完成姿势图片,将图片通过步骤s1得到相应的关节点位置信息,再将关节点位置信息转化为特征向量作为knn算法分类器的输入特征,通过k折交叉验证法确定k值,训练得到运动分类模型;当新的运动姿势样本对象需要分类时,通过运动分类模型,选择k个样本中出现最多的类别记为当前运动类别。
12.进一步的,步骤s3中所述检测用户在当前运动类别的姿态准确与否,包括常态化检测与标准化检测,其中常态化检测指检测在整个的运动过程中躯体是否标准,标准化检测指检测动作完成度整体是否达标;当knn分类结果为当前运动类别的完成姿势的置信度达到极值时,进行标准化检测;所述常态化检测与标准化检测通过角度分析与距离阈值判断进行检测,其中角度与距离阈值为当前运动类别的运动标准。
13.本发明另一方面还提出了一种基于blazepose的健身动作识别装置,包括:人体姿态估计模块,基于blazepose轻量级卷积神经网络对图像进行人体姿态估计,得到图像中用户在进行健身时的关节点位置信息;提取运动类别模块,将关节点位置信息转换为特征向量,基于knn分类提取当前运动类别;姿态分析模块,通过角度分析与距离阈值判断检测用户在当前运动类别的姿态准确与否,并根据结果反馈动作改进建议。
14.进一步的,所述人体姿态估计模块包括:将图像输入到blazepose轻量级卷积神经网络结构中,得到图像坐标系下各个关节点坐标信息,每个关节点信息表示为(x,y,z,v);其中x和y表示为在图像坐标系下关节点归一化的坐标位置;z表示以胯部中点深度为原点的关节点深度;v表示关节点可见的可能性值。
15.进一步的,所述提取运动类别模块包括:将人体左胯与右胯的中心点视为人体中心点,人体中心点到左肩与右肩的中心点距离视为人体躯干尺寸;然后基于人体中心点初始化每个关节点的相对位置,将每个关节点与人体中心点的相对距离作为特征的一部分,按人体关节关联性规则提取关节之间的成对距离作为特征的另一部分。
16.进一步的,所述提取运动类别模块还包括:将每类运动,划分为开始姿势和完成姿势两种类别,即n类运动有2n种姿势类别;挑选每类运动的开始姿势图片与完成姿势图片,将图片通过步骤s1得到相应的关节点位置信息,再将关节点位置信息转化为特征向量作为knn算法分类器的输入特征,通过k折交叉验证法确定k值,训练得到运动分类模型;当新的运动姿势样本对象需要分类时,通过运动分类模型,选择k个样本中出现最多的类别记为当前运动类别。
17.进一步的,所述姿态分析模块,包括常态化检测与标准化检测,其中常态化检测指检测在整个的运动过程中躯体是否标准,标准化检测指检测动作完成度整体是否达标;当knn分类结果为当前运动类别的完成姿势的置信度达到极值时,进行标准化检测;所述常态化检测与标准化检测通过角度分析与距离阈值判断进行检测,其中角度与距离阈值为当前运动类别的运动标准。
18.与现有技术相比,本发明具有如下的有益效果:本发明通过blazepose方法快速获取人体姿态关节点图像位置信息,结合人体关节点之间的关联性进行特征再提取,通过特征进行运动快速分类,最后针对相应运动类别进行姿态分析,检测动作是否存在错误;本发明可以自动分析健身运动动作,对各类别动作特征识别准确率达到0.892,准确检测运动错误姿势, 并提供动作改进建议,提高健身效率,降低用户因动作不标准所导致肌肉拉伤的风险性。
附图说明
19.图1是blazepose推断流程图;图2是人体关节点关联图;其中:0、鼻子;1、左眼内侧;2、左眼;3、左眼外侧;4、右眼内侧;5、右眼;6、右眼外侧;7、左耳;8、右耳;9、嘴左侧;10、嘴右侧;11、左肩;12、右肩;13、左肘;14、右肘;15、左手腕;16、右手腕;17、左小指;18、右小指;19、左中指;20、右中指;21、左拇指;22、右拇指;23、左胯;24、右胯;25、左膝;26、右膝;27、左脚踝;28、右脚踝;29、左脚跟;30、右脚跟;31、左脚趾;32、右脚趾;图3是本发明实施例的仰卧起坐检测示意图;图4是本发明实施例的仰卧起坐检测流程图;图5是本发明实施例的俯卧撑检测示意图;图6是本发明实施例的俯卧撑检测流程图;图7是本发明实施例的仰卧起坐运动姿态类别划分示意图;其中:图7(a)为正确姿势,图7(b)为手部错误姿势,图7 (c)、图7(d)为腿部错误姿势,图7 (e)为整体错误姿势;
图8是本发明实施例的俯卧撑运动姿态类别划分示意图;其中:图8(a)为正确姿势,图8(b)为腿部错误姿势,图8 (c)、图8 (d)为躯干错误姿势,图8 (e)为整体错误姿势。
具体实施方式
20.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
21.为使本发明专利的目的、特征更明显易懂,下面结合附图对本发明专利的具体实施方式作进一步的说明。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明专利实施例的目的。
22.下面结合附图对本发明的具体实施做进一步的详细说明。
23.本发明提出的基于blazepose的多步骤健身动作识别,具体可分为三个模块。第一个模块是人体姿态估计模块,该模块通过用于人体姿态估计的轻量级卷积神经网络架构(blazepose),可以快速获取人体关节点位置信息;第二个模块是提取运动类别模块,该模块对关节点位置信息进行特征再提取,并通过knn分类确定运动类别;第三个模块是姿态分析模块,该模块可以针对识别到的运动类别进行分析,通过运动本身规则提出改进意见。下面分别对三个模块进行详细介绍。
24.1、人体姿态估计:人体姿态估计是本发明中一个重要模块,通过本模块可以得到用户在进行健身时的人体骨架以及关节点位置信息。考虑到算法的性能与准确性,本发明应用了blazepose算法。现代的大多数目标检测解决方案中最后的处理步骤中都依赖于非最大抑制(non-maximum suppression, nms)算法,当人体关节出现交错时易出现错误。blazepose为一种用于人体姿态估计的轻量级卷积神经网络架构,其作了一个大胆的假设:在单人用例中始终应看到人员的头部。从而使用快速面部检测器作为人体检测器的替代品。blazepose包含了一个姿态追踪器, 利用了视频图像的帧与帧之间姿态与人体框的联系进行姿态跟踪以提升性能。如果在当前检测器能够预测到下一帧中姿势位置的时候,姿势检测器就不会运行,会一直使用姿势追踪器的结果,否则就会重新运行检测器,并初始化姿态追踪器。将图像输入到blazepose网络结构中,即可得到图像坐标系下各个关节点位置信息,每个关节点位置信息可表示为(x,y,z,v)。其中x和y表示为在图像坐标系下关节点归一化的坐标位置;z表示以胯部中点深度为原点的关节点深度,值越小则关节点离相机越近;v表示关节点可见(未被遮挡)的可能性值。推断流程图如图1所示。
25.2、提取运动类别:首先,本模块对关节点位置信息进行特征再提取,人体在健身、舞蹈等某类运动时其关节点信息与运动变换之间具有高度关联性。为了将关节点位置信息转换为特征向量,将左胯与右胯的中心点视为人体中心点,人体中心点到左肩与右肩的中心点距离视为人体躯干尺寸。然后基于人体中心点初始化每个关节点的相对位置,将每个关节点与人体中心点的相对距离作为特征向量的一部分。同时如图2所示的人体关节点关联图,按照人体关节关联性规则(图中的双向箭头)提取关节之间的成对距离作为特征向量的另一部分,例如手腕和肩部、脚踝和臀部以及两个手腕之间的距离。
26.所述特征向量的形式为(s1,s2…
,sn,l1,l2,..,lm)。其中s1,s2…
,sn是各个关节点与人体中心点的相对距离,n为关节点数量;l1,l2,..,lm为按照人体关节关联性规则的关节之间的成对距离,m为成对距离的数量。
27.其中关节点与人体中心点的相对距离、以及关节之间的成对距离,通过欧式距离来表示。由于在多维空间下,点a(a1,a2,

,as)与点b(b1,b2,

,bs)的欧式距离公式可表示为式(1):(1)则关节点a(xa,ya,za,va)与关节点b(xb,yb,zb,vb)之间的欧式距离为。xa和ya表示在图像坐标系下关节点a归一化的坐标位置;xb和yb表示在图像坐标系下关节点b归一化的坐标位置;其次,将每种类别的运动,再划分出开始姿势和完成姿势两种类别,即n种类别的运动有2n种姿势类别。挑选每类运动的大量开始姿势图片与完成姿势图片,将图片输入到人体姿态估计模块中,得到相应关节点位置信息。再通过关节点位置信息进行特征再提取,提取得到的特征(关节点与人体中心点的相对距离、以及关节之间的成对距离)作为knn(k nearest neighbors)分类器的输入特征,最后通过k折交叉验证法确定k值,训练得到运动分类模型。
28.所述运动分类模型是基于knn的核心思想,如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
29.当有新的运动姿势样本对象需要分类时,通过所述运动分类模型,选择k个样本中出现最多的类别记为该运动姿势的运动类别。
30.3、姿态分析:姿态分析模块是通过检测运动过程中相关的关节点位置信息是否符合运动标准来完成分析,包括常态化检测与标准化检测,其中常态化检测指检测在整个的运动过程中躯体是否标准,标准化检测指检测动作完成度整体是否达标;当knn分类结果为当前运动类别的完成姿势的置信度达到极值时,进行标准化检测;所述常态化检测与标准化检测通过角度分析与距离阈值判断进行检测,其中角度与距离阈值为当前运动类别的运动标准。
31.以仰卧起坐与俯卧撑运动为例:如图3所示,对仰卧起坐而言,常态化检测主要包含两种情况的检测。当两种错误情况同时发生则视为整体错误,若同时满足则视为正确姿势。一是检测手是否保持在耳后,该部分将眼睛到对应耳朵的距离作为阈值,将手腕到耳朵的距离记为d1,判断其是否小于阈值;将肘关节到膝关节的距离记为d2,判断其是否小于其阈值。将手腕、肘关节与肩部的夹角记作α,检测是否小于90
°
,若不满足则视为仰卧起坐手部姿势发生错误。二是检测双腿是否保持弯曲,将胯关节、膝关节与踝关节的夹角记作β,检测是否在45
°
~90
°
之间;将膝关节、踝关节与脚趾的夹角记作γ,检测是否小于90
°
。若不满足则视为仰卧起坐腿部姿势发生错误。
32.同时当knn分类结果为仰卧起坐(动作完成姿势类别)的置信度记作cmss,每当cmss达到极值时则进行标准化检测。检测肘关节与膝关节的距离是否小于阈值,若不满足则视
为动作完成度不达标。总体而言,仰卧起坐检测机制如图4所示。
33.如图5所示,对俯卧撑而言,常态化检测也主要包含两种情况的检测。当两种错误情况同时发生则视为整体错误,若同时满足则视为正确姿势。一是检测腿部是否发生弯曲,将踝关节、膝关节与胯关节之间的夹角记作δ,检测是否不超过165
°
,若不满足则视为俯卧撑腿部姿势发生错误。二是检测躯干是否发生弯曲,将膝关节、胯关节与肩部之间的夹角记作ε,检测是否大于160
°
,若不满足则视为俯卧撑躯干姿势发生错误。
34.同时将knn分类结果为俯卧撑(动作完成姿势类别)的置信度记作cmps,每当cmps达到极值时,则进行标准化检测。检测d3(肘关节到手部水平线距离)是否小于等于d4(肩部到手部水平线距离),即若不满足则视为动作完成度不达标。综上,俯卧撑检测机制如图6所示。
35.对上述检测方法而言,其结果正确度高度依赖于关节点估计的准确度。一旦上游的人体姿态估计任务结果产生偏差,对下游的应用结果会产生较大影响。因此引入误判处理,在应用的环节适当降低发生误判的可能性。即在健身运动视频所产生的关节点序列sn中,连续多帧s
t
、s
t 1
、s
t 2
判断为同一类别错误姿势可视为确定性错误,否则视为可能发生潜在误判。
36.本发明的验证实例如下:(1) hsipu2数据集hsipu2人体健身动作数据集,其中包含8044个动作数据序列和80440幅图像的人体动作特征数据。hsipu2针对仰卧起坐、俯卧撑和引体向上三种运动动作建立数据集,每种动作数据使用两个摄像机作为传感器工作,从不同的视角捕捉特征。本实例中对hsipu2中仰卧起坐侧面与俯卧撑侧面部分图片,为了效果验证,按照动作正确或错误细节重新划分为八个类别,其中包含俯卧撑正确姿势、俯卧撑腿部错误姿势、俯卧撑躯干错误姿势、俯卧撑整体错误姿势、仰卧起坐正确姿势、仰卧起坐手部错误姿势、仰卧起坐腿部错误姿势、仰卧起坐整体错误姿势。经过左右翻转、高斯噪声等数据增强手段后,共计得到11030张图片,并按7:1:2比例划分为训练集、验证集与测试集,各类别图片数量如表1所示。
37.具体运动姿态类别划分如图7和图8所示。其中图7(a)为仰卧起坐正确姿势,图7(b)为仰卧起坐手部错误姿势,图7 (c)、图7 (d)为仰卧起坐腿部错误姿势,图7 (e)为仰卧起坐整体错误姿势;图8(a)为俯卧撑正确姿势,图8(b)俯卧撑为腿部错误姿势,图8 (c)、图8 (d)为俯卧撑躯干错误姿势,图8 (e)为俯卧撑整体错误姿势。
38.(2)设置硬件环境为nvidia rtx 2060,8核16位amd 4800h cpu,16 gbddr4存储器。软件环境为64位ubuntu18.04lts,依赖的主要工具包括 opencv4.5.1、torch1.7.1、torchvision0.8.1、mediapipe0.8.3。
39.首先通过blazepose获取hsipu2数据集中人体的关节点信息,其次根据关节点信息提取归一化后特征、关节点之间的相对位置特征,并通过knn分类得到其运动类别,最后通过角度分析与阈值判断检测当前运动姿态准确与否,最后根据结果反馈动作改进建议。
40.为了对比验证本方法的可行性,本发明选择hsipu2作为实验数据集,并选择vgg16、knn、svm、decision tree、random forest等经典模型作为对比模型。其中vgg16使用原始图片作为输入特征,不经过人体姿态估计与姿态分析处理,learning rate设置为0.00001,epochs设置为100;knn使用10重交叉验证的方法,取k值为4;svm使用网格搜索法,取5为c值,核函数为poly;decision tree使用网格搜索法,树的最大深度取6,叶子节点所需最少样本数为2, 节点再划分所需最少样本数为2;random forest分类器个数设置为200。
41.本发明选择准确率(accuracy)作为各分类模型的评价标准。即对于给定的运动数据集,如式(2)所示,分类器正确分类的样本数t与总样本数之比n作为评价指标。每次实验
按比例随机划分数据集,重复五次,实验结果取均值。
42.(2)(3)结果与分析本发明实时检测中可达21fps,最终模型在各运动类别上分类结果对比如表2所示,从结果可以看出,本发明在准确率上优于其他对比模型,准确率可达89.2%。这是因为从人体关节点随运动变化的轨迹中能更好地捕捉到运动信息,并且结合运动本身规则去分析可以更好地判别动作是否标准。
43.各算法模型在俯卧撑正确姿势、俯卧撑躯干错误姿势、俯卧撑腿部错误姿势与俯卧撑整体姿势四类姿势类别上的识别准确率可以看到,本发明总体而言优于其他模型,能较好地在实际检测中完成俯卧撑运动姿态识别任务。
44.各算法模型在仰卧起坐正确姿势、仰卧起坐手部错误姿势、仰卧起坐腿部错误姿势与仰卧起坐整体姿势四类姿势类别上的识别准确率,只有在仰卧起坐整体错误姿势类别中本发明与vgg16能较好地完成识别任务。而在其他类别中,各模型识别表现差异并不明显。
45.为了验证各算法性能上存在差异性,使用friedman检验进行判断。各算法的平均序值如表3所示,在n个数据集上比较k个算法,令ri表示第i个算法的平均序值。ri服从正态
分布,其均值为(k 1)/2,方差为(k
2 ‑ꢀ
1)/12。如式3所示,当k与n较大时,统计变量服从自由度为k-1的卡方分布,统计变量服从自由度为k
ꢀ‑ꢀ
1和(k
ꢀ‑ꢀ
1)(n
ꢀ‑ꢀ
1)的f分布,可以利用两个统计变量检验算法之间是否存在明显差距。
46.(3)(4)通过计算得到统计变量约等于5.686,大于f分布中的相应临界检验值。故多个算法的性能结果之间存在显著差异。
47.上述应用结果表明本发明具有较高的分类精度,能够准确检测运动错误姿势的发生并提出改进建议。
48.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献