[深度学习]Object detection物体检测之SSD(8)

目录

综述

SSD与其他算法的区别

SSD的主要贡献

1.Multi-Scale Feature Maps

2.Splitting the Region Space

3.Data Augmentation

SSD300网络结构

SSD网络的缺点



论文全称:《SSD: Single Shot MultiBox Detector》

论文地址:https://arxiv.org/pdf/1512.02325.pdf

综述

今天解读的这篇了论文是著名的SSD目标检测算法,和YOLO一样是一种one stage的算法,区别于rcnn,fast rcnn,faster rcnn等two stage 的算法。通过下图可以看到SSD300和SSD512(指的是输入图像的分辨率)在检测速度和精度方面均是state of art的。

SSD与其他算法的区别

下图可以清晰的表明了几种流行的目标检测算法之间的区别:

  • MulitiBox使用全连接来预测多个boxes的objectness(是否为一个物体)以及每一个box的offset(与真实值的偏移程度),然后再预测每一个box的物体类别;
  • YOLO使用全连接预测多个boxes的objectness以及每一个box的offset,而且同时再预测每一个box的物体类别;
  • Faster R-CNN使用卷积层预测多个boxes的objectness以及每一个box的offset,然后再预测每一个box的物体类别;
  • SSD使用卷积层预测多个boxes的objectness以及每一个box的offset,同时预测每一个box的物体类别;

SSD的主要贡献

1.Multi-Scale Feature Maps

在不同大小卷积层之后分别预测多个boxes的objectness以及每一个box的offset,大的卷积图可以检测到小的物体,小的卷积图更倾向于检测大的物体。

2.Splitting the Region Space

与YOLO每一个单元都要自适应边界框不同,SSD采用了Faster R-CNN里面的anchor的方法,对于每一个单元检测都去匹配最近似的一个先验anchor,因为不同的Groud Truth的长宽比不同需要很多时间去拟合,采取anchor的方法更容易回归。最后mAP得到了2.5的增长。

 

3.Data Augmentation

利用水平翻转,随机裁剪,颜色扭曲和随机扩展可以做到数据增强而提高检测精度。

SSD300网络结构

SSD/YOLO区别:

  • YOLO在卷积层后接全连接层,即检测时只利用了最高层Feature maps(包括Faster RCNN也是如此)
  • SSD采用金字塔结构,即利用了conv4-3/conv-7/conv6-2/conv7-2/conv8_2/conv9_2这些大小不同的feature maps,在多个feature maps上同时进行softmax分类和位置回归
  • SSD还加入了Prior box,类似Faster R-CNN的anchor机制

SSD网络的缺点

  1. 需要人工设置prior box的min_size,max_size和aspect_ratio值。网络中prior box的基础大小和形状不能直接通过学习获得,而是需要手工设置。而网络中每一层feature使用的prior box大小和形状恰好都不一样,导致调试过程非常依赖经验。
  2. 虽然采用了pyramdial feature hierarchy的思路,但是对小目标的recall依然一般,并没有达到碾压Faster RCNN的级别。作者认为,这是由于SSD使用conv4_3低级feature去检测小目标,而低级特征卷积层数少,存在特征提取不充分的问题。

参考文献:

http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf

https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/single-shot-detectors/ssd.html

https://arxiv.org/pdf/1711.06897.pdf

https://zhuanlan.zhihu.com/p/31427288

猜你喜欢

转载自blog.csdn.net/sinat_33487968/article/details/84304127
今日推荐