【每日一网】Day6:SPPNet简单理解

SPPNet

算法背景

深度卷积神经网络都需要输入固定尺寸的图像,当面对任意尺寸或者比例的图像的时候,识别的精确度就会降低,SPPNet创造了一种“空间金字塔池化“的池化策略,消除了以上的限制。
SPPNet的结构可以产生固定大小的表示,而不关心输入图像的尺寸或者比例,金字塔池化对物体的形变很鲁棒。
SPPNet在物体检测上的表现也很突出,我们只需要从整张图片上计算一次特征图,然后队任意尺寸的区域进行特征池化,以产生一个固定尺寸的表示用来训练检测器,这个方法避免了反复计算卷积特征

算法过程

较于普通cnn来说,spp层放在conv后,在全链接层之前。如图所示在这里插入图片描述
SPP层对特征进行池化,并产生固定长度的输出,这个输出再喂给全连接层(或其他分类器)。换句话说,在网络层次的较后阶段(也就是卷积层和全连接层之间)进行某种信息“汇总”,可以避免在最开始的时候就进行裁剪或变形。

SPP优点

1、SPP能在输入尺寸任意的情况下产生固定大小的输出,而以前的深度网络[3]中的滑窗池化(sliding window pooling)则不能;
2、SPP使用了多级别的空间箱(bin),而滑窗池化则只用了一个窗口尺寸。多级池化对于物体的变形十分鲁棒[15];
3、由于其对输入的灵活性,SPP可以池化从各种尺度抽取出来的特征。
4、sppnet开发了一个简单的多尺度的训练方法,先使用分别训练固定输入尺寸的多个网络,这些网络之间共享权重,然后再一起来代表着个单一网络。每个epoch,我们针对一个给定的输入尺寸进行网络训练,然后再下一个epoch ,再切换到另一个尺寸。这样训练同样可以收敛,并且能达到更好的测试精度

网络结构

卷积层特征图

sppnet通过对conv5层的特征,发现卷积特征其实保存了空间位置信息,并且每个卷积核负责提取不同的特征,比如图中(b)的第175个卷积核负责提取汽车窗口特征,而第55个卷积核则负责提取圆形特征。

在这里插入图片描述

SPP层

空间金字塔是SPPNet的核心,其主要目的是对任意输入尺寸的特征图产生固定大小的输出。文中的思路是对任意大小的feature map首先利用16x16,4x4,1x1进行最大池化,池化后的特征拼接到一个固定维度的输出。以满足全链接层的需要。

spp应用于图像分类

SPPnet能够接受任意尺寸的图片的输入,sppnet做出了多阶段多尺寸的训练方法,在每一个epoch的时候,我们先将图像锁防盗一个size,然后训练网络,训练完整后保存网络的参数,然后resize到另外一个尺寸,并在之前权值的基础上再次训练模型,综合了多个尺寸的特征信息。

spp应用于目标检测

1、首先通过selective search产生一系列的region proposal。
2、然后训练多尺寸识别网络用以提取区域特征,其中处理方法是每个尺寸的最短边大小在尺寸集合中:

在这里插入图片描述

训练的时候通过上面提到的多尺寸训练方法,也就是在每个epoch中首先训练一个尺寸产生一个model,然后加载这个model并训练第二个尺寸,直到训练完所有的尺寸。空间金字塔池化使用的尺度为:11,22,33,66,一共是50个bins。

3、在测试时,每个region proposal选择能使其包含的像素个数最接近224*224的尺寸,提取相 应特征。
由于我们的空间金字塔池化可以接受任意大小的输入,因此对于每个region proposal将其映射到feature map上,然后仅对这一块feature map进行空间金字塔池化就可以得到固定维度的特征用以训练CNN了。关于从region proposal映射到feature map的细节我们待会儿去说。

4、训练SVM,BoundingBox回归

不足

与rcnn一样,spp也需要训练CNN提取特征,然后使用svm进行特征分类,ss算法进行目标框的选定速度是很慢的,因此在fast rcnn与faster rcnn中有改进。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值