[Paper Review] Mask r-cnn
Mask r-cnn
He, Kaiming, et al. “Mask r-cnn.” Proceedings of the IEEE international conference on computer vision. 2017.
Abstract
- 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가지 장점
- 구현과 학습이 단순하고 Faster R-CNN framework를 제공함
- 적은 overhead로 빠른 시스템과 실험을 가능하게 함
- Faster R-CNN은 input과 output 사이에 pixel-to-pixel alignment를 수행하지 않음
RoI Pooling을 하면서 mis-alignment 문제점 발생
이를 해결하기 위해, 정확한 spatial location 정보를 보존하는 단순한 quantization-free layer(RoIAlign) 제안
- RoI Pooling
- mask accuracy가 10-40% 향상
- 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는 공유될 수 있음
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에 치명적임
- RoIPool의 문제점을 해결하기 위해 제안된 RoIAlign layer
input과 추출된 features의 alignment를 적절히 수행하면서 RoIPool의 quantization을 제거
- RoIAlign layer
RoI boundaries(or bin)의 quantization을 모두 제거
각 ROI bin의 4개의 정기적으로 샘플링된 위치에서 input features의 정확한 값을 계산하고 결과를 집계(최대 또는 평균 사용)하기 위해 bilinear interpolation을 사용
Leave a comment