APP下载

基于姿势识别的舞蹈动作检测研究

2021-12-01金庆红

怀化学院学报 2021年5期
关键词:关键点残差姿势

许 诚, 金庆红

(安徽工程大学体育学院,安徽芜湖241000)

引言

人体姿势识别是帮助学习并理解人体动作与行为的主要方式,通过人体姿势识别可实现对人体运动分析和动作信息的保存.如在舞蹈动作教学过程中,学生或教练可通过人体姿势识别结果对动作进行规范;对于少数民族舞蹈,人体姿势识别还可获取舞蹈动作的关键信息并进行保存,降低舞蹈在传承过程中消失的风险.目前,人体姿势识别主要流程包括数据获取及预处理、人体特征提取与构造、动作识别三个步骤.其中,人体特征的提取构造是决定人体姿势识别的关键,但目前的特征提取和构造方法通常存在精度低的问题,包括基于底层特征跟踪方法和基于语义的方法等.如石艳娇[1]、蒋峰岭[2]基于底层特征跟踪方法通过对复合运动特征进行分析,有效检测并预测到视频中的异常事件;朱江[3]、王丽萍[4]等基于语义特征,通过对有限样本条件下欠规范手语识别容错特征扩充,一定程度上提高了人体姿势识别的正确性,但仍存在识别准确率不高的问题.为解决该问题,需结合人体骨骼关键点信息,提出一种基于骨骼关键点与残差网络的姿势识别舞蹈动作的检测方法.通过选取人体骨骼关键点特征并通过残差块自动动作检测方法,实现了复杂舞蹈场景的舞蹈动作检测.通过实验证明,该方法可有效提取人体舞蹈动作特征信息,提高动作识别的准确率.

1 姿势识别网络简介

人体姿势识别网络是一种基于PAFs算法,可准确识别图像中人体骨骼关键点与动作的识别算法[5].其主要流程是通过VGG19的前10层网络进行特征提取,并送入关键点热力图分支和肢体向量分支,实现对人体姿势的识别.该网络基本结构如图1所示,分支1即为关键点热力图分支,主要负责预测位置置信图S1;分支2即为肢体向量分支,主要负责预测部件亲和力场L1[6].

图1 姿势识别网络结构

采用姿势识别网络进行迭代预测,其预测的计算方法如式(1)(2)[7]:

式中,ρ,Φ分别表示对S和L分支对应的卷积操作.为避免该网络进行训练时产生梯度消失问题,通常在计算过程中加入loss损失函数,如式(3)[8]:

2 基于姿势识别的舞蹈动作检测方法

本研究提出的基于姿势识别的舞蹈动作检测算法分为姿势识别、关键点特征处理、动作分类三部分.首先,将输入图像裁剪为368*368尺寸输入姿势识别网络对人体关键点进行识别.然后,根据人体关键点轮廓值利用残差网络检测出人体区域.最后,通过融合关键点特征分类和图像分类,即可实现舞蹈动作的分类.基于姿势识别的舞蹈动作检测具体流程如图2所示,其关节点分类网络由关键点特征提取、图像分类、融合三个分支构成.

图2 基于姿势识别的舞蹈动作检测流程

针对关键点特征分类分支,通过分析舞蹈动作特征,将其全连接层设置为6层.第1层神经元个数与姿势识别输出的关键点特征维数相同,为18个;第2层神经元个数为256;第3层至第六层的神经元个数均为512.

针对残差块图像分类分支,本研究选用一个卷积层和batchnormalization层组成残差单元,并将残差单元进行堆叠形成残差网络结构.该网络结构中,神经网络可学习到所有函数.通过实验表明,直接学习残差可降低模型难度.因此,选用resnet提供的残差单元训练神经网络,并在第3层和第4层之间增加了dropout层.首先将输入图像裁剪到368*368,heatmap和pafs大小设置为19*46*46.然后根据关键点轮廓值,裁剪出人体轮廓框进行resnet50训练.

Resnet50包括4个残差块,预处理后的图像尺寸为224*224,其具体训练过程如下:

步骤1:将预处理后的图像输入7*7*64大小、步长为2的卷积层进行卷积,得到112*112的特征图;

步骤2:将特征图先后通过3*3大小、步长为2的池化窗口和三个block,每个block包括3层,第1层卷积核大小为1*1*64,第2层卷积核大小为3*3*64,第3层卷积核大小为1*1*256;

步骤3:待残差单元经过block后,经过一个average pooling层;

步骤4:最后先后连接层数为2048和512的两层全连接层.

针对融合动作分类,将其设计为6层全连接层网络结构.第1层神经元个数由关键点特征分类和残差块图像分类融合决定,为1024,第2层和第3层神经元个数为512,第4层和第5层神经元个数为256,第6层神经元个数为6.最终,基于姿势识别的舞蹈动作检测网络结构如图3.

图3 本算法网络整体结构

3 仿真测试

3.1 实验环境

实验在pytorch开源神经网络上对提出的算法进行验证.该网络框架包含一些常用的数据集,便于进行迁移学习,其torch.nn模块封装损失函数,torch.optim模块封装优化函数.

3.2 数据集来源及预处理

实验数据集来自演唱会视频和舞蹈视频提取的图像帧共3485张.数据集内容包括国内外歌手、舞蹈演员等,舞台包括各类大中小型演出平台和白天场景、夜晚场景.首先通过姿势识别获取图像关键点,然后计算工作特征与图像特征,得到人物动作的单帧图像和18维数据集.其中,人物6种动作数据,如图4.

图4 6种动作数据展示

随机选取数据集中3140张图像作为训练集,剩余345张图像作为测试集.训练集和测试集具体划分情况如图5所示.

图5 数据集具体划分情况

3.3 参数设置

参数的选择对算法检测识别舞蹈动作具有较大的影响.因此,为提高算法性能,需要通过多次实验确定算法的最佳网络参数,包括神经元个数、批处理尺寸等.

首先,针对神经元个数确定,采用transform.compose增强输入图像数据,并裁剪为256*256尺寸大小的图像.然后先后通过随机旋转和水平翻转,进行中心裁剪为224*224尺寸大小的图像.接着,进行归一化操作,并将融合后的人体骨骼点动作和图像信息特征输入融合网络,通过姿势识别网络识别出人体区域和人体动作信息.最后,将识别的信息输入resnet和posenet,并将18维特征传输到全连接层.因此全连接层第1层神经元个数为18.在每个线性函数后添加一个torch.relu()函数,并以0.5的比例使神经元随机失效.

针对批处理尺寸设置,若其设置过大,会导致算法收敛速度过快;若其设置过小,则容易出现局部最优解.本实验根据硬件环境和数据集大小,将批处理大小设置为64.

考虑到算法网络的卷积层为relu函数,因此本实验采用dropout降低全连接层参数,选用随机梯度下降SGD优化器对网络进行优化,epoch设置为30,学习率设置为0.001,每10个epoch后,学习率变为原来的1/10.

3.4 特征处理

3.4.1 特征选取

通过姿势识别可得到人体骨骼的18个关键点.为便于说明,对关键点进行编号,如图6.通过舞蹈动作特点,选取人体关节角度、关节点相对位置、关节点关节长度比值作为本实验人体动作.

图6 人体骨骼关键点特征定义

3.4.2 特征融合

考虑到单一特征不能全面准确表达舞蹈动作,对选取的三种特征进行融合.首先将关键点位置转化为人体脖子位置的相对位置,然后计算肢体向量,最后对相对位置进行归一化处理,即实现特征的融合.

3.5 结果与分析

3.5.1 算法验证

为验证算法的有效性,将所有热力图进行可视化,如图7所示.左图为输入图像,中间图为歌手骨骼关键点热力图,右图为将歌手热力图进行计算后得到的最大概率关键点及关键点肢体区域.采用算法进行训练与识别,算法在训练集和测试集上的准确率如图8,具体测试集上的识别准确率如表1所示.

图7 可视化热力图及骨骼关键点

图8 训练集和测试集准确率

表1 识别结果

由表1可知,本研究方法在测试集上的平均识别准确率达到92%以上,整体识别准确率较高,但手臂高举和单手挥手的识别准确率没有达到85%.其原因是,手臂高举和单手挥手动作相较于其他四种动作手臂的幅度较大,且单手挥手时另一只手状态不确定,因此降低了算法识别的准确率.此外,手臂高举和单手挥手动作会因人体与摄像机的距离远近和拍摄角度的不同,出现一定偏差,造成识别误差.因此,这两种动作的识别准确率较低.另外,数据集差异也是导致本算法对手臂高举和单手挥手识别率低的原因.舞蹈动作中,单臂张开和手臂高举动作相较于其他动作较少,故对算法识别准确率造成一定影响.

为解决因数据集差异带来的识别准确率低的问题,研究在进行数据集处理时,构建了上述6种舞蹈动作的混淆矩阵,如图9,以确保每个动作数据集的数量基本相同,然后采用本算法进行识别.根据识别结果可知,6种舞蹈动作的分类准确率均达到90%以上,说明通过混淆矩阵增加手臂高举和单手挥手动作数据集数量,可有效减少人体差异对识别结果的影响,提高识别准确率.

图9 6种舞蹈动作混淆矩阵

3.5.2 算法比较

为验证本算法的优越性,采用本算法与传统识别算法残差网络四通道算法[9]和计算Hu矩算法[10]在测试集上进行识别测试,结果如表2所示.由表2可知,相较于对比算法,本算法准确率更高,达到92%以上,说明本算法对舞蹈动作的识别效果较为理想,具有较高的准确率.此外,经实验时间可知,本算法在TeslaP4显卡上的运行速率为0.75帧/s,且可识别单张图片中的多人动作.

表2 不同算法识别准确率对比

为进一步验证本算法的识别效率,分别在0至多个人的场景下进行测试,发现随着图像中的人数增加时,本算法花费的时间也逐渐增加,但只是小幅度上升.霍夫方向计算器算法(HOC)随人数增加,运行时间线性增长,如图10.相较而言,本研究算法运行时间基本没有较大幅度的提升.由此说明,本算法效率更高,算法性能更好.

图10 HOC算法效率

4 结论

综上所述,本研究设计的基于姿势识别的舞蹈动作检测方法,通过结合骨骼关键点信息和残差网络可对复杂场景下的舞蹈动作自动检测,识别准确率达到92%以上,相较于传统舞蹈动作识别方法残差网络四通道算法和计算Hu矩算法,本算法的识别准确率最高,且算法的识别效率几乎不受图像中人物多少的影响;相较于HOC算法,本算法的识别效率更快,可满足实际舞蹈动作检测需求,具有一定借鉴意义.

猜你喜欢

关键点残差姿势
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
论建筑工程管理关键点
肉兔育肥抓好七个关键点
建筑设计中的防火技术关键点
基于残差学习的自适应无人机目标跟踪算法
倒挂在树上,我的主要姿势
看书的姿势
基于深度卷积的残差三生网络研究与应用
解锁咳嗽的正确姿势