D4-SPPNet论文解读

SPPNet(Spatial Pyramid Pooling)

1、网络架构

在这里插入图片描述

R-CNN:

  • Image → crop/warp → conv → fc → output

SPPNet:

  • Image → conv → SPP → fc → output

如上图,crop/warp把图像变换成固定大小,会导致图像不必要的失真,造成精度损失。

CNN主要由conv和fc层组成,卷积层以滑动窗口方式运行,输出表征激活的空间排列的feature map。

conv层不需要固定大小,fc层需要采用固定输入大小(固定神经元个数),致使CNN前需要先调整区域大小。

而SPP层可以生成固定大小,放在fc层前,满足fc层固定输入的要求。

换句话说,就是在网络层次结构的更深层(卷积层和完全连接层之间)执行一些信息“聚合”,以避免在开始时进行crop/warp。

SPP对深度CNNs特性:

  1. SPP能够生成固定长度的输出,而不受输入大小的影响,而之前深度网络使用的滑动窗口池则不能;
  2. SPP使用多级空间bin,滑动窗口池使用单一窗口大小。多层次池已被证明是可靠的对象变形;
  3. 由于输入尺度的灵活性,SPP可以对不同尺度提取的特征进行聚类。

在R-CNN中,需要重复的将CNN应用到warp之前的原始图像,会造成计算冗余。而在SPPNet中,只需要运行一次,然后通过SPP层在feature map上提取特征。速度快了100倍。

2、SPP

在这里插入图片描述

上图(a)是原始图像(b)是经过conv后的特征映射,箭头是该图最强响应和对应位置(c)是最强响应所对应的原图中的目标区域。

在这里插入图片描述

上图256就是经过conv5后的特征映射数目,跟前面filter=175, 55, 66, 118类似。该网络将CNN中的pooling5改为SPP层方便输出固定大小给fc6

在这里插入图片描述
conv5的输出(假设大小13x13)作为SPP层的输入,SPP第一阶段相当于分别将输入并行执行3个pooling,

pool1x1的size=13x13,stride=13,
pool2x2的size=7x7,stride=6,
pool3x3的size=5x5,stride=4 。

最后再以串联的形式将结果赋给fc6作为输入,向量大小为(1x1 + 2x2 + 3x3)x 13^2 。

fc层再以固定1x4096向量输出。

感受野(receptive field)是指某一层输出结果中一个元素所对应的上一层的区域大小。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吕同学吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值