论文阅读: SPPNet

Introduction

R-CNN中,通过在原图先抠取出很多的像素块,再分别单独进行特征抽取的方式来一个个生成proposal,很低效:

SPPNet则改成了直接先对整张图片进行特征抽取。再在这一大张feature map上,接上一个SPP layer:

和R-CNN一样,SPPNet的输入也包括两部分:

  • 1batch的输入图像
  • selective search算法对应每个输入图像生成的一系列proposal

另外,SPPNet还设计了全新的SPP layer,通过“池化”方式来统一“proposal的size”。 而在R-CNN中,则是通过“warp”方式来统一“proposal的size”。

该layer详细结构如下图红框部分:

假设最后一个卷积层输出的feature map tensor的size为 W×H×CW×H×CW\times H\times C ,那么红框部分其实就是 滑窗size 为 W/4×H/4×CW/4×H/4×CW/4\times H/4\times C 的 average pooling:

将该size的滑窗滑过全feature map tensor所pooling得到的tensor,沿channel方向一根根抽取出来,头尾拼接:

再用 W/2×H/2×CW/2×H/2×CW/2\times H/2\times C 的滑窗 和 W×H×CW×H×CW\times H\times C 的滑窗 在同一张feature map tensor上进行average pooling 。

其中,后者 (红框部分) 相当于 global average pooling (全局平均池化)

最后,三种size的average pooling会生成 16+4+1=2116+4+1=2116+4+1=21 根vector。 把这些vector头尾相接,并送入fc6层,即完成了SPP layer的使命:

SPP layer的设计有着“multi-scale”的影子,但在几个月后的Fast R-CNN中被弃用。也就意味着Fast R-CNN主动放弃了multi-scale。

Innovation

SPPNet有两个最大的创新点:特征抽取共享化SPP layer

  • 特征抽取共享化 :大大简化了原本R-CNN设计中的巨大计算量,让原本需要分别单独进行特征抽取的各proposal可以放在一块,一起一次性完成特征抽取。后续所有的检测网络,无不继承了此思想。可以说,SPPNet推动了Detection的发展。
  • SPP layer :该layer可以 适应任意size和宽高比的输入图像

Result

在VOC 2007上的结果:

SPPNet检测效果图:

Thinking

SPPNet有两大划时代的贡献:

  • 特征抽取共享化;
  • 对RoI进行pooling。

SPPNet是一个被人忽视的杰出贡献。具体来说:

  • 第一次提出了网络前半部分的 特征抽取共享化 。使得特征抽取不再是瓶颈。几个月之后的 Fast R-CNN 正是吸收了这部分的核心精华并进行了进一步的改进。
  • 对RoI进行pooling,使得检测网络可以输入任意size的图片。因为从输入图片到fc之间契入了对RoI的pooling,使得fc的存在也无法写死输入图片的size。

SPP layer有着明显的缺陷。因为:

  • pooling后得到的一根根tensor并没有按原先的位置排放成阵列,而是直接头尾相接,从而放弃了重要的位置信息,对RoI的分类不利 (Fast R-CNN提出的RoIPooling改进了这点) 。
  • 其设计阻断了梯度下降的反向传播,使得下层的conv部分无法被从后往前update。该缺陷在Fast R-CNN中被修正。

[1] Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition [2] 深度学习: global pooling (全局池化)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

平均年薪35W,2018年大数据AI发展趋势分析

近几年,大数据不可谓不火,尤其是2017年,发展大数据产业被写入政府工作报告中,大数据开始不只是出现在企业的战略中,也开始出现在政府的规划之内,可以说是互联网世...

15630
来自专栏数据派THU

干货 | 只有100个标记数据,如何精确分类400万用户评论?

迁移学习模型的思路是这样的:既然中间层可以用来学习图像的一般知识,我们可以将其作为一个大的特征化工具使用。下载一个预先训练好的模型(模型已针对ImageNet任...

12220
来自专栏金融民工小曾

《原则》作者达利欧:所有的成功人士都是依据原则来行动的

当我们遇到两难抉择时,应该要怎么办?如何更好地做出符合现实规律的决策?如何过一种以原则为基础的生活方式?达利欧在《原则》这本书里给了我们答案。

11030
来自专栏机器学习和数学

自然语言处理 | 使用Spacy 进行自然语言处理

Spacy的github地址:https://github.com/explosion/spaCy

37420
来自专栏数据派THU

综述 | 近年来深度学习的重要研究成果(附PDF)

本文列举出了近年来深度学习的重要研究成果,从方法、架构,以及正则化、优化技术方面进行概述。

37710
来自专栏视觉求索无尽也

美图图像算法工程师面试记录(20170824)

30320
来自专栏视觉求索无尽也

PyTorch:学习资源PyTorch学习资源整理:

35820
来自专栏数据派THU

教你用Keras和CNN建立模型识别神奇宝贝!(附代码)

在今天博客的最后,你将会了解如何在你自己的数据库中建立、训练并评估一个卷积神经网络。

88410
来自专栏视觉求索无尽也

【Keras】Keras入门指南

在用了一段时间的Keras后感觉真的很爽,所以特意祭出此文与我们公众号的粉丝分享。 Keras是一个非常方便的深度学习框架,它以TensorFlow或Thea...

91120
来自专栏数据派THU

独家 | 一文带你读懂特征工程!

本文描述了一个典型的基于跨行业标准流程的标准机器学习管道,作为数据挖掘行业的标准过程模型。

11710

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励