【语义分割】分层多尺度注意力 Hierarchical multi-scale attention for semantic segmentation

文章目录

    • 1. 摘要
    • 2. 引言
    • 3.本文相关方法
      • 3.1 Multi-scale context methods
      • 3.2 Relational context methods
      • 3.3 Multi-scale inference
      • 3.4 Auto-labelling
    • 4.本文方法
    • 5.实验
    • 6.结论

【语义分割】分层多尺度注意力 Hierarchical multi-scale attention for semantic segmentation_第1张图片

论文链接:https://arxiv.org/pdf/2005.10821.pdf

最强语义分割网络来了,在Cityscapes test上可达85.1% mIoU,在Mapillary val上高达61.1% mIoU,SOTA!性能优于SegFix、HRNetV2-OCR等网络。
作者团队:NVIDIA

1. 摘要

多尺度预测常用来提高语义分割的结果。多种图像尺度通过经过网络,然后利用平均池化或最大池化来得到。在本文中,作者提出一种基于attention的方法来结合多尺度预测。表明,在某些特定尺度的预测更能解决某些较难预测的例子,并且网络学会在这种情况下偏爱这些尺度,以便产生更好的预测。本文的attention机制是多层级的,使其能够减少四倍的内存占用。除了能使训练的速度更快,而且能够训练一些更大的惠存的图像,而且精度更高。实验在Cityscapes and Mapillary Vistas两个数据集上进行了验证。对于Cityscapes,有很多简易标注的图像,本文利用自动标注来改善了这个问题,达到SOTA, 在Cityscapes test上可达85.1% mIoU,在Mapillary val上高达61.1% mIoU。

2. 引言

语义分割任务就是对每个像素进行分类。在这个任务中有一个权衡,某些类别的预测在较低的推理分辨率下处理得最好,而其他任务在较高的推理分辨率下处理得更好。精细的细节,比如物体的边缘或薄的结构,通常可以通过放大图像尺寸来更好地预测。与此同时,对于需要更多全局背景的大型结构的预测,通常在缩小图像尺寸时做得更好,因为网络的感受野可以观察到更多必要的背景。我们把后一个问题称为类别混淆。下图给出了这两种情况的示例。
【语义分割】分层多尺度注意力 Hierarchical multi-scale attention for semantic segmentation_第2张图片
使用多尺度推断是解决这种权衡的常见做法。使用一定范围内的尺度进行预测,结果可以通过平均池化或最大池化来进行。使用平均结合多个尺度通常可以提高结果,但会有将最好的预测与较差的预测结合起来的问题。比如说,如果对于某个给定的像素,最好的预测结果来自于2x scale,一个相比差很多的预测结果来自于0.5X scale,然后对这两个结果进行取平均,这样最优的结果可能就是对不同尺度进行不同权重的结合。
为了解决这个问题,本文提出一种attention机制来预测如何结合不同尺度的预测结果。本文提出一种多层级的attention机制,通过让网络来学习一个相邻尺度之间的相关权重,由于分层级的属性,在训练的pipeline中只增加了一个额外的尺度。比如,当目标预测的scale为 {0.5, 1.0 and 2.0,其他的attention方法会要求网络首先在这些尺度上进行训练,导致会增加 4.25 X ( 0. 5 2 + 2. 0 2 ) 4.25X(0.5^2 + 2.0^2) 4.25X0.52+2.02倍的额外的训练消耗。本文提出的方法仅增加一个0.5X的尺度进行训练,因此仅增加 0.25 X ( 0. 5 2 ) 0.25X(0.5^2) 0.25X(0.52)的消耗。而且,本文提出的多层级机制也会提供在预测时选择额外scale尺度作为对比的灵活性。
为了实现在Cityscapes中的SOTA,本文同时提出了一种自动标注的策略,用于粗略标注的数据,为了提高样本的多样性,提高泛化能力。不同于以前的soft-labelling 策略,本文使用一种hard labelling,为了能够管理label存储的size,可以帮助改善在训练时减低IO消耗。
本文的主要贡献:

  • 提出一种分层级的attention 机制,能够改善类别混淆的问题,从多尺度中找到最好的预测结果;
  • 使用基于自动标注的hard-threshold策略;
  • 实现在Cityscapes和Mapillary Vistas上SOTA。

3.本文相关方法

3.1 Multi-scale context methods

目前最先进的语义分割网络多使用低输出步幅的网络主干。使得网络能够解决fine details的问题,同时也会产生减少感受野的问题。感受野的减小会导致网络在预测大目标的时候具有一定的局限性。金字塔池化可以抵消掉一部分这样的问题。PSPNet使用了空间金字塔池化模块,DeepLab使用带空洞的空间金字塔池化。ACNet主要利用的是中间特征而不是只是最后一层特征来产生多尺度上下文信息。

3.2 Relational context methods

在实验中,金字塔池化的方法关注的是固定的、正方形的区域。然而,relational context 方法通过增加像素之间以及并非限制在正方区域内的关系。关系上下文方法的学习特性允许基于图像组合构建上下文,这种方法可以为非正方形的语义区域建立更合适的上下文,例如一列长长的火车或一根又高又细的灯柱。这样的方法主要有OCRNet、DANET、CFNet、OCNet。

3.3 Multi-scale inference

上述方法使用的是多尺度的评估方式达到较好的结果。有两种常见的方法可以在多个尺度上组合网络预测:平均池化和最大池化,平均池化更常用。然而,平均池化产生的结果是同样权重的,可能会导致次优结果。为了解决这个问题,可以使用attention机制来结合不同尺度。

3.4 Auto-labelling

4.本文方法

【语义分割】分层多尺度注意力 Hierarchical multi-scale attention for semantic segmentation_第3张图片
本文提出的attention机制与之前的某个方法类似,对于每个尺度学习一个密集的mask,然后不同尺度的预测再结合起来,这些多尺度预测通过在mask之间进行像素相乘,然后在不同尺度之间进行像素求和,从而得到最终结果,如上图所示。在本文的分层方法中,学习相邻尺度之间的相对attention掩码,而不是学习每个固定尺度集的所有attention掩码。在训练网络时,只训练相邻尺度对。如上图所示,给出一组来自lower scale的特征图,预测一个两个图像尺度之间的密集的相关attention。在实验中,为了得到scaled图像对,使用一个输入图像然后将其下采样两倍利用scale尺度2,这样,就有一个1x的输入和一个0.5x的缩放输入,当然其他scale-down尺度也可以选择。需要注意的是,网络输入本身是原始训练图像的重新缩放版本,因为我们在训练时使用图像缩放增强。这使得网络学会预测一个范围内的图像尺度的相对注意力。当预测的时候,可以分层的应用学到的注意力来结合N个不同的scale预测。优先考虑较低的scale,然后逐步上升到较高的scale,因为,它们具有更多的全局上下文信息,对于需要改进的scale可以使用更高scale的预测。

在训练过程中,输入图像通过一个参数 r r r=0.5表示进行下采样两倍,参数 r r r=2表示进行上采样两倍。然后两张使用 r r r=1和 r r r=0.5的图像送入网络的backbone,然后得到语义logits,每个scale也有一个attention mask,用来结合不同scale的logits,这是用于两个scale的训练和预测:
在这里插入图片描述
其中, μ \mu μ表示双线性上采样, ∗ 和 + *和+ +表示逐像素相乘和相加。使用这个方法有两个优势:

  • 在每次预测的时候,可以灵活的选择scale,比如增加0.25X,或是2.0X的尺度;
  • 这种分层的结构提高了训练的效率。

5.实验

【语义分割】分层多尺度注意力 Hierarchical multi-scale attention for semantic segmentation_第4张图片
【语义分割】分层多尺度注意力 Hierarchical multi-scale attention for semantic segmentation_第5张图片

6.结论

多尺度推理通常用于改善语义分割的结果。多个图像尺度通过网络传递,然后将结果与平均或最大池合并。在这项工作中提出了一种基于注意力的方法来组合多尺度预测。在Cityscapes test上可达85.1% mIoU,在Mapillary val上高达61.1% mIoU,表现真SOTA!性能优于SegFix、HRNetV2-OCR等网络。

你可能感兴趣的:(图像分割,计算机视觉,深度学习,算法)