前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >论文阅读: SSD

论文阅读: SSD

作者头像
JNingWei
发布2018-09-27 14:34:59
1.6K0
发布2018-09-27 14:34:59
举报
文章被收录于专栏:JNing的专栏JNing的专栏

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关键源码解析

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Introduction
  • Innovation
  • Result
  • Thinking
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档