SSD: Single Shot MultiBox Detector 论文翻译

版权声明:转载请注明来源! https://blog.csdn.net/CAU_Ayao/article/details/82560416

SSD: Single Shot MultiBox Detector 论文翻译


目录

@TOC


摘要

       我们提出了一种使用单个深度神经网络检测图像中目标的方法。我们的方法(SSD)将边界框的输出空间离散化为不同长宽比的一组默认框并缩放每个特征映射的位置。在预测时,网络为每个默认框中的每个对象类别的存在生成分数,并产生对框的调整以更好地匹配对象形状。另外,网络将来自具有不同分辨率的多个特征映射的预测组合在一起以自然地处理各种大小的目标对象。 SSD相对于区域网络生成的方法而言是简单的,因为它完全消除了区域生成后的像素或特征重采样阶段,并将所有计算封装在单个网络中。这使得SSD易于训练并且可以直接集成到需要检测组件的系统中。在PASCAL VOC,COCO和ILSVRC数据集上的实验结果表明,SSD与使用额外目标区域网络步骤的方法相比具有较高的精确度,并且速度更快,同时为训练和推理提供了统一的框架。在VOC2007数据集上,对于300×300输入,SSD在NFCidia Titan X上以59 FPS进行测试时达到74.3%mAP;对于512×512输入,SSD达到76.9%mAP,这个结果要好于最新的Faster R-CNN模型。与其他single single方法相比,即使输入图像尺寸较小,SSD也具有更高的精度。代码实现地址:[https://github.com/weiliu89/caffe/tree/ssd](https://github.com/weiliu89/caffe/tree/ssd)

关键词:实时目标检测;卷积神经网络

1. 引言

       当前最先进的目标检测系统都是由以下方法改进而来:假设边界框、对像素或每个框重采样,并使用高质量的分类器。在选择性搜索方法[1]出现之后,Faster R-CNN[2]在PASCAL VOC,COCO和ILSVRC数据集上进行检测取得最新的结果,这种思路流程在目标检测领域开始成为主流方式,并像文献[3]所述那样具有更深的特征。这种方法虽然精确度很高,但对于嵌入式系统来说计算量过大,即使对于高端硬件,这种方法对于实时检测的要求来说也太慢。通常这些方法的检测速度是以每秒多少帧(SPF)进行测量,甚至目前最快的高精度检测器Faster R-CNN模型的速度也才打到每秒7帧。目前有很多研究者尝试通过研究检测流程的每个阶段(参见第4部分中的相关工作)来建立更快的检测器,但是到目前为止,显著的速度提升仅仅是以精度的的显著下降为代价的。

       这篇文章提出了第一个基于深度网络的目标检测器,这种检测器不需要对边界框假设的像素和特征的进行重采样,而且精度能达到一样的效果。这种方法在高精度检测中显著的提高了速度(在VOC2007测试集上可以达到59 FPS,mAP 74.3%;vs Faster R-CNN模型的7 FPS ,mAP 73.2%,YOLO模型下 45 FPS,mAP 63.4%)。这种方法在速度上的提高根本原因是消除了边界框区域和之后的像素或特征的重采样步骤。我们不是第一个去做这个方法的(cf[4,5]),但是通过添加一系列的改进,显著的提高了以前尝试的准确性。我们的改进包括使用一个小的卷积滤波去预测目标并在边框回归中抵消,使用分离的预测滤波对不同的长宽比检测,并在来自后面步骤的网络的多尺度特征图上使用这些滤波,为了去更能好的进行多尺度预测。随着这些修改——尤其是在不同尺度上使用多层网络进行预测——我们通过低分辨率的输入可以实现高精度的检测,进一步提高了检测的速度。尽管这些贡献看起来比较小和独立,但是我们注意到在PASCAL VOC数据集上提高了实时检测的精度,分别是YOLO:63.4% mAP和SSD:74.3%。这在当前的目标检测领域精度得到了很大的提高,也是残差网络很好的应用体现[3]。此外,显著的提高高质量目标检测的速度可以可以扩大计算机视觉的应用范围。
       我们总结了我们的工作主要如下:

  • 我们提出了SSD模型,他是一种单帧多尺度检测器且比目前最好的单帧检测器(YOLO)速度要快,而且精度更高,实际上使用基于Region Proposals更慢的技术(如:Faster R-CNN)也能达到同样的精度。
  • SSD的核心是在特征图上使用小的卷积滤波器预测一个策略分数和边框偏移,以此来修正一系列默认的边界框。
  • 为了实现高精度的检测,我们在不同尺度上的特征图上进行不同尺度的预测,而且通过长宽比明确的分离和预测。
  • 这些特征图的设计会产生一个更简单的端到端的训练及更高的精度,甚至在输入低分辨率图像的情况下,可以进一步以牺牲精度为代价提高检测的速度。
  • 实验包括SSD模型在PASCAL VOC,COCO和ILSVRC数据集上通过不同的输入尺寸进行时间和精度的分析评估,并与当前最新的一些检测方法进行比较。

2. 单帧检测器(SSD)

       这部分描述了我们提出的SSD检测框架(见2.1)和训练的方法(见2.2)。之后第三部分展示了专用数据集模型方法的的细节和实验的结果。

2.1. 模型

       SSD方法在基于前馈卷积神经网络的基础上,对存在的目标对象实例产生一个固定尺寸大小的边界框和策略分数,并通过非最大抑制步骤去产生最终的检测结果。早期的网络层是基于标准的结构 在分类层之前使用高质量的图片分类截图,我们称这位基础的网络(VGG-16)。然后为这个网络添加一个辅助结构并根据下面的关键特征产生检测结果:

多尺度特征图:我们在基础网络的最后一层添加一个卷积特征层。这些层的大小逐步下降并可以在多尺度层上进行预测。预测的卷积模型对每个特征层都是不同的(cf在单层上操作的的特征图: Overfeat[4] 和 YOLO[5])。
卷积预测:每一个添加的特征层(或者使用基础网络外的特征层)可以通过卷积滤波器产生一系列的检测预测。SSD网络的顶层结构表示如图2所示。
在这里插入图片描述
图2:一个在两个单帧检测模型中的比较:SSD和YOLO[5]。我们的SSD模型在基础网络的后面添加了一些特征层,它可以在不同尺度和长宽比以及置信度上预测出默认的边框。SSD模型是300300的尺寸输入,很明显的优于YOLO模型的448448的尺寸大小输入,相应的在VOC2007测试集上精度和速度都有所提高。

一个特征层的尺寸大小是m * n并有 p个通道,检测器预测的基础元素是一个3 * 3 * p的小的卷积核元素,由它产生每一个预测的策略分数,或者一个默认边框的形状。在卷积核应用的每一个m * n的局部区域,都产生一个输出值。边界框偏移输出值是相对于每个feature map位置的默认框位置来度量的(cf是YOLO[5]的体系结构,在此步骤中使用了一个中间全连通层,而不是卷积过滤器)。
默认的边框和长宽比对于网络顶部的多个feature map,我们将一组默认的边界框与每个feature map单元相关联。默认框以卷积方式对feature map进行平铺,以便每个框相对于其对应单元格的位置是固定的。在每个feature map单元格中,我们预测相对于单元格中的默认框形状的偏移量,以及表示每个框中存在类实例的每个类得分。具体来说,对于给定位置的k个方框,我们计算c类分数和相对于原始默认方框形状的4个偏移量。这导致在feature map的每个位置都应用了(c+ 4)k个过滤器,从而得到(c+ 4)kmn对于m*n feature map的输出。有关默认框的说明,请参见图1。我们的默认框类似于更快的R-CNN[2]中使用的anchor boxes, 然而,我们将它们应用到不同分辨率的特征图上。在几个功能映射中允许不同的默认框形状,这使我们能够有效地离散可能的输出框形状的空间。
在这里插入图片描述
图1:SSD框架。(a)SSD在训练期间仅需要输入图像和每个对象的真实信息框。以卷积方式,我们在具有不同尺度的几个特征图中的每个位置处评估一组小的(例如4个)不同宽高比的默认框(例如,在(b)和(c)中为8?8和4?4)。对于每个默认框,我们预测形状偏移和所有对象类别的置信度((c1; c2;···;cp))。在训练时,我们首先将这些默认框与地面实况框匹配。例如,我们将两个默认框与猫匹配,一个与狗匹配,将其视为正数,其余为负数。模型损失是定位损失(例如,平滑L1 [6])和置信度损失(例如,Softmax)之间的加权和。

2.2. 训练

       训练SSD和训练使用区域建议的典型检测器的关键区别在于,在固定的检测器输出集中,需要将基本事实信息分配给特定的输出。在YOLO [5]和更快的R-CNN [2]和MultiBox [7]的区域提案阶段,也需要对此进行一些修改。一旦确定了该分配,就会端到端地应用损失函数和反向传播。训练阶段还涉及选择一组默认框和检测尺度以及硬件和数据增强策略。

匹配策略在训练期间,我们需要确定哪些默认框对应于真实目标检测并相应地训练网络。

3. 实验结果

3.1. PASCAL VOC2007

3.2. 模型分析

3.3. PASCAL VOC2012

3.4. COCO

3.5. 初步的ILSVRC结果

3.6. 小物体精度的数据增强

3.7. 推理时间

4. 近期工作

5. 结论

6. 感谢

参考文献

猜你喜欢

转载自blog.csdn.net/CAU_Ayao/article/details/82560416