一种基于计算机视觉的人体运动量估计方法和系统与流程

文档序号:19156671发布日期:2019-11-16 00:53阅读:188来源:国知局
一种基于计算机视觉的人体运动量估计方法和系统与流程
本发明涉及一种基于计算机视觉的人体运动量估计方法和系统,属于视频分析领域。
背景技术
:现今社会人们的生活水平越来越高,身体亚健康、慢性疾病等状况出现越来越频繁,健身锻炼成为日常生活中必不可少的一部分,对日常运动量的管理和检测也成为一种时尚。现在市场上的运动量计算产品多是基于传感器的穿戴设备和移动设备以及健身房中专业的运动量计算设备,大都是通过感应由于运动引起的身体加速度变化来记录运动量。穿戴式设备具有小巧、轻便、易携带等优点,但同时也存在如下局限性:(1)穿戴式设备通常只能通过人体局部运动来进行识别动作,识别不准确且识别的动作种类受限制;(2)穿戴式设备电池体积较小,续航能力有限;(3)穿戴式设备在对运动记录的显示和储存方面有局限性;(4)使用时需要将运动数据通过蓝牙、wifi等连接方式传输并储存到移动端,依赖手机和穿戴设备保持持续连接,且两者之间的距离要保持在一定范围之内,因此穿戴设备只能在有限时间和空间范围内使用。视觉是人类获取信息最直接的方式。借助先进的计算机视觉识别技术,可以较为清晰地识别动作变化,且地点固定不必担心续航问题,避免因为与身体接触而带来的不适,更适合地点较为固定的运动。因此,本发明提出从视觉角度估计运动量,将测量仪器与运动者分开,避免两者之间的相互干扰,不必随身携带。而且摄像头可以实时检测运动目标身体测量关键点的运动轨迹,可以更为详细的记录运动目标的运动距离,并计算运动量。技术实现要素:为克服现有技术的不足,本发明提供了一种基于计算机视觉的人体运动量估计方法和系统。本发明通过计算机视觉方法识别出人体动作,然后,结合不同动作的运动消耗量与人的身高、体重、年龄、运动后的心率和运动时间之间的关系计算人体的运动量。这种方式可以使更多的人足不出户就能够锻炼身体并了解自己运动期间所消耗的能量,具有受众人群广、使用便捷且灵活的特点。为实现上述目的,本发明提供如下技术方案:一种基于计算机视觉的人体运动量估计方法,包括以下步骤:(一)构建基于特定动作的运动量消耗模型,具体方法为:针对不同动作,采集若干人消耗的运动量以及他们的身高、体重、年龄、运动后的心率、运动时间等参数数值,通过回归的方法建立人在进行某项动作时消耗的运动量与身高、体重、年龄、运动后的心率、运动时间等参数之间的关系;(二)针对特定运动种类的运动量估计,具体步骤为:1、通过摄像头拍摄人运动的视频,利用计算机视觉方法对视频进行分析,识别出人体所做的动作;2、基于识别出的人体所做的动作种类,运用第(一)阶段构建的基于该种动作的运动量消耗模型,输入运动人的身高、体重、年龄、运动后的心率、运动时间等参数,计算得到该人所消耗的运动量。本发明还提出一种基于计算机视觉的人体运动量估计系统,该系统包括视频采集装置、视频处理装置、运动量计算装置、存储装置,其特征在于:所述视频采集装置采集人的运动视频;所述视频处理装置根据采集的人的运动视频进行分析,识别出该人所做的动作种类;所述运动量计算装置根据所述存储装置中存储的若干人消耗的运动量以及他们的身高、体重、年龄、运动后的心率、运动时间等参数数值,通过回归的方法构建人在进行某项动作时消耗的运动量与身高、体重、年龄、运动后的心率、运动时间等参数之间的关系模型,并根据所述视频处理装置识别出的人的动作种类,结合运动人的身高、体重、年龄、运动后的心率、运动时间等参数,计算得到该人所消耗的运动量。特别地,利用基于卷积神经网络cnn的动作识别方法识别出人体所做的动作。本发明具有以下有益效果:1、本发明设计实现了一个能够统计人体运动量的应用系统。当使用者使用本系统时,需要选择自己的性别,并输入自己的身高、体重及年龄。系统可以通过摄像头识别出使用者的动作,并且对每个动作分别计数,然后通过计算做每个动作消耗的热量估算出使用者使用期间运动消耗的总热量。2、本发明设计的人体运动量统计系统简单方便,可以在各种情况下使用,为生活带来许多便利。实验结果表明,本系统能够精准的识别出使用者的动作,并能做到对动作准确计数,从而使得估算出的运动量更接近真实值。通过使用本系统,可以使更多的人足不出户的锻炼身体,并了解自己运动期间所消耗的热量。因此,本系统受众人群广、使用便捷且灵活。附图说明图1为本发明的人体运动量估计方法的流程框图。具体实施方式本实施例公开了一种基于卷积神经网络的人体运动量统计方法,包括以下步骤:第一阶段:基于cnn的人体动作识别本发明在人体动作识别的基础上进行运动量统计。步骤1:基于cnn的三维姿态估计。通过端到端的训练来联合估计人体二维和三维的关节位置。其中关键的一点是,它包含了一个新的层,新层中包含了基于人体姿态概率三维模型,负责将二维姿态提升至三维,并将骨骼结构的三维信息传播到二维卷积层。所以,接下来每个阶段中二维姿态的预测得益于三维信息。本顺序体系结构由6个阶段组成,每个阶段由4个不同的部分组成,分别是:1)基于cnn预测的映射:使用了一组卷积层和池化层学习图像特征,获得图像的特征数据,然后与从上一阶段(t-1阶段)获得的映射结合起来,更新预测的二维人体关节点位置的映射。对于每个阶段t和每个地标p,本算法都返回每个像素密集的映射这表明了在任意给定的像素(u,v)中出现一个关节中心点或地标的几率有多大。在阶段t∈{2,....,t}中,映射不仅是图像中所包含信息的函数,也是前一阶段经过计算得到的信息的函数。其中每个阶段中的输入和输出层都被替换为一个更大的集合,以表示更多的地标。然后使用cpm模型中所有现有层的权重对新体系结构进行初始化,并对新层进行随机初始化。经过再次训练,cpm返回地标位置中逐个像素的估计,三维姿态估计技术使用二维位置进行进一步的估计。为了将这些映射转换成位置,我们选择出现几率最大的像素作为每个地标的位置,可公式化为:2)将二维映射提升至三维:将基于cnn的映射的输出当作输入,输入到下一个新的层,该层使用新的且训练过的人体姿态的三维概率模型将二维姿态提升至三维。首先模拟出一个弱透视模型,描述用单模态高斯三维姿态模型估计单帧三维姿态的最简单情况。这个模型如下公式所示,它由一个平均的形状μ,一组标准正交基e和方差σ2组成。这样就能够计算出模型中最可能产生投影图像的样本。其中,π是正交投影矩阵,e是已知的外部摄像机的标定矩阵,s是估计的每帧的尺度。尽管给定的r在这个问题的a和s中都是凸的,而对于未知的旋转矩阵r,这个问题是非凸的,即使a是已知的,但是使用梯度下降法容易得到局部极小值。局部最优解在姿态空间中往往相隔很远,而一个较差的最优解会导致一个较差的三维重建。利用矩阵r的受限形式使得它可以被参数化成一个角度θ,而不是通过用局部方法来使这个优化问题得到解决。我们对可能的旋转空间进行量化,在选择任何一个r的最小替代解之前,对于每一个旋转的选择,我们保持这个固定值并解出s和a。通过固定的旋转选择,可以预先计算出πerμ和πere这两项。因此,找到最优的a就变成了一个简单的线性最小二乘问题。这个过程是非常高效的,通过对旋转进行过度采样,并在10000个位置进行详尽的检查,这样就可以确保找到一个非常接近全局最优的解决方案。在实际应用中,利用20个样本和利用非线性最小二乘求解器对最优解的旋转和正交基进行细化,得到相同的重构结果。并且这里使用了更快的选择,通过检查80个位置,而且使用最好的解决方案作为我们的三维估计,这样可以接近全局最优值,并且具有与找到全局最优值相同的平均精度。3)投影的二维姿态映射:将前一层估计的三维姿态投影回图像平面,生成一组新的投影姿态映射,这些映射封装了身体各部分之间的三维依赖关系。投影的姿态模型贯穿整个网络结构,目的是通过融合关于三维物理合理性的额外信息,纠正关于每个阶段地标位置的映射。给定上一个分量的解r,s和a,估计一个物理上合理的投影的三维姿态,可公式化为:被嵌入到映射中之后,可公式化为:最后,通过高斯滤波器卷积。4)二维融合层:二维融合层即每阶段的最后一层。通过学习权重,将两组映射融合成一个映射,然后传递到下一阶段进行单一评估。将概率三维姿态模型预测得到的二维映射与基于cnn的映射bp进行融合,可公式化为:其中,wt∈[0,1]是一种权重训练,用来作为端到端学习中的一部分。然后将这组融合的映射ft传递到下一阶段,作为指导关节位置二维重新估计的输入,而不是卷积姿态机器使用的映射bt。将最后一阶段生成的映射转换为三维后,得到最终的三维姿态估计。步骤2:人体姿态的概率三维模型。创建人体姿态模型一直以来都存在一个最基本的问题,就是缺乏足够多种类的三维数据来描述人体姿态的空间特征。为了弥补这种数据的不足,本模型分析并消除了一些混淆因素,如地面旋转、肢体长度和左右对称,这些因素导致训练数据无法识别看起来类似的姿势。本发明进行了简单的预处理,从而消除了一部分因素。通过对数据进行标准化,使人体骨骼上的四肢长度的平方之和为1,从而解决了肢体尺寸差异的问题;而人体的左右对称的问题则是通过在x轴上翻转每个姿态,并将左标注为右,将右标注为左来实现的。因为需要与数据模型集成,所以这里要考虑到地平面的旋转不变性问题。因而要寻求每个姿态的最优旋转,使旋转后的姿态与低秩紧密高斯分布近似,这样就可以把这个问题表述为一组变量的最优化问题。我们给定n组训练后的三维姿态,把每个姿态都表示为三维地标位置的3×l矩阵pi,其中i∈{1,2,...,n},l是人体关节点的数量/地标的数量的值;这里寻求的是一个平均三维姿态的全局估计μ,j组标准正交基e和噪声离散σ,用每个样本旋转ri和基本系数αi去最小化如下公式中的估计:其中,αi·e=∑jαi,j·ej是向量和矩阵相乘的张量,是矩阵的frobenius范数的平方。这里假设y轴向上,旋转矩阵ri为地平面旋转。然后初始化并交替执行封闭式ppca,用来更新μ,α,e,σ;并使用ceres更新ri,以达到最小化上述错误的目的。这样可以稳定地将基底大小从1增加到它的目标大小j,阻止了在早期由于旋转的明显变形问题,并且能够从经验上得到更低成本的解决方案。步骤3:三维人体姿态的多模态模型。当实际的数据并不完全是高斯分布时,更适合用多模态分布来解决这一问题。首先,对对齐的姿态(这里称之为g)进行子采样。然后计算每对关节点之间的欧氏距离d,进而寻找一组k个样本w,使得点到最近的样本的距离最小,可公式化如下:使用贪心选择法找到w,保持之前对w的估计不变,迭代选择下一个候选w,使{w}∪w最小化成本。在实际操作中,当候选人与现有候选人非常近似的情况时,停止提出候选点,只从主导模式中选择一个候选点。给定这些候选的聚类中心,继续将每个对齐的点分配给一个表示其最近候选点的聚类,然后运行em算法,构建一个概率pca基的混合物。步骤4:根据各关节点的三维位置信息识别动作。根据人体测量学,不同的人的身体骨骼在肢体及身体的长度或宽度、关节位置、身高比例等方面都是不同的,由此导致每个人在做同样的动作时表现出的姿势不同。对于未知的动作,利用做动作之前(即使用者立正时的姿态)人体三维姿态估计得到每个关节点的初始位置信息,计算与做动作相关的各个关节之间的相对距离,判断这个比例是否在指定范围内,然后返回相应的动作。如表示深蹲动作可公式化为:t=(ty_8-ty_1)/(ty_9-ty_8)>1.73其中,ty_8是臀部关节点在y轴上的距离,ty_1是颈部关节点在y轴上的距离,ty_9是膝关节点y轴上的距离。第二阶段:基于动作识别的运动量统计步骤1:构建热量消耗计算公式。在我们的日常生活中,人体卡路里消耗量(tcb)包括运动消耗和非运动消耗。本系统想要计算的就是人体运动的消耗量,运动消耗,顾名思义是指人因为运动所消耗的卡路里量。而非运动消耗指用来支持静止代谢率的卡路里量(bmr),这是人们日常中一直在消耗的,即不管你在做什么,都会消耗的基础卡路里量,甚至什么都不做,躺着呼吸都会消耗的一部分热量。因而,非运动消耗不会使脂肪减少,所以卡路里的计算应该以净卡路里为基础。顾名思义,净卡路里消耗量(ncb)即为人体单纯运动的消耗,可公式化为:ncb=tcb-rmrcb其中,tcb代表人体总热量的消耗,rmrcb是静息代谢率的热量消耗量。而男性和女性总热量的消耗量(tcb)是不同的,并且,tcb与一个人的身高、体重、年龄和做完运动后的心率有关,可公式化为:其中,w,h和age分别代表体重,身高和年龄。hr代表做完运动后立即测得的心率。tcbm表示男性的tcb,tcbf表示女性的tcb。计算静息代谢的热量消耗量(rmrcb)可以公式化如下:rmrcb=[(bmr×1.1)/24]×t其中,bmr代表人体的基础代谢率,t代表做运动的时间。根据harris-benedict方程,男性和女性的bmr是不同的,男性的基础代谢率消耗量和女性的基础代谢率消耗量可公式化如下:bmrm=13.75×w+5×h-6.76×age+66bmrf=9.56×w+1.85×h-4.68×age+665分别对15名男性和14名女性进行数据采样,测试他们在3分钟(0.05小时)内能做多少个动作,并且在他们运动后立刻测试并记录他们的心率(hr)。随机挑选的这30名测试者的身高、体重和年龄各不相同。然后,利用上述公式计算每个人运动3分钟后的净卡路里消耗量(ncb)。根据经过上述计算得到的这30个人的ncb值,进一步通过取平均值得到做每个动作的ncb值,作为做每个规定动作所消耗的ncb值。15名男性测试者和15名女性测试者的体重、身高和年龄以及最终得到的数据信息如表1和表2所示。根据采样得到的测试者的体重、身高、年龄、以及做4种动作分别消耗的ncb值的数据信息,通过多元线性回归,构建出做这4种动作分别的热量消耗计算公式:ncb1=-0.1134-0.0002w+0.0007h+0.0009agencb2=-0.1134-0.0002w+0.0007h+0.0009agencb3=0.0373+0.001w-0.0002h+0.001agencb4=-0.2465+0.0005w+0.0019h+0.0008age表1malew(kg)h(cm)agencb1ncb2ncb3ncb4175180250.270.030.110.14280175280.290.040.130.16368175230.230.020.090.16465170220.270.010.090.16580183480.270.050.140.18660173240.250.020.100.16772180230.270.010.090.14875181220.270.030.110.14980175280.290.040.130.161068175230.230.020.090.161165170220.270.010.090.161280183480.270.050.140.181360173240.250.020.100.161472180230.270.010.090.141575180250.270.030.110.14表2步骤2:统计人体运动消耗量。利用已有数据对步骤3中的热量消耗计算公式进行残差分析,最终得到的结果基本都在置信区间内,故说明步骤1中的公式可行。然后,通过每个动作所做的次数和做每个动作所消耗的热量近似得到总热量(ncbfinal),可公式化如下:ncbfinal=∑counti×ncbi其中,i∈(1,2,3,4),counti表示对每个动作的计数,ncbi分别代表做一次深蹲、击掌、扩胸和高抬腿动作消耗的ncb值。上述虽然结合附图对本申请的具体实施方式进行了描述,但并非对本申请保护范围的限制,所属领域技术人员应该明白,在本申请的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本申请的保护范围以内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1