《空间金字塔池化》论文笔记

论文原文:《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》

本篇论文是由何恺明大神于2015年发表在TPAMI上的。

1.研究背景

卷积神经网络的输入需要一个固定的尺寸,对于一些图像来说缩放或者裁剪会改变长宽比以及识别的准确率。基于此原因,论文提出了空间金字塔池化,并且提出了SSP-Net的构架。使用SPP-net,我们只从整个图像计算特征图,然后将特征集中在任意区域(子图像)中以生成用于训练检测器的固定长度表示。

由于卷积神经网络的输入为固定尺寸的图片,这就限制了输入图片的比例以及规模。当神经网络用于任意大小的图片时,当前的大多数方法是将输入图像固定到要求的size,通常需要做crop(裁剪)和wrap(铺展)操作。如下图所示:

这里写图片描述

然而裁剪时可能不包括整个对象,铺展时有可能会发生严重形变。因此会影响识别的准确率。

至于卷积神经网络为什么需要固定尺寸的大小?一个CNN通常包括:卷积层,池化层(论文里掉了),全连接层。由于卷积层采用的是滑动窗口操作,并且输出的feature map能够表示空间特征如图2所示。对于卷积层而言,是不需要固定输入图像尺寸的,而且还可以产生各种尺寸的特征图,由于全连接层的定义,导致神经网络需要输入固定的尺寸。
这里写图片描述

并且将空间金字塔池化层置于最后一个卷积层和全连接层之间。
这里写图片描述

2.算法优点

  • SSP能够忽视输入图片的大小产生一个固定大小的输出
  • SSP使用多个尺寸的pooling然而滑动窗口Pooling仅仅使用单个窗口尺寸
  • 由于输入尺寸的灵活性,SSP可以通过不同的尺寸提取已经汇聚的特征。

总结就是SSP不仅可以产生固定尺寸的大小,并且还能够汇聚特征。

3.算法原理

前面提到了使用空间金字塔池化的原因,下面正式开始算法具体原理。空间金字塔其实借空间金字塔首先将图像进行划分,然后在通过Pooling操作提取特征的过程。

输入层:一张任意大小的图片,假设其大小为(w,h)。
输出层:21个神经元。

也就是我们输入一张任意大小的特征图的时候,我们希望提取出21个特征。空间金字塔特征提取的过程如下:

这里写图片描述

如上图所示,当我们输入一张图片的时候,我们利用(4*4,2*2,1*1)的刻度,对一张图片进行了划分。上面示意图中,利用了三种不同大小的刻度,对一张输入的图片进行了划分,最后总共可以得到16+4+1=21个块,我们即将从这21个块中,每个块提取出一个特征,这样刚好就是我们要提取的21维特征向量。

间金字塔池化的过程就是从这21个块中提取最大值,得到一个输出神经元,最后将其固定到21维特征。对于上面每一个刻度我们称为金字塔的一层。每一个图片块的大小称为windows size,需要提取n*n的特征,则windows size的大小为(w/n,h/n)进行池化。

而windows size即为Pooling size的大小

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值