深度学习-SSD算法


详细解析: https://blog.csdn.net/ytusdc/article/details/86577939

一、SSD网络结构

在这里插入图片描述图1 SSD网络架构(精简版)

在这里插入图片描述
图2 SSD网络架构(细节版)
在这里插入图片描述
图3 VGG16网络架构

输入图像必须为300x300的,之后进入VGG16Conv5_3之前的全部网络结构

SSD采用VGG16作为基础模型,并且做了以下修改,如图1所示

  • 分别将VGG16的全连接层FC6和FC7转换成 3x3 的卷积层 Conv6和 1x1 的卷积层Conv7
  • 去掉所有的Dropout层和FC8层
  • 同时将池化层pool5由原来的 stride=2 的 2x2 变成stride=1的 3x3 (猜想是不想reduce特征图大小)
  • 添加了Atrous算法(hole算法),目的获得更加密集的得分映射
  • 然后在VGG16的基础上新增了卷积层来获得更多的特征图以用于检测

算法细节

1、多尺度特征映射
在这里插入图片描述
图4 单层feature map预测和多层特征金字塔预测对比

如图4所示,左边的方法针对输入的图片获取不同尺度的特征映射,但是在预测阶段仅仅使用了最后一层的特征映射;而SSD(右图)不仅获得不同尺度的特征映射,同时在不同的特征映射上面进行预测,它在增加运算量的同时可能会提高检测的精度,因为它具有更多的可能性。

在这里插入图片描述
图5 SSD与Faster-rcnn比较

预测的过程
c表示识别多少个类别,一个default boxs有c个类别加上一个背景识别,有背景得分和物体识别得分。4表示边界框回归参数(x,y,w,h)
在这里插入图片描述
在这里插入图片描述

Faster RCNN存在的问题

  • 对小目标检测效果很差
  • 模型大,检测速度较慢

如图5所示,对于BB(bounding boxes)的生成,Faster-rcnn和SSD有不同的策略,但是都是为了同一个目的,产生不同尺度,不同形状的BB,用来检测物体。对于Faster-rcnn而言,其在特定层的Feature map上面的每一点生成9个预定义好的BB,然后进行回归和分类操作来进行初步检测,然后进行ROI Pooling和检测获得相应的BB;而SSD则在不同的特征层的feature map上的每个点同时获取6个(有的层是4个)不同的BB,然后将这些BB结合起来,最后经过NMS处理获得最后的BB。

猜你喜欢

转载自blog.csdn.net/weixin_48167570/article/details/120810862
今日推荐