论文地址: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. Rpgmakermv(4 )doc of TerraxLights

    我只做简要翻译. To activate the script in an area, do the following: 1. Put an event switch into the map. 2 ...

  2. discuz完善用户资料任务不能完成的解决方法

    再来吐槽下discuz. 虽然很很很不想用discuz,但是,,,,..便利性以及各种原因,还得使用. 问题:discuz-运营-任务-完善资料,,,,,,变更部分后无法完成任务. 解决方式如下 原因 ...

  3. uva1494 最小生成树--例题

    这题说的是n个城市 建路 使他们联通然后 , 可以使用一条超级的路这条路不计入总长,此时路长度为B, 这条路链接的两个城市人口与和为A+B, 然后计算出最大的A/B 解题 先生成一颗最小生成树,然后 ...

  4. Intro to Python for Data Science Learning 6 - NumPy

    NumPy From:https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-4-numpy?ex=1 ...

  5. cmd中mysql中文乱码问题

    以下为自己亲试: 解决cmd中MySQL查询和命令返回的中文乱码问题 1.修改cmd字符集方法 rem 切换到UTF-8 chcp 65001 rem 切换到默认的GBK chcp 936 rem 美 ...

  6. Linux基础命令---findfs

    findfs 查找指定卷标或者UUID的文件系统对应的设备文件.findfs将搜索系统中的磁盘,寻找具有标签匹配标签或与UUID相等的文件系统.如果找到文件系统,文件系统的设备名称将打印在stdout ...

  7. iOS之第三方库以及XCode插件介绍

    前言 第三方库是现在的程序员离不开的东西 不光是APP开发 基本上所有的商业项目 都会或多或少的使用到第三方库 Github上Star>100的开源库数量如下 可以看到JS以绝对的优势排名第一 ...

  8. Jquery 给Js动态新添加的元素 绑定的点击事件

    //one $('.class').on("click",function(){ alert('one') }); //相当于$('.class').bind("clic ...

  9. 利用构建缓存机制缩短Docker镜像构建时间

    在使用Docker部署PHP或者node.js应用时,常用的方法是将代码和环境镜像打包成一个镜像然后运行,一些云厂商提供了非常便捷的操作,只需要把我们的代码提交到VCS上,然后它们就会帮我们拉取代码并 ...

  10. 20145335郝昊《网络攻防》Exp9 Web安全基础实践

    20145335郝昊<网络攻防>Exp9 Web安全基础实践 实验内容 理解常用网络攻击技术的基本原理. 完成WebGoat实践下相关实验 实验步骤 XSS注入攻击 Phishing wi ...