论文地址:https://arxiv.org/pdf/1406.4729.pdf

论文翻译请移步:http://www.dengfanxin.cn/?p=403

一、背景:

传统的CNN要求输入图像尺寸是固定的(因为全连接网络要求输入大小是固定的)

  • crop处理,可能不包含整个物体,还会丢失上下文信息
  • warping处理,会导致图像变形
  • 以上都会导致CNN对不同scale/size泛化能力不强
 
于是SPP做了如下改进,即将SPP层加在最后一个卷积层后面,然后再送入FC网络。 

优点

  • 不管输入尺寸为多少,SPP都能生成固定尺寸的输出,这使得CNN无需固定输入图片尺寸
  • CNN使用多尺度图片输入进行训练,增加了scale-invariance,减少了过拟合
  • SPP运用了多尺度的信息,空间信息更加丰富,使得CNN对物体的形变更加robust
  • SPP可以广泛运用在任何CNN架构上,提高performance

二、SPP对R-CNN的改进:

1、使用了SPP灵活改变网络输入尺寸

2、将整张图片一次性输入CNN提取特征,将提取出的region proposal的坐标映射到feature map上,共享了计算

改进细节:

1、SPP

  • 将feature map(假设有K个channel)划分为固定数量的bin(见上图的网格,假设bin的数目为),在每个bin里使用Max Pooling(或者AvgPooling)
  • 最终每个金字塔得到-dimension的特征向量,然后拼接起来
  • 值得注意的是,最粗粒度的金字塔级别,只是用了一个bin,这等同于Global Average Pooling

2、Mapping a Window to Feature Maps

更多映射推理细节详见:https://blog.csdn.net/ibunny/article/details/79397399

3、训练方式

单一尺寸训练
如前人的工作一样,我们首先考虑接收裁剪成224×224图像的网络。裁剪的目的是数据增强。
多尺寸训练
携带SPP的网络可以应用于任意尺寸,为了解决不同图像尺寸的训练问题,我们考虑一些预设好的尺寸。现在考虑这两个尺寸:180×180,224×224。我们使用缩放而不是裁剪,将前述的224
的区域图像变成180大小。这样,不同尺度的区域仅仅是分辨率上的不同,而不是内容和布局上的不同。
为了降低从一个网络(比如224)向另一个网络(比如180)切换的开销,我们在每个网络上训练一个完整的epoch,然后在下一个完成的epoch再切换到另一个网络(权重保留)。依此往复。实验中我们发现多尺寸训练的收敛速度和单尺寸差不多。
多尺寸训练的主要目的是在保证已经充分利用现在被较好优化的固定尺寸网络实现的同时,模拟不同的输入尺寸。除了上述两个尺度的实现,我们也在每个epoch中测试了不同的sxs输入,s是从180到224之间均匀选取的。

三、SPP-Net网络结构:

左边是训练流程,右边是测试流程,注意SPP-Net是直接用SPP池化层的输出特征作Bounding Box的回归,不像R-CNN是用Conv5的特征。

测试过程:

输入任意尺寸大小的图像,类似R-CNN,利用SS得到近2K推荐区域

通过卷积网络进行一次特征提取,得到特征图

通过ROI映射计算得到推荐区域映射到特征图的特征

输入SPP得到固定尺寸的特征

然后类似R-CNN,通过全连接层,再输入SVM得到分类概率

NMS处理

对处理后的结果,结合SPP输出特征进行边框回归

训练过程:

1、依旧是预训练好的网络,以及2K推荐区域,得到每个区域的SPP pooling层的一维特征

2、fine-tune(最大不同)

  • 只fine-tune全连接网络

    • FC6,FC7,FC8
    • FC8被换成了21-way(20个类+背景)
      • 初始化为Guassian(0, 0.01)
  • learning rate从1e-4到1e-5
    • 250K个batch使用1e-4
    • 50k个batch使用1e-5
  • 正负例平衡
    • 每个batch中25%是正例,75%为负例
  • IOU threshold
    • 正例为0.5-1
    • 负例为0.1-0.5

3、SVM

  • IOU threshold为0.3
  • 负例互相之间IOU超过70%则去除一个
  • 使用了hard negtive mining的策略来训练SVM

4、Bbox Regression

  • 使用了和R-CNN里一样的边框回归来refine坐标
  • IOU阈值为0.5

四、SPP-Net缺点

SPP-Net只解决了R-CNN卷积层计算共享的问题,但是依然存在着其他问题:

(1) 训练分为多个阶段,步骤繁琐: fine-tune+训练SVM+训练Bounding Box

(2) SPP-Net在fine-tune网络的时候固定了卷积层,只对全连接层进行微调,而对于一个新的任务,有必要对卷积层也进行fine-tune。(分类的模型提取的特征更注重高层语义,而目标检测任务除了语义信息还需要目标的位置信息)

参考资料:

https://blog.csdn.net/bryant_meng/article/details/78615353

https://www.jianshu.com/p/b2fa1df5e982

https://blog.csdn.net/ibunny/article/details/79397399

SPP Net(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)论文理解的更多相关文章

  1. 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 ...

  2. 目标检测--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 ...

  3. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Kaiming He, Xiangyu Zh ...

  4. 深度学习论文翻译解析(九):Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    论文标题:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 标题翻译:用于视觉识别的深度卷积神 ...

  5. SPPNet论文翻译-空间金字塔池化Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    http://www.dengfanxin.cn/?p=403 原文地址 我对物体检测的一篇重要著作SPPNet的论文的主要部分进行了翻译工作.SPPNet的初衷非常明晰,就是希望网络对输入的尺寸更加 ...

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

    论文源址:https://arxiv.org/abs/1406.4729 tensorflow相关代码:https://github.com/peace195/sppnet 摘要 深度卷积网络需要输入 ...

  7. 论文解读2——Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    背景 用ConvNet方法解决图像分类.检测问题成为热潮,但这些方法都需要先把图片resize到固定的w*h,再丢进网络里,图片经过resize可能会丢失一些信息.论文作者发明了SPP pooling ...

  8. 目标检测(二)SSPnet--Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognotion

    作者:Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun 以前的CNNs都要求输入图像尺寸固定,这种硬性要求也许会降低识别任意尺寸图像的准确度. ...

  9. Paper Reading - Long-term Recurrent Convolutional Networks for Visual Recognition and Description ( CVPR 2015 )

    Link of the Paper: https://arxiv.org/abs/1411.4389 Main Points: A novel Recurrent Convolutional Arch ...

随机推荐

  1. Girls Off-White x Air Jordan 1 from JordansUnveil.com

    The Jordans Unveil is a hardwood classic, re-imagined for the modern day sneakerhead. It's a hybrid ...

  2. js自执行函数的常见写法

    js自执行函数的常见写法 2016-12-20 20:02:26 1.关于自执行函数 1.1 写自执行函数的好处:独立的作用域,不会污染全局环境 (function() { })(); 1.2 理解重 ...

  3. .apk等常用文件下载出现如果应下载文件,请添加 iis MIME 映射。

    在下载.apk文件时出现错误. HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. ...

  4. string.Format字符串格式说明(转)

    转自:http://blog.csdn.net/dl020840504/article/details/8921875   先举几个简单的应用案例: 1.格式化货币(跟系统的环境有关,中文系统默认格式 ...

  5. 浅谈css中渐变衔接

    无论transition还是keyframes,如何让变化更自然,这是前端应该考虑的问题. 这里,我简单总结下自己的方法. 以实践为例子. 1.图像渐变 @keyframes looppic{ fro ...

  6. nginx之rewrite重写,反向代理,负载均衡

    rewrite重写(伪静态): 在地址栏输入xx.com/user-xxx.html, 实际上访问的就是xxx.com/user.php?id=xxx rewrite就这么简单 附上ecshop re ...

  7. 测试开发-PC客户端测试要点

      一级测试点 二级测试点 安装测试 首次安装(exe和msi格式的不同) 安装程序权限检查 软件安装包的描述和属性信息 静默安装和非静默安装测试 有UAC安装.无UAC安装 联网安装.断网安装 对必 ...

  8. Django框架----数据库表的单表查询

    一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name ="海东",cou ...

  9. 深入浅出JavaScript运行机制

    一.引子 本文介绍JavaScript运行机制,这一部分比较抽象,我们先从一道面试题入手: console.log(1); setTimeout(function(){ console.log(3); ...

  10. mysql5.6升级及mysql无密码登录

    mysql5.6升级 mysql5.6的升级可以分为以下几个步骤: 安全关闭正在运行的MySQL实例 把/usr/local/mysql 的连接由MySQL5.6更改为MySQL5.7 启动MySQL ...