论文解读:SSD: Single Shot MultiBox Detector

 论文中提供的代码 is available at: https://github.com/weiliu89/caffe/tree/ssd

论文链接:SSD:Single Shot MultiBox Detector

视频讲解:

该论文的contributions:

  1. 比最先进的SSD要快,而且检测的更加准确;比如YOLO。并且比Faster R-CNN准确率更高。
  2. SSD的核心是使用应用于特征图的小卷积滤波器来预测一组固定的默认边界框的类别分数和框偏移量(offsets)
  3. 从不同尺度的特征图中生成不同尺度的预测结果,然后通过宽高比( aspect ratio)分离预测结果。
  4. 对于低分辨率的输入图像效果依旧很好,进一步提高了速度与精度的权衡。
  5. 在数据集PASCAL VOC、COCO和ILSVRC上对不同输入大小(主要是根据输入图像的尺寸进行定义的大小)的模型进行时间和准确性分析,并与一系列最新的先进方法进行比较。

The Single Shot Detector (SSD)

论文解读:SSD: Single Shot MultiBox Detector

图(a)对应的是SSD的输入图像:在训练的时候都指定了对象的真实边框(groundtruth)

图(b)和(c)在不同尺度(8×8和4×4)的feature map中,每个位置的不同长宽比的默认框。

然后对于每个默认边框;预测所有对象类别的偏置和置信度(offsets和confidence)conf:(c1,c2,··· ,cp)

训练时,首先将默认边框和真实边框进行匹配;例如总共匹配了两个边框;为猫匹配一个默认框,为狗匹配了一个默认框,这两个默认框被认为是真的,其余的被认为是假的。如图(a)所示,但是图(a)是真实边框;就是从默认边框中选出和真实框最匹配的哪一个!

loc:∆(cx,cy,w,h) 为默认框的中心点坐标(cx,cy)和边框的宽和高:w和h

1.Model

SSD方法基于一个前向卷积网络,该网络生成一个固定大小的边界框集合,并根据这些框中对象类实例的存在程度进行评分,然后执行一个非最大抑制步骤(NMS),以产生最终的检测结果。早期的网络层基于用于高质量图像分类(在任何分类层之前截断)的标准体系结构,我们将其称为base Network。然后在网络中加入辅助结构,产生以下关键特征的检测:

(1)用于检测的多尺度特征图

在截断的base Network的最后,我们增加了卷积特征层。并且卷积层的大小逐渐减小,因此可以在多个尺度上侦测。并且每个特征层用于检测的卷积模型是不同的。

(2)用于检测的卷积预测器

每个增加的特征层(或者从base Network中提取一个特征层)可以使用一组卷积滤波器产生一组固定的检测预处理。

论文解读:SSD: Single Shot MultiBox Detector

图 2 两种单点检测模型SSD和YOLO的比较;SSD模型在基本网络的末端添加了几个特征层,这些特征层预测不同规模和高宽比的默认边框的偏移量及其相关的置信度。输入尺寸为300×300的SSD明显优于448×448的YOLO,并且在提高速度的同时也提高了VOC2007测试的准确性。

对于m×n×p的特征层来说,基本方法是使用一个3×3×p的小滤波器来进行检测,然后生成一个类别的分数和相对对于默认边框坐标的形状偏移量。(m,n为宽和高,p为通道数)对于每个m×n 的位置都会得出一个输出值;边框的偏置输出值是相对默认边框的每个特征图正相关位置。

(3)默认框和宽高比

将一组默认的边界框与每个特征映射单元关联起来,用于网络顶部的多个功能映射。默认框以卷积方式平铺特征映射,因此每个框相对于其相应单元格的位置是固定的。在每个feature map单元格中,预测相对于单元格中的默认框形状的偏移量,以及每个类的分数,这些分数表示每个框中存在一个类实例。具体地说,对于给定位置上 k 之外的每个方块,我们计算 c 类分数和相对于原始默认方块形状的 4 个偏移量。然后特征图的每个位置周围应用(c + 4)k个过滤器,从而产生m×n特征图的(c + 4)kmn输出。论文中默认框类似于fast R-CNN中使用的锚框,然后将它们应用于不同分辨率的几个特征图。允许在几个特征图中使用不同的默认框形状,可以有效地离散可能的输出框形状空间。

2.Training