目录
之前的文章介绍了一下通道注意力、空间注意力、混合域注意力还有自注意力机制。今天介绍一下利用自注意力和混合域注意力相结合进行图片分割的网络-DANET(Dual Attention Network for Scene Segmentation ),这是发表在CVPR2019上的文章。
在这篇paper中,作者通过基于自注意机制捕获丰富的上下文依赖来解决场景分割任务。不同于以往通过多尺度特征融合来获取上下文的方法,作者提出了一种双注意网络(Dual Attention Network, DANet)来自适应地整合局部特征与全局特征的相关性。具体地在dilated FCN之上附加了两种类型的注意模块,分别在空间维度和通道维度上建模。位置注意模块通过所有位置特征的加权,有选择性地聚合每个位置的特征。相似的特征会相互关联,而不管它们的距离。同时,通道注意模块通过整合所有通道图之间的关联特征,选择性地强调相互依赖的通道特征。我们将两个注意模块的输出结果相加,以进一步改进特征表示,有助于更精确的分割结果。DANET在三个具有挑战性的场景分割数据集,即Cityscapes, PASCAL Context和COCO Stuff数据集上实现了新的最先进的分割性能。还是先放上原文地址:原文、源码。
背景介绍
场景分割是一个基本的并且具有挑战性的问题,其目标是分割和解析一个场景得到图像的语义信息,包括东西(如天空,道路,草地)和离散对象对象(如人,汽车,自行车)。这篇文章的研究可应用于自动驾驶、机器人传感和图像编辑等潜在应用领域。为了有效地完成场景分割任务,需要区分一些容易混淆的类别,并考虑到不同外观的物体,例如,“足球场”和“草坪”的区域通常难以区分,而“汽车”的对象可能经常受到尺度、遮挡和照明的影响。因此,提高特征表示对像素级识别的判别能力是十分必要的。
之前提出的基于FCN的网络的用来解决上述问题。一种方法是利用多尺度上下文融合,例如,一些模型通过组合由不同空洞卷积生成的特征地图和池化操作,用来将特征地图聚合多尺度上下文。一些研究通过用分解的结构扩大内核大小或在网络顶部引入有效的编码层来捕获更丰富的全局上下文信息。此外,提出了编码-解码器结构来融合中高级语义特征。虽然上下文融合有助于捕获不同尺度的物体,但它不能利用全局视图中物体或物体之间的关系,这对场景分割也是必不可少的。另一种方法采用RNN来开发长期依赖关系,从而提高场景分割的精度。提出了一种基于二维LSTM的复杂标签空间依赖性捕获方法。通过构建了一个有向无环图的循环神经网络,以捕获对局部特征的丰富上下文依赖。然而,这些方法隐式地利用循环神经网络获取全局关系,其有效性在很大程度上依赖于长期记忆的学习结果。
为了解决上述问题,作者提出了一种新的框架,称为双重注意网络(DANet),用于自然场景图像分割,如下图所示。它引入了一种自注意机制来分别捕获空间维度和通道维度中的特征依赖关系。具体地说,在dilated FCN上附加了两个并行注意模块。一个是位置注意模块,另一个是通道注意模块。在位置注意模块中,引入了自注意机制来捕获特征地图任意两个位置之间的空间依赖性。对于某一位置的特征,通过对所有位置的特征进行加权求和来更新,加权值由对应的两个位置的特征相似性决定。即任意两个具有相似特征的位置,无论它们在空间维度上的距离如何,都可以相互改善。对于通道关注模块,我们使用类似的自注意力机制来捕获任意两个通道映射之间的通道依赖关系,并使用所有通道映射的加权和更新每个通道映射。最后,融合这两个注意模块的输出,进一步增强特征表示。
需要注意的是,在处理复杂多样的场景时,DANET比以往的方法更加有效和灵活。以下图中的街景为例。首先,由于灯光和视野的原因,第一排的一些人和交通灯是不显眼或不完整的物体。如果探究简单的语境嵌入分析,那么占主导地位的显著物体(如汽车、建筑)的语境会损害那些不显著物体的标记。相比之下,我们的注意模型有选择地聚集不显著物体的相似特征,以突出其特征表征,避免显著物体的影响。其次,汽车和人的尺度是不同的,识别这种不同的物体需要不同尺度的语境信息。DANET只是为了从全局的角度自适应地整合任何尺度上的相似特征,这在一定程度上可以解决上述问题。第三,我们明确地将空间和通道关系考虑在内,这样对场景的理解就可以从长期依赖中受益。
DANET主要贡献总结如下:
1、提出了一种具有自注意机制的双重注意网络(DANet),以提高特征表示对场景分割的判别能力。
2、提出了位置注意力模块来学习特征的空间相互依赖关系,并设计了通道关注模块来建模通道相互依赖关系。它通过建模丰富的上下文依赖,从而实现局部特征显著改善分割结果。
3、模型在三个流行的数据集上实现了新的最先进的结果,包括Cityscapes dataset,PASCAL Context dataset和COCO Stuff dataset。
现有研究成果
1、语义分割
基于FCN的方法在语义分割方面取得了很大的进展。提出了几种模型变体来增强上下文聚合。首先,Deeplabv2和Deeplabv3采用空洞空间金字塔池化嵌入上下文信息,由不同膨胀率的并行膨胀卷积组成。PSPNet设计了一个金字塔池模块来收集有效的上下文先验,包含不同尺度的信息。编码器-解码器结构融合中高级语义特征,获得不同尺度的上下文。其次,学习局部特征的上下文依赖关系也有助于特征表示。DAG-RNN模型利用递归神经网络有向无环图捕获丰富的上下文相关性。PSANet通过卷积层和空间维度上的相对位置信息捕获像素级关系。此外,EncNet引入了一个通道注意机制来捕获全局上下文。
2、自注意力机制
自注意力模块可以模拟长期依赖关系,并被广泛应用于许多任务中。特别是是第一个提出自注意机制来绘制输入的全局依赖关系并将其应用于机器翻译。同时,注意模块在图像视觉领域的应用也越来越广泛。与self-attention模块相关的工作主要探索视频和图像在时空维度上非局部操作的有效性。
不同于以往的工作,DANET在场景分割任务中扩展了自注意机制,并精心设计了两类注意模块来捕获丰富的上下文关系,从而更好地实现类内紧凑的特征表示。综合实证结果验证了该方法的有效性。
Dual Attention Network
在这一节中,首先给出了网络的总体框架,然后分别介绍了在空间维度和通道维度上捕获长程语境信息的两个注意模块。最后,我们将描述如何将它们聚合在一起以进一步细化。
给定一幅场景分割的图片,物体或目标在尺度、光照和视野上都是不同的。由于卷积操作是局部感受野,所以具有相同标签的像素对应的特征可能会有一些差异。这些差异导致类内不一致,影响识别的准确性。为了解决这个问题,我们通过建立特征与注意机制之间的关联来探索全局上下文信息。该方法可以自适应地聚合长程上下文信息,从而改进了场景分割的特征表示。
如Figure 2所示(第一张图),作者设计了两种类型的注意模块,在dilated residual network生成的局部特征上绘制全局上下文,从而获得更好的像素级预测特征表示。我们采用预训练的残差网络,扩展策略[Deeplab系列]作为骨干网络。需要注意的是,作者在最后两个ResNet块中删除了降采样操作,并使用了空洞卷积,从而将最终特征地图的大小扩大到输入图像的1/8。保留更多的细节,而不添加额外的参数。然后将扩展残差网络的特征输入到两个并行注意模块中。以Figure 2上半部分的空间注意力模块为例,首先应用卷积层获取降维特征。然后将特征输入位置注意模块,通过以下三个步骤生成新的空间远距离语境信息特征。
1、生成空间关注矩阵,该矩阵可以对特征的任意两个像素之间的空间关系进行建模。
2、在注意矩阵和原始特征之间执行矩阵乘法。
3、对上述相乘的结果矩阵和原始特征执行一个元素级和运算,以获得反映长程上下文的最终表示。
在进行空间注意力计算的同时,通道注意模块也捕获了通道维度上的长期语境信息。捕获通道关系的过程类似于位置注意模块,除了第一步,在通道维度中计算通道注意矩阵,其余步骤基本是相同操作。最后,对两个注意模块的输出进行聚合,以获得更好的特征表示,用于像素级预测。
空间注意力模块
判断特征表征是场景理解的关键,它可以通过获取长期语境信息来实现。然而,许多论文表明,传统FCNs生成的局部特征会导致对象的误分类。为了在局部特征上建立丰富的上下文关系,引入了位置注意模块。位置注意模块将更广泛的上下文信息编码为局部特征,从而提高了它们的表示能力。接下来,阐述了自适应地聚合空间上下文的过程。
如上图所示,,空间注意力模块的流程如下:
1、首先输入一个卷积层,分别生成两个新的feature map B和C,其中,
2、然后进行向量化操作,将转化为,其中N=H×W表示空间范围的像素数量。
3、接下来将C的转置与B矩阵乘法操作得到A内像素的相似度矩阵。 最后经过softmax计算得到空间注意力图。
空间注意力模块的计算公式如下:
其中度量第i个位置对第j个位置的影响。两个位置的特征表征越相似,它们之间的相关性就越大。同时,将特征A输入该模块,生成新的特征图,并将其向量化为。矩阵在D和S的转置之间进行矩阵乘法,并将结果还原为原始输入特征大小。最后,将其乘以一个尺度参数α,并对特征A进行元素求和运算,得到最终输出,公式如下:
α初始化为0并逐渐学习分配更多的权重。由上面公式可以看出,在每个位置上得到的特征E是所有位置上的特征与原始特征的加权和。因此,它具有全局语境观,并根据空间注意图有选择地聚合语境。相似的语义特征实现了相互受益,从而提高了类内的紧凑性和语义一致性。
通道注意力模块
每个通道的高级特征都可以视为特定于类别的信息提取,不同的语义响应彼此关联。通过挖掘通道映射之间的相互依赖关系,可以强调相互依赖的特征映射,改进特定语义的特征表示。因此,我们构建一个通道注意模块来显式地建模通道之间的相互依赖关系。
通道注意力模块结构如上图所示,与空间注意力模块不同,通道注意力不需要通过卷积重新生成两个新的特征图,而是直接从输入的特征图计算通道注意力图(过程与空间注意力模块一样,但是空间注意力是去掉矩阵的通道数据,而通道注意力模块是去掉空间数据;过程是将A reshape为,N=H×W,将该与的转置矩阵相乘得到)。最后将得到的矩阵进行softmax得到通道注意力的矩阵,公式如下所示:
其中,表示第i个渠道对第j个渠道的影响。与空间注意力模块一样,将输入特征图A的转置与得到的X相乘得到的矩阵,并重塑其结果。然后将结果乘以一个尺度参数β,并执行元素级求和运算A得到最终输出,公式如下:
其中,β逐渐从0学习一个权值。由上面公式可知,每个通道的最终特征是所有通道的特征和原始特征的加权和,建模了特征映射之间的长期语义依赖关系,它有助于提高特征的可鉴别性。
需要注意的是,在计算两个通道的关系之前,我们并没有使用卷积层来得到输入数据的特征,因为它可以保持不同通道映射之间的关系。此外,不同于通过全局池或编码层来探索信道关系,我们利用所有对应位置的空间信息来建模通道之间的信息联系。
为了充分利用长期语义信息,DANET对这两个注意模块的特征进行了聚合。具体来说,将两个注意模块的输出通过卷积层进行转换,然后进行元素求和来实现特征融合。最后通过卷积层生成最终的预测图。原文说DANET不采用级联操作,因为需要更多的GPU内存。模型的注意力模块很简单,可以直接插入现有的FCN模型中。它们不会增加太多的参数,但有效地加强了特征表示。
实验分析
DANET模型在Cityscapes、PASCAL VOC 2012和PASCAL Context和COCO Stuff数据集进行了实验。
Cityscapes Dataset
在该数据集下的实验结果对比如下表所示:
如上表所示,有了DANET模块的网络MIOU值有着明显的提升。与BaseLine (ResNet-50)相比,采用位置注意模块的结果是75.74%的平均欠条,这带来5.71%的明显提升。同时,单独使用通道注意力模块的效果优于基线4.25%。当我们将两个注意力模块整合在一起时,性能进一步提高到76.34%。此外,当我们采用更深层次的预培训网络时(ResNet-101),具有两个注意模块的网络比基线模型显著提高了5.03%的分割性能。结果表明,注意模块对场景分割有很大的好处。
空间注意模块的效果在下图中可视化。通过空间注意模块,一些细节和对象边界更加清晰,如第一排的杆子和第二排的人行道。对局部特征的选择性融合增强了对细节的辨别能力。
下面的图是通道注意力的可视化图,通过我们的通道注意模块,一些错误分类的类别现在被正确分类了,比如第一排的公交车和第三排的路面分割线。通道映射之间的选择性集成有助于捕获上下文信息。语义一致性得到了明显改善。
PASCAL VOC 2012 Dataset
在PASCAL VOC 2012数据集上进行了实验,以进一步评价DANET的有效性。PASCAL VOC 2012 对比结果如下表所示:
DANet-50超过Baseline 3.3%。当采用更深的网络ResNet-101时,模型进一步达到了80.4%的均值IoU。接下来,使用PASCAL VOC 2012测试集进一步微调我们的最佳模型,结果如下表所示:
明显看出DANET的MIOU超过其他现有模型测试结果。
COCO Stuff Dataset
论文还在COCO Stuff数据集上进行了实验,以验证DANET 的可泛化性。下表报告了与目前最先进的方法的比较。结果表明,DANET模型在MIOU达到了39.7%,大大优于其他方法。
注意力模块的可视化
上图是原文对空间和通道注意力的可视化效果图。对于空间注意力模块,整体的自注意特征图大小为(H×W)× (H×W),也就是说,对于图像中的每个特定点,都有一个相应大小为(H×W)的子注意地图。在下中,对于每个输入图像,我们选择两个点(标记为#1和#2),分别在第2列和第3列中显示它们对应的子注意力图。我们观察到空间注意模块可以捕获清晰的语义相似性和长期关系。例如,在第一行,红色点#1标记在建筑上,它的注意力特征图(在第二列)突出了建筑所在的大部分区域。此外,在子注意力图中,边界非常清晰,尽管有些边界离第一点很远。至于第2点,它的注意力地图聚焦于大多数标记为汽车的位置。在第二行中,全局区域中的交通标志和人的情况相同,即使对应的像素数较少。第三行是植物和人。第2点对附近的行人没有反应,但它对远处的人有反应。
对于通道注意力模块,很难直接给出注意图的可理解的可视化。但是,我们展示了一些参与的通道信息,看看它们是否突出了明确的语义区域。在上图中,在列4和列5中显示了第11和第4个参与的通道。我们发现通道注意模块增强后,特定语义的反应是显著的。例如,第11个通道图在三个例子中都是对“汽车”类的响应,第4个通道图是对“植物”类的响应,这有利于两个场景类别的分割。
简而言之,这些可视化进一步证明了在场景分割中捕获长期依赖关系以改进特征表示的必要性。
最后,在Cityscapes测试集上进一步比较了DANET和现有的方法。具体来说,只使用精细注释的数据训练DANet-101,并将测试结果提交给官方评估服务器。结果如下表所示。DANet以显著优势优于现有的方法。特别是,DANET模型在相同的主干ResNet-101的情况下比PSANet的性能要好很多。此外,它还超过了DenseASPP,而且后者使用的预训练模型更强大。
结论
在本文中,提出了一种用于场景分割的双重注意网络(DANet),该网络利用自注意机制自适应地整合局部语义特征。具体来说,我们引入了位置注意模块和通道注意模块来分别捕获空间维度和通道维度中的全局依赖关系。实验结果表明,双注意模块能有效地捕获长范围的背景信息,并给出了更精确的分割结果。DANET在Cityscapes、Pascal VOC 2012、Pascal Context和COCO Stuff四个场景分割数据集上均取得了优异的性能。此外,降低模型的计算复杂度和增强模型的鲁棒性也是今后研究的重点。