Single Shot MultiBox Detector论文翻译——中文版

SSD: Single Shot MultiBox Detector

摘要

我们提出了一种使用单个深度神经网络来检测图像中的目标的方法。我们的方法命名为SSD,将边界框的输出空间离散化为不同长宽比的一组默认框和并缩放每个特征映射的位置。在预测时,网络会在每个默认框中为每个目标类别的出现生成分数,并对框进行调整以更好地匹配目标形状。此外,网络还结合了不同分辨率的多个特征映射的预测,自然地处理各种尺寸的目标。相对于需要目标提出的方法,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

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网络架构的上部指出。对于具有pp通道的大小为m×nm \times n的特征层,潜在检测的预测参数的基本元素是3×3×p3 \times 3 \times p的小核得到某个类别的分数,或者相对于默认框坐标的形状偏移。在应用卷积核的m×nm \times n的每个位置,它会产生一个输出值。边界框偏移输出值是相对每个特征映射位置的相对默认框位置来度量的(查阅YOLO[5]的架构,该步骤使用中间全连接层而不是卷积滤波器)。

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

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

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

2.2 训练

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

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

训练目标函数。SSD训练目标函数来自于MultiBox目标[7,8],但扩展到处理多个目标类别。设xpij={1,0}x_{ij}^p = \lbrace 1,0 \rbrace是第ii个默认边界框匹配到类别pp的第jj个实际边界框的指示器。在上面的匹配策略中,我们有∑ixpij≥1\sum_i x_{ij}^p \geq 1。总体目标损失函数是定位损失(loc)和置信度损失(conf)的加权和:

L(x,c,l,g)=1N(Lconf(x,c)+αLloc(x,l,g))(1)

L(x, c, l, g) = \frac{1}{N}(L_{conf}(x, c) + \alpha L_{loc}(x, l, g)) \tag{1}其中N是匹配的默认边界框的数量。如果N=0N=0,则将损失设为0。定位损失是预测框(ll)与真实框(gg)参数之间的Smooth L1损失[6]。类似于Faster R-CNN[2],我们回归默认边界框(dd)的中心偏移量(cx,cycx, cy)和其宽度(ww)、高度(hh)的偏移量。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Petrichor的专栏

深度学习: 数据预处理

为了使得最终的数据向量落在 [0,1] 或 [ -1,1] 的区间内(根据数据情况而定)。

1463
来自专栏量子位

万字长文|如何直观解释卷积神经网络的工作原理?

作者:YJango 日本会津大学|人机交互实验室博士生 量子位 已获授权编辑发布 该文是对卷积神经网络的介绍,并假设你理解前馈神经网络。 如果不是,强烈建议读完...

3167
来自专栏AI研习社

以不同的思考侧重介绍卷积神经网络

关于卷积神经网络的讲解,网上有很多精彩文章,且恐怕难以找到比斯坦福的CS231n(http://t.cn/RyhpHjM)(CS231n 2017雷锋字幕组已制...

3954
来自专栏AI科技大本营的专栏

干货 | YJango的卷积神经网络——介绍

作者 | YJango 整理 | AI科技大本营(rgznai100) 原文 - https://zhuanlan.zhihu.com/p/27642620 P...

2916
来自专栏AI科技评论

干货 | YJango的 卷积神经网络介绍

AI科技评论按:本文来源 知乎,作者:YJango,AI科技评论授权转载。 PS:YJango是我的网名,意思是我写的教程,并不是一种网络结构。。 关于卷积神经...

3347
来自专栏和蔼的张星的图像处理专栏

3. 经典卷积网络之GooleInceptionNet

GooleInceptionNet首次出现是在2014年的ILSVRC的比赛中,当时是第一名,最大的特点就是控制计算量的同时获得了比较好的分类性能--top-5...

1112
来自专栏量化投资与机器学习

【R机器学习】一种基于K近邻法的集成学习算法概要

编辑部 大家期待已久的R语言版块终于和你们见面了。本期是我们R语言编辑部Chen 编辑的文章。希望大家有所收获! 1、引言 构建量化策略,首先需要找到具有所谓...

19710
来自专栏磐创AI技术团队的专栏

目标检测算法上手实战

从广义上说,计算机视觉就是“赋予机器自然视觉能力”的学科。计算机视觉与人工智能有密切联系,但也有本质的不同。人工智能更强调推理和决策,但至少计算机视觉目前还主要...

4306
来自专栏机器之心

学界 | 堆叠解卷积网络实现图像语义分割顶尖效果

选自arXiv 机器之心编译 参与:路雪 本文介绍了一种堆叠解卷积网络(Stacked Deconvolutional Network),它可用于高效的图像语义...

3937
来自专栏计算机视觉战队

CVPR | 经典再现,全内容跟踪

今天给大家带来的是CVPR会议上一些经典网络的再现,希望可以给感兴趣的朋友带来一些帮助,也可以给大家带来一些经典的回顾,知识的巩固,谢谢! ---- R-CN...

3004

扫码关注云+社区