[논문 리뷰] Mask R-CNN - Mask R-CNN (2017)

‍이수빈·2025년 2월 17일

[논문 리뷰]

목록 보기
17/24

Paper: Mask R-CNN

🔍1. Introduction

vision community는 Fast R-CNN/Faster R-CNN과 같은 객체 탐지 시스템 덕분에 성능을 빠르게 향상시켜옴.

Instance segmentation는 이미지 내 모든 객체를 올바르게 탐지하는 동시에 개별 객체를 정확히 분할해야 함(= 각 객체를 분류하고, 바운딩 박스로 위치를 지정하는 작업 & 각 픽셀을 사전에 정의된 범주 중 하나로 분류하는 작업).

본 연구에서는(Mask R-CNN) Faster R-CNN을 확장하여 Region Of Interest(ROI)별로 세분화된 마스크를 예측하는 새로운 브랜치를 추가함.
해당 마스크 브런치는 기존 분류/바운딩 박스 예측과 병렬로 동작하고, ROI에 대해 FCN(Fully Convolution Network)을 적용하여 픽셀 단위로 마스크를 예측함.

Mask R-CNN은 Faster R-CNN의 확장 버전이지만, 마스크 브랜치를 적절하게 설계하는 것이 성능에 중요함.
기존 Faster R-CNN에서 네트워크 입력과 출력 간 픽셀 정렬이 맞지 않는 문제를 고려하여, ROIAlign이라는 새로운 layer를 도입함.
또한, 마스크 예측 및 클래스 예측을 분리하는 것이 필수적임. Mask R-CNN은 마스크 예측과 클래스 예측을 분리하여 독립적인 binary mask를 생성함.

추가적인 최적화 없이도, Mask R-CNN은 COCO 벤치마크에서 기존의 모든 single-model 성능을 뛰어넘음.

R-CNN
ROI별로 CNN을 개별적으로 적용하여 객체 탐지를 수행하는 방식임.
이후 RoIPool을 활용하여 feature map에서 ROI를 처리할 수 있도록 개선됨(속도&정확도 향상).
특히 Faster R-CNN은 RPN(Region Proposal Network)을 도입하여 ROI를 자동적으로 학습하는 방식으로 발전함(유연성 good).
Instance Segmentation

instance segmentation에서도 R-CNN 기반 접근법이 많이 활용됨.
초기 bottom-up 방식의 세그먼트 추출을 많이 활용했는데, 후속 연구는 세그먼트 후보 학습 후 Fast R-CNN을 사용해서 이걸 분류하는 방식으로 진행함.
단, 이런 방법의 경우, segmentation을 하고 객체 인식을 해야 하기 때문에, 속도가 느리고 정확도가 낮음.

본 연구에서는 mask와 class label을 병렬로 예측하는 방식을 사용해서, 더 간단하고 유연한 접근 방식을 제안함.

✅3. Mask R-CNN

Faster R-CNN은 클래스 label + 바운딩 박스 오프셋을 출력하는 구조.
Mask R-CNN은 추가적으로 객체 마스크를 출력하는 세 번째 브랜치를 추가함.

Faster R-CNN
two-stage로 이루어진 객체 탐지 모델임.
(1): RPN(Region Proposal Network)이 후보 바운딩 박스를 생성함.
(2): Fast R-CNN 구조를 사용해서 RoIPool 연산을 통해서 각 후보 box에서 features를 추출하고, 객체 분류&바운딩 박스 regression 진행.
→ feature 공유를 통해 추론 속도가 빠름

Mask R-CNN
Faster R-CNN과 동일한 two-stage 구조.
(1): RPN을 사용해 바운딩 박스 제안.
(2): 바운딩 박스 & 클래스 label 예측하면서 추가적으로 객체 마스크를 병렬로 예측.

학습 과정에서 각 ROI에 대해 multi-task loss를 정의함.

L_mask는 각 클래스별 독립적인 binary mask를 학습하도록 정의.

RoIPool은 바운딩 박스를 quantization(양자화)하여 feature 추출을 하는데, spatial misalignment(공간 정렬 오류)를 발생시킴.
이는 픽셀 단위 정확도가 중요한 mask 예측에서 문제가 됨.
따라서, 이를 해결하기 위해 RoIAlign 연산을 진행함.
RoIAlign은 RoIPool과 달리 양자화를 수행하지 않음.
RoI 내 4개 샘플 지점에서 bilinear interpolation을 수행해 특징을 추출함
양자화 없이 연속적인 좌표값을 유지하여 픽셀 정렬 문제를 해결함.

Mask R-CNN은 다양한 네트워크 아키텍처와 호환될 수 있음.
이를 위해 하단 두 가지 구성요소를 가짐.
(1) 백본(backbone) 네트워크: 전체 이미지에서
feature 추출 역할.
(2) 헤드(head) 네트워크: 추출된 특징을 활용하여 바운딩 박스 회귀, 객체 분류, 마스크 예측 수행.

↑ Head Architecture
왼쪽 패널: ResNet C4 백본 기반 헤드 구조
오른쪽 패널: FPN 백본을 기반 헤드 구조

Implementation Details

Mask R-CNN 하이퍼파라미터: 기존 Fast R-CNN & Faster R-CNN 연구에서 사용된 설정을 따름.
instance segmentation 작업에서도 robust하기 때문.

Fast R-CNN과 같이, RoI가 Ground Truth 바운딩 박스와 IoU(Intersection over Union)가 0.5 이상: Positive RoI, 0.5 미만: Negative RoI로 간주함.
L_mask(mask 손실)는 positive RoI에 대해서만 정의.
mask target은 RoI와 해당 GT 마스크의 교차 영역임.

이미지 중심의 학습 방법을 선택했고, input image의 shorter edge가 800픽셀이 되도록 리사이징함.
Positive:Negative 비율은 1:3으로 두었고, C4 백본에서는 RoI 64개, FPN 백본에서는 RoI 512개 샘플링 진행함.
8개 GPU로 16만 번 학습을 진행했고, 학습률은 12만 번째에서 10배 감소하도록 함.
RPN은 5개 크기, 3개 종횡비의 앵커를 사용하고, 필요 시 별도로 학습 가능하도록 함.

테스트 할 때, C4 백본은 300개, FPN 백본은 1000개 바운딩 박스 제안하도록 했고,
Box Prediction Branch 실행 후, NMS(Non-Maximum Suppression, 비최대 억제) 수행하고, 가장 높은 신뢰도를 가진 100개 박스만 선택하여 마스크 예측을 진행함.

각 RoI는 K(K: 클래스 개수)개의 마스크를 예측할 수 있는데, 최종적으로 선택된 클래스(k)에 해당하는 마스크 하나만 사용함.
마스크는 RoI 크기로 리사이징 후 0.5를 기준으로 이진화를 수행했음.
Mask R-CNN이 Faster R-CNN 대비 20% 추가 연산량이 발생하지만, 마스크 예측을 상위 100개 박스에만 적용하기 때문에, 속도와 정확도가 향상됨.
따라서, Mask R-CNN은 객체 탐지뿐 아니라 인스턴스 세분화에서도 정확도가 높고, 효율적인 학습과 추론을 할 수 있도록 함.

✅4. Experiments: Instance Segmentation

Mask R-CNN을 SOTA 모델들과 비교했고, COCO 데이터셋에서 다양한 ablation 실험 수행함.
평가 지표는 AP.
(50/75: IoU 값 경우에 따른 정확도, S/M/L: 객체 size에 대한 평가)

Main Results


기존 SOTA 모델들과 비교하였고, Mask R-CNN은 기존 SOTA 모델 대비 높은 성능을 기록함.
특히, ResNet-101-FPN 백본을 사용한 기본 모델만으로도 높은 성능을 구현함.


상단 사진은 Mask R-CNN의 출력 결과이고, 복잡한 상황에서도 우수한 결과를 도출한 것을 확인할 수 있음.


기존 FCIS+++ 모델의 경우, 객체가 겹쳐있는 경우, 구조적으로 문제가 발생했는데, 이는 Instance Segmentation의 근본적인 한계를 해결하지 못했다고 볼 수 있음.
다만, Mask R-CNN은 이렇게 객체가 겹쳐 있는 상황에서도 안정적인 성능을 보임.

Ablation Experiments


다양한 ablation 실험을 수행했음.
(a)에서는 Mask R-CNN의 다양한 backbone network 비교를 진행했고, 대체적으로 깊은 network를 사용할수록 성능이 향상되는 것을 보임(물론 무조건적인 것은 X).

(b)에서는 FCN에서 사용되는 per-pixel softmax와 multinomial loss과 비교함.
softmax와 multinomial loss를 사용하면, mask AP가 5.5 포인트 줄어드는 결과를 확인할 수 있음.
즉, 객체 전체 분류를 먼저 하고, 독립적인 binary mask를 예측하는 방식이 더 효과적임을 알 수 있음.

그리고 Mask R-CNN은 기본적으로 class-specific mask를 예측하는데(각 클래스마다 m x m 마스크 따로 예측), class-agnostic mask 방식 또한 거의 비슷한 성능을 보임(하나의 m x m 마스크만 예측하고, 클래스 상관 없이 적용하는 방식).
즉, Mask R-CNN이 classification과 segmentation 분리를 잘하는 구조를 갖고 있음을 확인할 수 있다는 것.

(c)에서는 RoIAlign이 RoIPool보다 높은 성능을 이뤄냄을 확인함. 그리고 RoIWarp이랑도 비교해 보았지만, 여전히 RoI를 양자화하는 특성을 지녔기에, RoIAlign보다 성능이 낮은 것을 보여줌.

(d)에서는 ResNet-50-C5에서 RoIAlign이 어떤 효과를 갖는지 분석함. RoIAlign이 큰 stride feature를 활용하는 문제를 해결하였고, FPN과 결합할 때도 높은 성능을 기록함.

그리고 (e)에서는 FCN과 다층 퍼셉트론(MLP)을 비교했고, FCN을 사용했을 때 MLP보다 2.1 포인트 높은 mask AP를 도출함을 확인할 수 있었음.

Bounding Box Detection Results

Mask R-CNN을 기존 SOTA COCO 바운딩 박스 객체 탐지 모델과 비교함.
추론 단계에서 마스크 출력 사용은 하지 않고, 분류/바운딩 박스만 평가함.
결과적으로, 기존 SOTA 모델보다 높은 성능을 기록함.

추가적으로, mask branch 없이 Mask R-CNN을 학습한 모델을 실험했음.
RoIAlign을 적용한 Faster R-CNN이 기존 Faster R-CNN보다 성능 향상을 이뤄냄을 확인할 수 있었음. 물론, Mask R-CNN이 여전히 0.9 포인트 더 높은 box AP를 기록함.
이는 multi-task training 덕분에 더 높은 성능을 기록할 수 있었던 것으로 판단됨.

Timing

추론 속도를 분석했을 때, ResNet-101-FPN 모델은 한 이미지당 195ms가 소요됨.
C4 변형은 400ms로 더 느려, 실용적이지 않았음.
Mask R-CNN은 속도 최적화가 주요한 목적이 아니며, 이미지 크기/제안 개수(proposal number) 조정을 통해 속도와 정확도의 균형을 맞출 수 있음.

학습 속도를 분석했을 때, ResNet-50-FPN을 사용하여 학습할 경우 32시간 소요되었고, ResNet-101-FPN을 사용할 경우, 학습 시간이 44시간으로 증가했음. 다만, fast prototyping은 train 데이터셋만으로 하루 이내 완료 가능함.

✅5. Mask R-CNN for Human Pose Estimation

Mask R-CNN은 human pose estimation에서도 적용 가능함. 각 키포인트 위치를 하나의 one-hot로 모델링하여 예측함. k개의 키포인트 유형(왼쪽 어깨, 오른쪽 팔꿈치 등)에 대해 각각 하나의 마스크를 예측하도록 설계함.

Mask R-CNN의 키포인트 예측 성능(APkp)은 62.7였으며, 기존 우승 모델보다 높은 성능을 보임.
또한, 기존 모델과 달리 Mask R-CNN은 구조가 단순하고 빠름.
이를 통해 Mask R-CNN의 유연성을 입증할 수 있었고, 효과적인 통합 framework임을 알 수 있음.

🔚6. Conclusion

Mask R-CNN은 object detection, instance segmentation, keypoint detection을 통합적으로 수행하는 모델임.
RoIAlign과 independent mask prediction 방식이 성능 향상을 이뤄내는 핵심적인 부분이라고 볼 수 있음.

profile
🏫 Kookmin University, Major in Electrical Engineering (First Major), AI Big Data & Management (Double Major), Smart Car ICT (Interdisciplinary Major)

0개의 댓글