SSD 论文详解

SSD: Single Shot MultiBox Detector (ECCV 2016)

声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢

源论文地址:https://arxiv.org/abs/1512.02325
源论文代码:https://github.com/weiliu89/caffe/tree/ssd

**笔者践行代码:https://github.com/dexterod/mask_SSD-Inceptionv2

:文字中标粗和亮色的部分为笔者认为有创新改进余地和需要注意的地方,灰色背景部分为笔者的一些想法。因水平所限,部分笔触可能有不实和错误之处,敬请广大读者批评指正,让我们一起进步~

-----------------------------------------------------------------------------------------------------------------------------------------

摘要

       我们提出了一种使用单个深度神经网络来检测图像中的目标的方法。我们的方法命名为SSD,将边界框的输出空间离散化,为不同长宽比的一组默认框和并缩放每个 feature map 的位置在预测时,网络会在每个默认框中为每个目标类别生成分数,并对框进行调整以更好地匹配目标形状。此外,网络还结合了不同分辨率的多个特征映射的预测,自然地处理各种尺寸的目标。相对于需要 region proposal 的方法,SSD 非常简单,因为它完全消除了 proposal generation 和随后的像素重采样或特征重采样阶段,并将所有计算封装到单个网络中。这使得SSD易于训练和直接集成到需要检测组件的系统中。PASCAL VOC,COCO和ILSVRC数据集上的实验结果证实,SSD比利用额外的object proposal step的方法具有一定水准的准确性,并且速度更快,同时为训练和推断提供了统一的框架。对于300×300的输入,SSD在VOC2007测试中以59FPS的速度在Nvidia Titan X上达到74.3%的mAP,对于512×512的输入,SSD达到了76.9%的mAP,优于参照的最先进的Faster R-CNN模型。与其他单阶段方法相比,即使输入图像尺寸较小,SSD也具有更高的精度。代码获取:https://github.com/weiliu89/caffe/tree/ssd

SSD 将输出一系列 离散化(discretization) 的 bounding boxes,这些 bounding boxes 是在不同层次(layers)上的 feature maps 上生成的,并且有着不同的 aspect ratio。

在 prediction 阶段:要计算出每一个 default box 中的物体其属于每个类别的可能性,即 score。如对于PASCAL VOC 数据集,总共有 20 类,那么得出每一个 bounding box 中物体属于这 20 个类别的每一种的可能性得分。同时,要对这些 bounding boxes的 shape 进行微调,以使得其匹配目标物体的形状。还有就是,为了处理相同物体的不同尺寸的情况,SSD 结合了不同分辨率的 feature maps 的 predictions。

SSD 的简单是相对于 Faster R-CNN 来说的,前者生成默认框(也就是锚点框)后微调位置并直接具体分类,而后者在生成锚点并初次分类和回归位置后,得到 proposal 层,再进行 ROI Pooling。特征重采样成 7×7 像素,进行二次分类回归

1. 引言

       目前最先进的目标检测系统是以下方法的变种:假设边界框,每个框重采样像素或提取特征,并应用一个高质量的分类器。自从选择性搜索[1]通过在PASCAL VOC,COCO和ILSVRC上所有基于Faster R-CNN[2]的检测都取得了当前领先的结果(尽管具有更深的特征如[3]),这种流程在检测基准数据上流行开来。尽管这些方法准确,但对于嵌入式系统而言,这些方法的计算量过大,即使是高端硬件,对于实时应用而言也太慢。通常,这些方法的检测速度是以每帧秒(SPF)度量,甚至最快的高精度检测器,Faster R-CNN,仅以每秒7帧(FPS)的速度运行。已经有很多尝试通过处理检测流程中的每个阶段来构建更快的检测器(参见第4节中的相关工作),但是到目前为止,显著提高的速度会以显著降低的检测精度为代价。

现在的目标检测网络大多依然是:先生成一些假设的 bounding boxes(可以理解为锚点框),然后在这些 bounding boxes 中提取特征(或者先提取特征以后,再在特征图中假设 bboxes),之后再经过一个分类器,来判断里面是不是物体,是什么物体。

       本文提出了第一个基于深度网络的目标检测器,它不对假设边界框的像素或特征进行重采样,并且与其它方法有一样精确度。这对高精度检测在速度上有显著提高(在VOC2007测试中,59FPS和74.3%的mAP,与Faster R-CNN 7FPS和73.2%的mAP或者YOLO 45 FPS和63.4%的mAP相比)。速度的根本改进来自消除了proposal generation and subsequent pixel or feature resampling stages。我们并不是第一个这样做的人(查阅[4,5]),但是通过增加一系列改进,我们设法比以前的尝试显著提高了准确性。我们的改进包括使用小型卷积滤波器来预测边界框位置中的目标类别和偏移量,使用不同长宽比检测的单独预测器(滤波器),并将这些滤波器应用于网络后期的多个特征映射中,以执行多尺度检测。通过这些修改——特别是使用多层进行不同尺度的预测——我们可以使用相对较低的分辨率输入实现高精度,进一步提高检测速度。虽然这些贡献可能单独看起来很小,但是我们注意到由此产生的系统将PASCAL VOC实时检测的准确度从YOLO的63.4%的mAP提高到我们的SSD的74.3%的mAP。相比于最近备受瞩目的残差网络方面的工作[3],在检测精度上这是相对更大的提高。而且,显著提高的高质量检测速度可以扩大计算机视觉使用的设置范围。

我们总结我们的贡献如下:

  • 我们引入了 SSD,这是一种针对多个类别的单次检测器,比先前的先进的单次检测器(YOLO)更快,并且准确得多,事实上,与执行region proposal和ROI pooling的更慢的技术具有相同的精度(包括 Faster R-CNN )。
  • SSD 的核心是预测固定的一系列默认边界框的类别分数和边界框偏移,使用更小的卷积滤波器应用到 feature map 上
  • 为了实现高检测精度,我们根据不同尺度的 feature map 生成不同尺度的预测,并通过长宽比(aspect ratio)明确分别预测。
  • 这些设计功能使得即使在低分辨率输入图像上也能实现简单的端到端训练和高精度,从而进一步提高速度与精度之间的权衡。
  • 实验包括在 PASCAL VOC,COCO 和 ILSVRC 上评估具有不同输入大小的模型的时间和精度分析,并与最近的一系列最新方法进行比较。

SSD 核心思想:Our improvements include using a small convolutional filter to predict object categories and offsets in bounding box locations, using separate predictors (filters) for different aspect ratio detections, and applying these filters to multiple feature maps from the later stages of a network in order to perform detection at multiple scales.

2. 单次检测器(SSD)

       本节描述我们提出的SSD检测框架(2.1节)和相关的训练方法(2.2节)。之后,2.3节介绍了数据集特有的模型细节和实验结果。

2.1 模型

       SSD方法基于前馈卷积网络,该网络产生固定大小的边界框集合,并对这些边界框中存在的目标类别实例进行评分,然后进行非极大值抑制来产生最终的检测结果早期的网络层基于用于高质量图像分类的标准架构(在任何分类层之前被截断),我们将其称为基础网络。然后,我们将辅助结构添加到网络中以产生具有以下关键特征的检测:

这里与跟 YOLO / Faster R-CNN 一样,都是先用基础网络提取特征,然后添加些辅助结构进行关键特征的检测

       用于检测的多尺度特征映射。我们将卷积特征层添加到截取的基础网络的末端(VGG的conv4_3)。这些层在尺寸上逐渐减小,并允许在多个尺度上对检测结果进行预测。用于预测检测的卷积模型

  • 23
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值