SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记)

SSD系列算法原理介绍
SSD算法介绍:
Single Shot MultiBox Detector(One-stage方法)
- Wei Liu在ECCV 2016提出
- 直接回归目标类别和位置
- 不同尺度的特征图上进行检测
- 端到端的训练
- 图像的分辨率比较低,也能保证检测的精度
SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记)_第1张图片
SSD系列算法原理介绍
SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记)_第2张图片

  • 主干网络:VGGNet
  • 多尺度Feature Map预测
  • Default bounding boxes的类别分数、偏移量
    首先,SSD会包含一个主干网络,VGG16为SSD目标检测的主干网络,这里的主干网络主要作用到了第五层卷积,也就是第五个尺度上的第三个卷积层的输出结果。这里的输出结果也作为了下几个卷积层的输入,这里采用多尺度的feature map预测,也就是在进行预测的时候,会针对接下来的六个不同的尺寸来分别进行预测,这六个尺度分别包括上图的六个连线,也包含了6个feature map尺寸。19 * 19 到 10 *10通过下采样得到。最后通过NMS对检测结果进行分类和筛选。

主干网络介绍

  • VGG、ResNet、MobileNets等,各种卷积神经网
  • 将VGG最后两个FC改成卷积,并增加4个卷积层。
    虚线框里为主干网络。SSD主干网络不仅可以使用VGG,还可以使用ResNet这种更优秀的卷积神经网络结构来提取相应的特征;还可以采用一些轻量级的网络提高目标检测时间和压缩计算量,如MobileNets。
    此外,在使用VGG这样的网络时候会去掉FC层,对于VGG包含了两个FC层,因为传统的完整的VGG这样的网络结构通常是用来处理分类任务的,最终会采用FC层将最终的feature map映射到向量上去,实际这个向量就对应当前需要分类的物体所对应在不同类别的概率分布,因此在目标检测的任务上不需要这样的分类过程,所以将相应的FC层去掉,进而,会增加更多的卷积层来引入更多的不同尺度的 feature map作为最终检测层的一个输入来提高模型的一个性能。

多尺度Feature Map预测:

  • 不同层的feature map

  • Prior box:类别概率和坐标(x,y,w,h)
    后六层的位置。

    原始网络会针对这六种不同尺度的feature map进行预测,38 *38,19 *19,10 *10,5 *5,3 *3,1 *1,分别作为后续预测网络的输入,不同尺度的网络通常会进行下采样,对于每一层的feature map,我们会输入到相应的后续的预测网络中(倒数第二个灰色框),在后续网络中会包含一个Prior box的提取过程,这里的Prior box对应了faster RNN的Anchor的概念,也就是在Prior box中,每一个feature map相对应的一个点,都会作为一个cell,这样的cell也将它命名为一个anchor,以这个cell为中心,会通过等比放缩方法来找到它在原始的图像的位置,并且以这个点为中心提取不同尺度的Bounding Box,这些不同尺度的Bounding Box则定义为Prior box,对于每一个Prior box可以通过与真值的比较,能够拿到它的label,对于每一个Prior box,会分别预测相应的类别概率和坐标值。假设C类,最终将会输出维度为:C+4,如果当前的feature map大小为m *n,意味着有 m *n 个Anchor,每一个Anchor都提取出k个Prior box的话,那当前的 feature map的输出则为(C +4) *k * m *n维

你可能感兴趣的:(SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记))