本发明属于计算机应用领域,更具体地说,涉及一种体感舞蹈动作判定方法。
背景技术:
随着计算机应用技术的飞速发展,人们进行舞蹈健身、娱乐的方式也发生了巨大的变化。目前在计算机上进行舞蹈运动的实现方式主要有如下两种
用计算机键盘来操作,比如网络非常流行的劲舞团等。屏幕上会出现一连串的方向键,操作者根据屏幕的提示,在适当的时间内快速连续的按下方向键。
使用跳舞毯操作,使用者将电脑和跳舞毯连接好,站在跳舞毯上,屏幕上会出现一连串的方向键,操作者根据屏幕的提示用脚踩下对应的方向即可。
使用计算机键盘操作,其本身只是使用了人的手,身体的其他部位并没有运动,而且手也只是用于按键盘,动作非常单一死板,操作时间长了手指就会感觉很累,并且由于长时间保持坐姿,对身体也没有好处,更没有任何的健身意义。这种游戏和真实舞蹈运动来说,相差甚远。
使用跳舞毯比操作键盘进步了很多,操作者可以解放手指,并且运动起来,但是其缺点也是非常明显的:
1、跳舞毯的制作材料基本上是由泡棉型塑料薄膜制作而成,其主要缺点是在家中使用的时候,塑料薄膜在地板上会打滑,必须得在下面垫上帆布等布料增加摩擦。
2、跳舞毯内部用一段时间也会老化,其内部构造就像键盘一样,或者是一些压感元件。时间一长跳舞毯经常自动失灵,比如左边方向键呈现一直按住的状态等。
3、人体各种舞蹈的姿势都被忽略了。游戏并不知道我们做了什么动作,当然也不能判断我们动作的正确性,游戏只是简单的检测按键是否被按下了。
以上技术的本质都是在一定的时间内检测按键是否被按下,根据按下方向键的情况记分,并不涉及到人体的运动动作。
因此,需要一种能更真实的反应人体动作,能记录下每个动作的轨迹,且能判断出跳舞者的动作是否标准的方案,来克服现有技术中存在的上述缺陷。
技术实现要素:
本发明所要解决的技术问题在于,针对现有舞蹈动作判定技术中不能实时反应人体动作和运动轨迹的问题,提供一种体感舞蹈动作判定方法。
本发明解决其技术问题所采用的方案是:
s1)在人体上设置跟踪点,在人体的舞蹈动作过程中采集该跟踪点在不同时刻的空间位置数据;所述空间位置数据以三元组三维坐标的方式保存;
s2)基于需要判断的动作要求,计算该跟踪点的相应动作数据;
s3)根据标准动作数据及其判断标准和s2计算出的动作数据,对该舞蹈动作进行判定;
s4)对判定结果进行输出提示。
在本发明提供的舞蹈动作判定方法中,所述舞蹈动作分为直线动作和曲线动作。
在本发明提供的舞蹈动作判定方法中,所述步骤s2包括如下步骤:
s21)将所述直线动作所对应的一组空间位置数据投影到由两个参考轴定义的第一参考平面,以获得一组一次投影点,其中该两个参考轴分别记为a轴、b轴,该一次投影点的投影坐分别标记为:
s22)计算所述一次投影点在该两个参考轴上的平均值:
s23)计算方差:
s24)计算斜率:
s25)根据所述斜率和所述截距离确定一拟合曲线,并计算该拟合曲线相对所述参考轴的角度以作为所述直线动作的角度,再将该一次投影点投影到该拟合曲线上以获得二次投影点,计算该二次投影点中距离最大的两个二次投影点,并计算该两个二次投影点所对应的一次投影点的距离作为该直线动作的距离。
在本发明提供的舞蹈动作判定方法中,在步骤s3中,根据该直线动作的角度及距离对所述直线动作进行判定。
在本发明提供的舞蹈动作判定方法中,在步骤s3中,确定该直线动作的角度与标准角度的差值,并根据正切变换递减方式确定角度判定值,以及确定该直线动作的距离与标准距离的差值,并根据线性递减方式确定距离判定值,并按对应权重进行求和。
在本发明提供的舞蹈动作判定方法中,所述判定方法包括进一步确定所述直线动作在与所述第一参考平面垂直且相互垂直的第二参考平面和第三参考平面内的所述角度判定值和所述距离判定值,并对所述第一参考平面、所述第二参考平面和所述第三参考平面的角度判定值和距离判定值进行累计求和。
在本发明提供的舞蹈动作判定方法中,所述判定方法进一步包括,根据预定的判定次数和空间位置数据点的顺延个数,在相邻一次判定的基础上顺延预定个数的空间位置点作为再次判定的开始点,对所述直线动作再次进行判定判定,共进行预订判定次数的判定,取判定值最高的为此次舞蹈动作的最终判定值。
在本发明提供的舞蹈动作判定方法中,所述步骤s2包括:
s31)将所述舞蹈动作所对应的一组空间位置数据投影到由两个参考轴定义的第一参考平面中,以获得一组投影点;
s32)根据步骤s31计算出的该组投影点,计算每一投影点所对应的速度,并计算所述速度与标准速度的实际速度偏差;
s33)根据步骤s31计算出的该组投影点,计算每一投影点所对应的所述速度与所述参考轴之间的角度,并计算所述角度与标准角度的实际角度偏差;
s34)根据步骤s31计算出的该组投影点,计算每一投影点与前一投影点之间的距离,并计算所述距离与标准距离的实际距离偏差。
在本发明提供的舞蹈动作判定方法中,所述步骤s3包括:
s41)所述每一投影点在所述第一参考平面的评定值的计算公式为:
其中,s是每一投影点的总评定值;a是角度占总评定值的权重;b是速度占总评定值的权重,c则是距离占评定值的权重,
s42)对所述投影点的评定值进行累计求和,以获得所述舞蹈动作在所述第一参考平面的综合评定值。
在本发明提供的舞蹈动作判定方法中,所述判定方法包括进一步确定所述舞蹈动作在与所述第一参考平面垂直且相互垂直的第二参考平面和第三参考平面内的综合判定值,并进行累计求和。
在本发明提供的舞蹈动作判定方法中,所述判定方法包括:在所述舞蹈动作开始的一定时间间隔内,寻找与所述标准角度、所述标准速度、所述标准距离之间的偏差在允许范围内的投影点,并将该投影点作为判定的起始点。
在本发明提供的舞蹈动作判定方法中,所述步骤s2包括:
s51)将所述曲线动作所对应的一组空间位置数据投影到由两个参考轴定义的第一参考平面中,以获得投影曲线,并且确定所述投影曲线的开始点a和结束点b,以及由所述开始点a和所述结束点b定义的直线ab的方程以及所述直线ab与所述参考轴的夹角
s52)将所述投影曲线上所有投影点再次投影到所述直线ab上,找出投影距离最大的参考投影点c;
s53)根据参考投影点c计算参考投影点点c在直线ab上的再次投影点d;
s54)计算开始点a和结束点b之间的距离
s55)计算
在本发明提供的舞蹈动作判定方法中,在步骤s3中,判断
在本发明提供的舞蹈动作判定方法中,步骤s3进一步包括:
s61)定义投影曲线的相关系数
s62)定义距离和斜率评定值
s63)该投影曲线的综合评定值为该参考平面的相关系数乘以该参考平面的距离和斜率评定值,
在本发明提供的舞蹈动作判定方法中,所述判定方法包括进一步确定所述曲线动作分别在与所述第一参考平面垂直且相互垂直的第二参考平面和第三参考平面内的综合判定值,并进行累计求和。
实施本发明的技术方案,具有以下有益效果:本发明提供的舞蹈动作判定方法可以及时记录舞蹈动作的运动轨迹,判断舞蹈动作是否标准,更真实地反应人体舞蹈运动的情况。
附图说明
图1是本发明一较佳实施例提供的舞蹈动作判定方法流程图;
图2是本发明一较佳实施例提供的坐标图;
图3是本发明一较佳实施例提供的舞蹈动作基于点的处理方法示意图;
图4是本发明一较佳实施例提供的有延迟的舞蹈动作示意图;
图5是本发明一较佳实施例提供的基于轨迹的曲线动作投影在xy平面的处理方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明实施例提供提供的舞蹈动作识别方法流程图。如图1所示,此实施例提供的方法包括如下四个步骤:
s1)在人体上设置跟踪点,在人体的舞蹈动作过程中采集该跟踪点在不同时刻的空间位置数据;
s2)基于需要判断的动作要求,计算该跟踪点的相应动作数据;
s3)根据标准动作数据及其判断标准和s2计算出的动作数据,对该舞蹈动作进行判定;
s4)对判定结果进行输出提示。
图2是本发明实施例提供的坐标图。如图2所示,步骤s1中采集到的数据都是以三元组(x,y,z)三维坐标的方式保存,水平右手方向为x轴,向右x变大,向左x变小;竖直方向为y轴,向上y变大,向下y变小;与采集正对的方向为z轴,向前z变大,向后z变小。每秒对每个跟踪点采集30组这样的数据,这种高频率的信息采集可以得到很精确的位置信息。
对于直线动作的处理方法为:将直线动作的一组跟踪点分别投影到xy、yz、xz平面中,计算在xy平面、yz平面、xz平面相应的动作参数。
计算xy平面动作参数包括如下步骤:
s211)在xy平面,投影坐标记为:
s212)计算所有投影点在x轴,y轴的平均值:
s213)计算方差:
s214)计算斜率:
s215)根据所述斜率和所述截距离确定一拟合曲线,并计算该拟合曲线相对x轴的角度以作为所述直线动作的角度,再将该一次投影点投影到该拟合曲线上以获得二次投影点,计算该二次投影点中距离最大的两个二次投影点,并计算该两个二次投影点所对应的一次投影点的距离作为该直线动作的距离。
yz平面和xz平面的的参数计算方法和xy平面一样。
对于此直线动作的处理方式的判定打分方法为将一个动作在每个平面的总分分为两部分,角度得分和距离得分,各占总分的一半;角度得分为:如果平面角度差在5度之内,该角度的分满分,如果差大于40度,角度得分为0分,角度差在5---40之间,采用正切变换递减得分;距离得分为:直线距离误差在5cm之内,该距离的分满分,超出5cm的,按照线性方式递减,当超出的距离大于等于标准距离的一半时得0分;把三个平面的分数累计,就是整个动作的得分。
根据预定的判定次数和空间数据点的顺延个数,取判定值最高的分数为此次舞蹈动作的最终判定值。在一个实施例中,跟踪点的一组空间数据点为100个,预定的顺延个数为10,预定的判定次数为3,那么第一次根据1到100此100个空间数据点计算动作得分,第二次根据11到100此90个空间数据点计算动作得分,第三次根据21-100此80个空间数据点计算动作得分,三次计算得到三个动作得分,取分数最高的为最终动作得分。
舞蹈动作基于点的处理方法为:在舞蹈动作的一组空间位置数据点上取多个为得分判定点,计算各判定点时刻的速度、平面角度和距离上一个判定点的相对距离。一组空间位置数据点记为:
对于每一个判定点,根据在x轴、y轴、z轴的分速度,计算在每个二维平面的合速度。
根据步骤计算出的在每个二维平面的合速度,对比此舞蹈动作的每个判定点在每个二维平面标准的合速度,计算所述每个判定点在每个二维平面的实际速度偏差。
对于每一个判定点,根据判定点与每个二维平面的角度,对比此舞蹈动作该判定点在每个二维平面角度的标准角度,计算每个判定在在每个二维平面的实际角度偏差。
对于每一个判定点,根据判定点与上一个判定点的距离或第一个判定点与动作开始的空间数据点的距离,对比此舞蹈动作每个判定点标准的距离,计算实际距离偏差。
此种基于点的舞蹈动作的判定方法包括如下步骤:
s311)所述每个判定点在每个二维平面的分数计算公式为:
其中,s是这个判定点的总评定值;a是角度占总评定值的权重;b是速度占总评定值的权重,c则是距离占总评定值的权重,
s312)根据s311计算出的每个判定点在每个二维平面的得分,将每个判定点在三个二维平面的得分相加取平均值,为每个判定点的综合得分;
s313)将每个判定点的综合得分相加,就是整个动作的得分。
图3是本发明一较佳实施例提供的舞蹈动作基于点的处理方法示意图。如图3所示:曲线表示运动轨迹,t1、t2、…t8为8个判定点,每个判定点的时间间隔大致为50毫秒。例如,当启动判定后150毫秒,进入对判定点t3的计算判断:计算与xy平面的角度
其中,s是这个判定点的总分;a是角度占总分的权重;b是速度占总分的权重,c则是距离占总分的权重。
由于跳舞的人技术水平的不同,上述判断方法更适合高阶的跳舞者。由于初级跳舞者对舞蹈并不是很熟悉,因此需要根据屏幕的提示,当提示开始时,再去做出动作,期间就会存在反应时间的问题,动作开始时间就会比标准时间晚,这样就会造成整个动作的延迟。而人的动作很快,动作结束却早于标准时间,最后造成的结果就是跳舞的人动作起始晚结束得早。因此在上面所述判定方法的基础上,采用动态判断第一个点的判断方法:在一个动作的时间间隔内,从时间开始处向后寻找出第一个符合条件的点,该点必须和标准动作的第一个点在数度,角度上的误差在允许的范围内,如果找到了这样一个点,则将其作为动作的起始点。其他判定点依次顺延。
图4是本发明一较佳实施例提供的有延迟的舞蹈动作示意图。如图4所示,o点式提示开始时间,也就是舞蹈标准的开始时间,但是由于延迟的问题oa这段轨迹是无效的,人体真正的动作开始时间应该是从a点开始。所以t2、t3、t4、t5、t6依次对应标准动作的第一、第二、第三、第四、第五个点。
对于曲线动作,基于轨迹的处理方法为:将曲线动作的一组跟踪点分别投影到xy、yz、xz平面中,计算在xy平面、yz平面、xz平面相应的动作参数。
图5是本发明一较佳实施例提供的基于轨迹的曲线动作投影在xy平面的处理方法示意图。如图5所示:曲线动作在xy平面的投影为曲线acb,其中a为曲线开始点,b为曲线结束点,ab为开始点和结束点连线,
s411)通过开始点a和结束点获得直线ab的方程、直线ab与x轴的夹角
s412)将曲线acb上所有的点投影到直线ab上,找出投影距离最大的点c,点c为曲线上的点到ab距离最长的点;
s413)根据点c获得点c在ab上的投影点d。
s414)计算ab线段的距离
s415)计算
yz平面和xz平面的参数计算方式和xy平面一样。
对于此种处理方法,判定的因素有如下几个:
1、弧度
曲线的弯曲程度为
2、最高点投影距离
曲线上的最高点在ab直线上的投影点位置也是一个决定轨迹是否是曲线的因素。如果d点离a或b太近,这都不是一条标准的曲线。这个因素用
3、曲线弧顶朝向
曲线弧顶的朝向可以为上、下、左、右,对于每条轨迹,可以用两个变量来分别记录其左右朝向和上下朝向。如果最高点在直线ab的左边,则左右朝向记录为左;如果最高点在直线ab的右边,则左右朝向记录为右;如果最高点在直线ab的上边,则直线朝向记录为上;如果最高点在直线ab的下边,则直线朝向记录为下。根据标准的曲线朝向,通过比较轨迹的朝向是否与标准的一致,从而判定该轨迹是否为曲线。
满足上面全部3个条件的轨迹才能判定为合格曲线,任何一条不满足就不是合格曲线。若曲线动作为合格曲线动作,进一步计算曲线动作的得分。
计算xy平面的得分包括如下步骤:
s511)定义曲线的相关系数
s512)定义距离和斜率的分数
s513)曲线在xy平面的总分为相关系数乘以距离和斜率的分数,
yz平面和xz平面的得分计算方式和xy平面一样。将三个平面的分数累计,就是整个曲线动作的得分。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。