读Lawin Transformer这篇论文,里面有介绍到在Transformer结构中使用ASPP,有很多细节没有理解,于是打算从CNN里的SPP开始学习。

SPP【Space Pyramid Pooling】空间金字塔池化  出现是为了解决什么

在spp出来之前,所有神经网络都是要输入固定尺寸的图片,比如经常遇到的224×224,图片输入网络前都要resize到224×224,导致图片变形,其中的信息也变形了,从而限制了识别精度。
而SPP和ASPP就是为了解决这个问题,它可以让网络输入原图而不必resize。

SPP结构

对于任意尺寸的特征层输入,将输入做三份处理:

(1)直接对整个特征图池化,每一维得到一个池化后的值,构成一个1x256的向量

(2)将特征图分成2x2共4份,每份单独进行池化,得到一个1x256的向量,最终得到2x2=4个1x256的向量

(3)将特征图分成4x4共16份,每份单独进行池化,得到一个1x256的向量,,最终得到4x4=16个1x256的向量

将三种划分方式池化得到的结果进行拼接,得到(1+4+16)*256=21x256的特征。

由图中可以看出,整个过程对于输入的尺寸大小完全无关,因此可以处理任意尺寸的候选框。

空间池化层实际就是一种自适应的层,这样无论你的输入是什么尺寸,输出都是固定的(21xchannel)

下面图理解起来更加清晰:

ASPP结构 

在介绍ASPP之前,首先要介绍Atrous Convolution(空洞卷积),它是一种增加感受野的方法。空洞卷积是是为了解决基于FCN思想的语义分割中,输出图像的size要求和输入图像的size一致而需要upsample,但由于FCN中使用pooling操作来增大感受野同时降低分辨率,导致upsample无法还原由于pooling导致的一些细节信息的损失的问题而提出的。为了减小这种损失,自然需要移除pooling层,因此空洞卷积应运而生。
普通卷积这里就不介绍了,我们来看一下空洞卷积的动态图,就一目了然了:

空洞卷积从字面上很好理解,是在标准的卷积中注入空洞,以此来增加感受野,相比原来的正常卷积,空洞卷积多了一个称之为 dilation rate 的参数,指的是kernel的间隔数量(一般的卷积 dilation rate=1)。
但是,空洞卷积也有其潜在的一些问题:

潜在问题 1:The Gridding Effect
假设我们仅仅多次叠加 dilation rate 2 的 3 x 3 kernel 的话,则会出现这个问题:

我们发现 kernel 并不连续,也就是并不是所有的 pixel 都用来计算了,因此这里将信息看做 checker-board 的方式会损失信息的连续性。这对 pixel-level dense prediction 的任务来说是致命的。

潜在问题 2:Long-ranged information might be not relevant.
我们从 dilated convolution 的设计背景来看就能推测出这样的设计是用来获取 long-ranged information。然而光采用大 dilation rate 的信息或许只对一些大物体分割有效果,而对小物体来说可能则有弊无利了。如何同时处理不同大小的物体的关系,则是设计好 dilated convolution 网络的关键。

HDC(Hybrid Dilated Convolution)
针对以上几个问题,图森组的文章对其提出了较好的解决的方法。他们设计了一个称之为 HDC 的设计结构。
它有几个特性,可以从一定程度上解决上述问题。这里咱不讨论。我们可以从一张图来对比一下正常空洞卷积与HDC的效果:

可以看到经过卷积之后,HDC能够获得更多的图像信息,不会出现像正常空洞卷积一样的小方块。

Atrous Spatial Pyramid Pooling (ASPP)
首先看一下ASPP的结构图

这里设计了几种不同采样率的空洞卷积来捕捉多尺度信息,但我们要明白采样率(dilation rate)并不是越大越好,因为采样率太大,会导致滤波器有的会跑到padding上,产生无意义的权重,因此要选择合适的采样率。

多尺度理解:不同扩张率得到的不同尺度的感受野,重叠信息?使网络获得了不同的感受野, 能够在不同尺度上捕捉信息,对于分类任务有明显的提升

卷积核大小 k=3k=3 ,扩张率 r=2r=2 时,计算方式如 图5 所示。

图5 空洞卷积的感受野示例

其中,通过一层空洞卷积后,感受野大小为5×5,而通过两层空洞卷积后,感受野的大小将会增加到9×9。

参考链接

金字塔池化系列的理解SPP、ASPP_冬仔11的博客-CSDN博客_aspp结构空洞卷积(Dilated Convolution) — PaddleEdu documentation

深入理解空间金字塔池化(SPP,ASPP)相关推荐

  1. 空间金字塔池化SPP

    空间金字塔池化 1.提出的原因 下面这里是我们在网上反复可以看见的话(所以关键是理解这些内容): 提出的原因: 在SPP提出之前,传统的网络具有它有两大缺点: 1.通常需要输入固定大小的图片来进行训练 ...

  2. [Neck] 空间金字塔池化【池化策略】(Space Pyramid Pool, SPP)模块和路径聚合网络【增强】(Path Aggregation Network, PANet)的结构

    文章目录 背景 yolo v4 中的空间金字塔池化(Space Pyramid Pool, SPP)模块和路径聚合网络(Path Aggregation Network, PANet)的结构 SPP ...

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

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

  4. CNN应用之SPP(基于空间金字塔池化的卷积神经网络物体检测)-ECCV 2014-未完待续

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

  5. Spatial Pyramid Pooling(空间金字塔池化)-变尺度CNN训练

    1. 需求创造好的产品,产品拓宽原始的需求 当前的深度神经网络一般都需要固定的输入图像尺寸(如224*224). 这种需求很明显是人为的,潜在性的弊端会降低识别精度(为了使图像尺寸相同,一定会涉及到图 ...

  6. 用于视觉识别的深度卷积网络空间金字塔池化方法

    摘要 现有的深卷积神经网络(CNN)需要一个固定大小的神经网络(例如224x224)的输入图像.这种要求是"人为的",可能会降低对任意大小/尺度的图像或子图像的识别精度.在这项工作 ...

  7. 基于空间金字塔池化的卷积神经网络物体检测

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

  8. 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测-ECCV 2014

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

  9. 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测

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

最新文章

  1. Excel应该这么玩——5、三种数据:Excel也是系统
  2. svm 程序matlab,求svm的matlab程序
  3. ActiveXObject函数详解
  4. kettle从入门到精通_数据分析师的全景职业规划,入门、转行都先看这篇
  5. 使用.net备份和还原数据库
  6. 纯CSS: hover特效
  7. 在不用第三方参数的情况下,交换两个参数的值
  8. Spring框架学习---Spring Framework上篇
  9. Mac 下的代码比对工具
  10. opencv立方体的画法_opencv几何图形画法
  11. 微博营销常用操作方法总结
  12. 使用x64编译fastdb报错
  13. coreldraw的线条怎么变成圆头_CDR将照片变线条的三种方法
  14. oracle的dos登陆口令,ORACLE的DOS操作方式
  15. Qt widget事件传递顺序以及监听特定控件是否接收某个事件
  16. maven使用TestNG
  17. 怎么画因果图?因果图绘图步骤详解
  18. oracle忘记解锁scott和hr用户问题
  19. 向上取整、向下取整与四舍五入(易理解版)
  20. 拿什么拯救你 我的“游戏寡妇”、“游戏孤儿”们

热门文章

  1. 从零开始编写一个微信小程序(微信开发者工具+JS+WuxUI组件库+云开发)万字整理,建议收藏!
  2. 关于数据库报错ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061
  3. configure.ac
  4. windows执行cygwin慢问题
  5. ubuntu18.04 littlevgl运行环境搭建
  6. 怎么在手机上做文字长图?云便签可将文字生成长图并分享
  7. 通达信资金净流入公式_通达信资金净流入指标公式$$$$$$
  8. 一、MicroApp快速入门示例
  9. ljmp指令_51单片机主要汇编指令集
  10. 计算机画图怎么画荷花图片简笔画,画荷花最简单的画法 荷花画图片简单画法...