Strip Pooling: Rethinking Spatial Pooling for Scene Parsing论文阅读&翻译
Strip Pooling: Rethinking Spatial Pooling for Scene Parsing论文阅读/翻译
论文地址
Abstract
池化常用来捕获大范围的上下文信息,传统池化内核尺寸为N*N,而本文提出的条形池化的内核尺寸为1*N和N*1。基于条形池化,作者做了以下工作:
(1)引入一个新的条形池化模块,该模块使骨干网能够有效地建模远程依赖关系。
(2)提出一种以各种池化为核心的新颖构建基块。
(3)系统地比较了建议的条形池化和常规池化的性能
两种新颖的设计都是轻量级的,并且可以在现有场景解析网络作为有效的即插即用模块。
Introduction
最近,基于全卷积网络(FCN)的方法凭借其捕获高级语义的能力在场景解析方面取得了非凡的进步。 但是,这些方法大多会叠加局部卷积和池化操作,因此,由于有效视场有限,因此很难很好地应对具有多种不同类别的复杂场景。
提高在CNN中对远程依赖关系建模的能力的一种方法是采用self-attention或non-local 模块,但是这种方式会消耗大量内存。其他用于远程上下文建模的方法有空洞卷积,全局/金字塔池化,这些方法的问题是输出输出都是方形,这限制了它们在现实场景中的灵活性。例如,在某些情况下,目标对象可能具有远距离的带状结构或离散分布(如图)。 使用方形不能很好地解决问题,因为它不可避免地会合并来自无关区域的信息。
在本文中,为了更有效地捕获远程依赖关系,进一步研究使用池化来扩大CNN的接收域并收集信息上下文,并提出了条形池化的概念。 作为全局池的替代方法,条形池化具有两个优点。 首先,它沿一个空间维度部署了长条的核,因此可以捕获孤立区域的长期关系。 其次,它沿其他空间维保持窄的内核形状,这有助于捕获本地上下文并防止无关区域干扰标签预测。 集成了如此长而狭窄的内核,使得场景解析网络可以同时聚合全局和局部上下文。 这与传统的从固定的正方形区域收集上下文的池化本质上是不同的。
基于条形池化操作,我们提出了两个场景解析网络模块。 首先,文中设计一个条形池化模块(SPM),以有效地扩大主干的接收范围。其次,文中提出了一种新颖的附加残差构建模块,称为混合池化模块(MPM),以进一步在高语义级别上对远程依赖性进行建模。为了证明所提出的基于池化的模块的有效性,作者提出了SPNet,它将这两个模块都整合到了ResNet 的主干中。 实验表明,SPNet根据流行的场景解析基准建立了最新的结果。
Methodology
在本节中,我们首先给出条形池化的概念然后介绍基于条形池化两种模型设计,演示其如何改善场景解析网络。 最后,描述了带池合并增强的整个体系结构。
Strip Pooling
它使用条形窗口窗口沿水平或垂直维度执行池化。 给定二维张量x∈RHxW,在条形池化中,需要合并的空间范围为(H,1)或(1,W)。 与二维的平均池化不同,条形池化对行或列中的所有特征值进行平均。 因此,水平条形池化之后的输出yh∈RH可以写成:
相似的,垂直条形池化yv∈RW可以写成:
给定水平和垂直条条形池化层,由于长而窄的内核形状,很容易在离散分布的区域之间建立长期依赖性,并对带状形状的区域进行编码。 同时,由于其沿其他维度的窄核形状,它还专注于捕获局部细节。 在下文中,将描述如何利用条形池化来改善场景解析网络。
Strip Pooling Module
在本小节中,作者介绍一种有效的方法,通过利用条形池化来帮助骨干网络捕获远程上下文。特别是,文中提出了一种新颖的条形池化模块(SPM),该模块利用水平和垂直条形池化操作来收集来自不同空间维度的远程上下文。图中介绍了SPM结构。
令输出张量x∈RCxHxW,C为通道数量,首先将x输入两个平行的路径,每个路径包含一个水平或垂直的条形池化层,然后是一维卷积层,其内核大小为3,用于整合当前位置及其相邻特征。这部分给出了yh∈RCxH和了yv∈RCxW,为了获得含有更多全局先验信息的输出z∈RCxWxH,首先通过下式获得y∈RCxHxW:
然后输出z由下式计算
其中Scale(,)表示逐元素乘法,σ表示sigmoid函数,f是1*1卷积。应当注意,存在多种方式来组合由两个条形池化层提取的特征,例如计算两个提取的一维特征向量之间的内积。 但是,考虑到效率,我们采用了上述操作。
在以上过程中,输出张量中的每个位置允许建立与输入张量中其他位置的关系。例如,上图,输出张量中黑框的位置与和其有相同水平和垂直位置的点(用红色和紫色框围起来)构建连接。通过重复上述过程多次,可以在整个场景上建立远程依赖关系。 此外,得益于基本的乘法运算,建议的SPM还可以被视为一种注意力机制,并且可以直接应用于任何经过预训练的骨干网,而无需从头开始进行训练。
Mixed Pooling Module
金字塔池化(pyramid pooling module (PPM))是是增强场景理解的有效方法,但是使用标准池化,会合并许多无关信息。作者改进了PPM并设计了一个混合池化模块(MPM),该模块致力于通过各种池化操作汇总不同类型的上下文信息,以使特征表示更具区分性。提出的MPM由两个子模块组成,这些子模块可同时捕获不同位置之间的短距离和长距离依赖关系,这些对于场景解析网络都是必不可少的。结构如下图:
对于语义区域分布紧密的情况,捕获本地上下文信息也需要常规池化。 考虑到这一点,采用了轻量级的金字塔池子模块来进行短程依赖项收集。 它具有两个常规池化层,其后是用于多尺度特征提取的卷积层,还有用于原始空间信息保留的2D卷积层。 每次合并后的特征图的大小分别为20×20和12×12, 然后通过求和将所有三个子路径合并。
基于以上两个子模块,作者建议将它们嵌套在具有瓶颈结构的残差块中,以进行参数减少和模块化设计。 具体来说,在每个子模块之前,首先使用1×1卷积层减少通道数量。 两个子模块的输出被串联在一起,然后送入另一个1×1卷积层以增加通道数量,除了用于通道缩小和扩展的卷积层之外,所有卷积层的内核大小均为3×3或3(对于一维卷积层)。
Overall Architecture
根据建议的SPM和MPM,这节介绍了整体架构称为SPNet。 采用经典的残差网络作为骨干。 接下来,使用扩张策略改进了原始ResNet,并将最终特征图大小设置为输入图像的1/8。 在每个阶段的最后一个构建块的3×3卷积层和最后一个阶段的所有构建块之后,添加SPM。 SPM中的所有卷积层共享与输入张量相同数量的通道。
对于MPM,由于其模块化的设计,作者直接将其构建在主干网络上。 由于骨干网的输出具有2048个通道,首先将1×1卷积层连接到骨干网,以将输出通道从2048减少到1024,然后添加两个MPM。 在Resnet之后的每个MPM中,所有内核大小为3×3或3的卷积层都有256个通道(即使用1/4的缩减率)。 在末尾添加卷积层以预测分割结果。