您好, 访客   登录/注册

改进的SSD行人检测算法

来源:用户上传      作者:

  摘  要: 针对行人检测中检测速度慢,不能实现实时性检测的问题,提出一种改进的SSD(Single Shot MultiBox Detector)行人检测算法。改进网络通过调整基础网络中卷积层的数量,去除冗余的卷积层,降低模型复杂度,提高检测速度;不同尺度特征图进行预测之前加入残差块,进一步提取特征,提高准确率。提取PASCAL VOC数据集中的行人图像和INRIA数据集形成混合数据集进行训练,增加模型泛化性,实验证明本方法拥有较高的精度和较快的速度,具有良好的泛化性,满足实时性要求。
  关键词: 行人检测;单发多框检测器;卷积神经网络;深度残差网络;深度学习
  中图分类号: TP391.4    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.02.012
  【Abstract】: To solve the problem that the detection speed is too slow to realize real-time detection in pedestrian detection, an improved SSD (Single Shot Multibox Detector) pedestrian detection algorithm is proposed. By adjusting the number of convolution layers in the basic network and removing the redundant convolution layers, the complexity of the model can be reduced and the detection speed can be improved. Residual blocks are added before different scale feature maps are predicted to further extract features and improve the accuracy. The person images of PASCAL VOC dataset are combined with INRIA dataset to form a mixed dataset for training, and the generalization of the model is increased. Experiments show that the method has high accuracy and speed, good generalization and real-time requirements.
  【Key words】: Pedestrian detection; SSD; Convolutional neural network; Deep residual network; Deep learning
  0  引言
  近年來,随着深度学习在在计算机视觉领域的成功应用,目标检测也得到了快速发展。行人检测是通用目标检测中一个典型且最具挑战性的问题,受到了社会各界的广泛关注[1]。当前的深度学习模型在追求高精度的同时,导致网络结构复杂化,需要高性能的硬件设备才能完成相关研究,所以构建轻量化网络,可以减少模型的计算开销,提升检测速度,降低硬件成本。
  行人检测技术可以分为基于手工设计特征的方法和基于深度学习网络特征的方法。手工设计特征如方向梯度直方图(Histogram Of Oriented Gradient, HOG)、局部二值模式(Local Binary Pattern, LBP)等方法能很好的表征姿态各异尺度多变的行人特征,可变型组建模型(Deformable Part Model, DPM)更是拿下了PASCAL VOC行人检测挑战赛2006年度的冠军。但是这类特征也有很明显的不足,特征依赖人工设计,工作量大且对设计人的经验要求高,设计的特征只局限于某几种类型,对不同环境下的检测任务不具有普适性。深度卷积神经网络作为一种能自动直接从原始数据中提取抽象特征的特征提取器[2],在图像处理、语音识别和自然语言处理等领域取得的成就引起广泛关注。
  基于深度学习的目标检测方法可分为两阶段网络和单阶段网络。两阶段网络主要有R-CNN[3]、Fast R-CNN[4]、Faster R-CNN[5]、R-FCN[6]等,此类网络在检测精度方面表现优异,但是在检测速度方面由于模型复杂度高,网络参数庞大使得检测速度缓慢。而以YOLO(You Only Look Once)[7]和SSD[8]为代表的单阶段网络,在检测速度上有很大的优势,尤其是SSD网络检测精度高,实时性好。但是SSD网络复杂度依然很高,不容易训练,对小目标的检测性能不佳,容易造成漏检和误检。针对以上问题,本文基于原始SSD网络框架,调整基础网络部分的卷积层数量,减少特征的计算量,提升模型检测速度;在特征图进入检测层之前融入残差网络,进一步融合特征,提高检测准确率。
  1  SSD算法
  1.1  SSD网络结构
  SSD算法作为一种优秀的单阶段通用目标检测
  算法,利用多尺度的检测特性,使其能适应大目标和小目标检测任务,SSD网络结构如图1所示,基础网络部分保留了VGG-16[9]的前五组卷积层进行浅层特征提取,随后连接的是由VGG-16的前2个全连接层改成的卷积层即fc6层与fc7层,并额外增加4组卷积层,对浅层特征进一步提取,新增的每一组卷积层由1?1大小的卷积核和3?3大小的卷积核组成,前者负责降通道,后者负责增通道。原始图像经过特征提取后,选取不同层的特征输出进行预测,预测目标框的位置偏移以及类别置信度,最后经过loss层的非极大抑制(Non-Maximum Suppression, NMS)方式得到最终检测结果。   1.2  区域候选框的计算
  网络中不同层次的特征图具有不同的感受野(receptive field),即不同层次特征图上的特征值对应于原始图像不同尺寸的图像块[10]。在不同尺度的特征图上设置不同的缩放因子来调整区域候选框的大小,以适应原始图片上大小不一的目标。假设选取个特征图进行预测,则每个特征图中的区域候选框的尺寸计算如下所示。
  2  改进SSD算法
  2.1  基础网络部分
  SSD方法采用VGG-16作为基础网络,网络参数庞大,在特征提取过程中耗费了大量时间,很大程度上增加了硬件开销,使检测速度变慢,首先通过对基础网络部分的调整,以提高检测实时性,调整后的网络结构表1所示。
  由表1中的参数与原始SSD的网络参数对比可知,改进的基础网络部分去除每一组卷积层中重复的卷积层,Fc6和Fc7保持不变,额外增加一个卷积层Conv10,使卷积输出的特征图尺寸为1?1,新的每一个卷积组中只含有一个卷积层和一个池化层,在每一个卷积层后面量加入批量正则化BN(Batch Normalization)[11]层,平滑不同特征图之间的偏差,以提高模型的鲁棒性,BN层后使用非线性单元ReLU函数以加快模型的收敛。为了避免调整基础网络过后,特征提取不充分,模型的检测精度受到影响,于是在作为预测输入的特征图进入分类与回归之前,加上深度残差块作为附加特征提取部分。
  2.2  附加特征提取部分
  深度残差网络(Resnet)[12]是2015年何凯明等人提出的由残差块(Resblock)堆叠而成的深度卷积神经网络模型,残差块有不同的结构及其变体,这里遵循文献[13]提出的关于残差块的设计思想,残差块的作用是学习高级抽象特征,而基础网络中包含的低级特征则在高级检测信息中保持原封不动。残差块的结构图如图2所示。
  残差块中使用1?1大小的卷积核和3?3大小的卷积核交替连接,特征图在第一个1?1大小卷积处进行降维,在第二个1?1卷积处做了还原,3?3大小卷积层能很好的表示模型的浅层特征,1?1大小和3?3大小的卷积层交替连接使得卷积层的输入输出通道数都减小,参数数量进一步减小,在残差块的层与层之间加入批量归一化(BN)层和非线性激活函数,增加特征的非线性表达。加入残差块可以提升SSD框架的检测性能,解决基础网络轻量化带来的精度退化问题。
  2.3  改进网络结构
  改进SSD算法的整体网络结构如图3所示,在文献[14]中为了节约计算开销,不。使用38?38大小的特征图,但是会导致浅层特征提取不充分,所以这里与原始SSD类似,选取同样大小的特征图作为预测输入,这里选取的是Conv4、Fc7、Conv7、Conv8、Conv9和Conv10,输出尺度分别为38?38、19?19、10?10,5?5、3?3和1?1,原始图片经过基础网络进行特征提取后,得到的不同尺度特征图作为残差块的输入,将残差块输出的特征图送入检测层进行分类与回归。
  3  实验分析
  3.1  数据集
  INRIA数据集是目前使用最广泛的静态行人检测数据集,有正样本和负样本两部分,其中正样本共有902张图片,614张图片作为训练集,包含行人样本2416个,288张图片作为测试集,包含行人样本1126个,图片中的人多为站立姿势且高度大于100像素,数据集场景丰富,清晰度高,标注准确。
  PASCAL VOC数据集是极具代表性的目标检测数据集,很多经典算法都在该数据上完成训练与验证,数据集包含20 个检测类别,人是20个分类中的一个,所以手动提取VOC数据集中的行人图片参与训练,提高模型的泛化性。
  采用帧率(frames per second, FPS)来评估模型的检测速度,帧率也叫每秒检测数,等于处理一张图片耗费的时间的倒数。
  3.3  训练过程
  实验设备配置如下,CPU为Intel i7-8700,内存为16G,操作系统为64位Windows 10,GPU型号为GTX1660Ti 6G显卡,实验框架为keras 深度学习开源框架。训练和验证损失如图4所示。
  网络训练使用优化算法为Adam,初始学习率为0.0001,迭代75000次。从图4的迭代损失图中可以看出,随着迭代次数的增加,训练损失在40000到次60000之間趋于平稳下降,并在70000次左右趋于收敛,验证损失在60000次左右趋于收敛。
  3.4  实验结果与分析
  (1)混合数据集和单一数据集使用评估
  从VOC数据集中提取的行人图片在这里叫做VOC person,将INRIA数据集和VOC person组成混合训练集共同训练,混合数据集中的验证集为VOC数据集中的person 验证集;INRIA数据集单独训练,混合数据和单一数据均在INRIA的测试集上完成模型评估。
  由表2结果可以看出,测试集在两个模型上的平均正确分别为88.5%和90.1%,混合数据集训练的模型在平均正确率上较单一数据集训练的模型有1.6%的提升,可见混合数据集能提升模型的检测性能,这与文献[15]中对于混合数据集能降低行人误检率的结论相吻合,所以下面的实验在混合数据集上完成。
  (2)改进SSD算法与原始SSD算法性能对比   本文分别对比原始SSD算法和改进SSD算法在混合数据集上的检测性能,包括平均正确率和检测速度。首先计算模型的检测速度,随机抽取10张图片检测,并分别记录在两个模型在batchsize=1时的检测时间,结果如表3所示。
  与表中检测时间相对应的帧率如图5所示。
  从图5中可以看出,原始SSD算法与改进SSD算法的检测速度在第一张图片处相差7FPS,在第8张图片处相差了13FPS,改进SSD算法平均检测速度为51.7FPS,原始SSD的检测速度平均为41.6FPS,结合检测精度,两个模型在测试集上的综合性能对比如表4所示。
  由表4可以看出,改进SSD算法比原始SSD算法在检测速度上平均高出10FPS,改进SSD算法在INRIA测试集上表现优异,取得了90.1%的平均正确率,但相比原始SSD算法的91.5%降低了1.4%,这是由于调整网络结构时,去除了重复的特征层,牺牲了一点精度换取速度的提升,使模型具有更好的实时性。
  4  结束语
  为了解决行人检测速度慢,检测模型复杂度高,网络参数庞大的问题,提出通过调整模型结构,删除重复的卷积层,在卷积层之后加上BN层的改进方法,加快模型收敛,达到提升检测速度的效果。调整基础网络过后,为了避免检测精度退化,在特征图进入预测层之前,加入残差块,对特征进一步提取,以提高模型的检测精度。在同一测试集上对比了单一数据集训练的模型和混合数据集训练的模型的检测精度,混合数据集训练的模型检测效果更好,能提高模型的泛化性与检测精度。实验结果表明,本方法检测速度与原始方法对比有明显的提高,具有良好的实时性,但牺牲了一点精度。下一步的研究方向,是在不明显影响速度的前提下提升模型检测精度。
  参考文献
  黄同愿, 向国徽, 杨雪姣. 基于深度学习的行人检测技术研究进展[J].重庆理工大学学报(自然科学), 2019, 33(4): 98-109.
  Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553): 436.
  R. Girshick, J. Donahue, T. Darrell, et al. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[C]. IEEE Computer Vision and Pattern Recognition, Columbus, 2013, 580-587.
  GIRSHICK R. Fast r-cnn[C]//Proceedings of the IEEE International Conference on Computer Vision. Santiago, Chile: IEEE, 2015: 1440-1448.
  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 & Machine Intelligence, 2017, 39(6): 1137-1149.
  Dai J, Li Y, He K, et al. R-FCN: object detection via region-based fully convolutional networks [C]// Neural Information Processing Systems. 2016: 379-387.
  Redmon J, Divvala S, Girshick R, et al. You only look once: unified, real-time object detection [C]// Computer Vision and Pattern Recognition. 2016: 779-788.
  Liu W, Anguelov D, Erhan D, et al. SSD: single shot multibox detector [C]// Proc of European Conference on Computer Vision. Springer, 2016: 21-37.
  SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition [C]// Proceedings of International Conference on LearningRepresentations.  [S.l.]: Computational and Biological Learning Society, 2015: 1-14.
  邢浩強, 杜志岐, 苏波.基于改进SSD的行人检测方法[J].计算机工程, 2018, 44(11): 228-233, 238.
  王华利, 邹俊忠, 张见, 等.基于深度卷积神经网络的快速图像分类算法[J].计算机工程与应用, 2017, 53(13): 181-188.
  He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Computer Vision and Pattern Recognition. 2016: 770-778.
  Kyoungmin Lee, Jaeseok Choi, Jisoo Jeong, and Nojun Kwak. Residual features and unified prediction network for single stage detection [EB/OL]. arXiv preprint arXiv:1707.05031, 2017. https://arxiv.org/abs/1707.05031.
  Wang R. J., Li X., Ao S. and Ling C. X. 2018 Pelee: A Real-Time Object Detection System on Mobile Devices [EB/OL]. arXiv preprint arXiv:1804.06882. https://arxiv.org/ abs/1804.06882.
  郝旭政, 柴争义. 一种改进的深度残差网络行人检测方法[J/OL]. 2019, 36(6). [2018-03-16]. http://www.arocmag.com/ article/02-2019-06-057.html.
转载注明来源:https://www.xzbu.com/8/view-15234419.htm