论文阅读笔记二十五:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)

论文源址:https://arxiv.org/abs/1406.4729
tensorflow相关代码:https://github.com/peace195/sppnet
摘要
深度卷积网络需要输入固定尺寸大小的图片(224x224),这引入了大量的手工因素,同时,一定程度上,对于任意尺寸的图片或者子图会降低识别的准确率。SPP-net对于任意大小的图片,可以生成固定长度的特征表述。SPP-net对于变形的图片仍有一定的鲁棒性。基于上述优点,SPP-net会提高基于CNN的图像分类的效果。
SPP-net对于目标检测任务也有一定的贡献,只从整张图片中计算一次获得feature map,然后,通过从任意尺寸区域得到的池化特征中生成固定尺寸的特征表述用于检测器的训练。此模型避免重复的卷积特征提取过程,大大减轻了计算负担。经测试,SPP-net要快于R-CNN 24-102倍。
介绍
对于输入卷积网络图片的尺寸要求为固定尺寸,大多数做法是通过裁剪,或拉伸至目标尺寸中,裁剪过的图片可能并未包含目标物体,而拉伸操作可能会使图片的几何失真。进而可能会对识别的准确率造成一定的影响。当目标物体的大小发生变化时,预训练时的尺寸大小可能会发生矛盾,固定大小的输入忽略了多尺度的问题。如下图吗,

卷积网络要求输入尺寸固定的原因:卷积网络主要包含两部分:卷积层和全连接层。卷积层通过一个滑动窗口并输出代表空间分布的响应。实际上,卷积层并不需要固定的图片尺寸,而且可以输出任意大小的feature map。而全连接层根据定义要求输入必须为固定的大小。
该文提出了空间金字塔池化层用于消除尺寸固定这个限制。具体实现是在最后一层卷积层后添加SPP层。SPP将特征池化处理,并产生一个固定长度的输出,送入全连接层。一句话,SPP-net在网络的较深层中(卷积层与全连接层之间)执行一些聚合不同层次信息的操作来减弱输入时采用裁剪拉伸等操作产生的不良影响。SPP-net实现不同尺寸的输入,这增加了模型尺寸的不变性及防止过拟合。
基于空间金字塔池化的深度网络
卷积网络与feature map:参考七层网络结构,前5层为卷积层,每层参杂池化层,后接几层池化层,最后两层为全连接层,同时输出N路soft-max,N代表类别数。此网络结构需要输入固定尺寸的图片,而固定的性质是由全连接层决定的。卷积层执行滑动卷积操作,输出与输入之间的比是相似的。得到的feature map包含了响应值同时也包含了空间位置信息。

空间金字塔池化层:卷积层接受任意尺寸的输入同时生成不同尺寸的输出。SVM,全连接层分类器要求输入固定尺寸的特征向量。通过词袋方法将特征进行池化。相比词袋,空间金字塔池化层可一个保留池化操作后的空间信息到局部空间bin中。spatial bin与输入成比例的尺寸。而spatial bin的数量不受图片大小的影响。而先前的池化操作滑动窗口的数量受输入大小的影响。该文将最后一层池化层更改为SPP,通过使用不同的核对feature map进行池化操作。SPP层输出kxM维的向量,k为最后一层卷积层核的个数。M为bin的个数,固定维度的向量送入全连接层中。在SPP中有一个全局池化操作,全局平均池化操作可以降低模型的复杂度,同时可以防止过拟合。在测试时,在卷积层后使用平均池化层利于提高准确率,而最大池化操作用于弱监督的目标识别。

网络的训练:分为单尺寸训练和多尺寸训练,单尺寸训练,送入裁剪后固定大小的图片(224x224),对于输入的图片,可以事先计算好bin的大小。conv5输出的feature map大小为axa(13x13)。而一层含有nxn大小的金字塔层,将池化层看作滑动窗口,大小为[a/n], stride 为[a/n],对有l层金字塔层,将其l个输出进行拼接。win中的[]代表向上取整,而stride中的[]代表向下取整。

多尺寸的训练:该文除了考虑224x224大小的输入,同时考虑了180x180大小的输入,将224x224图片resize至大小为180x180大小。 所以,两者窗宽比相同,内容与外形相同,只有像素不同。 输入图片大小发生改变,通过改变金字塔池化层得到与224x224相同维度的向量输入到全连接层中。网络的参数量相同,这样实现了不同尺寸的输入。先用224x224的图片训练一轮,后使用180x180大小的图片进行迭代,该文还使用[224x180]的进行实验。
分类实验
基于ZF-5,Convnet*-5,Overfeat-5/7五个网络结构进行改造,结构如下







目标检测实验
首先将整幅图像输入网络提取特征,采用快速的SS方法提取候选框,然后在每个候选框上应用SPP层进行特征提取,用训练好的二分类SVM进行分类。




Reference
[1] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel, “Backpropagation applied to handwritten zip code recognition,” Neural computation, 1989.
[2] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. FeiFei, “Imagenet: A large-scale hierarchical image database,” in CVPR, 2009.
[3] A. Krizhevsky, I. Sutskever, and G. Hinton, “Imagenet classification with deep convolutional neural networks,” in NIPS, 2012.
论文阅读笔记二十五:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)的更多相关文章
- SPPNet论文翻译-空间金字塔池化Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
http://www.dengfanxin.cn/?p=403 原文地址 我对物体检测的一篇重要著作SPPNet的论文的主要部分进行了翻译工作.SPPNet的初衷非常明晰,就是希望网络对输入的尺寸更加 ...
- 深度学习论文翻译解析(九):Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
论文标题:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 标题翻译:用于视觉识别的深度卷积神 ...
- 目标检测--Spatial pyramid pooling in deep convolutional networks for visual recognition(PAMI, 2015)
Spatial pyramid pooling in deep convolutional networks for visual recognition 作者: Kaiming He, Xiangy ...
- Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Kaiming He, Xiangyu Zh ...
- SPP Net(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)论文理解
论文地址:https://arxiv.org/pdf/1406.4729.pdf 论文翻译请移步:http://www.dengfanxin.cn/?p=403 一.背景: 传统的CNN要求输入图像尺 ...
- 论文解读2——Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
背景 用ConvNet方法解决图像分类.检测问题成为热潮,但这些方法都需要先把图片resize到固定的w*h,再丢进网络里,图片经过resize可能会丢失一些信息.论文作者发明了SPP pooling ...
- SPP NET (Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)
1. https://www.cnblogs.com/gongxijun/p/7172134.html (SPP 原理) 2.https://www.cnblogs.com/chaofn/p/9305 ...
- 目标检测(二)SSPnet--Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognotion
作者:Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun 以前的CNNs都要求输入图像尺寸固定,这种硬性要求也许会降低识别任意尺寸图像的准确度. ...
- 论文阅读笔记二十四:Rich feature hierarchies for accurate object detection and semantic segmentation Tech report(R-CNN CVPR2014)
论文源址:http://www.cs.berkeley.edu/~rbg/#girshick2014rcnn 摘要 在PASCAL VOC数据集上,最好的方法的思路是将低级信息与较高层次的上下文信息进 ...
随机推荐
- MatrixBG 代码瀑布的实现
黑客帝国中代码瀑布是怎么实现的呢? 我们可以通过 window.innerWidth获取屏幕的宽度W,并规定字符的大小size,那么屏幕中共有 W/size 列字符出现, 我们不断的去更改每一列中文字 ...
- SpringBoot整合全局异常处理&SpringBoot整合定时任务Task&SpringBoot整合异步任务
============整合全局异常=========== 1.整合web访问的全局异常 如果不做全局异常处理直接访问如果报错,页面会报错500错误,对于界面的显示非常不友好,因此需要做处理. 全局异 ...
- 20165231 预备作业二:学习基础和C语言基础调查
微信文章感想 读了娄老师微信公众号中的文章,老师给我们的启示首先就是要坚持,万事开头难,但是只要肯坚持就一定会有所成就,不管是学习还是生活方面.其中最有触动的就是减肥了,是我三四年来一直难以完成的目标 ...
- Python在线聊天软件(Tkinter)
1.python2.7下安装 apt-get install python-tk 主要功能是实现客户端与服务器端的双向通信,这个小东西用到的主要知识点: 1.Python Socket:2.Pytho ...
- 题解 SP26045 【GCDMAT2 - GCD OF MATRIX (hard)】
承接一下洛咕上的题解,这里基本就是谈谈优化,放个代码的 我们发现这里的常数主要来自于除法,那么我们优化除法次数,把所有的 \(n/1...n/s\) (\(s=\sqrt n\))存下来,然后归并排( ...
- python操作Excel的库openpyxl
http://openpyxl.readthedocs.io/en/default/tutorial.html 这里先上该库的文档镇文. 1,遇到合并后的单元格信息读取的问题,通过使用cell中off ...
- python迭代器的说明
data = [randint(0,20) for _ in xrange(30)]表示30个随机生成的0-20随机数其中for _ in xrange(30)表示循环30次. from random ...
- python-模块入门
一.模块介绍 模块:模块就是一系列功能的集合体 模块有三种来源: 1.内置模块 2.第三方的模块 3.自定义模块 模块的格式: 1使用python编写的.py文件 2.已被编译为共享库或D ...
- 搭建 RabbitMQ Server 高可用集群【转】
阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 ...
- 技术的热门度曲线:GHC
全球最大的 IT 咨询公司高德纳(Gartner),有一个"技术热门度曲线"模型(Gartner Hype Cycle). 该模型认为,一门技术的发展要经历五个阶段. (1)启 ...