CenterMask : Real-Time Anchor-Free Instance Segmentation

Inc Lomin's avatar
Oct 29, 2021
CenterMask : Real-Time Anchor-Free Instance Segmentation

Introduction

Mask R-CNN은 2stage-object detection 모델인 Faster R-CNN에 mask head를 추가하여, instance segmentation 까지 수행해주는 모델입니다. 본 논문에서는 1stage-object detection 모델인 FCOS에 instance segmentation 을 수행하는 SAG-Mask module을 추가하여 instance segmentation을 수행하는 모델을 제안했습니다. 또한 object detection에 효과적인 backbone인 VoVNet을 기반으로한 VoVNet v2 를 제안하였습니다.

Related Works

1) FCOS
FCOS 는 1 stage object detection model로, 기존의 많은 object detection model들이 미리 정의해둔 anchor를 기반으로 detection을 진행하는 방식인 반면에 FCOS는 anchor를 사용하지않는 object detection model 입니다. FCOS 모델은 각 pixel마다 bounding box까지의 거리(t, l, r, b), class label, center-ness(해당 pixel이 bounding box의 center에 얼마나 가까운지를 나타냄)를 output하게됩니다. FCOS의 경우 anchor를 사용하지 않기 때문에 anchor로 인해 발생하는 memory와 computation 측면에서 anchor를 사용하는 모델들보다 훨씬 더 efficient합니다.
FCOS의 구조
FCOS의 구조
notion image
 
2) VoVNet
VoVNet은 object detection을 위한 설계된 efficient한 backbone 구조로, 기존 DenseNet 기반 구조의 단점을 보완한 구조입니다. DenseNet의 경우, feature concatenate을 매 layer 통과할때 마다 진행하기 때문에 feature의 channel dimension이 linear하게 증가하고, 이로인해 computation 등의 측면에서 inefficient하게 동작합니다. 이러한 문제를 해결하기 위해, VoVNet은 중간 feature를 가장 마지막 layer 연산이 끝난 후, 한곳에서 aggregation(=concat)을 하고, 해당 feature를 이용하여 연산을 진행합니다.
notion image
notion image

Proposed Method

CenterMask는 크게 3가지 모듈로 구성되어있습니다. 1)해당 논문에서 제시하는 efficient backbone 구조인 VoVNet v2, 2) Bounding box를 예측하는 FCOS, 3) FCOS에서 예측한 bounding box를 이용해, instance segmentation 을 진행하는 SAG-Mask 3가지 모듈로 구성되어있습니다.
CenterMask의 구조
CenterMask의 구조
본 논문에서 제시한 모듈에 대한 설명은, 논문에서 설명한 순서인 SAG-Mask를 먼저 설명한 후, VoVNet v2를 설명하겠습니다.

1)SAG-Mask

  • Adaptive RoI Assignment Fucntion
    • SAG-Mask는 FCOS의 output bbox 위치 정보를 이용하여, Backbone + FPN으로 부터 feature를 가져오고, 가져온 feature를 network에 input으로 넣어 segmentation mask를 예측하는 구조를 가지고있습니다. bbox 위치정보를 이용하여, feature를 가져오는 방식은 Mask R-CNN과 동일한 RoI Align을 사용합니다. 하지만 조금 다른점이 존재합니다.
      FPN 방식을 사용하는 backbone의 경우, bbox의 넓이에 따라서 어떤 level의 FPN feature map으로부터 feature를 가져올지를 결정하게 됩니다. 아래 식이 FPN 구조를 활용할 때, 넓이에 따른 어떠한 level의 feature map으로 부터 feature를 뽑아올지를 결정해주는 식입니다. (k_0 = 4) 이러한 경우, log(*)안에 있는 식이 224로 hard coding 되어있기때문에 feature scale이 달라지는것에 대해서 잘 handling하지 못합니다.
      저자들은 입력 이미지와 RoI의 넓이 비를 통하여 이러한 문제점을 해결하고자 했습니다. (k_max : 가장 higher layer)
 
기존 FPN
기존 FPN
Adaptive RoI Assign
Adaptive RoI Assign
  • Spatial Attention-Guided Mask
    • 앞의 식을 통해 FPN에서 feature를 RoI Align ftn을 이용하여 가져옵니다. 이러한 feature를 적절한 네트워크에 입력으로 넣어주어서 segmentation mask를 얻습니다. SAG-Mask 모듈은 convolution 연산 4번, SAM(Spatial Attention Module), deconvolution 연산 1번, 1x1 convolution으로 구성이 되어있습니다. SAM module은 spatial attention map을 구하는 과정으로, SENet에서 진행하는 channel attention을 spatial 한 axis를 통하여 진행합니다.
SAG Mask의 구조
SAG Mask의 구조
Spatial attention map을 구하는 식
Spatial attention map을 구하는 식
Spatial attention map  * feature map 연산
Spatial attention map * feature map 연산

2) VoVNet v2

VoVNet에서 비교적 shallow한 네트워크에서는 성능 향상이 있다는것을 확인하였지만, Oneshot aggrgation Module (OSA)(그림 아래쪽에서의 (a))가 deep 하게 쌓이는 경우 성능 하락을 있다는것을 확인했습니다. 저자들은 이러한 문제를 해결하기 위해, OSA에 Residual connection을 추가하여 deep한 경우에도 학습이 효과적으로 진행되어 성능이 떨어지지 않도록 하였습니다.
notion image
또한, 성능을 높이기위해 Channel attention도 사용하였습니다. 하지만 본래의 SENet module과는 조금 차이가 있습니다. 본래 SENet에서의 Channel attention weight를 구할때, FC Layer 2개를 이용하여 구하게되는데 channel dimension이 C→ C / r →C 로 변화되기때문에 정보손실이 일어납니다. 본 VoVNet v2에서는 channel attention weight를 구할때, FC Layer를 1개만 쓰고, Channel dimension reduction이 일어나지 않습니다.
notion image

3) Loss

사용한 Loss function은 FCOS 에서 사용한 loss에 mask에 해당하는 loss function만 추가하였습니다. Mask loss는 Mask R-CNN에서 처럼 average cross entropy를 사용했습니다.
notion image
추가적으로, mask scoring algorithm도 적용하였다고 합니다.

Experiment

Ablation Studies

1) Spatial Attention Guided Mask (Backbone : Res50, Eq.1 → mask R-CNN과 동일 )
notion image
2) Backbone Network
notion image
 

Comparison with S.O.T.A Methods

1) Backbone (Model : CenterMask)
notion image
notion image
 
2) Detection Methods ( * 가 붙은것들 : Detectron2 based code base, 없는것 : maskrcnn-benchmark code base)
notion image
notion image
 

Conclusions

논문이 엄청난 novelty가 있어보이지는 않지만, FCOS를 이용해서 instance segmentation을 최초(?)로 시도했다는점에서 좋게봐준것으로 추정된다. 해당 논문이 accpet된 CVPR2020에 FCOS를 이용한 instance segmentation이 2편 더 accept되었는데, 참고를 해보면 좋을것으로 생각한다.
  • BlendMask: Top-Down Meets Bottom-Up for Instance Segmentation
  • Mask Encoding for Single Shot Instance Segmentation
 
 
 
Share article