论文链接:https://arxiv.org/abs/2003.13328v1
代码链接:https://github.com/Andrew-Qibin/SPNet

从之前语义分割的研究事实证明,空间池化可有效捕获用于场景分析等像素级预测任务的远程上下文信息。本文在传统的N×N型Spatial pooling的基础上,提出了一种考虑狭长卷积核(1×N或N×1)的strip pooling策略。并基于Strip pooling,进一步研究了Spatial pooling体系结构设计。

主要贡献:

1)引入了一个新的条纹池化(strip pooling)模块,使backbone网络能够有效地模拟长距离依赖关系;

2)提出了一种以多种金字塔池化(Spatial pooling)为核心的新型模块MPM,并构建了SPNet;

3)系统地比较了所提出的strip pooling和传统Spatial pooling技术的性能;两种新颖的基于池的设计都是轻量级的,并且可以在现有场景解析网络中用作有效的即插即用模块。

4)在ADE20K和CityScapes上进行的大量实验表明,本文的方法达到了SOTA。

一、背景

提高卷积神经网络中远程依赖关系建模能力的一种方法是采用self-attention机制或non-local模块。然而,它们会消耗大量内存。

具体文章可以关注:视觉注意力机制:self-attention机制与non-local模块。对于non-local模块计算量大的问题的改进方法,可以关注文章:non-local模块如何改进?来看CCNet、AAN。

其他的远程上下文建模方法包括:

  • 空洞卷积,其目的是在不引入额外参数的情况下扩大卷积神经网络的感受野;

  • 全局/金字塔池化,通过结合不同池化核大小的池化层,为图像提供全局信息。

然而,空洞卷积和池化操作都是在正方形卷积中输入特征图并进行卷积运算。这限制了它们在捕获广泛存在于现实场景中的各向异性的上下文上的灵活性。

例如,在某些情况下,目标对象可能具有长条形结构(如图1b中的草地)或离散分布(如图1a中的柱子)。使用大的方形池窗口不能很好地解决这个问题,因为它将不可避免地合并来自无关区域的污染信息。

图1:图中说明了长条形池化和空间池化在场景解析方面的不同工作方式。从上到
下分别为:条纹池化;传统的空间池池化;只使用传统池化的结果 ;考虑条纹池化的
结果。如上图所示,与传统的空间池化(绿色网格)相比,条纹池化具有条带形的
池化核(红色网格),因此可以捕获离散分布区域(黄色边框)之间的远距离依赖关系。

为了更有效地捕获长依赖关系,本文在空间池化层扩大卷积神经网络感受野和捕获上下文信息的基础上,提出了条形池化(strip pooling)的概念。

作为全局池化的替代方案,条纹池化有两个优点:

  • 它沿着一个空间维度部署一个长条状的池化核形状,因此能够捕获孤立区域的长距离关系,如图1(a)和1©的第一行所示部分所示。

  • 在其他空间维度上保持较窄的内核形状,便于捕获局部上下文,防止不相关区域干扰标签预测。

在网络中使用这种长而窄的池内核,可以使语义分割网络能够同时聚合全局和局部上下文信息。这是与传统的从固定的正方形区域收集上下文的池化有本质的不同。

具体方法

基于条纹池化的想法,作者提出了两种即插即用的池化模块 — Strip Pooling Module (SPM) 和 Mixed Pooling module (MPM)。

2.1、SPM(Strip pooling)

SPM由两条路径组成,它们分别侧重于沿着水平和垂直空间两个维度捕获远程上下文。


图中的条纹池化,实际上和普通池化方法没有区别,就是把池化核(长条形区域)所对应的特征图上位置的像素值求平均。

主要流程:

  • 输入一个特征图,这里实际上为C×H×W,为了方便讲解图中只画了一个通道。C个通道的特征图输入处理原理与这里所示的一个通道操作一模一样。

  • 输入的特征图经过水平和竖直条纹池化后变为H×1和1×W,对池化核内的元素值求平均,并以该值作为池化输出值。

  • 随后经过卷积核为3的1D卷积对两个输出feature map分别沿着左右和上下进行扩容,扩容后两个特征图尺寸相同,对扩容后的特征图对应相同位置求和得到H×W的特征图。

  • 之后通过1×1的卷积与sigmoid处理后与原输入图对应像素相乘得到了输出结果。

在上面的过程中,输出张量中的每个位置都与输入张量中的各种位置建立了关系。例如,在上图中,输出张量中以黑框为界的正方形与所有与它具有相同水平或垂直坐标的位置相连(被红色和紫色边框包围)。因此,通过多次重复上述聚合过程,可以在整个场景中构建长期依赖关系。此外,得益于element-wise乘法操作,该SPM也可以被视为一种视觉注意力机制。(其实,这个操作与CCNet思路类似,大家可以参考视觉注意力机制系列文章进行对比)

SPM可以直接应用于任何预先训练的骨干网络,而无需从无到有地进行训练。与全局平均池化相比,条纹池化考虑的是较长但较窄的范围,而不是整个特征图,避免了在相距较远的位置之间建立不必要的连接。与需要大量计算来建立每对位置之间关系的基于注意力的模块(no-local )相比,SPM是轻量级的,可以很容易地嵌入到任何构建块中,从而提高捕获远程空间依赖关系和利用通道间依赖项的能力。

2.2、MPM(Mixed Pooling Module)

此外,作者提出了一种新的附加组件块,称为混合池模块(MPM),以进一步在高语义级别上建模长期依赖关系。它通过利用具有不同内核形状的池化操作来探测具有复杂场景的图像,从而收集有用的上下文信息。

之前的研究结果表明,金字塔池模型(pyramid pooling module, PPM)是增强语义分割网络的有效方法。然而,PPM严重依赖于标准的池化操作(尽管不同的池内核位于不同的金字塔级别)。考虑到标准池化和条纹池化的优点,作者改进了PPM,提出了混合池模块(MPM),**它侧重于通过各种池化操作聚合不同类型的上下文信息,以使特征表示更有辨别力。**优点是可以连续使用它来扩展远程依赖关系。在具有相同骨干网的情况下,仅具有两个MPM(原始PPM的大约1/3参数)的网络的性能甚至比PSPNet还要好。


提出的MPM由两个子模块组成,它们同时捕获不同位置之间的短距离和长距离依赖关系,作者发现这对于场景解析网络都是必不可少的。

对于长距离依赖关系,与先前使用全局平均池化层的工作不同,文中通过同时使用水平和垂直条纹池化操作来捕获上下文信息。简化图可在图3(b)中找到。同时,条纹池化使在整个场景中离散分布的区域之间的连接和具有条纹状结构的编码区域成为可能。

但是,对于语义区域分布紧密的情况,捕获局部上下文信息也需要进行空间池化。考虑到这一点,如图3(a)所示,文中采用了轻量级金字塔池子模块来进行短程依赖收集。它具有两个空间池化层,然后是用于多尺度特征提取的卷积层,以及用于原始空间信息保留的2D卷积层。每次合并后的特征图的大小分别为20×20和12×12,然后通过求和将所有三个子路径合并。

基于以上两个子模块,文中将它们嵌套在具有瓶颈结构的残差块中,以进行参数缩减和模块化设计。具体地,在每个子模块之前,首先使用1×1卷积层来减少通道数量。然后将两个子模块的输出被串联在一起,并引入另一个1×1卷积层以进行通道扩展。其中,除了用于通道数量减少和扩展的卷积层以外,所有卷积层的内核大小均为3×3或3的倍数大小。

2.3、SPNet

论文基于SPM和MPM模块搭建了一个网络:SPNet。采用经典的残差网络作为backbone。通过扩张策略改进了原始ResNet,并将最终的特征图大小设置为输入图像的1/8。将SPM添加到每个阶段中最后一个构建块的3×3卷积层和最后一个阶段中的所有构建块之后。SPM中的所有卷积层共享相同数量的输入张量通道。对于MPM,由于其模块化设计,我们直接将其构建在主干网络上。由于骨干网络的输出具有2048个通道,因此我们首先连接一个1×1卷积层将输出通道从2048减少到1024,然后添加两个MPM在主干上。在每个MPM中,所有内核尺寸为3×3或3的倍数的卷积层都有256个通道(即1/4的缩减率为用过的)。最后添加卷积层以预测分割图。

实验结果

论文在ADE20K、Cityscapes和Pascal Context数据集上进行了实验。在cityscape上达到了82.0的mIoU。具体实验细节,可以参考论文原文。



论文:CVPR2020 | Strip Pooling:语义分割新trick,条纹池化取代空间池化相关推荐

  1. CVPR2020论文解读:三维语义分割3D Semantic Segmentation

    CVPR2020论文解读:三维语义分割3D Semantic Segmentation xMUDA: Cross-Modal Unsupervised Domain Adaptation for 3D ...

  2. 点云的密度 曝光时间_200倍的提速!华人博士生提出大场景三维点云语义分割新框架...

    [新智元导读]今天分享一篇被今年CVPR接收的论文.该文提出的算法可以高效处理百万量级的点组成的大场景3D点云,同时计算效率高.内存占用少,能直接处理大规模点云,不需要复杂的预处理/后处理,比基于图的 ...

  3. 计算成本缩减100倍!港中文提出语义分割新方法:张量低秩重建|ECCV2020

    原文链接:https://bbs.cvmart.net/articles/3099 专注计算机视觉前沿资讯和技术干货 微信公众号:极市平台 官网:https://www.cvmart.net/ --- ...

  4. [CVPR 2020] RandLA-Net:大场景三维点云语义分割新框架(已开源)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者Qingyong Hu授权转载,不得擅自二次转载.原文链接:https://zhuanl ...

  5. ECCV2020 | 北京大学提出RGB-D语义分割新网络,多模态信息融合

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 这篇文章收录于ECCV2020,由北京大学.商汤科技.香港中文大学提出的基于RGB-D图像的语义分割算 ...

  6. 精度高、模型小、速度快!梯形DenseNets结构实现语义分割新高度!

    点击我爱计算机视觉标星,更快获取CVML新技术 今天上午arXiv出现一篇非常值得参考的语义分割文章<Efficient Ladder-style DenseNets for Semantic ...

  7. 论文翻译 | Mask-SLAM:基于语义分割掩模的鲁棒特征单目SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 本文提出了一种将单目视觉SLAM与基于深度学习的语义分割相结合的新方法.为了稳定运行,vSL ...

  8. 重磅发布!Google语义分割新数据集来啦!又一个分割SOTA模型

    [导读]自动驾驶里视觉一直为人所诟病,特斯拉就是经常被拉出来批判的典型.谷歌最近开发了一个新模型,效果拔群,已被CVPR2021接收. 对于人来说,看一张平面照片能够想象到重建后的3D场景布局,能够根 ...

  9. 霸榜!Google发布语义分割新数据集!

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 对于 ...

最新文章

  1. Test Reprot
  2. POJ-3268-最短路(dijkstra算法)
  3. js切换换class
  4. 编写高性能 .NET 代码 第一章:工具介绍 -- Performance Counters(性能计数器)
  5. php滚动到指定位置,JQuery插件:ScrollTo平滑滚动到页面指定位置
  6. SpringCloud工作笔记057---常用免费数据接口
  7. 做好以下四点,拒做 “ 空心 ” 程序员 | CSDN 博文精选
  8. JSK-398 字符$出现的次数【入门】
  9. Snmp4j编程简介之一
  10. java软件开发毕业论文_基于java软件毕业论文.doc
  11. 电商帝国阿里巴巴起跑中国量子产业
  12. pandas获得指定行_pandas取dataframe特定行/列
  13. 苹果审核被拒1.1和5.0
  14. socket 端口复用
  15. python在屏幕上画画_想学画画?python满足你!
  16. 《Mysql是怎样运行的》读书笔记之单表访问
  17. 用C语言写飞机小游戏
  18. U盘在自己电脑读不出来,但其它电脑的可以读,别的u盘在自己电脑又可以识别的解决方法
  19. macOS备份迁移系统偏好设置
  20. 邓应海:美前财长发出警告,大行情不断!最新黄金走势分析

热门文章

  1. 智能手机屏幕常用单位浅析
  2. NWPU-Crowd
  3. 「建议收藏」第一人称视角带你走进 Vue 源码世界
  4. XWPFParagraph设置样式
  5. EXCEL条件格式 (二)
  6. 手机怎么升级为鸿蒙系统,这9款华为手机可升级为鸿蒙系统,有你的手机吗?...
  7. js实现字母序号自动递增
  8. mount -t nfs报错bad option; bad option; for several filesystems , you might need a /sbin/mount
  9. MySQL查询任课老师所在系_查询数据库系统课程的任课教师。
  10. 甲;乙;丙;丁四个人过桥,分别需要1,2,5,因为天黑,必须借助手电筒过桥可是总共只有一个手电筒,并且桥的载重能力有限,只能承受两个人的重量也就是说每次最多过两个人,怎样才能做到用