基于神经网络的姿态识别算法
张剑书 杨炼鑫 王浩然 樊英泽
摘 要:公共场所视频监控网络部署日益完善,智能视频监控技术在安防、交通等领域作用越来越大。针对视频监控数据中的人类目标,提出一种基于计算机视觉的姿态识别方法。通过YOLO算法和AlphaPose模型完成对视频中人类目标检测识别以及姿态估计,在此基础上分析人体关节之间的角度对姿态分类的影响,从中提取有效的分类特征,构造并训练5层神经网络模型,完成对站、坐、躺最常见3种姿态分类。实验结果表明,训练得到的神经网络模型准确率达到85%以上,识别速率大约为每秒30帧,在安防监控、检测人员摔倒、疾病报警等方面具有一定应用价值。
关键词:神经网络;目标检测识别;人体姿态估计;姿态分类
DOI:10. 11907/rjdk. 201698
中图分类号:TP312 ??? 文献标识码:A?????? 文章编号:1672-7800(2020)011-0033-04
Posture Recognition Algorithm Based on Neural Network
ZHANG Jian-shu, YANG Lian-xin, WANG Hao-ran, FAN Ying-ze
(School of Computer Engineering, Nanjing Institute of Technology, Nanjing 211167, China)
Abstract:With the development of video surveillance network in public places, intelligent video surveillance technology plays an important role in security, transportation and other fields. In this paper, a computer vision based posture recognition method is proposed for human targets in video surveillance data. The detection, recognition and pose estimationof human targets in the video can be done through the YOLO algorithm and the AlphaPose model. On this basis, the influence of angles between human joints on posture classification is analyzed, and effective classification features are extracted from these angles. A five layer neural network model is constructed and trained to complete the classification of the three most common postures: standing, sitting and lying. The experimental results show that the accuracy rate of the trained neural network model can reach more than 85%, and the recognition rate is about 30 frames per second, and this method has a certain application value in security monitoring, staff falling and disease detection.
Key Words:neural network; target detection and recognition; human pose estimation; pose classification
0 引言
人體姿态识别与动作分类在智能视频监控、医疗健康、人机交互、安全认证等领域有着广泛应用[1],一直以来都是学界和工业界的研究热点。根据原始数据获取方式的不同,常见的姿态识别方法分为两类:传统的基于可穿戴设备或传感器设备的姿态识别和新兴的基于计算机视觉的姿态识别[2]。传统方法需要给目标对象穿戴多种传感器或光学标志,并基于此采集目标对象动作信息,这种方法抗干扰能力强,但是会影响目标对象的运动且难以广泛应用于公共场所[3];基于视觉的方法则是通过分析图片数据中的目标对象各关节点位置,提取其关键节点信息和骨架信息,数据采集完全通过外部监控摄像头完成,不会影响运动的舒适性,采集成本较低。
在基于计算机视觉方法中,通过姿态估计从二维图像或深度图像中获取人体骨架关键点是实现姿态识别的基础[4]。传统的姿态估计基于图结构[5]实现,用通过人工设定的特征(HOG[6]、SHIFT[7])匹配关节点,虽然效率较高但是算法的鲁棒性和可扩展性较差[8]。近年深度学习在机器视觉领域大放异彩,Toshev等[9]在2013年提出的DeepPose利用CNN提取目标关节点坐标信息,是第一个基于深度学习方法的姿态估计模型,相比于传统模型准确率更高。随着DeepCut[10]、Mask Rcnn[11]以及AlpahPose[12]等一系列基于深度学习的姿态估计方法提出,目前深度学习方法成为基于视觉的姿态估计最常用方法。
本文采用YOLO算法[13]和AlphaPose模型提取图像中的人类目标位置信息和骨骼关键点数据,针对Microsoft COCO数据集[14]中的目标和标记数据构建训练数据集并从中提取出有效的人体关节之间的角度特征,在此基础上通过神经网络算法训练人体姿态识别模型。本文提出的基于神经网络的姿态识别算法是对基于计算机视觉的姿态估计结果的进一步分析与挖掘,判断目标姿态的类别信息,相比于传统的基于可穿戴设备的姿态分类,该方法不需要目标对象穿戴多种传感器或光学标志,数据采集成本低且实时性高,处理效率很高。
1 基于神经网络的姿态识别
姿态识别是通过一系列算法分析传感器设备或摄像头捕捉到的目标对象原始信息,从而得到目标对象姿态。基于计算机视觉的姿态识别步骤有姿态估计、构建姿态数据集、特征提取和模型训练。
1.1 姿态估计
本文采用YOLO算法和AlphaPose模型从视频或图像中提取出人类目标并对其进行姿态估计。YOLO算法相比于RCNN系列算法[15]最大的特点就是速度快,它将目标检测任务作为回归问题解决,可以直接对输入图像应用算法进行目标检测和识别,得到物体类别信息和位置信息,如图1所示。
在完成目标识别和定位后,需要从识别出的目标中抽取出人类目标,并基于AlphaPose模型提取人体骨架信息。AlphaPose模型采用新的区域多人姿态估计框架,针对单人姿态估计(Single-Person Pose Estimator,SPPE)对目标定位结果非常敏感的问题,引入对称空间变换网络(Symmetric Spatial Transformer Network,SSTN)和参数化姿态非最大抑制(Parametric Pose Non-Maximum-Suppression,P-NMS),解决检测框定位错误和检测框冗余问题。最后通过姿态引导区域框生成器(Pose-guided Proposals Generator,PGPG)进行数据增强。通过AlphaPose模型实现多人姿态估计,得到图2中每个目标的17个骨架关键点位置数据,如图2所示。
1.2 姿态数据集构建
基于开源数据集Microsoft COCO构建姿态数据集。COCO数据集不仅包括目标的类别信息和位置信息,还包括人类目标的关节点数据。首先从所有图片所对应的5张图片说明文字标签(captions.json)中筛选出包含“stand”、“sit”和“lie”这些与人体姿态相关的关键词,然后将这些关键词作为该图片的姿态标签。由于这些图片中包含的人类目标数量不确定,因此姿态关键词具体描述的哪个人目标也不确定。为排除多个目标干扰,根据每张图片的实例标签(instances.json)标记的所有目标类别信息,从这些图片中剔除包含多个人类目标图片。考虑到有些图片中會存在遮挡或目标出现在边缘显示不全问题,需要检查剩余图片数据的关键点标签(keypoints.json)中的17个关键点(鼻子、左/右眼、左/右耳、左/右肩、左/右肘、左/右手腕、左/右髋部、左/右膝、左/右脚踝)位置数据是否为有效数据,将关键点数据不全的图片删除,最后得到人体姿态数据集,共计3 000多张图片和对应标签,包含最常见的3种姿态。
1.3 特征提取
训练数据集中人类目标位置标签和目标关键点标签是数据的原始特征,如图3所示。这些特征并不适合直接应用到姿态识别中,因此需要从数据的原始特征中提取出姿态识别有效特征。
当人的姿态发生变化时,各关节之间角度相应也会发生一定变化,将图1中的17个骨架关键点[xi,yi]两两相减得到136个向量,计算公式如下:
分别计算这136个向量相互之间的夹角,为了方便后续计算,这里计算这些夹角的余弦值,以此作为备选特征,计算公式如下:
根据公式(2)得到的余弦值共有9 180个,数据量较大,若直接基于这些特征构建神经网络则网络结构会很复杂,训练过程会耗费很多时间,而这些特征是通过穷举得到的,并没有筛选,其中可能混杂很多无效特征。因此,需对这些余弦值特征进一步提取,分别计算不同姿态和相同姿态目标之间的余弦值方差,基于类内特征方差大同时类间特征方差小的原则,构造特征影响因子指标,筛选出特征影响因子最高的10个特征作为有效的人体姿态特征,如表1所示。
1.4 模型训练
基于BP神经网络构建姿态分类模型。BP神经网络主要由输入层、隐含层和输出层3种结构组成。针对上述训练数据集及提取出的10个有效姿态特征,构建五层结构的神经网络模型如图4所示。
图2的网络包含一个输入层、3个隐含层和一个输出层。其中,第一层是输入层,输入层的每个神经元代表一个特征,因此输入层由10个神经元组成,采用[tanh]函数作为激活函数,其表达式为
第二层到第四层都是隐含层,第二层与第四层的作用类似,通过对输入特征进行多层次抽象,线性划分不同类型数据。在第二层与第四层分别设置15个神经元和12个神经元,同时采用线性整流函数relu作为激活函数避免梯度弥散问题,relu函数表达式如下:
另外,考虑到神经网络模型的复杂性以及训练数据量有限,在训练过程中可能会出现过拟合问题,在第三层中引入dropout策略。在训练过程中随机使上一层部分神经元失活,以提高网络的泛化能力。
最后一层为输出层,输出为该目标的姿态分别属于不同类别的概率。输出层的神经元个数代表分类标签个数,输出的类别标签包括3类,因此输出层的神经元个数为3。输出层选择分类效果较好的softmax函数作为激活函数。
神经网络模型训练就是确定初始参数,选择合适的优化器,然后根据训练数据集中的特征数据和标签数据不断优化网络参数。
2 实验结果分析
将训练数据集中70%的数据作为训练集,剩下30%数据作为测试集,设置网络的第三层dropout丢弃概率为0.3,迭代6 000次,分别选择SGD(学习率设置为0.001)和Adam(设置学习率为0.001,指数衰减率[β1]和[β2]分别设置为0.9和0.99)作为优化器,采用交叉熵误差函数作为损失函数,训练准确率曲线和损失曲线如图5所示。
从图5可以看出,采用Adam作为优化器时模型收敛速度很快,在迭代了2 000次后就收敛了,在训练集上可以获得更高的识别准确率。采用精确率、召回率、F1分数和准确率作为评估模型性能指标,计算得到基于Adam优化器训练的模型性能指标如表2所示。
从表2可以看出,无论是在训练集还是在测试集上,模型的准确率都在85%以上,同时精确率、召回率和F1分数也都在85%左右,具有较好的综合性能。
3 结语
本文提出一种基于神经网络的人体姿态识别算法,筛选Microsoft COCO数据集中的目标和标记数据构建训练数据集,并结合特征工程获取有效的人体姿态特征数据,通过构建和训练神经网络算法得到人体姿态识别模型。实验结果表明,该模型具有较高的识别准确率和识别效率,可直接应用到智能视频监控系统中,结合目标检测、识别以及人体姿态估计算法,判断视频监控覆盖范围内所有人体目标姿态。但目前训练样本中的姿态类别有限,后期可通过手工标注方法扩展训练样本,通过引入更多的姿态标签增强模型应用范围。
参考文献:
[1] 石跃祥,许湘麒. 基于改进DenseNet网络的人体姿态估计[J]. 控制与决策,2019,18(12):1-8.
[2] 景元,吉爱红,张曦元,等. 传感器人体运动行为特征识别研究进展[J].? 计算机工程与应用,2019,18(1):23-28.
[3] 杨凯,魏本征,任晓强,等.? 基于深度图像的人体运动姿态跟踪和识别算法[J]. 数据采集与处理,2015,30(5):1043-1053.
[4] 邓益侬,罗健欣,金凤林. 基于深度学习的人体姿态估计方法综述[J]. 计算机工程与应用,2019,55(19):22-42.
[5] FISCHLER M A,ELSCHLAGER R A.The representation and matching of pictorial structures[J].? IEEE Transactions on Computers,1973,11(1): 67-92.
[6] DALAL N,TRIGGS B.Histograms of oriented gradients for human detection[C]. Proceedings of International Conference on Computer Vision and Pattern Recognition,2005:886-893.
[7] LOWE D G.Object recognition from local scale-invariant features[C]. Proceedings of the International Conference on Computer Vision,1999:1150-1157.
[8] 李崤河,刘进锋. 二维人体姿态估计研究综述[J]. 现代计算机,2019,18(22):33-37.
[9] TOSHEV A,SZEGEDY C.Deeppose:human pose estimation via deep neural networks[J]. IEEExplore,2013,65(8):1524-1531.
[10] PISHCHULIN L,INSAFUTDINOV E,TANG S,et al. Deepcut:joint subset partition and labeling for multi person pose estimation[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2016:4929-4937.
[11] HE K,GKIOXARI G,DOLLáR P,et al. Mask R-CNN[C].? Proceedings of the IEEE International Conference on Computer Vision,2017:2961-2969.
[12] FANG H S, XIE S, TAI Y W, et al. Rmpe: regional multi-person pose estimation[C]. Proceedings of the IEEE International Conference on Computer Vision,2017:2334-2343.
[13] REDMON J,DIVVALA S,GIRSHICK R,et al. You only look once: unified, real-time object detection[J]. Computer Science,2015,45(12):458-467.
[14] LIN T Y, MAIRE M, BELONGIE S, et al. Microsoft coco: common objects in context[C]. European conference on computer vision. Springer, Cham, 2014:740-755.
[15] REN S,HE K,GIRSHICK R,et al. Faster R-CNN: towards real-time object detection with region proposal networks[J].? IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 39(6):1841-1850.
(責任编辑:杜能钢)
收稿日期:2020-06-25
基金项目:南京工程学院校级科研基金项目(QKJ201803);江苏省高等学校大学生创新创业训练计划项目(201911276050Y)
作者简介:张剑书(1992-),男,硕士,南京工程学院计算机工程学院助理实验师,研究方向为视频图像处理;杨炼鑫(1998-),男,南京工程学院计算机工程学院学生,研究方向为机器学习;王浩然(2000-),男,南京工程学院计算机工程学院学生,研究方向为图像处理;樊英泽(1998-),男,南京工程学院计算机工程学院学生,研究方向为爬虫与数据采集。