论文阅读: SSD

2018-09-27 14:34:59 浏览数 (1)

Introduction

SSD是第一个在 multi-scale feature map ,也就是常说的 feature pyramid 上 生成anchor 的算法。在论文中提到的“default box”,其实就是“anchor”:

既然第一个意识到可以好好开发 multi-scale feature map,那么SSD一下子对各层feature map进行了大开发。具体地,SSD分别在 conv4_3fc7conv8_2conv9_2conv10_2conv11_2 这六个逐级scale/2×2的feature map上,按照 K 依次等于 466644 来在每层的feature map上逐点生成K个anchor:

作者在文中也做了ablation实验,取六个scale的feature map对SSD效果最好:

然而,在检测算法后续的所有重要工作中,一般只取2~4个scale的逐级feature map。且在同一个算法中进行anchor生成的feature map上,K值 (每个 滑窗 生成的anchor数) 均保持一致 (不像SSD这样一会儿4一会儿6的)。

并且,anchor的size和aspect ratio也大有搞头。不同size和aspect ratio会分别对应不同的效应。SSD也是第一个对此作了研究的:

与YOLOv1 (下面的那个网络) 相比,SSD的basemodel设置为去掉了fc的VGG。

题外话,YOLOv1也探究过拿VGG当做basemodel,当时觉得精度只是稍微提升但是速度慢了不少(因为fc严重拖累了VGG的速度),所以权衡利弊YOLOv1就采用了山寨版的GoogleNet作为basemodel。半年后SSD一出来,在精度和速度上吊打YOLOv1,YOLOv1 (带有fc层) 坐不住了,发现原来去掉fc后的VGG这么好,于是在YOLOv2中不再使用fc,并且也学着SSD,将去掉fc后的vgg作为了basemodel。

Innovation

  • 之前所有的检测算法都是在topmost(即最上层)feature map上进行anchor生成。SSD第一个挖掘和利用了不同scale的feature map,开拓了一个新方向。此文一出,单topmost上取anchor模式成为过往。
  • anchor是Faster R-CNN提出的,但未有深入研究。SSD是第一个发现原来anchor的num、scale、aspect ratio是可以灵活变通的。YOLOv2在SSD的基础上更进一步,直接把如何灵活变通的事情交给k-means来做了。
  • 结构上的创新。SSD是第一个 全fcn (即不带有fc层) 的检测算法。之前所有的终分类和终回归(以别与RPN中的预二分类和预回归)都是从fc层回归出cls和loc的,而SSD丢弃了fc后,直接从conv层回归出cls和loc。后续的one-stage算法(YOLOv2、RetianNet、YOLOv3)均继承了此思想。
  • YOLOv1是第一个one-stage detector,也是第一个real-time detector;而SSD是第一个 high-accuracy real-time detector (然而仅仅是在当时看来)。

Result

在VOC2007上,SSD的检测精度高过当时的精度之王Faster R-CNN (然而这只是论文中给出来的数据,实际上精度差了Faster R-CNN一大截):

在VOC2012上也是如此:

COCO数据集也同样:

最后贴点效果图:

Thinking

  • 后续的SSD本质上用的还是naive的feature map。自从看到FPN发明的“语义加强版feature map”,SSD也引入之,进化成了DSSD。其开头的“D”就是指反卷积 (deconv) 。
  • SSD只是昙花一现。在实际落地中基本没人使用它,主要原因就是精度实在太差,速度再高也没卵用。自从真正的high-accuracy real-time detector —— RetinaNet出现后,SSD就更没有立足之地了。
  • 我是先看YOLOv2再看的SSD。之前YOLOv2中很多令我拍案叫绝的idea,原来大多都在SSD中已被先行探究过了。所以呢,感觉整个Detection的发展脉络就是你踩着我的肩膀上去,我再踩着你的肩膀上去。
  • 最近工作主要是看论文,发现要想把整条Detection的脉络捋清晰,建立自己的一套认知,还是很花功夫的。

[1] SSD: Single Shot MultiBox Detector [2] 深度学习论文笔记:SSD [3] 检测任务专题1: SSD在训练什么 [4] SSD关键源码解析

0 人点赞