SPP笔记

SPP全称为Spatial Pyramid Pooling,即空间金字塔池化,听名字就知道是对RCNN的一种变形,目的是为了解决RCNN输入图像的大小固定(224*224)的问题,因为真实照片中的物体的大小并不都一样,对图像就行wrap或者切割,不可避免会造成图像的失真,从而增大运算结果的误差。

SPP与RCNN最大的不同就是SPP使用了一个全连接层,而不进行微调,并且计算region propsal时使用了多个region,从而只计算一次,避免了RCNN中的重复计算。

1、结构比较:

  RCNN


 SPP


2、RCNN固定输入的原因:

 理论上说conv layers(卷积层)可以接受任意大小的输入,RCNN固定输入的限制来源于fc layers(全连接层)

 spp使用一个spp layers,位于conv layers和fc layers之间,接受任意大小的输入,但是产生固定大小的输出(以匹配全连接层),来取消对输入的限制。

3、SPP的来源

SPP其实很早就应用在CV领域,通过或粗或细的将图片分割成多个多个部分,从而获得他们的特性,但是SPP并不是CNN的一部分,SPP有三大特性:a,接受任意大小的输入 b,可产生固定大小的输出 c,不同于RCNN,SPP采用多个层次的pooling window 。

4、SPP的迭代训练

SPP训练的时候,不是一次输入多个尺寸的图片,而是采用了一个近似的方法,SPP进行多次迭代,每次迭代的时候输入不同的尺寸,但是参数保持一致,从而获得近似结果。主要原因是Cuda和Caffee(GPU)更倾向于训练固定输入尺寸的数据(为了提高结果的准确度)。

5、extract features

RCNN通过深度卷积网络提取每个候选区域的特征,但是因为一张图片要计算几千个(RCNN是2000)候选区域的特征,每区域的像素是224*224,因此当图片数据比较多时,计算量会特别大。

而SPP每个Window只进行一次卷积计算,从而速度相对于RCNN来说,可以提高几百倍。

SPP-Net继承了 deep CNN 的feature maps和SPP对于输入的灵活性,不仅提高了特征提取的速度,也提高了特征提取的精度。

还有一个不同之处,就是SPP-Net获取区域的时候使用的是EdgeBoxes,而RCNN使用的是Selective search。

7、Deep NetWorks

 RCNN-著名的7层网络:前五层是卷积层(conv layers),使用滑动窗口,后两层是全连接层(fc layers),输出为N路Softmax,其中N为种类的数量。卷积层的输出尺寸与RCNN网络的输入尺寸一致

 SPP-Net 

卷积层(conv layers)的输入是任意的,因此卷积层的输出也是任意的,但是全连接层(fc layers)的输入是有尺寸限制的,这里引入了一个概念BOW(Bag-of-Words),BOW本来是用来处理文本数据,假定对于一个文本,忽略其词序和语法,句法,将其仅仅看做是一个词集合,或者说是词的一个组合,文本中每个词的出现都是独立的,不依赖于其他词是否出现。


示意图从下往上看,

首先是输入层(input image),可以输入任意尺寸的图片

然后是卷积层(conv layers),卷积层共有5层,每层都进行卷积运算,直到conv_5(最后一个卷积层),conv5输出该层的特征映射(feature maps),其大小也是任意的(与输入层尺寸一致)

接下来是SPP层

SPP层包含三部分左边的16个蓝色格子,中间4个绿色格子,右边1个紫色格子。

16个蓝色格子中的作用是将conv5输入的特征分为16份(不均等),16x256表示的是channel(SPP对每一层都分成16份)。

中间4个绿色格子,右边1个紫色格子也同理,即将特征分别分成4x256和1x256份。

将特征映射分成若干等分的作用,是做池化操作,一般选择MAX Pooling,即对每一份进行最大池化。

通过图可知,通过SPP层,特征映射被转化成了16X256+4X256+1X256 = 21X256的矩阵,在送入全连接时可以扩展成一维矩阵,即1X10752,所以第一个全连接层的参数就可以设置成10752了,这样也就解决了输入数据大小任意的问题。

当然划分为多少份,我们可以自己设置(不建议)。

8、Training the NetWork

9、SVM 

 SPP和RCNN一样使用ground-truth windows获取不是背景的正样本。

当一个window和一个正样本的iou超过30%时,保留,当与一个负样本的iou超过70%时,移除

10、fine-tune

RCNN,调整所有层

SPP-Net,调整全连接层(fc layers)

11 bbox regression









 




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值