基于改进YOLOv3的人体行为检测①

2021-06-28 06:28李啸天李剑波秦泽宇付国栋
计算机系统应用 2021年6期
关键词:卷积预测分类

李啸天,黄 进,李剑波,杨 旭,秦泽宇,付国栋

1(西南交通大学 电气工程学院,成都 611756)

2(西南交通大学 信息科学与技术学院,成都 611756)

人体行为检测是计算机视觉领域的热点之一,其目的是检测图片或者视频中的人体行为.传统的检测算法可以分为3 个步骤:首先采用多尺度、不同长宽比的滑动窗口[1]选取图片中感兴趣区域.其次,从选取区域中提取SIFT[2]、HOG[3]以及 Haar-like[4]等人工特征.最后,对选取的特征进行分类.由于滑动窗口会产生大量冗余窗口计算量大,人工特征进行分类只能提取物体的部分特征,鲁棒性较差,传统的目标检测算法有待改进.

近几年来,基于深度学习的目标检测算法得到快速发展,这些算法主要分为两类:非端到端检测和端到端检测.以Faster-RCNN[5]为代表的非端到端类算法首先采用区域建议网络(RPN)筛选可能含有目标的候选框,然后通过深度卷积神经网络提取图像特征进行分类.端到端类算法通过深度卷积网络提取特征,然后采用回归方式输出图像中目标的位置和类别,代表性的算法有SSD[6]、YOLO[7–9].

相比于传统人体行为检测算法,基于深度学习的行为检测算法使用神经网络自动提取更深层次的图像特征,避免了人工特征易受干扰的缺陷,检测效果明显优于传统方法.在两类深度学习目标检测算法中,非端到端检测网络产生大量候选框,然后对每一个候选框进行预测,检测精度高,但是比较耗时.端到端检测网络采用回归方式直接预测,具有良好的实时性,但是不能很好的分割图片中的前景区域和背景区域,容易产生误检和漏检.因此如何在保证检测效率的前提下提升端到端检测算法的精度具有重要意义.

1 行为检测研究现状

目前在行为检测方面主要采用深度卷积神经网络提取特征,经过特征融合后进行检测.Ji 等[10]采用三维卷积神经网络,提出3-D 卷积神经网络 (3-D Convolutional Neural Networks,3-D CNN),提取视频中时空信息.在KTH 人体行为数据库上测试,获得了90.2% 的识别正确率.Gkioxari 等[11]利用卷积神经网络对人体姿势和行为进行检测,在 PASCAL VOC 数据集该方法取得了很好的检测效果,并对已有的方法进行了对比.Gkioxari 等[12]通过研究人体部件的动作和属性,提出了一种基于人体部件的行为检测方法.实验结果表明,该方法能够对人体动作较好的分类.Feichtenhofer 等 [13]提出一种时空域上的人体行为检测方法.该方法将双流卷积神经网络和残差网络 ResNet 进行结合,采用运动流和外观流进行检测,在 HMDB51 数据库和UCF101 数据库取得了较高检测的精度.莫宏伟等[14]将Faster R-CNN与OHEM 算法结合,提出在线难例挖掘算法.该算法包含两个 RoI 网络,在VOC 2012 Action 数据集上实验结果表明,改进后Faster R-CNN 算法具有识别精度高的特点.黄友文等[15]提出基于卷积神经网络与长短期记忆神经网络的多特征融合人体行为识别算法.该算法将不同层次的特征进行连接,通过卷积融合后输入LSTM 单元,在KTH和UCF Sports 数据集实验结果表明,模型有效地提高了行为识别精度.

同时,朱煜等[16]对传统行为识别方法和基于深度学习的人体行为识别方法进行了分析总结.向玉开等[17]对主流人体行为数据集进行对比,分析了基于可见光波段、传统方法、深度学习等人体行为检测研究现状及趋势,并总结面临的挑战.

虽然基于深度学习的行为检测算法在各种数据集上取得了不错的检测效果,但仍然存在一些问题,如基于3D CNN、双流网络、Faster R-CNN 的行为检测算法网络参数量巨大无法实现实时性检测.由于相同行为差异大,不同行为相识度高,检测过程中需要更加注重行为的细粒度特征,基于人体部件的检测方法虽然能够提取局部和全局特征但额外增加数据标注成本.端到端目标检测算法YOLOv3 在COCO 数据集上的测试结果mAP为57.9%,比SSD 算法高出7.5%,并且满足实时性检测要求,因此本文选择YOLOv3 作为行为检测的基本网络并改进,在保证检测效率的前提下提高网络对细粒度特征的提取能力,从而提升检测的精度.

2 网络模型介绍

2.1 Hierarchical Bilinear Pooling 网络模型

在早期的研究中,基于Bilinear CNN 模型的细粒度分类网络[18]的有效性已经在实验中得到验证.Hierarchical Bilinear Pooling 网络模型[19]在Bilinear CNN 模型的基础上提出分层双线性池化结构,增加不同层之间的交互,对多个分层双线性池化模块进行集成,从网络中间的卷积层中提取细粒度互补信息,其网络框架如图1所示.

图1 Hierarchical Bilinear Pooling 网络框架图

该模型选取3 个不同层、大小相同的特征图作为的输入,如采用VGG-16[20]的relu5_1,relu5_2,relu5_3层.然后相互作元素积(Hadamard product[21])进行层间信息互补,采用和池化操作降维,经过非线性变换和L2 正则化提升网络模型表达能力,最后将3 个特征图进行维度拼接,通过全连接层进行分类.

2.2 YOLOv3 网络模型

YOLOv3 网络结构可以分为两个部分:Darknet-53特征提取网络和特征金字塔预测网络.Darknet-53 采用全卷积层和残差结构提取图像特征,每个卷积层包括二维卷积、归一化、LeakyReLU 三个操作.特征金字塔预测网络中高分辨率的特征图通过低分辨率特征图上采样并与Darknet-53 网络中的特征图拼接得到,每一个尺度上的特征图都融合了不同分辨率、不同语义强度的特征.YOLOv3 预测过程如图2所示.

图2 YOLOv3 预测结构图

416 ×416 的原始图像经过YOLOv3 网络后产生13×13、26×26、52×52 三个尺度上的网格区域,每个网格区域预测3 个边框,每个边框对应四个边框预测值、一个网格区域置信度值和n个类别值,每个预测框输出向量y如式(1)所示:

3 Hierarchical Bilinear-YOLOv3 网络

3.1 改进Hierarchical Bilinear Pooling 网络

原Hierarchical Bilinear Pooling 网络主要用于图片的分类,即单张图片上只有一个目标的情况.为了使网络能够检测多个目标,实现目标定位,对原网络进行以下两个方面的改进:(1)省去原网络中的和池化操作,保留特征图的每一个像素特征;(2)采用1×1 卷积分类层代替原网络中的的L2 归一化层和全连接分类层,直接输出目标的类别和坐标信息.改进之后的Hierarchical Bilinear 网络如图3所示.

图3 改进后的Hierarchical Bilinear 网络结构图

将选取的3 个大小为W×H×C的特征图相互作元素积进行层间信息互补得到3 个大小为W×H×C的特征图,其中W、H、C分别为特征图的宽、高、深度.经过非线性变换,其表达式为:

其中,x为输入特征向量,b为浮点数常量.将经过非线性变换后的特征图相加,通过1×1 卷积分类,其表达式为:

其中,ZHB为分类结果矩阵,PT是分类矩阵,x、y、z为特征矩阵,tx、ty、tw、th为目标坐标信息,P0置信度值,P1,…,Pn为n个类别值.

每个边框的预测坐标值计算公式如下:

其中,tx、ty、tw、th为网络预测输出值,Cx和Cy是网格区域相对于图片左上角的偏移量,Ph和Pw表示预设边界框的长和宽,bx和by表示预测边界框的中心坐标,bh和bw是预测边界框的长和宽.

置信度P0的计算公式如下:

其中,P表示的是物体处于预测框中的输出值.

对预测框所在网格区域进行物体类别得分计算时采用逻辑分类,计算公式如下:

其中,xi表示预测该网格区域为某一类别的输出值.

3.2 改进后的YOLOv3 网络

为了增强YOLOv3 网络层间局部特征交互,提升网络对细粒度特征的提取能力,在特征金字塔分类网络中选取3 个3×3 卷积特征图作为改进后的Hierarchical Bilinear 网络的输入,经过层间信息互补后,采用回归方式直接在3 个尺度输出预测结果,1×1 分类卷积核的深度为(4+1+类别)×3.改进后的YOLOv3 网络如图4所示.

图4 改进后的YOLOv3 网络结构图

原网络和改进后的Hierarchical Bilinear 网络均会在3 个不同尺度上输出预测结果,将输出结果进行融合,计算公式如下:

其中,y为融合结果,yyolo指原YOLOv3 网络输出,yhb 代表细粒度分类结果,α为调节参数,取值为0.6.

3.3 损失函数设计

改进后YOLOv3 的损失函数计算公式如下:

其中,loss为函数总损失,lossyolo为原YOLOv3 网络的损失,losshb为改进后的Hierarchical Bilinear 网络损失,α为权重调节参数,取值为0.6.

改进后的Hierarchical Bilinear 网络损失包括xy损失、wh损失、置信度损失、分类损失,其中wh损失采用误差平方和损失函数,剩余的使用交叉熵损失函数,计算公式如下:

4 实验分析

4.1 实验数据集与参数设置

本文选用PASCAL VOC 2012 action 数据集,该数据集包含10 种不同的行为:跳、打电话、弹奏乐器、阅读、骑车、骑马、跑步、拍照片、使用电脑、走路,每张图片包含类别信息、位置信息和语义分割信息.数据集包含3448 张图像,分为训练集、验证集、测试集,三者的比例为6:2:2,标签采用类别信息和标注框信息.

实验平台采用Ubuntu 16.04 系统,Intel(R) Xeon(R) Silver 4116 CPU,主频2.10 GHz,48 内核,使用NVIDIA Tesla K80 GPU 进行加速.

网络输入大小固定为416×416,初始化方法采用He 等[22]所提出的MSRA Initialization,实验训练迭代次数为200 轮,参数更新方法采用Adam,初始学习率为0.001,L2 权重衰减设置为0.0005.

4.2 实验结果分析

本文提出的Hierarchical Bilinear-YOLOv3 网络模型与原YOLOv3 模型检测结果对比如图5所示.

图5 两种模型检测结果对比图

当IOU=0.5 时,两种模型在测试集上的AP (Average Precision)结果如图6所示.

图6 两种模型AP 测试结果

上述实验结果表明,通过加入改进后的Hierarchical Bilinear 网络增强特征图的层间交互,能够提升原网络的细粒度提取能力和小目标检测率,从而提高行为检测精度.本文使用平均准确率均值(mean Average Precision,mAP)和每秒帧率(Frame Per Second,FPS)这两个指标来评价模型的检测效果,并选择当前行为检测领域比较有代表性的模型进行对比,实验结果如表1所示.实验结果表明,本文提出的Hierarchical Bilinear-YOLOv3网络模型相比原YOLOv3 网络、文献[23]、文献[24]在行为检测上的性能指标均有所提升,改进后的模型虽然在mAP 指标上没有文献[12]、文献[25]高,但检测精度已经非常接近,同时FPS 性能指标上大幅度优于这些算法,能够实现实时行为检测.

表1 各种行为检测模型实验结果对比数据

5 结论与展望

本文针对YOLOv3 网络在人体行为检测中精度低等问题,提出一种基于Hierarchical Bilinear 模型的YOLOv3 改进算法.该模型在YOLOv3 原特征金字塔分类网络上选取一些特征输出层作为改进后Hierarchical Bilinear 网络的输入,增强层间局部信息交互,进行细粒度分类,然后与YOLOv3 网络分类结果进行融合.实验结果表明改进模型的参数量仅增加了0.4%,相比于原YOLOv3 网络检测精度提升了1.5%mAP,在保证检测效率的前提下提高了检测精度.

猜你喜欢
卷积预测分类
基于全卷积神经网络的猪背膘厚快速准确测定
选修2—2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
按需分类
教你一招:数的分类
说说分类那些事
给塑料分分类吧
《福彩3D中奖公式》:提前一月预测号码的惊人技巧!