Dual Attention Network for Scene Segmentation

文章:https://arxiv.org/pdf/1812.03904.pdf
代码:https://github.com/junfu1115/DANet/
在本文中,作者通过基于自我注意机制捕获丰富的上下文依赖来解决场景分割任务。与以往通过多尺度特征融合来捕获上下文的工作不同,本文提出了一种双注意网络(DANet)来自适应地将局部特征与其全局依赖性结合起来。具体来说,在扩展FCN的基础上增加了两种类型的注意模块,分别在空间维度和通道维度上对语义相关性进行建模。位置注意模块通过所有位置的特征加权和,选择性地聚合每个位置的特征。相似的特征会相互关联,而不管它们之间的距离如何。同时,通道注意模块通过整合所有通道图中的相关特征,选择性地强调相互依赖的通道图。将两个注意模块的输出相加,以进一步改进特征表示,从而获得更精确的分割结果。
Dual Attention Network for Scene Segmentation_第1张图片

双注意网络(DANet),如上所示。它引入了一种自我注意机制,分别在空间维度和通道维度上捕获特征依赖。在扩张的FCN上附加了两个平行的注意模块。一个是位置注意模块,另一个是通道注意模块。对于位置注意模块,引入了自我注意机制来捕获特征地图任意两个位置之间的空间依赖关系。对于特定位置的特征,通过加权求和聚合所有位置的特征来更新,其中权重由对应两个位置之间的特征相似性决定。也就是说,具有相似特征的任何两个位置都可以相互促进,而不管它们在空间维度上的距离如何。对于通道注意模块,使用相似的自我注意机制捕获任意两个通道映射之间的通道依赖关系,并使用所有通道映射的加权和更新每个通道映射。最后,将这两个注意模块的输出进行融合,以进一步增强特征表示。
本文的主要贡献可以总结如下:
1、提出了一种具有自我注意机制的双注意网络(DANet),以增强场景分割中特征表示的鉴别能力。
2、提出了一个位置注意模块来学习特征的空间相关性,并设计了一个通道注意模块来建模通道相关性。它通过对局部特征的丰富上下文依赖性建模,显著改善了分割结果。
给定一张场景分割的图片,物品或对象在比例、照明和视图上都是不同的。由于卷积运算会产生局部感受野,因此具有相同标签的像素对应的特征可能会有一些差异。这些差异会导致类内不一致,影响识别精度。为了解决这个问题,作者通过注意力机制在特征之间建立关联来探索全局语境信息。本方法可以自适应地聚合远程上下文信息,从而改进场景分割的特征表示。

一、实现细节

本文设计了两种类型的注意模块,通过扩展残差网络生成的局部特征来绘制全局上下文信息,从而获得更好的像素级预测特征表示。采用了一个以扩张策略为主干的预训练剩余网络。删除了下采样操作,并在最后两个ResNet块中使用了膨胀卷积,从而将最终特征映射大小的大小扩大到输入图像的1/8。它在不添加额外参数的情况下保留了更多细节。然后将扩张后的剩余网络的特征输入两个并行的注意模块。
以图上半部分的空间注意模块为例,我们首先应用卷积层来获得降维特征。然后,我们将这些特征输入到位置注意模块,并通过以下三个步骤生成空间远程上下文信息的新特征。第一步是生成空间注意矩阵,该矩阵对特征的任意两个像素之间的空间关系进行建模。接下来,在注意矩阵和原始特征之间执行矩阵乘法。第三,对上述相乘的结果矩阵和原始特征执行元素求和运算,以获得反映远程上下文的最终表示。同时,长期语境信息- 通道维度中的注意力被通道注意模块捕获。捕捉通道关系的过程与位置注意模块类似,只是第一步中,通道注意矩阵是在通道维度中计算的。最后,将两个注意模块的输出进行聚合,以获得更好的像素级预测特征表示
Dual Attention Network for Scene Segmentation_第2张图片

(一)、Position Attention Module

判别特征表示对于场景理解至关重要,场景理解可以通过捕捉远程上下文信息来实现。然而,传统FCN生成的局部特征可能会导致对象和内容的错误分类。为了在局部特征上建立丰富的上下文关系模型,引入了位置注意模块。位置注意模块将更广泛的上下文信息编码到局部特征中,从而增强其表征能力。接下来,我们阐述了自适应聚合空间上下文的过程。
Dual Attention Network for Scene Segmentation_第3张图片

如上所示,给定局部特征 A ∈ R C × H × W A∈ R^{C×H×W} ARC×H×W,首先将其送入一个卷积层,分别生成两个新的特征映射B和C,其中{B,C}∈ R C × H × W R^{C×H×W} RC×H×W。然后将它们reshape为 R C × N R^{C×N} RC×N,其中N=H×W是像素数。然后,在C和B的转置之间执行矩阵乘法,并应用softmax层来计算空间注意图 S ∈ R N × N S∈ R^{N×N} SRN×N
在这里插入图片描述

其中, s j i s_{ji} sji测量第i个位置对第j个位置的影响。两个位置的特征表示越相似,它们之间的相关性就越大。
同时,将特征A输入一个卷积层,生成一个新的特征映射 D ∈ R C × H × W D∈ R^{C×H×W} DRC×H×W并将其重塑为 R C × N R^{C×N} RC×N。然后,在D和S的转置之间执行矩阵乘法,并将结果重塑为 R C × H × W R^{C×H×W} RC×H×W。最后,将其乘以一个比例参数α,并对特征a执行元素式求和运算,以获得最终输出 E ∈ R C × H × W E∈ R^{C×H×W} ERC×H×W如下:
在这里插入图片描述
其中α初始化为0,并逐渐学会分配更多权重。每个位置的结果特征E是所有位置特征和原始特征的加权和。因此,它具有全局上下文视图,并根据空间注意图选择性地聚合上下文。相似的语义特征实现了相互增益,从而提高了类内的紧凑性和语义一致性。

(二)、Channel Attention Module

Dual Attention Network for Scene Segmentation_第4张图片
高层特征的每个通道图都可以被视为一个特定于类的响应,不同的语义响应相互关联。通过利用通道映射之间的相互依赖性,可以加强相互依赖的特征映射,并改进特定语义的特征表示。
通道注意模块的结构如下所示。与位置注意模块不同,该模块可以从原始输入 A ∈ R C × H × W A∈ R^{C×H×W} ARC×H×W之中直接计算通道注意图 X ∈ R C × C X∈ R^{C×C} XRC×C。具体来说,先将Areshape为 R C × N R^{C×N} RC×N,然后在A和A的转置之间执行矩阵乘法。最后,应用softmax层来获得通道注意图 X ∈ R C × C X∈ R^{C×C} XRC×C

在这里插入图片描述
其中, x j i x_{ji} xji测量第i个通·道对第j个通道的影响。此外,在X和a的转置之间执行矩阵乘法,并将其结果重塑为 R C × H × W R^{C×H×W} RC×H×W。然后,将结果乘以一个比例参数β,并对A执行元素式求和运算,以获得最终输出 E ∈ R C × H × W E∈ R^{C×H×W} ERC×H×W
在这里插入图片描述
其中β逐渐从0学习权重。每个通道的最终特征是所有通道的特征和原始特征的加权和,这模拟了特征映射之间的长期语义依赖关系。它有助于提高功能的可辨别性。
注意,在计算两个通道的关系之前,不使用卷积层来嵌入特征,因为它可以维护不同通道映射之间的关系。此外,与最近通过全局池化或编码层探索通道关系的方法不同,本文利用所有对应位置的空间信息来建模通道相关性。

(三)、Attention Module Embedding with Networks

为了充分利用远程上下文信息,可以将这两个注意模块中的特征集合起来。首先通过卷积层变换两个注意模块的输出,并执行元素级求和以实现特征融合。最后通过卷积层生成最终的预测图。不采用级联操作,因为它需要更多的GPU内存。
Dual Attention Network for Scene Segmentation_第5张图片

如上所示,注意模块显著提高了性能。与baseline FCN(ResNet-50)相比,采用位置注意模块的平均IoU结果为75.74%,提高了5.71%。同时,单独使用通道上下文模块的表现比baseline好4.25%。当将两个注意力模块整合在一起时,性能进一步提高到76.34%。此外,当采用更深层的预训练网络(ResNet-101)时,带有两个注意模块的网络比baseline模型显著提高了5.03%的分割性能。结果表明,注意模块对场景分割有很大的帮助。

(四)、Visualization of Attention Module

Dual Attention Network for Scene Segmentation_第6张图片

对于位置注意力,整体自我注意图的大小为(H×W)×(H×W),这意味着对于图像中的每个特定点,都有一个相应的子注意图,其大小为(H×W)。在上图中,对于每个输入图像,选择两个点(标记为#1和#2),并分别在第2列和第3列中显示它们相应的子注意图。位置注意模块可以捕捉到清晰的语义相似性和长程关系。例如,在第一行中,红点#1标记在建筑物上,其注意力图(第2列)突出显示了建筑物所在的大部分区域。此外,在亚注意图中,边界非常清晰,即使其中一些距离点#1很远。至于点#2,它的注意力地图集中在大多数标记为“汽车”的位置。在第二行中,全局区域中的“交通标志”和“人”也是如此,尽管相应像素的数量较少。第三排是“植被”类和“人”类。点#2不响应附近的“骑手”类,但它确实响应远处的“人”。
对于通道注意,很难直接给出关于注意图的可理解可视化。相反,作者展示了一些注意力的通道,看看它们是否突出了清晰的语义区域。在第4列和第5列中显示了第11个和第4个注意力通道。在通道注意模块增强后,特定语义的反应是显著的。例如,在所有三个示例中,第11个通道对应于“汽车”类,第4个通道地图对应于“植被”类,这有利于分割两个场景类别。

你可能感兴趣的:(yolo,计算机视觉,深度学习)