2016-ECCV-SSD:Single Shot MultiBox Detector(SSD)学习

参考博文:

2016-ECCV-SSD   里面有code,下载地址。

目标检测方法——SSD 另一个解释,应该是某个OCR研究组,重点关注。

论文笔记 | ECCV2016 | SSD: Single Shot MultiBox Detector 论文介绍的很详细,适合我这种初学者。

 这个翻译怎么感觉有点太硬了。Single Shot MultiBox Detector论文翻译——中英文对照

又找个其他翻译正在看:SSD: Single Shot MultiBoxDetector 论文翻译

以此为起点,研究papr,code 学习 python。

算了在二位仁兄基础上自己翻译吧,正好梳理下。

Abstract

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

1  Introduction

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

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

本文贡献总结如下:

  • 我们引入了SSD,一个用于多类别的one-stage检测器,比先前的检测器(one-stage YOLO)速度更快,更准确,事实上取得和使用region proposal、pooling慢技术(包括Faster RCNN)一样的准确性。
  • SSD方法的核心是使用小卷积滤波器来预测特征图上固定的一组默认边界框的类别分数和位置偏移。
  • 为了实现提高检测精度,我们对不同尺度的特征图生成不同尺度的预测,并明确通过不同宽高比来分别预测。
  • 这些设计特点使得即使输入相对低分辨率图像也能得到简单的端到端训练和高精度,进一步提高速度和精度的权衡。
  • 实验包括在PASCAL VOC,MS COCO和ILSVRC上评估不同输入大小下模型耗时和精度分析,并与一系列最新的先进方法进行比较。

2. The Single Shot Detector (SSD)

本节介绍我们提出的SSD检测架构(第2.1节)和相关的训练方法(第2.2节)。之后, 第3节呈现特定数据集的模型细节和实验结果。

2.1 Model

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

多尺度特征图检测:我们将卷积特征层添加到截断的基础网络的末尾。这些层尺寸逐渐减小,并允许在多个尺度上对检测结果进行预测。预测检测的卷积模型对于每个特征层是不同的(参见在单个尺度特征图上操作的Overfeat [4]和YOLO[5])。

检测的卷积预测器:每个添加的特征层(或可选的基础网络的现有特征层)可以使用一组卷积滤波器产生固定的检测预测集合。这些在图2中SSD网络架构顶部已指出。对于具有p个通道的大小为m×n的特征层,潜在检测的预测参数的基本元素是使用3×3×p卷积核卷积操作,产生类别的分数或相对于默认框的坐标偏移。在每个应用卷积核运算的m×n大小位置处,产生一个输出值。边界框偏移输出值是相对于默认框测量,默认框位置则相对于特征图(参见YOLO [5]的架构,中间使用全连接层而不是用于该步骤的卷积滤波器)。

图2:两个单次检测模型之间的比较:SSD和YOLO [5]。 我们的SSD模型在基础网络的末尾添加了几个特征层,这些层预测了不同尺度和宽高比对默认框的偏移及其相关置信度。 300×300输入尺寸的SSD在VOC2007测试中的精度显着优于448×448输入的YOLO的精度,同时还提高了运行速度,尽管YOLO网络比VGG16快。

默认边界框和长宽比。对于网络顶部的多个特征图,我们将一组默认边界框与每个特征映射单元相关联。默认边界框以卷积的方式平铺特征图,以便每个边界框相对于其对应单元的位置是固定的。在每个特征映射单元中,我们预测单元中相对于默认边界框形状的偏移量,以及指出每个边界框中存在的每个类别实例的类别分数。具体而言,对于给定位置处的k个边界框中的每一个,我们计算c个类别分数和相对于原始默认边界框形状的4个偏移量。这使得在特征图中的每个位置需要总共(c+4)k个滤波器,对于m×n的特征图取得(c+4)kmn个输出。有关默认边界框的说明,请参见图1。我们的默认边界框与Faster R-CNN[2]中的anchor boxes相似,但是我们将它们应用到不同分辨率的特征图中。在多个特征图中使用不同的默认框形状,可以有效地离散可能的输出框形状空间。

2.2 Training

训练SSD和训练使用region proposal典型检测器之间的关键区别在于,需要将真实标签信息分配给固定检测器输出集合中的某一特定输出。YOLO [5]的训练阶段,Faster R-CNN [2]和MultiBox [7]的region proposal阶段也需要类似这样的标记过程。一旦确定了这个分配,损失函数和反向传播就可以应用端到端了。训练也涉及选择默认边界框集合和尺度集合,以及hard negative mining和数据增广策略。

匹配策略。在训练过程中,我们需要确定哪些默认边界框对应实际标签,并相应地训练网络。对于每个实际标签框,我们从默认边界框中选择,这些框会在位置,长宽比和尺度上变化。我们首先将匹配每个真实标签框与默认框最好的jaccard重叠(Jaccard重叠即IoU)(如MultiBox[7] 使用的匹配方法,它确保每个真实标签框有一个匹配的默认框)。与MultiBox不同的是,我们将默认边界框匹配到Jaccard重叠高于阈值(0.5)的任何实际标签框。这简化了学习问题,它使得有多个重叠默认框时网络预测获得高置信度,而不是要求它选择具有最大重叠的那个。

训练目标函数。SSD训练目标函数来自于MultiBox目标[7,8],但扩展到处理多个目标类别。设

选择默认框的尺度和横宽比:(大多数卷积网络通过加深层数减小特征图的大小。这不仅减少计算和存储消耗,而且还提供一定程度的平移和尺寸不变性。)为了处理不同的目标尺度,一些方法[4,9]建议将图像转换为不同的尺寸,单独处理每个尺寸,然后组合结果。然而,通过利用单个网络中几个不同层的特征映射进行预测,我们可以模拟得到相同的效果,同时还可以跨所有目标尺度共享参数。以前的工作[10,11]已经表明,使用低层的特征图可以提高语义分割的质量,因为低层会捕获输入目标的更多细节。类似地,[12]表明,添加从高层特征图下采样的全局文本有助于平滑分割结果。受这些方法的启发,我们使用较低和较高的特征图进行检测。图1显示了框架中使用的两个示例性特征映射(8×8和4×4)。在实践中,我们可以使用更多的具有很少计算开支的特征图。

已知网络中不同级别的特征图具有不同的(经验)感受野大小[13]。幸运的是,在SSD框架内,默认边界框不需要对应于每层的实际感受野。我们设计平铺默认边界框,使得特定位置特征图学习响应目标的特定尺度。假设我们要使用m个特征图进行预测。每个特征图默认边界框的尺度计算如下:

通过组合许多特征图在所有位置的不同尺寸和宽高比的所有默认框的预测,我们具有多样化的预测集合,覆盖各种输入对象尺寸和形状。例如图 1中,狗被匹配到4×4特征图中的默认框,但不匹配到8×8特征图中的任何默认框。这是因为那些框具有不同的尺度但不匹配狗的框,因此在训练期间被认为是负样本。

难例挖掘。在匹配步骤之后,大多数默认边界框为负例,尤其是当可能的默认边界框数量较多时。这在正的训练样本和负的训练样本之间引入了显著的不平衡。我们使用每个默认框的最高置信度对它们进行排序,并选择前面的那些,使得正负样本之间的比率最多为3:1。我们发现这会导致更快的优化和更稳定的训练。

数据增强。为了使模型对各种输入目标大小和形状更鲁棒,每张训练图像都是通过以下选项之一进行随机采样:

  • 使用整个原始输入图像。
  • 采样一个图像块,使得与目标之间的最小Jaccard重叠(Jaccard重叠即IoU)为0.1,0.3,0.5,0.7或0.9。
  • 随机采样一个图像块。

每个采样图像块的大小是原始图像大小的[0.1,1],长宽比在1/2和2之间。如果真实标签框中心在采样片段内,则保留重叠部分。在上述采样步骤之后,将每个采样片大小调整为固定大小,并以0.5的概率水平翻转。

3 Experimental Results

 

 

 

4、Related Work

目前有两种已建立的用于图像中对象检测的方法,一种基于滑动窗口,另一种基于region proposal分类。在卷积神经网络出现之前,用于检测的两种方法DeformablePart Model(DPM)[22]和选择性搜索[1]性能接近。然而,在R-CNN[20]带来的显着改进之后,其结合了选择性搜索region proposal和基于卷积网络的后分类,region proposal对象检测方法变得普遍。

原始的R-CNN方法已经以各种方式进行了改进。第一组方法提高了后分类的质量和速度,因为它需要对成千上万的图像作物进行分类,这是昂贵和耗时的。SPPnet[9]对原始的R-CNN方法大大提速。它引入了空间金字塔池化层,其对区域大小和尺度更加鲁棒,并且允许分类层重用在若干图像分辨率生成的特征图特征。Fast R-CNN[6]扩展了SPPnet,使得它可以通过最小化置信度和边界框回归的损失来对所有层进行端对端微调,这在MultiBox[7]中首次引入用于学习对象。

第二组方法使用深层神经网络提高proposal生成的质量。在最近的工作中,例如MultiBox[7,8],基于低层图像特征的选择性搜索region proposal被直接从单独的深层神经网络生成的proposal所替代。这进一步提高了检测精度,但是导致了一些复杂的设置,需要训练两个神经网络及其之间的依赖。Faster R-CNN[2]通过从region proposal网络(RPN)中学习的方案替换了选择性搜索proposal,并且引入了通过微调共享卷积层和两个网络的预测层之间交替来集成RPN与Fast R-CNN的方法。用这种方式region proposal池化中层特征图,最终分类步骤更快速。我们的SSD与Faster R-CNN中的region proposal网络(RPN)非常相似,因为我们还使用固定的(默认)框来进行预测,类似于RPN中的achor框。但是,不是使用这些来池化特征和评估另一个分类器,我们同时在每个框中为每个对象类别产生一个分数。因此,我们的方法避免了将RPN与Fast R-CNN合并的复杂性,并且更容易训练,更易于集成到其他任务中。

另一组方法与我们的方法直接相关,完全跳过proposal步骤,直接预测多个类别的边界框和置信度。 OverFeat[4]是滑动窗口方法的深度版本,在知道基础对象类别的置信度之后直接从最顶层特征图的每个位置预测边界框。YOLO [5]使用整个最高层特征图来预测多个类别和边界框(这些类别共享)的置信度。我们的SSD方法属于此类别,因为我们没有提案步骤,但使用默认框。然而,我们的方法比现有方法更灵活,因为我们可以在不同尺度的多个特征图中的每个特征位置上使用不同宽高比的默认框。如果顶层特征图每个位置只使用一个默认框,我们的SSD将具有与OverFeat[4]类似的架构;如果我们使用整个顶层特征图并且添加一个全连接层用于预测而不是我们的卷积预测器,并且没有明确考虑多个宽高比,我们可以近似地再现YOLO[5]。

5、Conclusions

本文介绍了SSD,一种用于多个类别的快速单次对象检测器。我们的模型的一个关键特点是使用多尺度卷积边界框输出附加到网络顶部的多个特征图。这种表示允许我们有效地模拟可能的框形状空间。我们实验验证,给定适当的训练策略,更大量的仔细选择的默认边界框得到了性能的提高。我们建立SSD模型,与现有方法相比,至少相差一个数量级的框预测位置,规模和纵横比[2,5,7]。

我们证明,给定相同的VGG-16基础架构,SSD在精度和速度方面胜过最先进的对象检测器。我们的SSD500型号在PASCAL VOC和MS COCO的精度方面明显优于最先进的Faster R-CNN [2],速度快了3倍。 我们的实时SSD300模型运行在58 FPS,这比当前的实时YOLO[5]更快,同时有显著高质量的检测。

除了它的独立实用程序,我们相信,我们的完整和相对简单的SSD模型为使用对象检测组件的大型系统提供了一个伟大的组成块。一个有希望的未来方向,是探索其作为使用循环神经网络的系统一部分,用以检测和跟踪视频中对象。

6、Acknowledgment致谢

这个项目是在谷歌开始的实习项目,并在UNC继续。 我们要感谢亚历克斯·托舍夫有用的讨论,并感谢谷歌的Image Understanding和DistBelief团队。 我们也感谢菲利普·阿米拉托和帕特里克·波尔森有益的意见。我们感谢NVIDIA提供K40 GPU并感谢NSF 1452851的支持。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值