深度学习论文笔记:SSD

时间:2022-12-28 16:44:04

知识点

  • Jaccard overlap, Jaccard similarity:
    Jaccard coefficient:
    J(A,B)=|AB||AB|

    A,B分别代表符合某种条件的集合:两个集合交集的大小/两个集合并集的大小,交集=并集意味着2个集合完全重合。
    所以Jaccard overlap其实就是IoU。

Abstract

  • SSD: 利用单个深度神经网络的目标检测方法。将边界框的输出空间离散化为一组默认框,在每个feature map位置上有着不同的宽高比和尺度。
  • 在预测的时候,网络针对每个默认框中的每个存在的对象类别产生分数,并且对框的进行调整以更好地匹配对象形状。
  • 在多尺度图像处理方面,网络组合来自具有不同分辨率的多个feature map的预测,以自然地处理各种尺寸的对象。
  • 相比于基于object proposal的方法,SSD是简单地,因为它能够完全消除*proposal generation和后续的像素或者特征重冲采样阶段*,所有的计算都封装在单独的网络中。

Introduction

  • 目前的目标检测系统是以下方法的变体:假设边界框(bounding box),对每个框进行像素或特征重取样,采用高质量分类器。
  • 评估速度方法:SPF (seconds per frame).
  • 提出第一个基于深度网络的不需要为BB进行resample pixels or features的目标检测器,并能够同样达到高准确率。
  • 本论文的贡献(具体看论文):
    • 引入了SSD。
    • SSD的核心。
    • 为了实现高检测准确率,引入了在不同尺度和横纵比的feature maps上进行预测。
    • End-to-end training 以及高准确率,机试在低分辨率图片。
    • 在PASCAL VOC、COCO和ILSVRC上进行试验,具有很强的竞争力。

The Single Shot Detector (SSD)

Model

  • 基于前向卷积神经网络,产生固定尺寸的BB集,以及这些BB中存在物体的分数,之后跟随者一个非极大值抑制步骤来产生最终检测。
  • 网络前面的几层是基于标准的用于产生高质量图像分类的架构,我们成为基础网络。我们给网络然后添加了辅助的结构来产生检测结构。辅助网络具备以下关键特征:

    • 用于检测的多尺寸特征图。在基础网络后面添加额外几个卷积层,在尺寸上逐层递减,从而能够在不同尺寸上检测。(Overfeat和YOLO都只是在单独尺寸的feature map上进行操作。)

    • 用来预测的卷积预测器(Convolutional predictors)。

    深度学习论文笔记:SSD

    • 默认的boxes和aspect ratios。我们将一组默认边界框与每个feature map单元关联,用于网络顶部的多个特征映射。在每个feature map单元格中,我们预测相对于单元格中的默认框形状的偏移,以及指示每个框中存在类实例的每类分数。(本论文中的default boxes类似于Faster R-CNN中的anchor boxes,然而我们将他用于不同分辨率的几个feature maps中)

    深度学习论文笔记:SSD

Training

  • 训练SSD和训练使用region proposals的典型检测器之间的关键区别是:ground truth信息需要分配给固定的检测器输出集合中的特定输出。

  • 训练涉及到:

    • choosing the set of default boxes and scales for detection。
    • hard negative mining。
    • data augmentation strategies(数据增加策略)。

Matching strategy

在训练过程中,对于每一个ground truth,我们都从默认框中选择每个不同的位置、aspect ratio、scale的bounding boxes。首先匹配最好的jaccard overlap的default box(类似于MultiBox),但与MultiBox不同的是,我们然后匹配default box与任何ground truth,只要jaccard overlap高于阈值(0.5)。这样简化了学习问题。

Training objective

整体的代价函数是localization loss和confidence loss之和:

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

  • N是匹配的default boxes的数量,N=0时,loss=0。

  • localization loss是predicted box和ground truth box之间的Smooth L1 loss(类似于Faster R-CNN)。我们预测default box的中心 (cx,cy) ,以及宽度 (w) 和长度 (h)

    深度学习论文笔记:SSD

  • confidence loss是多个类confidence (c) 之间的softmax loss

    深度学习论文笔记:SSD

  • 权值 α 通过交叉验证设为1。

Choosing scales and aspect ratios for default boxes

  • 不同于将照片处理为不同尺寸再结合结果的方法,本论文通过利用单个神经网络中不同层的feature maps,可以达到同样的效果,同时可以在所有尺寸*享权值。

  • 利用较低层的feature maps可以提高semantic segmentation质量,应为较低层往往可以捕捉到更精细的细节。

  • 我们同时使用较低和较高层的feature maps来进行检测。

  • 网络中不同层的feature maps有着不同的接受域的尺寸。

  • 假设我们想要使用m个feature maps用来检测,则每个feature map的default boxes的scale可以这样计算:

    深度学习论文笔记:SSD

  • 通过结合在许多feature maps上所有位置上的所有的有着不同scale和aspect ratio的default boxes,我们可以产生对不同物体大小和形状的各种预测。

  • 如下图中,狗在8x8的feature map中没有匹配的default box,因此在训练中会被作为负样本,但是在4x4的feature map中有着匹配的feature map。

    深度学习论文笔记:SSD

Hard negative mining

  • 通过匹配阶段后,default boxes中会产生大量的negatives,尤其是当可能的default boxes数量非常大时。这导致positive和negative时间严重的不平衡。
  • 我们将negative examples的default boxes通过其最高的confidence loss进行排序,然后选择较高的几个,使negative examples和positive examples之间的比例保持在3:1之间。这样会更快的优化和更稳定的训练。

Experimental Results

  • 所有的实验都是基于VGG16。
  • 将fc6和fc7转化为卷积层,从fc6和fc7中取样子参数。
  • 将pool5从2x2-s2转化为3x3-s1。
  • 使用a trous algorithm来填补“holes”。
  • 移去了所有的dropout层和fc8层。
  • 用SGD进行微调。
  • 学习率 103 ,动量0.9,weight decay是0.0005,batch size是32.

PASCAL VOC2007

  • “xavier” method来初始化新加入的层的参数。
  • 通过detection analysis tool分析后,显示SSD有着更少的localization错误,因为其能够直接去学习regress物体的形状,并分类,而非使用两个互相解耦的步骤。
  • 然而,SSD对于相似的物体会有更多的混淆,特别是animals,一部分原因。
  • SSD对bounding boxes尺寸是十分敏感的。提升输入尺寸可能会提升小物体检测,但依旧有许多空间提升。

Model analysis

  • Data augmentation很重要。
  • 更多的default boxes的形状可能会更好。
  • Atrous is faster:如果不使用更改后的VGG-16,虽然结果一样,但是速度回降低20%。
  • 不同分辨率中多个输出层会更好。SSD的主要贡献是在不同输出层上使用不同尺度的默认框。

PASCAL VOC2012

  • 和PASCAL VOC2007一样的实验设置。
  • 在2012 trainval+2007 trainval+2007 test上进行训练,在2012 test上进行测试。

COCO

  • COCO中的物体比PASCAL VOC中的物体小,所以我们在所有层上使用更小的default boxes

Data Augmentation for Small Object Accuracy

  • 对SSD来说,对小物体分类的任务相对Faster R-CNN来说会更难。
  • Data augmentation对于特高性能是十分显著的,尤其是小数据及。
  • 改进SSD的另一种方法是设计更好的平铺默认框(tiling of default boxes),使其位置和尺度更好地与特征图上每个位置的接收场对准。

Inference time

  • 考虑到从我们的方法生成的大量框,有必要在推理期间有效地执行非最大抑制(nms)。
  • 通过使用0.01的限制阈值,我们可以过滤大多数bounding boxes。 然后我们应用nms,每个类别的jaccard重叠0.45,并保持每个图像前200个检测。
  • 80%的前向传递时间被花费在了base network,所以使用一个更快的base network可以提高速度。
  • 有两种已建立的用于图像中的对象检测的方法类别,一种基于滑动窗口,另一种基于region proposal classification。

Conclusion

  • 我们模型的一个关键特性是使用多尺度卷积边界框输出附加到网络顶部的多个特征图。