一种舞蹈与运动动作的智能对比矫正的方法
文献发布时间:2023-06-19 11:39:06
技术领域
本发明属于计算机视频分析和人体动作识别领域,具体涉及一种舞蹈与运动动作的智能对比矫正的方法。
背景技术
近年来,随着科学技术的快速发展,人们对生活水平要求的提高,深度学习得到快速的发展。研究人员希望研发出更加高端的技术以提高机器对人类的理解能力。正是这样的研究热潮下,运动估计与识别算法得到快速的发展。
运动估计与行为技术,当前处于理论研究并逐步应用于现实生活的阶段。它一方面用于行为预判功能的实现,通过对当前的行为分析,推测目标在下一时间轴的若干行为;另一方面用于实现高质量的人机交互体验,如用于评价和指导人的动作姿态是否准确,这对于体育、健身、舞蹈等运动领域的学习和练习有着重大的意义。
目前的人体运动识别系统中,都仅限于对人体的连续性动作进行检测和相关行为的一些识别,还未有过对两组或多组图像或视频进行姿态动作智能对比评价和智能矫正的高精准度的系统性解决方案。
发明内容
针对现有技术中的上述不足,本发明提供的一种舞蹈与运动动作的智能对比矫正的方法解决了现有技术中存在的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种舞蹈与运动动作的智能对比矫正的方法,包括以下步骤:
S1、采用人体姿态估计模型AlphaPose提取学生舞蹈视频与老师舞蹈视频中的人体关节点;
S2、将学生舞蹈视频与老师舞蹈视频进行动作对齐,并提取学生舞蹈视频与老师舞蹈视频的关键帧;
S3、根据提取的人体关节点、学生舞蹈视频的关键帧与老师舞蹈视频的关键帧,对动作对齐后的学生舞蹈视频与老师舞蹈视频进行动作相似对比;
S4、根据动作相似对比结果,找出动作差异区间,对学生动作进行可视化矫正,得到智能对比矫正结果。
进一步地,所述步骤S2中将学生舞蹈视频与老师舞蹈视频进行动作对齐包括有音乐情况的对齐和无音乐情况的对齐。
进一步地,所述有音乐情况的对齐具体为:
S2.1.1、提取学生舞蹈视频与老师舞蹈视频的音频,并提取音频中前N帧没有音乐的时间,并将前N帧时间中的噪音强度取平均值,以平均值构建估计噪声频谱;
S2.1.2、根据包含噪声的音频频谱P
D(w)=P
其中,α表示过减因子参数;
S2.1.3、将频谱差值D(w)中的负值进行修改,得到纯净音频P
其中,β表示频谱下限阈值参数;
S2.1.4、设定伴乐音频和纯净音频采样率分别为F
S2.1.5、获取伴乐音频和纯净音频之间的延迟值d,并根据延迟值d、采样率F
S2.1.6、根据纯净音频波动的时间点s
进一步地,所述步骤S2.1.2中过减因子参数α具体为:
其中,SNR表示视频帧的信噪比。
进一步地,所述无音乐情况的对齐具体:
S2.2.1、设定计数器T=1,并设定动作相似距离阈值为K,并将两帧之间的Fréchet距离作为两视频帧之间的舞蹈动作相似距离;
S2.2.2、将视频第T帧设定为关键帧;
S2.2.3、判断视频第T帧与第T+1帧之间的舞蹈动作相似距离是否小阈值K,若是,则令T的计数值加一,并重复步骤S2.2.3,否则令T的计数值加一,并返回步骤S2.2.2;
S2.2.4、根据步骤S2.2.2-S2.2.3所述的方法,遍历视频的每一帧,提取视频的关键帧;
S2.2.5、根据步骤S2.2.1-S2.2.4所述的方法,分别提取学生舞蹈视频和老师舞蹈视频关键帧;
S2.2.6、获取学生舞蹈视频关键帧与老师舞蹈视频中起始动作帧的舞蹈动作相似距离,并将舞蹈动作相似距离最小的关键帧作为学生舞蹈视频的起始动作帧;
S2.2.7、分别提取学生舞蹈视频与老师舞蹈视频中起始动作帧后的视频,完成学生舞蹈视频与老师舞蹈视频的动作对齐。
进一步地,所述步骤S3具体为:
S3.1、分别提取学生和老师对应关键帧中的人体关节点;
S3.2、骨架大小归一化;
S3.3、将学生舞蹈视频关键帧和老师舞蹈视频关键帧逐帧进行骨架匹配;
S3.4、判断学生与老师骨架匹配是否正确,若是,则进入步骤S3.5,否则结束动作相似对比流程;
S3.5、分别提取学生与老师的手部关节点,并进行手部关节点匹配,完成动作相似对比。
进一步地,所述步骤S3.2具体为:
S3.2.1、分别读取学生和老师对应关键帧中人体关节点的位置坐标,所述人体关节点包括颈部节点、头部中心节点、两个肩部节点以及两个腰部节点;
S3.2.2、根据人体关节点对应的位置坐标,分别获取学生对应人体关节点中颈部节点到头部中心节点、第一肩部节点、第二肩部节点、第一腰部节点以及第二腰部节点的距离为X
S3.2.3、根据人体关节点对应的位置坐标,分别获取老师对应人体关节点中颈部节点到头部中心节点、第一肩部节点、第二肩部节点、第一腰部节点以及第二腰部节点的距离为X
S3.2.4、使用距离X
S3.2.5、根据距离比例R
S3.2.6、根据比例平均值为R,将学生骨架缩放至老师骨架大小,完成骨架归一化。
进一步地,所述步骤S3.3中骨架匹配的具体方法为:
S3.3.1、根据学生和老师颈部节点的位置坐标,获取水平距离dis_x和垂直距离dis_y;
S3.3.2、通过比例平均值为R和老师颈部节点的位置坐标获取老师关节点的位置坐标调节值为:
V_X
V_Y
其中,V_X
S3.3.3、将老师每个关节点坐标加上位置坐标调节值进行调节,以颈部节点为粘合节点,将老师所有调节后的关节点坐标分别减去水平距离dis_x和垂直距离dis_y,完成骨架匹配。
进一步地,所述步骤S3.5具体为:
S3.5.1、分别读取学生和老师对应关键帧中手部关节点的位置坐标;
S3.5.2、根据比例平均值为R,将学生手部关节点之间的距离进行缩放,使之与老师手部关节点之间的距离相同;
S3.5.3、将老师每个手部关节点坐标加上位置坐标调节值进行调节,以颈部节点为粘合节点,将老师所有调节后的手部关节点坐标分别减去水平距离dis_x和垂直距离dis_y,完成手部关节点匹配。
进一步地,所述步骤S4中对学生动作进行可视化矫正包括骨架迁移可视化矫正和视频拼接可视化矫正;
所述骨架迁移可视化矫正具体为:根据动作相似对比结果,以学生不匹配的关键帧为中心,向前后扩展一定时长的视频帧,将老师和学生的颈部关节点对齐,以颈部关节点为基准,将老师骨架迁移至学生舞蹈视频中,得到学生舞姿与老师骨架的对比结果,根据对比结果对学生动作进行矫正;
所述视频拼接可视化矫正具体为:通过视频对齐后,将老师和学生在同一律动下的视频帧一一拼接,得到的新帧集合拼接成一个视频,根据找出的动作差异区间,对照老师的标准动作进行矫正。
本发明的有益效果为:
(1)本发明提供了一种舞蹈与运动动作的智能对比矫正的方法,通过在有音乐和无音乐两种情形下的视频对齐技术,找出学习者和教学者的舞姿与动作的差异,进而对学习者的舞姿与动作进行智能可视化矫正。
(2)本发明提取人体运动动作的各个关节点及其运动的轨迹数据,对人体运动姿态的各个关节点的数据进行求方差,在程序中设定一个方差阈值,当所求得的人体姿态的各个关节点数据方差大于设定的方差阈值的时候,则评价该动作是有差异的,在找出所有差异动作后,再根据教学视频的总时长形成时间轴,区别显示出这段视频中学习者的所有动作差异的视频区间。
(3)本发明提供了对于舞蹈与运动动作的两种可视化智能矫正方式,对应学习者的差异视频区间,一是将老师的所有骨架关节点归一化后平移至对应的学生舞蹈视频的关键帧中,观察动作之间的差异;二是根据需要回放有差异部分的或全部的教学者与学习者的拼接视频,使学习者对比不同,矫正自已的不正确动作。
附图说明
图1为本发明提出的一种舞蹈与运动动作的智能对比矫正的方法流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
下面结合附图详细说明本发明的实施例。
如图1所示,一种舞蹈与运动动作的智能对比矫正的方法,包括以下步骤:
S1、采用人体姿态估计模型AlphaPose提取学生舞蹈视频与老师舞蹈视频中的人体关节点;
S2、将学生舞蹈视频与老师舞蹈视频进行动作对齐,并提取学生舞蹈视频与老师舞蹈视频的关键帧;
S3、根据提取的人体关节点、学生舞蹈视频的关键帧与老师舞蹈视频的关键帧,对动作对齐后的学生舞蹈视频与老师舞蹈视频进行动作相似对比;
S4、根据动作相似对比结果,找出动作差异区间,对学生动作进行可视化矫正,得到智能对比矫正结果。
所述步骤S2中将学生舞蹈视频与老师舞蹈视频进行动作对齐包括有音乐情况的对齐和无音乐情况的对齐。
人一般是伴随着音乐起舞的,所以为了找到视频中起舞阶段的起点,可以将舞蹈视频中所使用的伴乐纯净音频作为基准去匹配对齐视频中的音频,从而找到视频中伴乐的起点,因此也就是舞蹈的起点。同时因为视频录制时一般包含环境噪声,所以为了更好地保证对齐效果,需要对视频中的音频进行去噪处理。
所述有音乐情况的对齐具体为:
S2.1.1、提取学生舞蹈视频与老师舞蹈视频的音频,并提取音频中前N帧没有音乐的时间,并将前N帧时间中的噪音强度取平均值,以平均值构建估计噪声频谱;
S2.1.2、根据包含噪声的音频频谱P
D(w)=P
其中,α表示过减因子参数;
S2.1.3、将频谱差值D(w)中的负值进行修改,得到纯净音频P
其中,β表示频谱下限阈值参数,0<β<<1;
S2.1.4、设定伴乐音频和纯净音频采样率分别为F
S2.1.5、获取伴乐音频和纯净音频之间的延迟值d,并根据延迟值d、采样率F
S2.1.6、根据纯净音频波动的时间点s
在本实施例中,根据伴乐纯净音频的时间起点与采样率,可以得到伴乐纯净音频采样上的对应起点。之后与延迟值d作和就可以计算出视频音频中伴乐开始的样本点位置,然后除以视频音频的采样频率就可以计算出视频音频开始波动的时间点s
为了求得s
为了求得s
同时由于视频录制时,基于录制设备的不同,其音频通道可能为单声道或双声道,而伴乐纯净音频一般为双声道。对此情况在计算延迟值d时,当两者都为双声道时,则分别使左声道与左声道对齐,右声道与右声道对齐;当视频音频为单声道时,则用视频的单声道分别与音频的双声道对齐。无论哪种情况都会产生可能的d
所述步骤S2.1.2中过减因子参数α具体为:
其中,SNR表示视频帧的信噪比。
当一段运动动作视频中不存在音乐时,显然需要思考另一种解决方案。我们用教师视频的起始动作去匹配学生用户视频中的起始动作,以此找出学生视频的起点。为此,我们需要先提取用户视频中的关键帧,然后将关键帧与教师的起始动作进行对比,找出最相似的一帧,将此帧对应的时间视作时间起点。
不等长无音乐的视频,以较短视频的最后一个关键动作去较长视频中匹配,匹配成功之后,删除较长视频的后续内容,从而实现对齐效果。
所述无音乐情况的对齐具体:
S2.2.1、设定计数器T=1,并设定动作相似距离阈值为K,并将两帧之间的Fréchet距离作为两视频帧之间的舞蹈动作相似距离;
S2.2.2、将视频第T帧设定为关键帧;
S2.2.3、判断视频第T帧与第T+1帧之间的舞蹈动作相似距离是否小阈值K,若是,则令T的计数值加一,并重复步骤S2.2.3,否则令T的计数值加一,并返回步骤S2.2.2;
S2.2.4、根据步骤S2.2.2-S2.2.3所述的方法,遍历视频的每一帧,提取视频的关键帧;
S2.2.5、根据步骤S2.2.1-S2.2.4所述的方法,分别提取学生舞蹈视频和老师舞蹈视频关键帧;
S2.2.6、获取学生舞蹈视频关键帧与老师舞蹈视频中起始动作帧的舞蹈动作相似距离,并将舞蹈动作相似距离最小的关键帧作为学生舞蹈视频的起始动作帧;
S2.2.7、分别提取学生舞蹈视频与老师舞蹈视频中起始动作帧后的视频,完成学生舞蹈视频与老师舞蹈视频的动作对齐。
在本实施例中,提取关键帧的目的是为了去除重复的动作,通过去除掉相似的帧以减少计算量,从而提高效率,例如:一个动作保持了t秒钟,则这t秒内所有帧的动作都是相似的,则将这t秒视频的第1帧作为关键帧。
对于视频关键帧的提取,首先循环读取视频的每一帧,然后判断当前帧和后一帧的相似性,如果两帧的相似度在设定的相似性阈值之内,则继续比较下一帧视频,直到两帧的相似性大于设定的阈值为止,然后将其设为新的关键帧。
例如,设定的阈值相似度为t,首先将第1帧设为关键帧,第1帧和第2帧的相似度为d
对于每一个教师和学生的视频,都将视频转换为关键帧序列。
将提取出来的学生视频的关键帧与教师的起始动作进行对比,计算其相似度,然后找出其中相似度最高的一帧,将此帧作为学生视频的舞蹈起点。
首先计算两帧之间关节点的Fréchet距离,通过Fréchet距离进一步判断视频帧的相似性,Fréchet距离越小,说明这些关节点的形状越相似,然后设定一个阈值参数,如果视频帧的关节点数据的Fréchet距离大于或者等于设定的阈值参数则认为这两帧动作相似,如果视频帧的关节点数据的Fréchet距离小于设定的阈值参数则认为这两帧动作不相似,例如:设定阈值参数为t,而视频帧的关节点数据的Fréchet距离为d,若d大于t,则认为这两帧动作不相似;若d小于或等于t,则认为这两帧动作相似。
Fréchet距离的定义是:两条有方向的曲线,不能回溯,这两条曲线之间最短的最大距离。两条曲线分别用函数f:[a,b]→V和函数g:[a',b']→V来表示。Fréchet距离计算公式:
δ
α(t),β(t)∈[0,1]
对此数学表达式的理解是,对于每一对可能的描述函数α(t)和β(t),我们总能找到整个运动过程中曲线最短的最长距离,所以这个最小的距离即为Fréchet距离。
可以采用递归的方法来计算离散型Fréchet距离。我们用coupling distance来求Fréchet距离的上界,也就是说两条连续曲线,找到其中的关键点作为endpoint,然后coupling distance是端点间四个点的距离。Ca(i,j)为i,j点以及这两点之前的Fréchet距离。d(ui,vj)为i,j两点之间的欧氏距离。其中:
ca(i,j)=max{min(c(i-1,j),c(i-1,j-1),c(i,j-1)),d(ui,vj)}
离散曲线可以从上面三种情况到达i,j点。所以我们需要找到这三个位置最小的那一个距离与i,j点的距离进行比较,然后选择其中最大的距离作为i,j点的Fréchet距离。
所述步骤S3具体为:
S3.1、分别提取学生和老师对应关键帧中的人体关节点;
在本实施例中,提取关键帧对应的人体关节点具体方法为:
(1)Load input video:读取输入视频。
(2)Load detection loader:加载yolo目标检测模型,检测图像中待检测的人体。
(3)Load pose model:选择Mscoco作为评估数据集,使用MSCOCO keypoints的训练集和验证集,来fine-tune SPPE。
(4)Pose Estimation:经过上述的初始化之后,然后对视频各帧中的人体进行姿态估计,识别出人体的骨架关节点,最后所有帧的识别结果将会被保存进json文件中。结果中包含提取出的视频各帧所有关节点的位置信息和置信度。人体姿态检测过程如下:
a)首先使用yolo做目标检测,得到人体所在的区域框。
b)然后将检测到的人体区域框作为输入,使用STN+SPPE模块完成人体姿态的自动检测。STN空间变换网络,对于不准确的输入,得到准确的人的框。输入候选区域,用于获取高质量的候选区域。SPPE得到估计的姿态。SDTN空间逆变换网络,将估计的姿态映射回原始的图像坐标。
c)再通过Parametrics Pose NMS进行调整改善,消除额外的估计到的姿态。
d)在训练的同时,通过Parallel SPPE防止局部最优并进而提升SSTN的效果。
不准确的输入图像经过SSTN进行姿态估计,并将估计的结果映射在原图上,以此来调整原本的框,使框变的精准。
S3.2、骨架大小归一化;
S3.3、将学生舞蹈视频关键帧和老师舞蹈视频关键帧逐帧进行骨架匹配;
S3.4、判断学生与老师骨架匹配是否正确,若是,则进入步骤S3.5,否则结束动作相似对比流程;
S3.5、分别提取学生与老师的手部关节点,并进行手部关节点匹配,完成动作相似对比。
所述步骤S3.2具体为:
S3.2.1、分别读取学生和老师对应关键帧中人体关节点的位置坐标,所述人体关节点包括颈部节点、头部中心节点、两个肩部节点以及两个腰部节点;
S3.2.2、根据人体关节点对应的位置坐标,分别获取学生对应人体关节点中颈部节点到头部中心节点、第一肩部节点、第二肩部节点、第一腰部节点以及第二腰部节点的距离为X
S3.2.3、根据人体关节点对应的位置坐标,分别获取老师对应人体关节点中颈部节点到头部中心节点、第一肩部节点、第二肩部节点、第一腰部节点以及第二腰部节点的距离为X
S3.2.4、使用距离X
S3.2.5、根据距离比例R
S3.2.6、根据比例平均值为R,将学生骨架缩放至老师骨架大小,完成骨架归一化。
所述步骤S3.3中骨架匹配的具体方法为:
S3.3.1、根据学生和老师颈部节点的位置坐标,获取水平距离dis_x和垂直距离dis_y;
S3.3.2、通过比例平均值为R和老师颈部节点的位置坐标获取老师关节点的位置坐标调节值为:
V_X
V_Y
其中,V_X
S3.3.3、将老师每个关节点坐标加上位置坐标调节值进行调节,以颈部节点为粘合节点,将老师所有调节后的关节点坐标分别减去水平距离dis_x和垂直距离dis_y,完成骨架匹配。
所述步骤S3.5具体为:
S3.5.1、分别读取学生和老师对应关键帧中手部关节点的位置坐标;
S3.5.2、根据比例平均值为R,将学生手部关节点之间的距离进行缩放,使之与老师手部关节点之间的距离相同;
S3.5.3、将老师每个手部关节点坐标加上位置坐标调节值进行调节,以颈部节点为粘合节点,将老师所有调节后的手部关节点坐标分别减去水平距离dis_x和垂直距离dis_y,完成手部关节点匹配。
所述步骤S4中对学生动作进行可视化矫正包括骨架迁移可视化矫正和视频拼接可视化矫正;
所述骨架迁移可视化矫正具体为:根据动作相似对比结果,以学生不匹配的关键帧为中心,向前后扩展一定时长的视频帧,将老师和学生的颈部关节点对齐,以颈部关节点为基准,将老师骨架迁移至学生舞蹈视频中,得到学生舞姿与老师骨架的对比结果,根据对比结果对学生动作进行矫正;
所述视频拼接可视化矫正具体为:通过视频对齐后,将老师和学生在同一律动下的视频帧一一拼接,得到的新帧集合拼接成一个视频,根据找出的动作差异区间,对照老师的标准动作进行矫正。
将输入的学生视频提取为若干关键帧,并对学生舞蹈视频的关键帧进行姿态识别。为了将老师的标准舞蹈动作的姿态骨架与学生的舞蹈动作进行对比,首先将老师的骨架进行归一化确定需要进行放缩的比例,然后以学生姿态识别结果的中心关节点为基准把老师骨架的中心节点定位匹配到学生舞蹈视频的关键帧中,最后将老师舞蹈姿态的所有骨架关节点平移至对应的学生舞蹈视频的关键帧中。
至此,老师舞蹈姿态的骨架以完整迁移至学生的舞蹈视频关键帧中,可在学生的舞蹈视频关键帧中看到学生的舞蹈动作与老师的舞蹈动作之间的存在差异。通过对学生和老师舞蹈姿态关节位置信息的计算,系统还可指出学生舞蹈动作与老师舞蹈动作差异较大的关键帧,使得学生可以较直观的看出动作哪里不标准,从而进行改正。
在本实施例中,通过对集中测试12组视频(每组视频包括舞蹈老师的标准视频和优秀、良好、较差三组学生的4个视频)进行测试,每个视频的时长在30秒至1分钟左右不等,总时长约在半小时;本发明检测的准确度可达到90%的正确率。
拼接视频对比矫正:通过S2视频对齐后,得到老师和学生在同一律动下的视频帧。将两者的视频帧一一拼接,得到新的一个对比视频,具体操作如下:
创建一张新的空白图片,将老师的视频帧在左边写入,学生的视频帧在右边写入,该图片的宽度即为老师和学生视频帧的宽度之和,得到的新的帧的集合拼接成一个视频。最后在拼接的视频中加入经过对齐截取后的标准伴奏音乐。
在该视频播放过程中,老师的舞蹈视频位于左侧,学生自己的舞蹈视频位于右侧,便于学生对照老师标准的动作、节奏观察学习,直接清晰地看到自身舞蹈的不足之处。
- 一种舞蹈与运动动作的智能对比矫正的方法
- 一种具备运动捕捉功能的舞蹈动作评测系统