SPP-net阅读笔记

成就

  • 相比于深度卷积神经网络,可以不管图像的大小而生成固定长度的表示
  • 对变形的物体也很有效
  • 在准确性相当的前提下,速度比R-CNN更快(24-64× faster overall)

做法

在R-CNN实现思路的基础上,在最后一个卷积层和全连接层之间添加一个SPP层,由SPP层生成固定长度的输出,并将其输入到全连接层中。

SPP的特性

  • 无论输入的大小,SPP都能生成固定长度的输出
  • SPP使用多级spatial bins(多个尺寸的pooling)
  • SPP能够对以任意比例提取的特征进行池化
    SPP-net阅读笔记_第1张图片

SPP-net工作原理
在对图片提取特征时,使用的是如上图所示的多级bin块( 1 ∗ 1 , 2 ∗ 2 , 4 ∗ 4 1*1,2*2,4*4 112244),就是将一张图片分别用 1 ∗ 1 , 2 ∗ 2 , 4 ∗ 4 1*1,2*2,4*4 112244的方式分割提取特征,然后对每个区域做Max pooling,这样就可以获得1+4+16中特征向量。由于conv5层filter的数目是256,所以每个特征向量的维度是256。再将这 1 × 256 − d , 4 × 256 − d , 16 × 256 − d 1\times256-d,4\times256-d,16\times256-d 1×256d,4×256d,16×256d的特征向量拼接起来,得到 21 × 256 − d 21\times256-d 21×256d的特征向量。
即不论图片的尺寸和大小,只要固定了spatial bins,最后得到的特征向量的维度都是相同的。

使用SPP层训练网络

单一规格训练
首先使用固定输入( 224 × 224 224\times 224 224×224)。
对于一个给定了大小的图像,需要先计算SPP所需的bin的大小。假如 c o n v 5 conv_5 conv5之后feature maps的大小为 a × a a\times a a×a,并且pyramid的等级为 n × n n\times n n×n的bins,那么window size= ⌈ a / n ⌉ \lceil a/n \rceil a/n,stride= ⌊ a / n ⌋ \lfloor a/n \rfloor a/n.
这一步的目的是为了实现多级池化的行为。(Ps:不理解)
多规格训练
本文使用了两种规格( 180 × 180 180 \times 180 180×180 224 × 224 224\times 224 224×224),本文是将原来的 224 × 224 224\times 224 224×224调整到 180 × 180 180 \times 180 180×180,而且这两个网络在每一层的参数是相同的,即在训练过程中,利用共享参数的两个输入大小固定的网络来实现输入大小可变的SPP-net.
(无法体会到下面步骤的独特意义不写了)

SPP-net应用于目标识别

  • R-CNN的弊端:对于每张图片提取出来的2000个窗口,R-CNN都要在每个窗口上重复的应用深度神经网络,时间耗费很大。
  • SPP-net实现:本文在整张图片上只提取一次feature maps,然后在每个feature map的每个候选窗口上应用SPP,对这个候选窗口池化一个固定长度的表示。在此过程中,由于神经网络只应用了一次,所以时间耗费大大减少。

需要学习

  • 实验部分没有看( P 12 P_{12} P12之后)
  • SPP-net的ROI映射

如有问题 请多多指正

你可能感兴趣的:(论文,目标识别)