郭龙飞,杨红红,2*,吴晓军,2,3,张玉梅,2,党允彤
(1 陕西师范大学 计算机科学学院,陕西 西安 710119;2 陕西师范大学 现代教学技术教育部重点实验室,陕西 西安 710062;3 陕西师范大学 新闻与传播学院,陕西 西安 710119;4 陕西师范大学 音乐学院,陕西 西安 710119)
随着科技与文化的深度融合,计算机视觉技术在舞蹈教学中的应用具有巨大的潜力[1]。一般的学科遵循教师讲学生听的教学模式,但是舞蹈是用肢体来表现的,教师需要对学习者动作标准程度进行判断,需要使用不同的教学方式和手段[2]。在传统的舞蹈教学中,判断动作是否标准是学习者面临的一个主要问题。学习者通常只能依靠自身的主观判断和教师的评价对自己的动作是否标准进行判断[3],而传统舞蹈课堂人数较多,属于一对多的授课方式,教师无法做到对每一位学习者进行实时指导[4]。在传统舞蹈教学中,虽然有统一的舞蹈动作标准,但对学习者舞蹈动作是否标准的判断主要依赖于主观评价,缺乏一个可量化的客观评价方式。应用信息技术,探索新的教学方法,将为舞蹈教学的改革提供无限的可能[5-6]。
随着深度神经网络的发展,近年来很多基于深度神经网络的人体姿态估计方法被提出,自顶向下(top-down)的人体姿态估计方法如CPM[7]、Hourglass[8]、Simple Baselines[9]、HRNet[10]和自底向上(bottom-up)的人体姿态估计方法如OpenPose[11]、DeepCut[12]、HigherHRNet[13]。但是针对动作相似度估计的研究较少,多以动作识别为主,如文献[14]使用Zemike矩描述图像的形状信息,结合支持向量机(support vector machine,SVM)识别人物的动作;文献[15]采用PAFs方法识别人体关键点信息,再利用LSTM网络对信息进行分类,以达到识别人物动作的目的;文献[16]对图像进行预处理后进行建模分析来识别人物动作。这些方法仅识别出人物的动作,并未对动作是否标准进行判断,更不能为学习者提供动作姿态改进的建议。
针对上述问题,本文提出一种基于姿态估计的动作相似性计算方法,可应用于传统民族舞蹈的学习,对学习者的动作是否标准进行实时定性和定量判断,根据判断的结果给予学习者实时的反馈和建议,帮助学习者进行实时动作姿态调整,有效提高舞蹈学习的效果。本文将不同舞蹈动作看作由人体关节特征点在空间中位置改变而产生的姿态变化,通过二维图像上的关节特征点推理出四肢在三维空间中的前后位置信息。在此,设计基于三维空间关节点偏移角度变化的舞蹈动作阶梯型相似性计算方法:首先,通过舞者关节点定位,对关节点坐标位置进行两次修正;然后,根据关节点坐标修正结果,计算关节点空间前后偏移角度和关节点二维角度变化,获得最终的关节点三维空间偏移量;接着,依据关节点三维空间偏移量设计舞蹈动作阶梯型相似度计算方法,计算学习者姿态与标准姿态之间的差异,对学习者舞蹈动作是否标准进行判断;最后,根据阶梯型相似度计算结果,对标准动作进行姿态还原,提出最终的动作纠正意见,实现舞蹈者动作的实时对比分析与反馈。
首先,基于舞蹈者的视频信息,使用YOLOv3目标检测算法获取舞蹈者的人体检测框区域用于姿态估计;然后,基于人体姿态估计算法AlphaPose对所检测的舞者进行姿态估计,提取舞蹈者的关节点信息;最后,基于三维空间关节点偏移角度变化计算方法,对舞蹈者的关节点信息与标准动作的关节点信息进行比较,获得学习者动作与标准动作之间的差异,对学习者动作是否标准进行定量和定性分析;同时,给出相应的动作姿态改进建议,帮助学习者进行动作纠错,提高舞蹈学习的效果。流程图如图1所示。
图1 实验流程图
YOLOv3目标检测器是一个one-stage检测方法,由于其不需要预先生成一系列的候选样本框,直接通过一次检测就能得到最终的检测结果,所以其处理速度快、检测效果好[17],已成为当前主流的目标检测算法之一。本文基于YOLOv3目标检测器及其预训练模型进行输入图像中人体目标的检测,将RGB图像作为输入,经YOLOv3目标检测器检测,获取图像中舞蹈者的人体检测框,并记录人体检测框的坐标位置信息,用于舞者姿态的估计。
姿态估计的目的是利用图像或视频,对图像中的人体骨架形状进行描绘。本文首先基于YOLOv3对图像中的人体检测框进行提取,然后利用人体姿态估计算法对舞者关节点信息进行检测。由于本文的重点是进行基于相似度计算的舞者动作对比,因此本文采用主流的人体姿态估计算法AlphaPose及其预训练模型实现舞者人体关节点的检测。需要说明的是,本文仅给出实现框架,此处也可以选用其他主流的人体姿态估计算法。
AlphaPose是自顶向下人体姿态估计算法的典型代表[18],其主要由对称空间变换网络(symmetric spatial transformer network,SSTN)、参数化姿态非最大抑制(parametric pose non-maximum suppression,PPNMS)、姿势引导建议生成器(pose-guided proposals generator,PGPG)三层结构组成。SSTN的主要作用是对目标检测器产生的检测框进行修正,使检测结果更精准;PPNMS是将可能产生的冗余检测框消除;PGPG作为数据增强方法,通过已有数据生成大样本的训练集,使SSTN的结果更精准。本文利用AlphaPose提取舞蹈者的躯干和关节信息进行舞蹈动作对比。
基于人体关节点提取的动作相似性计算方法主要包括以下几个步骤:①关节点定位。首先,提取标准图像和目标图像中的人体关节点位置信息;然后将两幅图片上的动作进行标准化,对其坐标进行转换,将其叠加到同一个坐标系中。②偏移量计算。计算标准化后各个关节点的方向和长度差异,推理计算目标图像关节点在三维空间中与标准动作的角度差异。③动作阶梯型相似度计算。依据②计算出学习者动作与标准动作各个关节点之间的偏移角度,设计动作相似度定量指标,计算舞蹈动作与标准动作各个关节点的相似度。④姿态还原。选取分数最低的关节,将标准动作图像中对应的关节位置信息再次进行坐标修正,通过坐标变化,将动作不标准的关节位置所对应的标准动作还原到目标图像中,获得相应的动作纠正建议。
1.2.1 关节点定位 由于存在人体身高差异、学习者在拍照的过程中也有摄像头视角差异以及与镜头的距离不同等问题,本文在进行学习者姿态与标准动作姿态对比之前需要对目标图像(学习者所拍摄的图像)进行标准化操作。
由于本文所提出的算法是一种实时动作对比算法,因此在获得所拍摄学习者动作图像之后,先对图像进行预处理,即人体检测框提取和人体关节点估计,从而获得图像中学习者的各个关节点位置信息。17个关节点从上到下依次为:左右眼、左右耳、鼻、左右肩关节、左右肘关节、左右手、左右髋关节、左右膝关节和左右脚,按1至17分别编号。
根据其活动程度的大小将所获得的17个关节点分为两类:第一类为活动范围较小的左右肩关节和左右髋关节,将其定义为静止关节点;第二类为其余的关节点,其运动范围相对较大,将其定义为活动关节点。本文所定义的静止关节点主要是用来定位和确定放缩比例,从而较好地实现目标图像与标准图像人体关节的位置对比。
(1)
其中:i为图片编号;j为关节点编号;6为左肩关节点的编号。
(2)
(3)
其中:7、12、13号分别为右肩、左髋、右髋关节点的编号;f(p)表示与该关节点相连的关节点;d(pj1,pj2)表示点p1与点p2之间的欧几里得距离。
1.2.2 偏移量计算 本文以舞蹈学习者的动作对比为研究对象,由于舞者动作姿态变化,舞蹈动作反映在二维图像上时,会出现四肢频繁摆动现象。当舞者肢体发生前后摆动时,会产生关节点之间距离的长短变化,因此为了精确地推理舞者动作姿态在三维空间中与标准动作的差异,本文依据舞者肢体角度变化和长度信息变化进行偏移量计算。
由于舞蹈动作主要依赖于舞者四肢动作的变化,所以本文仅考虑8个关节点的偏移量,分别为左、右肩关节,左、右肘关节,左、右髋关节,左、右膝关节,由1至8分别编号。
经过关节点标准化二次修正后,对上述的8个关节点进行偏移量对比计算。当肢体在空间中有前后偏移的时候,肢体在图片上的二维投影长度会发生变化,所以可以使用肢体的长度信息推导肢体在空间中的前后偏移角度d1,通过推导得出
(4)
其中:k为关节编号;pk为关节对应的中心点。
然后,使用关节的位置信息推理关节点角度信息,得到关节点二维平面逆时针旋转角度d2,通过推导得出:
(5)
最后,依据公式(4)和(5)计算所得的两个角度信息,推理三维空间内关节的偏移角度,即
(6)
其中dk∈(0°,180°)。
1.2.3 学习者动作阶梯型相似度计算 计算出学习者舞蹈动作与标准动作各个关节点之间的偏移角度之后,设计动作相似度定量指标,计算学习者动作与标准动作各个关节点的相似度sk。在专业舞蹈老师的指导下,定义阶梯型动作相似度计算方法,当公式(6)中偏移角≤5°时相似度sk为1;偏移角为5°~30°时,相似度sk从1至0.6线性下降;当偏移角>30°时,相似度sk从0.6至0线性下降,如公式(7)所示:
(7)
根据公式(7)计算所定义8个主要肢体关节点的相似度sk。根据各个关键点的相似度计算结果,获得整体舞蹈动作的总体相似度
(8)
当总体相似度为1时,认为学习者的动作是标准的;否则,依据相似度最低的关键点信息,给出最终的动作纠正意见。
在计算出学习者各个关节的相似度分数后,选取分数最低的关节,将标准动作图像中对应的关节位置信息再次进行坐标修正,并向学习者给出修正该最低相似度关节的姿态建议:
(9)
通过坐标变化,最终叠加到目标图像中,使学习者可以按照图像中标准动作修正自己的动作,提高舞蹈学习的效果。
本文动作相似性对比以舞蹈学习者为研究对象。首先,邀请舞蹈教师进行专业舞者标准动作数据集的构建,然后对学生舞蹈动作进行采集。本文选取5类具有特色的民族舞蹈进行动作对比实验,分别为蒙古族舞蹈、藏族舞蹈、傣族舞蹈、汉族秧歌以及维吾尔族舞蹈共计277组动作。实验采用拍照之后立即对比的方式,一次一组动作。实验选用Python 语言及Pytorch 深度网络框架,运行环境为Windows 10,Intel(R) Core(TM) i7-8700 CPU @ 3.20 GHz 3.19 GHz,8 G RAM。
目前,对学习者舞蹈动作是否标准的判断没有科学统一的评估方法,依赖于主观视觉评价的人工评价方法是目前最主流的评估方法,但是人工评价结果很容易受主观影响,缺乏一个可量化的客观评价方式。因此,本文提出一种基于姿态估计的舞蹈动作对比算法,对舞蹈者的动作是否标准进行定量计算。为了验证所提出算法的有效性,本文采用专业舞者主观评价和定量客观评价方法对舞蹈动作是否标准进行评估。
2.2.1 专业舞蹈教师主观评价 对学习者动作通过专业舞蹈教师进行标准与否评价。在此,选取277组舞蹈数据,分为专业舞者动作和学习者舞蹈动作,如图2所示。图2a为专业舞蹈者动作姿态图像,图2b为学习者根据专业舞者动作进行学习的舞蹈姿势。表1为舞蹈教师根据主观视觉对学习者动作是否标准进行的判断,舞蹈者视角分为正视图、侧视图、背视图。专业舞蹈教师对学习者动作是否标准判断正确的有247组,总体正确率为89.17%;正视图、背视图和侧视图的正确率分别为:90.67%、88.68%和78.13%。侧视图的正确率较低,这是因为专业教师在对侧视图中舞蹈者进行动作姿态标准判断时,无法依靠二维图像中因视角变化及角度遮挡情况下的舞蹈者姿态进行舞者肢体及关节点的准确定位。
表1 专业舞者对学习者舞蹈动作是否标准的判断
图2 部分实验结果图
2.2.2 基于姿态估计的舞蹈动作对比定量评价 根据本文所提出算法进行舞蹈动作姿态对比与纠正建议的部分实验结果如图2和表2所示。图2c为图2a中专业舞蹈者动作的姿态关节点提取可视化图。图2d为图2b中学习者的舞蹈动作姿势估计可视化图。图2e中红色线条为根据本文方法获得最需要改进的部位关节点,表2为本文方法计算所得的姿态总体相似度和动作纠正改进建议。
表2 基于姿态估计的舞蹈动作相似度计算结果与姿态纠正建议
由图2可以看出,本文所选取的8组部分可视化数据的舞蹈动作差异较大,涵盖中国舞蹈的俯、仰、冲、拧、扭、踢等多种舞姿。如图2中第1组和第3组中标准舞蹈动作及学习者舞蹈动作姿态在上身倾斜度方面有很大的差异,其图2e的可视化结果与表2中的相似度得分和建议纠正意见一致。第2组和第4组图像中,舞蹈者腿部有交错遮挡。第5组和第6组中不仅有腿部的交错遮挡,而且伴随上半身的拧俯变化以及上肢的交互。第6组和第7组图像中,舞蹈者动作复杂度较高,其相似度得分较低,其结果符合人们对越复杂动作越难学的主观印象。图2e中的可视化纠正部位与表2中的姿态建议一致。同时,对比图2d学习者姿态估计可视化图与图2c标准舞者姿态可视化图,可以明显看出学习者姿态与标准姿态的差距,其结果与表2中的总体相似度分数一致,验证了基于姿态估计的舞蹈动作相似度计算结果与主观视觉评价结果相一致,说明了本方法的有效性。
本文针对舞蹈学习中缺少客观定量评价指标的问题,提出了一种基于姿态估计的动作相似性计算方法。通过二维图像上的关节特征点推理出四肢在三维空间中的前后位置信息,设计基于三维空间关节点偏移角度变化的学习者动作阶梯型相似性计算方法,计算学习者姿态与标准姿态之间的差异,对学习者动作是否标准进行判断。根据阶梯型相似度计算结果,对标准动作进行姿态还原,给予学习者实时的反馈和纠正建议,帮助学习者进行实时动作姿态调整。实验结果表明,本文方法在实时分析舞蹈者动作是否标准上具有较好的效果,在舞蹈自助教学、专业舞者动作纠正等应用场景具有一定的应用价值。