发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种用于动作识别的基于标志点的动作识别方法及终端设备,以准确判断运动物体的行为动作,从而使得计算机可以根据这些动作完成游戏、运动、健身、完成计算机操作等功能。
为了达到上述目的,本发明采取了以下技术方案:
一种基于标志点的动作识别方法,包括步骤:
通过坐标获取设备,获取运动物体上的当前标志点的空间坐标;
根据所述当前标志点的空间坐标与之前获取的先前标志点的空间坐标来确定所述当前标志点和所述先前标志点的匹配关系,以跟踪每一个当前标志点的运动状态;
根据项目的需求,选择正确的当前标志点;
根据所述正确的当前标志点在运动物体上的部位和相关物理信息,确定所述运动物体的动作状态。
其中,确定所述当前标志点和所述先前标志点的匹配关系包括:
确定所述当前标志点与所述先前标志点之间的距离;
认定所述当前标志点中与每一所述先前标志点的距离均大于预定值的当前标志点为新出现的标志点。
其中,确定所述当前标志点和所述先前标志点的匹配关系进一步包括:
对所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,对各排列组合中的所述剩余当前标志点与对应的所述先前标志点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。
其中,确定所述当前标志点和所述先前标志点的匹配关系进一步包括:
将所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,计算所述先前标志点按原运动状态运动后的预期标记点的空间坐标,对各排列组合中的所述剩余当前标志点与对应的所述预期标记点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。
其中,确定所述当前标志点和所述先前标志点的匹配关系进一步包括:认定所述剩余当前标志点中未找到相匹配先前标志点的当前坐标点是新出现的标志点。
其中,确定所述当前标志点和所述先前标志点的匹配关系进一步包括:认定未找到相匹配当前标志点的先前标志点静止。
其中,确定所述当前标志点和所述先前标志点的匹配关系进一步包括:认定在至少两次跟踪过程中均未找到相匹配当前标志点的先前标志点消失。
其中,所述物理信息包括:位置、速度、加速度或/和变加速度。
其中,选择正确的当前标志点包括:
根据运动物体的具体运动特征,选取标志点参考位置;
计算每个当前标志点相对该参考位置的评估值,确定评估值最低的当前标志点为所述正确的当前标志点,所述评估值计算公式为:评估值=X方向的距离差×x系数+Y方向的距离差×y系数+Z方向的距离差×z系数;其中,x系数、y系数、z系数都是计算评估值的调整系数。
本发明提供一种终端设备,用于标志点的跟踪及选取,其包括:
标志点获取单元,用于获取运动物体上的当前标志点的空间三维坐标;
匹配单元,用于根据所述当前标志点的空间三维坐标与之前获取的先前标志点的空间三维坐标来确定所述当前标志点和所述先前标志点的匹配关系,以跟踪每一个当前标志点的运动状态;
标志点选取单元,用于根据项目的需求,选择正确的当前标志点;
运动状态确定单元,用于根据所述正确的当前标志点在运动物体上的部位和相关物理信息,确定所述运动物体的动作状态。
其中,所述标志点选取单元,包括:
位置选取单元,用于根据运动物体的具体运动特征,选取标志点参考位置;
评估值计算单元,用于计算每个当前标志点相对该参考位置的评估值,确定评估值最低的当前标志点为所述正确的当前标志点,所述评估值计算公式为:评估值=X方向的距离差×x系数+Y方向的距离差×y系数+Z方向的距离差×z系数;其中,x系数、y系数、z系数都是计算评估值的调整系数。
其中,所述匹配单元,包括:
距离确定单元,用于确定所述当前标志点与所述先前标志点之间的距离;
标志点确定单元,用于认定所述当前标志点中与每一所述先前标志点的距离均大于预定值的当前标志点为新出现的标志点。
其中,所述匹配单元还用于对所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,对各排列组合中的所述剩余当前标志点与对应的所述先前标志点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。
其中,所述匹配单元还用于将所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,计算所述先前标志点按原运动状态运动后的预期标记点的空间坐标,对各排列组合中的所述剩余当前标志点与对应的所述预期标记点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。
其中,所述匹配单元还用于认定所述剩余当前标志点中未找到相匹配先前标志点的当前坐标点是新出现的标志点。
其中,所述匹配单元还用于认定未找到相匹配当前标志点的先前标志点静止。
其中,所述匹配单元还用于认定在至少两次跟踪过程中均未找到相匹配当前标志点的先前标志点消失。
本发明提供一种用于动作识别的基于标志点的动作识别方法及终端设备,通过运动物体的三维空间坐标来进行动作识别的,通过物体的三维空间信息,可以计算得到物体的加速度、速度、各平面的投影位置,从而全面准确的反映物体的动作情况。从而使得计算机可以根据这些动作完成游戏、运动、健身、完成计算机操作等功能。
具体实施方式
本发明实施例提供一种基于标志点的动作识别方法及终端设备,通过三维坐标设备,获取运动物体上的当前标志点的空间三维坐标;根据所述当前标志点的空间三维坐标与之前获取的先前标志点的空间三维坐标来确定所述当前标志点和所述先前标志点的匹配关系,以跟踪每一个当前标志点的运动状态;根据项目的需求,选择正确的当前标志点;根据所述正确的当前标志点在运动物体上的部位和相关物理信息,确定所述运动物体的动作状态。从而全面准确的反映物体的动作情况。
如图1,本发明实施例提供的标志点的跟踪及选取方法包括步骤:
101、获取运动物体标志点的空间三维坐标;
通过三维坐标捕获设备(如摄像机、照相机、超声定位设备等),获取人身上或者其他运动物体(在本实施例中主要是以人为例进行描述本发明的技术方案的)的某个或者某些点、或者某个或者某些部位的空间三维数据,如:通过人体识别技术得到人的手或者脸的位置,或者得到附着在人身上的物体,比如纽扣,或者帽子,或者手套,或者手柄,或者球拍,或者其他标志点的空间坐标位置和方向,上述的人体部位和附着在人身上的物体统称为标志点。
102、根据所述当前标志点的空间三维坐标与之前获取的先前标志点的空间三维坐标来确定所述当前标志点和所述先前标志点的匹配关系,以跟踪每一个当前标志点的运动状态。
由于上述的标志点定位系统(上述三维坐标捕获设备)是有时间间隔性的,而且标志点有些是无差别的,比如左手的标志点和右手的标志点可能是一样的。所以,对于获取的标志点数据来说,需要对标志点进行跟踪处理,以区别每一个标志点的运动状态。
在本实施例中,先确定所述当前标志点与所述先前标志点之间的距离;
认定所述当前标志点中与每一所述先前标志点的距离均大于预定值的当前标志点为新出现的标志点。
在本实施例的进一步的实施例中,还可以对所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,对各排列组合中的所述剩余当前标志点与对应的所述先前标志点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。
另外,在上述进一步的实施例中,还可以将所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,计算所述先前标志点按原运动状态运动后的预期标记点的空间坐标,对各排列组合中的所述剩余当前标志点与对应的所述预期标记点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。
具体的,以跟踪2个标志点为例来描述:
首先:本实施例的跟踪方案主要基于2个假定:
假定(1):运动中的多个目标,在前后2次定位中,会趋向于变化量最小的方式;
如:图2中是对2个相同物体的跟踪示意图,以黑色圈和斜阴影线圈分别表示2个物体,并对这2个物体进行区别以说明。
图2(A)表示在第一次定位中,得到2个物体B1(黑色圈)、G1(斜阴影线圈),分别用黑色圈和斜阴影线圈来区别;
图2(A)在经过了时间t后的第二次定位中,由于黑色圈和斜阴影线圈表示的2个物体都在运动,它们都离开了第一次定位时的位置,因此,得到了2个新的位置信息R1、R2,由于无法区别,都以方格阴影圈来表示;
于是,就可能出现2种情况:情况1是B1移动至R1,G1移动至R2;情况2是B1移动至R2,G1移动至R1;
分别计算上面两种情况下,物体产生的变化量,以移动距离进行衡量:
情况1:变化量1=B1至R1的距离+G1至R2的距离;
情况2:变化量2=B1至R2的距离+G1至R1的距离;
从图中可以看出,变化量2要大于变化量1;
因此,根据假定,可以认为,情况1就是B2(黑色圈)和G1(斜阴影线圈)2个物体在经过时间t后的各自的位置,如图2(C)所示。
假定(2):由于惯性,物体会尽量保持其原有的运动状态。
该假定(2)是为了更加准确的对上述假定1进行计算。
比如,图3是对2个相同物体的连续跟踪示意图,以黑色圈和斜阴影线圈分别表示2个物体,并对这2个物体进行区别以说明。
图3(A)中,已经对这2个物体进行了追踪,其中,虚线表示第一次定位时,这2个物体的位置;实心圆表示第二次定位时,这2个物体各自的位置,分别以黑色圈和斜阴影线圈进行区别;可以看出,这2个物体均有各自的运动趋势;
如图3(B),经过了时间t后的第三次定位中,由于黑色圈和斜阴影线圈2个物体都在运动,它们都离开了第一次定位时的位置,因此,得到了2个新的位置信息R1、R2,由于无法区别,都以方格阴影圈表示;
但是,由于时间t较长,使得R1、R2距离B1和G1较远,由假定1计算出来的差值并不明显,所以容易产生错误的判断。
于是,根据假定2,假定物体会保持原有的运动状态,这里以速度衡量,那么在第三次的定位时,如果B1、G1各自保持原有的运行速度,将会运动到图3(C)中的B1’和G1’的位置;
这时,回到假定1,对B1’、G1’和R1、R2进行变化量的计算:
情况1:变化量1=B1’至R1的距离+G1’至R2的距离;
情况2:变化量2=B1’至R2的距离+G1’至R1的距离;
从图上可以看出,变化量2要大于变化量1。
因此,根据假定2和假定1,可以认为,该假定2中的情况1就是黑色圈和斜阴影线圈的2个物体在第三次定位后的各自的位置,如图3(D)所示。
因此,基于上述假定,跟踪具体实施处理步骤包括:
(1)、确定当前标志点与所述先前标志点之间的距离;
认定所述当前标志点中与每一所述先前标志点的距离均大于预定值的当前标志点为新出现的标志点。其中,所述预定值为按照匀速运动时的移动距离的距离值。
在进一步的实施例中,对所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,对各排列组合中的所述剩余当前标志点与对应的所述先前标志点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。或者,
将所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,计算所述先前标志点按原运动状态运动后的预期标记点的空间坐标,对各排列组合中的所述剩余当前标志点与对应的所述预期标记点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。
即:如果已有的先前标志点,在此次得到的目标数据中,没有与之匹配的当前标志点,那么按照假定2,该跟踪标志点将保持原有的运动状态继续运动。
(2)、确定上述步骤(1)之后,还可以认定所述剩余当前标志点中未找到相匹配先前标志点的当前坐标点是新出现的标志点。那么这些标志点当作新出现的目标进行跟踪。即:在本次定位中,如果某一新定位的标志点,于所有没有配对的标志点之间的变化量大于该定位目标类型此类变化量的理论数值,那么认为,这个新定位的标志点是一个新的目标。
(3)、确定上述步骤(1)之后,还可以认定未找到相匹配当前标志点的先前标志点静止。即:
如果该实施例用于人体手上的标志点跟踪,由于人体手部运动的速度相对比较快,运动维度较复杂,在发现该标志点本次运动状态接近人体运动极限数据时,假定2不再适用,而假定该标志点保持静止;
(4)、对于步骤(3)过程后,还可以认定在至少两次跟踪过程中均未找到相匹配当前标志点的先前标志点消失。即:
如果一个标志点在连续的多个定位时无法找到与之匹配的位置,则认为这个标志点已经消失了。
103、根据项目的需求,选择正确的当前标志点。
根据项目的需求,挑选出正确的当前标志点,人的身上可能同时附着多个标志点,而只需要其中的某个或者某几个。比如,头球时,只需要头部标志点的位置信息;跑步时,需要脚部标志点的位置;打球时,需要手部标志点的位置信息。
在本实施例中,选取标志点包括:
而上述步骤102跟踪到的标志点可能是无差别的,如图4所示,目前是跑步项目,需要脚部的标志点,图4中前方的人脚上有真正需要的标志点。同时,他手部拿着一个一样的标志点;头顶的灯光由于闪烁,被定位系统(三维坐标设备)当成一个无差别的标志点;身后的人,脚上佩戴着同样的标志点正在休息,而他手部的标志点被随意的放置在沙发上。这样,一共出现了5个没有差别的标志点(图4中的小黑圆点示意为标志点),而其中只有一个是真正需要的。
由于人体在运动的过程中,是全身各个部分同时运动,比如跑步或者高抬腿,人的腿部和手部都会运动,并且由于致力于平衡,难免发生前后左右的移动。这就决定了,这些标志点可能都是处于运动之中,而且相对最初位置都会发生不确定的偏移。这样,仅凭运动和静止,或者运动和小范围移动都不足以区分腿部的标志点和手部的标志点。
于是,设定一个最佳位置即参考位置,为每个标志点与最佳位置的距离进行打分,确定评估值,其中,评估值最低的标志点就是需要的标志点,如果需要多个点,那么评估值最低的几个标志点就是需要的标志点。
在本实施例中,该确定所需要标志点的基本步骤包括:
设定一个最佳位置,根据具体的运动特征,选择一个标志点最常出现的位置。比如,如果是跑步运动,需要寻找脚部佩戴的标志点,那么可以确定,脚部的标志点最常出现的地方应该偏下一点,假定为点A(Xa,Ya,Za);
给每个出现的标志点B(Xb,Yb,Zb)计算一个评估值,评估值计算按如下公式:
评估值=X方向的距离差×x系数+Y方向的距离差×y系数+Z方向的距离差×z系数;
其中,x系数、y系数、z系数都是计算评估值的调整系数
这样,可以认为,所有的标志点当中,得分最低的标志点,就是需要的标志点。
比如,图5中的手部和脚部的标志点,可以把最佳位置设得离地面较近。这样,由于在人跑步的过程中,手部都会高于脚部,手部标志点的评估值会高于脚部标志点的评估值,从而被区别开来。具体还包括以下三种情况:
(1)由于人在活动的过程中会发生左右、前后的偏移,所以可能出现在人发生左右偏移后,手部的标志点与设定的最佳位置在直线距离上小于腿部的标志点。
由图5和图6可见,上述情况是发生左右偏移产生的,即空间X方向的偏移产生的。但是,对于上下的偏移,即空间y方向,手部仍然要高于腿部。于是,在计算评估值时,提高y方向的系数,这样,y方向上的差距将产生更高的评估值,从而被区别开来。前后偏移为Z方向。
比如:
最佳位置三维坐标为(0,10,200),单位为厘米,原点为:电视的正下方地面,即距离电视2米,距离地面10厘米的地方。
发生偏移后,手部坐标(50,50,200),腿部坐标(80,30,200)
于是,没有系数的计算评估值为:
手部评估值:(50-0)+(50-10)+(200-200)=90
腿部评估值:(80-0)+(30-10)+(200-200)=100
手部评估值低于腿部评估值,会产生错误的判断。
增加系数后的计算:
手部评估值:(50-0)×1+(50-10)×5+(200-200)×1=250
腿部评估值:(80-0)×1+(30-10)×5+(200-200)×1=180
腿部评估值低于手部评估值,得到正确的标志点。
(2)如果需要选择多个标志点,比如在双手和双脚都佩戴标志点的情况下,要把2个手部标志点选取出来,可以采用把最佳位置定为较高的地方,这样,最低评估值的2个标志点就是2个手部标志点。
(3)对最佳位置的选择可以演化为各种不同的选择特例,比如:
把最佳位置设置为电视屏幕的最中心,那么,就形成了最前适合原则,距离电视屏幕最近的标志点就是需要的标志点;
把最佳位置设置在左边很远的位置,那么就形成了最左适合原则,这样有利于进行2次选取。比如,以最佳位置原则选取出了2个手部标志点后,就可以用最左适合原则来区别左手和右手标志点。
上述系数确定的原则一般为:如果哪个分量方向上可能出现干扰标志点,那么就增加这个分量方向的系数。例如,上面的腿和手,相对于腿,手作为干扰主要是在y方向的区别,所以,增加了y方向的系数。
最佳位置一般就是项目进行时,标志点最可能出现的位置。比如,在跑步时,腿部标志点最可能出现的位置就是距离地面很近的地方;在鼠标操作时,标志点就会处于人手自然抬起的高度,且距离电视较近的地方。
104、根据所述正确的当前标志点在运动物体上的部位和相关物理信息,确定所述运动物体的动作状态。
首先,计算出每个标志点的物理信息,具体包括:
由于上述的标志点定位系统(三维坐标设备)是有时间间隔性的,所以,对于一个标志点来说,在一定的时间段内,能够得到一个标志点的很多位置数据,比如1秒40个位置数据,这样,这些数据就形成了一系列离散的点;通过这些点的空间坐标位置和方向和获取的时间间隔,可以计算出这些点在三维空间中的速度、加速度和变加速运动的变加速度。如果定位系统获得了多个标志点的位置和方向,通过跟踪步骤,可以计算出每个标志点的位置、速度、加速度、变加速度等物理信息。
在本实施例中,根据所述正确的标志点在运动物体上的部位和所述物理信息,确定所述运动物体的动作状态。具体包括:
根据标志点在人身体上的部位,计算得到的标志点的物理信息,推算出人在做什么动作。
其中,要判断人是否做了一个出直拳的动作,包括以下步骤:
(1)首先,根据跟踪,可以得到手部标志点的连续数据;
(2)通过计算,可以得到手部标志点连续的位置,速度和加速度;
(3)对标志点的速度进行分析,如图7所示,水平线代表时间,垂直线代表标志点的速度在z方向上的分量,即向前的速度,直拳速度阈值的直线代表一般人出直拳时的平均速度;
在人出直拳时,必然是一个准备,加速将拳头送出,在达到击打位置后,拳头停止前进的过程。这一过程中,手部标志点跟随着拳头运动,也将经历一个加速,保持,减速的过程。将这一过程中,标志点前进方向上的速度将形成上图所示曲线。
对于一般人来说,出直拳最大会有一定的速度值,比如约5米每秒,即一般人出拳的最大速度是5米每秒;而一般人随意的向前摆手是不会达到出拳的最大速度的,可以统计出,一般人被认定为摆手而不是出拳的最大速度为2米每秒。
于是,在跟踪计算的同时,会判断标志点是否超过了摆手的速度(2米每秒),比如3米每秒,如果达到了这个速度,就可以认为,人已经开始做出拳的动作了。
接下来,手部标志点速度会继续增长,在达到击打点后,速度降低,当标志点速度重新回到开始判断出拳的速度(3米每秒)时,就可以判断出这一动作结束了。
当然,也可以通过加速度来判断这一过程,因为出拳必然经历一个加速过程,其判断原理和速度判断一致。
相应的,本发明实施例还提供一种终端设备,用于标志点的跟踪及选取,如图8所示,该终端设备包括:
标志点获取单元810,用于获取运动物体上的当前标志点的空间三维坐标;
跟踪处理单元820,用于根据所述当前标志点的空间三维坐标与之前获取的先前标志点的空间三维坐标来确定所述当前标志点和所述先前标志点的匹配关系,以跟踪每一个当前标志点的运动状态;
匹配单元830,用于根据项目的需求,选择正确的当前标志点;运动状态确定单元840,用于根据所述正确的当前标志点在运动物体上的部位和相关物理信息,确定所述运动物体的动作状态。
进一步的实施例中,所述标志点选取单元830,如图9所示,包括:
位置选取单元831,用于根据运动物体的具体运动特征,选取一个标志点【如:A(Xa、Ya、Za)】的参考位置;
评估值计算单元832,用于计算每个出现的标志点在该参考位置的评估值,确定得分最低的标志点为所需要的正确标志点,所述评估值计算公式为:评估值=X方向的距离差×x系数+Y方向的距离差×y系数+Z方向的距离差×z系数;其中,x系数、y系数、z系数都是计算评估值的调整系数。
进一步的实施中,所述匹配单元820,如图10所示,包括:
距离确定单元821,用于确定所述当前标志点与所述先前标志点之间的距离;
标志点确定单元822,用于认定所述当前标志点中与每一所述先前标志点的距离均大于预定值的当前标志点为新出现的标志点。
进一步的实施例中,所述匹配单元820还用于对所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,对各排列组合中的所述剩余当前标志点与对应的所述先前标志点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。
进一步的实施例中,所述匹配单元820还用于将所述当前标志点中的剩余当前标志点与所述先前标志点的可能匹配关系进行排列组合,计算所述先前标志点按原运动状态运动后的预期标记点的空间坐标,对各排列组合中的所述剩余当前标志点与对应的所述预期标记点之间的距离进行求和,根据距离求和最小的排列组合来确定所述剩余当前标志点和所述先前标志点的匹配关系。
在上述实施例的进一步的实施例中,所述匹配单元820还用于:
认定所述剩余当前标志点中未找到相匹配先前标志点的当前坐标点是新出现的标志点。或者,所述匹配单元820还用于认定未找到相匹配当前标志点的先前标志点静止。另外,在该实施例的进一步的实施例中,所述匹配单元820还用于:认定在至少两次跟踪过程中均未找到相匹配当前标志点的先前标志点消失。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。