秦 晴,王卫星,刘清华,蒙德庆
1.贵州大学 机械工程学院,贵阳 550025
2.贵州大学 现代制造技术教育部重点实验室,贵阳 550025
在计算机视觉领域,人体动作识别是近年来热门的研究主题,随着学者们过去十年不断的探索和研究,人体动作识别方向产生了很多优秀的成果,并且这项技术开始被应用于各行各业。非物质文化遗产如何永久保存是一个吸引学界研究的问题,比如少数民族舞蹈数字化保护。少数民族舞蹈是我国不可或缺的非物质文化遗产,每个民族都有自己的文化与精神,少数民族舞蹈将自己的文化展现于舞蹈动作中,十九大报告中强调要传承中华优秀传统文化,将“加强文化遗产保护传承”作为新时代建设社会主义文化强国的重要工作内容。文献[1]中也再次强调,新时期推动民族传统文化的传承与发展需要的策略。因此,民族舞蹈保护是一项具有重大意义的研究工作,也能帮助民族文化的传承与更广泛的传播。每一种民族舞蹈通常都会有一些标志性的动作、手势、道具等来表达,这些特点可以作为记录和分类各个民族舞蹈的关键元素,用于构建一个少数民族舞蹈动作数据库,并且能够为更多的创新应用提供数据支撑。
民族舞蹈研究领域出现了一些民族舞蹈数字化保存和展示的技术方案,但几乎是通过大型三维运动捕捉设备来记录舞蹈动作,这些设备价格昂贵且灵活性差,影响了动作的执行与识别,以及对于人体动作中的遮挡问题、不同场景下运动特征至今仍然没有达到令人满意的效果,也限制了民族舞蹈的传承与保护。对于动作数据采集,Kinect深度视觉传感器设备具有深度图分辨率高、成本低、能够直接追踪人体骨架运动轨迹等优势,而且使用骨架信息进行动作识别具有以下两大优点[2]:(1)骨骼数据是对三维空间里的人体信息的抽象,其对背景、光照等噪声具有一定的鲁棒性,从而提供了良好的人体行为表征;
(2)相比于RGB视频数据,骨骼数据的数据维度较小,这也使得设计轻量级和硬件友好的模型成为可能性。
针对舞蹈的动作识别研究目前较少,民族舞蹈需要数字化保护与传承,本文筛选出20个少数民族舞蹈典型动作片段,利用Kinect动作数据采集系统收集600组民族典型动作的骨架信息,构建少数民族舞蹈典型动作数据集,设计一种3D CNNs用于识别该数据集。为了验证本文所构建的数据集合理性以及提出的3D CNNs的识别性能,将该方法在其他的公开数据集上进行了实验,将三种数据集实验结果进行了对比,并且将本文的方法与其他经典算法进行了实验对比,包括C3D、P3D、ConvLSTM,结果显示,本文的3D CNNs获得了较好的识别精度,其他的方法在本文的数据集上也获得了不错的识别精度,验证了该数据集构建的合理性。该研究的目的是使用现有的动作识别技术应用于民族舞蹈动作,实现更好的传承和保护少数民族舞蹈动作。
1.1 民族舞蹈动作识别研究现状
计算机运动捕捉技术和传统的照片、录像等方法相比,可以更加全方位地实现舞蹈的记录、传播和发扬。Kishore等人[3]使用卷积神经网络(CNNs)对印度古典舞蹈动作进行分类。分别从线上视频和线下录制收集200个舞蹈姿势及手势,实验在同一数据集上与其他分类算法进行了结果对比,最后获得了93.33%的识别率。针对少数民族非物质文化遗产舞蹈的保护和传承,蒙曦[4]利用大型3DMo Cap动作捕捉系统对贵州民俗舞蹈进行数字化数据采集,记录舞者动作在三维空间的运动轨迹,结合VR虚拟现实技术展示舞蹈动作,为今后的民族舞蹈提供数字化平台。除了直接捕捉记录保存民族舞蹈动作的研究,还有一些研究实现了舞蹈与舞谱自动生成与转换。朱晨旭[5]将拉班舞谱运用到记录传统动态文化中,提出了基于极限学习的拉班舞谱自动生成算法。通过分析运动捕捉数据,将各个基本动作进行分类并转换成拉班舞谱符号,并且建立了自动转换的平台。周子鸣[6]提出了一种基于动态规划的拉班舞谱自动生成方法,通过分析BVH(bio-vision hierarchical)格式的运动捕捉数据,识别各个基本动作,转换成舞谱,实现了舞谱生成的平台。
Kitsikidis等人[7]首次使用多个Kinect传感器捕捉舞蹈动作,以解决遮挡和自遮挡跟踪问题。融合的骨骼数据被分成五个不同的身体部位,然后进行转换以允许视图不变的姿势识别,并展示了实验结果,以证明所提出方法的高识别精度。Protopapadakis等人[8]同样使用Kinect传感器采集6种希腊民族舞蹈动作,并且使用了4种常用的分类器对原始数据直接进行动作分类对比了分类结果,同时研究了不同的人体关节对于识别率的影响。
1.2 基于3D CNNs的动作识别
基于深度学习的动作识别研究也层出不穷,其中研究成果较好的有三维卷积神经网络。文献[9]首次提出了3D CNNs架构用于动作识别。三维卷积网络是二维卷积网络的直接扩展,三维卷积网络比二维卷积网络多了一维捕获时间信息。Ji等人[10]提出了一种3D CNNs架构,它从相邻的视频帧中生成多个信道的信息,并在每个信道中分别执行卷积和子采样,然后通过综合各通道的信息得到最终的特征表示。Tran等人[11]在前者的基础上提出了一种C3D(convolutional 3D)的现代深层架构,该架构可以在大规模数据集上学习。C3D网络由五个卷积层、五个最大池化层、两个全连接层和一个softmax损失层组成,结果表明基于线性分类器的C3D方法在动作视频的识别精度均优于或接近目前最先进的方法。综上所述,基于3D CNNs动作识别模型是目前识别精度比较高的方法。本文中选用的民族舞蹈典型动作中,这些舞蹈的特征是动作连续时间较长,动作数据维度较大,因此选用三维卷积神经网络直接从骨架信息中提取特征,降低计算量和硬件要求,能够更广泛地应用到相关研究行业中。但是目前的研究中,使用3D CNNs对骨架信息进行动作识别的成果较少,由于骨骼数据轻量化、不受背景、光照等影响的优势,因此本文直接使用深度摄像机采集了20类民族典型舞蹈动作的骨架信息用于动作识别。
1.3 少数民族舞蹈典型动作特点
少数民族舞蹈典型动作数据集包括5类民族舞蹈,每类舞蹈各自包含4个不同的动作,一共为20个动作。图1为筛选的部分少数民族舞蹈动作序列RGB图展示。后续每个动作都将采集一组连续的骨架序列来表示。研究的少数民族舞蹈种类包括:
图1 部分少数民族舞蹈动作序列RGB图展示Fig.1 Part of RGB dance sequence of ethnic dance
(1)傣族舞:傣族舞蹈是西南地区傣族人民代表性舞蹈,动作多以模仿当地的动物行为为主。傣族动作中名为“三道弯”的动作最为典型[12],这个动作是指舞者上身向一旁倾斜,下身半蹲,头部、胸部、腰部、跨步和腿部都呈现出反向的“S”型。傣族舞动作较平稳,跳跃动作少。
(2)藏族舞:藏族舞是藏族人民传统的舞蹈,受高原地区的影响,藏族舞蹈的发力点多体现在下半身,舞者通过各个关节有规律地屈伸,呈现出一张一弛的美感[13]。藏族舞蹈的身体中心偏前,两臂呈垂态,女性优雅端丽,男性雄壮粗犷。藏族舞蹈蕴含着藏族人民的艺术精髓,体现了他们的历史韵味。
(3)维族舞:维族舞蹈有着挺拔立腰的造型感,头部、颈部、肩部、胸部、腰部和脚都有动作特点。维族舞最大的特点就是立感[14],身体保持昂首挺胸,整体给人一种高傲、外向和挺拔的感觉。维族舞蹈动作造型优美多变,配合舞者的眼神、移颈、弹指和响指等动作便显出了维族舞蹈的热情、欢快等特点。
(4)蒙古族舞:蒙古族舞蹈有着动作幅度较大、节奏明快的特点。其中,最重要的动作就是耸肩、转腕和胳膊的动作[15]。舞者应该始终保持一种热情、勇敢、奔放的形象,手部动作不能僵硬,要与节奏协调,要展现出蒙古族人的英姿飒爽,蒙古族舞蹈也传扬了草原风光、风土人情。
(5)苗族舞:本文选用了苗族锦鸡舞蹈动作,是贵州黔东南地区的传统舞蹈。锦鸡是苗族的图腾,苗族人民通过锦鸡舞来感恩锦鸡、缅怀先祖[16]。舞者需要跟随着芦笙的曲调变化来翩翩起舞,按照逆时针方向起舞,随着不同的节拍进行动作的变化,上肢与脚部自然摆动,膝盖微曲。
在实验之前,首先利用Kinect for Windows SDK与Kinect V2开发了一个动作采集系统,用于捕捉和记录舞者的民族舞蹈动作数据,可以同时采集骨架信息,RGB图和深度图。动作采集系统界面如图2所示。该设备可以在比较黑暗或者明亮的环境下工作,不受光照情况的影响,动作捕捉的帧率为30 FPS,有效运动区域受到限制,左右各1 m,前后距离7 m以内。Kinect人体跟踪的骨架由25个关节点组成,每个关节点包括3D位置坐标。本文利用该设备采集了左肩、右肩、肩部中心、脊柱、左髋、右髋、髋部中心、左肘、右肘、左腕、右腕、左手、右手、左膝、右膝、左踝、右踝、左脚、右脚和头部,一共20个人体关节点。
图2 动作数据采集系统界面Fig.2 Action data collection system interface
民族舞蹈动作数据采集实验,共有10位身体健康的志愿者(平均为(20±3)岁)参与了这项研究。在实验期间,被试者实验前12小时内没有进行剧烈的身体运动,身体健康状况良好,每个被试者都学习过不同的民族舞蹈,有4~5年的舞蹈学习经验。在实验开始前,被试者需要学习20个少数民族典型舞蹈动作示例,能够跟随要求的节奏顺利地表演,被试者们接受本研究的书面说明和签署知情同意书。实验要求被试者在Kinect设备前有效范围内,按照顺序依次表演每个舞蹈动作,避免动作的停顿、过快和过慢,进行流畅的、有节奏的舞蹈动作表演。在实验的过程中,会有口令及节拍听觉提示作为指导。通过操作开发的动作采集系统设计实验范式,实验一共包括以下两个部分:
(1)少数民族舞蹈典型动作筛选和采集,共确定了5种少数民族舞蹈,20个典型舞蹈动作,采集20个动作骨架信息,被试者每个动作执行3次。
(2)20个少数民族舞蹈动作识别,数据集中共计600个样本。
实验范式描述如下,要求被试者先在深度摄像机前拍摄范围内站立,在动作采集系统实时反馈画面中确认每个被试者的骨架信息能够完整的被深度摄像机捕捉,规划动作活动范围,为左右各1 m,前后各1 m,根据拟定的动作顺序,由10位被试者依次表演一个动作结束后再采集下一个动作。要求被试者统一动作标准,根据语音提示开始,随着八拍流畅的表演动作,表演结束后根据语音提示停止动作。由于不同的动作长短不同,因此单个动作的实验时长也不同,时长范围为5~20 s。实验过程中,每个被试者一共执行了60次实验,每个动作各3次,所有被试者执行的动作共计600次。在实验中,为了减少采集冗余无效的动作数据,要求被试者统一动作,根据语音提示开始与结束表演,同时也在动作采集系统中开始记录与停止记录。
为了实现对少数民族舞蹈动作的识别,本文首先要构建一个少数民族舞蹈动作数据集,需要记录舞者的骨架信息,利用骨架信息进行识别能够更快地处理,减少存储空间。其次,在3D CNNs的基础上,提出一种改进的模型,用于识别民族舞蹈动作。
3.1 数据预处理
对记录的原始数据进行骨骼点数据缺失检查,对于实验中骨骼点数据丢失无法记录的情况,为了减小后续模型对不同动作判断的影响,将某一帧缺失的骨骼点数据填充为上一帧的骨骼数据。获取的少数民族舞蹈典型动作骨架序列帧率是30 FPS,由于舞蹈动作的速度较慢,动作时长较长,为了减少冗余的信息,将原始数据每5帧中只保留一帧,处理后的数据集各个动作与最大帧数如表1所示。在数据集中每个动作的时长不同,对应的帧数也不同,对数据集的每个动作序列统一序列长度,获取数据集中样本的最大帧数,将其余少于最大帧数的动作样本复制最后一帧,补充为最大帧数,以便于后续输入模型中进行训练。
表1 民族舞蹈动作数据集动作名称及最大帧数Table 1 Ethnic dance moves dataset action name and maximum number of frames
3.2 三维卷积神经网络
与其他的传统深度学习方法相比,3D CNNs不局限于2D单帧图像的输入,可以从时间维度和空间维度提取特征,能够提取多个连续帧的运动信息。本文采用3D CNNs对民族舞蹈典型动作骨架信息进行识别,骨架信息是单通道信息,计算量更小,模型识别性能更好。本文使用的3D CNNs模型框架如图3所示。本文使用的3D深度卷积神经网络,包括4个卷积层、2个下采样层、2个全连接层及1个Softmax分类层。下采样层使用Max-pooling,内核大小为3×3×3,步长为1。
图3 三维卷积神经网络框架图Fig.3 Three-dimensional convolutional neural network framework
为了捕获多个连续帧中的运动信息,从空间和时间维度计算特征。第i层的第j个特征图中的位置坐标为(x,y,z)的单元的值,公式如下:
其中,3D卷积核的时间维度为ni,位置(l,m,n)与第r个特征图相连卷积核的权重值为ωlimjrn。
ReLU函数是深度学习模型中最常用的激活函数。该函数当输入的特征值大于0时,保持原始特征值不变进行输出;
当小于0时,则置为0。这就是该激活函数的单侧抑制性,该性质可以使得模型参数变得稀疏从而在一定程度上可以减少过拟合的风险。除此之外,该激活函数导数计算十分简单在一定程度上可以加速计算,并且在输入为正值时导数永远是1,因此可以有效地缓解梯度消失的问题。ReLU激活函数定义为:
池化也称为下采样,此时与二维图像的处理不同,需要考虑视频在时间维度上的信息。通过池化操作,特征图减小,降低了数据的维度,减少了数量的计算,易于训练提高准确率。最大池化的计算如下式:
其中,μ表示三维输入向量,V表示池化操作后的输出,s、t、r表示方向上的采样步长。Softmax函数常用于分类任务的最后一层,它可以将一个n维的向量x映射为一个概率分布,使得正确的类别概率趋近于1,其他的概率趋近于0,并使所有类别的概率之和为1。
过拟合现象是训练模型时对测试数据表现比较差的一种现象,Dropout策略是指在深度模型进行训练时,对模型中的神经元,依据一定概率将其暂时地从网络中丢弃并断开相应的连接,被关闭的神经元不参与前向传播的计算与反向梯度对权重的更新。每次随机地丢弃神经元相当于对原模型的结构做了不同的修改,每一次迭代训练都是不相同的模型,参数的更新也更加关注那些被激活的神经元。因此,Dropout可以看作一种集成方法,即对多次迭代的不同模型架构的平均,从而显著地降低了过拟合的风险。本文中也使用Dropout技术减少过拟合现象,Dropout通过设置不同的比率进行了实验对比。
该实验采用5折交叉验证法,将预处理过的少数民族舞蹈典型动作数据集随机分为5组,其中4组作为训练集,1组作为测试集,再平均5次的结果作为识别率。
3.3 经典动作识别算法
目前,基于深度学习的动作识别方法层出不穷,常用的经典算法有Tran等人[11]提出的3D卷积神经网络(C3D),使之与本文的方法进行对比。首先,C3D是作为一个通用的网络提出的,在各种研究中被用于动作识别、场景识别、视频相似度分析等领域。该方法计算高效,实现简单,许多研究都证明了该模型良好的性能。C3D包含8个卷积层、5个池化层、2个全连接层,以及1个softmax输出层,所有3D卷积核均为3×3×3,步长为1×1×1,为了在早期阶段保留更多的时间信息,设置pooling1核大小为1×2×2、步长1×2×2,其余所有3D池化层均为2×2×2,步长为2×2×2,每个全连接层有4 096个输出单元。Qiu等人[17]提出的伪三维残差网络(pseudo-3D residual networks,P3D)对于动作识别有较好的效果,只以视频帧为输入的P3D ResNet的效果甚至要好于一些以视频帧和光流为输入的网络的效果。将3D卷积核3×3×3用空间域2D卷积1×3×3以及在时间域1D卷积3×1×1的联合表示,这样不仅能够减少模型的训练参数而且能够发挥在2D CNNs上预训练的优势。作者还研究了几种P3D的变体,以及如何组合形成一种结构多样性的最终的P3D网络架构。Shi等人[18]提出的卷积长短期记忆网络(ConvLSTM)为了更好地模拟时空关系,将LSTM函数的思想推广到在输入到状态和状态到状态的转换中具有卷积结构的卷积模型。通过叠加多个ConvLSTM层并形成编码预测结构。对于通用序列建模,LSTM作为一种特殊的RNN结构,在以前的各种研究中已经被证明是稳定和强大的,在此基础上改进的ConvLSTM方法,在行为识别、时间预测领域已经得到验证,具有较好的性能。
3.4 实验数据分析方法
使用数据集中的测试集,对20个民族舞蹈典型动作各方法识别结果进行精度评价。计算使用本文方法实验的识别结果的混淆矩阵,能够清楚地表达每个动作正确识别和错误识别的类别和个数,然后计算三种经典识别算法的总体识别精度,最后将本文方法与经典算法进行对比。
本文的3D CNN在Python3.6平台上实现,使用环境为AMD Ryzen 7 4800H with Radeon Graphics 2.90 GHz的Windows 10系统计算机。
首先,为了缓解过拟合现象,使用了Dropout技术,将Dropout比率设置为0.2、0.4、0.5、0.6、0.8并分别对本文的数据集进行了实验,验证集结果如图4所示,迭代100次,对比不同Dropout比率的测试集识别精度,当Dropout比率设置为0.4和0.5时,都获得了不错的识别结果,在迭代50次之后,Dropout比率为0.5的识别精度略高于比率为0.4的识别精度。
图4 不同Dropout比率的实验结果Fig.4 Experimental results of different Dropout ratios
为了验证文本提出的方法的有效性,对公开数据集UTKinect数据集、MSRAction3D数据集及本文的民族舞蹈动作数据集(ETHDance)进行了实验。UTKinect动作数据集和MSRAction3D动作数据集均由Kinect深度传感器采集,包含了人体20个关节点动作数据,与本文的舞蹈动作数据结构一致。UTKinect数据集包含10类动作,共计200个动作样本,MSRAction3D数据集包含20类动作,共计567个动作样本,本文的舞蹈动作数据集包含了20类舞蹈动作,共计600个动作样本。图5为训练集识别精度,图6为测试集识别精度。本文方法在UTKinect数据集上获得了81%的识别率,在MSRAciton3D数据集上获得了91%的识别率,在ETHDance数据集上获得了95%的识别率。通过结果可知本文的3D CNNs在其他的动作数据集中也获得了不错的结果,由此可以验证本文方法的有效性,同时也说明了本文的数据集构建比较合理。民族舞蹈典型动作数据集能获得更好的识别效果原因分析如下:(1)在民族舞蹈典型动作筛选过程中,选择了动作差异比较大的舞蹈动作;
(2)采集了更多的动作样本数,获得了更多的深度学习数据;
(3)采集的舞蹈动作比一般的动作有更多的时长,也获取了更多的动作表征。
图5 三种数据集的训练识别率Fig.5 Training recognition rate of three data sets
图6 三种数据集的测试识别率Fig.6 Test recognition rate of three data sets
在实验过程中,对所有被试的训练集和验证集进行3D CNNs模型训练,得到如图7所示损失函数曲线。图中,纵坐标为损失值,横坐标为迭代次数。从图7中可以看出迭代次数进行到45次以后,Loss逐渐稳定在0.019 1左右,达到模型的最佳训练效果。
图7 训练集和测试集的损失函数Fig.7 Loss function of training set and test set
如图8所示,为实验得到训练集和验证集识别精度函数图,图中在模型训练迭代45次以后,训练集识别率达到99.74%,然后曲线保持基本稳定,达到模型最佳识别效果。
图8 训练集和测试集的识别率Fig.8 Accuracy of training set and test set
如图9所示,为本文实验结果的混淆矩阵,图中比较了各个动作的测试集的识别效果。由于测试集是从总的样本中的20%随机抽取各个动作构成,因此测试集中每个动作的个数不同。从图中可以看出少数动作错误的预测为动作12,其余的动作都具有不错的识别结果。
图9 测试集识别结果混淆矩阵Fig.9 Confusion matrix of test set recognition results
其他经典算法同样使用骨架数据输入,与本文方法相比,结果如表2所示,本文使用的模型在本文的数据集中识别精度较高,其中,略高于P3D,比ConvLSTM高出约6个百分点,比C3D(1 net)高出约3.5个百分点。
表2 与其他方法对比结果Table 2 Comparison results with other methods
通过实验结果可以知道,使用人体骨架信息能够占用更小的存储空间获得很好的识别结果,因此各个模型在本文的数据集中都有不错的识别结果。与C3D模型相比,本文沿用了卷积核大小3×3×3,因为在文献[10]中已经证明此大小有更好的性能,但是C3D中有8层卷积层,对于本文的数据集说来,数据容量过大,本文在模型上调整了层数与卷积核数量,从而获得了更好的识别结果。相较于传统的RGB信息,向模型中输入骨架信息,能够获得更快的计算速度,这也是本文采集民族舞蹈动作骨架信息的原因之一,而本文实验后得到较好的结果,验证了动作采集实验,以及数据预处理及该数据集的合理性。
每一个民族都拥有自己独特的民族文化和精神,舞蹈是人类使用肢体语言来表达情绪情感、传达心意的一种方式,这种语言是不分国界,不分种族,是属于人类的共通的语言。随着动作识别的技术发展,有不少研究将动作识别方法应用于非物质文化遗产,在面临少数民族舞蹈动作传承困难的问题下,民族舞蹈也应该被更多更好地记录。本文实现了从舞蹈动作数据采集到动作识别一套完整的流程。通过Kinect深度传感器采集民族舞蹈典型动作骨架信息,排除了背景、光照等因素的干扰,构建了民族舞蹈典型动作数据集,用改进的3D CNNs识别该数据集,并在公开数据集上对该方法进行了验证。研究结果表明,本文的3D CNNs能够对民族舞蹈动作识别产生比较令人满意的结果,验证了民族舞蹈动作的采集到识别具有可行性,骨架信息轻量化的特点也使民族舞蹈动作应用开发更加便捷。然而,有少数相似度较高的动作识别结果上仍有偏差,而且数据集的构建只采集了一些典型动作片段作为数据样本,对于整段完整的表演,仍然有很大的研究空间。因此,下一步研究方向,是使用更优化的深度学习算法去优化对于民族舞蹈动作识别精度,同时采集更多的民族舞蹈动作数据扩充数据集,并且在较长的舞蹈表演中识别出不同的舞蹈动作,同时,在民族舞蹈动作数据集的基础上,可以开发更多相关应用。
猜你喜欢骨架卷积舞蹈浅谈管状骨架喷涂方法电子乐园·上旬刊(2022年5期)2022-04-09基于3D-Winograd的快速卷积算法设计及FPGA实现北京航空航天大学学报(2021年9期)2021-11-02学舞蹈的男孩子文苑(2020年8期)2020-09-09骨架密度对炭/炭多孔骨架压力浸渗铜的影响中国新技术新产品(2020年5期)2020-05-06冰上舞蹈搭档疯狂英语·新策略(2019年11期)2019-12-18舞蹈课孩子(2019年10期)2019-11-22从滤波器理解卷积电子制作(2019年11期)2019-07-04基于傅里叶域卷积表示的目标跟踪算法北京航空航天大学学报(2018年1期)2018-04-20内支撑骨架封抽技术在突出煤层瓦斯抽采中的应用中国煤层气(2014年3期)2014-08-07一种基于卷积神经网络的性别识别方法电视技术(2014年19期)2014-03-11