Paper Review

[Review] Mask R-CNN

2018. 10. 31. 13:25

2018.01.24에 발표된 Mask R-CNN에 대해 리뷰하도록 하겠습니다.



 R-CNN 계열 모델은 R-CNN, Fast R-CNN, Faster R-CNN, 그리고 Mask R-CNN까지 총 4가지 종류가 있습니다.


1. R-CNN (2014) : Rich feature hierarchies for accurate object detection and semantic segmentation


2. Fast R-CNN (2015) : Fast R-CNN


3. Faster R-CNN (2016) : Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks


4. Mask R-CNN (2017) : Mask R-CNN



 Faster R-CNN까지는 모두 Object Detection을 위한 모델이었으나 Mask R-CNN은 Faster R-CNN을 확장하여 Instance Segmentation에 적용하고자 하는 모델입니다. Mask R-CNN을 간략하게 요약한다면, Faster R-CNN에서 detect한 각각의 box에 mask를 씌워주는 모델이라고 생각할 수 있습니다.



Abstract


 Mask R-CNN은 Introduction에서도 언급했듯이 Faster R-CNN에 mask를 predict해주는 부분을 추가해준 것입니다. 따라서 Faster R-CNN에 한 가지 부분만 추가해주면 되므로 학습하는 것이 간단합니다.

 또한 Mask R-CNN은 다른 tasks에도 쉽게 사용할 수 있습니다. (ex - human poses estimation) 일례로 COCO challenges의 모든 tasks (instance segmentation, bounding-box object detection, 그리고 person keypoint detection)에서 이전 모델보다 높은 성능을 보였습니다.



1. Introduction


 Mast R-CNN는 기본적으로 Instance Segmentation을 하기 위한 모델입니다. Instance Segmentation을 하기 위해서는 Object detection과 semantic segmentation을 동시에 해야 합니다. 이를 위해 Mask R-CNN은 기존의 Faster R-CNN을 Object detection 역할을 하도록 하고 각각의 RoI (Region of Interest)에 mask segmentation을 해주는 작은 FCN (Fully Convolutional Network)를 추가해주었습니다.


 기존의 Faster R-CNN은 object detection을 위한 모델이었기 때문에 RoI Pooling 과정에서 정확한 위치 정보를 담는 것은 중요하지 않았습니다. 정확한 이해를 위해 아래 그림을 통해 설명하도록 하겠습니다. (출처)






RoI Pooling에서 RoI가 소수점 좌표를 갖고 있을 경우에는

각 좌표를 반올림한 다음에 Pooling을 해줍니다.


이렇게 되면 input image의 원본 위치 정보가 왜곡되기 때문에

Classification task에서는 문제가 발생하지 않지만

정확하게 pixel-by-pixel로 detection하는 segmentation task에서는 문제가 발생합니다.




이를 해결하기 위해 Mask R-CNN에서는

RoI Pooling 대신에 RoI Align을 사용합니다.




논문에 수록된 사진을 통해 간단하게 정리하자면

RoI에서 얻어내고자 하는 정보는 박스 안의 동그라미 점입니다.


하지만 이미지 데이터는 정수인 좌표의 값만 갖고 있으므로

화살표로 표현된 방법을 통해 동그라미 점의 값을 구하겠다는 것입니다.


그리고 화살표가 의미하는 방법은 bilinear interpolation입니다.




아래의 그림을 참고하시면 더 이해가 잘 될 것 같습니다.


RoIAlign은 mask accuracy에서 큰 향상을 보였다고 합니다.




Mask R-CNN의 두번째 핵심은

mask prediction과 class prediction을 decouple하였다는 점입니다.

이를 통해 mask prediction에서 다른 클래스를 고려할 필요 없이

binary mask를 predict하면 되기 때문에 성능의 향상을 보였다고 합니다.



2. Related Work

 R-CNN과 Instance Segmentation에 대해서 소개하고 있습니다.



3. Mask R-CNN




4. Experiments: Instance Segmentation



COCO test image에 적용한 결과는 위와 같습니다.




위의 그림은 mask prediction에서 binary mask(sigmoid)와 multinomial mask(softmax)를

사용했을 때의 결과를 비교한 것입니다.




위 그림을 RoIAlgin을 적용했을 때의 성능 향상을 보여주는 표입니다.



5. Conclusion


 Mask R-CNN은 Faster R-CNN에 간단하게 작은 FCN을 추가해주어 다양한 computer vision tasks를 가능하게 했다는 장점이 있습니다. 또한 아직 연구가 더딘 Instance Segmentation을 중점으로 진행되었다는 특징도 있습니다.


6. Reference

 1. PR-057 Mask R-CNN : https://www.slideshare.net/TaeohKim4/pr057-mask-rcnn?from_action=save

 2. R-CNN 계열 모델 : https://towardsdatascience.com/r-cnn-fast-r-cnn-faster-r-cnn-yolo-object-detection-algorithms-36d53571365e