Panoptic SegFormer 论文笔记

Panoptic SegFormer

Panoptic SegFormer

论文链接: https://arxiv.org/abs/2109.03814

一、 Problem Statement

拓展Deformable DETR,用于全景分割。

二、 Direction

全景分割的目标有两种: things 和 stuff。Things是可数的,比如说人、车、单车等;Stuff是无固定形状的和不可数的,比如天空,绿化带等。这两种的区别会导致使用不同的方法去进行预测。因此作者作出了以下设计:

  • 设计统一表示things和stuff的query set,其中stuff被视为具有单个实例ID的特殊类型的事物
  • 设计了一个location decoder,关注于利用things和stuff的位置信息取提高segmentation的质量
  • 使用了mask-wise 后处理策略来合并things和stuff的分割结果

三、 Method

先来看一下整体的结构:

整体的结构可以分为三个部分:

  1. Backbone
  2. Transformer Encoder & Decoder
  3. Mask-Wise Merge

1. Backbone

首先使用ResNet50作为Backbone,对一个输入图像 X ∈ R H × W × 3 X \in \R^{H \times W \times 3} XRH×W×3,可以得到 C 3 , C 4 , C 5 C_3, C_4, C_5 C3,C4,C5三个层级的特征。通过全连接层(FC)把这三个层级的特征映射到维度为256通道数的向量,形成三组 C 3 ′ , C 4 ′ , C 5 ′ C'_3, C'_4, C'_5 C3,C4,C5 feature token。用 L i L_i Li表示 H 2 i + 2 × W 2 i + 2 \frac{H}{2^{i+2}} \times \frac{W}{2^{i+2}} 2i+2H×2i+2W,所以 C 3 ′ , C 4 ′ , C 5 ′ C'_3, C'_4, C'_5 C3,C4,C5维度分别为: L 1 × 256 , L 2 × 256 , L 3 × 256 L_1 \times 256, L_2 \times 256, L_3 \times 256 L1×256,L2×256,L3×256。接下来使用concatenated feature tokens作为Transformer的输入。

2. Transformer Encoder & Decoder

Transformer包括了encoder, decoder。

(1). Encoder

Transformer encoder接收来自Backbone的输入和positional encoding,输出 ( L 1 + L 2 + L 3 ) × 256 (L_1+L_2+L_3)\times 256 (L1+L2+L3)×256 的特征。Encoder使用的是Deformable attention layer。

(2). Decoder

在全景分割任务中,位置信息对于区分具有不同实例ID的things起着重要作用。因此作者设计了location decoder,用来引入things和stuff的位置信息到learnable queries。

也就是说 Decoder分为两个部分:location decoder和mask decoder

  • Location Decoder:
    首先会给定 N N N个随机初始化的object queries和encoder的输出 F F F,然后location decoder会输出 N N N个location-aware queries。在训练的时候,在location-aware queries上提供一个辅助的MLP head,用于检测目标的中心点位置和目标的大小。使用location loss L l o c L_{loc} Lloc监督这个训练。然后在推理阶段,把这个辅助检测头去掉。

  • Mask Decoder:

    mask decoder会接收来自encoder的输出 F F F,和location decoder的location-aware queries。首先会把queries输入4个decoder layers,然后获得了attention map A ∈ R N × h × ( L 1 + L 2 + L 3 ) A\in \R^{N \times h \times (L_1+L_2+L_3)} ARN×h×(L1+L2+L3) 和refine query Q r e f i n e ∈ R N × 256 Q_{refine} \in \R^{N \times 256} QrefineRN×256,其中 N N N是query 数量, h h h是multi-head attention layer中检测头的数量, L 1 + L 2 + L 3 L_1+L_2+L_3 L1+L2+L3是feature tokens F F F的长度。
    通过4个decoder layers得到的refine query,可以直接使用FC对其进行类别预测。而对于attention map,首先先把它拆分成分辨率和backbone中 C 3 , C 4 , C 5 C_3, C_4, C_5 C3,C4,C5一样的特征图 A 1 , A 2 , A 3 A_1,A_2,A_3 A1,A2,A3:
    ( A 1 , A 2 , A 3 ) = Split ( A ) , A i ∈ R H 2 i + 2 × W 2 i + 2 × h (A_1,A_2,A_3) = \text{Split}(A), A_i \in \R^{\frac{H}{2^{i+2}} \times \frac{W}{2^{i+2}} \times h} (A1,A2,A3)=Split(A),AiR2i+2H×2i+2W×h
    S p l i t ( ⋅ ) Split(\cdot) Split()是split和reshap的操作。这个之后,我们就可以的到三个不同大小的特征图,最后进行双线性插值,得到 H 8 × W 8 \frac{H}{8} \times \frac{W}{8} 8H×8W大小的特征图,最后进行拼接:
    A f u s e = Concat ( A 1 , Up × 2 ( A 2 ) , Up × 4 ( A 3 ) ) A_{fuse} = \text{Concat}(A_1, \text{Up}_{\times 2}(A_2), \text{Up}_{\times 4}(A_3)) Afuse=Concat(A1,Up×2(A2),Up×4(A3))
    得到 A f u s e A_fuse Afuse之后,使用1x1卷积进行binary mask的预测。

Location decoder使用deformable attention layer,而Mask decoder使用的是普通的multi-head attention layer。

3. Loss function

这个部分讲解一下loss function,整体如下:
L = λ c l s L c l s + λ s e g L s e g + λ l o c L l o c L = \lambda_{cls} L_{cls} + \lambda_{seg} L_{seg} + \lambda_{loc} L_{loc} L=λclsLcls+λsegLseg+λlocLloc

其中classification 使用的是Focal loss, segmentation使用的是Dice Loss。Location 使用的是:
L l o c = ∑ i N = 1 { y i ≠ ϕ } ( L 1 ( f c ( m i ) , u ^ σ ( i ) ) + L 1 ( f s ( m i ) , v ^ σ ( i ) ) ) L_{loc} = \sum_{i}^N = 1_{\{y_i \neq \phi\}} (L_1(f_c(m_i), \hat{u}_{\sigma(i)}) +L_1(f_s(m_i),\hat{v}_{\sigma(i)})) Lloc=iN=1{yi=ϕ}(L1(fc(mi),u^σ(i))+L1(fs(mi),v^σ(i)))

u ^ σ ( i ) \hat{u}_{\sigma(i)} u^σ(i) v ^ σ ( i ) \hat{v}_{\sigma(i)} v^σ(i)是预测的目标中心和大小。$1_{{y_i \neq \phi}} 表 示 只 考 虑 包 含 g r o u n d − t r u t h 的 配 对 。 表示只考虑包含ground-truth的配对。 groundtruthf_c(m_i), f_s(m_i)$表明target mask m i m_i mi的中心位置和大小(size of mask that normalized by the size of the image)。

4. Mask-wise Merge Inference

全景分割需要把每个像素都赋予一个类别标签(or void)和instance id(stuff id是被忽略的)。通常的后处理算法是heuristic procedure(Panoptic segmentation提出的)。这个方法采用了类似于NMS的过程,对things生成没有重叠的实例掩膜,称之为mask-wise strategy。 启发式过程还使用像素级的argmax策略处理stuff,并解决了things和stuff之间的重叠。

可以看到,输入的分别是预测的类别 c c c,置信度 s s s和掩膜 m m m,输出的是semantic mask和instance id。

也有另外一种方法,pixel-wise strategy。虽然像素级argmax策略在概念上很简单,但由于像素值异常极端,它始终会产生带有噪声的结果。

Panoptic SegFormer性能如下:

四、 Conclusion

拓展Deformable DETR,用于全景分割,性能达到SOTA。

Reference

你可能感兴趣的:(Transformer,论文笔记,实例分割论文笔记,计算机视觉,人工智能,目标检测)