SSD:单点多边界框探测器

SSD:单点多边界框探测器
SSD:单点多边界框探测器
Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy,
Scott Reed, Cheng-Yang Fu , Alexander C. Berg
UNC Chapel Hill Zoox Inc. Google Inc. University of Michigan, Ann-Arbor
wliu@cs.unc.edu, drago@zoox.com, {dumitru,szegedy}@google.com,
reedscot@umich.edu, {cyfu,aberg}@cs.unc.edu
摘要:提出了一种利用单一深度神经网络检测图像中目标的方法。我们将之命名为SSD,它将边界框的输出空间离散为一组默认边界框,并根据不同的纵横比和每个要素在地图位置中的比例进行调整。在预测时,网络为每个默认框中的每个对象存在类别生成分数,并对框进行调整以更好地匹配对象形状。此外,该网络结合了来自多个不同分辨率的特征地图的预选,以自然地处理不同大小的对象。SSD相对于需要目标提出的方法来说很简单,因为它完全消除了提出生成和随后的像素或特征重采样阶段,并将所有计算封装在一个网络中。这使得SSD易于训练,并且易于集成到需要检测组件的系统中。在PASCAL VOC、COCO和ILSVRC数据集上的实验结果证实,SSD与使用附加目标生成这一步骤的方法相比更具有竞争性和准确性,并且速度更快,而为训练和推理提供统一的框架。对于300×300输入,SSD在Nvidia Titan X上以59 FPS的速度在VOC2007测试中达到74.3%的mAP ,对于512×512输入,SSD达到76.9%的mAP,性能优于Faster R-CNN模型。与其他方法相比,SSD具有更好的精度,即使是较小的输入图像大小。代码位于:https://github.com/weiliu89/caffe/tree/ssd。
关键词:实时目标检测;卷积神经网络

介绍
当前最先进的目标检测系统是以下方法的变体:假设边界框,对每个框重新采样像素或特征,并应用高质量的分类器。自从选择性搜索工作[1]通过在PASCAL VOC、COCO和ILSVRC检测上取得了领先成果,所有这些都基于Faster R-CNN[2],尽管具有更深入的特征,如[3]。这些方法虽然精确,但对于嵌入式系统来说,计算量太大,即使是高端硬件,对于实时应用来说也太慢。通常这些方法的检测速度是以每帧秒数(SPF)来衡量的,即使是最快的高精度检测器Faster R-CNN,也只能以每秒7帧(FPS)的速度工作。已经有很多人试图通过攻击检测管道的每个阶段来构建更快的检测器(参见第4章中的相关工作) 但是到目前为止,显著提高速度的代价只是显著降低检测精度。
本文提出了第一种基于深度网络的目标检测器,它不需要对边界盒假设的像素或特征进行重新采样,并且与ap-proaches一样精确。这将显著提高高精度前提下检测的速度(在VOC2007测试中,59 FPS的mAP为74.3%,而在mAP为73.2%的R-CNN为7 FPS,在mAP为63.4%的情况下,YOLO为45 FPS)。速度的根本改进来自于消除边界框提出和随后的像素或特征重采样阶段。我们不是第一个这样做的(cf[4][5]),但是通过添加一系列的改进,我们设法比以前的尝试显著地提高准确性。我们的改进包括使用一个小卷积滤波器来预测边界框位置中的对象类别和偏移量,使用不同长宽比检测的单独预测器(滤波器),并将这些滤波器应用于网络后期的多个特征映射,以便在多尺度下执行检测。通过这些改进,特别是在不同尺度下使用多层预测,我们可以在相对较低分辨率的输入下实现高精度检测,进一步提高检测速度。虽然这些贡献可能看起来很小,但我们注意到,结果系统提高了实时检测PASCAL VOC的准确性,从YOLO的63.4%mAP提高到我们的SSD的74.3%mAP。这是一个更大的相对改进,在检测精度比从最近,非常引人注目的剩余网络工作[3]。此外,显著提高高质量检测的速度可以拓宽计算机视觉有用的设置范围。
我们的贡献总结如下:
–我们介绍了SSD,一种用于多个类别的单次激发检测器,它比以前的单次激发检测器(YOLO)的优点是速度更快,并且显而易见的更精确,实际上与执行显式区域建议和池(包括Faster R-CNN)这种较慢技术一样精确。
–SSD的核心是使用应用于特征地图的小卷积滤波器预测一组固定默认边界框的类别分数和框偏移量。
–为了获得高的检测精度,我们从不同尺度的特征图中生成不同尺度的预测,并按纵横比明确分离预测。
–这些设计特点导致了简单的端到端训练和高精度,即使在低分辨率输入图像上,进一步提高了速度与精度的权衡。
–实验包括对输入大小不同的模型进行计时和精度分析,这些模型在PASCAL VOC、COCO和ILSVRC上进行评估,并与一系列最新的最新方法进行比较。

单点探测器(SSD)
本节描述了我们提出的用于检测的SSD框架(第2.1小节)和相关培训方法(第2.2小节)。之后,第3章给出了数据集特有的模型细节和实验结果。

表 8×8特征图

图 1 带GT框的图像

图1:SSD框架。(a) 在训练过程中,SSD只需要为每个对象提供一个输入图像和地面真值框。以卷积的方式,我们在具有不同比例(例如8到8和4到4 In(b)和(c))的多个特征映射中的每个位置评估具有不同长宽比的默认框的小集合(例如4)。对于每个默认框,我们预测所有对象类别(c1、c2、cp)的形状偏移和置信度。在训练时,我们首先将这些默认框与地面真相框匹配。例如,我们将两个默认框与猫匹配,一个与狗匹配,这两个框被视为正框,其余框被视为负框。模型损失是定位损失(例如平滑L1[6])和置信损失(例如Softmax)之间的加权和。

型号
SSD方法是基于前馈卷积网络,它产生固定大小的边界框集合和在这些框中存在对象类实例的分数,随后是非最大抑制步骤以产生最终检测。早期的网络层基于用于高质量图像分类的标准体系结构(在任何分类层之前截断),我们称之为基础网络 。然后,我们将辅助结构添加到网络中以产生以下关键特征的检测:
多尺度特征图的检测方法是在截断的基网络的末端加入卷积特征层。这些层的大小逐渐减小,并允许在多个尺度上进行探测预测。用于预测检测的卷积模型对于每个特征层是不同的(cf Overfeat[4]和YOLO[5]在单尺度特征地图上操作)。
用于检测每个添加的特征层(或者可选地从基本网络中提取的特征层)的卷积预测器可以使用一组卷积滤波器产生一组固定的检测预测器。这些显示在SSD网络的顶部
图 2中的架构。对于具有p通道的m×n大小的特征层,用于预测潜在检测参数的基本元素是一个3×3×p的小核,它产生类别的分数或相对于默认框坐标的形状偏移。在应用内核的每个m×n位置,它都会产生一个输出值。边界框偏移输出值是相对于默认值测量的

图 2 SSD和YOLO两种单点检测模型的比较[5]
我们的SSD模型在一个基础网络的末端添加了几个特性层,这些特性层可以预测不同尺度和纵横比的默认框的偏移量及其相关的可信度。在VOC2007测试中,输入尺寸为300×300的SSD在精度上明显优于448×448yolo的SSD,同时也提高了测试速度。

相对于每个特征地图位置的框位置(参见YOLO[5]的架构,该架构使用中间完全连接层,而不是该步骤的卷积滤波器)。
对于网络顶部的多个要素地图,我们将一组默认边界框与每个要素地图单元相关联。默认框以卷积方式平铺特征映射,因此每个框相对于其对应单元格的位置是固定的。在每个特征映射单元格中,我们预测相对于单元格中默认框形状的偏移量,以及指示每个框中存在类实例的每类分数。具体来说,对于给定位置的k中的每个框,我们计算c类分数和相对于原始值的4个偏移量
默认框形状。这导致在特征映射的每个位置应用总共(c+4)k个滤波器,从而产生m×n特征映射的(c+4)kmn输出。有关默认框的说明,请参阅图1。我们的默认框类似于
快速R-CNN[2]中使用的锚定框,但是我们将它们应用于不同分辨率的多个特征地图。允许在多个特征映射中使用不同的默认框形状可以有效地离散可能的输出框形状的空间。

训练

训练SSD和训练使用区域建议的典型检测器的关键区别在于,真实信息需要分配给固定检测器输出集合中的特定输出。在YOLO[5]的训练和Faster R-CNN[2]和MultiBox[7]的区域提出阶段,也需要一些版本。一旦确定了这个分配,损耗函数和反向传播就端对端地应用。训练还包括选择一组默认的检测框和尺度,以及难例挖掘和数据扩充策略。
匹配策略。在训练过程中,我们需要确定哪些默认框对应实际边界框检测,并相应地训练网络。对于每个地面真实值框,我们从默认框中选择,这些框随位置、纵横比和比例而变化。我们首先将每个地面真值框匹配到具有最佳jaccard重叠的默认框(如MultiBox[7])。与MultiBox不同的是,我们将默认框与任何地面真实值匹配,jaccard重叠高于阈值(0.5)。这简化了学习问题,允许网络预测多个重叠的默认框的高分,而不是要求它只选择具有最大重叠的一个。训练目标SSD训练目标来自于MultiBox objec-active[7][8]但被扩展以处理多个对象类别。让xp={1,0}成为
用于将第i个默认框与p类的第j个地面真值框匹配的指示器。在上面的匹配策略中,我们可以有。xp≥1。总体目标损失函数是定位损失(loc)和置信损失(conf)的加权和:

其中N是匹配的默认框数。如果N=0,则将损耗设为0。定位损失是预测框(l)和地面真值框(g)参数之间的平滑L1损失[6]。与Faster R-CNN[2]类似,我们回归到默认边界框(d)的中心(cx,cy)及其宽度(w)和高度(h)的偏移。

置信损失是多类置信的最大损失(c)。

通过交叉验证将权重项α设为1。

选择默认框的比例和纵横比来处理不同的对象比例,一些方法[4][9]建议以不同的大小处理图像,然后将结果组合起来。然而,通过在一个网络中利用来自多个不同层的特征地图进行预测,我们可以模拟相同的效果,同时在所有对象尺度上共享参数。以前的工作[10][11]已经表明,使用来自较低层的特征映射可以提高语义分割质量,因为较低层捕获输入对象的更精细细节。类似地,[12]表明,从特征映射中加入全局上下文池有助于平滑分割结果。
在这些方法的推动下,我们使用上下两个特征映射进行检测。图1显示了框架中使用的两个示例特征图(8×8和4×4)。在实践中,我们可以使用更多的小计算开销的特征映射。
已知网络中不同层次的特征图具有不同的(经验)接收场大小[13]。幸运的是,在SSD框架中,去故障框不需要对应于每个层的实际接收场。我们设计了默认框的平铺,以便特定的特征地图能够对对象的特定比例做出响应。假设我们要使用m个特征映射进行预测。每个要素地图的默认框的比例计算为:

其中s_min为0.2,s_max为0.9,这意味着最低层的比例为0.2,最高层的比例为0.9,并且中间的所有层都有规则的间隔。我们对默认框施加不同的宽高比,并将它们表示为
ar∈1,2,3,1/2 ,1/3。我们可以计算宽度 和高度
对于每个宽高比为1的默认框,我们还添加了一个默认框,其比例为
s_k^’=√(sk∙sk+1),每个要素地图位置有6个默认框。我们设中心将每个默认框设置为((i+0.5)/(| fk |),(j+0.5)/(| fk |)),其中| fk |是第k方特征图的大小,i,j∈[0,| fk |)。实际上,还可以设计默认框的分布以最适合特定数据集。如何设计最优的视窗也是一个有待解决的问题。
通过组合来自多个特征映射的所有位置的具有不同比例和纵横比的所有默认框的预测,我们有一组不同的预测,涵盖不同的输入对象大小和形状。例如,在图1中,狗与4×4特征映射中的默认框匹配,但不与8×8特征映射中的任何默认框匹配。这是因为这些边界框有不同的刻度,与狗的边界框不匹配,因此在训练期间被视为负例。

难例挖掘。在匹配步骤之后,大多数默认边界框为负例,尤其是当可能的默认边界框数量较多时。这在正的训练实例和负的训练实例之间引入了显著的不平衡。我们不使用所有负例,而是使用每个默认边界框的最高置信度损失来排序它们,并挑选最高的置信度,以便负例和正例之间的比例至多为3:1。我们发现这会有更快的优化和更稳定的训练。
数据扩充。使模型对各种输入对象大小和形状,每个训练图像由以下选项之一随机采样:
–使用整个原始输入图像。
–采样一个图像块,使jaccard与对象的最小重叠为0.1、0.3、0.5、0.7或0.9。
–随机采样一个图像块。
每个样本的大小是原始图像大小的[0.1,1],长宽比在1/2到2之间。如果实际边界框的中心在采样区域内,我们保留它的重叠部分。在上述采样步骤之后,除了应用类似于文献[14]中描述的一些光学测量畸变之外,将每个采样图像块调整到固定尺寸并以0.5的概率进行水平翻转。

实验结果
基础网络。我们的实验都基于VGG16[15],它是在ILSVRC CLS-LOC数据集[16]上预先训练的。与DeepLab-LargeFOV[17]类似,我们将fc6和fc7转换为卷积层,将fc6和fc7的子样本参数,将pool5从2×2-s2更改为3×3-s1,并使用à trous算法[18]填充“孔”。我们移除所有的脱落层和fc8层。并对结果进行微调,使初始学习率为〖10〗^(-3)、动量为0.9、权重衰减为0.0005和批量规模为32的SGD的模型。每个数据集的学习率衰减策略略有不同,我们稍后将详细描述。完整的培训和测试代码建立在Caffe[19]之上,并且是开源的:https://github.com/weiliu89/Caffe/tree/ssd。

PASCAL VOC2007数据集
在这个数据集上,我们比较了CNN[6]和CNN[2]在VOC2007测试中的表现(4952张图片)。所有方法在相同的预先训练的VGG16网络上进行微调。
图2显示了SSD300模型的架构细节。我们使用conv4_3、conv7(fc7)、conv8_2、conv9_2、conv10_2和conv11_2来预测位置和置信度。我们在conv4_3^3上设置了默认框,比例为0.1。我们使用“xavier”方法[20]初始化所有新添加的卷积层的参数。对于conv4_3、conv10_2和conv11_2,我们只在每个特征地图位置关联4个默认框位置-忽略纵横比1/3到3。
对于所有其他层,我们放置6个默认框如第2.2章所述。因为,正如[12]中指出的,conv4_3与其他层相比有一个不同的特性,我们使用[12]中介绍的L2正则化技术将特征映射中每个位置的特征范数缩放到20,并在反向传播期间学习尺度。我们使用〖10〗(-3)的学习率进行40k次迭代,然后继续以〖10〗(-4)和〖10〗^(-5)的学习率进行10k次迭代。在VOC2007训练时,表1显示我们的低分辨率SSD300型号已经比Fast R-CNN更准确。当我们在更大的512×512输入图像上训练SSD时,它的准确率超过Faster R-CNN 1.7%mAP。如果我们用更多(即07+12)数据训练SSD,我们会发现SSD300已经比Faster R-CNN快1.1%,而SSD512的性能要好3.6%。如果我们采用COCO trainval35k训练的模型,如第3.4节所述,用SSD512对07+12数据集进行微调,得到了81.6%mAP的好结果。
为了更详细地了解两个SSD模型的性能,我们使用来自[21]的检测分析工具。图3显示SSD可以检测各种高质量对象的目标类别(大面积白色区域)。它大多数肯定的探测结果都是正确的。召回率在85-90%左右,而“弱”标准的召回率要高得多(0.1 jaccard重叠)。与R-CNN相比[22],SSD具有较小的定位误差,这表明SSD可以更好地定位目标,因为它直接学习对象形状的回归和对象类别的分类,而不是使用两个分离的步骤。然而,SSD在辨别类似的对象类别时(尤其是动物)有更多的混淆,部分原因是我们共享多个类别的位置。图4显示SSD对边界框大小非常敏感。换句话说,它在小型对象上的性能比大型对象差得多。这并不奇怪,因为这些小对象在最顶层甚至可能没有任何信息。增加输入尺寸(如从300×300增加到512×512)有助于提高对小目标的检测,但仍有很大的改进空间。从积极的方面来看,我们可以清楚地看到SSD在大型对象上的性能非常好。而且它对不同的对象纵横比非常健壮,因为我们在每个特征图位置使用不同纵横比的默认框。

表 1 PASCAL VOC2007测试检测结果
Fast和Faster R-CNN都使用最小尺寸为600的输入图像。两种SSD型号的设置完全相同,只是它们的输入大小不同(300×300与512×512)。很明显,较大的输入尺寸会带来更好的结果,而更多的数据也是有帮助的。数据:“07”:VOC2007 trainval,“07+12”:VOC2007与VOC12012 trainval的结合。“07+12+COCO”:先在COCO trainval 35K次,然后在07+12上微调。

模型分析
为了更好地理解SSD,我们进行了控制性实验,以检验组件对性能的影响。对于所有的实验,我们使用相同的设置和输入大小(300×300),指定的设置或组件的更改除外。

表 2 各种设计选择和组件对SSD性能的影响。
数据扩充至关重要。Fast和Faster R-CNN使用原始图像和水平翻转训练。我们使用了一种更广泛的抽样策略,类似于YOLO[5],表 1显示我们可以用这种抽样策略改进8.8%的mAP。我们不知道我们的采样策略对Fast和Faster R-CNN有多大好处,但它们可能受益较少,因为它们在分类过程中使用了一个特征池步骤,这对通过设计的目标变换来说相对鲁棒。

图 3 从VOC2007试验看SSD512在动物、车辆和家具上的性能。
第一行显示检测的累积分数由于定位不良(Loc)、与相似类别(Sim)、与其他类别(Oth)或与背景(BG)混淆而正确(Cor)或假阳性。红色实线反映了随着检测次数的增加,召回标准的变化(0.5jaccard重叠)。虚线红线使用弱标准(0.1 jaccard重叠)。最下面一行显示了排名靠前的假阳性类型的分布。

图 4 不同目标特性对VOC2007测试集的灵敏度和使用影响[21]。
左边的图显示BBox Area per category的效果,右边的图显示纵横比的效果。关键词:BBox Area:XS=超小;S=小;M=中;L=大;XL=超大。纵横比:XT=超高/窄;T=高;M=中;W=宽;XW=超宽。

默认框形状越多越好。如第2.2节,默认情况下,每个位置使用6个默认框。如果我们移除长宽比为1/3和3的框,性能将下降0.6%。。通过进一步移除长宽比为1/2和2的框,性能又下降了2.1%。使用各种形状的默认框似乎使网络预测边界框的任务更容易。
Atrous更快。如第3节所述,我们根据DeepLab-LargeFOV[17]使用子采样的VGG16的空洞版本。如果我们使用完整的VGG16,保持pool5为2×2-s2,并且不从fc6和fc7中子采样参数,并添加conv5_3进行预测,结果大致相同,而速度慢了大约20%。

表 3 使用多个输出层的效果。
多个不同分辨率的输出层会更好。SSD的一个主要贡献是在不同的输出层上使用不同比例的默认框。为了衡量所获得的优势,我们逐步删除图层并比较结果。为了公平比较,每次删除图层时,我们都会调整默认框平铺以保持与原件相似的盒子总数(8732)。这是通过在剩余的层上堆叠多种范围的盒子,并在需要时调整盒子范围来完成的。我们不会对每个平铺的设置进行大量优化。表 3显示了随着图层的降低导致精度的下降,从74.3单调下降到62.4。当我们在一个图层上堆叠多个尺寸的框时,许多框都在图像边界上,需要小心处理。我们尝试了Faster R-CNN[2]中使用的策略,忽略了边界上的框。我们观察到一些有趣的趋势。例如,如果使用非常粗糙的特征映射(例如conv11_2(1×1)或conv10_2(3×3))会大大降低性能。原因可能是修剪后我们没有足够大的框来覆盖大的物体。当我们使用更高分辨率的图片时性能再次开始提高,因为即使在修剪了足够数量的框之后,仍然会保留一些框。如果我们只使用conv7进行预测,那么性能是最差的,这强化了这样一个信息:在不同的层上分布不同规模的框是至关重要的。此外,由于我们的预测不像[6]那样依赖于ROI池,因此我们在低分辨率特征图中没有折叠箱问题[23]。SSD架构结合了来自不同分辨率特征图的预测,在使用低分辨率输入图像的同时,达到了与Faster R-CNN相当的精度。

PASCAL VOC2012
我们使用的设置与VOC2007实验基本相同,但我们使用VOC2012 trainval和VOC2007 trainval和test(21503个图像)进行训练,并对VOC2012 test(10991个图像)进行测试。我们用〖10〗(-3)的学习率训练模型60k次迭代,然后以〖10〗(-4)学习率训练20k次迭代。表4显示了SSD300和SSD512 模型的结果。我们看到了与VOC2007测试相同的性能趋势。我们的SSD300比Fast/Faster R-CNN有更高的精度。通过将训练和测试图像大小增加到512×512,我们的准确率比Faster R-CNN提高了4.5%。与YOLO相比,SSD更精确,这可能是由于在训练过程中使用了来自多个特征映射的卷积默认框和我们的匹配策略。当对从COCO上训练的模型进行微调时,我们的SSD512达到了80.0%的mAP,比Faster R-CNN高了4.1%。

表 4 PASCAL VOC2012 test的检测结果
Fast和Faster R-CNN使用最小尺寸为600的图像,而YOLO的图像大小为448×448。数据解释:“07++12”:VOC2007 trainval和test以及VOC2012 trainval的联合。“07++12+COCO”:首先在COCO trainval35k上训练,然后在07++12上微调。

COCO
为了进一步验证SSD框架,我们在COCO数据集上训练了SSD300和SSD512体系结构。因为COCO中的物体往往比PASCAL VOC小,我们对所有层使用较小的默认框。我们遵循第2.2小节中提到的策略,但现在我们最小的默认框的比例是0.15而不是0.2,conv4_3上的默认框的比例是0.07(例如,300×300图像为21像素) 。
我们使用trainval35k[24]进行训练。我们首先用〖10〗(-3)学习率训练模型160k次迭代,然后用〖10〗(-4)的学习率进行40k磁盘迭代,用〖10〗^(-5)的学习率继续训练40k次迭代。表5显示了test-dev2015的结果。与我们在PASCAL VOC数据集上观察到的相似,SSD300在mAP@0.5和mAP@[0.5:0.95]上都优于Fast R-CNN。SSD300在mAP@0.75上与ION[24]相似,R-CNN更快[25],但R-CNN在mAP@0.5上更差。通过将图像大小增加到512×512,我们的SSD512在这两个标准中都优于Faster R-CNN[25]。有趣的是,我们观察到在mAP@0.75中SSD512好5.3%,但在mAP@0.5中只多了1.2%。我们还观察到,对于大的物体,它有更好的AP(4.8%)和AR(4.6%),但是对于小的物体,AP(1.3%)和AR(2.0%)的改善相对较少。与ION相比,大小物体的AR改善更为相似(5.4%比3.9%)。我们推测,Faster R-CNN在检测较小对象上比SSD的更具有竞争力,因为它在RPN部分和Fast R-CNN部分执行了两个边界框优化步骤。在图5中,我们用SSD512模型给出了COCO test-dev的一些检测实例。

表 5 COCO test-dev2015的检测结果

初步ILSVRC结果
我们对ILSVRC DET数据集应用了与COCO相同的网络架构[16]。我们使用ILSVRC2014 DET train和val1训练SSD300模型如[22]所用方法。我们首先用〖10〗(-3)的学习率以3200k次迭代训练模型,然后用〖10〗(-4)学习率以40k次迭代,用〖10〗^(-5)学习率以80k次迭代继续训练。我们在val2数据集上可以达到43.4mAP[22]。再一次验证了SSD是一个高质量的实时检测的通用框架。

对小目标的精确度进行数据增强
SSD没有像Faster R-CNN那样有后续的特征重采样步骤,所以SSD对小对象的识别分类任务比较困难,如我们的分析所示(见图4)。第2.2节中描述的数据增强策略,有助于显著提高性能,特别是在小数据集(如PASCAL VOC)上。由该策略生成的随机裁剪可以被认为是一种“放大”操作,并且可以生成许多更大的训练样本。为了实现“缩小”操作以创建更多的小训练样本,我们首先将一个图像随机放置在画布上,画布大小为原始图像大小的16倍,其中填充了平均值,再进行任意的裁剪操作。由于我们通过引入这种新的“扩展”数据增强技巧来获得更多的训练图像,因此我们必须将迭代次数加倍。如表6所示,我们已经看到多个数据集的mAP持续增长了2%-3%。具体来说,图6显示了新的增强技巧显著提高了识别小对象的性能。这一结果强调了数据增强策略对最终模型精确度的重要性。
改进SSD的另一种方法是设计更好的默认框平铺,以便其位置和比例更好地与特征图上每个位置的视觉感受域对齐。我们把这个留给以后的工作。

图 5 SSD512模型在COCO test-dev上的检测实例
我们显示分数高于0.6的检测结果。每种颜色对应一个对象类别。

表 6 我们使用图像扩展数据增强技术在多个数据集上的结果
SSD300∗和SSD512∗是用新的数据增强训练的模型

图 6 新数据集扩充对VOC2007测试集的灵敏度和影响[21]
顶行显示原始SSD300和SSD512模型的每个类别的BBox 面积的影响,底行对应使用新的数据增强技术训练的SSD300和SSD512模型。显然,新的数据增强技术有助于提高检测小对象的准确率。

推断时间
考虑到由我们的方法产生的大量的选框,在推理过程中必须有效地执行非最大抑制(NMS)。通过使用0.01的置信阈值,我们可以筛选出大多数框。然后,我们使用每类0.45个jaccard重叠的nms,并保持每个图像的前200个检测。对于SSD300和20个VOC类,此步骤每幅图像大约花费1.7毫秒,这接近于所有新添加层上花费的总时间(2.4毫秒)。我们使用Titan X、cuDNN v4、Intel Xeon E5-2667v3@3.20GHz以及批大小为8来测量速度。
表7显示了SSD、Faster R-CNN[2]和YOLO[5]之间的比较。我们的SSD300和SSD512方法在速度和精度上都优于Faster R-CNN。尽管Fast YOLO[5]可以以155 FPS的速度运行,但它的精度低22%mAP。据我们所知,SSD300是第一个实现70%以上mAP的实时方法。注意,大约80%的转发时间花在基础网络上(在我们的例子中是VGG16)。因此,使用更快的基础网络可以进一步提高速度,这也可能使SSD512模型实时。

相关工作
现有的图像目标检测方法有两类,一类是基于滑动窗口的方法,另一类是基于区域提出分类。在卷积神经网络出现之前,这两种方法的最新进展-可变形零件模型(DPM)[26]和选择性搜索[1]具有不错的性能。然而,在R-CNN[22]将选择性搜索区域和基于后分类的卷积网络相结合带来了巨大的改进之后,区域提出目标的检测方法变得普遍。
最初的R-CNN方法已经以多种方式得到改进。第一组方法提高了后分类的质量和速度,因为它需要对数以千计的裁剪图像进行分类,这是昂贵且耗时的。SPPnet[9]显著加快了原始R-CNN方法的速度。它引入了一个空间金字塔池化层,该层对区域大小和尺寸更为稳健(鲁棒),并允许分类层重用在多个图像分辨率下生成的特征图上计算特征。Fast R-CNN[6]扩展了SPPnet,使得它可以通过最小化置信度和边界框回归的损失来端到端地微调所有层,这是MultiBox[7]中首次引入的用于学习对象性的方法。
第二组方法使用深层神经网络来提高提议生成的质量。在最近的作品中,如MultiBox[7][8],选择性搜索基于低层图像特征的区域提议被直接从单独的深层神经网络生成的提议所代替。这进一步改善了检测精度,但设置复杂,需要训练两个相互依赖的神经网络。Faster R-CNN[2]取代从区域提议网络(RPN)中学习到的选择搜索提议,提出了一种在两个网络的共享卷积层和预测层之间交替微调的RPN和Fast R-CNN的集成方法。这种方式使用区域提议来汇集中级特征,而最终的分类步骤成本更低。我们的SSD与Faster R-CNN中的区域提议网络(RPN)非常相似,因为我们还使用一组固定的默认边界框进行预测,类似于RPN中的锚定框。但是,我们不使用这些来汇集特征和评估另一个分类器,而是同时为每个框中的每个对象类别生成一个分数。因此,我们的方法避免了将RPN与Fast R-CNN合并的复杂性,并且更快、更易于训练,更易于集成到其他任务中。
另一套方法,直接关联到近似,完全跳过七步,直接预测多个类别的边界框和置信度。OverFeat[4]是滑动窗口法的一个深入版本,它在知道底层对象类别的可信度之后,直接从最上面的特征映射的每个位置预测边界框。YOLO[5]使用最顶部的特征映射来预测多个类别和边界框(这些类别共享)的可信度。我们的SSD方法属于这一类,因为我们没有提议步骤,而是使用默认边界框。因此,我们的方法比现有的方法更灵活,我们可以使用不同的纵横比、不同尺度的默认边界框在多个特征图上的每个特征位置。如果我们在最上面的特征图中每个位置只使用一个默认框,我们的SSD将具有类似于OverFeat的架构;如果我们使用整个最上面的特征映射,并且添加一个完全连接的层来代替预测,而不是卷积预测,并且不显式地考虑多个纵横比,那么我们可以近似地再现YOLO。

结论
这篇论文介绍了一种快速的多类别单点目标检测方法——SSD。我们模型的一个关键特性是使用附加到网络顶部的多个特征映射的多尺度卷积边界框输出。这表示我们能够高效地建模可能的边界框形状空间。实验证明,在适当的训练策略下,大量精心选择的默认边界框可以提高系统的性能。我们构建的SSD模型比现有的方法至少要多一个数量级的边界框预测采样位置,尺度和长宽比[5][7]。我们证明在相同的VGG-16基础架构下,SSD在准确性和速度方面与其对应的最先进的目标检测器相比毫不逊色。在PASCAL VOC和COCO上,我们的SSD512模型的性能明显优于最先进的Faster R-CNN[2],并且速度提高了3倍。我们的实时SSD300模型运行速度为59FPS,比目前的实时YOLO[5]更快,同时显著提高了检测精度。
除了独立的使用以外,我们相信我们的整体和相对简单的SSD模型为采用对象检测组件的大型系统提供了有用的构建模块。一个有希望的未来方向是探索它作为一个系统的一部分,使用递归神经网络来同时检测和跟踪视频中的对象。

致谢
这项工作是作为谷歌的一个实习项目开始的,并继续在北卡罗来纳州。我们要感谢Alex Toshev的有益讨论,感谢谷歌的图像理解和DistFeedge团队。我们还感谢菲利普•安米拉托和帕特里克•波森的有益评论。我们感谢英伟达提供的GPU以及感谢NSF 145285144663115263671533771的支持。

参考文献
Uijlings, J.R., van de Sande, K.E., Gevers, T., Smeulders, A.W.: Selective search for object recognition. IJCV (2013)
Ren, S., He, K., Girshick, R., Sun, J.: Faster R-CNN: Towards real-time object detection with region proposal networks. In: NIPS. (2015)
He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR.(2016)
Sermanet, P., Eigen, D., Zhang, X., Mathieu, M., Fergus, R., LeCun, Y.: Overfeat: Integrated recognition, localization and detection using convolutional networks. In: ICLR. (2014)
Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: You only look once: Unified, real-time object detection. In: CVPR. (2016)
Girshick, R.: Fast R-CNN. In: ICCV. (2015)
Erhan, D., Szegedy, C., Toshev, A., Anguelov, D.: Scalable object detection using deep neural networks. In: CVPR. (2014)
Szegedy, C., Reed, S., Erhan, D., Anguelov, D.: Scalable, high-quality object detection. arXiv preprint arXiv:1412.1441 v3 (2015)
He, K., Zhang, X., Ren, S., Sun, J.: Spatial pyramid pooling in deep convolutional networks for visual recognition. In: ECCV. (2014)
Long, J., Shelhamer, E., Darrell, T.: Fully convolutional networks for semantic segmentation. In: CVPR. (2015)
Hariharan, B., Arbeláez, P., Girshick, R., Malik, J.: Hypercolumns for object segmentation and fine-grained localization. In: CVPR. (2015)
Liu, W., Rabinovich, A., Berg, A.C.: ParseNet: Looking wider to see better. In: ILCR. (2016)
Zhou, B., Khosla, A., Lapedriza, A., Oliva, A., Torralba, A.: Object detectors emerge in deep scene cnns. In: ICLR. (2015)
Howard, A.G.: Some improvements on deep convolutional neural network based image classification. arXiv preprint arXiv:1312.5402 (2013)
Simonyan,K.,Zisserman,A.:Very deep convolutional networks for large-scale image recognition. In: NIPS. (2015)
Russakovsky, O., Deng, J., Su, H., Krause, J., Satheesh, S., Ma, S., Huang, Z., Karpathy, A.,Khosla, A., Bernstein, M., Berg, A.C., Fei-Fei, L.: Imagenet large scale visual recognition challenge. IJCV (2015)
Chen, L.C., Papandreou, G., Kokkinos, I., Murphy, K., Yuille, A.L.: Semantic image segmentation with deep convolutional nets and fully connected crfs. In: ICLR. (2015)
Holschneider, M., Kronland-Martinet, R., Morlet, J., Tchamitchian, P.: A real-time algorithm for signal analysis with the help of the wavelet transform. In: Wavelets. Springer (1990) 286–297
Jia, Y., Shelhamer, E., Donahue, J., Karayev, S., Long, J., Girshick, R., Guadarrama, S.,Darrell, T.: Caffe: Convolutional architecture for fast feature embedding. In: MM. (2014)
Glorot, X., Bengio, Y.: Understanding the difficulty of training deep feedforward neural networks. In: AISTATS. (2010)
Hoiem, D., Chodpathumwan, Y., Dai, Q.: Diagnosing error in object detectors. In: ECCV 2012. (2012)
Girshick, R., Donahue, J., Darrell, T., Malik, J.: Rich feature hierarchies for accurate object detection and semantic segmentation. In: CVPR. (2014)
Zhang, L., Lin, L., Liang, X., He, K.: Is faster r-cnn doing well for pedestrian detection. In:ECCV. (2016)
Bell, S., Zitnick, C.L., Bala, K., Girshick, R.: Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. In: CVPR. (2016)
COCO:Common Objects in Context. http://mscoco.org/dataset/
#detections-leaderboard (2016) [Online; accessed 25-July-2016].
Felzenszwalb, P., McAllester, D., Ramanan, D.: A discriminatively trained, multiscale, deformable part model. In: CVPR. (2008)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值