2015
SSP-Net:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

Introduce

  • R-CNN为什么检测速度这么慢?

    • 对图像提完Region Proposal(2000个左右)之后将每个Proposal当成一张图像进行后续处理(CNN提特征+SVM分类)
      实际上对一张图像进行了2000次提特征和分类的过程!

    • 将Region Proposal在原图的位置映射到卷积层特征图上,这样对于一张图像我们只需要提一次卷积层特征,然后将每个Region Proposal的卷积层特征输入到全连接层做后续操作.

    • 但是全连接层输入必须是固定的长度
      CNN 需要固定输入图像的尺寸

      • 卷积层对于图像是没有尺寸限制要求的,全连接层需要固定输入向量的维数
      • 全连接层输入向量的维数对应全连接层的神经元个数,所以如果输入向量的维数不固定,那么全连接的权值参数个数也是不固定的,这样网络就是变化的,而在卷积层中,我们需要学习的kernal filter 参数个数是固定的。
  • SPP为的就是解决上述的问题,做到的效果为:不管输入的图片是什么尺度,都能够正确的传入网络.

    • 思路:CNN的卷积层是可以处理任意尺度的输入的,只是在全连接层处有限制尺度——换句话说,如果找到一个方法,在全连接层之前将其输入限制到等长,那么就解决了这个问题.

    • 在最后一个卷积层的顶部添加一个SPP层。SPP层池化特征并生成固定长度的输出,然后将其输入全连接层(或其他分类器)。

    • 将 图像划分为从更精细到更粗的级别的分区,并聚合其中的局部特征

    • 无论输入大小如何,SPP都能够生成固定长度的输出;

    • SPP使用多个不同大小的滑动窗口

    • 可以以可变尺寸进行池化特征提取

【目标检测系列:四】SSP-Net论文阅读 解析
  • 把原来的特征图分别分成 4×4=16块,2×2=4块,1×1=1块(不变),总共21块

取每块的最大值作为代表,即每张特征图就有21维的参数,总共卷积出来256个特征图,则送入全连接层的维度就是21×256。

Train

  • single-size

在conv5之后的特征图为:13x13(aa)
金字塔层bins: n
n
将pooling层作为sliding window pooling。
windows_size=[a/n] 向上取整 , stride_size=[a/n]向下取整。

【目标检测系列:四】SSP-Net论文阅读 解析

如果输入改成180x180,这时候conv5出来的reponse map为10x10,类似的方法,能够得到新的pooling参数。

  • Multi-size training

两个尺度进行训练:224224 和180180
两种尺度下,在SSP后,输出的特征维度都是(9+4+1)x256,参数是共享的,之后接全连接层即可。

【目标检测系列:四】SSP-Net论文阅读 解析

【目标检测系列:四】SSP-Net论文阅读 解析

缺点

  • 在fune-tuning阶段不能对SPP层下面所有的卷积层进行后向传播
【目标检测系列:四】SSP-Net论文阅读 解析

Reference

https://blog.csdn.net/v1_vivian/article/details/73275259

相关文章:

  • 2021-11-20
  • 2021-08-12
  • 2021-04-03
  • 2021-04-10
  • 2021-07-17
  • 2021-11-04
  • 2021-12-29
  • 2021-09-05
猜你喜欢
  • 2021-05-18
  • 2022-01-09
  • 2021-08-24
  • 2021-10-27
  • 2021-08-04
  • 2021-04-15
  • 2021-07-20
相关资源
相似解决方案