b站这个Up主讲的挺好,就是莫名其妙搞个背景音乐怪怪的。。。视频讲解
Spatial Pyramid Pooling(SPP)中文叫空间金字塔池化
SPP目的:这个原理要解决的是传统CNN网络对输入图片尺寸要固定这个限制,比如AlexNet中的输入图片都有固定此村224×224,RCNN中为了讲Proposals 做CNN卷积提取特征也得先将不同大小的Proposal经过wrap缩放成同一大小。
为什么CNN要求输入的图片尺寸固定呢?
因为CNN中的最后的全连接层的输入尺寸是固定的(别问我全连接层为什么输入尺寸是固定的/狗头),所以从全连接层倒推到前面的卷积层,卷积层的输入也得是固定的了。
为什么作者要解决这样的限制呢,固定大小不行吗?
那就得说到以R-CNN为代表的以深度学习来解决目标检测的算法模型了,RCNN首先用selective search的方法冲图片中选出2000个region proposal,然后分别将这些proposal缩放为统一大小后传入CNN进行前向传播得到各个proposal的feature map,然后再使用全连接对这些feature map作分类处理。
这样效率就非常低下,因为一张图片就得经过2000次CNN的前向传播,而且这些proposal中很多重叠的区域,十分浪费资源,虽然最终RCNN的精确度挺高,但是无论是空间还是时间都消耗很大。
所以为了解决这个问题,我们首先就得解决CNN对图片大小输入固定的要求!这样我们就可以先提取整个图片的特征,然后将各个proposal映射到这个feature map上,对应每个proposal截取feature map上对应的一部分,得到若干小的feature map,然后将这些大小各异的feature map输入全连接层进行接下来的操作。
解决CNN对图片大小的输入实际上的切入点就是在最后一个卷积层和第一个全连接层之间的转换处,在这里加上我们本文的主角Spatial Pyramid Pooling层,它能够不管输入的feature map 多大,都提取出一个固定大小的feature vector出来传给全连接层。

  下图为传统CNN网络和SPPnet网络结构的对比

那么Spatial Pyramid Pooling是如何做到的呢?
Spatial Pyramid Pooling结构:

可以看见,我们的输入是最后一层卷积层得到的feature maps上每个proposal映射下来对应的个各自的feature map,大小不一。
这里我们的Spatial Pyramid Pooling用三个尺寸不同的pooling 核来做池化操作,分别是44,22,11大小,但是这里的三个pooling核的大小指的是他们会将被pooling的那层分成多少部分,然后每个部分进行pooling操作,例如44就是指不管上层大小多大,分成44个小格子大小,然后对这每个格子大小内的feature做pooling,如果是max pooling则是分别取这44个区域内各自的最大值,然后组成16个特征(所以可以理解为这里的pooling大小是指的输出的尺寸大小 )。然后44+22+1*1=21,于是不管你的输入是多大,SPP在每个channel上都会提取到21维的特征向量!

池化操作对于每个feature map channel都是独立进行的。.

这样就使得我们的效率大大提升,每个region proposal不用单独提取特征,而是在已经提取的整张图片的特征上通过映射找到自己对应的那部分特征,然后通过SPP层提取统一大小的特征向量给全连接层进行接下来的操作!

Spatial Pyramid Pooling(SPP)原理简介相关推荐

  1. 空间金字塔池化(Spatial Pyramid Pooling, SPP)原理和代码实现(Pytorch)

    想直接看公式的可跳至第三节 3.公式修正 一.为什么需要SPP 首先需要知道为什么会需要SPP. 我们都知道卷积神经网络(CNN)由卷积层和全连接层组成,其中卷积层对于输入数据的大小并没有要求,唯一对 ...

  2. 语义分割——Spatial Pyramid Pooling (SPP)的作用

    1 前言 我们在DeepLabV3+中学习到了ASPP算法,ASPP就是使用了膨胀卷积的Spatial Pyramid Pooling (SPP)- 2 SPP的作用 --多尺度特征融合: --将不同 ...

  3. spatial pyramid pooling(spp)

    没有spp的网络的缺点 1,现有的dcnn需要固定尺寸的图片作为输入,这样对图片的宽高比和尺寸大小作出了限制. 2,如果图片尺寸是任意的,在输入之前需要做裁剪或图像扭曲(crop or warp(re ...

  4. SPP(Spatial Pyramid Pooling)解读

    1.为什么会出现SPP结构,其作用是什么? 通过Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognitio ...

  5. SPP: Spatial Pyramid Pooling

    paper:  Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition code:   https: ...

  6. SPP(spatial pyramid pooling) 空间金字塔池化

    (1)SPP层能达到什么样的效果? 由于全连接层对数据大小的输入是由要求的,比如要求是256*1才能输入到全连接层里面,那你288*1的特称图就不能输入到全连接层了. SPP层能达到的效果是:不管你的 ...

  7. SPP(Spatial Pyramid Pooling)

    Spatial Pyramid Pooling(空间金字塔池化) 在一般的CNN结构中,在卷积层后面通常连接着全连接.而全连接层的特征数是固定的,所以在网络输入的时候,会固定输入的大小(fixed-s ...

  8. c语言spp,SPP(Spatial Pyramid Pooling)详解

    一直对Fast RCNN中ROI Pooling层不解,不同大小的窗口输入怎么样才能得到同样大小的窗口输出呢,今天看到一篇博文讲得挺好的,摘录一下,方便查找. Introduction 在一般的CNN ...

  9. 讲解 Spatial Pyramid Pooling

    原文链接:https://zhuanlan.zhihu.com/p/34788333?utm_source=ZHShareTargetIDMore SPP背景 传统CNN所需要的固定维度输入这一限制, ...

最新文章

  1. 微型激光投影廉价版本
  2. boost::hana::less用法的测试程序
  3. 算法面试:栈实现队列的方案
  4. ambari 2.5.0源码编译安装
  5. winform的UI设计关键属性汇总
  6. 【转】云社区 博客 博客详情 二维异形件排版算法介绍(一)
  7. spring框架做全局异常捕获_@ControllerAdvice注解(全局异常捕获)
  8. html5画布 文本无法显示,淡出HTML5画布中的文本效果
  9. zabbix使用zabbix-java-gateway监控jvm/tomcat性能
  10. 马化腾300万奖励中国女排 网友:马云老师清空购物车还安排吗?
  11. 持续集成部署Jenkins工作笔记0017---17.整合GitHub的持续集成环境要点说明
  12. java txt转pdf乱码_java转pdf中文乱码应该如何处理
  13. 开源BI工具对比(三) DataEase
  14. 串口485接法图_rs485通讯接口定义图详解
  15. JAVA WEB学习
  16. 相关系数excel_怎样征服老板?教你用excel找到数据之间隐藏信息
  17. 计算机桌面设置,电脑入门(十一)桌面个性化设置
  18. 一个简单的acm竞赛题
  19. Mybatis中 if 语句使用空格问题
  20. visual studio 代码格式化的若干方法(含快捷键)

热门文章

  1. 内容:提出含冰蓄冷空调的微电网多时间尺度优化调度模型,研究冰蓄冷空调 的不同运行方式对优化调度的影响
  2. ThreadPoolExecutor 线程池异常消失之刨根问底
  3. 【高德地图进阶】--- 添加城市版块纹理
  4. PythonStock(29)股票系统:涛动周期论 经济周期决定人生财富命运,下一步的研究方向,从宏观角度进行市场行情研究。
  5. Matlab中三维直方图的显示方法
  6. 微信小程序支付组件开发实战
  7. 华为手机显示您的手机未连接服务器,手机提示链接不到服务器
  8. 解决usb otg线系统重启的问题
  9. echart简单使用
  10. SAP FICO - Functional Area/ Financial Management Area(FM Area)