基于改进SSD的实时检测方法 下载: 1998次
1 引言
目标检测是计算机视觉领域中一项基础性和研究性都极强的课题。它的目的是用边界框定位和识别每个对象。目前来说,基于深度学习的目标检测被分为两个类别:基于区域的方法和基于非区域的方法,即两步法和一步法。
最早的目标检测方法是基于区域的方法,这类方法将检测任务分为两个阶段,第一个阶段,生成候选对象框,该阶段可以拒绝大部分背景样本,从而大大减少了目标检测的搜索空间。第二阶段,对这些对象框进行分类和回归。两步法具有高精度的优势,这类算法的典型代表有区域卷积神经网络(R-CNN)[1]、Fast R-CNN[2]、Faster R-CNN[3]和区域全卷积网络(R-FCN)[4]等。
非区域方法是从基于区域的方法演变而来的。为了解决基于区域方法的速度慢的问题,非区域方法直接从卷积神经网络中获得对象框的类别和坐标,因此也被称为一步法。这类算法的代表有YOLO(You Only Look Once)[5]、YOLOv2[6]和SSD (Single Shot MultiBox Detector)[7]等。
在基于深度学习的目标检测出现之前,检测系统普遍使用基于人工选取特征的方法[梯度方向直方图(HOG)[8]和尺度不变量特征变换(SIFT)[9]等]。可变型部件模型(DPM)[10]及其变型[11-12]把物体的模板划分成根模型和部分模型,在检测时,根模型用来定位物体可能存在的位置,部分模型用来进行进一步确认,在PASCAL VOC (Pattern Analysis, Statistical Modelling and Computational Learning Visual Object Classes)[13]中保持了多年的最高结果。然而,随着深度卷积网络的发展,目标检测迅速被基于卷积神经网络的检测方法所支配。区域建议检测器和基于卷积神经网络分类的检测等方式已经成为目前主流的方法。为了减少R-CNN中多余的计算,将区域特征提取的思想引入空间金字塔池化网络(SPP-Net)[14]和Fast R-CNN中,显著加快了检测的速度。随后,Faster R-CNN通过引入区域建议网络实现了进一步的加速。这些方法已经成为目标检测领域经典的检测方法。例如,R-FCN提出了有效的基于区域的全卷积网络,以避免重复的区域计算;Cai等[15]提出了一种多阶段目标检测体系结构。它由一系列随交并比(IOU)阈值增加的检测器组成, 从而循序渐进地防止产生假阳性目标。
在国内,也有许多学者对此进行了改进和应用[16-18]。这些方法的精度能够达到业界领先水平,然而它们并没有考虑效率问题,很难在计算量有限的平台上达到实时的效果。因此,这些方法尝试用全卷积网络去解决检测问题,跳过区域建议生成步骤,直接预测多个类别的边框和检测置信度。YOLO使用全卷积网络去预测目标的类别和位置。SSD在卷积神经网络的多个层上去预测目标。YOLOv2在所有卷积层上加上批处理归一化,使用高分辨率分类器,利用卷积层来预测包围盒。YOLOv3[19]使用更深的Darknet-59作为基础网络,并使用多尺度特征去进行目标的分类和位置的回归。Lin等[20]提出了解决前景背景类失衡的密集对象检测,取得了比现有的基于区域的检测器更好的结果。DSSD[21]使用反卷积层增加了网络的上下文信息。Feature-Fused SSD[22]将不同尺度的特征图信息融合来提高对小目标的识别精度。R-SSD[23]通过增加池化和反卷积的方法来融合不同层的特征。
虽然非区域方法大幅提高了目标检测的速度,使其在保持高精度的同时达到实时检测。但是在计算量有限的平台上,目前仅有少数网络能够达到实时的效果(例如Tiny YOLO),并且这些网络精度不高,难以达到实际要求。实时目标检测依旧存在挑战。
本文提出了一种可在计算量有限的平台上实时检测的方法:Faster-SSD。本文的主要贡献如下:1) 采用ResNet-34替换了原来的VGG-16基础网络;2) 在预测阶段计算预测框前,将对应的先验框和设定的置信度进行对比,舍去置信度小于给定值的先验框;3) 提出可变最小阈值的方法来减少进行非极大值抑制(NMS)[24]框的数量;4) 使用在线难例挖掘[25]来获取较难学习的正样本和负样本,使网络学习到有用的样本,从而提高精度。
2 SSD
SSD是由Liu等[7]提出的一种快速高效的检测方法,使用全卷积网络去提取特征并在多个特征层上预测不同尺度的目标,框架如
在生成预测框阶段,SSD先将所有经过卷积得到的预测偏移信息和与之对应的先验框进行解码,计算出预测框。解码公式为
式中
在计算出预测框之后,SSD将预测框的置信度和给定的每个类别的置信度进行对比,保留超过置信度的预测框。最后将剩下的预测框进行NMS处理得到最终结果。
3 改进方法
3.1 关于基础网络
分类网络去掉全连接层和损失层即为基础网络,分类网络的性能对目标检测网络阐述具有重大影响。本文在Caffe[26]框架下对VGGNet[27]、DenseNet[29]、ShuffleNet[30]、MobileNetv2[31]和ResNet[28]进行了测试,测试环境为GTX1070,批量大小为16,结果如
表 1. 不同分类网络在ImageNet2012下的对比
Table 1. Comparison of different classification networks on ImageNet2012
|
通常使用每秒浮点运算次数(FLOPS)来代表网络的复杂度。由
因此,在不考虑模型大小的情况下,本文采用ResNet-34作为基础网络。
3.2 改进生成预测框阶段
SSD的生成预测框阶段会导致小于给定置信度的预测框被重复计算。正确的做法是在计算预测框之前,先将对应的先验框和每个类别设定的置信度进行对比,若存在该类别的置信度超过给定值,则解码这个候选框,否则不进行解码。原理如
在SSD中,置信度是由卷积神经网络生成的,每一个类别的先验框对应一个置信度,而预测框是由先验框解码得到的,因此先验框的置信度就是预测框的置信度。本文方法在进行NMS前先获得满足条件的先验框,再进行解码求得预测框,使得小于阈值的先验框不进行解码,减少了计算量。
3.3 可变最低阈值
SSD在进行NMS前,先按置信度从大到小求出每一类别超过一定值(设为
当图中存在大量置信度大于
本文设置了一个可变最低阈值(VMT)来替代
3.4 在线难例挖掘
目标检测的一个问题是类别不平衡。每进行一次前向传播,网络会产生大量的负样本,如果将这些样本全部训练,会导致正负样本失衡从而使网络无法收敛。SSD将负样本按难易度排序,选择难的负样本并使正负样本保持1∶3的比例,从而使网络较好地收敛。
然而不同目标的检测难度差异很大,绝大部分的目标很容易被检测到,而小部分目标检测十分困难。在反向传播时,需要学习的难例会淹没在大量简单样本中。在线难例挖掘[25]根据损失值将所有候选区域进行排序,选择损失值最高的一部分候选区域进行优化,使网络更关注于图像中的困难目标。此外,为了避免选到相互重叠很大的候选区域,在线难例挖掘对候选区域根据损失值进行NMS。
本文将在线难例挖掘应用到SSD中,如
值得注意的是,在线难例挖掘仅在训练网络的时候使用,在300×300分辨率下训练网络时会增加14%左右的计算量(PASCAL VOC 2007+2012),当模型训练完进行预测时,该方法的复杂度和原文一致。
4 实验与分析
4.1 基础网络
实验基于ResNet-34分类网络,预先在ImageNet数据集上进行训练。将训练集图像的最短边缩小为256,从图像中随机采样224×224的尺寸,在每次卷积后和激活函数之前,采用批处理归一化[32]方法和随机梯度下降(SGD)方法,最小批量为32;学习率从0.1开始,当误差不变时学习率下降1/10,模型总共迭代1.4×106次;使用0.0001的权值衰减和0.9的动量。本文训练的ResNet-34在ImageNet上的Top-1精度为70.7%,低于原论文的精度。
4.2 检测网络
在Faster-SSD中,本文在PASCAL VOC2007和VOC2012训练集上进行了训练,并使用NVIDIA Jetson TX2在PASCAL VOC2007上进行了测试,如
表 2. 不同方法在PASCAL VOC2007+2012下的结果
Table 2. Detection frameworks on PASCAL VOC 2007+2012 with different methods
|
目前通常使用均值平均精度(mAP)来衡量检测算法的精度。mAP由查准率和召回率构成,公式为
式中:
对于目标检测每个类别都可以得到一条查准率-召回率(P-R)曲线,曲线下的面积就是平均精度(AP)值,将所有类别的AP值求平均,即为mAP值。
5 结论
提出了一种改进的SSD方法,在保持高精度的同时加快了SSD的速度,使其能在计算量有限的平台上达到实时检测。替换了SSD的基础网络,在预测阶段的解码部分,先求出大于置信度的先验框,再求预测框。在NMS之前,提出了可变最低阈值的方法,当存在许多目标时,通过提高更新置信度来减少进行NMS的预测框数量。最后,使用在线难例挖掘来获取困难的正样本,提高了精度。实验结果证明,本文方法可在浮点性能为1.5×1012的平台、PASCAL VOC 2007 测试集上达到76.9 mAP、速度为14 frame/s。未来将继续改进该算法,加快速度并增强小目标的识别能力,采用高效的基础网络并对模型进行压缩。
[1] GirshickR, DonahueJ, DarrellT, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2014: 580- 587.
[2] GirshickR. Fast R-CNN[C]∥IEEE International Conference on Computer Vision (ICCV), 2015: 1440- 1448.
[4] DaiJ, LiY, HeK, et al. R-FCN: object detection via region-based fully convolutional networks[J]. arXiv preprint arXiv: 1605. 06409, 2016.
[5] RedmonJ, DivvalaS, GirshickR, et al. You only look once: unified, real-time object detection[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016: 779- 788.
[6] RedmonJ, FarhadiA. YOLO9000: better, faster, stronger[C]∥IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017: 6517- 6525.
[7] LiuW, AnguelovD, ErhanD, et al. SSD:single shot multibox detector[C]∥European Conference on Computer Vision, 2016: 21- 37.
[8] DalalN, TriggsB. Histograms of oriented gradients for Human detection[C]∥IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05), 2005: 886- 893.
[10] FelzenszwalbP, McAllester D, Ramanan D. A discriminatively trained, multiscale, deformable part model[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2008: 1- 8.
[11] AzizpourH, LaptevI. Object detection using strongly-supervised deformable part models[C]∥ European Conference on Computer Vision, 2014: 836- 849.
[15] CaiZ, VasconcelosN. Cascade R-CNN: delving into high quality object detection[C]∥Computer Vision and Pattern Recognition, 2018: 6154- 6162.
[16] 叶国林, 孙韶媛, 高凯珺, 等. 基于加速区域卷积神经网络的夜间行人检测研究[J]. 激光与光电子学进展, 2017, 54(8): 081003.
[17] 黄新宇, 许娇龙, 郭纲, 等. 基于增强聚合通道特征的实时行人重识别[J]. 激光与光电子学进展, 2017, 54(9): 091001.
[18] 陆永帅, 李元祥, 刘波, 等. 基于深度残差网络的高光谱遥感数据霾监测[J]. 光学学报, 2017, 37(11): 1128001.
[19] RedmonJ, FarhadiA. YOLOv3: an incremental improvement[C]∥Computer Vision and Pattern Recognition, 2018.
[20] Lin TY, GoyalP, GirshickR, et al. Focal loss for dense object detection[C]∥IEEE International Conference on Computer Vision (ICCV), 2017: 2999- 3007.
[21] Fu CY, LiuW, RangaA, et al. DSSD: deconvolutional single shot detector[C]∥Computer Vision and Pattern Recognition, 2017.
[23] JeongJ, ParkH, KwakN. Enhancement of SSD by concatenating feature maps for object detection[C]∥ British Machine Vision Conference, 2017.
[24] HosangJ, BenensonR, SchieleB. A convnet for non-maximum suppression[C]∥German Conference on Pattern Recognition, 2016: 192- 204.
[25] ShrivastavaA, GuptaA, GirshickR. Training region-based object detectors with online hard example mining[C]∥IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016: 761- 769.
[26] Jia YQ, ShelhamerE, DonahueJ, et al. Caffe[C]∥Proceedings of the ACM International Conference on Multimedia, 2014.
[27] SimonyanK, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. arXiv preprint arXiv: 1409. 1556, 2014.
[28] He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016: 770- 778.
[29] HuangG, LiuZ, Maaten L V D, et al. Densely connected convolutional networks[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017: 2261- 2269.
[30] ZhangX, ZhouX, LinM, et al. ShuffleNet: an extremely efficient convolutional neural network for mobile devices[C]∥ Computer Vision and Pattern Recognition, 2018.
[31] SandlerM, HowardA, ZhuM, et al. Inverted residuals and linear bottlenecks: mobile networks for classification, detection and segmentation[C]∥Computer Vision and Pattern Recognition, 2018.
[32] IoffeS, SzegedyC. Batch normalization: accelerating deep network training by reducing internal covariate shift[C]∥International Conference on Machine Learning, 2015: 448- 456.
Article Outline
陈立里, 张正道, 彭力. 基于改进SSD的实时检测方法[J]. 激光与光电子学进展, 2019, 56(1): 011002. Lili Chen, Zhengdao Zhang, Li Peng. Real-Time Detection Based on Improved Single Shot MultiBox Detector[J]. Laser & Optoelectronics Progress, 2019, 56(1): 011002.