Single Shot MultiBox Detector论文翻译【修改】

这几天读了SSD论文的原理部分,看了别人的翻译,发现很多应该都是google直接翻译过来的,有些地方读的不是很通顺,自己就在自己的理解和搜索的基础上对我看的那篇翻译做了一些修改。【原文地址:http://noahsnail.com/2017/12/11/2017-12-11-Single%20Shot%20MultiBox%20Detector%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91%E2%80%94%E2%80%94%E4%B8%AD%E8%8B%B1%E6%96%87%E5%AF%B9%E7%85%A7/

SSD: Single Shot MultiBox Detector

摘要

我们提出了一种使用单个深度神经网络来检测图像中的目标的方法。我们的方法命名为SSD,将边界框的输出空间离散化为不同长宽比的一组默认框该默认框在每个特征图位置有不同的宽高比和尺寸。在预测时,网络会在每个默认框中为每个出现的目标类别生成分数,并对框进行调整以更好地匹配目标形状。此外,网络还结合了不同分辨率的多个特征映射的预测,自然地处理各种尺寸的目标。相对于需要目标提出【object proposals】的方法,SSD非常简单,因为它完全消除了提出生成和随后的像素或特征重新采样阶段,并将所有计算封装到单个网络中。这使得SSD易于训练和直接集成到需要检测组件的系统中。PASCAL VOC,COCO和ILSVRC数据集上的实验结果证实,SSD对于利用额外的目标提出步骤的方法具有竞争性的准确性,并且速度更快,同时为训练和推断提供了统一的框架。对于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也具有更高的精度。代码获取:https://github.com/weiliu89/caffe/tree/ssd

评价指标不知道是什么的看这篇文章:https://blog.csdn.net/qq_36396104/article/details/85230012

1. 引言

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

本文提出了第一个基于深度网络的目标检测器,它不对边界框假设的像素或特征进行重采样,并且与其它方法有一样精确度。这对高精度检测在速度上有显著提高(在VOC2007测试中,59FPS和74.3%74.3%的mAP,与Faster R-CNN 7FPS和73.2%73.2%的mAP或者YOLO 45 FPS和63.4%63.4%的mAP相比)。速度的根本改进来自消除边界框提出和随后的像素或特征重采样阶段。我们并不是第一个这样做的人(查阅[4,5]),但是通过增加一系列改进,我们设法了之前尝试的方法的准确性。我们的改进包括使用小型卷积滤波器来预测边界框位置中的目标类别和偏移量,使用不同长宽比检测的单独预测器(滤波器),并将这些滤波器应用于网络后期的多个特征映射中,以执行多尺度检测。通过这些修改——特别是使用多层进行不同尺度的预测——我们可以使用相对较低的分辨率输入实现高精度,进一步提高检测速度。虽然这些贡献可能单独看起来很小,但是我们注意到由此产生的系统将PASCAL VOC实时检测的准确度从YOLO的63.4%63.4%的mAP提高到我们的SSD的74.3%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网络架构的上部指出。对于具有p个通道的大小为m×n的特征层,使用3x3xp卷积核卷积操作,产生类别的分数或生成相对于默认框的坐标偏移。在应用卷积核运算的m×n大小位置处,它会产生一个输出值。边界框偏移输出值是相对于默认框测量,默认框位置则相对于特征图(查阅YOLO[5]的架构,该步骤使用中间全连接层而不是卷积滤波器)。

?

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

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

?

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

2.2 训练

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

匹配策略。在训练过程中,我们需要建立真实标签和默认框之间的对应关系,并相应地训练网络。对于每个实际边界框,我们从默认边界框中选择,这些框会在位置,长宽比和尺度上变化。我们首先将每个实际边界框与具有最好的Jaccard重叠(如MultiBox[7])的默认框相匹配。与MultiBox不同的是,我们匹配默认边界框与实际边界框的Jaccard重叠高于阈值(0.5)的默认边界框。这简化了学习问题,允许网络在有多个重叠的默认边界框时获得高置信度,而不是要求它只挑选具有最大重叠的一个边界框。

训练目标函数。SSD训练目标函数来自于MultiBox[7,8],但我们将其扩展到可以处理多个对象目标类别。以?表示第i个默认边界框与类别p的第j个实际标签框相匹配。在上面的匹配策略中,我们可以得出?意味着可以有多于一个的与第j个真实标签框相匹配的默认框。总体目标损失函数是定位损失(loc)和置信度损失(conf)的加权和:

?

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

?

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

?

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

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

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

?

其中smin为0.2,smax为0.9,意味着最低层具有0.2的尺度,最高层具有0.9的尺度,并且在它们之间的所有层是规则间隔的。我们为默认边界框添加不同的长宽比,并将它们表示为ar∈1,2,3,1/2,1/3。我们可以计算每个边界框的宽度(?)和高度(?)。对于长宽比为1,我们还添加了一个默认边界框,其尺度为?,从而在每个特征图位置得到6个默认边界框。我们将每个默认边界框的中心设置为(?),其中|fk|是第k个平方特征映射的大小,?。在实践中,也可以设计默认边界框的分布以最适合特定的数据集。平铺默认边界框也是一个开放性的设计。

通过组合许多特征图在所有位置上的具有不同尺寸和宽高比的默认框的预测,我们具有不同多样化的预测集合,涵盖各种输入对象尺寸和形状。例如,在图1中,狗被匹配到4×4特征图中的默认边界框,而不是8×8特征图中的任何默认框。这是因为那些边界框有不同的尺度,但不匹配狗的边界框,因此在训练期间被认为是负样本。

难例挖掘【hard negative mining】。在匹配步骤之后,大多数默认边界框为负样本,尤其是当可能的默认边界框数量较多时。这导致了训练期间正负样本的严重不均衡。我们不使用所有的负样本,而是使用每个默认边界框的最高置信度loss来对它们排序,并挑选前面的置信度,以便负样本和正样本之间的比例至多为3:1。我们发现这会带来更快的优化和更稳定的训练。

数据增强。为了使模型对各种输入目标大小和形状更鲁棒,每张训练图像都是通过以下选项之一进行随机采样的:

  • 使用整个原始输入图像。
  • 采样一个图像块,使得与目标之间的最小Jaccard重叠为0.1,0.3,0.5,0.7或0.9。
  • 随机采样一个图像块。

每个采样图像块的大小是原始图像大小的[0.1,1],长宽比在1212和2之间。如果实际边界框的中心在采用的图像块中,我们保留实际边界框与采样图像块的重叠部分。在上述采样步骤之后,除了应用类似于文献[14]中描述的一些光度变形之外,将每个采样图像块调整到固定尺寸并以0.5的概率进行水平翻转。

原文地址:https://www.cnblogs.com/GrPhoenix/p/10258332.html

时间: 2024-11-06 07:26:42

Single Shot MultiBox Detector论文翻译【修改】的相关文章

SSD(single shot multibox detector)算法及Caffe代码详解[转]

这篇博客主要介绍SSD算法,该算法是最近一年比较优秀的object detection算法,主要特点在于采用了特征融合. 论文:SSD single shot multibox detector论文链接:https://arxiv.org/abs/1512.02325 算法概述: 本文提出的SSD算法是一种直接预测bounding box的坐标和类别的object detection算法,没有生成proposal的过程.针对不同大小的物体检测,传统的做法是将图像转换成不同的大小,然后分别处理,最

SSD+caffe︱Single Shot MultiBox Detector 目标检测(一)

作者的思路就是Faster R-CNN+YOLO,利用YOLO的思路和Faster R-CNN的anchor box的思想. . 0 导读 (本节来源于BOT大赛嘉宾问答环节 ) SSD 这里的设计就是导致你可以一下子可以检测 8 张图,FasterRCNN 一下子只能检测 1 张图片,这样的话会导致会有 8 张图片的延迟.但是我觉得如果你用 FasterRCNN 的话,你可以优化前面的这个,在实际使用的时候可以把这个网络简化一下.YOLO 做了这样一些设计,在做 3×3×256 的运算之前先有

SSD: Single Shot MultiBox Detector

By Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg. Introduction SSD is an unified framework for object detection with a single network. You can use the code to train/evaluate a network for o

[Berkeley]弹性分布式数据集RDD的介绍(RDD: A Fault-Tolerant Abstraction for In-Memory Cluster Computing 论文翻译)

摘要: 本文提出了分布式内存抽象的概念--弹性分布式数据集(RDD,Resilient Distributed Datasets).它同意开发者在大型集群上运行基于内存的计算.RDD适用于两种应用,而现有的数据流系统对这两种应用的处理并不高效:一是迭代式算法,这在图应用和机器学习领域非经常见.二是交互式数据挖掘工具.这两种情况下.将数据保存在内存中可以极大地提高性能.为了有效地实现容错,RDD提供了一种高度受限的共享内存,即RDD在共享状态的时候是基于粗粒度的转换而不是细粒度的更新(换句话说就是

分布式系统领域经典论文翻译集

分布式领域论文译序 sql&nosql年代记 SMAQ:海量数据的存储计算和查询 一.google论文系列 1.      google系列论文译序 2.      The anatomy of a large-scale hypertextual Web search engine (译 zz) 3.      web search for a planet :the google cluster architecture(译) 4.      GFS:google文件系统 (译) 5.  

深度学习论文翻译解析(一):YOLOv3: An Incremental Improvement

原标题: YOLOv3: An Incremental Improvement 原作者: Joseph Redmon Ali Farhadi YOLO官网:YOLO: Real-Time Object Detection https://pjreddie.com/darknet/yolo/ 论文链接:https://pjreddie.com/media/files/papers/YOLOv3.pdf YOLOv3论文地址:https://arxiv.org/abs/1804.02767 小编是一

深度学习论文翻译解析(五):Siamese Neural Networks for One-shot Image Recognition

论文标题:Siamese Neural Networks for One-shot Image Recognition 论文作者: Gregory Koch   Richard Zemel Ruslan Salakhutdinov 论文地址:https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf 声明:小编翻译论文仅为学习,如有侵权请联系小编删除博文,谢谢! 小编是一个机器学习初学者,打算认真研究论文,但是英文水平有限,所以论文翻译中用到了Goo

Mesh R-CNN 论文翻译(原理部分)

毕设做Mesh R-CNN的实现,在此翻译一下原论文.原论文https://arxiv.org/pdf/1906.02739.pdf. 摘要 二维感知的快速发展使得系统能够准确地检测真实世界图像中的物体.然而,这些系统在2D中进行预测,却忽略了世界的3D结构.与此同时,三维形状预测的进展主要集中在合成基准(synthetic benchmarks)和孤立目标(isolated objects).我们结合这两个领域的进步.我们提出了一个能够检测真实世界图像中的物体并生成一个给出该物体的完整三维形状

论文翻译之--- 软件设计师怎样使用标记来帮助提醒和重新查找

最近以来有个学习任务,就是翻译一篇关于软件工程相关的论文.我选择了一篇How Software Developers Tagging to Support Remingding and Refinding.由于本人水平有限,基本直译,有很多不准确不通之处.希望读到文章的人批评指导,大家交流改进,在此基础之上使得翻译和我个人的能力得以提高.我记录了自己工作的时间,确实这篇文章的翻译耗费了我一定的时间.文章来自IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VO