본문 바로가기
논문 리뷰

Mask R-CNN(2017) Review

by rltjq09 2024. 2. 6.
728x90
 

Mask R-CNN

We present a conceptually simple, flexible, and general framework for object instance segmentation. Our approach efficiently detects objects in an image while simultaneously generating a high-quality segmentation mask for each instance. The method, called

arxiv.org

0. 핵심 요약

 Object instance segmentation을 위한 일반적인 프레임 워크 제시

기존 bounding box branch와 병렬로 mask branch를 추가함으로써 Faster R-CNN을 확장

segmentation 뿐만 아니라 같은 프레임워크를 이용해 pose 추정도 가능

1. BackGround

- semantic segmentation vs instance segmentation

두 task는 비슷해보이지만 분명한 차이점이 존재하는 task이다

 

위 두 사진을 보면 두 차이점을 명확하게 알 수 있을 것이다

semantic segmentation은 말 그대로 분할에 목적이 있으며, 동일한 class 사이에는 구분을 하지 않는다는 특징이 있다

하지만 instance segmentation은 모든 객체를 정확히 분리해내는 것이 목적이기 때문에 동일한 class 더라도 서로 다른 객체라면 다르게 예측하는 것이 특징이다

 

Mask R-CNN은 이 중 instance segmentation을 더욱 발전시키기 위한 목적을 가지고 있다

 

이로 인해서 논문의 저자는 instance segmentation의 어려움에 대해서 이야기 하고 있다

instance segmentation이 어려운 이유는 이미지의 모든 객체를 탐지함과 동시에 각 instance를 정확하게 segmentation 해야하기 때문이라고 한다

 

모든 객체를 탐지해야 하기 때문에 기존 object detection 모델인 Faster R-CNN을 segmentation으로 확장하는 방향을 선택한 것 같다

 

- FCN

FCN은 segmentation에 CNN을 적용하기 위한 시도를 한 모델로써, Mask R-CNN에도 해당 개념이 사용되었다

자세한 내용은 이전 논문 리뷰를 참고

 

Fully Convolutional Networks for Semantic Segmentation(FCN) Review

Fully Convolutional Networks for Semantic Segmentation Convolutional networks are powerful visual models that yield hierarchies of features. We show that convolutional networks by themselves, trained end-to-end, pixels-to-pixels, exceed the state-of-the-ar

rltjq09.tistory.com

 

- Faster R-CNN

Faster R-CNN은 Object detection을 위한 모델로, RPN을 활용하였다는 특징이 있다

자세한 내용은 이전 논문 리뷰를 참고

 

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks Review

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks State-of-the-art object detection networks depend on region proposal algorithms to hypothesize object locations. Advances like SPPnet and Fast R-CNN have reduced the running tim

rltjq09.tistory.com

2. 논문 핵심 내용

- RoI Align

 

Segmentation은 픽셀 값 하나하나가 매우 중요한 task이다

하지만 Faster R-CNN에서 RoI Pooling 같은 경우에는 region을 예측하고 RoI Pooling을 할 때 bins 안에 해당하는 모든 픽셀 값들을 단순히 average pooling 하여 coarse 하게 만들어버린다

이러한 것은 detection에서는 상관이 없지만 매우 세밀한 것이 중요한 segmentation에서는 매우 치명적인 오류가 될 수 있다

따라서, 논문에서는 이를 해결하기 위해 RoI Align이라는 것을 도입한다

RoI Align은 기존에 단순히 반올림하여 처리하던 것을 bilinear interpolation을 활용하여 하나의 픽셀 값을 중요하게 선택하게 하는 것이다

위의 사진을 보면, 파란색 점선이 기존 feature map의 픽셀이고, 검정색 실선이 생성된 region이다

보면 검정색이 정확히 파란색 위에 올라가지 않은 것을 볼 수 있는데, 이때 애매하게 벗어난 값을 예측하기 위해 선형 보간 기법을 활용해 이를 채우고자 하는 것이다

이렇게 해서 기존에는 무시했었던 것을 좀 더 세밀하게 볼 수 있게 되었다

 

- Mask Branch

해당 이미지는 Mask R-CNN의 전체적인 Architecture를 나타낸 그림이다

기존의 Faster R-CNN에서는 RoI Pooling을 거친 이후에 바로 classifier를 통해 class를 예측하였다

하지만, Mask R-CNN은 픽셀별로 예측하기 위해서 FCN에서 사용한 것처럼 convolution layer를 통해 segmentation을 수행하였다

이때, 위에 class box가 하나 더 추가로 있는 것을 볼 수 있는데 이는 위와 같이 class box를 따로 만들어서 class를 예측하는 것이 더 성능이 잘 나왔다는 실험 결과가 있었다고 한다

즉, convolution을 통해 우선 이진 분류(객체가 있는지 없는지)를 수행한 다음, class box를 통해 예측된 class를 최종 class로 결정하는 것이다

 

- Loss Function

$L = L_{cls} + L_{box} + L_{mask}$

우선 $L_{mask}$는 픽셀 별로 1 또는 0 값을 가지기 때문에 픽셀 별로 mean binary cross entropy loss를 사용

그 다음 $L_{cls}, L_{box}$는 Fast R-CNN에서 사용한 Loss function과 동일한 것을 사용했다고 언급

3. Model Architecture

최종적으로 논문에서 생성한 모델은 총 2가지이다

1. BackBone 모델로 ResNet을 사용한 Faster R-CNN + Mask R-CNN

2. Faster R-CNN에 FPN을 더해 Multi-scale을 활용 + Mask R-CNN

 

hyper parameter

기존 Fast / Faster R-CNN의 값들을 그대로 활용

training 과정에서 IoU 가 0.5 이상인 것을 positive, 그렇지 않은 것들을 negative로 설정

4. Experiment

결과를 시각화한 사진이다

instance segmentation이 잘 이루어진 것을 볼 수 있다

 

이미지 뿐만 아니라 수치적으로 확인해봐도 기존의 모델들보다 매우 뛰어난 성능을 보이는 것을 볼 수 있다

5. Contribution

'Mask R-CNN'은 instance segmentation를 위한 프레임워크로, 이미지 내 객체를 효율적으로 탐지하면서 각 인스턴스에 대한 고품질 세분화 마스크를 생성

Faster R-CNN을 확장하여 객체 마스크 예측을 위한 새로운 분기를 추가

+ Comment

instance segmentation이라는 task 자체가 사실 쉽지 않은 task라고 생각하는데 이 문제를 detection과 segmentation을 적절히 결합해서 해결해냈다는 것이 인상깊었다

과거의 논문들을 다시금 읽다보면 최신 논문을 볼때와는 또 다른 아이디어와 영감을 주는 것 같다

728x90