논문링크 : https://arxiv.org/abs/1703.06870

  • Mast R-CNN는 기본적으로 Instance Segmentation을 하기 위한 모델
  • Faster R-CNN에 각 픽셀이 객체인지 아닌지를 masking하는 CNN 추가
  • 간단히 말해, Mask R-CNN은 Faster R-CNN에서 detect한 각각의 box에 mask를 씌워주는 모델

[이미지 출처 : https://codebaragi23.github.io/machine%20learning/5.-Mask-R-CNN-paper-review/]

Contribution

  • COCO challenges의 모든 task에서 이전 모델보다 우수한 성능

 

Architecture

  • Instance Segmentation을 하기 위해서는 Object detection과 semantic segmentation이 필요함
  • 기존의 Faster R-CNN을 Object detection 역할을 하도록 하고, 각각의 RoI (Region of Interest)에 mask segmentation을 해주는 작은 FCN (Fully Convolutional Network)를 추가
  • RPN 전에 FPN(feature pyramid network)가 추가 : FPN에서는, 마지막 layer의 feature map에서 점점 이전의 중간 feature map들을 더하는 방식을 사용하기 때문에, 이전 레이어의 정보까지 유지할 수 있도록 한다.  이렇게 함으로써 더이상 여러 크기 값으로 anchor를 생성할 필요가 없기 때문에, 모두 동일한 크기의 anchor를 생성함
  • 즉, backbone network는 ResNet + FPN
  • Image segmentation의 masking을 위해 RoI pooling 대신 RoI align을 사용

[이미지 출처 : https://ganghee-lee.tistory.com/40]

 

  • mask branch는 3x3 conv - ReLU - deconv(by 2) - 1x1(xK) conv layer로 구성
  • K는 class의 수를 의미
  • mask branch를 거치면, 14x14(xK) 크기의 feature map 출력, 해당 feature map은 class별로 생성된 binary mask
  • segmentation task는 픽셀 단위로 class를 분류해야 하기 때문에 detection task보다 더 정교한 공간 정보가 필요
  • 이를 위해 mask branch는 여러 개의 conv layer로 구성된 작은 FCN의 구조
  • class label이나 bbox offset이 fully connected layer에 의해 공간정보를 상실하는 것과 달리 mask branch는 이미지 내 객체에 대한 공간 정보를 효과적으로 포착하는 것이 가능

논문에 나와있는 Mask R-CNN의 구조는 아님 [이미지 출처 : https://herbwood.tistory.com/20] 

 

Core idea

  1. Faster R-CNN에 각 픽셀이 오브젝트에 해당하는 것인지 아닌지를 마스킹하는 네트워크(CNN)를 추가
  2. mask prediction과 class prediction을 decouple하였다는 점 -> mask prediction에서 클래스를 고려할 필요 없이 binary mask를 predict하기만 하면 된다.
  3. ROIAlign : RoI Align을 통해 RoI Pooling보다 더 정확한 픽셀 위치를 추출

 

RoIAlign

 Faster R-CNN의 RoI pooling을 사용하면 입력 이미지 크기와 상관없이 고정된 크기의 feature map을 얻을 수 있다는 이점. but, RoI pooling을 통해 얻은 feature와 RoI 사이가 어긋나는 misalignment가 발생 → 픽셀 하나 하나로 detection을 하는 segmentation task에서는 문제임

 

기타

Loss function

  • classification loss, bounding box loss로 Faster R-CNN과 동일
  • mask loss로 binary cross entropy loss
  • class별로 mask를 생성한 후 binary loss를 계산함

 

[이미지 출처 : 논문 원본]

반응형

+ Recent posts