激光与光电子学进展, 2019, 56 (1): 011002, 网络出版: 2019-08-01   

基于改进SSD的实时检测方法 下载: 1998次

Real-Time Detection Based on Improved Single Shot MultiBox Detector
作者单位
1 江南大学物联网应用技术教育部工程中心, 江苏 无锡 214122
2 无锡太湖学院江苏省物联网应用技术重点实验室, 江苏 无锡 214122
摘要
教育部-中国移动科研基金项目、青海省高端创新人才计划;
Abstract
In recent years, the convolutional neural networks are widely used in the field of object detection. However, these methods based on convolutional neural networks require a large amount of calculations, so that it is difficult for these methods to run on platforms with limited computation. A fast object detection method is proposed based on single shot multibox detector (SSD), namely Faster-SSD. The method realizes the real-time detection and high accuracy with limited computation. The basic network of SSD is replaced with ResNet-34. In the stage of generating the prediction frame, first obtain the prior boxes which satisfy the condition, and then generate the prediction frame of the corresponding category. The variable minimum threshold is proposed to reduce the amount of computation. Finally, the online hard example mining is applied to remove the simple samples. Experimental results show that the Faster-SSD gets 14 frame/s on NVIDIA Jetson TX2.

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]提出的一种快速高效的检测方法,使用全卷积网络去提取特征并在多个特征层上预测不同尺度的目标,框架如图1所示。

图 1. SSD框架

Fig. 1. Architecture of SSD

下载图片 查看所有图片

在生成预测框阶段,SSD先将所有经过卷积得到的预测偏移信息和与之对应的先验框进行解码,计算出预测框。解码公式为

x=(tx×wa)+xa,(1)y=(ty×ha)+ya,(2)

式中xy代表预测框的坐标,xaya是先验框的坐标,wa是先验框的宽度,ha是先验框的高度, txty代表的是预测偏移信息。

在计算出预测框之后,SSD将预测框的置信度和给定的每个类别的置信度进行对比,保留超过置信度的预测框。最后将剩下的预测框进行NMS处理得到最终结果。

3 改进方法

3.1 关于基础网络

分类网络去掉全连接层和损失层即为基础网络,分类网络的性能对目标检测网络阐述具有重大影响。本文在Caffe[26]框架下对VGGNet[27]、DenseNet[29]、ShuffleNet[30]、MobileNetv2[31]和ResNet[28]进行了测试,测试环境为GTX1070,批量大小为16,结果如表1所示。

表 1. 不同分类网络在ImageNet2012下的对比

Table 1. Comparison of different classification networks on ImageNet2012

NetworkSpeed /(frame·s-1)AccuracyFLOPS /109Model size /M
VGG-1618171.515.3537
DenseNet-121 K=3211774.91.932
ShuffleNet 2x30370.90.52421
MobileNetv223071.70.5214
ResNet-3440673.33.687

查看所有表

通常使用每秒浮点运算次数(FLOPS)来代表网络的复杂度。由表1可知,FLOPS的值越小模型也越小,但是它并不能完全代表一个模型速度的快慢。虽然ResNet-34的FLOPS大于MobileNetv2和ShuffleNet 2x,但是速度和精度依然高于它们。

因此,在不考虑模型大小的情况下,本文采用ResNet-34作为基础网络。

3.2 改进生成预测框阶段

SSD的生成预测框阶段会导致小于给定置信度的预测框被重复计算。正确的做法是在计算预测框之前,先将对应的先验框和每个类别设定的置信度进行对比,若存在该类别的置信度超过给定值,则解码这个候选框,否则不进行解码。原理如图2所示,其中红色框代表先验框,蓝色框代表预测框。

图 2. 解码过程的示例

Fig. 2. An example of the decoding process

下载图片 查看所有图片

在SSD中,置信度是由卷积神经网络生成的,每一个类别的先验框对应一个置信度,而预测框是由先验框解码得到的,因此先验框的置信度就是预测框的置信度。本文方法在进行NMS前先获得满足条件的先验框,再进行解码求得预测框,使得小于阈值的先验框不进行解码,减少了计算量。

3.3 可变最低阈值

SSD在进行NMS前,先按置信度从大到小求出每一类别超过一定值(设为T)的固定数量的预测框(top_k,默认为200),此步骤称为A,再对该类别下的所有预测框进行NMS,然后将所有类别的预测框按置信度大小从高到低排列,保留固定数量的结果(keep top k,本文设为200)。

当图中存在大量置信度大于T的预测框时,会导致在NMS时有多余的计算。即存在这种情况,若总类别为M,当前N个类别经NMS之后的预测框总和超过keep top k,并且keep top k的最小值大于T,设这个最小值为C,之后(M-N)个类别中置信度介于TC之间的预测框也进行了NMS操作。更好的做法应该是只对(M-N)个类别中大于该阈值的预测框进行NMS。

本文设置了一个可变最低阈值(VMT)来替代T,在进行A步骤的第一个类别时,求出该类别置信度超过T的前top_k个预测框,然后VMT等于该类别的最小置信度。当下一个类别进行A步骤时,将VMT和T的较大者设为C,求出这个类别置信度超过C的预测框,VMT等于该类别的最小置信度,以此类推,从而减少进行NMS时的计算量。该方法仅在每个类别处理完之后获取keep top k数组中的最小的置信度值,再将该值(VMT)和T进行对比,因此和原方法相比,该方法在没有额外增加计算量的同时减少了NMS的次数。伪代码如图3所示。

图 3. VMT伪代码

Fig. 3. Pseudo code of VMT

下载图片 查看所有图片

3.4 在线难例挖掘

目标检测的一个问题是类别不平衡。每进行一次前向传播,网络会产生大量的负样本,如果将这些样本全部训练,会导致正负样本失衡从而使网络无法收敛。SSD将负样本按难易度排序,选择难的负样本并使正负样本保持1∶3的比例,从而使网络较好地收敛。

然而不同目标的检测难度差异很大,绝大部分的目标很容易被检测到,而小部分目标检测十分困难。在反向传播时,需要学习的难例会淹没在大量简单样本中。在线难例挖掘[25]根据损失值将所有候选区域进行排序,选择损失值最高的一部分候选区域进行优化,使网络更关注于图像中的困难目标。此外,为了避免选到相互重叠很大的候选区域,在线难例挖掘对候选区域根据损失值进行NMS。

本文将在线难例挖掘应用到SSD中,如图4所示。首先前向传播一次,获得所有候选框的损失值,对候选区域根据损失值进行NMS,并根据损失值从大到小排序。去掉简单的正样本并将正负样本保持在1∶3的比例,最后再前向传播和反向传播。

值得注意的是,在线难例挖掘仅在训练网络的时候使用,在300×300分辨率下训练网络时会增加14%左右的计算量(PASCAL VOC 2007+2012),当模型训练完进行预测时,该方法的复杂度和原文一致。

图 4. 在线难例挖掘框架

Fig. 4. Architecture of online hard example mining

下载图片 查看所有图片

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所示。初始学习率为0.01,动量为0.9,权值衰减为0.0001,最小批量为32。当精度不变时,学习率降低10倍,本文先用MAX_NEGATIVE训练2.5×105次,再用在线硬示例挖掘(OHEM)训练2×104次,模型总共迭代2.7×105次。使用和SSD相同的数据增强方法,例如随机采样、颜色变换等。本文训练基于Caffe平台,程序运行在Ubuntu 16.04 LTS的计算机上,配置为I5-4460 CPU,NVIDIA GTX1070 GPU,8 GB的内存。

表 2. 不同方法在PASCAL VOC2007+2012下的结果

Table 2. Detection frameworks on PASCAL VOC 2007+2012 with different methods

Detection frameworkTrainTestmAPBatch sizeSpeed /(frame·s-1)
YOLOv2 352×3522007+2012200773.713.8
YOLOv2 352×3522007+2012200773.783.7
YOLOv2 Tiny2007+2012200757.1117.7
YOLOv2 Tiny2007+2012200757.1817.7
SSD3002007+2012200777.215
SSD3002007+2012200777.285.4
Faster-SSD3002007+2012200776.9113.8
Faster-SSD3002007+2012200776.9814

查看所有表

目前通常使用均值平均精度(mAP)来衡量检测算法的精度。mAP由查准率和召回率构成,公式为

Rrecall=TP/(TP+FN),(3)Pprecision=TP/(TP+FP),(4)

式中:TP代表真正类,即指被模型预测正的正样本;FN代表假负类,指被模型预测为正的负样本;FP代表真负类,指被模型预测为负的负样本。

对于目标检测每个类别都可以得到一条查准率-召回率(P-R)曲线,曲线下的面积就是平均精度(AP)值,将所有类别的AP值求平均,即为mAP值。

表2为Faster-SSD与SSD和YOLOv2的对比。由表2可知,在浮点性能为1.5×1012的NVIDIA Jetson TX2上YOLOv2已经不能满足实时检测,在352×352分辨率下约为3.8 frame/s,而YOLOv2 Tiny虽然可以达到17.7 frame/s,但是其精度仅为57.1 mAP,无法满足精度要求较高的情况。SSD虽然可以达到77.2 mAP,但是其速度仅为5 frame/s左右,无法在NVIDIA Jetson TX2上实时检测。而Faster-SSD在300×300分辨率下,精度达到76.9 mAP,速度约为14 frame/s,是SSD的2.6倍以上,可以在保持高精度的情况下进行实时检测。图5为使用Faster-SSD300在VOC2007上的检测示例,在提升速度的同时,Faster-SSD能准确识别不同环境下的目标。

5 结论

提出了一种改进的SSD方法,在保持高精度的同时加快了SSD的速度,使其能在计算量有限的平台上达到实时检测。替换了SSD的基础网络,在预测阶段的解码部分,先求出大于置信度的先验框,再求预测框。在NMS之前,提出了可变最低阈值的方法,当存在许多目标时,通过提高更新置信度来减少进行NMS的预测框数量。最后,使用在线难例挖掘来获取困难的正样本,提高了精度。实验结果证明,本文方法可在浮点性能为1.5×1012的平台、PASCAL VOC 2007 测试集上达到76.9 mAP、速度为14 frame/s。未来将继续改进该算法,加快速度并增强小目标的识别能力,采用高效的基础网络并对模型进行压缩。

图 5. 在PASCAL VOC 2007上的检测示例

Fig. 5. Detection examples on PASCAL VOC 2007

下载图片 查看所有图片

参考文献

[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.

[3] Ren S Q, He K M, 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, 2017, 39(6): 1137-1149.

[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.

[9] Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision, 2004, 60(2): 91-110.

[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.

[12] Dollar P, Appel R, Belongie S, et al. Fast feature pyramids for object detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014, 36(8): 1532-1545.

[13] Everingham M, van Gool L, Williams C K I, et al. . The pascal visual object classes (VOC) challenge[J]. International Journal of Computer Vision, 2010, 88(2): 303-338.

[14] He K M, Zhang X Y, Ren S Q, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904-1916.

[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.

    Ye G L, Sun S Y, Gao K J, et al. Nighttime pedestrian detection based on faster region convolution neural network[J]. Laser & Optoelectronics Progress, 2017, 54(8): 081003.

[17] 黄新宇, 许娇龙, 郭纲, 等. 基于增强聚合通道特征的实时行人重识别[J]. 激光与光电子学进展, 2017, 54(9): 091001.

    Huang X Y, Xu J L, Guo G, et al. Real-time pedestrian reidentification based on enhanced aggregated channel features[J]. Laser & Optoelectronics Progress, 2017, 54(9): 091001.

[18] 陆永帅, 李元祥, 刘波, 等. 基于深度残差网络的高光谱遥感数据霾监测[J]. 光学学报, 2017, 37(11): 1128001.

    Lu Y S, Li Y X, Liu B, et al. Hyperspectral data haze monitoring based on deep residual network[J]. Acta Optica Sinica, 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.

[22] Cao G M, Xie X M, Yang W Z, et al. Feature-fused SSD: fast detection for small objects[J]. Proceedings of SPIE, 2018, 106151E.

[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.

陈立里, 张正道, 彭力. 基于改进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.

本文已被 18 篇论文引用
被引统计数据来源于中国光学期刊网
引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!