目标检测向:SSD: Single Shot MultiBox Detector

15 篇文章 0 订阅

论文地址:https://arxiv.org/abs/1512.02325

代码地址:https://github.com/weiliu89/caffe/tree/ssd

 

Abstract

作者如何定义的SSD?

将bbox的输出空间离散化为一系列位于每张特征图位置上的、不同长宽比和大小的default boxes,对于default boxes,我们可以将其理解为faster r-cnn中的anchor boxes。

SSD这一网络将不同精度的特征图的预测结果进行结合,因此可以很好地处理不同大小目标的情况。

SSD相对于那些需要proposals的方法更为简单的原因是,它完全溢出了proposal生成阶段和后续的像素或者特征重抽样阶段,将所有的计算都集中在一个简单的网络中。

 

Introduction

作者的改进包括以下几点:

  • 用一个较小的卷积核对目标类别和bbox位置的offsets进行预测;
  • 对不同长宽比的检测目标用独立的卷积核进行检测;
  • 为了实现对不同大小目标的检测,将上面提到的卷积核对网络后期阶段的不同大小的特征图进行卷积

 

The Single Shot Detector

Model

SSD基于一个前向传播的卷积神经网络,该网络产生一系列固定大小的bbox以及对应这些bbox的各个目标类别的得分,随后用非极大抑制产生最终的结果。网络较前的阶段主要是基于一个标准的用于进行高质量图片分类的结构(从分类层处进行截断),我们称之为base network。随后作者添加了一些辅助层,使得网络可以具有以下特点:

1.用于检测的特征图大小不一

作者在截断后的基础网络后面添加了卷积特征层。这些层的大小依次递减,并且实现了对不同大小目标的检测。

2.用于检测的卷积检测器

对于一个大小为m x n,通道数为p的特征图,预测一个潜在检测对象的基础元素是一个3 x 3 x p的小卷积核,它可以产生任意一种类别之一的得分或者offsets。这一卷积核在这张特征图的所有m x n个位置都会产生一个值。容易计算得到,当类别数为c,default box的数量为k的特征图上,每一张特征图都将会有(c + 4)kmn个输出。

引用:“算法主网络结构是VGG16,将两个fc层改成conv层,再添加4个conv构成网络结构,对其中6个不同的卷积层的输出分别用两个3 x 3的卷积核进行卷积,一个输出分类用的confidence,每个default box生成21个confidence(对VOC数据);一个输出回归用的localization,每个default box生成4个坐标值(x, y, w, h)。”

Training

Matching Strategy

首先将每一个gt box同其对应的有着最大jaccard overlap的default box对应起来,然后将default box同其所有jaccard overlap大于0.5的gt对应起来。

Training Objective

其中i表示第i个default box,j表示第j个gt box,p表示类别。根据以上提出的Matching Strategy,一定有 

全局损失函数定义为:

其中N为匹配到的defaul boxes个数。当N=0时,认为loss为0。定位损失函数为预测框(l)和真实框(g)之间的Smooth L1损失函数。

置信损失函数是多种类别置信度的softmax损失。

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

 

为defaul boxes设置大小和长宽比

受到前人工作的影响,作者同时使用了浅层和深层特征图进行检测。因此在实验中,可以使用更多的small computational overhead。因此它对小目标检测效果比较好。

作者设定不同的特征图学习负责对对应的不同大小的目标进行检测。假设用m个特征图进行预测。每一个特征图的default boxes的大小计算方式如下:

其中Smin=0.2,Smax=0.9,意味着最浅层的default boxes的大小为0.2,最深层的default boxes的大小为0.9,中间所有层的大小成均匀分布。

对default boxes设定不同的aspect ratios,记为ar ∈{1, 2, 3, 1/2, 1/3}。因此可以计算出default boxes对应的长和宽。

         

对于长宽比为1的请款,作者添加了一种不同大小的default box,其大小为

每一个default box的中心位于,其中|fk|是第k张特征图的大小,

 

Hard negative mining

在将gt同对应的default boxes进行matching之后,大部分的default boxes都是负样本,当潜在的default boxes足够多的时候更是这样。这将导致正负样本比例极度不平衡。此时我们不会选择使用全部的负样本。对每个default box,我们筛选出那些confidence loss最高的那些,保持正负样本比例为1:3。

 

Data augmentation
为了使得模型对于不同输入大小的和形状的目标更为稳健,每个训练样本都会随机地通过以下方法进行取样:

  • 使用完整的原始输入图片;
  • 抽取一个patch,保证同目标的最小jaccard overlap为0.1,0.3,0.5,0.7,0.9;
  • 随机抽取一个patch;

取样中获得的patch大小介于原始图片的[0.1,1]倍之间,长宽比介于[1/2,2]之间。

 

Experimental Results
Base network
所有的实验都基于VGG16。同DeepLab-LargeFOV中类似,作者将fc6和fc7变成了卷积层,从fc6和fc7的参数中抽取子样,将pool5从2 x 2 - s2改为3 x 3 - s1,使用atrous算法来填补holes。移除了所有dropout层和fc8层。

关于atrous算法(https://www.zhihu.com/question/49630217

SSD对类别相似目标效果不太好,部分的可能原因是因为对多种类别共享同一位置。

 

Model analysis

实验证明,多种类型、不同精度的输出层效果更好。在保持default boxes总数不变的情况下,如果在原始遗留的层上stacking更多scales的box时,其效果比不上原来的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值