【目标检测】SSD 论文理解Single Shot Detector

摘要

  SSD算法:
  1.把边界框的输出空间离散化为一系列的默认框,这些默认框在每个特征图的像素位置上,有不同的长宽比和大小。
  2.在预测时,网络会根据每个默认框中每个对象类别的存在程度生成分数,并对该框进行调整,以更好地匹配对象形状。
  3.网络结合了来自不同分辨率的多个特征图的预测,以自然地处理不同大小的对象。
  对比:
  与需要区域建议的方法相比,SSD比较简单,因为它完全消除了提议生成阶段和随后的像素或特征重采样阶段,将所有计算封装在一个网络中。
  SSD易于训练,并且易于集成到需要检测组件的系统中。实验结果证实,与利用额外的对象建议步骤的方法相比,SSD具有竞争的准确性,并且速度更快,同时为训练和推理提供了统一的框架。

1. 介绍

  目前最先进的目标检测系统:
  都是以下方法的变体:假设边界框,对每个边界框重新采样像素或特征,并应用高质量的分类器。检测基准上占据主导地位的算法都基于Faster R-CNN,虽然这些方法很精确,但是计算量太大,速度慢。到目前为止,显著提高速度的代价是显著降低检测精度。
  本文贡献:
  - 速度:提出一种基于深度网络的单阶段的端到端目标检测方法,不需要边界框建议和随后的像素或特征重新采样阶段(两阶段算法),因此比之前最先进的检测器(YOLO)更快。
  - 精度:提出一系列的改进显著地提高准确度。
   改进1::使用一个小的卷积过滤器来预测特征图上固定的一组默认边界框的类别分数和位置偏移。
   改进2:不同尺度特征图上进行不同尺度的检测,这种改进使得即使使用相对较低分辨率的输入也能实现高精度检测。最终的系统提高了实时检测的准确性,从YOLO的63.4%提高到SSD的74.3%。

2. SSD

2.1 模型

   SSD方法基于前馈卷积网络,该网络生成一系列固定大小的边界框集合和框中目标类别对应的分数,并根据非极大值抑制产生最终的检测结果。
   SSD结构:早期网络都是基于高质量的图像分类的标准架构,然后向网络添加辅助结构。
  1.基础网络:早期的网络层基于高质量图像分类(在任何分类层之前截断)的结构,称为基础网络,用于特征提取。
  2.辅助结构:在基础网络后加入辅助结构,用于目标检测。

2.1.1 多尺度特征图用于检测

  在截断的基础网络(VGG16)后,增加若干用于预测的卷积特征层,用于提取不同尺度的特征图,这些特征层的尺寸逐渐缩小。对于每个特征层用于预测检测的卷积模型是不同的。

2.1.2 用于检测的卷积预测器

   针对用于预测的特征图使用一系列卷积过滤器生成一系列固定的预测结果----类分数、边界框偏移。
   例:对于具有p个通道的m×n大小的特征层,将3×3×p的卷积核应用到m×n个位置,每个位置的输出值包括类的分数(比如共有c类目标,会得出c+1个score,SSD是要计算背景的得分)、相对于默认框的坐标偏移量。(YOLO采用全连接层预测类别分数以及框的位置)
在这里插入图片描述

2.1.3 默认框和高宽比

   在特征图的每个单元位置应用一组默认框,即默认框以卷积方式平铺特征图。具体来说,在特征图的每个位置应用k个默认框,每个框进行预测:计算c类分数和相对于原始默认框的4个偏移量。因此特征图的每个位置需要产生(c+4)×k个值,对于m×n的特征图产生(c+4)×k×m×n个输出值。在多个特征图中使用不同的默认框形状,可以有效地离散可能的输出框形状空间。
   YOLO和SSD边界框预测对比:
  (1)Yolo中:每个网格单元预测多个边界框,但预测都是相对这个网格单元本身,形状是多变的,Yolo需要在训练过程中自适应目标的形状。
  (2)SSD借鉴Faster R-CNN中anchor的理念,设置一组尺度或长宽比不同的先验框,但是将它们应用于不同分辨率的几个特征图。预测的边界框是以这些先验框为基准的,在一定程度上减少训练难度。SSD也允许在不同特征图中使用不同的默认框形状,可以有效地离散可能的输出框形状空间。

          在这里插入图片描述
  如图:在具有不同尺度(例如图(b)和图©中的8×8和4×4)的若干特征图中的每个位置处评估不同宽高比的默认框集合。对于每个默认框,预测对所有对象类别((c1,c2,…,cp))概率和形状偏移和置信度。

2.2 训练

2.2.1 匹配策略

   在训练过程中,首先要确定训练图片中的真值框(真实目标)与哪个(哪些)先验框来进行匹配,与之匹配的先验框将负责预测该真值框包含的目标。
   YOLO和SSD的匹配策略对比:
  (1)Yolo:真值框的中心落在哪个单元格,该单元格中与其IOU最大的边界框负责预测它。
  (2)SSD:先验框与真值框的匹配原则主要有两点。
   原则1:为图片中的每个真值框,找到与其IOU最大的先验框,则该先验框与该真值框匹配并表示为正样本
  这个原则首先保证了每个真值框一定与某个先验框匹配。与真值框匹配的先验框为正样本(实则是先验框所对应的预测边界框为正样本)。
   原则2:对于剩余未匹配的先验框,若和某个真值框的 IOU 大于某个阈值(一般是0.5),那么该先验框也与这个真值框进行匹配并表示为正样本。
   原则2意味着某个真值框可能与多个先验框匹配,但一个先验框只能匹配一个真值框,如果多个真值框与某个先验框 IOU 大于阈值,那么先验框只与IOU最大的那个先验框进行匹配。
  先验框没有与任何真值框进行匹配,那么该先验框就是负样本。如果仅使用第一个原则匹配,很多先验框会是负样本,正负样本极其不平衡

2.2.2 训练目标

   总体目标损失函数为定位损失(loc)和置信损失(conf)的加权和:
              在这里插入图片描述
  N为匹配的默认框数。如果N = 0, 损失设为0。
  定位损失: 使用平滑L1损失

            在这里插入图片描述
  置信度损失: 采用softmax损失。
          在这里插入图片描述

2.2.3 选择合适尺寸和比率的先验框

   为了检测不同的尺度的对象,可以利用单一网络中几个不同层的特征图进行预测,这种方法使得对象共享参数。
   虽然网络中不同层次的特征图具有不同的接受域大小,在SSD框架中默认框不必对应于每一层的实际接受域。假设要用m个特征图来预测,每个特征图下默认框的尺度计算如下:
                     在这里插入图片描述

   其中Smin是 0.2,表示最低层的刻度为0.2,Smax是 0.9,表示最高层的刻度为0.9,在这两者之间的所有层都有规定的间隔。  对默认框应用不同的长宽比ar∈{1,2,3,1/2,1/3}。
  每个默认框的宽度
                      在这里插入图片描述
  每个默认框的高度
                      在这里插入图片描述
  长宽比为1的情况,额外添加了一个默认框,尺度和高宽为
                      在这里插入图片描述
  结果是每个特征图有6个默认框。每个默认框的中心:
                      (i+0.5 |fk|,j+0.5 |fk|)
  其中|fk|是第k个方块特征图的大小,i, j∈[0,|fk|)。
  通过对来自许多特征图的默认框的预测进行组合,得到一组不同的预测,包括各种输入对象的大小和形状。例如,上图中,狗匹配的是4×4 feature map中的一个默认框,而不是8×8 feature map中的任何一个默认框。

2.2.4 难例挖掘

   在匹配步骤之后,大多数默认框都是负样本,特别是在可能的默认框数量很大的情况下。这在正样本和负样本之间引入了一个显著的不平衡。难例挖掘:对于负样本的默认框的最高置信度排序,并选择最重要的那些作为正样本,这样负样本和正样本的比例最多是3:1。这将导致更快的优化和更稳定的训练。

2.2.5 数据增强

  为了使模型对各种输入对象的大小和形状具有更强的鲁棒性,对图像进行随机水平翻转,随机裁剪,随机采集块域等处理。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值