目标检测-SPPNet

在这里插入图片描述RCNN横空出世之后,人们开始把目标检测的重心放在了神经网络上。但是RCNN有个非常明显的缺点,就是速度慢,以为有2000个候选框需要计算,所以跑了2000次前向传播。这样跑一张图片就需要五十多秒。何凯明老师提出了一种新的思想,大大的提升了性能,这个方法叫做空间金字塔池化。
在这里插入图片描述这个空间金字塔池化使用了比例池化,可以不关心输入大小,也能够输出固定维度的特征,从而代替全连接层.其实就是规定把图片分成几份,传统的池化是规定多少大小为一份,而spp是直接约定分成几份,至于一份的大小就可变了。 另外还有一个改进是特征共享,原先2000个proposal分别进入神经网络去算出2000个特征,这样效率是非常低下的。经过实验spp证明了只需要把原图走一遍神经网络,得出最后一个featuremap,因为有了空间金字塔池化层,不管输入是什么输出大小都是一样的,所以这时候把最后那层featuremap按照比例裁剪,再分别丢进池化层输出特征
在这里插入图片描述先说比例池化,我们可以看到,图中最后那个featuremap经过了三个池化层,,第一个池化层为44,不是指的卷积核大小是44,而是将输入的feature图分成44的做池化,例如使用最大池,那么每个区域取最大值,这样就能输出16个数,这16个数分别是每个区域的最大值,这就是这个池化层输出的结果.第二个池化层为22,那么同样这一层会输出4个数,第三个池化层为1*1,那么会输出一个数,这16+4+1=21个数就是要输出的21个特征.因为他是按照比例去输出的,所以不需要关心图像大小,只要到最后还能被切成这么多块就可以了.
在这里插入图片描述正是因为有了这一特性,我们可以不用关心输入大小了,所以假设上一层卷积输出的featuremap中间随便截取一个小框也能够输入到这个池化层里面。所以我们可以把整张图直接丢进神经网络,算出整张图的featuremap,然后再把候选框那个位置按照比例在featuremap上截取下来,依然能够输入到空间金字塔池化层。我们看图,左边这个车轮在这里,对应的featuremap里的这里,假设我们proposal出来的区域有这个车轮,那么我们直接把他在featuremap上对应的这个区域截取下来,输入到池化层就行了。这样计算量大大的减小了,因为2000个proposal都是从这一个featuremap上抠下来的特征,相当于整个流程只做了一次前向传播。
在这里插入图片描述由于输入大小可变这个特性,spp训练的时候就可以把训练图片按比例缩放,这样可以训练不同尺度的图片,相当于增加了数据量.训练多尺度的时候首先规定几种默认尺度,如224的和180的,先手动设置polling层,训练224的一个回合,然后在更改polling层训练180的,这样来回交替,据验证效果要比一个尺度的更好。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值