《SSD: Single Shot MultiBox Detector》学习笔记

SSD论文笔记

问题的提出:

如图1(参考于作者的ppt)所示,在SSD网络未出现之前,类似于Faster R-CNN和YOLO是当前较流行的算法。但是,仍然在实时性上突破不了,同时,SSD之前算法对于速度的改进是在牺牲精度的前提下的,因此作者希望构建一个网络,实现目标检测的实时和高精度的权衡,因此SSD网络和《SSD: Single Shot MultiBox Detector》这篇论文应运而生。

《SSD: Single Shot MultiBox Detector》学习笔记_第1张图片

图1 一些目标检测算法的检测性能和速度图示

文章的核心思想

该论文的改进包括使用不同宽高比检测的单独的预测器(滤波器),预测边界框中的对象类别和偏移,并且将这些滤波器应用于网络后期的多个特征图,以便执行多尺度检测。通过这些修改,我们可以使用相对低分辨率的输入实现高精度检测,进一步提高处理速度。

文章的贡献

  • 该论文构造了SSD,一个单次检测器,用于多个类别,比先前技术的单次检测器(YOLO)速度更快,并且更准确很多,实际上和使用regionproposal、pooling的更慢技术一样准确(包括Faster RCNN)
  •  SSD方法的核心是使用小卷积滤波器来预测特征图上固定的一组默认边界框的类别分数和位置偏移。
  • 为了实现高检测精度,我们从不同尺度的特征图产生不同尺度的预测,并且通过宽高比来明确地分离预测。
  • 总之,这些设计特性得到了简单的端到端训练和高精度,进一步提高速度和精度的权衡,即使输入相对低分辨率图像。
  • 实验包括在PASCAL VOC,MS COCO和ILSVRC上评估不同输入大小下模型耗时和精度分析,并与一系列最新的先进方法进行比较。

SSD网络的检测流程

《SSD: Single Shot MultiBox Detector》学习笔记_第2张图片

图2 SSD检测流程

如图2所示,SSD方法基于前馈卷积网络,其产生固定大小的边界框集合和框中对象类别的分数,接着是非最大化抑制步骤以产生最终检测。下面进行检测的详细步骤说明:

SSD网络结构

如图3所示

《SSD: Single Shot MultiBox Detector》学习笔记_第3张图片

图3 SSD网络结构

SSD网络=基础网络+辅助结构

基础网络:VGG16(stage1~stage5)

辅助结构:fc6,fc7à(conv6,conv7)

添加4个卷积层(conv6_2,conv7_2,conv8_2,conv9_2)

多尺度特征图检测

将卷积特征层添加到截断的基础网络的末尾。这些层尺寸逐渐减小,得到多个尺度检测的预测值。检测的卷积模型对于每个特征层是不同的(参见在单个尺度特征图上操作的Overfeat [4]和YOLO[5])。如图3所示的后四层。

检测的卷积预测器

如图4所示,产生类别的分数或相对于默认框的坐标偏移,并用3X3Xp的卷积核产生类别的分数和默认框的位置偏移。

《SSD: Single Shot MultiBox Detector》学习笔记_第4张图片

 

 

 

 

默认框    

《SSD: Single Shot MultiBox Detector》学习笔记_第5张图片

图5 feature map cell和default boxes示意图

对于mxn的feature map cell +(C+4)Xk filtersà(c+4)xkxmxn个输出

类似于Faster-RCNN里的achors

《SSD: Single Shot MultiBox Detector》学习笔记_第6张图片

图6 default box的个数

对SSD的训练

《SSD: Single Shot MultiBox Detector》学习笔记_第7张图片

图6 SSD的训练中的匹配策略和目标函数

匹配策略

采用jaccard overlap,jaccard overlap如图所示

当jaccard overlap>0.5时标注为正样本,其余标注为负样本

添加这些匹配简化了学习问题:它使得有多个重叠默认框时网络预测获得高置信度,而不是要求它选择具有最大重叠的那个。

选择默认框的比例和横宽比

通过组合许多特征图在所有位置的不同尺寸和宽高比的所有默认框的预测,我们具有多样化的预测集合,覆盖各种输入对象尺寸和形状。其具体的计算方式如下

《SSD: Single Shot MultiBox Detector》学习笔记_第8张图片

这样会产生6个default boxes

Hard negative mining 

使用每个默认框的最高置信度对它们进行排序,并选择前面的那些,使得正负样本之间的比率最多为3:1,以代替使用所有的负样本。我们发现,这导致更快的优化和更稳定的训练。

数据增广

为了使模型对于各种输入对象大小和形状更加鲁棒,每个训练图像通过以下选项之一随机采样:

  •  使用整个原始输入图像
  •  采样一个片段,使对象最小的jaccard重叠为0.1,0.3,0.5,0.7或0.9。
  •  随机采样一个片段

总结

《SSD: Single Shot MultiBox Detector》学习笔记_第9张图片

 

你可能感兴趣的:(Object,detection)