目标检测(一)—— SSD(single shot multibox detection)

SSD是一种高效的one-stage目标检测算法,通过多尺度特征预测和卷积进行检测。它在不同层级的特征图上进行预测,结合default box和Anchor策略,利用Smooth L1和Softmax Loss进行损失计算。文章详细介绍了SSD的基本结构、设计理念、Gluon实现以及训练和损失函数。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1 Inference

Single shot指明了SSD算法属于one-stage方法,MultiBox指明了SSD是多框预测。

SSD是一种one-stage方法,其主要思路是均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,然后利用CNN提取特征后直接进行分类与回归,整个过程只需要一步,所以其优势是速度快。

在这里插入图片描述


2 基本结构与设计理念

2.1 default box & feature map cell

  • feature map cell 就是将 feature map 切分成 8 × 8 8×8 8×8 或者 4 × 4 4×4 4×4 之后的一个个格子;
  • 而 default box 就是每一个格子上,一系列固定大小的 box,即图中虚线所形成的一系列 boxes。

在这里插入图片描述

2.2 Model

SSD 是基于一个前向传播 CNN 网络,产生一系列 固定大小(fixed-size) 的 bounding boxes,以及每一个 box 中包含物体实例的可能性,即 score。之后,进行一个 非极大值抑制(Non-maximum suppression) 得到最终的 predictions。

**SSD**


在这里插入图片描述

SSD 300中输入图像的大小是300x300,特征提取部分使用了VGG16的卷积层,并将VGG16的两个全连接层转换成了普通的卷积层(图中conv6和conv7),之后又接了多个卷积(conv8_1,conv8_2,conv9_1,conv9_2,conv10_1,conv10_2),最后用一个Global Average Pool来变成1x1的输出(conv11_2)。


2.3 设计理念

2.3.1 多尺度特征预测

  • 采用多尺度特征图用于分类和位置回归:
    SSD将conv4_3、conv7、conv8_2、conv9_2、conv10_2、conv11_2都连接到了最后的检测、分类层做回归。

    CNN网络一般前面的特征图比较大,后面会逐渐采用stride=2的卷积或者pool来降低特征图大小。如下图所示,一个比较大的特征图和一个比较小的特征图,它们都用来做检测。这样做的好处是比较大的特征图来用来检测相对较小的目标,而小的特征图负责检测大目标,8x8的特征图可以划分更多的单元,但是其每个单元的先验框尺度比较小,可检测相对较小的目标。
    在这里插入图片描述


2.2.2 采用卷积进行检测

SSD直接采用卷积对不同的特征图来进行提取检测结果。对于形状为 m × n × p m\times n \times p m×n×p的特征图,只需要采用 3 × 3 × p 3\times 3 \times p 3×3×p 这样比较小的卷积核得到检测值。

使用一系列 convolutional filters,去产生一系列固定大小的 predictions,
产生的 predictions有以下两种:

  • 归属类别的一个得分
  • 相对于 default box coordinate 的 shape offsets。

2.2.3 Anchor

Anchor的生成:

  1. 特征图的每个点都会生成一大一小两个正方形的anchor。 小方形的边长用min_size来表示,大方形的边长用 m i n _ s i z e ∗ m a x _ s i z e \sqrt{min\_size*max\_size} min_sizemax_size 来表示(min_size与max_size的值每一层都不同)。
    在这里插入图片描述

  2. 多个长方形的anchor。 长方形anchor的数目在不同层级会有差异,他们的长宽可以用下面的公式来表达,ratio的数目就决定了某层上每一个点对应的长方形anchor的数目:

    w i d t h = r a t i o ∗ m i n _ s i z e width=\sqrt{ratio}*min\_size width=ratio min_size
    l e n g t h = 1 / r a t i o ∗ m i n _ s i z e length=1/\sqrt{ratio}*min\_size length=1/ratio min_size
    上面的min_size和max_size由下式计算得到, S m i n = 0.2 , S m a x = 0.95 Smin=0.2,Smax=0.95 Smin=0.2Smax=0.95,m代表全部用于回归的层数,比如在SSD 300中m就是6。第k层的 m i n _ s i z e = S k min\_size=S_k min_size=

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值