本发明涉及跳绳识别处理,特别涉及一种基于图像识别的花式跳绳识别算法。
背景技术:
1、目前基于图像识别的跳绳计数算法,主要是利用摄像头拍摄视频,视频逐帧输入到预训练的关键点识别模型,找到人体关键点,例如鼻子,肩膀,髋部等在该帧图像中的位置,按时间顺序记录多帧图像里面所选关键点的数据,通过判断所选关键点上下起伏的幅度是否大于阈值来确定是否在进行跳绳,并且计算起伏的次数来实现跳绳计数。
2、这些实现方法一般要求人体正对着摄像头,一旦跳绳过程中身体发生了转动,遮挡了部分关键点,就无法正常完成跳绳计数的任务。并且只能进行简单的跳跃次数统计,不能识别一些花式动作。
3、这些实现方法往往要求用户全身都在图像里面,并且在图像中的占比不能太小,也就是离摄像头不能太远,否则关键点上下起伏的幅度很可能就达不到跳绳计数的阈值,导致跳绳计数的准确性就会下降。一般会通过显示设备,告知用户需要移动身体,把图像中的身体移动到某个框框内来限制用户的位置。对于跳绳速度较慢,只有一些简单动作的情况还是比较容易做到的,但是用户在做一些花式动作的时候,因为动作比较大,很容易就会偏离位置,导致原来的计数算法无法正常完成跳绳计数。因此,需要研发一种更为精确的基于图像识别的花式跳绳的识别方法。
技术实现思路
1、本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于图像识别的花式跳绳识别算法。
2、本发明的一种实施例解决其技术问题所采用的技术方案是:一种基于图像识别的花式跳绳识别算法,花式跳绳识别算法包括以下步骤:
3、s1:摄像头采集视频数据并送入处理器,处理器逐帧进行人体关键点的识别;
4、s2:确定跳跃特征关键点,利用跳跃特征进行目标窗口划分;
5、s3:根据关键点的可见性,判断跳跃目标窗口是否有效;
6、s4:提取目标窗口的数据特征;
7、s5:根据数据特征,判断当前窗口是否为一次跳跃;
8、s6:根据脚踝特征和手腕特征,分别识脚踝和手腕的花式动作。
9、作为优选的,在步骤s1中,处理器可对摄像头采集的视频数据进行实时处理识别,或者,所述处理器可对摄像头保存的视频数据进行处理识别;
10、人体关键点的信息放进队列进行缓存,选取人体关键点识别模型,有以下要求:
11、a1:至少能够输出以下关键点:左肩、右肩、左髋、右髋、左膝、右膝、左腕、右腕、左踝及右踝;
12、a2:关键点信息包含在图像中的x和y坐标,并进行归一化处理;
13、a3:关键点信息包含可见性,输出的可见性指标归一化到0到1之间,0表示不可见,1表示可见。
14、作为优选的,步骤s2:确定跳跃特征关键点,利用跳跃特征进行目标窗口划分的具体方法如下:
15、s21:定义图像的左上角坐标为(0,0),右下角的坐标为(1,1),当一个点的y坐标变小,该点在图像中是往上走;y坐标变大,该点在图像中是往下走;
16、s22:选择左肩和右肩,或者左髋和右髋的数据作为跳跃特征关键点g左和g右,截取跳跃特征关键点g左和g右的y坐标数据;
17、s23:跳跃特征关键点g左和g右的y坐标的数据分别进行4个点的滑动平均滤波之后放入队列,初始状态下默认g左为跳跃特征关键点,当某个数据点高于前一个数据和后一个数据时,确定为“峰”,连续两个峰之间g左所有数据点的可见性属性求平均,如果可见性均值大于阈值m1,就认为找到目标窗口t;
18、如果可见性均值小于阈值m1,就把默认的跳跃特征关键点改成g右,继续进行窗口查找,当g右的可见性不满足阈值要求,跳跃特征关键点改回g左;记录第一个峰对应的采样序号为目标窗口的起点,第二个峰对应的采样序号为目标窗口t的终点。
19、作为优选的,步骤s3:根据关键点的可见性,判断跳跃目标窗口是否有效的具体方法如下:
20、计算左右半身的肩膀、脚踝、手腕关键点的可见性指标的平均值;
21、当左肩和右肩两个关键点的可见性平均值都小于阈值m2,判断目标窗口t无效;
22、当左踝和右踝两个关键点的可见性平均值都小于阈值m2,判断目标窗口t无效;
23、当左腕和右腕两个关键点的可见性平均值都小于阈值m2,判断目标窗口t无效。
24、作为优选的,步骤s4:提取目标窗口的数据特征,具体方法如下:
25、计算尺度因子l,如果跳跃特征关键点在左半身,即g左,尺度因子l为窗口内所有左髋y坐标与左肩y坐标差值的平均值;如果跳跃特征关键点在右半身,即g右,尺度因子l为窗口内所有右髋y坐标与右肩y坐标差值的平均值;提取跳跃特征关键点在窗口内的以下特征:
26、特征a1:起点y坐标与窗口内y坐标最小值的差值;
27、特征a2:终点y坐标与窗口内y坐标最小值的差值;
28、特征a3:窗口内前一个点与后一个点y坐标差值的绝对值的平均值;
29、特征a4:起点y坐标和终点y坐标的均值为基准,所有点的y坐标与基准的差值的绝对值的平均值;
30、特征a5:终点的采样序号减去起点的采样序号再除以视频的帧率;
31、特征a6:计算跳跃特征点与其所在半身的膝盖关键点的相关系数;
32、特征a1至a4的结果还需要除以尺度因子l,用于实现y轴数据的动态缩放。
33、作为优选的,步骤s5:根据数据特征,判断当前窗口是否为一次跳跃的方法为特征阈值法或标签训练法;
34、特征阈值法:给目标窗口内的各个特征设置对应阈值,当一个或多个特征都满足阈值要求,即为识别到一次跳跃动作;
35、标签训练法:采集大量跳绳数据,查找目标窗口并提取记录特征,给每个窗口打上是否跳跃的标签,利用特征和标签训练机器学习模型,得到预测模型,再使用预测模型对后面提供的目标窗口进行是否跳跃的识别。
36、作为优选的,步骤s6:根据脚踝特征和手腕特征,分别识脚踝和手腕的花式动作中,根据脚踝特征可识别并脚跳、左右脚交叉或开合跳花式动作,具体方法如下:
37、并脚跳:计算目标窗口内左右脚踝y坐标的相关系数,当相关系数大于阈值m3,即为并脚跳;如果不能识别为其他类型,默认为并脚跳;
38、左右脚交叉:计算目标窗口内左右脚踝y坐标的相关系数,当相关系数小于阈值m4,即为左右交叉跳;
39、开合跳:左右脚踝和左右肩的平均可见性都大于0.9,计算窗口内左右脚踝x坐标的相关系数,当相关系数小于阈值m5,且窗口内的左脚踝和右脚踝的“x坐标最大值减去最小值”,分别都大于左肩和右肩的“x坐标差值的绝对值的三分之一”即为开合跳。
40、作为优选的,步骤s6:根据脚踝特征和手腕特征,分别识脚踝和手腕的花式动作中,根据手腕特征,可识别单摇、双摇、多摇、单交叉、双交叉或多交叉的花式动作。
41、作为优选的,根据手腕特征,识别花式动作的具体方法如下:
42、s61:选取有效手;当左腕的平均可见性大于0.8,且右腕平均可见性小于0.8时,选择左腕;当左腕的平均可见小于0.8,且右腕平均可见性大于0.8时,选择右腕;当左右腕平均可见性都大于0.8时,选择算出摇数更多的那只手;左右手都小于0.8,不进行摇数的识别;
43、s62:目标窗口内,任意时刻,有效手的y坐标小于该有效手所在半身的肩与髋y坐标的平均值时,不进行摇数的识别;
44、s63:选取有效手的手腕的x坐标,计算窗口内x坐标峰值的数量;
45、s64:对有效手x坐标进行差分滤波,然后再进行4个点的滑动平均;
46、s65:统计差分和平滑之后,窗口内的峰值和谷值的数量,数量较大的即为摇数;
47、s66:定义摇数1为单摇,摇数2为双摇,摇数大于等于3为多摇的花式动作。
48、作为优选的,根据手腕特征,识别花式动作的具体方法还包括是识别交叉动作的步骤,具体如下:
49、s67:若左腕和右腕的平均可见性都大于0.8,则进行交叉动作的识别,包括如下步骤:
50、s671:计算阈值m6:左肩x坐标减右肩x坐标的绝对值的平均值;
51、s672:计算阈值m7:左肩x坐标减右肩x坐标的绝对值的平均值,再除以5;
52、s673:目标窗口内左腕和右腕x坐标的最大值减最小值都大于阈值m6,且左腕和右腕x坐标的相关系数小于阈值m8,则识别为交叉动作;
53、s674:对每一跳的交叉动作的计数,取左肩x坐标为左腕的基线,右肩x坐标为右腕的基线;按采样的时间顺序对目标窗口内的数据进行以下判断:
54、当手腕的x坐标减去基线的结果,从小于阈值m7变成大于阈值m7,交叉计数加1;当手腕的x坐标减去基线的结果从大于阈值m7变成小于阈值m7,交叉计数加1;
55、s675:交叉计数为1识别为单交叉,交叉计数为2识别为双交叉,交叉计数大于等于3识别为多交叉的花式动作。
56、本发明的有益效果:通过动态选择关键点,解决了固定关键点被遮挡后无法完成跳绳计数的问题,通过尺度缩放技术,解决了人体在图像中占比太小会影响跳绳计数精度的问题,可对跳绳花式动作进行识别,并且,合理的特征选择,提高了跳绳计数的准确性。