0.摘要
在本文中,我们通过基于自注意机制捕捉丰富的上下文依赖来解决场景分割任务。与以往通过多尺度特征融合来捕捉上下文的方法不同,我们提出了一种双重注意力网络(DANet),以自适应地将局部特征与全局依赖性相结合。具体而言,我们在扩张的FCN之上附加了两种类型的注意力模块,分别对空间和通道维度中的语义依赖关系进行建模。位置注意力模块通过对所有位置的特征进行加权求和,选择性地聚合每个位置的特征。无论距离如何,相似的特征都会相互关联。同时,通道注意力模块通过整合所有通道图像中的相关特征,选择性地强调相互依赖的通道图像。我们将两个注意力模块的输出相加,进一步改善特征表示,从而为更精确的分割结果做出贡献。我们在三个具有挑战性的场景分割数据集上取得了最新的分割性能,即Cityscapes,PASCAL Context和COCO Stuff数据集。特别是,在不使用粗数据的情况下,我们在Cityscapes测试集上实现了81.5%的Mean IoU分数。
图1:场景分割的目标是识别包括物体和区域在内的每个像素。物体/区域的各种尺度、遮挡和光照变化使得解析每个像素变得具有挑战性。
1.引言
场景分割是一个基础且具有挑战性的问题,其目标是将场景图像分割和解析为与语义类别相关的不同图像区域,包括场景元素(如天空、道路、草地)和离散对象(如人、汽车、自行车)。对这个任务的研究可以应用于潜在的应用场景,如自动驾驶、机器人感知和图像编辑。为了有效地完成场景分割任务,我们需要区分一些容易混淆的类别,并考虑具有不同外观的对象。例如,“田地”和“草地”的区域通常难以区分,“汽车”的对象可能经常受到尺度、遮挡和光照的影响。因此,有必要增强像素级别识别的特征表示的区分能力。
最近,基于全卷积网络(FCN)[13]的最先进方法被提出来解决上述问题。一种方法是利用多尺度上下文融合。例如,一些方法[3,4,30]通过结合不同的扩张卷积和池化操作生成的特征图来聚合多尺度上下文。另一些方法[15,28]通过扩大卷积核大小、引入有效的编码层等方式来捕捉更丰富的全局上下文信息。此外,编码器-解码器结构[6,10,16]被提出来融合中层和高层语义特征。尽管上下文融合有助于捕捉不同尺度的物体,但它不能从全局视角利用物体或场景元素之间的关系,而这对于场景分割也是必不可少的。
另一类方法利用循环神经网络来利用长距离依赖关系,从而提高场景分割的准确性。基于2D LSTM网络的方法[1]被提出来捕捉标签之间的复杂空间依赖关系。工作[18]构建了一个带有有向无环图的循环神经网络,以捕捉局部特征之间丰富的上下文依赖关系。然而,这些方法通过循环神经网络隐式地捕捉全局关系,其有效性高度依赖于长期记忆的学习结果。
为了解决上述问题,我们提出了一种新的框架,称为双重注意力网络(DANet),用于自然场景图像分割,如图2所示。它引入了自注意力机制,分别捕捉空间和通道维度上的特征依赖关系。具体而言,我们在扩张FCN的顶部附加了两个并行的注意力模块。一个是位置注意力模块,另一个是通道注意力模块。对于位置注意力模块,我们引入自注意力机制来捕捉特征图中任意两个位置之间的空间依赖关系。对于某个位置的特征,通过加权求和聚合所有位置的特征来更新,其中权重由对应两个位置之间的特征相似性决定。也就是说,具有相似特征的任意两个位置可以相互改进,无论它们在空间维度上的距离如何。对于通道注意力模块,我们使用类似的自注意力机制来捕捉任意两个通道图之间的通道依赖关系,并使用所有通道图的加权和来更新每个通道图。最后,这两个注意力模块的输出被融合在一起,进一步增强特征表示。
需要注意的是,与之前的方法[4,30]相比,我们的方法在处理复杂多样的场景时更加有效和灵活。以图1中的街景为例,
首先,由于光照和视角的原因,第一行中的一些“人”和“红绿灯”是不显眼或不完整的对象。如果仅仅探索简单的上下文嵌入,来自主导显著对象(如汽车、建筑物)的上下文会影响这些不显眼的对象的标注。相比之下,我们的注意力模型选择性地聚合不显眼对象的相似特征,突出它们的特征表示,并避免了显著对象的影响。
其次,“汽车”和“人”的尺度是多样的,识别这样多样化的对象需要不同尺度上的上下文信息。也就是说,不同尺度上的特征应该被平等对待,以表示相同的语义。我们的带有注意力机制的模型旨在从全局视角自适应地整合任何尺度上的相似特征,这在一定程度上可以解决上述问题。
第三,我们明确考虑了空间和通道关系,使场景理解可以从长距离依赖中受益。
我们的主要贡献可以总结如下:
- 我们提出了一种新颖的双重注意力网络(DANet),利用自注意力机制增强场景分割的特征表示的辨别能力。
- 我们提出了位置注意力模块,用于学习特征的空间相互依赖关系,设计了通道注意力模块来建模通道之间的依赖关系。通过对局部特征建模丰富的上下文依赖关系,显著提高了分割结果的准确性。
- 我们在包括Cityscapes数据集[5]、PASCAL Context数据集[14]和COCO Stuff数据集[2]在内的三个流行基准上取得了新的最先进结果。
2.相关工作
语义分割。基于完全卷积网络(FCN)的方法在语义分割方面取得了重大进展。已经提出了几种模型变体来增强上下文聚合。
首先,Deeplabv2 [3]和Deeplabv3 [4]采用扩张空间金字塔池化来嵌入上下文信息,其中包括具有不同扩张率的并行扩张卷积。PSPNet [30]设计了一个金字塔池化模块,收集有效的上下文先验,包含不同尺度的信息。编码器-解码器结构[?,6,8,9]融合中级和高级语义特征,以获得不同尺度的上下文。
第二,学习局部特征的上下文依赖性也有助于特征表示。DAG-RNN [18]使用循环神经网络模型有向无环图,捕捉丰富的上下文依赖关系。PSANet [31]通过卷积层和空间维度中的相对位置信息捕捉像素级关系。同时进行的工作OCNet [27]采用自注意力机制与ASPP结合,利用上下文依赖关系。此外,EncNet [28]引入了通道注意力机制来捕捉全局上下文。
自注意力模块。注意力模块可以建模长距离依赖关系,并广泛应用于许多任务[11,12,17,19-21]。特别是,[21]首次提出了自注意力机制,以获取输入的全局依赖关系,并将其应用于机器翻译。同时,注意力模块在图像视觉领域的应用也越来越多。[29]引入了自注意力机制来学习更好的图像生成器。与之相关的工作[23]主要探索了在视频和图像的时空维度中非局部操作的有效性。与以往的工作不同,我们将自注意力机制扩展到场景分割任务中,并精心设计了两种类型的注意力模块,以捕捉丰富的上下文关系,以实现更好的特征表示和类内紧凑性。全面的实证结果验证了我们提出的方法的有效性。图2:双重注意力网络的概述。(最佳浏览效果为彩色)
3.双重注意力网络
在本节中,我们首先介绍了我们网络的总体框架,然后分别介绍了两个注意力模块,它们在空间和通道维度上捕捉长距离的上下文信息。最后,我们描述了如何将它们聚合在一起进行进一步的优化。
3.1.概述
在场景分割中,由于场景中的物体或区域在尺度、光照和视角上具有多样性。由于卷积操作会导致局部感受野,与相同标签的像素对应的特征可能会有一些差异。这些差异引入了类内不一致性,影响了识别准确性。为了解决这个问题,我们通过注意力机制建立特征之间的关联,探索全局上下文信息。我们的方法能够自适应地聚合长距离的上下文信息,从而改善场景分割的特征表示。
如图2所示,我们设计了两种类型的注意力模块,以在通过扩张残差网络生成的局部特征上绘制全局上下文,从而获得更好的像素级预测的特征表示。我们使用带有扩张策略的预训练残差网络作为骨干网络。请注意,我们移除了下采样操作,并在最后两个ResNet块中使用扩张卷积,从而将最终特征图的大小扩大到输入图像的1/8。这样可以保留更多细节而不增加额外的参数。然后,扩张残差网络的特征将被输入到两个并行的注意力模块中。以图2上半部分的空间注意力模块为例,我们首先应用卷积层来获得降维后的特征。然后将特征输入到位置注意力模块中,并通过以下三个步骤生成具有空间长距离上下文信息的新特征。第一步是生成一个空间注意力矩阵,用于建模特征之间的空间关系。接下来,我们在注意力矩阵和原始特征之间进行矩阵乘法。第三步,我们对上述乘积结果矩阵和原始特征进行逐元素求和操作,以获得反映长距离上下文的最终表示。与此同时,通道维度中的长距离上下文信息由通道注意力模块捕捉。捕捉通道关系的过程与位置注意力模块类似,只是在第一步中,通过计算通道维度上的通道注意力矩阵。最后,我们将两个注意力模块的输出聚合起来,以获得更好的特征表示,用于像素级预测。图3:(A)和(B)中详细说明了位置注意力模块和通道注意力模块的细节。(最佳浏览效果为彩色)
3.2.位置注意力模块
判别特征表示对于场景理解至关重要,可以通过捕捉长距离的上下文信息来获得。然而,许多研究[15,30]表明,传统FCN生成的局部特征可能会导致物体和区域的错误分类。为了在局部特征上建模丰富的上下文关系,我们引入了位置注意力模块。位置注意力模块将更广泛的上下文信息编码到局部特征中,从而增强了它们的表示能力。接下来,我们详细说明自适应聚合空间上下文的过程。如图3(A)所示,给定一个局部特征A ∈ RC×H×W,我们首先将其输入到卷积层中生成两个新的特征图B和C,分别为fB;Cg ∈ RC×H×W。然后,我们将它们重新调整为RC×N的形状,其中N = H × W是像素的数量。然后,我们对C的转置和B进行矩阵乘法,并应用softmax层来计算空间注意力映射S ∈ RN×N:
其中sji衡量了第i个位置对第j个位置的影响。两个位置的特征表示越相似,它们之间的相关性就越大。同时,我们将特征A输入到卷积层中生成一个新的特征图D ∈ RC×H×W,并将其重塑为RC×N的形状。然后,我们对D和S的转置进行矩阵乘法,并将结果重塑为RC×H×W的形状。最后,我们将其乘以一个尺度参数α,并与特征A进行逐元素求和操作,得到最终的输出E ∈ RC×H×W,如下所示:
其中α的初始值为0,并逐渐学习分配更多的权重[29]。从公式2可以推断出,每个位置上的结果特征E是所有位置上特征和原始特征的加权和。因此,它具有全局的上下文视图,并根据空间注意力映射选择性地聚合上下文。相似的语义特征实现了相互增益,从而提高了类内的紧凑性和语义一致性。
3.3.通道注意力模块
高级特征的每个通道图可以被视为类别特定的响应,不同的语义响应彼此相关。通过利用通道图之间的相互依赖关系,我们可以强调相互依赖的特征图并改善特定语义的特征表示。因此,我们构建了一个通道注意力模块来明确建模通道之间的相互依赖关系。通道注意力模块的结构如图3(B)所示。与位置注意力模块不同,我们直接从原始特征A ∈ RC×H×W 计算通道注意力映射X ∈ RC×C。具体来说,我们将A重塑为RC×N,然后在A和A的转置之间进行矩阵乘法。最后,我们应用一个softmax层来获得通道注意力映射X ∈ RC×C:
其中xji衡量了第i个通道对第j个通道的影响。此外,我们对X的转置和A进行矩阵乘法,并将它们的结果重塑为RC×H×W的形状。然后,我们将结果乘以一个尺度参数β,并与A进行逐元素求和操作,得到最终的输出E ∈ RC×H×W:
其中β逐渐学习一个从0开始的权重。公式4显示,每个通道的最终特征是所有通道特征和原始特征的加权和,这模拟了特征图之间的长距离语义依赖关系。它有助于提高特征的可区分性。需要注意的是,在计算两个通道之间的关系之前,我们没有使用卷积层来嵌入特征,因为这样可以保持不同通道图之间的关系。此外,与最近的研究[28]通过全局池化或编码层来探索通道关系不同,我们利用所有相应位置的空间信息来建模通道之间的相关性。
3.4.注意力模块与网络的嵌入
为了充分利用长程上下文信息,我们从这两个注意力模块中聚合特征。具体而言,我们通过卷积层对两个注意力模块的输出进行转换,并进行逐元素求和以完成特征融合。最后,跟随一个卷积层来生成最终的预测图。我们没有采用级联操作,因为它需要更多的GPU内存。需要注意的是,我们的注意力模块简单且可以直接插入现有的FCN流程中。它们没有增加太多参数,却能有效加强特征表示。
4.实验
为了评估所提出的方法,我们在Cityscapes数据集 [5]、PASCAL VOC2012 [7]、PASCAL Context数据集 [14]和COCO Stuff数据集 [2]上进行了全面的实验。实验结果表明,DANet在这三个数据集上达到了最先进的性能。在接下来的小节中,我们首先介绍数据集和实现细节,然后在Cityscapes数据集上进行了一系列消融实验。最后,我们报告了在PASCAL VOC 2012、PASCAL Context和COCO Stuff上的实验结果。
4.1.数据集和实现细节
Cityscapes数据集包含了来自50个不同城市的5,000张图像。每个图像具有2048×1024像素,具有19个语义类别的高质量像素级标签。训练集中有2,979张图像,验证集中有500张图像,测试集中有1,525张图像。我们在实验中没有使用粗糙数据。
PASCAL VOC 2012数据集包含10,582张用于训练的图像,1,449张用于验证,以及1,456张用于测试。该数据集涉及20个前景对象类别和一个背景类别。
PASCAL Context数据集为整个场景提供了详细的语义标签,其中包含4,998张用于训练的图像和5,105张用于测试的图像。我们按照[10,28]的方法,对最常见的59个类别以及一个背景类别(总共60个类别)进行了评估。
COCO Stuff数据集包含9,000张用于训练的图像和1,000张用于测试的图像。我们按照[6,10]的方法,对包括80个对象和91个物品的171个类别进行了每个像素的注释,并报告了我们的实验结果。图4:Cityscapes验证集上位置注意力模块的可视化结果。
图5:Cityscapes验证集上通道注意力模块的可视化结果。
4.1.1.实现细节
我们基于Pytorch实现了我们的方法。按照[4,28]的方法,在每次迭代之后,我们采用多项学习率策略,初始学习率乘以(1−total iter/iter)^0.9。对于Cityscapes数据集,基础学习率设置为0.01。动量和权重衰减系数分别设置为0.9和0.0001。我们使用了Synchronized BN [28]来训练我们的模型。Cityscapes数据集的批大小设置为8,其他数据集的批大小设置为16。在采用多尺度数据增强时,我们将COCO Stuff的训练时间设置为180个epochs,其他数据集设置为240个epochs。按照[3]的方法,在使用两个注意力模块时,我们在网络末端采用多损失函数。在Cityscapes数据集的消融实验中,我们使用随机裁剪(裁剪尺寸为768)和随机左右翻转进行数据增强。
4.2.在Cityscapes数据集上的结果
4.2.1.注意力模块的消融研究
我们在膨胀网络的顶部采用了双重注意力模块,以捕捉更好的场景理解所需的长程依赖关系。为了验证注意力模块的性能,我们在表格1中进行了不同设置的实验。
如表1所示,注意力模块显著提升了性能。与基线FCN(ResNet-50)相比,采用位置注意力模块的结果为75.74%的平均IoU,改进了5.71%。同时,单独采用通道上下文模块的性能比基线提高了4.25%。当我们将两个注意力模块整合在一起时,性能进一步提升至76.34%。此外,当我们采用更深的预训练网络(ResNet-101)时,具有两个注意力模块的网络在分割性能上显著优于基线模型,提高了5.03%。结果表明,注意力模块对场景分割带来了很大的好处。
位置注意力模块的效果可以在图4中可视化。使用位置注意力模块,一些细节和物体边界更清晰,例如第一行的“电线杆”和第二行的“人行道”。选择性地融合局部特征增强了细节的区分能力。同时,图5展示了使用我们的通道注意力模块后,一些被错误分类的类别现在被正确分类,例如第一行和第三行的“公交车”。通道图之间的选择性集成有助于捕捉上下文信息。语义一致性明显提高了。
表1:Cityscapes验证集上的消融研究。PAM代表位置注意力模块,CAM代表通道注意力模块。
4.2.2.改进策略的消融研究
根据文献[4]的方法,我们采用相同的策略进一步提高性能。具体策略如下:
- 数据增强(DA):使用随机缩放进行数据增强。
- 多网格(Multi-Grid):在最后一个ResNet块中,我们采用不同尺寸(4、8、16)的网格层次结构。
- 多尺度输入(MS):在推理过程中,我们对8个图像尺度(0.5、0.75、1、1.25、1.5、1.75、2、2.2)的分割概率图进行平均。 实验结果如表2所示。使用随机缩放进行数据增强使性能提高了近1.26%,这表明网络受益于丰富的训练数据尺度多样性。采用多网格方法可以获得更好的预训练网络特征表示,进一步提高了1.11%的性能。最后,分割图融合将性能进一步提升到81.50%,超过了著名方法Deeplabv3 [4](Cityscapes验证集上的79.30%)2.20%。
表2:Cityscape验证集上不同策略的性能比较。DANet-101代表使用ResNet-101作为基础网络的DANet,DA代表使用随机缩放进行数据增强。Multi-Grid表示采用多网格方法,MS表示在推理过程中使用多尺度输入。
4.2.3.注意力模块的可视化
对于位置注意力,整体的自注意力图的大小为(H × W) × (H × W),这意味着对于图像中的每个特定点,都有一个相应的子注意力图,其大小为(H × W)。在图6中,对于每个输入图像,我们选择两个点(标记为#1和#2),并分别在第2列和第3列显示它们对应的子注意力图。我们观察到位置注意力模块可以捕捉清晰的语义相似性和长距离关系。例如,在第一行中,红色点#1标记在一个建筑物上,其注意力图(在第2列)最突出的是建筑物所在的区域。此外,在子注意力图中,即使其中一些边界离点#1很远,边界也非常清晰。至于点#2,它的注意力图主要集中在标记为“车辆”的位置上。在第二行中,对于“交通标志”和“人类”在全局区域中也是如此,尽管相应像素的数量较少。第三行是关于“植被”类和“人类”类。特别是,点#2对附近的“骑手”类没有反应,但却对远处的“人类”类有反应。
对于通道注意力,直接给出注意力图的可理解可视化是困难的。相反,我们展示一些被关注的通道,以查看它们是否突出显示了清晰的语义区域。在图6中,我们在第4列和第5列显示了第11个和第4个被关注的通道。我们发现,在通道注意力模块增强后,特定语义的响应明显可见。例如,第11个通道映射在所有三个示例中对“车辆”类有响应,而第4个通道映射是针对“植被”类的,这有助于对两个场景类别进行分割。
简而言之,这些可视化进一步证明了在场景分割中捕捉长距离依赖关系以改善特征表示的必要性。
图6:在Cityscapes验证集上对注意力模块的可视化结果。对于每一行,我们展示一个输入图像,两个与输入图像中标记的点相对应的子注意力图(大小为H×W)。同时,我们给出了来自通道注意力模块输出的两个通道图,这些图分别来自第4个和第11个通道。最后,提供相应的结果和真值。
表3:Cityscapes测试集上的各类别结果。DANet优于现有方法,平均IoU达到了81.5%。
4.2.4.与最先进的方法进行比较
我们进一步在Cityscapes测试集上将我们的方法与现有方法进行比较。具体而言,我们仅使用精细标注的数据训练了我们的DANet-101,并将我们的测试结果提交到官方评估服务器。结果如表3所示。DANet在多数方面都表现出优势,优于现有方法。特别是,我们的模型在使用相同的ResNet-101骨干网络的情况下,明显优于PSANet [31]。此外,它还超过了使用比我们更强大的预训练模型的DenseASPP [25]。
4.3.在PASCAL VOC 2012数据集上的结果
我们在PASCAL VOC 2012数据集上进行了实验,以进一步评估我们方法的有效性。在PASCAL VOC 2012验证集上的定量结果如表4所示。我们的注意力模块显著提高了性能,其中DANet-50的改进率超过了基准线3.3%。当我们采用更深的网络ResNet-101时,模型进一步达到了80.4%的平均IoU。在进一步微调我们的最佳模型时,我们采用了PASCAL VOC 2012 trainval集。在PASCAL VOC 2012测试集上的结果如表5所示。
表4:在PASCAL VOC 2012验证集上的消融研究。PAM代表位置注意力模块,CAM代表通道注意力模块。
表5:在PASCAL VOC 2012测试集上的分割结果。
表6:在PASCAL Context测试集上的分割结果。
4.4.在PASCAL Context数据集上的结果
在本小节中,我们在PASCAL Context数据集上进行了实验,以进一步评估我们方法的有效性。我们采用了与PASCAL VOC 2012数据集相同的训练和测试设置。PASCAL Context的定量结果如表6所示。基准模型(Dilated FCN-50)的平均IoU为44.3%。DANet-50将性能提升到了50.1%。此外,使用预训练的深层网络ResNet101,我们的模型达到了52.6%的平均IoU,大幅优于之前的方法。在之前的工作中,Deeplab-v2和RefineNet通过不同的空洞卷积或编码器不同阶段的多尺度特征融合。此外,它们还使用额外的COCO数据训练模型或采用更深的模型(ResNet152)来提高分割结果。与之前的方法不同的是,我们引入了注意力模块来明确捕捉全局依赖关系,提出的方法可以获得更好的性能。
4.5.在COCO Stuff数据集上的结果
我们还在COCO Stuff数据集上进行了实验证实我们提出的网络的泛化性能。与之前最先进的方法进行对比的结果如表7所示。结果表明,我们的模型在平均IoU方面达到了39.7%,大幅优于这些方法。在比较的方法中,DAG-RNN [18]利用链式RNN来对2D图像进行建模以捕捉丰富的空间依赖关系,Ding等人[6]在解码器阶段采用门控机制来改进不明显的物体和背景材料分割。我们的方法能够更有效地捕捉长距离的上下文信息,并在场景分割中学习更好的特征表示。
5.总结
在本文中,我们提出了一种用于场景分割的双重注意力网络(DANet),它利用自注意机制自适应地融合局部语义特征。具体而言,我们引入了位置注意力模块和通道注意力模块,分别在空间和通道维度上捕捉全局依赖关系。消融实验表明,双重注意力模块能够有效地捕捉长距离的上下文信息,并给出更精确的分割结果。我们的注意力网络在四个场景分割数据集(Cityscapes、Pascal VOC 2012、Pascal Context和COCO Stuff)上始终取得了出色的性能。此外,降低计算复杂度和增强模型的鲁棒性也是重要的,这将在未来的工作中进行研究。