SSD: Single Shot MultiBox Detector
文章目录
作者及其团队等信息如下:

摘要
我们提出了一种使用单个深度神经网络检测图像中的对象的方法。我们的方法命名为SSD,将边界框的输出空间离散化为一组默认框,分布在不同的宽高比和每个要素图位置的比例上。在预测时,网络为每个默认框中的每个对象类别的存在生成分数,并产生对框的调整以更好地匹配对象形状。另外,网络将来自具有不同分辨率的多个特征图的预测组合在一起以自然地处理各种尺寸的对象。SSD相对于需要目标提议的方法而言是简单的,因为它完全消除了提议生成和后续像素或特征重采样阶段,并将所有计算封装在单个网络中。这使得SSD易于训练并且可以直接集成到需要检测组件的系统中。PASCAL VOC,COCO和ILSVRC数据集的实验结果证实,SSD与使用额外对象提议步骤的方法相比具有竞争力,并且速度更快,同时为培训和推理提供了统一的框架。对于300×300的输入,SSD在Nvidia Titan X上以59FPS进行VOC2007测试时达到74.3% mAP,对于512×512的输入,SSD达到76.9% mAP,优于同类最先进的Faster R-CNN模型。与其他单级方法相比,即使输入图像尺寸较小,SSD也具有更高的精度。
关键词: 实时目标检测、卷积神经网络
1 绪论
当前最先进的对象检测系统是以下方法的变体:假定边界框,重新采样每个框的像素或特征,以及应用高品质的分类器。自从选择性搜索工作[1]以及PASCAL VOC,COCO和ILSVRC检测的当前领先结果全部基于Faster R-CNN[2]以来,该管道已经在检测基准上占优势,尽管具有更深的特征,如[3]。虽然准确,但这些方法对于嵌入式系统来说计算量太大,即使使用高端硬件,对于实时应用来说也太慢了。这些方法的检测速度通常以每秒帧数来衡量,即使是最快的高精度检测器,速度更快的R-CNN,也只能以每秒7帧(FPS)的速度运行。已经有许多尝试通过每个阶段附加检测管道的方法(见第4章相关工作。)来构建速度更快的探测器,但到目前为止,显著上升速度,需要付出在显著降低检测精度的成本。
本文介绍了第一个基于深度网络的目标探测器,它不会对边界框假设重新采样像素或特征,并且与方法一样准确。这导致高精度检测的速度显着提高(在VOC2007测试中具有mAP为74.3%的59 FPS,与具有mAP为73.2%的Faster R-CNN 7 FPS或具有mAP为63.4%的YOLO 45 FPS)。速度的根本改进来自于消除边界框提议以及随后的像素或特征重采样阶段。我们不是第一个做到这一点(见[4,5]),但加入了一系列的改进,我们能够在以前的尝试显著提高精度。我们的改进包括使用小卷积滤波器来预测边界框位置中的对象类别和偏移,使用单独的预测变量(滤波器)进行不同的宽高比检测,并将这些滤波器应用于网络后期的多个要素图以执行多尺度检测。通过这些修改-特别是使用多个层来进行不同尺度的预测-我们可以使用相对低分辨率的输入来实现高精度,从而进一步提高检测速度。虽然这些贡献可能看起来很小,但我们注意到,由此产生的系统提高了PASCAL VOC的实时检测准确度,从YOLO的63.4%mAP到我们SSD的74.3%mAP。与最近在残差网络上非常引人注目的工作相比,这在检测精度上有了更大的相对改善[3]。此外,显着提高高质量检测的速度可以扩大计算机视觉有用的设置范围。
我们总结了我们的贡献如下:
-
我们推出SSD,一种用于多种类别的single shot detectors,比single shot detectors(YOLO)的先前技术更快,并且显着更准确,实际上与执行显式区域提议的较慢技术一样准确和汇集(包括更快的R-CNN)。
-
SSD的核心是使用应用于特征映射的小卷积滤波器来预测固定的一组默认边界框的类别得分和框架集。
-
为了获得高检测精度,我们从不同尺度的特征图产生不同尺度的预测,并通过纵横比明确地分开预测。
-
这些设计特点导致简单的端到端训练和高精度,即使在低分辨率输入图像上,也进一步提高了速度与精度之间的权衡。
-
实验包括对PASCAL VOC,COCO和ILSVRC评估的输入尺寸变化的模型进行定时和精度分析,并与一系列最新的最新方法进行比较。
图1 SSD框架。(a)SSD在训练期间仅需要每个对象的输入图像和ground truth boxes。以卷积方式,我们在具有不同尺度的若干特征图中评估每个位置处的不同宽高比的小集(例如4个)默认框(例如,(b)和(c)中的8×8和4×4)。对于每个默认框,我们预测形状偏移和所有对象类别的置信度((c1,c2,…,cp))。在训练时,我们首先将这些默认框与ground truth box匹配。例如,我们已经将两个默认框与猫匹配,一个与狗匹配,将其视为正数,其余为负数。模型损失是定位损失(例如,平滑L1[6])和置信度损失(例如Softmax)之间的加权和。(框架实现目标定位的原理介绍)
2 single shot detectors(SSD)
本节描述了我们提出的用于检测的SSD框架(第2.1节)和相关的训练方法(第2.2节)。之后,Sect 3介绍数据集特定的模型细节和实验结果。
2.1 模型
SSD方法基于前馈卷积网络,该网络生成固定大小的边界框集合以及在该框中存在对象类实例的分数,随后是非极大值抑制步骤以产生最终检测。早期的网络层基于用于高质量图像分类的标准体系结构(在任何分类层之前被截断),我们称之为基础网络[1]。然后,我们将辅助结构添加到网络中,以生成具有以下主要功能的检测:
图2两种single shot detectors模型的比较:SSD和YOLO[5]。我们的SSD模型在基础网络末端添加了几个要素图层,可以预测不同比例和宽高比的默认框的偏移量及其相关信任。具有300×300输入尺寸的SSD在VOC2007测试中的精度明显优于其448×448YOLO同类产品,同时还提高了速度。(网络结构介绍)
用于检测的多尺度特征图。我们将卷积特征层添加到截断的基础网络的末尾。这些层的尺寸逐渐减小,并允许在多个尺度上预测检测。用于预测检测的卷积模型对于每个特征层是不同的(参见在单一尺度特征图上操作的Overfeat[4]和YOLO[5])。
用于检测的卷积预测因子。每个添加的特征层(或者可选地来自基础网络的现有特征层)可以使用一组卷积滤波器产生一组固定的检测预测。这些在图2中的SSD网络架构之上有指示。对于具有p个通道的大小为m×n的特征层,用于预测潜在检测的参数的基本元素是3×3×p小内核,其产生类别的分数或相对于默认框的形状偏移。坐标。在应用内核的m×n个位置中的每一个处,它产生输出值。边界框偏移输出值是相对于每个特征地图位置的默认框位置测量的(参见YOLO[5]的体系结构,在此步骤中使用中间完全连接层而不是卷积滤波器)。
默认框和宽高比。我们将一组默认边界框与每个要素图单元关联,以用于网络顶部的多个要素图。默认框以卷积方式平铺特征图,以便每个框相对于其对应单元的位置是固定的。在每个要素图单元格中,我们预测相对于单元格中默认框形状的偏移量,以及指示每个框中是否存在类实例的每个类别得分。具体来说,对于给定位置的k个中的每个框,我们计算c类分数和相对于原始默认框形状的4个偏移。这导致总共(c+4)k在要素图中的每个位置周围应用的滤波器,产生(c+4)kmn输出m×n特征图。有关默认框的说明,请参阅图1。我们的默认框类似于Faster R-CNN[2]中使用的锚框,但是我们将它们应用于不同分辨率的几个特征图。允许在多个要素图中使用不同的默认框形状,可以有效地离散可能的输出框形状的空间。
2.2 训练
训练SSD和训练使用区域建议的典型探测器之间的关键区别在于,需要将ground truth box信息分配给固定探测器输出组中的特定输出。YOLO[5]和Faster R-CNN[2]和MultiBox[7]的区域建议阶段也需要一些模型的训练。一旦确定了该分配,就会端到端地应用损失函数和反向传播。训练还涉及选择一组默认框和检测尺度以及硬负面挖掘和数据增强策略。
匹配策略。在训练期间,我们需要确定哪些默认框对应于ground truth detection并且相应地训练网络。对于每个ground truth box,我们从默认框中选择,这些框在位置,宽高比和比例上有所不同。我们首先将每个ground truth box与具有最佳Jaccard重叠的默认框匹配(如MultiBox[7]中所述)。与MultiBox不同,我们然后将默认框与Jaccard重叠高于阈值(0.5)的任何ground truth匹配。这简化了学习问题,允许网络预测多个重叠默认框的高分,而不是要求它仅选择具有最大重叠的框。
训练目的。所述SSD训练目标是从MultiBox目标中衍生的[7,8],但扩展到处理多个对象类别。设 x i j p = ( 1 , 0 ) x_{ij}^p = {(1,0)} xijp=(1,0)是将第i个默认框与p类别的第j个ground truth box匹配的指示符。在上面的匹配策略中,我们可以得到 ∑ i x i j p ≥ 1 ∑_{i}x_{ij}^p ≥ 1 ∑ixijp≥1。总体客观损失函数是localization loss (loc)和置信度损失(conf)的加权和:
L ( x , c , l , g ) = 1 / N ( L c o n f ( x , c ) + α L l o c ( x , l , g ) ) ( 1 ) L(x,c,l,g)=1/N (L_{conf} (x,c)+αL_{loc} (x,l,g)) (1) L(x,c,l,g)=1/N(L