影像分割 Image Segmentation — 實例分割 Instance Segmentation(2)

李謦伊
謦伊的閱讀筆記
9 min readFeb 20, 2022

上一篇文章有介紹一些 Instance Segmentation 的代表演算法以及卷積的平移不變性問題,本文將會接續介紹基於直接分割和綜合 top-down 及 bottom-up 的實例分割方法。

直接分割方法 (Anchor free)

直接分割法是指採用 Anchor free 的方式來進行實例分割的預測,並不需要先得到物件檢測框。代表演算法有 AdaptIS、PolarMask、CenterMask、SOLO、SOLOv2。

AdaptIS (ICCV2019)

🔖 Github: https://github.com/saic-vul/adaptis

AdaptIS 特點在於給定一個 point (x, y) 就可以預測出該目標物的 mask,除了可用在實例分割任務上,也可擴展至全景分割任務。

網路架構如下圖, 主要由三個部分組成: Instance selection network、Controller network、Relative CoordConv,還提出了 Point proposals 來預測 point,因此不需要特別指定 point (x, y)。

  • Instance selection network 的核心在於 Adaptive Instance Normalization (AdaIN),通過一些運算,使得各個 point proposal 能夠預測其目標物的 mask。
  • Controller network 是一系列的全連接層,目的是從輸入的 point proposal 提取特徵。
  • Relative CoordConv 會從輸入的 point proposal (x, y) 輸出兩個特徵圖,作法是將輸入圖片的所有座標以 (x, y) 為原點計算其相對位置,然後 normalization 至 [-1, 1]。接著與 backbone 的輸出進行 concat,再送進 Instance selection network。目的是幫助辨別不同實例對象但具有相似類別的 pixel。

PolarMask (CVPR 2020 Oral)

🔖 Github: https://github.com/xieenze/PolarMask

PolarMask 採用極座標的方式尋找物體 contour 來進行實例分割任務,將問題轉化為 instance center classification 及 dense distance regression。還提出了 Polar CenterNess 和 Polar IoU loss 優化結果,前者用於獲取 high-quality 的正樣本,後者用於優化 dense distance regression 的 loss function。

網路架構是基於 FCOS,backbone (ResNeXt-101)+ FPN,head 一樣是 Classification、Regression 兩個分支,差別在於 PolarMask 使用 Polar CenterNess 替代原本的 Center-ness;Regression 改為對 mask 進行回歸,其中 n=36,是指 rays (射線) 的長度。PolarMask 可作為是 FCOS 的擴展,關於 FCOS 的介紹可閱讀我之前的文章: 物件偵測 Object Detection 概述

mask 的建模方式為輸入圖片後得到極座標的中心點位置,以固定的角度產生 n 條 rays,根據角度和距離計算出 contour 上的各個點座標,將這些點連線作為分割的結果。

正樣本的選取方式是在物體 mass-center 上下左右 1.5 倍的區域範圍,其餘則是負樣本。為了進一步的選出 high-quality 的正樣本,使用一開始提到的 Polar CenterNess,而對於 mask regression 的優化則使用 Polar IoU loss,兩者都是根據 rays 做計算。

詳細可參考作者的知乎: (CVPR20'Oral) PolarMask: 一階段實例分割新思路

CenterMask (CVPR 2020)

CenterMask 有兩篇文章: Real-Time Anchor-Free Instance Segmentation 及single shot instance segmentation with point representation,都是採用 one-stage, anchor free 的方式來實行實例分割任務,兩篇都收錄自 CVPR 2020。

CenterMask : Real-Time Anchor-Free Instance Segmentation

🔖 Github: https://github.com/youngwanLEE/CenterMask

🔖 Github: https://github.com/youngwanLEE/centermask2

CenterMask 是基於 FCOS 和 MaskRCNN 改進而來的,網路架構由 backbone+ FPN、FCOS Box head、SAG-Mask 所組成,可以看成是在 FCOS 的基礎上加入分割分支。此外,還提供了輕量模型 CenterMask-Lite。

改進的部分有以下三項:

  • 新的 backbone — VoVNetV2

VoVNetV2 是以 VoVNet 為基礎添加 Residual connection 和 Effective Squeeze-Excitation (eSE)。

由下圖 (c) 可看到在 OSA module 的輸出加入注意力機制 eSE,再使用 Residual connection。eSE 將原本 SENet block 的兩個全連接層改成一個全連接層,能夠防止通道訊息丟失,並減少計算量。

  • Adaptive RoI Assignment

在 Mask RCNN 中會根據檢測的 ROI 大小分配到不同的 FPN 層上,對應的公式為 Equation (1),其中 224 是 ImageNet pretraining size。

但該公式並不適用於 CenterMask,因為 two-stage detectors 使用的 FPN 層為 P2~P5,但 one-stage detectors 是使用 P3~P7;另外,其他尺寸的圖片按照參數 224 進行分配不太合理。因此提出新的對應公式,能夠提升小目標檢測的 AP,其中 k_max=5, k_min=3、A_input, A_ROI 分別為輸入圖片與 ROI 的面積。

  • Spatial Attention-Guided Mask

從 FCOS 輸出的 box 會先使用 RoI Align 提取 14x14 resolution 的特徵,然後送進 SAG-Mask 產生實例分割,SAG-Mask 是一個空間注意力機制的 mask 分支。

網路架構可由下圖看到,在 spatial attention module (SAM) 中,input feature map 會沿著 channel axis 進行 max pooling 及 avg pooling,用於提升對空間特徵的關注,接著經過一個 3x3 卷積層+ sigmoid,與原輸入做 element-wise 相乘。

CenterMask: single shot instance segmentation with point representation

作者設計了兩個簡單有效的分支 — Local Shape prediction、Global Saliency generation 來預測 mask,前者是從物體中心點預測該物體粗糙的 mask 形狀,有利於區分各個實例;而後者是對整張圖的 pixel-wise 預測,有利於保持精確的位置資訊。

網路架構總共有 5 個 head: Saliency、Shape、Size、Heatmap、Offset,其中 Saliency 用於預測 Global Saliency generation;Shape 與 Size 則是用於預測 Local Shape prediction;Heatmap 為預測每個實例的中心點及類別;Offset 是對中心點座標的偏移進行修正。

Local Shape prediction 之拆分為 shape, size 是因為固定大小的特徵難以表示不同尺寸的物體。shape 分支是對每個物體中心點預測該 mask 形狀,由 1x1xs² 的向量表示。reshape 為 SxS 後,再根據 size 分支預測出的高寬 resize 成 hxw 的形狀。網路架構如下圖所示,其中P 是經過 backbone 提取出的 feature map。

SOLO、SOLOv2

SOLO、SOLOv2 根據目標物的中心位置與尺寸大小來進行分割,將實例分割問題轉化為分類問題,詳細可參考: SOLO 與 SOLOv2 論文閱讀

綜合 top-down 及 bottom-up

BlendMask (CVPR 2020)

BlendMask 提出了 Blender module 將 low-level、high-level 特徵進行融合,該論文收錄於 CVPR 2020,詳細可參考: BlendMask 論文閱讀

--

--