APP下载

基于改进Simpl e Basel ines的人体姿态估计算法

2021-05-14周昆阳赵梦婷张海潮

电脑与电信 2021年3期
关键词:关节点特征提取修正

周昆阳 赵梦婷 张海潮 蒋 雯

(1.南通大学张謇学院,江苏 南通 226019;2.南通大学交通与土木工程学院,江苏 南通 226019)

1 引言

人体姿态估计在人体运动学分析、医疗康复、3D游戏等有着十分广泛的应用,人体姿态估计主要任务是通过摄像头等设备能够在任意场景中对人体的关节点进行准确的定位。

人体姿态估计最初的方法基于手工特征,但是这种方法过多依赖相关设备[1-2],并且方法的鲁棒性较低。随着深度学习和神经网络的快速发展,人体姿态估计取得很大的进展。Yaser Sheikh等[3]提出的Convolutional Pose Machine(CPM),首次使用人体姿态热图对人体关节点进行建模,通过寻找热图的最大响应点实现人体姿态估计。随着人体检测器(YOLO,SSD等)的发展,人体姿态估计逐渐由单人人体姿态估计转向多人人体姿态估计。现有的人体姿态估计方法主要分为两类:Top-Down和Bottom-Up。

Bottom-Up是先检测出所有关节点,然后按不同的人将关节点进行组装的。Bottom-Up经典算法是Openpose[4]。Openpose通过CPM定位图片中所有人的关节点,然后提出部件亲和场(Part Affinity Fields,PAF)对关节点按不同的人进行组装。

Top-Down是先检测出图片中所有人的区域,然后在该区域上对人体的关节点进行检测。Top-Down的代表算法是CPN[5],CPN是一种由粗到细的网络,通过对人体的上下文信息进行分析最终实现人体关节点检测。FastHand[6]是一种基于Top-Down的手势姿态估计算法,通过一种由低、中、高层组成Backbone有效提取手上的各个关节点,实现姿态估计。

本文以Simple Baselines[7]为基础,通过把Simple Baselines的特征提取网络替换为FastHand的特征提取网络以提高模型检测性能;同时引入姿态修正机,提高关节点的定位效果。实验结果表明,本文的改进方法能够有效提升模型对人体关节点定位的准确性。

2 Simple Baselines介绍

Simple Baselines是由微软亚洲研究院提出的一种基于Top-Down的二维人体姿态估计算法,Simple Baselines并未采用Hourglass跨层连接机制,而是提出一种简单的Baselines用于人体姿态估计。具体来说,Simple Baselines采用ResNet152作为特征提取网络,ResNet152输出的特征再经过3组反卷积+Batchnorm(BN)+ReLU将特征图尺寸扩大8倍,最后通过人体姿态热图得到人体姿态的每个关节点。Simple Baselines相较于其他人体姿态估计算法,其算法流程十分简洁且对于硬件设备要求不高。

3 基于改进Simple Baselines的二维人体姿态估计算法

本文算法流程如图1所示,用于姿态估计的网络整体与Simple Baselines相同。本文首先使用YOLOv4算法检测每个图像中的人体,接着在每个人体的子图像上进行对应行人的姿态估计。为了提高人体姿态估计的准确性,本文将Simple Baselines的Backbone从ResNet152替换为FastHand中的Backbone,并且引入一种高效的注意力机制姿态修正机(Pose Refine Machine,PRM)[8],最后输出人体17个关节点的二维坐标,实现人体姿态的准确估计。Backbone和PRM分别在3.1和3.2节中介绍。

图1 算法流程图

图2 姿态修正机结构图

3.1 特征提取网络选择

为了提高人体姿态估计准确率,本文选择FastHand中的Backbone作为本文的特征提取网络。具体来说,Backbone包含4个下采样的组成块(如图1所示),每个块由3个部分组成:一个重复n次的卷积块,一个下采样块和一个3*3的标准卷积,如公式(1)-(3)。

其中,C3*3和C1*1分别表示3*3和1*1的卷积,P3*3表示3*3的最大池化操作。4个组成块的重复次数分别为4、4、4和6次。特征图每经过一个组成块,其长宽的尺寸就变为原来的一半。Backbone输入特征大小为256×192×3,输出大小为8×6×1024。相较于ResNet152中采用单个3×3卷积进行下采样,本文神经网络的Backbone结合了3×3卷积和最大池化输出的特征,有利于更加有效地提取特征。

3.2 姿态修正机

为了进一步提高人体关节点的定位效果,本文使用姿态修正机(Pose Refine Machine,PRM)来修正各个关节点的位置。姿态修正机是在Residual Steps Network(RSN)中提出的一种高效的注意力机制,其结构如图2所示。输入特征大小为64×48×17,输入特征首先经过一个卷积核大小为3×3,步长为1的标准卷积,输出特征A。接着特征分别经过三条路径:第一条是通道注意力attc,第三条是空间注意力attp,第二条是融合第一条和第三条路径的结果fuse。姿态修正机的处理过程如公式(4)所示。

其中,变换函数attc包含了全局平均池化(Global Pooling,GP)、两个1×1卷积以及Sigmoid激活函数,输出特征图的大小为1×1×17;变换函数attp包含1×1卷积、9×9的深度可分离卷积以及Sigmoid激活函数,输出特征图大小为64×48×17。fuse是逐元素相乘操作。通过姿态修正机,算法输出17个关节点更加准确的位置信息。

4 实验结果与分析

4.1 实验数据与平台

4.1.1 实验数据

本文使用COCO数据集[9]。COCO数据集包括200K图片以250K个标有17个人体关节点的标注实例。17个关节点分别为:鼻子、左眼、右眼、左耳、右耳、左肩、右肩、左手肘、右手肘、左手腕、右手腕、左臀部、右臀部、左膝盖、右膝盖、左脚踝、右脚踝。本文使用COCO train2017数据集作为训练集,其中包含50K张行人图片以及150K个人体关节点标注实例。验证集使用COCOminival dataset(包括5000张图片),测试集使用COCO test-dev(其中包括20000张图片)。

为了增强数据集,本文采用随机旋转、随机缩放、随机亮度调整、随机对比度调整、随机饱和度调整等图像增强方式。随机缩放的比例因子为0.8~1.45,随机旋转角度为-45o~+45o,随机亮度调整首先设定阈值为0.5,然后随机在区间(0,1)内抽取一个数c,如果c≥0.5,则亮度调整比例为c,如果c<0.5,则在区间(-c,c)内随机抽一个数a,调整比例即为a+1。随机对比度调整、随机饱和度调整和随机亮度调整方法相同,阈值均为0.5。增强前后图片对比如图3所示。

4.1.2 实验平台

模型训练与测试在百度AIStudio平台进行,CPU是Intel(R)Xeon(R)Gold 6271C@2.60GHz,GPU为Tesla V100显存16GB,内存32GB。编程环境为Python3.7,深度学习框架为PaddlePaddle 2.0。

图3 增强前后图片

4.2 训练策略

本文的单批次训练样本数量(batch_size)为50,共训练100个epoch,每个epoch包含7200次迭代,优化方法选择Adam。为了加快模型的收敛,本文选择余弦学习率和指数移动平均的训练策略(Exponential Moving Average,EMA)。学习率和训练轮数(epochs)关系如公式(5)所示。

其中,begin_rate=0.0001为初始学习率,epoch为当前训练轮数,epochs为总的训练轮数,本文的epochs为100。

为了使得模型在训练时参数更新能够更加平缓,本文在模型训练时采用指数移动平均(Exponential Moving Average,EMA)。指数移动平均通过指数衰减方式计算参数更新过程中的移动平均值。对于每一个参数W,都有一个指数移动平均值Wt,W和Wt关系见公式(6)。

其中,α=0.993为衰减系数,本文使用Wt用于更新参数,Wt初始值为0。

表1 数据集介绍

4.3 实验结果与分析

本文使用基于Object Keypoint Similarity(Oks)[10]的Average Precision(AP[10])作为模型准确度的评价标准,Frames Per Second(FPS)作为模型预测速度的评价标准,模型输入大小为256×192。Oks定义如公式(7)所示。

其中,p表示在ground truth中某个人的id,pi表示某个人的关键点id,vpi=1表示这个关键点的可见性为1(即在图片上可见),SP表示这个人所占的面积大小平方根,根据ground truth里人的box计算得到,σi表示第i个关节点的归一化因子,这个因子是通过对已有的数据集中所有ground truth计算的标准差而得到的,反映出当前骨骼点对与整体的影响程度,σi值越大,说明在整个数据集中对这个点的标注效果越差;值越小,说明整个数据集中对这个点的标注效果越好。基于Oks的AP含义为:先设定一个阈值t,每幅图片计算的Oks值大于t,表明该图片关节点检测有效,小于则无效。所有图片检测结束后计算AP,AP计算如公式(8)所示。本文的t=0.95。

FPS表示每秒模型检测图片的数量。

4.3.1 特征提取网络的作用

为了验证本文特征提取改进的有效性,本文对比了ResNet152和改进的特征提取网络,实验结果如表2所示。

表2 特征提取网络改进实验结果

从表2实验结果可以看出,虽然本文的特征提取网络相较于ReaNet152,FPS降低0.96,但AP相较于ResNet152提高1.43%,综合考虑FPS和AP,本文特征提取网络的改进是有效的。

4.3.2 姿态修正机的作用

为了验证本文引进姿态修正机(PRM)的有效性,本文对比有/无姿态修正机的Simple Baselines,实验结果如表3所示。

表3 姿态修正机作用

从表3的实验结果得出,通过引进姿态修正机,Simple Baselines的AP提升1.41%,FPS仅下降0.47。本文引进姿态修正机对模型性能的提升是有效的。

4.3.3 与主流模型比较

为了验证本文对Simple Baselines模型改进方法的有效性,本文在COCO test-dev上将本文方法和主流姿态估计进行比较。这里为了对比的公平性,本文模型输入图片大小与其他方法保持一致,调整为384×288。实验结果如表4所示。

从表4可以看出,本文改进的Simple Baselines方法的AP在COCO test-dev上相较于HRNet-W48提高0.3%,相较于Simple Baselines提高2.1%。实验结果表明本文方法是有效的。

表4 本文方法与主流姿态估计算法的对比

4.3.4 检测结果展示

图4展示模型在COCO test-dev上检测的效果。结果表明,本文方法是有效的。

图4 检测结果展示

5 结语

本文以Simple Baselines模型为基础,通过FastHand改进其特征提取网络的主干,并引入姿态修正机,提高了人体关节点定位的准确性。本文方法相较于主流姿态估计算法在COCO test-dev上取得较好的效果,未来可以针对姿态修正机以及特征提取网络对本文方法做更进一步的改进,使其应用到更多场景中。

猜你喜欢

关节点特征提取修正
基于关节点数据关注RGB视频的双人交互行为识别
修正这一天
基于人体行为模型的跌倒行为检测方法①
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
对微扰论波函数的非正交修正
结构化:向儿童思维更深处漫溯
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
修正2015生态主题摄影月赛