SPP、ASPP与PPM

  • SPP
  • PPM
  • ASPP

SPP

SPP模块是何凯明大神在2015年的论文《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》中被提出。
在R-CNN中需要固定输入图片的尺寸,因为卷积层后面的全连接层的结构是固定的。但在现实中,我们的输入的图像尺寸总是不能满足输入时要求的大小,然而通常的手法就是裁剪(crop)和拉伸(warp),但这样做总归是不好的,其扭曲了原始的特征。而SPP层通过将候选区的特征图划分为多个不同尺寸的网格,然后对每个网格内都做最大池化,这样依旧可以让后面的全连接层得到固定的输入。


Fast-RCNN中的ROI pooling层实际上就是一种特殊的spatial pyramid pooling,它们思想是类似的,只是ROI pooling只用一种尺寸的网格来池化,而spatial pyramid pooling同时用了多种尺寸的网格。

PPM

PPM(Pyramid Pooling Module)是PSPNet中提出的一个模块,PSPNET是用于语义分割的一个网络。
现在大多数先进的语义分割框架大多数基于FCN,FCN不能有效的处理场景之间的关系和全局信息。
一般来说网络越深感受野越大(resceptive field),但是理论上的感受野和实际网络中的感受野还是有差距的(实际的感受野小于理论的感受野),这使得网络无法有效的融合全局特征信息,作者提出的PPM就解决了这个问题。
GAP(Global Average Pooling,全局平均池化)能够有效的融合全局上下文信息,但是其对信息的融合和提取能力有限,而且简单的使用GAP将信息压缩为一个通道很容易损失很多有用的信息,因此将不同感受野的特征和子区域的特征融合可以增强特征表征能力。

上图就是PPM模块,从前面网络中提取出的特征图在此处分成两个分支,一个分支分为多个子区域进行GAP(这与PSP模块中的结构类似·),接着用1*1的卷积调整通道大小,再通过双线性插值获得未池化前的大小,最后将两个分支融合。
PSP模块能够聚合不同区域的上下文从而达到获取全局上下文的目的。

ASPP

ASPP(atrous spatial pyramid pooling)是在deeplab中提出来的,在后续的deeplab版本中对其做了改进,如加入BN层、加入深度可分离卷积等,但基本的思路还是没变。
讲到ASPP时,首先需要提到空洞卷积(Atrous/Dilated Convolution)。在于语义分割任务中,想要对图片提取的特征具有较大的感受野,并且又想让特征图的分辨率不下降太多(分辨率损失太多会丢失许多关于图像边界的细节信息),但这两个是矛盾的,想要获取较大感受野需要用较大的卷积核或池化时采用较大的strid,对于前者计算量太大,后者会损失分辨率。而空洞卷积就是用来解决这个矛盾的。即可让其获得较大感受野,又可让分辨率不损失太多。空洞卷积如下图:

(a)是rate=1的空洞卷积,卷积核的感受野为3×3,其实就是普通的卷积。
(b)是rate=2的空洞卷积,卷积核的感受野为7x7
(c)是rate=4的空洞卷积,卷积核的感受野为15x15
空洞卷积的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。

进行分割任务时,图像存在多尺度问题,有大有小。一种常见的处理方法是图像金字塔,即将原图resize到不同尺度,输入到相同的网络,获得不同的feature map,然后做融合,这种方法的确可以提升准确率,然而带来的另外一个问题就是速度太慢。DeepLab v2为了解决这一问题,参考了SPP、PPM等引入了ASPP(atrous spatial pyramid pooling)模块,即是将feature map通过并联的采用不同膨胀速率的空洞卷积层用于捕获多尺度信息,并将输出结果融合得到图像的分割结果。如下图所示,这是在deeplab v3中改进后的ASPP。用了一个1×1的卷积和3个3×3的空洞卷积,每个卷积核有256个且都有BN层。事实上,1×1的卷积相当于rate很大的空洞卷积,因为rate越大,卷积核的有效参数就越小,这个1×1的卷积核就相当于大rate卷积核的中心的参数。

SPP、ASPP与PPM相关推荐

  1. 我们是如何改进YOLOv3进行红外小目标检测的?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 [导语]本文将介绍BBuf.小武和笔者一起在过年期间完成的一个目标检测项目,将描述我们模型改进的思路. ...

  2. 【语义分割】1、语义分割超详细介绍

    文章目录 一.分割方法介绍 1.1 Fully Convolutional Networks [2015] 1.1.1 FCN 1.1.2 ParseNet 1.2 Encoder-Decoder B ...

  3. 关于如何改进YOLOv3进行红外小目标检测的?

    关于如何改进YOLOv3进行红外小目标检测? 对于提高效果可以做出努力的方向 1. 对数据集进行统计 2.修改anchor 3. 构建Baseline 4.数据集部分改进 ①过采样 ②在图片中任意位置 ...

  4. 语义分割该如何走下去?

    公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 来自 | 知乎 链接 | https://www.zhihu.com/question/390 ...

  5. YOLOv4 论文翻译

    整理:我爱计算机视觉 本文源自知乎,已获作者授权转载,请勿二次转载. https://zhuanlan.zhihu.com/p/136183555 本文是YOLO系列的一个继承篇,由俄罗斯开发者Ale ...

  6. YOLO发展史(v4/v5的创新点汇总!)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 YOLO系列是非常经典的目标检测算法,尤其是 YOLO v1和v3,以及近期的v4和v5,都有很大影响 ...

  7. 汇总|目标检测中的数据增强、backbone、head、neck、损失函数

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:Tom Hardy https://zhuanlan.zhihu.com/p/137769687 ...

  8. YOLOv4重磅发布,五大改进,二十多项技巧实验,堪称最强目标检测万花筒

    今年2月22日,知名的 DarkNet 和 YOLO 系列作者 Joseph Redmon 宣布退出 CV 界面,这也就意味着 YOLOv3 不会再有官方更新了.但是,CV 领域进步的浪潮仍在滚滚向前 ...

  9. YOLO系列算法精讲:从yolov1至yolov4的进阶之路(呕心沥血2万字超全整理,建议收藏!)

    从刚开始接触YOLO到现在也已经有大半年时间了,中间也陆陆续续接触过其它网络.最近又抽时间研究了一下YOLOv4. 因此,趁此机会,将yolov1到yolov4进行一个全面的整理和总结,希望对即将入坑 ...

最新文章

  1. java comp env 区别_加和不加java:comp/env/前缀有什么区别?
  2. Java web项目报错 Java compiler level does not match the version of the installed Java project facet.
  3. ajax如何解决浏览器缓存问题
  4. 零基础学Python的几个经典例子
  5. STC单片机不需要按电源开关下载的方法!
  6. CCF 201809-2 买菜
  7. esxi 命令行查看设备
  8. unity天空盒渐变,Unity 3D从一个天空盒淡入另一个天空盒
  9. 图书馆管理系统mysql的创建_简单的图书馆管理系统数据库设计
  10. 改变文本颜色和字体大小的脚本
  11. 华师大的计算机专业属于提前批吗,关于华师大、上师大提前批的问题
  12. 带你玩东方外传系列一 ~ 十游戏链接
  13. python代码运行速度有点慢 ? 教你使用多线程速度飞升
  14. 加入滚动条的html代码
  15. GPS时钟源(GPS时间同步服务器)的概述
  16. 多媒体——图片——使用相机拍摄图片
  17. *一篇看了心有所感且文风特别好的文章**
  18. 2017年上半年信息安全工程师考试真题含答案(上午题)
  19. f_lseek_C语言中lseek()函数和fseek()函数的使用详解
  20. Refinitiv推出Qual-ID,整合数字身份技术与了解你的客户(KYC)尽职调查

热门文章

  1. MOBA手游《小米超神》案例精讲
  2. 点击按钮,下载二维码图片
  3. 2019新版前端与移动开发学习路线图(视频+工具+书籍+资源)
  4. FPGA串口之RS-485
  5. 谷歌浏览器打印不弹出预览直接打印机打印的方法
  6. 李沐的深度学习笔记来了!
  7. 【Chrome】从Google官网下载 Google Chrome 离线安装包
  8. Flutter地图系列(七)—— 高德地图记录运动轨迹
  9. 【区块链】【IOT】深度解读物联网区块链“IOTA”:不仅解决IoT痛点,还解决区块链痛点
  10. iOS 自定义图片无限轮播控件