二十七章:OCNet:Object Context for Semantic Segmentation ——对象上下文语义分割

&原文信息

原文题目:《OCNet:Object Context for Semantic Segmentation 》

原文引用:Yuan Y, Huang L, Guo J, et al. OCNet: Object context for semantic segmentation[J]. International Journal of Computer Vision, 2021, 129(8): 2375-2398.

原文链接:https://sci-hub.ru/10.1007/s11263-021-01465-9icon-default.png?t=N6B9https://sci-hub.ru/10.1007/s11263-021-01465-9

0.摘要

        在本文中,我们通过一种名为对象上下文的新的上下文聚合方案来解决语义分割任务,该方案旨在增强对象信息的作用。受到每个像素的类别是从其所属对象继承的事实的启发,我们将每个像素的对象上下文定义为在图像中与给定像素属于相同类别的像素集合。我们使用一个二元关系矩阵来表示所有像素之间的关系,其中值为1表示两个选定的像素属于相同的类别,值为0表示不属于相同类别。

        我们提出使用密集关系矩阵作为二元关系矩阵的替代品。密集关系矩阵能够强调对象信息的贡献,因为与其他像素相比,关系得分在对象像素上通常较大。考虑到密集关系矩阵估计与输入大小相关,需要二次计算开销和内存消耗,我们提出了一种高效的交错稀疏自注意力方案,通过两个稀疏关系矩阵的组合来建模所有像素之间的密集关系。为了捕捉更丰富的上下文信息,我们进一步将交错稀疏自注意力方案与传统的多尺度上下文方案(包括金字塔池化和空洞空间金字塔池化)相结合。我们通过在Cityscapes、ADE20K、LIP、PASCAL-Context和COCO-Stuff等五个具有挑战性的基准测试中展示了我们方法的优势和竞争性表现。

关键词:语义分割、上下文、自注意力

1.引言

        语义分割是计算机视觉中的一个基础主题,对于各种场景理解问题至关重要。它通常被定义为预测每个像素的类别,即像素所属对象的类别。我们主要关注通过明确地确定像素所属的对象区域来提高像素分类准确性。

        自从全卷积网络(FCN)(Long et al.,2015)的开创性方法以来,基于深度卷积神经网络的广泛研究已经在解决语义分割问题上进行了大量的努力。原始的FCN方法存在两个主要缺点:降低了特征分辨率,导致丢失了详细的空间信息;有效感受野较小,无法捕捉长程依赖关系。解决上述缺点的两个主要方法路径是:

        (i)提高特征图的分辨率,以改善空间精度或通过所有阶段保持高分辨率响应图,例如通过扩张卷积(Chen et al.,2018;Yu and Koltun,2016)、解码器网络(Badrinarayanan et al.,2017;Ronneberger et al.,2015)或高分辨率网络(Sun et al.,2019a,b);

        (ii)利用全局上下文来捕捉长程依赖关系,例如ParseNet(Liu et al.,2015)、DeepLabv3(Chen et al.,2018)和PSPNet(Zhao et al.,2017)。

        在本工作中,我们专注于第二种方法路径,并提出了一种更高效的上下文方案。我们将像素的上下文定义为一组选择的像素,并将其上下文表示定义为所有选择像素表示的聚合,如果没有特别说明。

        大多数以前的代表性研究主要利用从空间上相邻或采样的像素形成的多尺度上下文。例如,PSPNet(Zhao et al.,2017)中的金字塔池化模块(PPM)将所有像素分为多个区域,并选择与像素位于同一区域的所有像素作为其上下文。DeepLabv3(Chen et al.,2017)中的空洞空间金字塔池化模块(ASPP)选择不同膨胀率的像素作为像素的上下文。因此,PPM上下文和ASPP上下文的选择像素往往是对象像素、相关背景像素和无关背景像素的混合。鉴于每个像素的类别实质上是它所属对象的类别,我们应该增强构成对象的对象像素。

        为了明确强调对象像素的贡献,我们提出了一个对象上下文,旨在仅收集与给定像素属于相同类别的像素作为其上下文。与传统的多尺度上下文方案相比,我们的对象上下文更加关注必要的对象信息。尽管准确估计对象上下文并不是一项容易的任务,但我们经验性地发现粗略估计的对象上下文已经在各种基准测试中胜过了PPM和ASPP方案。

        对于给定的像素,我们可以使用一个二进制向量来记录属于与其相同类别的像素,值为1,否则为0。因此,可以使用一个N×N的二进制关系矩阵来记录N个像素之间的逐对关系。由于计算二进制关系矩阵是不可行的,我们使用一个密集关系矩阵作为其替代品,其中每个关系值是基于高层特征的内积相似性计算得出的。因此,语义相似的像素的关系值往往较大。在我们的实现中,我们使用传统的自注意机制(Vaswani et al., 2017)来预测密集关系矩阵,这需要O(N^2)的计算复杂度。为了解决效率问题,我们提出了一种新的交错稀疏自注意机制,通过两个稀疏关系矩阵来近似密集关系矩阵,显著提高了效率同时保持性能。为了说明我们的方法能够增强对象像素,我们在图1中展示了一些预测的密集关系矩阵的示例,其中对象像素的关系值大于背景像素的关系值。

        我们进一步说明了两个扩展来捕捉更丰富的上下文信息:

        (i)金字塔对象上下文,在PSPNet(Zhao et al.,2017)之后的空间金字塔划分生成的每个子区域中估计对象上下文。

        (ii)空洞空间金字塔对象上下文,将ASPP(Chen et al.,2017)与对象上下文相结合。

        我们总结我们的主要贡献如下:

        -我们提出了一个明确增强对象信息的新对象上下文方案。

        -我们提出使用高效的交错稀疏自注意机制来实现对象上下文方案,与传统的自注意机制相比,大大降低了复杂性。

        -我们基于三种对象上下文模块构建了OCNet,并在包括Cityscapes、ADE20K、LIP、PASCAL-Context和COCO-Stuff在内的五个具有挑战性的语义分割基准中取得了竞争性能。

 图1:说明预测的密集关系矩阵。

第一列展示了来自Cityscapes验证集的示例图像,并分别用9标记了对象(汽车、人和道路)上的三个像素。

第二列展示了地面真实分割图。

第三列展示了三个像素的密集关系矩阵(或近似的对象上下文图)。

我们可以看到,与所选像素属于相同类别的像素对应的关系值往往较大。

2.相关工作

分辨率。早期基于传统的全卷积网络(FCN)(Long et al.,2015)的研究应用连续的卷积步幅和池化操作来提取具有高级语义信息的低分辨率特征图。例如,ResNet-101的输出特征图大小是输入图像的1/32,这种显著的空间信息丢失是准确的语义分割面临的主要挑战之一。为了生成高分辨率的特征图而不损失太多的语义信息,许多研究(Badrinarayanan et al.,2017;Chen et al.,2017;Ronneberger et al.,2015;Sun et al.,2019a;Yu and Koltun,2016)提出了各种有效的机制。在本文中,我们采用了空洞卷积(Chen et al.,2017;Yu and Koltun,2016)在ResNet-101上,通过遵循PSPNet(Zhao et al.,2017)相同的设置,将输出步幅从32增加到8。此外,我们还基于最近的HRNet(Sun et al.,2019a)进行了实验,其输出步幅为4。我们经验证实,与传统的多尺度上下文机制PPM和ASPP相比,我们的方法在高分辨率输出特征图方面更加高效。更详细的比较结果总结在表4中。

上下文。上下文在各种计算机视觉任务中起着重要作用,其形式多种多样,例如全局场景上下文、几何上下文、相对位置、3D布局等。上下文已经在目标检测(Divvala et al.,2009)和部分检测(Gonzalez-Garcia et al.,2018)中进行了研究。

        上下文对于语义分割的重要性也在最近的研究中得到了验证(Chen et al.,2017;Liu et al.,2015;Shetty et al.,2019;Zhao et al.,2017)。在语义分割的文献中,通常将上下文定义为一组像素。特别是,我们可以将大多数现有的上下文机制分为两种类型:

        (i)附近的空间上下文ParseNet(Liu et al.,2015)将整个图像中的所有像素都视为上下文,PSPNet(Zhao et al.,2017)对四个金字塔尺度的子区域进行金字塔池化,将同一子区域内的所有像素视为属于该子区域的像素的上下文。

        (ii)采样的空间上下文DeepLabv3(Chen et al.,2017)应用多个具有不同采样率的空洞卷积来捕捉空间金字塔上下文信息,并将这些在空间上规则采样的像素视为上下文。

        这两种上下文是在规则的矩形区域上定义的,可能包含属于背景类别的像素。与它们不同,我们的对象上下文被定义为属于同一对象类别的像素集合,强调了对标记像素至关重要的对象像素。同时,也存在一些利用像素之间的语义关系来构建上下文的并行工作(Fu et al.,2019a;Huang et al.,2019;Li et al.,2019;Zhang et al.,2019b;Zhao et al.,2018),我们的方法与其中大部分不同,因为我们提出了一种简单而有效的交错稀疏机制来模拟具有较小计算开销的关系上下文。

注意力。自注意力(Vaswani et al.,2017)和非局部神经网络(Wang et al.,2018b)通过其在建模长程上下文信息方面的高效性,在各种任务中取得了巨大的成功。自注意力方案(Vaswani et al.,2017)在一个位置计算上下文时,将整个句子中的所有位置聚合起来(在编码器阶段)。Wang等人进一步提出了非局部神经网络(Wang et al.,2018b),用于视觉任务,如视频分类、目标检测和实例分割,基于自注意力方案。

        我们的实现受到自注意力方案的启发。我们首先应用自注意力方案来预测密集的关系矩阵,并验证其近似对象上下文的能力。同时,也存在一些并行研究(Fu et al.,2019a;Zhang et al.,2019b),将自注意力方案应用于语义分割。一些最近的工作(Huang et al.,2019;Yue et al.,2018;Zhu et al.,2019)提出了不同的机制来降低自注意力方案的计算复杂度和内存消耗。例如,CGNL(Yue et al.,2018)(紧凑广义非局部)应用RBF核函数的Taylor级数来近似成对相似性,RCCA(Huang et al.,2019)(循环交叉关注)应用两个连续的交叉关注来近似原始的自注意力方案。

        我们的交错稀疏自注意力方案与CGNL和RCCA都不同,通过将密集的关系矩阵分解为两个稀疏的关系矩阵。我们发现类似的机制已经应用于以前的网络架构设计研究中,包括ShuffleNet(Ma et al.,2018)和Interleaved Group Convolution(Xie et al.,2018;Zhang et al.,2017b)。同时,Concurrent Sparse Transformer(Child et al.,2019)也在需要顺序掩码输入的一维文本/音频相关任务上应用了类似的机制。

3.方法

        我们通过四个小节介绍我们的方法。

        首先,我们介绍上下文表示的通用数学形式和对象上下文的定义(第3.1节)。

        其次,我们使用传统的自注意力(SA)(Vaswani et al.,2017)和我们的交错稀疏自注意力(ISA)来实例化对象上下文(第3.2节)。        

        第三,我们提出了对象上下文的金字塔扩展(第3.3节)。

        最后,我们说明OCNet的整体流程和实现细节(第3.4节)。

3.1.公式化

初步介绍。我们将上下文表示的一般数学形式定义为:

        我们使用X和Z分别表示输入表示和上下文表示。xj是X的第j个元素,zi是Z的第i个元素。δ(·)和ρ(·)是两个不同的转换函数。I = f1;···;Ng表示N个像素的集合。我们使用Ii表示I的一个子集,换句话说,Ii是像素i的上下文像素集合。我们在下面的讨论中展示了Ii如何选择像素。直观地说,上述上下文表示的公式是用一组相关像素的加权平均表示来描述一个像素。

        上述的数学公式是基于一维情况的便利性,并且可以轻松地推广到高维情况。现有的代表性上下文方法之间的一个主要区别是上下文Ii的定义。

多尺度上下文。Zhao等人(2017)提出了金字塔池化(PPM)上下文,它将Ii构造为在不同尺度的常规区域中,围绕像素i的空间接近的像素集合。Chen等人(2017)引入了空洞空间金字塔池化(ASPP)上下文,它将Ii估计为围绕像素i以不同膨胀率稀疏采样的像素集合。我们以代表性的多尺度上下文方案ASPP为例来说明Ii的表达式:

 其中r ∈ {12, 24, 36}是膨胀率,||ji - jj||表示像素i和j之间的空间距离,Ii在一维输入上定义。因此,像素i的ASPP上下文是一组采样像素,它们与i具有预定义的空间距离。此外,附录A中我们还提供了基于PPM方案的Ii的表达式。这两种上下文往往是由对象像素和背景像素混合而成的。因此,它们并没有明确增强对象像素的贡献。受到每个像素的类别基本上是从它所在的对象的类别继承的事实的启发,我们提出了一种名为对象上下文的新方案,以明确增强对象像素的信息。

对象上下文。我们将像素i的对象上下文定义为:

其中li和lj分别是像素i和j的标签。我们可以看到像素i的对象上下文实质上是属于与i相同对象类别的一组像素。我们可以用一个N×N的二元关系矩阵表示N个像素之间的任意两个像素之间的关系(编码在地面实况对象上下文中),其中第i行记录了属于与像素i相同类别的所有像素,用1表示,否则为0。特别地,二元关系矩阵只编码了地面实况对象上下文的部分信息,即(相同类别)标签共现关系。换句话说,所有类别可以进行排列,二元关系矩阵不会改变。

        考虑到估计二元关系矩阵是棘手的,我们提出使用稠密关系矩阵作为二元关系矩阵的替代品。我们期望属于同一对象类别的像素之间的关系值大于属于不同类别的像素之间的关系值,从而增强对象像素的贡献。在接下来的讨论中,我们首先介绍直接估计大小为N×N的稠密关系矩阵W的稠密关系方案的表达式。其次,为了提高效率,我们提出了一种稀疏关系方案,将稠密关系矩阵分解为两个稀疏关系矩阵Wl和Wg的组合,其中两个稀疏关系矩阵都是大小为N×N的。更多细节如下所示。

稠密关系。稠密关系方案估计每个像素i与I中所有像素之间的关系。我们通过稠密关系来说明上下文表示:

 

 其中wij是像素i和j之间的关系值,即W在坐标(i,j)处的元素。由于我们需要直接估计i和I中所有像素之间的关系,因此估计W的计算复杂度与输入大小的平方成正比:O(N^2)。

稀疏关系。稀疏关系方案只估计像素i与两个选择像素子集之间的关系,采用“交错(interlacing)方法”(Greenspun, 1999; Roelofs and Koman, 1999)。我们通过稀疏关系来说明上下文表示:

         我们使用上标g /l来标记与全局/局部关系阶段相关的运算符和操作。例如,zg i /zl i表示第i个像素的全局/局部关系阶段后的上下文表示。有关详细信息,请参阅第3.2节。wij g / wij l是像素i与分别属于Iig / Iil的像素j之间的关系。Iig和Iil是选择的上下文像素:

其中Iig和Iil分别是具有与像素i在除以P时相同余数/商的像素的子集。在上述示例中,i和j表示像素i和j在一维情况下的空间位置。P表示全局关系阶段(第3.2节)中的组号,并确定了上下文像素的选择。稀疏关系方案的主要优势在于我们只需要估计像素i和Iig [Iil之间的关系值,而不是I,从而节省了大量的计算成本。

        考虑到具有相同余数/商的像素共享相同的I∗g /I∗l,因此我们忽略下标,并使用Ig /Il来表示共享相同余数/商的所有像素组。我们分别在Ig /Il中的每个像素组内计算(部分)稀疏关系矩阵Wg /Wl。特别地,Wg和Wl都是稀疏块矩阵,我们可以将原始稠密关系矩阵近似为这两个稀疏关系矩阵的乘积:

 其中我们使用P表示一个大小为N×N的置换矩阵,它确保两个稀疏关系矩阵的像素排序相匹配,而P>是P的转置。我们在附录B中说明了P中每个值pi;j的定义,并在附录C中解释了为什么稀疏关系方案比密集关系方案更高效。

图2:说明交错稀疏自注意力。我们的方法由全局关系模块和局部关系模块组成。最左边/最右边的特征图是输入/输出。首先,我们使用四种不同的颜色对输入特征图X进行着色。我们可以看到有4个局部组,每个组由四种不同的颜色组成。对于全局关系模块,我们在X中对具有相同颜色的所有位置进行排列和分组(划分),这些位置之间具有较长的空间间隔距离,并输出Xg。然后,我们将Xg分为4个组,并在每个组上独立应用自注意力。将每个组的更新后的特征图合并在一起,作为输出Zg。对于局部关系模块,我们对Zg进行排列,将原本相邻的位置分组在一起,并得到Xl。然后,我们按照与全局关系相同的方式进行划分和自注意力操作,得到最终的特征图Zl。通过全局关系模块和局部关系模块的组合,我们可以将所有输入位置的信息传播到每个输出位置。具有相同饱和度的颜色标记特征图的值保持不变。只有在使用自注意力操作更新特征图时,我们才增加颜色的饱和度。

3.2.实例化

        我们分别根据自注意力和交错稀疏自注意力来解释密集关系和稀疏关系的具体实例化。自注意力。

自注意力:基于自注意力的密集关系方案的实现如下所示,

 X是输入表示,维度为RN×Cin,W是密集关系矩阵,维度为RN×N,Z是输出表示,维度为RN×Cout。为了方便起见,我们假设在以下讨论中Cin=Cout=C。θ和φ是两个不同的函数,将输入转换为较低维度空间,其中θ(X)和φ(X)的维度为RN×C2。在较低维度空间中使用内积来计算密集关系矩阵W。缩放因子d用于解决softmax函数的小梯度问题,根据Vaswani等人(2017)的描述,我们设置d=C2。自注意力使用函数ρ和δ来学习更好的嵌入,其中ρ(·)的维度为RN×C,δ(·)的维度为RN×C2。根据Vaswani等人(2017)对自注意力的原始描述,我们也可以分别将θ、φ和δ称为查询、键和值变换函数。我们使用两个连续的1×1卷积层+BN+ReLU来实现θ(·)和φ(·)。其中,BN是批归一化(Ioffe和Szegedy,2015)的缩写,用于同步统计信息。我们使用1×1卷积层来实现δ(·)和ρ(·)。具体而言,θ(·)、φ(·)和δ(·)将输入通道减半,而ρ(·)将输入通道加倍。

交错稀疏自注意力。稀疏关系方案的实现,即交错稀疏自注意力,首先将所有像素分成多个子组,并在每个子组上应用自注意力来计算稀疏关系矩阵,即Wg和Wl,以及上下文表示。我们在图2中用二维示例说明了交错稀疏自注意力方案的整体流程,在其中我们使用全局关系模块估计Wg,使用局部关系模块估计Wl。通过这两个稀疏关系矩阵的组合,我们可以近似计算所有像素之间的密集关系,这在附录D中通过一个示例进行了说明。

 全局关系。我们根据Ig的定义,将所有位置划分为多个组,每个组由一部分采样位置组成。考虑到每个组内的像素是根据除以组数P的余数进行采样的,并且它们分布在全局图像范围内,因此我们称之为全局关系。

 其中,Wg^pg^p ∈ R^Q×Q是基于Xg^p的所有位置的小型密集关系矩阵,Zg^p ∈ R^Q×C是基于Xg^pg^p的更新表示,d的取值与前面的方程10相同。对于包括θ(·)、φ(·)、δ(·)和ρ(·)在内的所有变换函数,我们采用相同的实现方式,即遵循自注意力的实现方式。我们在全局关系阶段示例化了整体稀疏关系矩阵Wg。

 在对角块中,只有关系值非零。因此,我们只需要估计属于同一组的像素对之间的关系值,并忽略来自不同组的像素对之间的关系。我们将来自不同组的所有Zg^pg^p连接起来,并在全局关系阶段得到输出表示Zg=[Zg1;Zg2;···;ZgP]。

局部关系。在局部关系阶段,我们根据Il的定义将位置划分为多个组,其中每个像素组根据商进行采样,并且它们分布在局部相邻范围内,因此我们称之为局部关系。我们对全局关系模块的输出特征图应用另一个排列。

 然后,我们将Xl分成Q组,每组包含P个相邻位置。

 每个Xl^ql^q ∈ RP×C,我们有Xl = [Xl1;Xl2;···;XlQ]。我们独立地对每个Xl^ql^q应用自注意力,这与全局关系模块中的方程14和方程15类似。因此,我们可以得到Wql和Zl^ql^q,其中Wql ∈ RP×P是基于Xl^ql^q的小型密集关系矩阵,Zl^ql^q ∈ RP×C是基于Xl^ql^q的更新表示。我们展示了基于局部关系计算得到的稀疏关系矩阵。

 以上基于局部关系的关系矩阵Wl也是非常稀疏的,大部分关系值为零。我们将来自不同组的所有Zl^ql^q连接起来,并在局部关系阶段得到输出表示Zl=[Zl1;Zl2;···;ZlQ]。

 Zl也是交错稀疏自注意力方案的最终输出表示。

复杂度。给定一个大小为H×W×C的输入特征图,我们分析自注意力机制和交错稀疏自注意力方案的计算和内存成本如下所述。自注意力机制的计算复杂度为O(HWC^2+(HW)^2C),而交错稀疏自注意力机制的复杂度为O(HWC^2+(HW)^2C(Ph1Pw+Qh1Qw)),其中在全局关系阶段将高度分为Ph组,宽度分为Pw组,在局部关系阶段将高度分为Qh组,宽度分为Qw组。我们有H=PhQh,W=PwQw。当PhPw=pHW时,我们的方法的复杂度可以降低到O(HWC^2+(HW)^3/2C)。计算复杂度的详细公式和证明在附录E中给出。我们在图3中比较了交错稀疏自注意力方案和传统自注意力方案的理论GFLOPs,可以看到当处理分辨率较高的输入时,我们的交错稀疏自注意力比传统自注意力更高效。为了说明我们方法的优势,我们进一步报告了两种机制的实际GPU内存成本(以MB为单位)、计算成本(以GFLOPs为单位)和推理时间(以ms为单位),如图4所示。

        我们在算法1中提供了提出的交错稀疏自注意力的PyTorch代码。我们解释了图2和算法1之间的粗略对应关系。例如,在全局关系阶段,算法1中第9行的reshape和第10行的permute组合对应于图2中的Permute,算法1中第11行的reshape对应于图2中的Divide。我们的实现针对高维张量的效率进行了优化,因为我们正在对高维张量进行交错操作。特别是,算法1中的permute函数(在第10行和第16行)与图2中所示的Permute(针对一维情况)不对应。

        对象上下文池化。我们使用自注意力或交错稀疏自注意力来实现对象上下文池化模块(OCP)。对象上下文池化通过聚合所选像素子集的表示来估计每个像素i的上下文表示,这基于估计的密集关系矩阵或两个稀疏关系矩阵。我们首先应用基于自注意力方案或提出的交错稀疏自注意力方案的对象上下文池化模块来计算上下文表示,然后将输入表示与上下文表示连接起来作为输出表示,从而得到一个名为Base-OC的基准方法,并在图5(b)中详细说明。

图3:FLOPs与输入尺寸的关系。x轴表示输入特征图的高度或宽度(为了方便起见,我们假设高度等于宽度),y轴表示计算成本,以GFLOPs为单位。我们可以看到,自注意力(SA)机制的GFLOPs随着分辨率较高的输入而增加得更快,而我们的交错稀疏自注意力(ISA)机制增长较慢。

图4:SA和ISA之间的GPU内存/FLOPs/运行时间比较。所有数字都是在单个Titan XP GPU上使用CUDA8:0和1×512×128×128的输入特征图进行推理阶段进行测试的。对于所有指标来说,数值越低越好。我们可以看到,与自注意力(SA)相比,提出的交错稀疏自注意力(ISA)仅使用了10:2%的GPU内存和24:6%的FLOPs,并且速度几乎快了2倍。

3.3.金字塔扩展

        为了处理多尺度的对象,我们进一步将我们的方法与传统的多尺度上下文方案(如PPM和ASPP)结合起来。

与PPM结合。受以前的金字塔池化模块(Zhao et al., 2017)的启发,我们将输入图像分成四个金字塔尺度的区域:1×1区域、2×2区域、3×3区域和6×6区域,并通过将每个区域的特征图输入到对象上下文池化模块中,分别更新每个尺度的特征图,然后将四个更新的特征图组合在一起。最后,我们将多个金字塔对象上下文表示与输入特征图连接起来。我们将得到的方法称为Pyramid-OC。更多细节在图5(c)中说明。

与ASPP结合。传统的空洞空间金字塔池化(Chen et al., 2017)由5个分支组成:一个图像级池化分支,一个1×1卷积分支和三个3×3膨胀卷积分支,膨胀率分别为12、24和36。我们用对象上下文池化替换了图像级池化分支,以利用基于关系的对象上下文信息,从而得到一种被我们称为ASP-OC的方法。更多细节在图5(d)中说明。

3.4.网络架构

        我们在图5(a)中说明了OCNet的整体流程。更多细节如下所示。

主干网络。我们使用在ImageNet数据集上预训练的ResNet-101(He et al., 2016)或HRNetV2-W48(Sun et al., 2019b)作为主干网络。对于ResNet-101,我们按照PSPNet(Zhao et al., 2017)的方法进行了一些修改:将最后两个块中的卷积替换为膨胀卷积,膨胀率分别为2和4,从而使输出步幅变为8。对于HRNetV2-W48,我们直接在最终的拼接特征图上应用我们的方法,输出步幅为4。

Base-OC。在将特征图输入OCP之前,我们使用一个维度缩减模块(一个3×3卷积)将从主干网络输出的特征图的通道数减少到512,对于ResNet-101和HRNetV2-W48都是如此。然后,我们将更新后的特征图输入到OCP中,并将OCP的输出特征图与输入特征图连接起来。我们进一步执行一个1×1卷积来将连接的特征图的通道数从1024减少到512,这在图5(b)中没有显示出来。

Pyramid-OC。我们首先应用一个3×3卷积来预先将通道数减少到512,然后将维度缩减后的特征图输入到Pyramid-OC中,并在输入特征图上执行四个不同的金字塔划分(1×1区域、2×2区域、3×3区域和6×6区域),并将四个并行的OCP输出的不同的对象上下文特征图连接起来。每个对象上下文特征图都有512个通道。我们对输入特征图应用一个1×1卷积,将通道数从512增加到2048,并将其与所有四个对象上下文特征图连接起来。最后,我们对具有4096个通道的连接特征图进行1×1卷积,生成具有512个通道的最终特征图,这在图5(c)中没有显示出来。

ASP-OC。我们只在对象上下文池化分支中进行维度缩减,使用一个3×3卷积将通道数减少到256。对象上下文池化模块的输出特征图有256个通道。对于其他四个分支,我们完全按照原始的ASPP模块进行操作,在第二个分支中应用一个1×1卷积,在剩下的三个并行分支中分别使用3×3膨胀卷积,膨胀率分别为12、24和36。我们将这四个分支的输出通道设置为256,遵循原始设置(Chen et al., 2017)。最后,我们将这五个并行输出特征图连接起来,并使用一个1×1卷积将连接的特征图的通道数从1280减少到256,这在图5(d)中没有显示出来。

讨论。对象上下文的概念也在我们另一项工作中进行了讨论:对象上下文表示(OCR)(Yuan et al., 2019)。主要区别在于,这项工作着重于有效地建模像素与像素之间的密集关系,而OCR主要利用粗糙的分割图来构建一组对象区域表示,并建模像素与对象区域之间的密集关系。

4.实验结果

        我们在五个具有挑战性的语义分割基准测试上评估了我们的方法。首先,我们研究了我们方法中的各个组成部分,并将我们的方法与一些相关机制进行了比较(第4.3节)。其次,我们将我们的方法与最近的最先进方法进行比较,以验证我们实现了具有竞争力的性能(第4.4节)。最后,我们将我们的方法应用于传统的Mask-RCNN,以验证我们的方法具有良好的泛化性能(第4.5节)。此外,我们还根据我们的方法在边界上的定量改进(表6)和在各种基准测试上的定性改进(图9)进行了说明。

4.1.数据集

Cityscapes2.Cityscapes(Cordts et al.,2016)包含有19个语义类别的5000张经过精细标注的图像。这些图像的分辨率为2048×1024,并且来自50个不同的城市。训练集、验证集和测试集分别包含2975张、500张和1525张图像。

ADE20K3.ADE20K(Zhou et al.,2017)非常具有挑战性,包含有22K张密集标注的图像,涵盖了150个细粒度的语义概念。其中,训练集和验证集分别包含20K张和2K张图像。

LIP4.LIP(Gong et al.,2017)是一个大规模的数据集,侧重于对人体的语义理解。它包含有50K张图像,其中包含有19个人体部位的语义标签和1个用于人体解析的背景标签。其中,训练集、验证集和测试集分别包含30K张、10K张和10K张图像。

PASCAL-Context5.PASCAL-Context(Mottaghi et al.,2014)是一个具有挑战性的场景解析数据集,包含有59个语义类别和1个背景类别。其中,训练集和测试集分别包含4,998张和5,105张图像。

COCO-Stuff6.COCO-Stuff(Caesar et al.,2018)是一个具有挑战性的场景解析数据集,包含有171个语义类别。其中,训练集包含9K张图像,测试集包含1K张图像。

图5:OCNet的整体框架示意图。(a)OCNet的整体网络流程:给定一张输入图像,我们使用一个主干网络提取特征图,然后在特征图上应用一个对象上下文模块,并输出上下文特征图。基于上下文特征图,我们应用一个分类器来预测最终的分割图。(b)Base-OC:我们在输入特征图上执行对象上下文池化(OCP),然后将OCP的输出和输入特征图连接作为最终的输出。(c)Pyramid-OC:我们独立地应用四个并行的OCP。每个分支将输入分割到不同的金字塔尺度上,并在每个分支内共享对象上下文池化,然后将四个输出特征图与通过将输入特征图的通道增加4倍(512 → 2048)生成的新特征图连接起来。(d)ASP-OC:我们应用一个OCP和四个空洞卷积(这四个分支与原始的ASPP相同,rate代表空洞率),然后将五个输出特征图连接作为输出。所有的卷积操作后面都跟着一组BN-ReLU操作。

4.2.实现细节

训练设置。我们随机初始化了对象上下文池化模块和分类头的参数。我们采用了多项式学习率策略,因子为(1 - (iter / iter_max)^0.9)。我们将最终损失的权重设置为1,辅助损失的权重设置为0.4,这是根据PSPNet(Zhao et al.,2017)的做法。辅助损失应用在ResNet-101的第三阶段表示输出或HRNetV2-W48的最终表示上。我们都使用了INPLACE-ABNsync(Rota Bulo et al.`,2018)来同步多个GPU之间的批归一化的均值和标准差。对于数据增强,我们随机进行水平翻转,随机在[0.5,2]的范围内进行缩放,以及在[-10,10]的范围内进行随机亮度调整。更多细节如下所示:

        对于在Cityscapes数据集上的实验,我们将初始学习率设置为0.01,权重衰减设置为0.0005,裁剪尺寸设置为512×1024,批量大小设置为8。对于在验证集/测试集上评估的实验,我们分别将训练迭代次数设置为60K/100K。

         对于在ADE20K数据集上的实验,如果没有特别指定,我们将初始学习率设置为0.02,权重衰减设置为0.0001,裁剪尺寸设置为520×520,批量大小设置为16,训练迭代次数设置为150K。         对于在LIP数据集上的实验,如果没有特别指定,我们将初始学习率设置为0.007,权重衰减设置为0.0005,裁剪尺寸设置为473×473,批量大小设置为32,训练迭代次数设置为100K。

         对于在PASCAL-Context数据集上的实验,如果没有特别指定,我们将初始学习率设置为0.001,权重衰减设置为0.0001,裁剪尺寸设置为520×520,批量大小设置为16,训练迭代次数设置为30K。

        对于在COCO-Stuff数据集上的实验,如果没有特别指定,我们将初始学习率设置为0.001,权重衰减设置为0.0001,裁剪尺寸设置为520×520,批量大小设置为16,训练迭代次数设置为60K。

4.3.消融研究

        我们选择扩张的ResNet-101作为我们的主干网络来进行所有的消融实验,同时为了方便起见,我们也可以选择使用ResNet-101。如果没有特别指定,我们选择带有Base-OC(ISA)的OCNet作为默认设置。

组数。为了研究Base-OC(ISA)方案中组数的影响,我们通过改变Ph和Pw来训练Base-OC(ISA)方法,其中根据H = Ph × Qh和W = Pw × Qw可以确定Qh和Qw的值。在表1中,我们展示了在Cityscapes验证集上的结果。我们可以看到,我们的方法在不同的组数下始终优于基准方法,并且在Ph = Pw = 8时获得最佳结果。因此,如果没有特别指定,我们在所有实验中将Ph = Pw = 8作为默认设置。

全局+局部 vs 局部+全局。我们研究了全局关系和局部关系在Base OC(ISA)模块中的顺序对结果的影响。我们在表1的第6行和第10行报告了结果。我们可以看到,这两种机制都大幅度地改善了基准结果。首先应用全局关系似乎更有利。除非另有说明,否则我们在所有实验中都首先应用全局关系。此外,我们还将结果与仅稀疏全局注意力或仅局部关系进行了比较。结果报告如下(以mIoU衡量):仅全局关系为78.9%,仅局部关系为77.2%,这验证了全局关系的重要性,以及局部关系与全局关系的互补性。

与多尺度上下文的比较。我们将所提出的关系上下文方案与两种传统的多尺度上下文方案进行了比较,包括PPM(Zhao et al.,2017)和ASPP(Chen et al.,2017)。我们在相同的训练/测试设置下进行了比较实验,例如相同的训练迭代次数和批量大小。我们在表2中报告了相关结果。我们重新实现的PPM的性能优于原始报告的性能(我们的结果:78.5% vs. 论文(Zhao et al.,2017):77.6%)。我们的方法在包括Cityscapes和ADE20K在内的评估基准上始终优于PPM和ASPP。例如,Base-OC(ISA)在Cityscapes和ADE20K上相对于PPM的mIoU分别提高了0.99%和0.61%。与ASPP相比,根据表4中报告的复杂度比较,我们的方法更高效。此外,我们还在表2中基于传统的自注意力(SA)和提出的交错稀疏自注意力(ISA)进行了性能比较,可以看到我们的ISA在性能上达到了可比较的水平,同时更加高效。

与RCCA/CGNL/Efficient-Attention的比较。我们将我们的方法与几种现有的机制进行比较,这些机制专注于解决自注意力/非局部注意力的效率问题,例如SA-2×(Wang et al.,2018b),RCCA(Huang et al.,2019),CGNL(Yue et al.,2018)和Efficient Attention(Shen et al.,2018)。对于SA-2×,我们在计算密集关系矩阵之前直接对特征图进行2×的下采样。我们在Cityscapes val上评估所有这些机制,并在表3中报告了结果。我们可以看到,我们的方法始终优于这三种机制,这验证了我们的方法更可靠。考虑到RCCA的mIoU方差较大,我们都报告了平均性能以保持公平性。

复杂度。在本节中,我们将我们的方法与PPM(Zhao et al.,2017)、DANet(Fu et al.,2019a)、RCCA(Huang et al.,2019)、CGNL(Yue et al.,2018)和Efficient Attention(Shen et al.,2018)进行了复杂度比较。我们在相同设置下,当处理尺寸为2048×128×128的输入特征图时,报告了GPU内存、GFLOPs和推理时间,如表4所示。我们可以看到,与DANet相比,基于ISA的我们的方法更高效。例如,所提出的Base-OC(ISA)比DANet快近3倍,并且节省了超过88%的GPU内存。此外,我们的方法所需的GPU内存/推理时间也少于RCCA和CGNL。

金字塔扩展。我们研究了两种金字塔扩展方法,包括金字塔-OC和ASP-OC。我们选择扩张的ResNet-101作为基线,并在表5中总结了所有相关结果。我们可以发现,ASP-OC在SA方案和ISA方案下始终提高了性能,而金字塔-OC相对于Base-OC机制稍微降低了性能。因此,如果没有特别说明,我们只报告Base-OC(ISA)模块和ASP-OC(ISA)模块的性能。

表1:交错稀疏自注意力中全局关系和局部关系的顺序对Cityscapes val的影响。

表2:与多尺度上下文方案(包括PPM(Zhao et al.,2017)和ASPP(Chen et al.,2017))在Cityscapes val和ADE20K val上的比较。

表3:与SA(下采样2×)、RCCA和CGNL在Cityscapes val上的比较。

表4:在推理阶段,给定尺寸为[2048×128×128]的输入特征图的效率比较。所有结果都基于Pytorch 0.4.1,在一块带有CUDA 9.0的Tesla V100上进行。

表5:与Cityscapes val上的对象上下文池化金字塔扩展的比较。

表6:基于Cityscapes val上基于Base-OC(ISA)的基线,按类别划分的边界F分数改进情况。

4.4.与主流方法的对比

        我们默认选择基于ISA的对象上下文池化模块,例如Base-OC(ISA)和ASP-OC(ISA)。我们在5个基准测试中评估OCNet(w / Base-OC)和OCNet(w / ASP-OC)的性能,并将相关结果如下所示。

Cityscapes。我们在表7中报告了与Cityscapes测试集上最新方法的比较结果,并且我们遵循以前的工作使用OHEM、多尺度测试和翻转测试。我们将我们的方法应用于ResNet-101和HRNetV2-W48两种主干网络,我们的方法在这两种主干网络上都取得了竞争性能。例如,我们使用ASP-OC模块将HRNetV2-W48的性能从81.6%提高到82.5%,这也超过了最近的ACNet(Fu等,2019b)的性能。

ADE20K。在表8中,我们将我们的方法与ADE20K验证集上的最新技术进行了比较。我们的方法也取得了竞争性能,例如基于ResNet-101和HRNetV2-W48的OCNet(w / ASP OC)分别达到了45.40%和45.50%,略低于最近的ACNet(Fu等,2019b),后者利用了丰富的全局上下文和局部上下文。

PASCAL-Context。如表9所示,我们将我们的方法与PASCAL-Context测试中的先前最新技术进行了比较。我们可以发现,我们的方法显著提高了HRNet(Sun等人,2019a)的性能,并且使用OCNet(w / Base-OC)达到了56.2%,也优于大多数其他先前的方法。

LIP。我们将我们的方法与LIP验证集上的先前最新技术进行了比较,并在表10中展示了结果。基于HRNetV2-48的OCNet(w / ASP-OC)取得了56.35%的竞争性能,略低于最近的CNIF(Wang等人,2019)。

COCO-Stuff。从表11中我们可以看到,我们的方法在COCO Stuff测试中也取得了40.0%的竞争性能,与最近的最先进方法相当。

可视化。我们在不同的基准测试中使用我们的方法(例如基于扩张ResNet-101 + Base OC(ISA)的OCNet)可视化了一些全局关系、局部关系和密集关系的预测示例,如图6和图7所示。

        对于所有示例,我们将地面真值标签映射下采样到与密集关系图的大小相匹配,即输入大小的1/8。我们为所有数据集选择相同的组数Ph = Pw = 8,因此全局关系矩阵和局部关系矩阵具有不同的形状。例如,对于Cityscapes图像,密集关系矩阵/全局关系矩阵/局部关系矩阵的大小分别为256×128 / 32×16 / 8×8。我们通过将局部关系与全局关系相乘来生成密集关系矩阵,我们可以看到估计的密集关系矩阵将其大部分关系权重放在与所选择像素属于相同类别的像素上,这很好地近似了地面真实对象的上下文。

        我们比较了使用我们的方法和基准(扩张ResNet-101)预测的分割图,以展示定性改进,并在图9中可视化了结果。我们可以发现,与基准相比,我们的方法产生了更好的分割图。我们用白色虚线框标记了所有改进的区域。

边界分析。我们在Cityscapes验证集上报告了基于我们方法的边界改进情况,包括3、5、9和12像素宽度的边界改进,结果见表6。我们可以发现,我们的方法显著改善了墙壁、卡车、公交车、火车等多个物体类别的边界质量。

表7:在Cityscapes测试集上与最先进方法的比较

表8:在ADE20K验证集上与最先进方法的比较

表9:在PASCAL-Context测试集上与最先进方法的比较

表10:在LIP验证集上与最先进方法的比较

表11:在COCO-Stuff测试集上与最先进方法的比较

4.5.应用于Mask-RCNN

数据集。我们使用COCO(Lin等,2014)数据集来评估我们的方法。该数据集是目标检测和实例分割中最具挑战性的数据集之一,包含140K张带有80个类别的对象边界框和掩码的图像。我们按照(He等,2017)中的COCO2017划分,其中训练集、验证集和测试集分别包含115K、5K、20K张图像。我们报告了标准的COCO指标,包括边界框和掩码的平均精度(AP)、AP50和AP75。

训练设置。我们使用Mask-RCNN(He等,2017)作为基线来进行实验。与(Wang等,2018b)类似,我们在ResNet-50 FPN(Lin等,2017b)主干网络的res-4阶段的最后一个块之前插入了1个非局部块或基于交错稀疏自注意力的对象上下文池化模块。所有模型都使用ImageNet预训练权重进行初始化,并基于开源工具包(Massa和Girshick,2018)构建。我们使用批量大小为16和权重衰减为0.0001的SGD进行模型训练。我们使用“1×schedule”和“2×schedule”(Massa和Girshick,2018)的训练计划进行实验。1×schedule从学习率0.02开始,在第60K和80K次迭代后以10的倍数递减,最终在第90K次迭代结束。我们对2×schedule进行180K次迭代的训练,并按比例降低学习率。其他训练和推断策略与(Massa和Girshick,2018)中的默认设置保持一致。

结果。我们在COCO数据集上报告了结果,如表12所示。我们可以看到,添加一个非局部块(Wang等,2018b)或交错稀疏自注意力模块始终在涉及目标检测和实例分割的所有指标上改进了Mask-RCNN基线约1%。对于1×schedule和2×schedule,也观察到了类似的改进。例如,我们的方法将Mask-RCNN的边界框AP/掩码AP从38.7/34.9提高到39.7/35.7(使用2×schedule)。特别地,我们的方法在所有指标上与非局部块相比表现相当,同时显著降低了计算复杂度。最后,在COCO的验证集上,我们可视化了我们的方法和Mask-RCNN的目标检测和实例分割结果(见图8)。我们可以发现,我们的方法在所有示例上都持续改进了Mask-RCNN的性能。例如,在最后一个示例中,Mask-RCNN未能检测到多辆汽车,而我们的方法实现了更好的检测性能。

表12:与非局部块(Wang等,2018b)在COCO验证集上的比较。我们使用Mask-RCNN(He等,2017)作为基线,并选择ResNet-50 FPN主干网络作为所有模型的基础。

5.结论

在本文中,我们提出了一种能够通过利用像素之间的语义关系来增强对象信息的对象上下文。我们的对象上下文更符合语义分割的定义,它将每个像素的类别定义为其所属对象的类别。我们提出了两种不同的实现方式,包括:

        (i)基于传统自注意力机制的密集关系,以及

        (ii)基于提出的交错稀疏自注意力机制的稀疏关系。

我们在五个具有挑战性的语义分割基准数据集上验证了我们方法的有效性,例如Cityscapes、ADE20K、LIP、PASCAL Context和COCO-Stuff。我们还将我们的方法扩展到了Mask-RCNN上,以验证其优势,并且我们相信我们的方法可以通过将原始的自注意力或非局部机制替换为我们的交错稀疏自注意力机制来使各种视觉任务受益。

6.未来工作

虽然我们的对象上下文方案在各种基准数据集上取得了有竞争力的结果,但仍然存在许多其他构建更丰富上下文信息的重要途径。我们举例说明了三个潜在的候选方案:

  • 利用不同对象类别之间的共现关系来改善粗糙的分割图,例如,“骑手”倾向于与“自行车”共现,因此我们可以修正被错误分类为“人”的“骑手”像素。
  • 利用形状结构信息来规范分割,例如,“公交车”的形状在不同视角下倾向于是四边形、五边形或六边形,因此我们可以使用一组先验形状掩码来优化预测,类似于最近的ShapeMask方法(Kuo等,2019)。
  • 利用空间位置关系信息,例如,“键盘”通常位于“显示器”下方,因此我们可以利用不同对象之间的空间关系的先验知识来优化预测。 此外,还有一些研究(Krishna等,2017)专注于直接从输入图像中预测不同对象之间的“关系”。

图6:OCNet在Cityscapes验证集、ADE20K验证集和PASCAL-Context测试集上预测的密集关系矩阵可视化。我们使用扩张的ResNet-101+Base-OC(ISA)来生成这些关系矩阵。我们对每个选定的像素可视化全局关系和局部关系,并将密集关系计算为全局关系和局部关系的乘积。 

图7:OCNet在LIP验证集和COCO-Stuff测试集上预测的密集关系矩阵可视化。我们使用扩张的ResNet-101+Base-OC(ISA)来生成这些关系矩阵。

图8:在COCO验证集上,Mask-RCNN(He等,2017)和我们的方法对目标检测和实例分割结果的可视化(最佳观看效果为彩色)。

图9:在Cityscapes验证集、ADE20K验证集、PASCAL-Context测试集、COCO-Stuff测试集和LIP验证集上的定性比较。我们选择扩张的ResNet-101作为基准,并进一步在扩张的ResNet-101上应用Base-OC(ISA)作为我们的方法。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值