SSD目标检测 原理详解

一 SSD具有如下主要特点:

  1. 从YOLO中继承了将detection转化为regression的思路,一次完成目标定位与分类
  2. 基于Faster RCNN中的Anchor,提出了相似的Prior box;
  3. 加入基于特征金字塔(Pyramidal Feature Hierarchy)的检测方式,即在不同感受野的feature map上预测目标

二 SSD/YOLO区别:

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

    这里写图片描述

三 Prior Box和数据流

在SSD300中引入了Prior Box,实际上与Faster RCNN Anchor非常类似,就是一些目标的预选框,后续通过classification+bounding box regression获得真实目标的位置。
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

四 优点和缺点

SSD算法的优点应该很明显:运行速度可以和YOLO媲美,检测精度可以和Faster RCNN媲美。除此之外,还有一些鸡毛蒜皮的优点,不解释了。这里谈谈缺点:
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去检测小目标,而低级特征卷积层数少,存在特征提取不充分的问题。

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

猜你喜欢

转载自blog.csdn.net/qq_16540387/article/details/81563807