SPP-Net(空间金字塔网络),令目标检测更加高效

空间金字塔网络SPP-Net

卷积神经网络中要求输入固定大小的数据,略显呆板,还可能会降低准确率。于是作者给网络配备了另一个池化策略(spatial pyramid pooling)消除了需要输入固定大小图像的要求。
论文地址:Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun
如果固定输入大小的话,需要对输入图像进行裁剪或者放缩,这可能会导致不想要的几何畸变。于是作者就想找到一种策略,使输入图像的大小是可变的,进而思考如何怎样才能实现呢。
整个CNN可以大致分成两个部分,一个是卷积部分,另一个是全连接部分,而导致网络需要固定输入大小的原因就来自第一层全连接层

于是,作者在第一层全连接层前面引入了“spatial pyramid pooling(SPP)”将原来的池化层替换掉了,移除了固定大小输入的限制。SPP可以生成固定大小的输出,所以可以fed into全连接层中。

SPP性质:
①生成固定大小的输出,无论输入大小是如何的
②SPP使用mutil-level的空间bins
③SPP可以汇集(pool)不同尺度上提取的特征
这些性质提升了网络的识别准确率。

网络主要由一下改进。

1、配备了Spatial Pyramid Pooling Layer

在这里插入图片描述
Multi-level Pooling:上图则表示有三个等级(level,分别是1×1,2×2,4×4,那么总共有21个bins),图中的256指的是filter数量(即通道数)每个等级分配了固定的bin,在每个bin上执行最大池化,得到一系列值展开(flatten)并concate起来,就得到了一个固定长度的特征向量。关于每个level的池化的窗口大小以及步长的计算如下。假设输入数据的空间形状是a×a的,n表示n×n个bins。通过实验发现,multi-level pooling也提升了网络在分类任务上的准确率。
在这里插入图片描述
第一个是下取整,第二个是上取整。

2、Multi-size training

因为spp-Net可以接收任意大小的图片,于是作者试图用不同size的图片来训练网络。作者在实际训练过程中的操作是:每个batch训练某一个size的图片,通过不断的迭代,可以像single-size训练一样收敛。并通过实验发现,Multi-size训练得到的模型表现更好。
在这里插入图片描述
无论是在top-1 error,还是在top-5error上,multi-size的表现都要比single-size的表现好一些。
另外,作者还讨论了如果直接将一张完整的图片然后放缩后再进行inference,发现比裁剪的效果要好一些
在这里插入图片描述

3、应用SPP-Net做目标检测

相对于R-CNN,SPP-Net在目标检测的速度上有了非常大的进步,原因在于spp-net不是对每个region proposal进行inference了,而是对整张图片做inference,得到feature map后,再将region proposal映射到feature map上,这样极大地减少了检测时间。
在这里插入图片描述
bb表示bounding box regression,ft表示fine-tuning。1-sc则表示由一个scale测试得到的结果,5-sc表示由五个scale测试得到的结果。

4、总结:

①作者将spatial pyramid pooling引入卷积神经网络中用来消除输入大小固定这个约束。
②消除了输入大小固定的约束后,作者讨论了不同大小的图像,不同完整程度的图像在训练过程中,在测试过程中对模型表现的影响。最终发现,由多个大小scale训练得到的网络表现会更好
③将spp-net应用到了目标检测当中,通过将region proposal直接映射到feature map优化了检测速度,大大提升了检测速度,相对于R-CNN。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值