SPPNet

首先介绍最为传统的alexNet,本文以及R-CNN有基于该网络上进行改进

1.输入224*224的图片,经过卷积池化等操作后在最后的卷积层会变成13*13的图片
2.后面接两个全连接层
3.最后接一个softmax进行打分分类(分成1000类是因为ImageNet上的图片总类为1000类)

SPPNet的介绍

  • 之前的卷积神经网络只能输入固定的尺寸进去因此不得不裁剪/变形。如图所示:

  • 本文作者提出对于输入图片的尺寸要求只需要在全连接层,对于卷积层没有要求,所以为了能够在输入的时候能够输入任意大小的图片作者在最后一层卷积层和全连接层之间加了一个特征金字塔池化层
  • 具体如下图所示:第一个为传统的CNN结构,下面为加了SPPNet的网络结构

作者为什么要这么加?

  1. 对于分类任务这样做就可以在输入图片使输入多尺度图片(将原图片变大变小等)扩充数据集
  2. 对于后面的目标检测任务可以改进传统的R-CNN,传统的R-CNN需要将图片通过select search选出大概两千个区域再通过CNN卷积层,非常耗时。而加上SPPNet后可以输入整张图片进入卷积层,节省时间
  • 形象理解如下图所示:

进入之后框如何画?

  • 作者发现,卷积后对应的位置并不会发生改变,每个卷积层会匹配响应的区域。如下图所示:

1.上图显示,车轮在原图中的位置在特征图上也会出现在响应的位置
2.上图卷积核匹配的响应的(轮廓,颜色,纹理)与(c)匹配的也相似
3.这样在目标检测使可以根据特征图画出该物体的位置,也就可以画出具体的框了

SPPNet的具体工作原理?

  • SPPNet需要在最后的卷积层将不同的尺寸的特征图变化到统一尺寸大小具体使怎么做的呢?
  • 在读论文使作者说到最大池化,我刚开始误解为是和前面的池化层一样通过滑动窗口实现。然而并不是。具体如何请看下图:
  1. 对于分类任务提取特征时:

  2. 对于目标检测任务提取特征时

1. 例如上图,特征池化层分别为(4*4,2*2,1*1)
2. 将4*4的池化层等比例映射到特征图中,然后再取16格中的每个小格的最大值,再将其拉伸为16*1的vector
3. 同理可得,将2*2的池化层等比例映射到特征图中,再取4格,最后将其拉伸为4*1的vector
4. 1*1的将其拉伸成1*1的vector
5. 最后形成的时(16+4+1)*256(256是深度)的向量

更为具体的如下图所示:

1.左边是8*8的特征图的池化层的划分和将其拉伸成一维向量
2.右边是任意尺度的特征图的划分
  • 综上所述:任意尺度的特征图都可以划分维固定大小的维度

总览:



SPPNet(特征金字塔池化)学习笔记的更多相关文章

  1. Spatial pyramid pooling (SPP)-net (空间金字塔池化)笔记(转)

    在学习r-cnn系列时,一直看到SPP-net的身影,许多有疑问的地方在这篇论文里找到了答案. 论文:Spatial Pyramid Pooling in Deep Convolutional Net ...

  2. 【神经网络与深度学习】【计算机视觉】SPPNet-引入空间金字塔池化改进RCNN

    转自: https://zhuanlan.zhihu.com/p/24774302?refer=xiaoleimlnote 继续总结一下RCNN系列.上篇RCNN- 将CNN引入目标检测的开山之作 介 ...

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

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

  4. 空间金字塔池化(Spatial Pyramid Pooling,SPP)

    基于空间金字塔池化的卷积神经网络物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187655 作者:hjimce 一.相关理论 本篇博文 ...

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

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

  6. 空间金字塔池化 ssp-net

    <Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition>,这篇paper提出了空间金字 ...

  7. SPP空间金字塔池化技术的直观理解

    空间金字塔池化技术, 厉害之处,在于使得我们构建的网络,可以输入任意大小的图片,不需要经过裁剪缩放等操作. 是后续许多金字塔技术(psp,aspp等)的起源,主要的目的都是为了获取场景语境信息,获取上 ...

  8. R语言函数化学习笔记6

    R语言函数化学习笔记 1.apply函数 可以让list或者vector的元素依次执行一遍调用的函数,输出的结果是list格式 2.sapply函数 原理和list一样,但是输出的结果是一个向量的形式 ...

  9. R语言函数化学习笔记3

    R语言函数化学习笔记3 R语言常用的一些命令函数 1.getwd()查看当前R的工作目录 2.setwd()修改当前工作目录 3.str()可以输出指定对象的结构(类型,位置等),同理还有class( ...

随机推荐

  1. Android Studio 异常以及解决方案

    1. Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVER ...

  2. AMS分析 -- 启动过程

    一. AMS简介 AmS可以说是Android上层系统最核心的模块之一,其主要完成管理应用进程的生命周期以及进程的Activity,Service,Broadcast和Provider等. 从系统运行 ...

  3. uni-app中实现图片左滑的效果

    template: 1 <view class="my-reg"> 2 <view class="my-regs"> 3 <ima ...

  4. CommonsCollection6反序列化链学习

    CommonsCollection6 1.前置知识 1.1.HashSet HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合.继承了序列化和集合 构造函数参数为空的话创建一 ...

  5. WIN进程注入&BypassUAC&令牌窃取

    WIN进程注入&BypassUAC&令牌窃取 本地提权-win令牌窃取 假冒令牌可以假冒一个网络中的另一个用户进行各类操作. 所以当一个攻击者需要域管理员的操作权限时候,需通过假冒域管 ...

  6. MySQL学习day3随笔

    索引在数据量不大的时候体现不出来,数据很多的时候区别明显 1 select * from app_user where `name`='用户9999';-- 0.053 sec 2 select * ...

  7. 洛谷 P2392 kkksc03考前临时抱佛脚, dp / 深搜

    题目链接 P2392 kkksc03考前临时抱佛脚 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目 dp代码 #include <iostream> #includ ...

  8. 新手入门C语言第七章:C判断

    C 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). C 语言把任何非零和非空的值假定为 true,把零或 null  ...

  9. Java语言学习day21--7月27日

    ###01接口的概念 * A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的"类". 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实 ...

  10. ubuntu16.04安装MATLAB R2017b步骤详解(附完整文件包)

    摘要:介绍在ubuntu16.04中从下载到安装成功的完整步骤.本文给出MATLAB R2017b(Linux系统)的完整安装包百度云盘下载地址,逐步介绍一种简单易行的安装方法,在桌面创建快捷方式,最 ...