R-CNN의 마지막 논문으로, 기존의 classification, object detection과는 다른 task를 수행한다. Semantic Segmentation은 클래스별로 영역을 필셀별로 구분하는데, 같은 클래스는 같은 영역으로 되어 있는 반면, Instance Segmentation은 클래스별로도, 즉 하나의 객체당 Segmentation를 구별을 한다.
바운딩 박스 정보를 같이 이용하면 클래스별로 구별하여 Instance Segmentation을 수행하게 된다.
구현은 간단하게 진행이 되는데, Faster R-CNN을 backbone을 활용하여 7×7 레졸루션을 늘이고 채널을 줄여나간다. 마지막 레이어의 80은 coco dataset의 클래스 수를 의미한다.
3가지 class, box, mask를 수행한다.
ROIPooling의 경우 기존의 feature map에 있는 값을 그대로 가져온 반면, ROIAlign은 feature map의 필셀별로 딱 맞는 것이 아닌 소수점도 허용한다. 해당 ROI window에 있는 필셀의 위치 좌표를 이용해서 주변에 있는 feature map의 픽셀 값들도 참조해서 값을 정한다.
결과들을 보면, 성능이 좋다.
softmax와 sigmoid를 사용했을 때, 바운딩 박스의 탐지가 더 올라가는 점은 흥미롭다.
object detection에서 Faster R-CNN에 RoIAlign을 적용하면 Mask R-CNN과 아키텍쳐는 같지만, Mask R-CNN의 성능이 더 좋은 이유는 multi-task learning을 진행하면 성능이 더 올라간다고 논문에서는 주장하고 있다.