SOTR: Segmenting Objects with Transformers

introduction

  • 首先作者研究了实例分割的发展历程,以及各个阶段方法的大概总结,提出个各个阶段的优点与不足的,在实例分割这块,主要的方法就是包括

    Top-down instance segmentation 和 Bottom-up instance segmentation

    • Top-down instance segmentation
      • proposal-based方法:基于目标检测,在得到目标检测框之后再在框内做语义分割分割前景背景,由于这种方法需要借助目标检测中的区域提议,因此该方法称为proposal-based方法.,这种方法就是遵循先检测后分割的范式的。缺点如下 例如 Mak-RCNN
        • 1)由于有限的感受野,CNN在高级视觉语义信息中相对缺乏 特征的连贯性来关联实例 , 导致对大对象的次优结果;
        • 2)分割质量和推理速度都严重依赖对象检测 器,在复杂场景中性能较差。
    • Bottom-up instance segmentation

      • proposal-free方法:在语义分割图的基础上,将像素聚集到不同的实例上。这类方法的基本思想是利用CNN学到每个像素实例级的特征,接着用一种聚合方法将像素聚合成实例。这种方法通常分两步,一个是分割,一个是聚合。语义分割图获得之后,将像素一步步的聚合到不同的实例中。学习每像素嵌入(per-pixel embedding)和实例感知 特征(instance-aware features),然后使用后处理技术依次分组,根据嵌入特征(embedding characteristics)将它们转换为实例,只要缺点如下
        • 不稳定的聚类(例如碎片化和联合掩码)以及对不同场景数据集的泛化能力差,当场景非常复杂并且一张图像中存在密集的物体时,背景像素上不可避免地 会损失大量的计算和时间
    • STOR:就是一种 (Bottom-up) 自底向上的model模型,也就是基于proposal-free方法,有效地学习了位置敏感特征(position-sensitive features ),动态生成实例掩码 (dynamically generates instance masks ),无需后处理分组以及边界框位置和尺度的界限,SOTR 以图像为输入,结合 CNN 和 Transformer 模块来 提取特征,并直接对类概率和实例掩码进行预测。

  • Transformer

    • 近几年来,由于 Transformer 的崛起,其在cv领域的重要性可想而知,在cv领域上,很多人试图完全 替代 卷积运算 或 将类 CNN 架构与transformer结合用于视觉任务中的特征提取,它可以轻松捕 获全局范围特征(global-range characteristics)并自然地对长距离语义依赖项进行建模

      • self-attention,作为transformers 的关键机制,广泛地聚 合了来自整个输入域的特征和位置信息。因此基于transformer的模型可以更好地区分具有相同语义类 别的重叠实例,这使得它们比CNN更适合高级视觉任务。但是他也有不足:
        • (1)典型的attention在提取(low-level features)方低级特征方面表现不佳,导致对小对象的错误预测
        • (2)由于广泛的特征图(feature map),需要大量的内存和时间,尤其是在训练阶段
        • (1)的问题可以通过结合 CNN 主干得到有效解决
    • 为了降低传统 self-attention 的内存和计算复杂度,我们提出了 twin attention(双注意力),一种替代的自注意 力自回归块,通过将全局空间 attention (注意力) 分解为独立的垂直和水平 attention (注意力) 来显着 减少计算和内存。与原始 Transformer 相比,这种精心设计的架构在计算和内存方面具有显着的节省,尤其是在用于密集预测(如实例分割)的大输入上。

  • 我们提出了一种创新的自底向上模型(bottom-up model),称为 SOTR,巧妙地结 合了 CNN 和 Transformer 的优点。具体地说,我们采用Transformer模 型来获 取全局依赖关系并提取高级特征(high-level features) 以用于后续的函数头部(Functional heads)的预 测。其简化了分割管道,建 立在附加了两个并行子任务的替代 CNN 主干上:(1)通过transformer预测每个实例的类别和(2) 动态生成具有多个的(segmentation mask)分割掩码级上采样模块。 SOTR 可以分别通过特征金字塔 网络 (FPN) 和twin Transformer有效地提取较低级别的特征表示并捕获远程上下文依赖关系

Methods and Creativity

SOTR 是一种 CNN-transformer 混合实例分割模型,可以同时学习 2D 平面信息表示并轻松捕获远程信息。 它遵循直接分割范式,首先将输入特征图划分为 patches (补丁),然后在动态分割每个实例的同时预测每个patches (补丁)的类别。 具体来说,我们的模型主要由三部分组成:1)从输入图像中提取图像特征的主干,尤其是低级和局部特征,2)一个用于建模全局和语义依赖关系的 Transformer ,它附加了功能头以 分别预测每个patches (补丁)的类别和卷积核,以及 3) 一个多级上采样模块,通过在生成特征图和相应的卷积核之间执行动态卷积操作来生成最终的分割掩码(segmentation mask)。 总体框架如图 2 所示。

SOTR 可以分别通过特征金字塔网络 (FPN) 和双Transformer有效地提取较低级别的特征表示并捕获远程上下文依赖关系。同时,与原始Transformer相比,所提出的双Transformer具有时间和资源效率,因为只涉及一行和一列注意力来编码像素。

  • twin attention(双注意力)机制,用稀疏表示来简化 attention(注意力) 矩阵。 我们的策略主要将感受野限制为固定步幅的设计块模式。 它首先计算每列中的 attention(注意力),同时保持不同列中的元素独立。 该策略可以在水平尺度上聚合元素之间的上下文信息(见图 3(1))。 然后,在每一行内执行类似的 attention(注意力) 以充分利用垂直尺度上的特征交互(如图 3(2)所示)。 两个尺度中的注意力依次连接为最后一个尺度,具有全局感受野,涵盖了两个维度的信息

  • 作者称之为 Twins,代码写的很复杂,但其实就是提前将行维度和列维度分别整合到前一个维度再输入 Attention 模块。这样做可以将时间复杂度降低为:
  • Functional heads

来自 Transformer 模块的特征图(feature maps)被输入到不同的函数头(functional heads)以进行后续预测。 类头(class head) 包括 单个线性层(linear)以输出 $N ×N ×M $ 的分类结果,其中 M 是类的数量。 由于每个patch(补丁) 只为一个中心落入patch(补丁) 的单个对象分配一个类别,如 YOLO [32],我们利用多级预测并在不同特征级别共享头部,以进一步提高不同尺度对象的模型性能和效率 . 核头(kernel head) 也由一个线性层(linear)组成,与 类头(class head)并行输出一个 $N×N×D$ 张量用于后续的 掩码(mask) 生成,其中张量表示具有D个参数的 $ N×N $ 卷积核。 在训练期间,Focal Loss [26] 被应用于分类,而这些卷积核的所有监督都来自最终的掩码(mask) 损失。

  • Mask

为了构建实例感知和位置敏感分割的掩码特征表示,一种直接的方法是对不同尺度的每个特征图进行预测([36, 12] 等)。 但是,它会增加时间和资源。 受 Panoptic FPN [22] 的启发,我们设计了多级上采样模块(multi-level upsampling module),将来自每个 FPN 级transformer 的特征合并为一个统一的掩码特征。 首先,从 transformer模块获得带有位置信息的相对低分辨率特征图P5,并结合FPN中的P2-P4执行融合。 对于每个尺度的特征图,操作了 3×3 Conv、Group Norm [39] 和 ReLU 的几个阶段。 然后P3-P5被双线性上采样 2×、4×、8×,分别为 $(\frac{H}{4},\frac{W}{4})$分辨率。 最后,将处理后的 P2-P5 加在一起后,执行逐点卷积和上采样以创建最终统一的 $ H×W$ 特征图。

例如掩码(mask)预测,SOTR 通过对上述统一特征图执行动态卷积运算为每个 patch(补丁) 生成掩码(mask)。 给定来自内核头部(kernel head)的预测卷积核 $K \quad \epsilon \quad K^{N \times N \times D} $ ,每个内核负责相应 patch(补丁)中实例的掩码(mask)生成。 具体操作可以表示如下:

其中 * 表示卷积操作,Z是最终生成的掩码,维度为 $ H×W×N^2 $。 需要注意的是,D 的取值取决于卷积核的形状,即D等于$λ^2C$,其中 λ 为核大小。 最终的实例分割掩码可以由 Matrix NMS [37] 生成,每个掩码都由 Dice Loss [30] 独立监督。,

contribution

  • We introduce an innovative CNN-transformer-hybrid instance segmentation framework, termed SOTR. It can effectively model local connectivity and longrange dependencies leveraging CNN backbone and transformer encoder in the input domain to make them highly expressive. What’s more, SOTR considerably streamlines the overall pipeline by directly segmenting object instances without relying on box detection.
  • We devise the twin attention, a new position-sensitive self-attention mechanism, which is tailored for our transformer. This well-designed architecture enjoys a significant saving in computation and memory compared with original transformer, especially on large inputs for a dense prediction like instance segmentation.
  • Apart from pure transformer based models, the proposed SOTR does not need to be pre-trained on large datasets to generalize inductive biases well. Thus, SOTR is easier applied to insufficient amounts of data.
  • The performance of SOTR achieves 40.2% of AP with the ResNet-101-FPN backbone on the MS COCO benchmark, outperforming most of state-of-the-art approaches in accuracy. Furthermore, SOTR demonstrates significantly better performance on medium (59.0%) and large objects (73.0%), thanks to the extraction of global information by twin transformer.

Experiments

  • 定量的结果:SOTR 在 MS COCO 数据集上表现良好,并超越了最先进的实例分割方法。

  • 定性结果:比起其他的分割方法,SOTR具有较好的分割性能

  • 还有较多的 Ablation experiments,以验证参数选择的有效性。具体的可以查看论文详细内容

Rethingking

rethingking的话,我觉得,现在transformer那么火爆的时刻,本文其实相对简单,但是其的创新点很突出,很新颖。面对某些具体的任务,了解现在主流的方法并且找出他们各自的优点与不足,然后主要针对这些不足提出新的解决方案。在transformer广泛应用于cv领域后,找到transformer在cv领域后的不足之处,就比如提取low-level farture map特征和计算量内存上面存在不足,所以本文也是比较针对这个方面进行了研究,所以最后才可以提出一种创新的分割框架SOTR