摘要

我们提出了一种基于单一深度神经网络的图像目标检测方法。我们的方法名为SSD,将边界框的输出空间离散为一组默认的框,在每个特征映射位置上都有不同的纵横比和尺度。在预测时,网络为每个默认框中的每个对象类别的存在生成分数,并对该框进行调整以更好地匹配对象形状。此外,该网络结合了来自不同分辨率的多个特征映射的预测,从而自然地处理各种大小的对象。相对于需要对象建议的方法,SSD非常简单,因为它完全消除了提案生成和随后的像素或特征重采样阶段,并将所有计算封装在一个网络中。这使得SSD易于训练,并且可以直接集成到需要检测组件的系统中。在PASCAL VOC、COCO和ILSVRC数据集上的实验结果证实,SSD与使用附加对象建议步骤的方法相比具有竞争性的准确性,而且速度快得多,同时为训练和推理提供了统一的框架。对于300×300输入,SSD在2007年的测试中达到74.3%的MAP 1,在Nvidia titan x上达到59 fps,对于512×512输入,SSD实现了76.9%的MAP,性能优于类似的最先进的r-cnn模型。与其他单级方法相比,即使在较小的输入图像大小下,SSD方法也具有更好的精度。代码可从以下网址获得:https://github.com/weiliu89/caffe/tree/ssd .

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

1引言

目前最先进的物体检测系统是以下方法的变体:假设边界框、重采样像素或每个框的特征,并应用高质量的分类器。自从选择性搜索[1]以来,通过Pascal voc、coco和ILSVRC检测的当前领先结果,这条管道已经占据了检测基准,所有这些都基于更快的r-cnn[2],尽管具有[3]等更深层次的特性。这些方法虽然精确,但对于嵌入式系统来说,计算量太大,即使是高端硬件,对实时应用来说也太慢了。这些方法的检测速度通常以秒/帧(SPF)为单位,甚至最快的高精度检测器,更快的r-cnn,也只能以每秒7帧(Fps)的速度工作。已经有许多尝试通过攻击检测管道的每个阶段来构建更快的检测器(参见相关工作,以秒为单位)。(4)但到目前为止,速度的显著提高是以显著降低检测精度为代价的。

本文提出了第一种基于深度网络的目标检测器,它不对边界框假设的像素或特征进行重采样,并且与其他方法一样精确。这大大提高了高精度检测的速度(在2007年的测试中,59个fps的MAP为74.3%,而rcnn7的fps为73.2%,yolo 45 fps为63.4%)。在速度上的根本改进来自于消除包围框提案和随后的像素或特征重采样阶段。我们并不是第一个这样做的(cf[4,5]),但是通过添加一系列的改进,我们设法大大提高了准确性。我们的改进包括使用一个小的卷积滤波器来预测包围框位置中的对象类别和偏移,对不同的纵横比检测使用单独的预测器(过滤器),并将这些滤波器应用于网络后期的多个特征映射,以便在多个尺度上执行检测。通过这些修改-特别是在不同的尺度上使用多层预测-我们可以使用相对低分辨率的输入来实现高精度,从而进一步提高检测速度。虽然这些贡献似乎很小,但我们注意到,由此产生的系统提高了PASCAL VOC实时检测的准确性,从Yolo的63.4%MAP提高到我们的SSD的74.3%MAP。这是一个更大的相对提高的检测精度,比最近的,非常突出的工作,剩余网络[3]。此外,大大提高质量检测的速度可以扩大计算机视觉有用的设置范围。我们的贡献总结如下:

-我们介绍了ssd,一种适用于多个类别的单镜头检测器,它比以前的最先进的单发探测器(Yolo)更快,而且更精确,实际上就像执行显式区域建议和池(包括更快的r-cnn)的慢速技术一样精确。

-SSD的核心是使用适用于特征地图的小卷积滤波器来预测一组固定的默认边界框的类别分数和方框偏移。

-为了达到较高的检测精度,我们从不同尺度的特征图中提取不同尺度的预测,并根据纵横比明确地将预测分开。

-这些设计特点导致简单的端到端训练和高精度,即使在低分辨率输入图像,进一步提高速度与精度的权衡。

-实验包括在Pascal voc、coco和ILSVRC上评估不同输入大小的模型的定时和精度分析,并与最近的一系列最新方法进行比较。

2单射探测器(SSD)

本节描述我们提出的用于检测的SSD框架(秒)。2.1)以及相关的训练方法。2.2)。之后,第三部分给出了特定于数据集的模型细节和实验结果。

Fig1:可持续发展框架。(A)在训练期间,SSD只需要为每个物体提供输入图像和实际边界框。在不同尺度的特征图(如8×8和4×4(B)和(C)中,我们以卷积的方式计算了在每个位置的不同长径比的一小组默认框(例如4)。对于每个默认框,我们对所有对象类别(C1,c2,···,cp)的形状偏移和信任进行预测。在训练时,我们首先将这些默认框与实际边界框相匹配。例如,我们将两个默认框与猫匹配,一个与狗匹配,它们被视为阳性,其余作为否定。模型损失是局部化损失(例如光滑L1[6])和置信损失(例如Softmax)之间的加权和。

2.1模型

ssd方法基于一个前馈卷积网络,它产生一个固定大小的边界框集合和分数,用于在这些盒子中存在对象类实例,然后是一个非最大的抑制步骤来产生最终的检测。早期的网络层基于用于高质量图像分类的标准体系结构(在任何分类层之前截断),我们称之为基本网络2。然后,我们在网络中添加辅助结构,生成具有以下关键特性的检测:

多尺度特征映射用于检测:我们在截断基网络的末端加入卷积特征层。这些层的尺寸逐渐减小,并允许在多个尺度上预测检测。用于预测检测的卷积模型对于在单个尺度特征图上工作的每个特征层(cf overfeat[4]和yolo[5])是不同的。

用于检测每个添加的特征层(或可选地从基本网络中的现有特征层)的卷积预测器可以使用一组卷积滤波器产生一组固定的检测预测。这些表示在图中ssd网络架构的顶部。2.对于具有p通道的m×n特征层,预测潜在检测参数的基本元素是一个3×3×p小核,它产生一个类别的分数,或者一个相对于默认的盒坐标的形状偏移。在每个应用内核的m×n位置,它产生一个输出值。相对于每个特征映射位置(参见Yolo[5]的结构,在此步骤中使用中间完全连接层而不是卷积滤波器)相对于默认盒位置测量包围盒偏移量输出值。

Fig2:SSD和Yolo两种单枪检测模型的比较[5]。我们的SSD模型在一个基本网络的末端增加了几个特征层,这些特征层可以预测不同尺度和纵横比的默认框的偏移量及其相关的信任。SSD的300×300输入大小显着优于其448×448 yolo对应的VOC2007测试的准确性,同时也提高了速度。

默认框和纵横比我们将一组默认的边界框与每个特征映射单元格相关联,用于网络顶部的多个特征映射。默认框以卷积方式平铺特征映射,因此每个框相对于其对应单元格的位置是固定的。在每个特征映射单元格中,我们预测相对于单元格中默认框形状的偏移量,以及表示每个框中存在类实例的每类分数。具体而言,对于给定位置的k中的每个框,我们计算c类分数和相对于原始默认框形状的4个偏移量。这导致了(C4)k滤波器在特征映射中的每个位置周围应用,产生了m×n特征映射的(C4)kmn输出。有关默认框的图解,请参阅图。1.我们的默认框类似于在更快的r-cnn[2]中使用的锚盒,但是我们将它们应用于几个不同分辨率的特征映射。在几个特征映射中允许不同的默认框形状,使我们能够有效地离散可能的输出框形状的空间。

2.2训练

训练SSD和训练使用区域建议的典型检测器的关键区别在于,需要将地面真相信息分配给固定的检测器输出集中的特定输出。在Yolo[5]的训练以及更快的R-CNN[2]和多盒[7]的区域建议阶段也需要一些版本。一旦确定了这一分配,损失函数和反向传播将被应用到端。训练还包括选择一组用于检测的默认框和比例,以及硬负挖掘和数据增强策略。

在训练过程中,我们需要确定哪些默认框对应于地面真相检测,并对网络进行相应的训练。对于每个地面真相框,我们从不同位置、纵横比和比例的默认框中选择。我们首先将每个基本真理框与默认框匹配为最佳Jaccard重叠(如Multibox[7]中的那样)。与多盒不同的是,我们将默认框与任何实际情况匹配,Jaccard重叠值高于阈值(0.5)。这简化了学习问题,允许网络预测多个重叠默认框的高分,而不是只要求它选择重叠最大的默认框。 
训练目标SSD:训练目标是从多盒目标[7,8]派生出来的,但扩展到处理多个对象类别。 令x_{ij}^p=\left \{ 1,0 \right \}是一个指示器,用于将第i个默认框与p类的第j个地面真相框相匹配。 在上面的匹配策略中,我们可以得到:\sum_{i}x_{ij}^p\geqslant 1。总体目标损失函数是局部化损失(LOC)和置信度损失(CONF)的加权和:

L(x,c,l,g)=\frac{1}{N}(L_{conf}(x,c)+\alpha L_{loc}(x,j,g))

其中n是匹配的默认框数。如果n=0时,湿法将损失设为0。局部化损失是在预测盒(L)和地面真相盒(G)参数之间平滑的L1损失[6]。类似于更快的r-cnn[2],我们回归到对默认边框(D)的中心(Cx,Cy)及其宽度(W)和高度(H)的偏移。

置信度损失是多类信任(C)上的软最大损失(C)。

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

选择默认框的尺度和高宽比来处理不同的对象尺度,一些方法[4,9]建议对不同大小的图像进行处理,然后将结果结合起来。然而,通过在一个网络中使用多个不同层次的特征映射来进行预测,我们可以模拟相同的效果,同时也可以在所有对象的尺度上共享参数。以前的工作[10,11]已经表明,使用特征映射从较低层可以提高语义分割质量,因为较低层捕获更多的细节输入对象。类似地,[12]表明从特征映射中添加全局上下文可以帮助平滑分割结果。在这些方法的激励下,我们使用上下特征映射进行检测。图1显示了框架中使用的两个示例特征映射(8×8和4×4)。在实践中,我们可以使用更多的小计算开销。

来自网络中不同级别的特征映射已知具有不同的(经验的)可接受字段大小[13]。幸运的是,在SSD框架内,默认框不需要与每个层的实际接收字段相对应。我们设计了默认框的贴图,以便特定的特征映射能够响应对象的特定比例。假设我们希望使用m个特征映射进行预测。每个功能地图的默认框的大小计算如下:

其中s_{min}为0.2,smax为0.9,这意味着最低层的标度为0.2,最高层的标度为0.9,中间的所有层都有规则的间隔。我们对默认框施加不同的高宽比,并将它们表示为ar∈{1,2,3,1 2,1 3}。我们可以计算每个默认框的宽度(wa=SK√ar)和高度(ha=sk/√ar)。对于长径比为1的情况,我们还添加了一个默认框,其标度为s0k=√sksk 1,因此每个特征映射位置都有6个默认框。我们将每个默认框的中心设为(I0.5,fk,j0.5,fk,fk),其中fk,fk是k-平方特征映射的大小,i,j,∈[0,x,fk]。在实践中,还可以设计默认框的分布,以最适合特定的数据集。如何设计最优的瓷砖也是一个悬而未决的问题。

通过将来自多个特征映射的所有位置的不同比例和纵横比的默认框的预测结合起来,我们有一组不同的预测,涵盖不同的输入对象大小和形状。例如,在图1中狗与4×4特征映射中的默认框相匹配,但与8×8特征映射中的任何默认框不匹配。这是因为这些盒子有不同的尺度和不匹配的狗的框,因此被认为是负面的在训练。

硬负挖掘后的匹配步骤:大多数默认框都是负数,特别是当可能的默认框数很大时。这就导致了积极和消极的训练例子之间的严重不平衡。我们没有使用所有的负面例子,而是使用每个默认框的最大置信度损失对它们进行排序,并选择最上面的,这样负数和正数的比率最多为3:1。我们发现这会导致更快的优化和更稳定的训练。

为了增强模型对各种输入对象大小和形状的鲁棒性,每幅训练图像随机抽取以下选项之一:

-使用整个原始输入图像。

-示例一个补丁,使Jaccard与对象的最小重叠值为0.1、0.3、0.5、0.7或0.9。

-随机抽样一片。

每个采样片的大小为原始图像大小的[0.1,1],宽比在1~2之间。如果地面真相盒的中心在采样片中,则保留其重叠部分。在上述采样步骤之后,每个采样片被调整到固定大小,并且水平翻转,概率为0.5,此外还应用了一些类似于[14]中描述的光度量失真。

3实验结果

基础网络我们的实验都是基于vgg16[15],它是在ILSVRC CLS-loc数据集[16]上预先训练的。类似于Depplab-Largefov[17],我们将fc6和fc7转换为卷积层,子样本参数从fc6和fc7,将池5从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 .

3.1 PASCAL VOC2007

在此数据集上,我们与快速r-cnn[6]和更快的r-cnn[2]在VOC2007测试(4952张图片)上进行了比较。所有的方法微调在同一个预先训练vgg16网络。

图2显示了ssd 300模型的体系结构细节。我们使用conv4_3, conv7 (fc7), conv8_2, conv9_2, conv10_2, 和conv11_2来预测位置和信任。我们在conv4_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迭代的训练。在2007年的训练中,表1显示我们的低分辨率ssd 300模型已经比快速r-cnn更精确了。当我们在一个更大的512×512输入图像上训练SSD时,它甚至更准确,比RCNN快1.7%。如果我们用更多(即07 12)数据对SSD进行训练,我们会发现ssd 300已经比rcnn快1.1%,ssd 512好3.6%。如果我们采用在coco交易上受过训练的模型,35k无效,如秒所述。3.4在07 12数据集上用ssd 512对它们进行微调,得到了最好的结果:81.6%的MAP。

为了更详细地了解我们的两个SSD模型的性能,我们使用了[21]中的检测分析工具。图3显示,SSD能够检测出高质量(大白区)的各种对象类别。它的大多数自信的检测都是正确的。召回率在85%-90%之间,并且在“弱”(0.1Jaccard重叠)标准下要高得多。与R-CNN[22]相比,SSD具有较小的定位误差,表明SSD可以更好地定位对象,因为它可以直接学习对象形状的回归和分类,而不是使用两个解耦的步骤。然而,SSD与相似的对象类别(特别是动物)有更多的混淆,部分原因是我们共享多个类别的位置。图4显示SSD对边框大小非常敏感。换句话说,它在较小对象上的性能要比大型对象差得多。这并不奇怪,因为这些小对象甚至可能在最顶层没有任何信息。增加输入尺寸(如从300×300增加到512×512)有助于提高对小物体的检测,但仍有很大的改进空间。从积极的方面来看,我们可以清楚地看到,SSD在大型对象上表现得非常好。它对不同的目标纵横比具有很强的鲁棒性,因为我们在每个特征映射位置上都使用不同的纵横比的默认框。

表1:PASCAL 2007测试检测结果。快速和更快的r-cnn使用输入图像,其最小维数为600.这两个SSD模型有完全相同的设置,除了它们有不同的输入大小(300×300比512×512)。很明显,较大的输入大小会带来更好的结果,而更多的数据总是有帮助的。资料来源:“07”:voe2007trainval,“0712”:voe 2007和vo2012trainval。“07 12 Coco”:第一列火车在Coco Trade35k上,然后在07 12微调。

3.2模型分析

为了更好地理解SSD,我们进行了对照实验,以检查每个组件是如何影响性能的。对于所有的实验,我们使用相同的设置和输入大小(300×300),但对设置或组件的特定更改除外。

表2:各种设计选择和组件对SSD性能的影响。

数据增强至关重要。快速和更快的r-cnn使用原始图像和水平翻转训练.我们使用更广泛的抽样策略,类似于Yolo[5]。表2表明,该抽样策略可以提高8.8%的MAP。我们不知道我们的采样策略会对rcnn的快速和快速带来多大的好处,但由于它们在分类过程中使用了一个相对健壮的特征池步骤,可以通过设计实现对象转换,因此可能会受益较少。

Fig3:2007年声乐测试中有关ssd 512在动物、车辆和家具上的性能的可视化。上一行显示了由于定位不良(LOC)、与同类混淆(Sim)、与其他类别混淆(OTS)或背景(BG)而导致的正确(COR)或假阳性的检测的累积分数。实心红线反映了召回的变化与强烈的标准(0.5 Jaccard重叠)随着检测次数的增加。虚线红线使用弱标准(0.1Jaccard重叠)。下面一行显示了顶级假阳性类型的分布情况。

Fig4:不同对象特性对使用[21]的VOC2007测试集的敏感性和影响。左边的图显示BBOX面积对每个类别的影响,右边的图显示高宽比的影响。键:BBOX区域:xs=超小型;s=小;m=中等;l=大;xl=超大型。宽径比:XT=特高/窄;t=高;m=中等;w=宽;xw=特宽。

更多默认的方块形状更好。如2.2节所述默认情况下,每个位置使用6个默认框。如果我们去除1 3和3纵横比的盒子,性能下降0.6%。通过进一步去除1 2和2纵横比的盒子,性能又下降了2.1%。使用各种默认框形状似乎可以使预测框的任务更容易为网络所用。

Atrous更快。如第三节所述我们使用了一个亚抽样vgg16的Atrous版本,它是继Depplab-Largefov[17]之后使用的。如果使用vg 16,保持池5有2×2−S2,而不对fc6和fc7中的参数进行次采样,再加上卷积5进行预测,则结果基本相同,但速度大约慢了20%。

不同分辨率的多个输出层更好。SSD的一个主要贡献是在不同的输出层上使用不同规模的默认框。为了衡量所获得的优势,我们逐步删除层并比较结果。为了进行公平的比较,每次删除一个层时,我们都会调整默认的方框块,以保持与原来相同的框总数(8732)。这是通过在剩余的层上堆放更多的盒子来完成的,如果需要的话调整盒子的比例。我们不会对每一种设置进行详尽的优化。表3显示精度下降,层数减少,单调地从74.3降至62.4。当我们在一个层上堆叠多个尺度的盒子时,很多都在图像边界上,需要小心处理。我们尝试了在更快的r-cnn[2]中使用的策略,忽略了边界上的框。我们观察到一些有趣的趋势。例如,如果我们使用非常粗糙的特征映射(例如卷积11 2(1×1)或卷积10 2(3×3),则会对性能造成很大的损害。原因可能是在剪枝之后,我们没有足够的大盒子来覆盖大型对象。当我们主要使用更精细的分辨率映射时,性能就会再次提高,因为即使在修剪了足够数量的大盒之后。如果我们只使用卷积7进行预测,那么性能将是最差的,这就强化了这样一个信息:在不同的层次上传播不同规模的盒子是至关重要的。此外,由于我们的预测不像[6]那样依赖于ROI池,所以在低分辨率特征图[23]中我们没有崩溃的垃圾箱问题。SSD架构结合了各种分辨率的特征地图的预测,以获得与更快的r-cnn相当的精度,同时使用低分辨率的输入图像。

3.3 PASCAL VOC2012

我们使用的设置与上面我们的VOC2007实验所用的设置相同,但我们使用vo2012trainval和vo2007trainval和test(21503张图像)进行培训,并在2012年测试中使用测试(10991张图像)。我们用10−3学习率训练60k迭代,然后用10−4训练20k迭代。表4显示了我们的ssd 300和ssd 5124模型的结果。我们看到的性能趋势与我们观察到的声音2007测试相同。我们的ssd 300比快速/更快的rcnn提高了精度。通过将训练和测试图像大小增加到512×512,我们比快速的r-CNN提高了4.5%的准确率。与Yolo相比,SSD更精确,这可能是由于使用了来自多个特征映射的卷积默认框,以及我们在训练期间的匹配策略。当我们的ssd 512由在coco上训练的模型微调时,我们的ssd 512达到了80.0%的MAP,比更快的r-cnn高出4.1%。

表4:Pascal 2012年测试检测结果。快速的r-cnn使用最小维数600的图像,而yolo的图像大小为448×448.资料来源:“07-12”:2007年“测试与测试”与“2012年声乐联盟”。“07 12 Coco”:第一列火车在Coco Trade35k上,然后在07 12微调。

3.4 COCO

为了进一步验证SSD框架,我们在coco数据集上训练了ssd 300和ssd 512架构。由于coco中的对象往往比Pascal voc小,所以我们对所有层都使用较小的默认框。我们遵循秒中提到的策略。2.2,但现在最小的默认框的标度为0.15而不是0.2,而在卷积4 3上的默认框的比例为0.07(例如,300×300图像的21个像素)^5。我们使用travoid35k[24]进行训练。我们先用10−3学习率训练160 k迭代,然后用10−4继续训练40k迭代,用10−5继续训练40k迭代。表5显示了测试-dev2015的结果。类似于我们在Pascal voc数据集上观察到的情况,ssd 300在map@0.5和map@[0.5:0.95]方面都优于快速r-cnn。ssd 300的地图@0.75与离子[24]和更快的r-cnn[25]相似,但在map@0.5中更糟糕。通过将图像大小增加到512×512,我们的ssd 512在这两个标准上都比r-cnn[25]更快。有趣的是,我们观察到ssd 512在map@0.75中更好5.3%,而在map@0.5中仅好1.2%。我们还观察到,对于大对象,AP(4.8%)和Ar(4.6%)要好得多,而对于小型对象,AP(1.3%)和Ar(2.0%)的改善相对较小。与离子相比,对于大物体和小物体,Ar的改善更为相似(5.4%对3.9%)。我们推测速度较快的R-CNN在较小的SSD对象上更有竞争力,因为它在RPN部分和在快速R-CNN部分执行两个盒细化步骤。在图中。5、给出了一些基于ssd 512模型的coco测试-dev的检测实例。

3.5 ILSVRC初步结果

我们在ILSVRC Det数据集中应用了与COCO相同的网络体系结构[16]。我们使用[22]中使用的ilsvrc 2014 Det列车和val1来训练ssd 300模型。我们先用10−3学习率训练320 k迭代,然后用10−4继续训练80k迭代,用10−5继续训练40k迭代。我们可以实现43.4地图上的Val2集[22]。再次验证了SSD是高质量实时检测的通用框架.

3.6小目标精度的数据增强

如果没有后续的特性重采样步骤,就像在更快的r-cnn中一样,对于ssd来说,小对象的分类任务相对比较困难,如我们的分析所示(见图1)。4)秒描述的数据增强策略。2.2有助于显着地提高性能,特别是在Pascal voc等小型数据集上。该策略产生的随机作物可以被认为是“放大”操作,并可以产生许多更大的训练例子。为了实现一个“缩小”操作,创造更小的训练例子,我们首先将一个图像随机放置在一个16×的原始图像大小填充平均值的画布上,然后再进行任何随机的裁剪操作。因为我们通过引入这种新的“扩展”数据增强技巧来获得更多的训练图像,所以我们必须将训练迭代加倍。如表6所示,在多个数据集中,地图的增长率为2%-3%。具体而言,图6显示了新的增强技巧显着地提高了小型对象的性能。这一结果突出了数据增强策略对最终模型精度的重要性。

另一种改进SSD的方法是设计一个更好的默认框块,这样它的位置和规模就能更好地与特征地图上每个位置的接收字段相一致。我们把这个留给以后的工作。

Fig5:基于ssd 512模型的cocotest-dev检测实例。我们展示了得分高于0.6的检测结果。每种颜色对应于一个对象类别。

表6:当我们添加图像扩展数据增强技巧时,多个数据集的结果。ssd 300*和ssd 512*是经过新数据增强训练的模型。

Fig6:使用[21]在2007年测试集上增加新数据的对象大小的敏感性和影响。上面的行显示了原始ssd 300和ssd 512模型中每个类别的BBOX区域的影响,下一行对应于使用新的数据增强技巧训练的ssd 300*和ssd 512*模型。很明显,新的数据增强技巧有助于显着地检测小对象。

3.7推理时间

考虑到该方法产生的大量盒子,在推理过程中有效地执行非最大抑制(Nms)是非常必要的。通过使用0.01的置信阈值,我们可以过滤掉大部分的盒子。然后,我们应用nms与Jaccard重叠为0.45每类,并保持前200每幅图像检测。对于ssd 300和20个voc类,这一步的成本约为1.7msec,接近于所有新添加层的总时间(2.4msec)。我们使用titan x和intel Xeon e5-2667v3@3.20ghz测量批号8的速度。表7显示了SSD、更快的R-CNN[2]和Yolo[5]之间的比较.我们的ssd 300和ssd 512方法在速度和准确性方面都优于rcnn。虽然快速Yolo[5]可以运行155 fps,但它的精度比MAP低22%。据我们所知,ssd 300是第一个实时实现70%以上地图的方法。请注意,大约80%的转发时间用于基本网络(在本例中为vg 16)。因此,使用更快的基本网络甚至可以进一步提高速度,这也可能使ssd 512模型实时化。

4相关工作

图像中的目标检测方法有两类,一种是基于滑动窗口的,另一类是基于区域提案分类的。在卷积神经网络出现之前,这两种方法-可变形零件模型(DPM)[26]和选择性搜索[1]-的性能是相当的。然而,在r-cnn[22]将选择性搜索区域方案与基于后分类的卷积网络相结合的大幅度改进之后,区域建议目标检测方法变得流行起来。

最初的r-cnn方法在许多方面都得到了改进.第一套方法提高了后分类的质量和速度,因为它需要对数千种图像作物进行分类,这既昂贵又耗时。sppnet[9]大大加快了最初的r-cnn方法。它引入了一个空间金字塔池层,它对区域大小和规模具有更强的鲁棒性,并允许分类层重用在几种图像分辨率生成的特征映射上计算出来的特征。FAST r-cnn[6]扩展sppnet,使其能够通过最小化信任损失和包围盒回归来对所有层进行端到端的微调,这是在Multibox[7]中首次引入的,用于学习对象性。

表7:PASCAL 2007测试结果。ssd 300是唯一能达到70%以上MAP的实时检测方法.通过使用更大的输入图像,ssd 512在精度上优于所有方法,同时保持了接近实时速度的性能。

第二组方法利用深度神经网络提高了提案生成的质量。在最近的作品如Multibox[7,8]中,基于低级图像特征的选择性搜索区域方案被直接从一个单独的深神经网络生成的建议所取代。这进一步提高了检测的准确性,但导致了一个有点复杂的设置,需要训练两个神经网络之间的依赖关系。更快的r-CNN[2]取代了从区域提议网络(RPN)中学习的选择性搜索方案,并提出了一种将RPN与快速r-CNN相结合的方法,在这两个网络之间交替进行共享卷积层和预测层的交互。通过这种方式,区域提案被用于集合中层特征,并且最终的分类步骤比较便宜。我们的SSD与更快的r-cnn中的区域提议网络(RPN)非常相似,因为我们也使用一组固定的(默认)框进行预测,类似于RPN中的锚盒。但是,我们没有使用这些来汇集特征和评估另一个分类器,而是同时为每个框中的每个对象类别生成一个分数。因此,我们的方法避免了RPN与快速R-CNN合并的复杂性,并且更容易训练、更快、更直接地集成到其他任务中。

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

5结论

本文介绍了一种适用于多种类别的快速单目标检测器SSD.我们模型的一个关键特征是使用多尺度卷积包围盒输出附加到网络顶部的多个特征映射。这种表示法使我们能够有效地对可能的盒子形状的空间进行建模。我们通过实验验证了在适当的训练策略下,大量精心选择的默认包围盒可以提高性能。我们建立了至少一个数量级的SSD模型,比现有的方法有更多的箱形预测、取样位置、尺度和纵横比[5,7]。我们证明,在相同的vgg-16基结构下,SSD在精度和速度上都优于它的最先进的物体探测器。在Pascal voc和coco上,我们的ssd 512模型在精度方面明显优于最先进的r-cnn[2],而速度却是3×10。我们的实时ssd 300型号运行在59 fps,这比目前的实时yolo[5]替代,同时产生明显优越的检测精度。

除了它的独立实用之外,我们认为我们的单块和相对简单的SSD模型为使用对象检测组件的大型系统提供了有用的构建块。利用递归神经网络同时检测和跟踪视频对象,是一个很有前途的发展方向。

6感谢

这项工作是作为在谷歌的实习项目开始的,并在联合国大学继续进行。我们要感谢AlexToshev的有益讨论,并感谢谷歌的形象理解和杰出团队。我们还感谢菲利普·阿米拉托和帕特里克·波尔森的有益评论。我们感谢NVIDIA提供GPU,并感谢NSF 1452851、1446631、1526367、1533771的支持。

References 1. Uijlings, J.R., van de Sande, K.E., Gevers, T., Smeulders, A.W.: Selective search for object recognition. IJCV (2013) 2. Ren, S., He, K., Girshick, R., Sun, J.: Faster R-CNN: Towards real-time object detection with region proposal networks. In: NIPS. (2015) 3. He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR. (2016) 4. Sermanet, P., Eigen, D., Zhang, X., Mathieu, M., Fergus, R., LeCun, Y.: Overfeat: Integrated recognition, localization and detection using convolutional networks. In: ICLR. (2014) SSD: Single Shot MultiBox Detector 17 5. Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: You only look once: Unified, real-time object detection. In: CVPR. (2016) 6. Girshick, R.: Fast R-CNN. In: ICCV. (2015) 7. Erhan, D., Szegedy, C., Toshev, A., Anguelov, D.: Scalable object detection using deep neural networks. In: CVPR. (2014) 8. Szegedy, C., Reed, S., Erhan, D., Anguelov, D.: Scalable, high-quality object detection. arXiv preprint arXiv:1412.1441 v3 (2015) 9. He, K., Zhang, X., Ren, S., Sun, J.: Spatial pyramid pooling in deep convolutional networks for visual recognition. In: ECCV. (2014) 10. Long, J., Shelhamer, E., Darrell, T.: Fully convolutional networks for semantic segmentation. In: CVPR. (2015) 11. Hariharan, B., Arbelaez, P., Girshick, R., Malik, J.: Hypercolumns for object segmentation ´ and fine-grained localization. In: CVPR. (2015) 12. Liu, W., Rabinovich, A., Berg, A.C.: ParseNet: Looking wider to see better. In: ILCR. (2016) 13. Zhou, B., Khosla, A., Lapedriza, A., Oliva, A., Torralba, A.: Object detectors emerge in deep scene cnns. In: ICLR. (2015) 14. Howard, A.G.: Some improvements on deep convolutional neural network based image classification. arXiv preprint arXiv:1312.5402 (2013) 15. Simonyan, K., Zisserman, A.: Very deep convolutional networks for large-scale image recognition. In: NIPS. (2015) 16. 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) 17. 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) 18. 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 19. 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) 20. Glorot, X., Bengio, Y.: Understanding the difficulty of training deep feedforward neural networks. In: AISTATS. (2010) 21. Hoiem, D., Chodpathumwan, Y., Dai, Q.: Diagnosing error in object detectors. In: ECCV 2012. (2012) 22. Girshick, R., Donahue, J., Darrell, T., Malik, J.: Rich feature hierarchies for accurate object detection and semantic segmentation. In: CVPR. (2014) 23. Zhang, L., Lin, L., Liang, X., He, K.: Is faster r-cnn doing well for pedestrian detection. In: ECCV. (2016) 24. 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) 25. COCO: Common Objects in Context. http://mscoco.org/dataset/ #detections-leaderboard (2016) [Online; accessed 25-July-2016]. 26. Felzenszwalb, P., McAllester, D., Ramanan, D.: A discriminatively trained, multiscale, deformable part model. In: CVPR. (2008)

SSD:单目多目标检测器相关推荐

  1. 登顶KITTI!Mix-Teaching:适用于单目3D目标检测的半监督方法【清华大学】

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨汽车人 来源丨自动驾驶之心 论文标题:Mix-Teaching: A Simple, Unifi ...

  2. DD3D:基于预训练的单目3D目标检测

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨CV研习社 作者丨元气满满的打工人 文章导读 导读:3D目标检测的主要应用场景就是自动驾驶,虽然 ...

  3. ICCV2021|单目3D目标检测真的需要伪激光雷达吗?

    作者丨agent@知乎 来源丨https://zhuanlan.zhihu.com/p/406918022 编辑丨3D视觉工坊 Paper: arxiv.org/pdf/2108.0641 Code: ...

  4. 【单目3D目标检测】MonoDLE论文精读与代码解析

    文章目录 Preface Abstract Contributions Diagnostic Experiments Pipeline Revisiting Center Detection Trai ...

  5. 【单目3D目标检测】MonoFlex论文精读与代码解析

    文章目录 Preface Abstract Contributions Pipeline Problem Definition Decoupled Representations of Objects ...

  6. 单目三维目标检测之CaDDN论文阅读

    文章目录 CaDDN: Categorical Depth Distribution Network for Monocular 3D Object Detection 作者和机构信息: Abstra ...

  7. 浅述单目3D目标检测

    作者丨慕弋云子@知乎 来源丨https://zhuanlan.zhihu.com/p/432135656 编辑丨3D视觉工坊 三维目标检测是一个相对上游.比较基础却又新兴的任务领域.得益于自动驾驶和2 ...

  8. 【单目3D目标检测】FCOS3D + PGD论文解析与代码复现

    文章目录 前言 FCOS3D 概述 主要创新点 主要框架结构 回归目标 损失函数 推理过程 2D引导的多层3D预测 2D高斯分布的3D中心度 实验设置 源码复现 PGD 概述 主要创新点 深度估计 主 ...

  9. MonoCon:使用辅助学习的单目3D目标检测框架(AAAI 2022)

    作者丨慕弋云子@知乎 来源丨https://zhuanlan.zhihu.com/p/455897310 编辑丨3D视觉工坊 本文已被收录在单目3D目标检测的综述文章中.如果你对单目3D目标检测的相关 ...

最新文章

  1. 简洁版利用Python写俄罗斯方块游戏
  2. 磁盘管理命令:du df
  3. php函数有哪三种,【后端开发】php函数可以分为哪三种
  4. Nginx(四)------nginx 负载均衡
  5. 设计模式在Netty中的应用-迭代器模式源码举例
  6. 阿里达摩院发布2019十大科技趋势!AI专用芯片将挑战GPU的绝对统治地位
  7. 23种设计模式之模板方法
  8. [转载] numpy.minimum
  9. umask设置导致的weblogic中的应用上传的文件没有权限打开
  10. 深入理解JVM-java内存区域与内存溢出异常
  11. python新浪微博爬虫_基于Python的新浪微博数据爬虫
  12. 有道智云翻译API + retrofit实现在线翻译Android app
  13. Nginx - 正向代理与反向代理的概念
  14. 《2018年4月1日》
  15. 移动端300ms延迟的由来及解决方案
  16. 微信小程序|使用小程序制作一个2048小游戏
  17. 计算机网络笔记——概述、物理层、链路层(方老师408课程)
  18. 如何在 Chrome 中执行 JavaScript 代码
  19. 考试酷系统破解 解决复制粘贴限制
  20. dedecms v5.7 sp1 给栏目添加缩略图功能

热门文章

  1. 做一个精致的电子工程师
  2. 解决的问题记录(持续更新)
  3. Xilinx AXI GPIO学习笔记以及问题点
  4. 蚁群算法(ACO)求解路径规划
  5. rtsp 和 rtmp 推流(一)
  6. IDM无法找到服务器magnet IDM服务器禁止访问此文件
  7. ur机器人计算机模拟仿真,UR机器人科研应用案例
  8. Python神经网络编程学习记录(一)
  9. WPF中使用PS导出的SVG矢量图
  10. “道”与“术”之关系