精华内容
下载资源
问答
  • SSD论文翻译

    2018-08-17 20:53:12
    此压缩包包含SSD英文论文原版和中文版翻译(已校正),可以作为论文学习的资料!!
  • 本资源是本人翻译的Single Shot MultiBox Detector的一文,出自于2016年,主要内容是完成行人重识别的网络构建,不仅提高了识别准确率,并且提高了是别的速度。其中,作者的一些设计思路很有启发。
  • SSD论文翻译和代码汇总

    千次阅读 2020-04-27 12:28:26
    我们的方法命名为SSD,将边界框的输出空间离散化为不同长宽比的一组默认框和并缩放每个特征映射的位置。在预测时,网络会在每个默认框中为每个目标类别的出现生成分数,并对框进行调整以更好地匹配目标形状。此外,...

    摘要

    我们提出了一种使用单个深度神经网络来检测图像中的目标的方法。我们的方法命名为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也具有更高的精度。代码获取:https://github.com/weiliu89/caffe/tree/ssd

    1. 引言

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

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

    我们总结我们的贡献如下:

    • 我们引入了SSD,这是一种针对多个类别的单次检测器,比先前的先进的单次检测器(YOLO)更快,并且准确得多,事实上,与执行显式区域提出和池化的更慢的技术具有相同的精度(包括Faster R-CNN)。
    • SSD的核心是预测固定的一系列默认边界框的类别分数和边界框偏移,使用更小的卷积滤波器应用到特征映射上。
    • 为了实现高检测精度,我们根据不同尺度的特征映射生成不同尺度的预测,并通过纵横比明确分开预测。
    • 这些设计功能使得即使在低分辨率输入图像上也能实现简单的端到端训练和高精度,从而进一步提高速度与精度之间的权衡。
    • 实验包括在PASCAL VOC,COCO和ILSVRC上评估具有不同输入大小的模型的时间和精度分析,并与最近的一系列最新方法进行比较。

    2. 单次检测器(SSD)

    本节描述我们提出的SSD检测框架(2.1节)和相关的训练方法(2.2节)。之后,2.3节介绍了数据集特有的模型细节和实验结果。

    2.1 模型

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

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

    用于检测的卷积预测器。每个添加的特征层(或者任选的来自基础网络的现有特征层)可以使用一组卷积滤波器产生固定的检测预测集合。这些在图2中的SSD网络架构的上部指出。对于具有pp通道的大小为m×n的特征层,潜在检测的预测参数的基本元素是3×3×p3×3×p小核得到某个类别的分数,或者相对于默认框坐标的形状偏移。在应用卷积核的m×n的每个位置,它会产生一个输出值。边界框偏移输出值是相对每个特征映射位置的相对默认框位置来度量的(查阅YOLO[5]的架构,该步骤使用中间全连接层而不是卷积滤波器)。

    图2:两个单次检测模型的比较:SSD和YOLO[5]。我们的SSD模型在基础网络的末端添加了几个特征层,它预测了不同尺度和长宽比的默认边界框的偏移量及其相关的置信度。300×300输入尺寸的SSD在VOC2007 test上的准确度上明显优于448×448的YOLO的准确度,同时也提高了速度。

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

    图1:SSD框架。(a)在训练期间,SSD仅需要每个目标的输入图像和真实边界框。以卷积方式,我们评估具有不同尺度(例如(b)和(c)中的8×8和4×4)的几个特征映射中每个位置处不同长宽比的默认框的小集合(例如4个)。对于每个默认边界框,我们预测所有目标类别((c1,c2,…,cp)(c1,c2,…,cp))的形状偏移量和置信度。在训练时,我们首先将这些默认边界框与实际的边界框进行匹配。例如,我们已经与猫匹配两个默认边界框,与狗匹配了一个,这被视为积极的,其余的是消极的。模型损失是定位损失(例如,Smooth L1[6])和置信度损失(例如Softmax)之间的加权和。

    2.2 训练

    训练SSD和训练使用区域提出的典型检测器之间的关键区别在于,需要将真实信息分配给固定的检测器输出集合中的特定输出。在YOLO[5]的训练中、Faster R-CNN[2]和MultiBox[7]的区域提出阶段,一些版本也需要这样的操作。一旦确定了这个分配,损失函数和反向传播就可以应用端到端了。训练也涉及选择默认边界框集合和缩放进行检测,以及难例挖掘和数据增强策略。

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

    为默认边界框选择尺度和长宽比。为了处理不同的目标尺度,一些方法[4,9]建议处理不同尺寸的图像,然后将结果合并。然而,通过利用单个网络中几个不同层的特征映射进行预测,我们可以模拟相同的效果,同时还可以跨所有目标尺度共享参数。以前的工作[10,11]已经表明,使用低层的特征映射可以提高语义分割的质量,因为低层会捕获输入目标的更多细节。同样,[12]表明,从特征映射上添加全局上下文池化可以有助于平滑分割结果。受这些方法的启发,我们使用较低和较高的特征映射进行检测。图1显示了框架中使用的两个示例性特征映射(8×8和4×4)。在实践中,我们可以使用更多的具有很少计算开支的特征映射。

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

    通过将所有默认边界框的预测与许多特征映射所有位置的不同尺度和高宽比相结合,我们有不同的预测集合,涵盖各种输入目标大小和形状。例如,在图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的概率进行水平翻转。

    3. 实验结果

    基础网络。我们的实验全部基于VGG16[15],它是在ILSVRC CLS-LOC数据集[16]上预先训练的。类似于DeepLab-LargeFOV[17],我们将fc6fc7转换为卷积层,从fc6和fc7中重采样参数,将pool5从2×2−s2更改为3×3−s1,并使用空洞算法[18]来填补这个“小洞”。我们删除所有的丢弃层和fc8层。我们使用SGD对得到的模型进行微调,初始学习率为10e−3,动量为0.9,权重衰减为0.0005,批数据大小为32。每个数据集的学习速率衰减策略略有不同,我们将在后面详细描述。完整的训练和测试代码建立在Caffe[19]上并开源:https://github.com/weiliu89/caffe/tree/ssd

    3.1 PASCAL VOC2007

    在这个数据集上,我们在VOC2007 test(4952张图像)上比较了Fast R-CNN[6]和FAST R-CNN[2]。所有的方法都在相同的预训练好的VGG16网络上进行微调。

    图2显示了SSD300模型的架构细节。我们使用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个默认边界框——忽略1313和3的长宽比。对于所有其它层,我们像2.2节描述的那样放置了6个默认边界框。如[12]所指出的,与其它层相比,由于conv4_3具有不同的特征尺度,所以我们使用[12]中引入的L2正则化技术将特征映射中每个位置的特征标准缩放到20,在反向传播过程中学习尺度。对于40k次迭代,我们使用10−3的学习率,然后继续用10−410−5的学习率训练10k迭代。当对VOC2007 trainval进行训练时,表1显示了我们的低分辨率SSD300模型已经比Fast R-CNN更准确。当我们用更大的512×512输入图像上训练SSD时,它更加准确,超过了Faster R-CNN 1.7%的mAP。如果我们用更多的(即07+12)数据来训练SSD,我们看到SSD300已经比Faster R-CNN好1.1%,SSD512比Faster R-CNN好3.6%。如果我们将SSD512用3.4节描述的COCO trainval35k来训练模型并在07+12数据集上进行微调,我们获得了最好的结果:81.6%的mAP。

    表1:PASCAL VOC2007 test检测结果。Fast和Faster R-CNN都使用最小维度为600的输入图像。两个SSD模型使用完全相同的设置除了它们有不同的输入大小(300×300和512×512)。很明显更大的输入尺寸会导致更好的结果,并且更大的数据同样有帮助。数据:“07”:VOC2007 trainval,“07+12”:VOC2007和VOC2012 trainval的联合。“07+12+COCO”:首先在COCO trainval35k上训练然后在07+12上微调。

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

    图3:SSD512在VOC2007 test中的动物,车辆和家具上的性能可视化。第一行显示由于定位不佳(Loc),与相似类别(Sim)混淆,与其它(Oth)或背景(BG)相关的正确检测(Cor)或假阳性的累积分数。红色的实线表示随着检测次数的增加,强标准(0.5 Jaccard重叠)下的召回变化。红色虚线是使用弱标准(0.1 Jaccard重叠)。最下面一行显示了排名靠前的假阳性类型的分布。

    图4:使用[21]在VOC2007 test设置上不同目标特性的灵敏度和影响。左边的图显示了BBox面积对每个类别的影响,右边的图显示了长宽比的影响。关键:BBox区域:XS=超小;S=小;M=中等;L=大;XL=超大。长宽比:XT=超高/窄;T=高;M=中等;W=宽;XW =超宽。

    3.2 模型分析

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

    数据增强至关重要。Fast和Faster R-CNN使用原始图像和水平翻转来训练。我们使用更广泛的抽样策略,类似于YOLO[5]。从表2可以看出,采样策略可以提高8.8%的mAP。我们不知道我们的采样策略将会使Fast和Faster R-CNN受益多少,但是他们可能从中受益较少,因为他们在分类过程中使用了一个特征池化步骤,这对通过设计的目标变换来说相对鲁棒。

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

    更多的默认边界框形状会更好。如2.2节所述,默认情况下,我们每个位置使用6个默认边界框。如果我们删除长宽比为13和3的边界框,性能下降了0.6%。通过进一步去除1212和2长宽比的盒子,性能再下降2.1%。使用各种默认边界框形状似乎使网络预测边界框的任务更容易。

    Atrous更快。如第3节所述,我们根据DeepLab-LargeFOV[17]使用子采样的VGG16的空洞版本。如果我们使用完整的VGG16,保持pool5为2×2-s2,并且不从fc6和fc7中子采样参数,并添加conv5_3进行预测,结果大致相同,而速度慢了大约20%

    多个不同分辨率的输出层更好。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相当的精确度,同时使用较低分辨率的输入图像。

    表3:使用多个输出层的影响。

    3.3 PASCAL VOC2012

    除了我们使用VOC2012 trainval和VOC2007 trainvaltest(21503张图像)进行训练,以及在VOC2012 test(10991张图像)上进行测试之外,我们使用与上述基本的VOC2007实验相同的设置。我们用10−3的学习率对模型进行60k次的迭代训练,然后使用10−4的学习率进行20k次迭代训练。表4显示了我们的SSD300和SSD512模型的结果。我们看到了与我们在VOC2007 test中观察到的相同的性能趋势。我们的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 trainvaltest和VOC2012 trainval。“07++12+COCO”:先在COCO trainval135k上训练然后在07++12上微调。

    3.4 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−410−5的学习率各进行40k次迭代。表5显示了test-dev2015的结果。与我们在PASCAL VOC数据集中观察到的结果类似,SSD300在mAP@0.5和mAP@[0.5:0.95]中都优于Fast R-CNN。SSD300与ION 24]和Faster R-CNN[25]具有相似的mAP@0.75,但是mAP@0.5更差。通过将图像尺寸增加到512×512,我们的SSD512在这两个标准中都优于Faster R-CNN[25]。有趣的是,我们观察到SSD512在mAP@0.75中要好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检测结果

    图5:SSD512模型在COCO test-dev上的检测实例。我们展示了分数高于0.6的检测。每种颜色对应一种目标类别。

    3.5 初步的ILSVRC结果

    我们将在COCO上应用的相同网络架构应用于ILSVRC DET数据集[16]。我们使用[22]中使用的ILSVRC2014 DETtrainval1来训练SSD300模型。我们首先用10−3的学习率对模型进行训练,进行了320k次的迭代,然后以10−4继续迭代80k次,以10−5迭代40k次。我们可以在val2数据集上[22]实现43.4 mAP。再一次证明了SSD是用于高质量实时检测的通用框架。

    3.6 为小目标准确率进行数据增强

    SSD没有如Faster R-CNN中后续的特征重采样步骤,小目标的分类任务对SSD来说相对困难,正如我们的分析(见图4)所示。2.2描述的数据增强有助于显著提高性能,特别是在PASCAL VOC等小数据集上。策略产生的随机裁剪可以被认为是“放大”操作,并且可以产生许多更大的训练样本。为了实现创建更多小型训练样本的“缩小”操作,我们首先将图像随机放置在填充了平均值的原始图像大小为16x的画布上,然后再进行任意的随机裁剪操作。因为通过引入这个新的“扩展”数据增强技巧,我们有更多的训练图像,所以我们必须将训练迭代次数加倍。我们已经在多个数据集上看到了一致的2%−3%的mAP增长,如表6所示。具体来说,图6显示新的增强技巧显著提高了模型在小目标上的性能。这个结果强调了数据增强策略对最终模型精度的重要性。

    表6:我们使用图像扩展数据增强技巧在多个数据集上的结果。SSD300SSD512是用新的数据增强训练的模型。

    图6:具有新的数据增强的目标尺寸在[21]中使用的VOC2007test数据集上灵敏度及影响。最上一行显示了原始SSD300和SSD512模型上每个类别的BBox面积的影响,最下面一行对应使用新的数据增强训练技巧的SSD300SSD512模型。新的数据增强技巧显然有助于显著检测小目标。

    改进SSD的另一种方法是设计一个更好的默认边界框平铺,使其位置和尺度与特征映射上每个位置的感受野更好地对齐。我们将这个留给未来工作。

    3.7 推断时间

    考虑到我们的方法产生大量边界框,在推断期间执行非最大值抑制(nms)是必要的。通过使用0.01的置信度阈值,我们可以过滤大部分边界框。然后,我们应用nms,每个类别0.45的Jaccard重叠,并保留每张图像的前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]可以以155FPS的速度运行,但其准确性却降低了近22%的mAP。就我们所知,SSD300是第一个实现70%以上mAP的实时方法。请注意,大约80%前馈时间花费在基础网络上(本例中为VGG16)。因此,使用更快的基础网络可以进一步提高速度,这也可能使SSD512模型达到实时。

    表7:Pascal VOC2007 test上的结果。SSD300是唯一可以取得70%以上mAP的实现检测方法。通过使用更大的输入图像,SSD512在精度上超过了所有方法同时保持近似实时的速度。

    4. 相关工作

    在图像中有两种建立的用于目标检测的方法,一种基于滑动窗口,另一种基于区域提出分类。在卷积神经网络出现之前,这两种方法的最新技术——可变形部件模型(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[4]相似的架构;如果我们使用整个最顶层的特征映射,并添加一个全连接层进行预测来代替我们的卷积预测器,并且没有明确地考虑多个长宽比,我们可以近似地再现YOLO[5]。

    5. 结论

    本文介绍了SSD,一种快速的单次多类别目标检测器。我们模型的一个关键特性是使用网络顶部多个特征映射的多尺度卷积边界框输出。这种表示使我们能够高效地建模可能的边界框形状空间。我们通过实验验证,在给定合适训练策略的情况下,大量仔细选择的默认边界框会提高性能。我们构建的SSD模型比现有的方法至少要多一个数量级的边界框预测采样位置,尺度和长宽比[5,7]。我们证明了给定相同的VGG-16基础架构,SSD在准确性和速度方面与其对应的最先进的目标检测器相比毫不逊色。在PASCAL VOC和COCO上,我们的SSD512模型的性能明显优于最先进的Faster R-CNN[2],而速度提高了3倍。我们的实时SSD300模型运行速度为59FPS,比目前的实时YOLO[5]更快,同时显著提高了检测精度。

    除了单独使用之外,我们相信我们的整体和相对简单的SSD模型为采用目标检测组件的大型系统提供了有用的构建模块。一个有前景的未来方向是探索它作为系统的一部分,使用循环神经网络来同时检测和跟踪视频中的目标。

    6. 致谢

    这项工作是在谷歌的一个实习项目开始的,并在UNC继续。我们要感谢Alex Toshev进行有益的讨论,并感谢Google的Image Understanding和DistBelief团队。我们也感谢Philip Ammirato和Patrick Poirson提供有用的意见。我们感谢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)
    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., Arbeláez, 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 detector semerge 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.: Areal-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代码汇总:

     

    展开全文
  • 论文链接:https://arxiv.org/abs/1512.02325 SSD:Single Shot MultiBox Detector 0.摘要 我们提出了一种只用一个卷积神经网络就可以实现检测图片中目标的方法。我们称该方法为SSD,将边界框(bounding box: 这里...

    论文链接:https://arxiv.org/abs/1512.02325

    SSD:Single Shot MultiBox Detector

    0.摘要

    我们提出了一种只用一个卷积神经网络就可以实现检测图片中目标的方法。我们称该方法为SSD,将边界框(bounding box: 这里具体的概念等读到下面再解释一下)的输出空间离散化为一组默认框,这些默认框覆盖了特征图中每一个位置的不同长宽比和尺度。在预测时,该网络会为每个默认框(default box)中出现的每一个对象分类进行打分,并对框进行调整来更好的匹配目标的大小。另外,该网络将来自多个不同分辨率的特征图的预测结合起来,这样就很自然的实现了对目标多中尺度大小的处理。与那些需要候选目标的方法相比,SSD非常简单,因为它完全去掉了生成候选框和后续对像素或者特征重采样的步骤,将所有的计算都整合到了一个网络中。这样就使得SSD的训练和进一步融合到需要检测模块的系统中都变得非常简单。在PASCAL VOC、COCO和ILSVRC等数据集上的实验表明,在训练和推理使用统一框架的同时,SSD拥有与使用了额外生成候选目标步骤的方法一较高下的精度,并且SSD的速度更快。在Nvidia Titan X上使用VOC2007测试集的测试结果为:当使用300x300大小的输入时,SSD的mAP可以达到74.3%,处理速度为59FPS;使用512x512大小的输入mAP可以达到76.9%,比同类型表现最好的 Faster R-CNN模型表现更好。与其他的一阶段方法相比,SSD即使使用更小的输入大小也能得到更好的精度。代码发布在:https://github.com/weiliu89/caffe/tree/ssd

    1. 引言

    当前最好的目标检测系统都是下面介绍的方法的各种变体:先假设一些边界框(可能通过Selective Search 或者RPN生成),然后为每个框重新提取像素或者特征,最后使用一个牛X的分类器得到框的类别。自从Selective Search方法(即使这些方法使用了更深层次的特征(比如[3])但这些检测方法仍然是基于Faster R-CNN的)在 PASCAL VOC, COCO, and ILSVRC等数据集上都得到了很好的检测结果,该流程称为了普遍的检测基准。这些方法虽然精度高,但是对于嵌入式系统这些方法的计算量太大了,对于实时系统来说处理速度太慢了。通常使用帧率(SPF)来衡量这些方法的检测速度,即使速度最快的高精度检测方法——Faster RCNN,也只能达到每秒处理7帧(FPS)。到目前为止已经尝试过很多方法——通过逐个修改整个检测流程的每个阶段来提升检测的速度,但是要取得明显的效果都是以精度的显著降低为代价的。

    本文展示了第一个基于深度网络的目标检测器,不需要为假设的候选框进行像素或者特征的重采样,同时精度又能够与这些方法持平。这使得高精度检测在速度方面得到了一个很大的提升(在VOC2007 test数据集上,SSD的mAP为74.3%速度为59 FPS,而Faster RCNN的mAP为73.2%速度为7 FPS,YOLO的mAP为63.4%速度为45 FPS)。在速度上取得这么大的提升主要是干掉了生成候选框和后续为候选框在像素或特征上的重采样阶段。我们不是第一个这样做的(参见4,5),但是我们通过使用一系列的改进方法,是精度得到了大幅度的提升并超过了之前尝试的方法。我们的改进方法包括使用一个小的卷积过滤去来预测目标类别和边界框的位置偏移,为检测不同长宽比的目标使用独立的检测器(过滤器),并把这些过滤器应用到从网络的后面几个阶段得到的多个特征图来实现多尺度的检测。 应用了这些修改后——尤其是为了预测不同尺度而使用了多个层的输出 ——我们可以在使用相对较低分辨率输入的情况下达到较高的精度,进一步提升了检测的速度。虽然单独看这些改进非常不起眼,但是我们注意到使用了这些改进的系统却使提升了PASCAL VOC上实时检测的准确率,把mAP从YOLO的63.4%提升到了74.3%。这相对于近期最受关注的残差网络而言,这是对检测精度更大的一次提升。而且,高质量检测速度的大幅度提升可以为计算机视觉提供更多的设置选项。

    把我们的贡献总结如下:
    —— 我们提出了SSD,一个只需要看一眼(single-shot)的多类别检测系统,比之前表现最好的single-shot检测系统(YOLO)的速度更快并且精度更高,实际上也不低于使用候选区域和池化(包括Faster RCNN)等更慢一些的技术的精度。

    —— SSD的核心思想是 在一组固定的默认边界框的特征图上使用小的卷积过滤器来预测类别得分和框的偏移。

    —— 为了达到更高的检测精度,我们使用不同尺度的特征图来预测不同尺度的目标,并且根据纵横比把预测结果进行区分开。

    —— 即使使用低分辨率的输入图片,这种设计也可以做到端到端的训练简单和高精度,更好的平衡了速度和精度。

    —— 在PASCAL VOC, COCO 和 ILSVRC数据集上使用多种输入大小对模型的耗时和精度进行了实验分析,并且与一系列近期表现最好的方法进行了比较。

    2.The Single Shot Detector (SSD)

    本章节介绍我们提出的SSD检测框架(2.1章节)和对应的训练方法(2.2章节)。随后第三章节展示了特定数据集的模型细节和实验结果。
    在这里插入图片描述简要翻译一下图片的说明:图1:SSD 框架.(a) SSD在训练的时候只需要一个输入图片和每个目标的真值框。我们用卷积的方式,为不同尺度的(比如图中b和c的8x8和4x4)特征图中的每个位置假设了一组数量比较少(比如4)的默认框,这些默认框具有不同的纵横比。我们会为每个默认框预测形状的偏移和对所有目标类型(c 1 , c 2 , · · · , c p )的置信度。在训练时,首先我们用默认框取匹配真值框。例如,我们有两个配置的默认框,一个匹配了猫,另一个匹配了狗,那么哪个作为正样本哪个作为负样本呢。该模型的loss值是位置的loss(例如Smooth L1)和置信度loss(例如softmax)的加权和.

    2.1 Model

    SSD方法基于一个前馈卷积网络,该网络首先生成一个固定大小的边界框集合,并对这些框中存在的对象类实例进行评分,然后执行非最大抑制步骤以生成最终检测。早期的网络层次是基于用于高质量图像分类的标准结构(从分类层之前截断,主要指的是分类层前面的部分,也就是backbone网络用于提取特征),我们称之为基础网络。然后在基础网络上添加一些辅助的结构,来构造一个具有一下特征的检测器:

    用于检测的多尺度特征图 我们在截取的基础网络后面添加了卷积特征层。这些层的大小会逐渐的减小,这样就可以使检测器预测多种尺度了。用于预测检测的卷积模型对于每个特征层是不同的(Overfeat[4]和YOLO[5],它们在单比例尺特征图上运行)。

    检测的卷积预测器 添加的每一个特征层(或者是从基础网络中选择一个已有的特征层)使用一组卷积过滤器可以生成一组固定的检测预测结果。这些在图2中SSD网络结构的上面进行了说明。对于大小为mxn通道数为p的卷积层,预测潜在检测参数的基础元素是一个3x3xp的小卷积核,该卷积核既生成类别的得分又生成相对于默认框坐标的大小偏移。在mxn的每一个位置都会使用该卷积核,来生成一个结果。输出的边界框的偏移值是相对于默认框的位置来计算的,默认框的位置是取的特征图中的相对位置(个人理解:这里应该指的是不同大小的特征图中默认框的位置)(参见YOLO[5]的架构,它使用了全连接层替代了该步骤的卷积过滤器)。

    在这里插入图片描述图2 两个单次检测模型的比较:SSD和YOLO[5]。我们的SSD模型在基础网络的后面添加了几个特征层,这些新加的层用来预测不同尺度和长宽比的默认框的偏移以及默认框对应的置信度。在VOC2007 测试集上,使用300x300大小输入的SSD精度已经大大超过了使用448x448输入大小的yolo,同时执行速度也得到了提升。

    默认框和长宽比 我们为网络顶层的几个特征图中的每一个特征图单元(个人理解:就是特征图里面每个值)都创建一组默认边界框。这些默认框是以卷积的方式铺在特征图上(个人理解: ** 这里应该是指每一个默认框都像卷积计算似的覆盖了特征图中的部分值,默认框覆盖的是通过框对应值得出的框范围**),因此每个框与它对应的单元的相对位置是固定的。对于特征图中的每个单元(也就是每个值),我们都会预测相对于该单元中默认框大小的偏移,也会预测每个类别实例出现在每个默认框中的得分。具体的说,对于给出了位置的k个框,我们会为每一个框都会计算c中类别的得分和相对于原始默认框大小的4个偏移值。这就需要在特征图的每一个位置上总共使用(c+4)k个过滤器,对于mxn的特征图得到一个(c+4)kmn个输出。默认框的说明请参见图1。我们的默认框类似与Faster RCNN中的锚点框,但是不同的是我们把默认框应用到不同分辨率的多个特征图上。在多个特征图上使用不同形状的默认框,可以让我们有效的对可能的输出形状空间进行离散化。(个人理解:这里这应该指我覆盖了不同大小和形状的默认框,这样就有更大可能的覆盖可能的输出形状)

    2.2 Training

    训练SSD和使用候选区域的典型检测器的关键不同是,** 真值框需要与检测器的一组固定输出中的某个特定输出关联起来。**(个人理解:一个特征图单元有一组默认框,这就对应了一组输出,而真值框需要找到对应的特征图中的单元,与该单元的某个输出关联起来,作为其label)。在训练YOLO[5]和Faster RCNN、MultiBox中生成候选区域阶段也需要类似的操作。一旦关联关系确定,loss函数和反向传播就可以端到端的执行了。训练还包括选择一组用于检测的默认框和尺度,同时还有困难负样本挖掘和数据增强的策略。

    匹配策略 在训练过程中我们需要确定默认框对应到哪个真值框,并以此为基础进行对应的训练。对于每一个真值框,我们会根据位置、长宽比、尺度从默认框中选择。首先,对于每一个真值框我们选取与之交并比最高的默认框(与MultiBox[7]相同)。与MultiBox不同的是,我们后续会匹配与默认框交并比(IOU)大于一个阈值(0.5)的所有真值框。这样就简化了学习中的问题,允许网络多个重叠的默认框预测一个高分,而不是只取一个最大交并比的预测结果。

    训练目标 SSD的训练目标(也就是loss函数)继承子MultiBox[7,8],但是进行了扩展来处理多种目标类型。我们使用xijp={1, 0}来表示第i个默认框匹配含有物体类别p的第j个真值框。根据上面介绍的匹配策略,我们可以得到i\sum_{i}xijp >=1。最终的目标loss函数是位置损失(loc)和置信度损失(conf)的加权和:
    在这里插入图片描述其中N是匹配成功的默认框数量。如果N = 0,我们把loss设置为0。位置损失函数使用了Smooth L1[6],并将预测框(l)和真值框(g)作为参数。与Faster RCNN类似,我们会对默认框的中心点(cx, cy)的偏移和宽(w)、高(h)都进行回归。
    在这里插入图片描述置信度损失是多个类别置信度©的softmax 损失函数,通过交叉验证我们把权重参数α设置为1。

    选择默认框的尺度和长宽比 为了应对不同大小的目标,一些方法[4,9]是通过先将图片处理成不同大小然后将预测结果整合到一起。但是,通过将单个网络中来自多个不同层的特征图进行预测,我们可以模拟相同的效果,同时还能够在所有目标尺寸上共享参数。之前的工作[10,11]已经证明,使用较低层次的特征图能够提升语义分割的质量,因为较低层次能够从输入的目标中捕捉更过的细节信息。类似的,[12]中已经证明增加一个全局的上下文池(通过对一个特征图池化得到)可以是分割结果更平滑。受这些方法启发,我们既使用较低层的特征也使用较高层的特征进行检测。图1中展示了框架中使用的两个特征图的例子(8x8和4x4)。在实际操作中,我们可以使用类似的更多的特征,而且只增加很少的计算量。

    我们知道一个网络中不同层次的特征图具有不同(实验证明的)大小的感受野[13]。幸运的是,在SSD的框架中,默认框不需要与每层的实际感受野关联起来。我们设计了一种将默认框平铺到特征图的方法 ,这样就可以是特定的特征图对应到特定尺度的目标。假如我们检测时使用m个特征图。每个特征图的默认框的scale计算方法如下:
    在这里插入图片描述公式里面smin=0.2, smax=0.9,意思是处于最下面的层的scale是0.2,最高层次的scale是0.9,中间层次都是按照规律递增的。在创建默认框时我们使用了不同的长宽比,并使用ar表示,ar∈{1, 2, 3, 1/2 , 1/3 }。这样我们就可以计算每一个默认框的宽(wka=skar\sqrt{a_r})和高(hka=sk/ar\sqrt{a_r})。当长宽比等于1时,我们也为它添加了一个默认框,scale为sk=sksk+1\sqrt{s_k s_{k+1}},这样的话一个特征图的每一个位置就会有6个默认框。我们把默认框的的中心位置记为(i+0.5fk{i+0.5}\over {|f_k|}j+0.5fk{j+0.5}\over {|f_k|}),|fk|是第k个方形特征图的大小,i,j∈ [0, |f k |)。在实践中,也可以设计一种默认框的分布,来更好的适配特定数据集。如何设计最好平铺默认框的方法仍是一个悬而未决的问题。

    通过将多个特征图的所有位置生成的不同尺度和长宽比默认框的预测结果结合到一起,我们得到了一组多种多样的预测结果,覆盖了多种输入形状的大小和形状。例如,在图1中,狗匹配到了大小为4x4的特征图中的一个默认框,但是不会匹配到大小为8x8的特征图中的任何默认框。这是因为这些框具有不同的尺度,与狗的框并不匹配,因此在训练中看做负样本

    困难负样本挖掘 经过与真值框的匹配后,大多数的默认框都是负样本,尤其是可能匹配成功的默认框数量很大时。这就导致训练的正负样本之间非常到的不平衡。我们并没用全部的负样本,我们使用默认框的置信度loss对默认框进行排序,然后选取最高的一些使负样本和正样本的比例保持在差不多3:1。我们发现这样做可以是优化更加快速和训练更加稳定。

    数据增强 为了使模型对多种多样的输入目标大小和形状具有更好的鲁棒性,每一个训练的图片都随机使用一下的一种方法进行采样。
    ——使用整张原始的图片。
    ——对图片进行采样,使样本与目标的最小IoU为0.1,0.3,0.5,0.7,0.9。
    ——随机采样

    通过采样得到图片的大小与原始图片大小的比值范围为[0.1, 1],长宽比取1/2到2之间的值。如果真值框的中心点在采样的样本中,我们将会保留真值框中重叠的部分。在上述采样步骤之后,除了应用一些类似于[14]中描述的变换图片亮度的方法之外,每一个样本都会调整为固定大小并以0.5的概率进行水平翻转。

    先写到这里吧,下面就是相关的实验了,有时间的话再补充。。。。

    3 Experimental Results

    展开全文
  • ** 英文版论文原文:...SSD: Single Shot MultiBox Detector Wei Liu,Dragomir Anguelov ,Dumitru Erhan ,Christian Szegedy ,Scott Reed ,Cheng-Yang Fu & Alexander C. Berg UNC...

    英文版论文原文:https://arxiv.org/pdf/1512.02325.pdf


    SSD: Single Shot MultiBox Detector

    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

    Abstract

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

    We present a method for detecting objects in images using a single deep neural network. Our approach, named SSD, discretizes the output space of bounding boxes into a set of default boxes over different aspect ratios and scales per feature map location. At prediction time, the network generates scores for the presence of each object category in each default box and produces adjustments to the box to better match the object shape. Additionally, the network combines predictions from multiple feature maps with different resolutions to naturally handle objects of various sizes. SSD is simple relative to methods that require object proposals because it completely eliminates proposal generation and subsequent pixel or feature resampling stages and encapsulates all computation in a single network. This makes SSD easy to train and straightforward to integrate into systems that require a detection component. Experimental results on the PASCAL VOC, COCO, and ILSVRC datasets confirm that SSD has competitive accuracy to methods that utilize an additional object proposal step and is much faster, while providing a unified framework for both training and inference. For 300 × 300 input, SSD achieves 74.3% mAP1 on VOC2007 test at 59 FPS on a Nvidia Titan X and for 512 × 512 input, SSD achieves 76.9% mAP, outperforming a comparable state-of-the-art Faster R-CNN model. Compared to other single stage methods, SSD has much better accuracy even with a smaller input image size. Code is available at: https://github.com/weiliu89/caffe/tree/ssd .

    1 Introduction

    当前最新的对象检测系统是以下方法的变体:假设边界框,为每个框重新采样像素或特征,并应用高质量的分类器。自从选择性搜索工作[1]以来,该管道就一直在检测基准上占主导地位,尽管基于PASCAL VOC,COCO和ILSVRC检测的当前领先结果全部基于Faster R-CNN [2],尽管具有更深的功能,例如[3]。虽然这些方法准确无误,但对于嵌入式系统而言,它们的计算量很大,即使使用高端硬件也是如此,对于实时应用程序来说却太慢了。这些方法的检测速度通常以每帧秒数(SPF)来衡量,甚至是最快的高精度检测器Faster R-CNN,仅以每秒7帧(FPS)的速度运行。已经有很多尝试通过攻击检测管线的每个阶段来构建更快的检测器(请参见第4节中的相关工作),但是到目前为止,速度的显着提高仅是以大大降低检测精度为代价的。

    Current state-of-the-art object detection systems are variants of the following approach: hypothesize bounding boxes, resample pixels or features for each box, and apply a high-quality classifier. This pipeline has prevailed on detection benchmarks since the Selective Search work [1] through the current leading results on PASCAL VOC, COCO, and ILSVRC detection all based on Faster R-CNN[2] albeit with deeper features such as [3]. While accurate, these approaches have been too computationally intensive for embedded systems and, even with high-end hardware, too slow for real-time applications.Often detection speed for these approaches is measured in seconds per frame (SPF), and even the fastest high-accuracy detector, Faster R-CNN, operates at only 7 frames per second (FPS). There have been many attempts to build faster detectors by attacking each stage of the detection pipeline (see related work in Sec. 4), but so far, significantly increased speed comes only at the cost of significantly decreased detection accuracy.

    本文提出了一种基于深度网络的目标检测器,它不需要对像素或特征进行重新采样,也不需要对边界框假设进行重新采样,并且与现有方法一样精确。这使得高精度检测的速度有了显著提高(在VOC2007测试中,59帧FPS (mAP 74.3%),而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%mAP。与最近在残差网络上非常引人注目的工作相比,这在检测精度上有较大的相对提高[3]。此外,显着提高高质量检测的速度可以拓宽使用计算机视觉的设置范围。

    This paper presents the first deep network based object detector that does not resample pixels or features for bounding box hypotheses and and is as accurate as approaches that do. This results in a significant improvement in speed for high-accuracy detection (59 FPS with mAP 74.3% on VOC2007 test, vs. Faster R-CNN 7 FPS with mAP 73.2% or YOLO 45 FPS with mAP 63.4%). The fundamental improvement in speed comes from eliminating bounding box proposals and the subsequent pixel or feature resampling stage. We are not the first to do this (cf [4,5]), but by adding a series of improvements, we manage to increase the accuracy significantly over previous attempts. Our improvements include using a small convolutional filter to predict object categories and offsets in bounding box locations, using separate predictors (filters) for different aspect ratio detections, and applying these filters to multiple feature maps from the later stages of a network in order to perform detection at multiple scales. With these modifications—especially using multiple layers for prediction at different scales—we can achieve high-accuracy using relatively low resolution input, further increasing detection speed. While these contributions may seem small independently, we note that the resulting system improves accuracy on real-time detection for PASCAL VOC from 63.4% mAP for YOLO to 74.3% mAP for our SSD. This is a larger relative improvement in detection accuracy than that from the recent, very high-profile work on residual networks [3]. Furthermore, significantly improving the speed of high-quality detection can broaden the range of settings where computer vision is useful.

    我们将我们的贡献总结如下:

    We summarize our contributions as follows:

    • 我们推出了SSD,这是一种适用于多种类别的单发检测器,它比以前的最新单发检测器(YOLO)速度更快,并且精度更高,实际上与执行显式区域建议和池化(包括faster R-CNN)的较慢技术一样准确。

    We introduce SSD, a single-shot detector for multiple categories that is faster than the previous state-of-the-art for single shot detectors (YOLO), and significantly more accurate, in fact as accurate as slower techniques that perform explicit region proposals and pooling (including Faster R-CNN).

    • SSD的核心是使用应用于特征图的小型卷积滤波器,为一组固定的默认边界框预测类别得分和框偏移。

    The core of SSD is predicting category scores and box offsets for a fixed set of default bounding boxes using small convolutional filters applied to feature maps.

    • 为了获得较高的检测精度,我们从不同比例的特征图生成不同比例的预测,并按宽高比将显示明确分开。

    To achieve high detection accuracy we produce predictions of different scales from feature maps of different scales, and explicitly separate predictions by aspect ratio.

    • 这些设计功能即使在低分辨率输入图像上也可以实现简单的端到端训练和高精度,从而进一步提高了速度与精度之间的权衡。

    These design features lead to simple end-to-end training and high accuracy, even on low resolution input images, further improving the speed vs accuracy trade-off.

    • 实验包括对通过PASCAL VOC,COCO和ILSVRC评估的具有可变输入大小的模型进行时序和精度分析,并将其与一系列最新技术进行了比较。

    Experiments include timing and accuracy analysis on models with varying input size evaluated on PASCAL VOC, COCO, and ILSVRC and are compared to a range of recent state-of-the-art approaches.

    2. 单发检测器(SSD)

    2 The Single Shot Detector (SSD)

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

    This section describes our proposed SSD framework for detection (Sec. 2.1) and the associated training methodology (Sec. 2.2). Afterwards, Sec. 3 presents dataset-specific model details and experimental results.

    在这里插入图片描述

    图1:SSD框架。 (a)在训练过程中,SSD仅需要每个对象的输入图像和地面真相框。 以卷积方式,我们在几张具有不同比例(例如(b)和(c)中的8×8和4×4)的特征图中,评估了每个位置上一小组不同纵横比的默认框(例如4个)。 对于每个默认框,我们预测所有对象类别( (c1,c2,...,cp)(c_1, c_2, ...,c_p) )的形状偏移量和置信度。 在训练时,我们首先将这些默认框与地面真相框进行匹配。 例如,我们将两个默认框与猫匹配,将一个默认框与狗匹配,这两个默认框被视为正,而其余框被视为负。 模型损失是定位损失(例如,平滑L1 [6])和置信度损失(例如,Softmax)之间的加权总和。

    Fig. 1: SSD framework. (a) SSD only needs an input image and ground truth boxes for each object during training. In a convolutional fashion, we evaluate a small set (e.g. 4) of default boxes of different aspect ratios at each location in several feature maps with different scales (e.g. 8 × 8 and 4 × 4 in (b) and ©). For each default box, we predict both the shape offsets and the confidences for all object categories ((c1,c2,...,cp)(c_1, c_2, ...,c_p)). At training time, we first match these default boxes to the ground truth boxes. For example, we have matched two default boxes with the cat and one with the dog, which are treated as positives and the rest as negatives. The model loss is a weighted sum between localization loss (e.g. Smooth L1 [6]) and confidence loss (e.g. Softmax).

    2.1 Model

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

    The SSD approach is based on a feed-forward convolutional network that produces a fixed-size collection of bounding boxes and scores for the presence of object class instances in those boxes, followed by a non-maximum suppression step to produce the final detections. The early network layers are based on a standard architecture used for high quality image classification (truncated before any classification layers), which we will call the base network2. We then add auxiliary structure to the network to produce detections with the following key features:

    用于检测的 多尺度特征图 我们将卷积特征层添加到截断的基础网络的末尾。 这些层的大小逐渐减小,并可以预测多个尺度的检测。 对于每个特征层,用于预测检测的卷积模型是不同的(参见在单个比例尺特征图上运行的Overfeat [4]和YOLO [5])。

    Multi-scale feature maps for detection We add convolutional feature layers to the end of the truncated base network. These layers decrease in size progressively and allow predictions of detections at multiple scales. The convolutional model for predicting detections is different for each feature layer (cf Overfeat[4] and YOLO[5] that operate on a single scale feature map).

    在这里插入图片描述

    图2:SSD和YOLO两种单发检测模型之间的比较[5]。 我们的SSD模型在基础网络的末尾添加了几个功能层,这些功能层可预测与不同比例和纵横比的默认框的偏移量及其关联的置信度。 在VOC2007测试中,具有300×300输入尺寸的SSD在精度上明显优于其448×448 YOLO同类产品,同时还提高了速度。

    Fig. 2: A comparison between two single shot detection models: SSD and YOLO [5]. Our SSD model adds several feature layers to the end of a base network, which predict the offsets to default boxes of different scales and aspect ratios and their associated confidences. SSD with a 300 × 300 input size significantly outperforms its 448 × 448 YOLO counterpart in accuracy on VOC2007 test while also improving the speed.

    用于检测的卷积预测变量每个添加的特征层(或可选地,来自基础网络的现有特征层)都可以使用一组卷积滤波器生成一组固定的检测预测。 这些在图2的SSD网络体系结构的顶部表示。对于具有p个通道的 m×nm×nn大小的特征层,预测电位检测参数的基本元素是 3×3×p3×3×p 小内核 会产生类别得分或相对于默认框坐标的形状偏移。 在应用内核的 m×nm×n 个位置中的每个位置,它都会产生一个输出值。 边界框偏移输出值是相对于相对于每个要素地图位置的默认框位置进行测量的(参见YOLO [5]的体系结构,该过程使用中间完全连接层而不是卷积滤波器进行此步骤)。

    Convolutional predictors for detection Each added feature layer (or optionally an existing feature layer from the base network) can produce a fixed set of detection predictions using a set of convolutional filters. These are indicated on top of the SSD network architecture in Fig. 2. For a feature layer of size m×nm × n with p channels, the basic element for predicting parameters of a potential detection is a 3×3×p3 × 3 × p small kernel that produces either a score for a category, or a shape offset relative to the default box coordinates. At each of the m×nm × n locations where the kernel is applied, it produces an output value. The bounding box offset output values are measured relative to a default box position relative to each feature map location (cf the architecture of YOLO[5] that uses an intermediate fully connected layer instead of a convolutional filter for this step).

    默认框和纵横比 我们将一组默认边界框与每个要素图单元相关联,以用于网络顶部的多个要素图。默认框以卷积方式平铺要素图,因此每个框相对于其对应单元格的位置是固定的。在每个要素贴图单元中,我们预测相对于单元中默认框形状的偏移量,以及每个类得分,这些得分指示每个类框中都存在类实例。具体来说,对于给定位置k中的每个盒子,我们计算c类得分和相对于原始默认盒子形状的4个偏移量。这将导致在特征图中每个位置周围应用 (c+4)k(c + 4)k 个滤镜,从而为 m×nm × n 特征图产生 (c+4)kmn(c + 4)kmn 个输出。有关默认框的说明,请参阅图1。我们的默认框与Faster R-CNN [2]中使用的锚框相似,但是我们将它们应用于多个不同分辨率的特征图。在几个要素图中允许使用不同的默认盒子形状,可以使我们有效地离散可能的输出盒子形状的空间。

    Default boxes and aspect ratios We associate a set of default bounding boxes with each feature map cell, for multiple feature maps at the top of the network. The default boxes tile the feature map in a convolutional manner, so that the position of each box relative to its corresponding cell is fixed. At each feature map cell, we predict the offsets relative to the default box shapes in the cell, as well as the per-class scores that indicate the presence of a class instance in each of those boxes. Specifically, for each box out of k at a given location, we compute c class scores and the 4 offsets relative to the original default box shape. This results in a total of (c+4)k(c + 4)k filters that are applied around each location in the feature map, yielding (c+4)kmn(c + 4)kmn outputs for a m×nm × n feature map. For an illustration of default boxes, please refer to Fig. 1. Our default boxes are similar to the anchor boxes used in Faster R-CNN [2], however we apply them to several feature maps of different resolutions. Allowing different default box shapes in several feature maps let us efficiently discretize the space of possible output box shapes.

    2.2 Training

    训练SSD和训练使用区域建议的典型探测器之间的主要区别在于,需要将地面真实信息分配给探测器输出的固定集合中的特定输出。 在YOLO [5]中的训练以及Faster R-CNN [2]和MultiBox [7]的区域提议阶段,也都需要此版本。 确定此分配后,将损耗函数和反向传播端到端应用。 训练还涉及选择一组默认的检测框和标尺进行检测,以及严格的否定挖掘和数据增强策略。

    The key difference between training SSD and training a typical detector that uses region proposals, is that ground truth information needs to be assigned to specific outputs in the fixed set of detector outputs. Some version of this is also required for training in YOLO[5] and for the region proposal stage of Faster R-CNN[2] and MultiBox[7]. Once this assignment is determined, the loss function and back propagation are applied end-to-end. Training also involves choosing the set of default boxes and scales for detection as well as the hard negative mining and data augmentation strategies.

    匹配策略 在训练期间,我们需要确定哪些默认框对应于地面真相检测,并相应地训练网络。 对于每个地面真相框,我们从默认框中进行选择,这些默认框随位置,宽高比和比例而变化。 我们首先将每个地面真值框与具有最佳提花卡重叠的默认框进行匹配(如MultiBox [7])。 与MultiBox不同,我们随后将默认框与jaccard重叠高于阈值(0.5)的所有地面实况进行匹配。 这简化了学习问题,使网络能够为多个重叠的默认框预测高分,而不是要求它仅选择重叠最大的框。

    Matching strategy During training we need to determine which default boxes correspond to a ground truth detection and train the network accordingly. For each ground truth box we are selecting from default boxes that vary over location, aspect ratio, and scale. We begin by matching each ground truth box to the default box with the best jaccard overlap (as in MultiBox [7]). Unlike MultiBox, we then match default boxes to any ground truth with jaccard overlap higher than a threshold (0.5). This simplifies the learning problem, allowing the network to predict high scores for multiple overlapping default boxes rather than requiring it to pick only the one with maximum overlap.

    训练目标SSD训练目标是从MultiBox目标[7,8]派生而来的,但可以扩展为处理多个对象类别。 令 xijp=1,0x^p_{ij} = {1,0} 是一个指标,用于将第j个默认框与类别p的第j个地面真实框进行匹配。 在上面的匹配策略中,我们可以有 ixijp1\sum_ix^p_{ij} \ge 1 。 总体目标损失函数是定位损失(loc)和置信度损失(conf)的加权和:

    Training objective The SSD training objective is derived from the MultiBox objective [7,8] but is extended to handle multiple object categories. Let xijp=1,0x^p_{ij} = {1,0} be an indicator for matching the j-th default box to the j-th ground truth box of category p. In the matching strategy above, we can have ixijp1\sum_ix^p_{ij} \ge 1. The overall objective loss function is a weighted sum of the localization loss (loc) and the confidence loss (conf):

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

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

    where N is the number of matched default boxes. If N=0N = 0, wet set the loss to 0. The localization loss is a Smooth L1 loss [6] between the predicted box (l)(l) and the ground truth box (g)(g) parameters. Similar to Faster R-CNN [2], we regress to offsets for the center (cx,cy)(cx,cy) of the default bounding box (d)(d) and for its width (w)(w) and height (h)(h).

    Lloc(x,l,g)=iPosNmcx,cy,w,hxijksmoothL1(limg^jm)L_{loc}(x,l,g)=\displaystyle\sum_{i\in Pos}^N \displaystyle\sum_{m\in {cx,cy,w,h}}x^k_{ij}smooth_{L1}(l_i^m-\hat{g}^m_j)

    g^jcx=(gjcxdicx)/diw       g^jcy=(gjcydicy)/dih(2)\tag{2} \hat{g}^{cx}_j =(g^{cx}_j-d^{cx}_i)/d^w_i \space \space\space\space\space\space\space \hat{g}^{cy}_j=(g^{cy}_j-d^{cy}_i)/d_i^h

    g^jw=log(gjwdiw)       g^jh=log(gjhdih)\hat{g}^w_j=log(\frac{g^w_j}{d^w_i}) \space \space\space\space\space\space\space \hat{g}^h_j=log(\frac{g^h_j}{d_i^h})

    置信度损失是多个类别置信度(c)上的softmax损失。

    The confidence loss is the softmax loss over multiple classes confidences ©.

    Lconf(x,c)=iPosNxijplog(c^ip)iNeglog()ci0^  where  c^ip=exp(cip)pexp(cip)(3)\tag{3} L_{conf}(x,c)=-\displaystyle\sum_{i\in Pos}^N x^p_{ij}log(\hat{c}^p_i)-\displaystyle\sum_{i\in Neg}log()\hat{c^0_i} \space\space where \space\space \hat{c}^p_i=\frac{exp(c^p_i)}{\sum_p exp(c^p_i)}

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

    and the weight term αα is set to 1 by cross validation.

    展开全文
  • SSD 论文原文完整翻译

    2019-06-21 10:04:18
    翻译一下ssd文章翻译来自:https://arxiv.org/pdf/1512.02325.pdf SSD:单次检测器摘要:我们提出了一种使用单个深度神经网络来检测图像中的目标的方法。我们的方法名字为SSD,将每个特征图的边界框的输出空间离散...

    翻译一下ssd

    文章翻译来自:arxiv.org/pdf/1512.0232

    SSD:单次检测器

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


    1. 引言

    现有的物体检测系统是下面方法的变种:边界框的假设,对每个框进行像素和特征的重采样,使用高质量的分类器。这种流程在目标检测数据集与挑战赛(benchmark)上很盛行,因为采用选择性搜索[1](Selective Search )方法搜索PASCAL VOC,MSCOCO和ILSVRC的检测结果,取得领先结果的是具有如[3]所述的更深的特征的Faster R-CNN[2]。尽管准确,这些方法对于嵌入式系统来说计算量过大,即便对高端硬件来说,对实时的应用来说太慢了。 这些方法的检测速度通常以帧每秒为单位进行测量,即使是最快的高精度检测器——Faster R-CNN,也只能达到最快仅7帧每秒(FPS)的速度运行。大量的工作已经试图通过调整处理(attack)检测流程的各个阶段(参见第4节的相关工作)创造更快的检测器,,但到目前为止,明显的速度增长只能以显著的检测精度的下降为代价。

    本文提出了第一个无需对边界框的像素或特征重取样也能保持与这种方法准确度相当的基于深度网络的物体检测器。它带来了高精度的检测同时速度获得明显的提升(在VOC2007测试集上, 速度为58 FPS, mAP是72.1%,而Faster R-CNN 速度为7 FPS ,mAP 为73.2%,YOLO 的速度为45 FPS ,mAP为 63.4%)。速度的根本性提升来源于消除候选边界框(box proposal)和之后的像素或特征重采样的步骤。我们不是第一个这么做的人(参考 [4,5]),但是通过添加一系列的改进措施,与先前人们的工作相比,我们成功的把精度大幅度提升。我们的改进点包括使用小的卷积滤波器预测边界框中的物体类别和偏移量(offset),为不同长宽比的检测配置不同的检测器(filter),并且将这些滤波器应用于网络后期的多个特征图,以便进行多尺度检测。通过这些修正,特别是使用多个层进行不同尺度大小的预测,我们以相对低分辨率的输入实现了高精度的检测,同时更大的提高检测速度。 虽然这些贡献单独看起来可能微小,我们解释系统的结果在PASCAL VOC上做实时检测,准确率从yolo的63.4%提上到我们ssd的74.3%。与近期的使用残差网络的卓越工作成果相比,我们的工作在检测精度上有相对大的进步 [3]。 而且,高精度检测器的速度的提高可以拓宽应用计算机视觉技术的设备的范围。

    我们总结我们的贡献如下:

    1. 我们介绍的SSD是一个能一次性检测多类物体检测器,比现在最先进的单步检测器(YOLO)更快更精确,事实上,它的精度相当于一些使用了候选区域和池化的慢速的算法(包括Faster R-CNN)。
    2. SSD方法的核心是在特征图上使用小卷积滤波器,预测固定的一组默认边界框的类别得分和位置偏移量。
    3. 为了获得高精度的检测,我们在不同尺寸的特征图上产生出不同尺度的预测,并且通过长宽比来明确地区分预测。
    4. 这些设计特性实现了简单的端到端训练,而且即便使用低分辨率的输入图像时也能得到高的精度,进一步提高了速度与精度的权衡,。
    5. 在PASCAL VOC,MS COCO和ILSVRC上实验并评估分析不同输入大小下模型的耗时和精度,并与一系列最先进的算法进行比较

    2.单步检测器(ssd)

    这一节介绍我们提出的目标检测SSD框架(2.1节),相关的训练策略(2.2节),提出特定数据集模型的细节和实验结果(2.3节)。

    2.1 模型

    SSD方法基于前馈卷积网络,生成固定大小的边界框集和这些框中存在物体类别的置信度,接着使用非最大化抑制产生最终的检测结果。位于网络前面的一些层是基于做高质量图像分类的标准架构(截取该框架分类层之前的层),我们将其称为基础网络。然后,我们向网络添加辅助结构来利用下边的主要特征来生成感知器:

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

    用于检测的卷积预测器:每个添加的特征层(或者基础网络的特征层)使用一系列卷积滤波器(filter)可以产生一系列固定的预测。这些在图2中SSD网络架构已指出。对于p通道大小为m*n的特征层,对于一个可能的检测,它的预测参数的基本元素是一个3*3*p的核,这个核产生决定每个类别的置信度或生成相对于默认框坐标的偏移量。在m*n的特征图的每个位置均应用这个卷积核,各自产生一个输出值。边界框偏移输出值与默认框相关,而默认框位置又是与每个特征图的位置相关(参见YOLO [5]的架构,它在这个步骤使用全连接层而不是卷积滤波器)

    默认框与宽高比:我们为网络顶部的多个特征图的每个特征单元都关联固定的一组默认框。默认框以卷积形式作用于特征图,使得每个框相对于其对应的单元格的位置是固定的。我们为每个特征图单元预测相对于该单元格的默认框的偏移量,以及为每个类别预测反映框中该物体类别存在的置信度得分。具体来说,对于一个给定的位置的k个框中的每个框,我们都计算c个类的分数和相对于原始默认框的4个偏移值。这样致使总共有(c+4)k个滤波器作用于特征图中的每个位置,若特征图的大小为m*n,则会产生(c+4)*k*m*n个输出。有关默认框的说明,请参考图1。我们的默认框类似于Faster R-CNN [2]中使用的锚检查框(anchor boxes),但不同的是,我们将其应用于几个不同分辨率的特征图。在多个特征图上使用不同形状的默认框,致使有效地离散可能的输出框的形状的空间。

    2.2 训练

    训练SSD和训练使用区域候选框(region proposal)的典型分类器的主要不同点在于,真实标签需要被分配到固定的一组检测器输出中的某个特定的输出。YOLO [5]的训练阶段,Faster R-CNN [2]和MultiBox [7]的region proposal阶段也需要类似这样的操作。一旦把真实标签分配好,损失函数和反向传播就能端对端地应用。训练还包括选择一系列的默认框和用于检测的特征图尺度,以及难分样本挖掘(hard negative mining)和数据增强策略

    匹配策略:在训练时,我们需要确定哪些默认框和哪个真实标签框关联,然后据此进行训练。对于每个真实标签框,我们选择一些位置、长宽比和吃尺寸大小都不同的默认框。开始时,我们把每个真实标签框与默认框中与之具有最佳的雅可比重叠值(best jaccard overlap )(跟MultiBox [7]的方法一样)的框匹配。与MultiBox不同的是,我们之后又将默认框与所有的真实标签框( ground truth box) 配对,只要两者之间的雅可比重叠值(jaccard overlap) 大于某个阈值(本文的阈值为 0.5)。 这样做简化了学习问题,它使得网络能够为多个重叠的默认框预测高的置信度,而不是要求它只选择具有最大重叠值的那个框。

    训练目标:SSD训练的目标函数从MultiBox[7,8]中导出,但它进一步扩展到处理多个物体类别。

    v2-3610bbe3f41fdea56619abbdaa3632cf_b.jpg

    成为一个指示第i个默认框与类别p的第j个真实标签框的匹配指示器。根据上述的匹配策略,我们可以得到

    v2-0b09e32f060eec7a273ba5e396dd0d7f_b.jpg

    ,整体的目标损失函数是一个位置损失与置信度损失的加权和:


    v2-824da2b580485a29de0e901d7eb0aeb7_b.jpg


    其中,N是匹配的默认框的数目,如果N=0,我们把loss设为0,位置损失是smooth l1 loss,这是一个介于预测框与真实框之间的参数,类似于faster r-cnn我们将对默认框的中心与框的长宽进行回归。


    v2-44ef01de96872977159504afc1d5b5ce_b.jpg


    置信度损失是softmax 多类别分类损失函数


    v2-dce6e0d0ceca402476e70823375422f7_b.jpg


    选择默认框的比例和宽高比:为了处理多个尺寸的物体,有些算法[4,9]提议处理具有不同尺寸的多张图片,然后把结果综合起来。但是用一个网络的不同层的特征图,也可以得到类似的效果,同时让所有不同尺寸的物体间能共享参数。之前的工作[10,11]已经表明使用较低层的特征图可以提高语义分割的质量,因为较低层能捕获到输入目标的更精细的细节。类似地,[12]指出,增加特征图的全局上下文池化有助于平滑分割结果。受这些方法启发,我们既用低层也用高层的特征图进行检测预测。图1展现了框架中使用的两个特征图(8×8和4×4)实例。在实践中,我们可以使用更多计算开销小的特征图。

    通常网络中不同层次的特征图具有不同大小的感受野[13]。幸运的是,对于SSD框架,默认框不需要与每层的实际感受野对应。我们可以设计默认框的平铺(tiling),使得特定的特征图学习响应特定的物体尺度。假设我们要使用m个特征图做预测。每个特征图的默认框的尺寸可用下式计算:


    v2-b6e199ca6dd69604ce71468723dda66a_b.jpg


    其中Smin是0.2,Smax是0.9,意味着最底层是0.2,最高层是0.9,期间所有的层按规律递增,我们为默认的bbox应用了不同的长宽比,标记为

    v2-b6d8f4d6a8b45da45e8e738ec657c5a0_b.jpg

    {1,2,3,0.5,0.3333},我们可以计算每个默认的bbox的长度与宽度

    v2-c85a751eadecd588ef009938da85a8aa_b.jpg

    v2-091c06bafa68774bf654cfefac506cfd_b.jpg

    ,对于长宽比为1的,我们也加了一个默认的bbox,尺度为

    v2-b1c6b8c9282340fc2a4cc7b1688e6837_b.jpg

    ,特征图的每个位置有6个默认的box,我们设置每个bbox的中心为

    v2-1244157b9e02031da7e8c90c1493a8c1_b.jpg

    其中|Fk|是第k个特征图的尺寸,在实际中,为了适应特定的数据集,大家也可以设置不同尺寸与长宽比的默认框,如何最优的设计这些也是一个开放的问题。

    通过组合多个特征图在所有位置的不同尺寸和长宽比的所有默认框的预测,我们得到涵盖各种输入物体尺寸和形状的多样性的预测集。例如,图 1中的狗被匹配到4×4特征图中的某个默认框,但没有匹配到8×8特征图中的任何默认框。这是因为那些框具有不同的尺度,但都与狗的框不匹配,因此在训练期间这些框被认为是负的。

    难分样本挖掘 :在匹配步骤后,大多数默认框都是负的,特别是当可能的默认框数量很大时。这导致了正负训练样本的严重不平衡。我们没有使用所有的负样本,而是先把负样本根据置信度损失进行从大到小排序,然后为每个默认框只选择分值最高的那些样本,这样做的目的是使得正负样本的比例不超过1:3. 我们发现这样还可以使得优化更快,训练更平稳

    数据增强:为了使模型对不同大小、形状的输入目标更具鲁棒性,对每个图像通过随机采取以下策略之一进行采样:

    1. 使用整张原始输入图像
    2. 采样一个片段,使得与目标物体的最小的雅可比重叠为0.1,0.3,0.5,0.7,0.9之一。
    3. 随机采样一个部分


    每个采样部分的大小为原图的[0.1,1],长宽比在1/2和2之间。如果真实标签框的中心位于采样部分内,则保留重叠部分。在上述采样步骤之后,将每个采样片大小调整为固定大小,并以0.5的概率进行水平翻转,还有对图片做一些跟[14]所描述的光度扭曲的操作。

    3 实验结果

    基础网络 我们的实验基于在imagenet预训练的VGG16,与DeepLab-LargeFOV类似,我们也将fc6与fc7转换为卷积层,来自fc6与fc7的下采样参数,改变pool5为步长为2的卷积层,并且使用空洞卷积算法去填充空洞,一处所有的dropout操作,利用sgd进行fine-tune,初始的学习率为0.001,0.9momentum,0.0005的权重衰减,batch_size为32,学习率的下降策略每个数据集稍有不同,下文介绍:

    3.1 PASCAL VOC2007

    在这个数据集上,我们对比Fast R-CNN [6]和Faster R-CNN [2]在VOC2007的测试集(4952张图像)的结果。所有方法都是在相同的VGG16网络的预训练模型上微调的。

    图2展示了SSD300模型的架构细节。我们使用conv4_3,conv7(fc7),conv8_2,conv9_2,conv10_2和pool11来预测位置和置信度(对SSD500模型,额外增加了conv11_2用于预测),用“xavier”方法初始化所有新添加的卷积层的参数[18]。对于conv4_3、 conv10_2、 conv11_2的大我们只在其上放置4个默认框 :长宽比为0.3333与3。对于所有其他层,我们设置6个默认框,如第 2.2节。如[12]中所指出的,由于conv4_3与其他层相比具有不同的特征尺度,我们使用[12]中引入的L2正则化技术,将特征图中每个位置处的特征范数缩放为20,并在反向传播期间学习比例。我们使用0.001学习速率进行40k次迭代,然后继续分别以0.0001和0.00001的学习率训练10k次。表1显示,我们的SSD300模型已经比Fast R-CNN更准确。当以更大的500×500输入图像训练SSD,结果更准确,甚至惊人的超过了Faster R-CNN 1.9% mAP。如果我们使用更多的数据来训练ssd,我们可以看到ssd300比faster rcnn好1.1%,ssd512好3.6%,模型在coco数据集上训练,然后在voc数据集及逆行fine-tune,准确率可以达到81.6%。

    为了更详细地了解我们的两个SSD模型的性能,我们使用来自[21]的检测分析工具。图3显示SSD可以高质量检测(大、白色区域)各种目标类别。它的大部分置信度高的检测是正确的。召回率在85-90%左右,并且比“弱”(0.1 jaccard重叠)标准高得多。与R-CNN [20]相比,SSD具有较少的定位误差,表明SSD可以更好地定位目标,因为它直接回归目标形状和分类目标类别,而不是使用两个去耦步骤。然而,SSD对相似目标类别(尤其是动物)有更多的混淆,部分是因为多个类别分享了位置。图4显示SSD对边界框尺寸非常敏感。换句话说,它对较小的目标比较大的目标具有更差的性能。这毫不意外,因为小目标在最顶层可能没有任何信息保留下来。增加输入尺寸(例如从300×300到500×500)可以帮助改善检测小目标,但是仍然有很大改进空间。积极的一面是,我们可以清楚地看到SSD在大目标上表现很好。并且对于不同的目标宽高比非常鲁棒,因为我们对每个特征图位置使用各种宽高比的默认框。

    3.2 模型分析

    为了更好的理解SSD,我们进行了几个控制的实验来检测每一个部分如何影响整个模型的表现。更多的实验,我们使用了相同的设置,输入图片均为300*300,除了某些特殊的改变或者内容。

    数据增广是关键。 Fast和Faster R-CNN在训练时使用原始图像和水平翻转图像。我们使用更广泛的采样策略,类似于YOLO [5],表2显示,我们可以用这个抽样策略提高8.8%的mAP。我们不知道我们的采样策略将对Fast和Faster R-CNN提升多少,但可能效果不大,因为他们在分类期间使用了特征池化,比人为设置更鲁棒

    更多默认框形状性能更好 如第2.2节所述,默认情况下,每个位置使用6个默认框。如果我们删除具有1/3和3宽高比的框,性能下降0.9%。通过进一步移除1/2和2宽高比的框,性能再下降2.1%。使用多种默认框形状似乎使网络预测任务更容易。

    Atrous算法更好更快 如第3节所述,我们使用了VGG16的atrous版本,遵循DeepLabLargeFOV[16]。如果我们使用完整的VGG16,保持pool5与2×2-s2,并且不从fc6和fc7的采集参数,添加conv5_3,结果稍差(0.7%),而速度减慢大约20%。

    多个不同分辨率的输出层更好 ssd的主要的贡献就是利用不同尺度的特征图,为了评估这个预测的优点,我们移除了这些层并且对比结果,为了更加公平的对比,我们每次移除一层,调整默认狂的数目保证总体不变(8732),如果需要的话,通过堆叠更多不同大小的框来实现。表3显示更少的层准确率会下降,从72.3%下降到62.4%,当我们堆叠不同大小的框在某一层上时,可能边界需要谨慎的处理,我们尝试使用faster rcnn中的策略,忽略边界上的框,我们看到了一些有趣的趋势,如果我们用特别粗糙的特征图,表现力会下降,可能由于我们没有足够大的框来覆盖较大的物体,当我们用更加精细的特征图时,网络的表现开始上升,,如果我们仅仅用conv7预测,表现时最差的,更加确定了这个信息,传播不同尺度的box通过不同的特征图是非常关键的。由于我们的预测不依赖于roi pooling 因而我们没有遇到collapsing bin的问题。Ssd架构利用不同尺度的特征图混合来实现具有竞争性的结果对比faster rcnn,它是使用低分辨率的图像。

    3.3 PASCAL VOC2012

    我们采用和VOC2007上一样的设置,这次,用VOC2012的训练验证集和VOC2007的训练验证集、测试集(21503张图像)训练,在VOC2012测试集(10991张图像)测试。由于有了更多的训练数据,模型训练时以学习率 0.001进行60K次迭代,再减小到 0.0001继续迭代20K次。表4显示了SSD300和SSD512模型的结果。我们看到与我们在VOC2007测试中观察到的相同的性能趋势。我们的SSD300已经优于Fast R-CNN与faster rcnn。通过将训练和测试图像大小增加到512×512,我们比Faster R-CNN高4.5%。与YOLO相比,SSD显著更好,可能是由于使用来自多个特征图的卷积默认框和训练期间的匹配策略,当利用coco训练好的模型进行微调时,ssd512实现80.0%的map,比faster rcnn高出4.2%。

    3.4 COCO

    为了进一步验证SSD架构,我们在COCO数据集上训练了我们的SSD300和SSD512模型。由于COCO中的目标往往较小,因此我们对所有图层使用较小的默认框。我们遵循第2.2节中提到的策略,但是现在我们最小的默认框具有0.15而不是0.2的缩放比例,并且conv4_3上默认框的缩放比例是0.07(例如,对应于300×300图像的21个像素)。

    我们使用trainval35k [21]来训练我们的模型。由于COCO有更多的目标类别,开始时的梯度不稳定。我们首先用0.001学习率进行140K次迭代,再以 0.0001学习率迭代40K次,跟着是 0.00001学习率迭代40k次。表4显示了test-dev2015上的结果。与我们在PASCAL VOC数据集上观察到的类似,SSD300在mAP@0.5和mAP@[0.5:0.95]中优于Fast R-CNN,在 mAP @ [0.5:0.95]与Faster R-CNN接近。然而,mAP@0.5更糟,我们推测,这是因为图像尺寸太小,这阻止了模型精确定位许多小目标。通过将图像大小增加到512×512,我们的SSD512在两个标准中都优于Faster R-CNN。 有趣的是,注意到ssd512 比faster rcnn在mAP@0.75 高5.3%,在mAP@0.5 仅仅高出1.2%,对于较大的物体有更高的AP与AR,但是对于小物体有相对较小的提升。 对比IOU,在较大物体与较小物体上AR提升更加相似。我们猜想faster rcnn在小物体上更加有竞争力,因为它存在两步box的提炼操作。图五显示了我们ssd512模型的感知示例。

    3.5 ILSVRC的最初结果

    我们将我们用于MS COCO的相同的网络架构应用于ILSVRC DET数据集[16]。我们使用ILSVRC2014 DET train和val1来训练SSD300模型[22],我们首先以0.001的学习率迭代320K次训练模型,然后用0.0001进行80k次迭代和0.00001继续训练40k次迭代。我们可以在val2集上实现43.4mAP[20]。再一次的,它验证SSD是高质量实时检测的一般框架。

    3.6 小没有目标准确率的数据增广

    在 faster rcnn中没有连续采样的步骤,对于小目标的分类任务对ssd来说相对难度较大,在2.2节中的数据增广策略对于提升网络的表现力有很大的帮助,特别是对于小数据集,随机裁剪生成策略可以被考虑为“近景拍摄”可以生成更大的训练样本,远景拍摄可以生成更多小的训练样本,我们先放一张图是原始图像的16倍大小在我们做随机裁剪之前充满了均值图像,通过数据增广,我们有了更多的训练图像,我们必须使我们训练迭代次数为原始的二倍,我们会注意到一个持续的增长map2%到3%。特别的图6显示了新的增广策略主要提升在小目标上的准确率。这个结果为进行数据增广后模型的最终结果准确率。

    一个可以选择的提升ssd模型的策略就是设计更好的默认框的并列显示,为了框的位置和大小可以更好的与每个位置的感受野相一致,这是未来的工作。

    3.7 推理阶段

    考虑到从我们的方法生成的大量框,在推理阶段需要高效地执行非最大抑制(nms)。通过使用0.01的置信度阈值,我们可以过滤掉大多数框。然后,对jaccard重叠为0.45的每个类应用nms,并保存每个图像的前200个检测。对于20个VOC类别的SSD300,每个图像该步花费大约2.2毫秒,这接近在所有新添加的层上花费的总时间。

    表7显示了SSD、Faster R-CNN[2]和YOLO [5]之间的比较。Ssd300与ssd512在准确率与速度上均超出了faster rcnn,尽管YOLO可以达到155FPS,但是他有但是他的准确率比我们的方法低了22%左右,ssd是第一个超过70%的实时检查测方法,几乎80%的时间是消耗在基础网络上,因此用更快的基础网络可以实现提升速度,这也可能会令ssd512达到实时的检测速度。

    4 相关工作

    目前有两种已建立的用于图像中目标检测的方法,一种基于滑动窗口,另一种基于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 总结

    本文介绍了SSD,一种用于多个类别的快速单次目标检测器。我们的模型的一个关键特点是使用多尺度卷积边界框输出附加到网络顶部的多个特征图。这种表示允许我们有效地模拟可能的框形状空间。我们实验验证,给定适当的训练策略,更大量的仔细选择的默认边界框得到了性能的提高。我们建立SSD模型,与现有方法[5,7]相比,至少相差一个数量级的框预测位置,尺度和长宽比。我们证明,给定相同的VGG-16基础架构,SSD在精度和速度方面胜过最先进的目标检测器。我们的SSD512模型在PASCAL VOC和MS COCO的精度方面明显优于最先进的Faster R-CNN [2],速度快了3倍。 我们的实时SSD300模型运行在58 FPS,这比当前的实时YOLO[5]更快,同时有显著高质量的检测。

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

    6感谢

    展开全文
  • 翻译SSD论文(Single Shot MultiBox Detector) ,转载仅作交流~
  • SSD Single Shot MultiBox Detector论文翻译
  • SSD 论文详解

    千次阅读 多人点赞 2020-03-12 21:52:37
    声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢! 源论文地址:https://arxiv.org/abs/1512.02325 源论文代码:https://github.com/weiliu89/caffe/tree/ssd 笔者践行代码:【tensorflow版本...
  • 每晚泡脚,闲来无事,所以就边泡边翻译SSD论文,总感觉英文看着不习惯,还是中文好理解,也是和大家一起学习。菜鸟水平有限,恳求大家指出错误之处。本翻译仅作交流之用,请勿用于其他。SSD: Single Shot MultiBox...
  • SSD论文中文版

    2018-08-20 17:24:48
    一种使用单个深层神经网络检测图像中对象的方法被称为SSD,这篇文档是由爱好者帮忙翻译而成的中文版论文,可以深入了解SSD。更多参考资料可点击:https://club.leiphone.com/page/resources
  • SSD: Single Shot MultiBox Detector 论文翻译 目录 摘要 1. 介绍 2. SSD 2.1. 模型 2.2. 训练 3. 实验结果 3.1. PASCAL VOC2007 3.2. 模型分析 3.3. PASCAL VOC2012 3.4. COCO 3.5....
  • SSD英文论文翻译 SSD: Single Shot MultiBoxDetector 2017.12.08 摘要:我们提出了一种使用单个深层神经网络检测图像中对象的方法。我们的方法,名为SSD,将边界框的输出空间离散化为一组默认框,该默认框在每...
  • SSD论文理解

    2017-09-20 21:25:01
    论文翻译:http://blog.csdn.net/Ai_Smith/article/details/52997456?locationNum=2&fps=1论文理解:https://zhuanlan.zhihu.com/p/24954433?refer=xiaoleimlnote代码理解:cafe版本:...
  • 大神刘伟发表的ssd论文,包括引文版和翻译的中文版,适合入门学习ssd的同学阅读学习。
  • SSD: Single Shot MultiBoxDetector 论文翻译

    万次阅读 多人点赞 2017-08-20 16:24:48
    原文地址:http://lib.csdn.net/article/deeplearning/53059 SSD: Single Shot MultiBoxDetector   Wei Liu1 , Dragomir Anguelov2 ,Dumitru Erhan3 , Christian Szegedy3, Scott Reed4 , Cheng-Yang Fu1
  • 论文:Single Shot MultiBox Detector 源码地址: ...论文翻译: https://blog.csdn.net/denghecsdn/article/details/77429978 https://blog.csdn.net/Ai_Smith/article/details/52...
  • SSD翻译.docx

    2020-12-26 13:45:40
    一种使用单个深层神经网络检测图像中对象的方法被称为SSD,这篇文档是由爱好者帮忙翻译而成的中文版论文,可以深入了解SSD
  • 目标检测之SSD:Single Shot MultiBoxDetector详论文翻译

    千次阅读 多人点赞 2018-04-10 21:51:46
    提示:红色标记表示添加的理解;绿色标记表示文章的重点;蓝色标记表示我们需要对这句话做解释,其后会跟着红色的解释;紫色标记是指org预印版论文与正式出版的...注意:如需编译配置SSD-caffe请参看博主博文:http...
  • Temporally Identity-Aware SSD with Attentional LSTM 带有注意力LSTM的时间性身份感知的SSD 摘要 时间目标检测引起了人们的广泛关注,但大多数流行的检测方法无法利用视频中丰富的时间信息。最近,许多算法都有...
  • 除去CVPR20的3D-SSD这篇文章,之前的基本所有的Pointbased的方法都是多阶段的,其中比较出名的工作有CVPR18的F-pointnet,这篇工作是先通过二维检测得到检出的目标,再通过视锥投影到三维点云中,最后采用pointnet...
  • 之前学习过,但是没过多久就忘了,因此决定将该论文翻译一下,以加深印象。 Abstract 我们提出了用单个深度神经网络进行物体检测的方法,称为SSD。在每个特征图中的每个位置,SSD将bbox(bounding boxes)离散化成...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

ssd论文翻译