(CVPR-2020)Strip Pooling:重新思考场景解析的空间池化

Strip Pooling:重新思考场景解析的空间池化

paper题目:Strip Pooling: Rethinking Spatial Pooling for Scene Parsing

paper发表于CVPR 2020

paper地址:链接

Abstract

空间池化已被证明在为逐像素预测任务(例如场景解析)捕获远程上下文信息方面非常有效。本文除了通常 N × N N \times N N×N 规则形状的传统空间池化之外,引入了一种新的池化策略重新思考空间池化的制定,称为条带池化,它考虑了一个长而窄的内核,即 1 × N 1 \times N 1×N N × 1 N \times 1 N×1。基于条带池化,通过以下方式进一步研究空间池化架构设计:1)引入一个新的条带池化模块,使骨干网络能够有效地模拟远程依赖关系,2)提出一种具有多种空间池化的新型构建块:一个核心,3)系统地比较了所提出的条带池化和传统空间池技术的性能。这两种新的基于池化的设计都是轻量级的,可以作为现有场景解析网络中的高效即插即用模块。对流行基准(例如 ADE20K 和 Cityscapes)的广泛实验表明,本文的简单方法建立了新的最先进的结果。代码可在 链接 获得。

1. Introduction

场景解析,也称为语义分割,旨在为图像中的每个像素分配一个语义标签。作为最基本的任务之一,它已被广泛应用于计算机视觉和图形应用,例如自动驾驶 、医学诊断、图像/视频编辑、显著目标检测和航拍图像分析。最近,基于全卷积网络 (FCN) 的方法在场景解析方面取得了非凡的进展,它们具有捕获高级语义的能力。然而,这些方法大多是堆叠局部卷积和池化操作,因此由于有效视野有限,因此很难很好地处理具有各种不同类别的复杂场景。

提高 CNN 中远程依赖建模能力的一种方法是采用自注意力或非局部模块。然而,众所周知,它们会消耗大量内存来计算每个空间位置的亲和力矩阵。远程上下文建模的其他方法包括:空洞卷积,旨在在不引入额外参数的情况下扩大 CNN 的感受野;或全局/金字塔池化总结图像的全局线索。然而,这些方法(包括空洞卷积和池化)的一个常见限制是它们都在方形窗口内探测输入特征图。这限制了它们在捕捉现实场景中广泛存在的各向异性上下文方面的灵活性。例如,在某些情况下,目标对象可能具有长程带状结构(例如,图 1b 中的草地)或离散分布(例如,图 1a 中的柱子)。使用大的方形池窗口不能很好地解决这个问题,因为它不可避免地会包含来自不相关区域的噪声信息。

图1

图 1. 条带池化和空间池在场景解析中的工作方式不同的图示。从上到下:条带池化;传统的空间池化;ground-truth;仅使用传统空间池化的结果;考虑了条带池化的结果。如顶行所示,与传统的空间池化(绿色网格)相比,条带池化具有带状内核(红色网格),因此可以捕获离散分布的区域之间的远程依赖关系(黄色边界框)。

本文为了更有效地捕获远程依赖关系,利用空间池化来扩大 CNN 的感受野并收集信息上下文,并提出条带池化的概念。作为全局池化的替代方案,条带池化具有两个优点。首先,它沿一个空间维度部署了一个长核形状,因此能够捕获孤立区域的远程关系,如图 1a 和 1c 的顶部所示。其次,它沿其他空间维度保持狭窄的内核形状,这有助于捕获局部上下文并防止不相关区域干扰标签预测。集成这种长而窄的池化内核使场景解析网络能够同时聚合全局和局部上下文。这与从固定方形区域收集上下文的传统空间池化有本质的不同。

基于条带池化操作,作者提出了两个基于池化的场景解析网络模块。首先,设计了一个条带池化模块(SPM)来有效地扩大backbone的感受野。更具体地说,SPM 由两条路径组成,它们侧重于沿水平或垂直空间维度编码远程上下文。对于池化map中的每个空间位置,它对其全局水平和垂直信息进行编码,然后使用编码来平衡其自身的权重以进行特征细化。此外,提出了一种新的附加残差构建块,称为混合池模块(MPM),以进一步在高语义级别上建模远程依赖关系。它通过利用具有不同内核形状的池化操作来探测具有复杂场景的图像来收集信息上下文信息。为了证明所提出的基于池化的模块的有效性,作者提出了将这两个模块合并到ResNetbackbone网络中的SPNet。实验表明,SPNet在流行的场景解析基准上建立了新的最先进的结果。

这项工作的贡献如下:(i)研究了空间池化的传统设计,并提出了条带池化的概念,它继承了全局平均池化的优点,以收集远程依赖关系,同时关注局部细节。 (ii) 设计了一个 Strip Pooling Module 和一个基于 Strip Pooling 的 Mixed Pooling Module。这两个模块都是轻量级的,可以作为有效的附加块插入任何backbone网络以生成高质量的分割预测。 (iii) 提出了将上述两个基于池化的模块集成到一个架构中的 SPNet,它在基线上取得了显著的改进,并在广泛使用的场景解析基准数据集上建立了新的最先进的结果。

2. Related Work

当前最先进的场景解析(或语义分割)方法大多利用卷积神经网络(CNN)。然而,CNN 的感受野通过堆叠局部卷积或池化算子增长缓慢,因此阻碍了它们考虑足够有用的上下文信息。用于场景解析的上下文关系建模的早期技术涉及条件随机场 (CRF)。它们大多在离散标签空间中建模并且计算成本很高,因此尽管已集成到 CNN 中,但现在在产生最先进的场景解析结果方面不太成功。

对于连续特征空间学习,先前的工作使用多尺度特征聚合通过探测输入特征来融合上下文信息以多种速率和多个视野进行过滤或合并操作。 DeepLab采用空洞卷积并融合不同扩张率特征来增加网络的感受野。此外,聚合non-local上下文对场景解析也很有效。

改善感受野的另一条研究方向是空间金字塔池化。通过在每个金字塔级别采用一组具有唯一内核大小的并行池化操作,网络能够捕获大范围的上下文。它已在多个场景解析基准上显示出潜力。然而,它利用上下文信息的能力是有限的,因为只应用了方形内核形状。此外,空间金字塔池仅在backbone网络之上进行了模块化,因此使其不灵活或不直接适用于特征学习的网络构建块。相比之下,本文提出的条带池化模块和混合池化模块采用大小为 1 × N 1 \times N 1×N N × 1 N \times 1 N×1的池化内核,两者都可以插入和堆叠到现有网络中。这种差异使网络能够在每个提出的构建块中利用丰富的上下文关系。在本文的实验中,所提出的模块已被证明比空间金字塔池化更强大和适应性更强。

3. Methodology

本节首先给出条带池化的概念,然后介绍两种基于条带池化的模型设计,以展示它如何改进场景解析网络。最后,描述了通过条带池化增强的场景解析网络的整个架构。

3.1. Strip Pooling


在描述条带池化的公式之前,先简要回顾一下平均池化操作。

Standard Spatial Average Pooling


x ∈ R H × W \mathbf{x} \in \mathbb{R}^{H \times W} xRH×W为二维输入张量,其中 H H H W W W分别是空间高度和宽度。在平均池化层中,需要池化的空间范围 ( h × w ) (h \times w) (h×w)。考虑一个简单的情况,其中 h h h除以 H H H w w w除以 W W W。那么池化后的输出 y \mathbf{y} y也是一个二维张量,高度 H o = H h H_{o}=\frac{H}{h} Ho=hH,宽度 W o = W w W_{o}=\frac{W}{w} Wo=wW。公式上,平均池化操作可以写成
y i o , j o = 1 h × w ∑ 0 ≤ i < h ∑ 0 ≤ j < w x i o × h + i , j o × w + j , 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}, yio,jo=h×w10i<h0j<wxio×h+i,jo×w+j,
其中 0 ≤ i o < H o 0 \leq i_{o}< H_{o} 0io<Ho 0 ≤ j o < W o 0 \leq j_{o}< W_{o} 0jo<Wo。在等式。如图1所示, y \mathbf{y} y的每个空间位置对应一个大小为 h × w h \times w h×w的池化窗口。上述池化操作已成功应用于以前的工作,用于收集远程上下文。但是,在处理具有不规则形状的目标时,它可能不可避免地包含许多不相关的区域,如图 1 所示。

Strip Pooling


为了缓解上述问题,在这里提出了“条带池化”的概念,它使用条带池化窗口沿水平或垂直维度执行池化,如图 1 的顶行所示。给定二维张量 x ∈ R H × W \mathbf{x} \in \mathbb{R}^{H \times W} xRH×W,在条带池化中,需要池化 ( H , 1 ) (H, 1) (H,1) ( 1 , W ) (1, W) (1,W)的空间范围。与二维平均池化不同,所提出的条带池化对一行或一列中的所有特征值进行平均。因此,水平条带池化后的输出 y h ∈ R H \mathbf{y}^{h} \in \mathbb{R}^{H} yhRH可以写为
y i h = 1 W ∑ 0 ≤ j < W x i , j y_{i}^{h}=\frac{1}{W} \sum_{0 \leq j< W} x_{i, j} yih=W10j<Wxi,j
类似地,垂直条带池化后的输出 y v ∈ R W \mathbf{y}^{v} \in \mathbb{R}^{W} yvRW可以写为
y j v = 1 H ∑ 0 ≤ i < H x i , j y_{j}^{v}=\frac{1}{H} \sum_{0 \leq i< H} x_{i, j} yjv=H10i<Hxi,j
给定水平和垂直条形池化层,由于长而窄的内核形状,很容易在离散分布的区域之间建立长期依赖关系,并用条带形状对区域进行编码。同时,由于其沿另一个维度的窄核形状,它还专注于捕获局部细节。这些特性使得所提出的带状池不同于依赖于方形内核的传统空间池化。下文将描述如何利用条带池化来改进场景解析网络。

3.2. Strip Pooling Module


在之前的工作已经证明,扩大backbone网络的感受野有利于场景解析。本小节中,受这一事实的启发,介绍一种有效的方法,通过利用条带池化来帮助backbone网络捕获远程上下文。特别的,作者提出了一种新的条带池化模块(SPM),它利用水平和垂直条带池操作从不同的空间维度收集远程上下文。图 2 描述了提出的SPM。令 x ∈ R C × H × W \mathrm{x} \in \mathbb{R}^{C \times H \times W} xRC×H×W为输入张量,其中 C C C表示通道数。首先将 x \mathbf{x} x输入两个平行路径,每个路径都包含一个水平或垂直条形池化层,然后是一个核大小为 3 的一维卷积层,用于调制当前位置及其相邻特征。给出 y h ∈ R C × H y^{h} \in \mathbb{R}^{C \times H} yhRC×H y v ∈ R C × W \mathbf{y}^{v} \in \mathbb{R}^{C \times W} yvRC×W。为了获得包含更多有用全局先验的输出 z ∈ R C × H × W \mathbf{z} \in \mathbb{R}^{C \times H \times W} zRC×H×W,首先将 y h \mathbf{y}^{h} yh y v \mathbf{y}^{v} yv组合在一起,如下所示,产生 y ∈ R C × H × W \mathbf{y} \in \mathbb{R}^{C \times H \times W} yRC×H×W
y c , i , j = y c , i h + y c , j v . y_{c, i, j}=y_{c, i}^{h}+y_{c, j}^{v} . yc,i,j=yc,ih+yc,jv.
然后,输出 z \mathbf{z} z计算为
z = Scale ⁡ ( x , σ ( f ( y ) ) ) \mathbf{z}=\operatorname{Scale}(\mathbf{x}, \sigma(f(\mathbf{y}))) z=Scale(x,σ(f(y)))
其中 Scale \text{Scale} Scale ( ⋅ , ⋅ ) (\cdot, \cdot) (,)是指逐元素乘法, σ \sigma σ是 sigmoid 函数, f f f 1 × 1 1 \times 1 1×1卷积。需要注意的是,有多种方法可以组合两个条形池化层提取的特征,例如计算两个提取的 1D 特征向量之间的内积。但是,考虑到效率和使SPM轻量,采用上述操作,作者发现仍然可以很好地工作。

图2

图 2. Strip Pooling (SP) 模块的示意图。

在上述过程中,允许输出张量中的每个位置与输入张量中的各种位置建立关系。例如,在图 2 中,输出张量中以黑框为界的正方形连接到与其具有相同水平或垂直坐标的所有位置(由红色和紫色框包围)。因此,通过多次重复上述聚合过程,可以在整个场景上建立长期依赖关系。此外,受益于元素乘法运算,所提出的 SPM 也可以被视为一种注意力机制,并直接应用于任何预训练的backbone网络,而无需从头开始训练。

与全局平均池化相比,条带池化考虑的是长而窄的范围而不是整个特征图,避免了在彼此相距很远的位置之间建立大多数不必要的连接。与需要大量计算来建立每对位置之间关系的基于注意力的模块相比,SPM是轻量的,可以轻松嵌入到任何构建块中,以提高捕获远程空间的能力依赖关系和利用通道间依赖关系。将针对现有的基于注意力的方法对本文的方法的性能进行更多分析。

3.3. Mixed Pooling Module


事实证明,金字塔池化模块(PPM)是增强场景解析网络的有效方法。然而,PPM严重依赖于标准的空间池化操作(尽管在不同的金字塔级别有不同的池化内核),使其仍然受到第 3.1 节中分析的影响。考虑到标准空间池化和条带池化的优点,作者改进了 PPM 并设计了一个混合池化模块(MPM),该模块专注于通过各种池化操作聚合不同类型的上下文信息,以使特征表示更具判别力。

所提出的MPM由两个子模块组成,它们同时捕获不同位置之间的短程和长程依赖关系,作者发现这对于场景解析网络都是必不可少的。对于长期依赖,与之前使用全局平均池化层的工作不同,作者提出通过同时使用水平和垂直条带池化操作来收集此类线索。简化图见图 3(b)。正如第 3.2 节所分析的那样,条带池化使得离散分布在整个场景中的区域之间的连接和编码带状结构的区域成为可能。然而,对于语义区域分布紧密的情况,空间池化也是捕获局部上下文信息所必需的。考虑到这一点,如图 3(a) 所示,本文采用轻量级金字塔池化子模块进行短程依赖收集。它有两个空间池化层,然后是用于多尺度特征提取的卷积层,以及用于保留原始空间信息的 2D 卷积层。每次池化后的特征图的 bin 大小分别为 20 × 20 20 \times 20 20×20 12 × 12 12 \times 12 12×12。然后通过求和组合所有三个子路径。

图3

图 3. (a) 短程依赖聚合子模块。 (b) 远程依赖聚合子模块。在每个子模块的融合操作之后增加了一个卷积层,以减少下采样操作带来的混叠效应。

基于上述两个子模块,作者提出将它们嵌套到具有瓶颈结构的残差块中,用于参数减少和模块化设计。具体来说,在每个子模块之前,首先使用一个 1 × 1 1 \times 1 1×1的卷积层进行通道缩减。两个子模块的输出连接在一起,然后馈入另一个 1 × 1 1 \times 1 1×1卷积层以进行通道扩展,如 [20] 中所做的那样。请注意,除了用于通道缩减和扩展的卷积层之外,所有卷积层的内核大小都是 3 × 3 3 \times 3 3×3或 3(对于 1D 卷积层)。

值得一提的是,与空间金字塔池化模块不同,所提出的 MPM 是一种模块化设计。优点是可以方便地以顺序方式使用,扩展远程依赖收集子模块的作用。作者发现,使用相同的backbone,本文的网络只有两个 MPM(大约是原始 PPM 的 1/3 参数)的性能甚至比 PSPNet 更好。在本文的实验部分,将提供更多的结果和分析。

3.4. Overall Architecture


基于提出的 SPM 和 MPM,本小节介绍一种称为 SPNet 的整体架构。采用经典的残差网络作为backbone。使用扩张策略改进原始 ResNet,最终特征图大小设置为输入图像的 1/8。在每个阶段的最后一个构建块和最后一个阶段的所有构建块的 3 × 3 3 \times 3 3×3卷积层之后添加SPM。 SPM 中的所有卷积层与输入张量共享相同数量的通道。

对于 MPM,由于其模块化设计,直接将其构建在backbone网络上。由于backbone的输出有 2048 个通道,首先将一个 1 × 1 1 \times 1 1×1的卷积层连接到backbone,以将输出通道从 2048 减少到 1024,然后添加两个 MPM。在每个 MPM 中,按照resnet设置,所有核大小为 3 × 3 3 \times 3 3×3或 3 的卷积层都有 256 个通道(即使用 1/4 的缩减率)。最后添加一个卷积层来预测分割图。

参考文献

[20] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In CVPR, 2016.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

顾道长生'

您的支持是我创作的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值