SPPNet

Spatial Pyramid Pooling(空间金字塔池化)

一般的CNN结构中,对输入大小要求固定,但在现实中通常会使用crop和warp来将大小统一,这样做会破坏图像的纵横比,何凯明提出了SPP,连接在最后一层卷积层。

下图中左边为裁剪(crop),右边为拉伸(crop)


SPP特点:

  • SPP可以产生固定大小的输出
  • 使用多个pooling窗口
  • SPP可以使用同一图像不同尺寸作为输入,得到同样长度的池化特征
  • 提高了尺度不变性,降低了过拟合
  • 使用不同尺寸的图像进行网络训练更容易使得网络收敛
  • SPP对于特定的CNN网络设计和结构是独立的,只是替换了原来的pooling层
  • 不仅可以用于图像分类,也可以用于目标检测

1、结合空间金字塔方法实现CNNs对尺度输入

一般CNN后连接全连接层或分类器,他们都需要固定的输入尺寸,因此不得不对输入数据进行crop或warp,这些预处理会造成数据的丢失或几何失真。

SPP Net的第一个贡献就是将金字塔思想加入CNN,实现了数据的多尺度输入。

如下图所示,卷积层和全连接层中间加入了SPP layer,此时网络的输入可以是任意尺度的,在SPP layer 中每一个pooling的滤波器会根据输入调整大小,使得SPP的输出尺度始终是固定的。图中的pooling窗口有多种(图中蓝色、绿色、灰色窗口),分别对feature maps进行pooling,将分别得到的结果进行合并就得到固定长度的输出。

作者证明:

  • 多个窗口的pooling会提高准确率
  • 输入同一图像的不同尺寸,会提高实验准确率,也就是提高了网络的尺度不变性
  • 多view会提高准确率
  • SPP替换了pooling层,对网络结构没有影响,可以正常训练

2、只对原图提取一次卷积特征

在R-CNN中,每个候选框先resize到同一大小,然后分别作为CNN的输入,这样是低效的,所以SPP对此作了优化,只对原图进行一次卷积得到整张图的feature map,然后找到每个候选框在feature map上的映射patch,将次patch作为每个候选框的卷积特征输入到SPP layer后的层,节省了大量的计算时间,比R-CNN有100倍左右的提速。

目标检测系列(三)——SPPnet相关推荐

  1. 非极大值抑制_【计算机视觉——RCNN目标检测系列】三、IoU与非极大抑制

    写在前面 在上一篇博客:[计算机视觉-RCNN目标检测系列]二.边界框回归(Bounding-Box Regression)( 戴璞微:[计算机视觉-RCNN目标检测系列]二.边界框回归(Boundi ...

  2. 【R-CNN目标检测系列】三、IoU与非极大抑制

    写在前面 在上一篇博客:[计算机视觉--RCNN目标检测系列]二.边界框回归(Bounding-Box Regression)中我们主要讲解了R-CNN中边界框回归,接下来我们在这篇博客我们讲解R-C ...

  3. 目标检测系列(preface) 数据集DataSets

    目标检测系列(Preface) - 数据集 公开数据集(PASCAL VOC // COCO)介绍 一.PASCAL VOC格式数据集 官网 标注工具 1.数据集一般格式 VOC2007 Annota ...

  4. python目标识别算法_深度学习目标检测系列:一文弄懂YOLO算法|附Python源码

    摘要: 本文是目标检测系列文章--YOLO算法,介绍其基本原理及实现细节,并用python实现,方便读者上手体验目标检测的乐趣. 在之前的文章中,介绍了计算机视觉领域中目标检测的相关方法--RCNN系 ...

  5. 目标检测(降低误检测率及小目标检测系列笔记)

    深度学习中,为了提高模型的精度和泛化能力,往往着眼于两个方面:(1)使用更多的数据(2)使用更深更复杂的网络. ** 一.什么是负样本 ** 负样本是指不包含任务所要识别的目标的图像,也叫负图像(Ne ...

  6. 使用PyTorch从零开始实现YOLO-V3目标检测算法 (三)

    原文:https://blog.csdn.net/u011520516/article/details/80216009 点击查看博客原文 这是从零开始实现YOLO v3检测器的教程的第3部分.第二部 ...

  7. 目标检测系列(五)——Faster R-CNN译文

    文章目录 摘要 引言 2. 相关工作 3. Faster R-CNN 3.1 区域提议网络 3.1.1 anchor 3.1.2 损失函数 3.1.3 训练RPNs 3.2 RPN和Fast R-CN ...

  8. 目标检测系列(四)——Fast R-CNN译文

    文章目录 摘要 1. 引言 1.1 R-CNN和SPPnet 1.2 本文贡献点 2. Fast R-CNN的框架和训练过程 2.1 RoI pooling层 2.2 从预训练网络初始化 2.3 针对 ...

  9. 深度学习目标检测系列:一文弄懂YOLO算法|附Python源码

    在之前的文章中,介绍了计算机视觉领域中目标检测的相关方法--RCNN系列算法原理,以及Faster RCNN的实现.这些算法面临的一个问题,不是端到端的模型,几个构件拼凑在一起组成整个检测系统,操作起 ...

最新文章

  1. 【机器视觉案例】(9) AI视觉,手势控制电脑键盘,附python完整代码
  2. drupal与html转换,Drupal 7修改網頁HTML和顯示Title的辦法
  3. BZOJ 2561: 最小生成树(最小割)
  4. 图像显著区域检测代码及其效果图 saliency region detection
  5. 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 完整代码示例 ) ★★★
  6. step1.day12 Linux下使用C语言编程基础总结
  7. 客官,.NETCore无代码侵入的模型验证了解下
  8. python中代理模式分为几种_Python设计模式之代理模式实例详解
  9. C语言内存泄露很严重,如何应对?
  10. MSYS2+MinGW32 编译 QEMU需做的准备工作
  11. php 替换 数组,php如何替换数组的值
  12. PHP JAVA BASE64 encode decode
  13. 最小树——迪杰斯特拉算法
  14. 51单片机 日历 c语言 数码管,51单片机做的数码管电子日历
  15. C/C++ 根据年月日计算星期几——蔡勒公式篇
  16. java聊天程序_java基于C/S模式实现聊天程序(客户端)
  17. 第2章 先从看得到的入手,探究活动
  18. python爬取豆瓣读书简单_Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
  19. Angular学习笔记之慕课大漠穷秋塞主讲
  20. 90后凤凰男:寒门难出贵子

热门文章

  1. 微信OAuth2.0网页授权设置一个域名需多个域名使用的问题
  2. 【一起学OpenFOAM】04 OpenFOAM的学习资源
  3. BTrace实现浅析
  4. 你真的会用storyboard开发吗?
  5. eclipse插件安装方法
  6. SVN trunk branch tags 区别
  7. 如何在客户端调用服务端代码
  8. java单例模式的应用_java单例模式的简单应用例子
  9. python fine函数_python find()函数
  10. 一串事物中每个事物的前后位置与顺序编号的转换问题