Mask r-cnn review

2 minute read

Mask r-cnn

He, Kaiming, et al. “Mask r-cnn.” Proceedings of the IEEE international conference on computer vision. 2017.

Abstract

memoryblock

  • Mask R-CNN : object instance segmentation을 위한 단순하고 유연성 있는 일반적인 framework

각 instance에 대한 segmentation mask를 생성하는 동시에 image에서 obejcts detection을 수행

Faster R-CNN(기존의 branch)에 object mask를 예측하는 branch를 추가 (작은 overhead)

  • Mask R-CNN은 다른 task에도 쉽게 적용이 가능함

Pose estimation에 적용하여 좋은 성능을 냄

  • COCO challenge 3가지 track에서 1위를 차지함

instance segmentation, bounding box object detection, person keypoint detection

  • 단순하고 효과적인 접근법으로 좋은 baseline을 제공할 수 있으며, 미래의 instance-level recognition 연구에 도움이 될 수 있음

Introduction

  • instance segmentation은 이미지에서 모든 objects를 정확하게 detection하면서, 각 instance를 정확히 segmentation해야 하기 때문에 challenging함

object detection + semantic segmentation


Mask R-CNN

  • Faster R-CNN에 각 RoI에 대한 segmentation masks를 예측하는 branch를 추가하여 확장시킴

기존의 branch (classification and bounding box regression) + 새로운 branch (segmentation masks 예측)

  • mask branch는 pixel-to-pixel 방식으로 segmentation mask를 예측하기 위해 각 RoI에 작은 FCN을 적용

  • Mask R-CNN의 2가지 장점

  1. 구현과 학습이 단순하고 Faster R-CNN framework를 제공함
  1. 적은 overhead로 빠른 시스템과 실험을 가능하게 함
  • Faster R-CNN은 input과 output 사이에 pixel-to-pixel alignment를 수행하지 않음

RoI Pooling을 하면서 mis-alignment 문제점 발생

이를 해결하기 위해, 정확한 spatial location 정보를 보존하는 단순한 quantization-free layer(RoIAlign) 제안

  • RoI Pooling
  1. mask accuracy가 10-40% 향상
  1. mask prediction과 class prediction을 분리시킴

각 class에 대해 독립적으로 mask 예측

  • FCNs는 segmentation과 classification을 결합하는 방식으로 pixel 당 multi-class categorization 수행

  • COCO instance segmentation task에서 기존의 SOTA를 능가함

  • framework의 높은 유연성과 빠른 train과 test 속도

  • human pose estimation에 Mask R-CNN을 적용하여 좋은 성능을 냄

Mask R-CNN

Faster R-CNN

  • 2-stage : Region Proposal Network(RPN) -> Fast R-CNN

Region Proposal Network(RPN) : object의 bounding box candidate를 제안하는 네트워크

Fast R-CNN : 각 candidate box로부터 RoIPool을 이용하여 feature를 추출하고, classification과 bounding-box regression을 수행

빠른 속도를 위해, 두 stages에 사용되는 features는 공유될 수 있음

memoryblock

Mask R-CNN

  • Mask R-CNN도 2-stage 방식이며, 첫번째 stage는 Faster R-CNN과 동일하게 RPN으로 구성

  • 두번째 stage는 class와 bounding box offset을 예측하는 동시에 각 RoI에 대한 binary mask를 output으로 내보냄

기존 방식은 mask prediction에 의존하여 classification을 수행함

  • Loss = classification loss + box regression loss + mask loss

mask loss는 네트워크가 모든 K개의 class에 대한 masks를 생성하게 함 (Kxmxm dimension)

  • Mask R-CNN은 기존 FCNs과는 다르게 mask와 class의 예측을 분리시킴 (다른 class를 고려할 필요없이 binary mask 예측)

Mask Representation

  • mask는 input object의 spatial layout을 encoding 함

  • fc layer에 의해 spatial 정보가 사라지는 class labels 또는 box offsets 방식과 다르게 masks의 spatial 구조를 추출하는 것은 convolutions에 의해 pixel-to-pixel로 진행이 가능함

  • 각 RoI로부터 mxm mask를 예측함 (spatial dimension 유지)

  • fully convolutional representation은 적은 parameters를 가지며, 더 정확함

RoIAlign

  • RoIPool : 각 RoI에서 7x7인 feature map을 추출하는 연산

이러한 과정에서 RoI와 추출된 features 사이 misalignments가 발생하고, 이는 mask accuracy에 치명적임

memoryblock

  • RoIPool의 문제점을 해결하기 위해 제안된 RoIAlign layer

input과 추출된 features의 alignment를 적절히 수행하면서 RoIPool의 quantization을 제거

  • RoIAlign layer

RoI boundaries(or bin)의 quantization을 모두 제거

각 ROI bin의 4개의 정기적으로 샘플링된 위치에서 input features의 정확한 값을 계산하고 결과를 집계(최대 또는 평균 사용)하기 위해 bilinear interpolation을 사용

Network Architecture

Leave a comment