Strip Pooling:提出一种长条形的池化核

本文提出一种新的池化方法——条纹池化,通过长而窄的池化核有效捕获长距离依赖关系。基于此设计了两个模块:SPM用于增强backbone的感受野,MPM用于同时捕获长、短距离上下文信息。实验结果表明该方法在多个基准集上达到最优。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文地址:https://arxiv.org/pdf/2003.13328.pdf

目录

0、摘要

1、动机

2、方法

2.1、池化公式

2.2、SPM

2.3、MPM

2.4、SPNet

3、实验结果

4、总结


0、摘要

空间池化已被证明在像素级预测的任务(如:场景解析)中进行捕获长距离上下文信息时非常高效。本文针对传统的核大小为N*N的空间池化进行了改进,提出了一种核大小为1*N或者N*1的池化操作,称之为条纹池化。基于条纹池化,进一步研究了池化结构:(1)引入了一个新的条纹池化模块,使得模型可以建模长距离依赖;(2)展示了一种新颖的构建块,其带有不同的空间池化核;(3)系统地对条纹池化和传统池化方法进行了对比。这种基于新颖池化的设计,既轻量,又可作为插件应用到已有的场景解析网络。在流行基准集上的大量实验表明,该方法达到了SOTA。

1、动机

在语义分割领域,用于获取长距离依赖的方法有:自注意力机制、空洞卷积。

自注意力机制可以建模全局上下文,不过其计算量过大;空洞卷积通过增大感受野来捕获更远距离的依赖信息,不过其形状为方形,仍然限制了其捕获的距离。

因此,本文提出了条纹池化方法来扩展CNN的感受野,同时收集上下文信息。

条纹池化作为全局池化的替代品,有两个优势:

首先,其在一个空间维度上应用了一个长条状的池化核,因此能够捕获长距离信息,如图1a和1c;

其次,它在另一个维度上保持比较窄的尺寸,可以避免捕获一些无关信息。

2、方法

基于条纹池化操作,本文提出了两个模块:条纹池化模块(SPM)、混合池化模块(MPM)。

其中,SPM包含了两条路径:水平、垂直,分别用于捕获两个方向的长距离上下文依赖;MPM用于在高语义级别上进一步建模长距离依赖,其通过利用不同形状的池化核进行信息聚合,来探索复杂场景的图像。

基于SPM和MPM两种模块,作者设计出了SPNet,该网络在各流行benchmark上达到了SOTA。

2.1、池化公式

设输入为x \in \mathbb R^{H\times W},池化核大小为h\times w,考虑一种简单情况:H和W能够被h和w整除,则池化后的尺寸为\frac{H}{h} \times \frac{W}{w}

传统的平均池化公式为:

y_{i_{o}, j_{o}}=\frac{1}{h \times w} \sum_{0 \leq i<h} \sum_{0 \leq j<w} x_{i_{o} \times h+i, j_{o} \times w+j}  (1)

而对于条纹池化,其水平和垂直方向的池化公式分别为:

y_{i}^{h}=\frac{1}{W} \sum_{0 \leq j<W} x_{i, j}  (2)

y_{j}^{v}=\frac{1}{H} \sum_{0 \leq i<H} x_{i, j}  (3)

2.2、SPM

SPM主要用于backbone,以增强其捕获长距离依赖的能力。如图2所示,令输入为x \in \mathbb R^{C\times H\times W},SPM的处理过程描述如下:

  • (1)将输入分别进行水平条纹池化、垂直条纹池化,得到对应的池化map:y^v \in \mathbb R^{C\times H}y^h \in \mathbb R^{C\times W}
  • (2)使用一个3*3的1D卷积,将池化map扩展到与输入相同的分辨率{C\times H\times W},得到扩展后的y^v, y^h
  • (3)对扩展后的feature map进行融合:y_{c, i, j}=y_{c, i}^{h}+y_{c, j}^{v}
  • (4)然后,经过一个1*1卷积和一个Sigmoid层之后,与原输入进行对应元素相乘,即可得到SPM最终的输出:\mathbf{z}=\operatorname{Scale}(\mathbf{x}, \sigma(f(\mathbf{y})))

经过上述过程,output tensor中的每个位置都构建了input tensor中对应位置垂直、水平两个方向上各位置的信息,也即十字交叉位置上的所有元素。这一点和CCNet中的交叉注意力机制有点相似,其实,作者也提到该模块也可以作为一个注意力模块插件来使用。

2.3、MPM

金字塔池化模块(PPM)对场景解析的作用已被证实,但是PPM严重依赖标准的池化方法(在不同等级的金字塔上应用不同的池化核)。因此,作者设计了MPM来充分利用标准池化和条纹池化的优势:通过不同的池化操作融合不同类型的上下文信息,从而使得特征更具判别力。

所提出的MPM包括两个子模块:同时捕获不同位置间的短距离依赖和长距离依赖关系,这两种依赖对场景解析都具有一定帮助。

对于长距离依赖,没有使用功能先前研究使用的全局平均池化(GAP),而是使用水平和垂直的条纹池化来收集这类线索。基于此,设计了捕获长距离依赖的子模块,如图3(b)所示。

条纹池化可以捕获分布较为分散的上下文信息,但是,对于那些较为集中的信息则仍需要使用标准的空间池化来捕获。也因此,设计了捕获短距离依赖关系的的子模块,如图3(a)所示。

对于两个子模块,简单描述下:

  • 对于(a)模块,使用了了两种标准的池化操作得到池化后的map,再加上原始输入,共三个feature maps,分别经过2D卷积后,池化路径(上面两条)进行上采样,然后将三个feature maps融合,再经过一个2D卷积;
  • 对于(b)模块,与SPM类似,分别使用水平、垂直方向的条纹池化,得到一维向量,然后经过1D卷积后,上采样到原分辨率,最后经过一个2D卷积;

2.4、SPNet

基于SPM和MPM模块,作者设计了SPNet:

  • backbone用的是ResNet,并利用空洞卷积进行了改进,同时将最终输入步长设为8,也即得到的feature map尺寸是原图1/8。
  • SPMs模块加到每个stage的最后一个构建块以及最后一个stage的所有构建块的3*3卷积之后。SPM中的所有卷积层的通道数都与该模块的输入通道保持一致。
  • MPM则直接放在backbone之后:首先使用一个1*1卷积将backbone的输出进行降维,从2048到1024;然后接上两个MPM。对于每个MPM,所有卷积层都是核大小为3*3、通道数为256。
  • 最后在接一个卷积层来生成最终的分割map。

3、实验结果

4、总结

本文主要是提出了一种新的池化方法——条纹池化,其通过长而窄的池化核可以建模长距离依赖关系。基于这种池化方式,设计了两个模块:条纹池化模块SPM用于增加backbone的感受野、混合池化模块MPM用于同时捕获长、短距离的上下文信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AICVHub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值