Mask Scoring R-CNN 예측 품질 자가 인지를 통한 Instance Segmentation

Mask Scoring R-CNN 예측 품질 자가 인지를 통한 Instance Segmentation

1. Instance Segmentation의 신뢰도 문제

1.1 Instance Segmentation의 발전과 Mask R-CNN의 위상

컴퓨터 비전 분야에서 딥러닝의 발전은 이미지 전체에 대한 단일 레이블을 예측하는 이미지 수준(image-level) 예측에서 시작하여, 객체의 위치를 경계 상자(bounding box)로 찾는 박스 수준(box-level), 이미지 내 모든 픽셀의 의미를 분류하는 픽셀 수준(pixel-level) 예측을 거쳐, 개별 객체 인스턴스를 픽셀 단위로 정밀하게 분할하는 인스턴스 수준(instance-level) 예측으로 심화되어 왔다.1 이 중 Instance Segmentation은 객체 탐지와 Semantic Segmentation을 결합한 가장 도전적인 과업 중 하나로, 각 객체의 정확한 위치와 형태를 동시에 파악해야 한다.

이러한 배경 속에서 등장한 Mask R-CNN은 Instance Segmentation 분야의 핵심적인 기반 모델로 자리매김했다. Mask R-CNN은 2-stage 프레임워크인 Faster R-CNN을 기반으로, 기존의 바운딩 박스 인식 브랜치와 병렬적으로 각 객체에 대한 마스크를 예측하는 브랜치를 추가한 구조를 가진다.2 이 구조는 개념적으로 간단하면서도 유연성과 일반성이 뛰어나, COCO(Common Objects in Context)와 같은 주요 벤치마크 데이터셋에서 최고 수준(State-of-the-Art)의 성능을 달성하며 후속 연구들의 강력한 베이스라인이 되었다.3

1.2 핵심 문제 제기: 분류 신뢰도와 마스크 품질의 불일치

Mask R-CNN을 포함한 대부분의 Instance Segmentation 프레임워크는 중대한 내재적 한계를 가지고 있다. 바로 객체 분류 분기(classification branch)에서 출력된 신뢰도 점수(confidence score)를 최종 예측 마스크의 품질을 나타내는 대표 점수로 간주하여 사용한다는 점이다.4 그러나 실제 마스크의 품질, 즉 예측된 마스크와 실제 정답(ground truth) 마스크 간의 IoU(Intersection-over-Union)로 정량화되는 값은 분류 점수와 상관관계가 매우 낮다는 근본적인 문제가 존재한다.1

이러한 불일치는 빈번하게 발생한다. 예를 들어, 모델이 특정 영역에 객체가 존재한다고 높은 확신(높은 분류 점수)을 가지고 예측하더라도, 생성된 마스크는 객체의 일부만 포함하거나 형태가 심하게 왜곡되는 등 품질이 매우 낮을 수 있다.4 반대로, 분류 점수는 다소 낮지만 마스크는 객체의 경계를 매우 정밀하게 묘사하는 경우도 존재한다. 이처럼 분류 정확도와 분할 정밀도 사이의 괴리는 모델의 예측 신뢰도를 왜곡시키는 주요 원인이 된다.

1.3 문제의 영향과 연구의 필요성

분류 신뢰도와 마스크 품질의 불일치는 모델의 최종 성능 평가에 직접적인 악영향을 미친다. COCO 데이터셋의 주요 평가 지표인 AP(Average Precision)는 예측 결과물의 순위(ranking)에 매우 민감하다. 품질이 낮은 마스크가 단지 분류 점수가 높다는 이유만으로 상위 순위로 잘못 평가되면, 이는 오탐(False Positive)으로 간주될 가능성이 높아져 전체 AP 점수를 하락시키는 결과를 초래한다.1

이 문제의 근본 원인은 Mask R-CNN의 아키텍처적 설계에서 찾을 수 있다. 분류 헤드와 마스크 헤드는 서로 다른 목적 함수로 독립적으로 학습된다. 분류 헤드는 RoI(Region of Interest) 피처로부터 “이 영역이 어떤 클래스에 속하는가?“를 학습하는 반면, 마스크 헤드는 픽셀 단위의 이진 교차 엔트로피 손실(binary cross-entropy loss)을 통해 “어떤 픽셀이 해당 객체에 속하는가?“를 학습한다. 두 헤드는 각자의 목표에 최적화될 뿐, 출력 결과의 신뢰도와 품질 간의 일관성을 강제하는 명시적인 메커니즘이 부재한다.

따라서 이 연구는 “딥 네트워크가 자신의 예측 품질을 스스로 인지하도록 만드는(letting a deep network be aware of the quality of its own predictions)” 중요한 문제를 해결하는 것을 목표로 한다.4 이는 단순히 예측을 수행하는 것을 넘어, 예측 결과의 품질을 스스로 평가하고 보정하는 메타-러닝(meta-learning) 또는 자기 평가(self-evaluation) 모듈의 필요성을 제기한다. 이러한 접근은 분류 점수에 맹목적으로 의존하는 기존 방식에서 벗어나, 생성된 마스크의 품질 자체를 직접 학습하고 평가하는 새로운 패러다임을 제시하며, 이는 Mask Scoring R-CNN의 핵심적인 연구 동기가 된다.

2. Mask Scoring R-CNN의 제안

2.1 문제의 재정의: 마스크 점수 분해

이상적인 마스크 점수 s_{mask}는 두 가지 핵심 조건을 동시에 만족해야 한다. 첫째, 예측된 클래스가 실제 정답 클래스와 일치할 때만 양수 값을 가져야 하며(분류 정확성), 둘째, 그 값의 크기는 예측 마스크와 실제 마스크 간의 IoU와 정확히 일치해야 한다(품질 정밀성).8 이 두 가지 상이한 목표, 즉 분류와 회귀를 단일 네트워크 출력으로 동시에 학습하는 것은 매우 어려운 과업이다.

Mask Scoring R-CNN은 이 문제를 해결하기 위해, 마스크 점수 학습 과업을 두 개의 하위 문제로 영리하게 분해하는 전략을 채택한다. 최종 마스크 점수를 분류 점수 s_{cls}와 마스크 IoU 점수 s_{iou}의 곱으로 모델링하는 것이다.8

s_{mask} = s_{cls} \cdot s_{iou}
이 접근법의 핵심은 기존의 잘 작동하는 구성 요소를 최대한 재사용하고, 새로운 문제에만 집중하는 것이다. s_{cls}는 이미 Mask R-CNN의 분류 헤드가 훌륭하게 예측하고 있으므로, 해당 값을 그대로 활용한다. 따라서 연구의 초점은 나머지 한 축인 s_{iou}, 즉 예측된 마스크의 품질을 정확하게 회귀하는 새로운 모듈을 설계하는 것으로 좁혀진다.2 이러한 분해 전략은 전체 분류 체계를 재학습할 필요 없이, 목표로 하는 약점(품질 예측 부재)을 직접적으로 보완하는 효율적이고 실용적인 모델 개선 방식을 보여준다.

2.2 MaskIoU Head의 도입

이러한 목표를 달성하기 위해, 본 연구는 ’MaskIoU head’라는 새로운 네트워크 블록을 제안한다. 이 모듈의 유일한 목적은 예측된 마스크와 실제 마스크 간의 IoU, 즉 MaskIoU를 직접 회귀(regress)하는 것이다.4 MaskIoU head는 기존 Mask R-CNN 프레임워크 내에 네 번째 브랜치로 자연스럽게 통합되어, 기존의 분류, 박스 회귀, 마스크 생성 헤드와 함께 작동한다.2

MaskIoU head의 예측값인 s_{iou}는 최종 추론 단계에서 분류 점수 s_{cls}를 보정(calibrate)하는 핵심적인 역할을 수행한다. s_{iou} 값은 0과 1 사이의 값을 가지므로, 마스크 품질이 낮을수록(낮은 s_{iou}) 최종 점수 s_{mask}는 큰 폭으로 감소하게 된다. 이를 통해 분류 점수는 높지만 마스크 품질이 조악한 예측 결과에 효과적으로 페널티를 부여하고, 결과적으로 마스크 품질과 최종 점수 간의 상관관계를 극적으로 높일 수 있다.4

3. 아키텍처 심층 분석

3.1 전체 프레임워크

Mask Scoring R-CNN의 전체 구조는 Mask R-CNN을 기반으로 한다. Backbone Network(예: ResNet-FPN)를 통해 입력 이미지로부터 계층적인 피처맵을 추출하고, RPN(Region Proposal Network)이 객체가 존재할 가능성이 있는 후보 영역, 즉 RoI(Regions of Interest)를 제안하는 1단계는 기존과 동일하다.3

2단계에서는 RoIAlign을 통해 각 RoI로부터 고정된 크기의 피처 벡터를 추출한다. Mask R-CNN에서는 이 피처 벡터가 (1) 분류 헤드, (2) 바운딩 박스 회귀 헤드, (3) 마스크 헤드라는 세 개의 병렬적인 브랜치로 전달된다. Mask Scoring R-CNN은 여기에 네 번째 브랜치인 (4) MaskIoU head를 추가하여 구조를 확장한다.2 이 추가된 브랜치는 기존 브랜치들의 출력 결과를 입력으로 받아 품질 점수를 예측함으로써, 전체 프레임워크의 예측 신뢰도를 한 단계 끌어올리는 역할을 한다.

3.2 MaskIoU Head의 상세 구조

MaskIoU head는 예측 품질을 평가하기 위해 의미론적 정보와 공간적 정보를 모두 활용하도록 정교하게 설계되었다.

  • 입력 (Input): MaskIoU head는 두 가지 종류의 정보를 입력으로 받는다. 첫째는 RoIAlign 레이어에서 나온 인스턴스 피처(instance feature)이며, 둘째는 마스크 헤드에서 예측된 해당 인스턴스의 마스크(predicted mask)이다.4 이 이중 입력 구조는 매우 중요한데, 인스턴스 피처는 “네트워크가 해당 객체를 무엇으로 인식하고 있는가?“에 대한 의미론적 맥락을 제공하고, 예측 마스크는 “네트워크가 해당 객체의 형태를 어떻게 그려냈는가?“에 대한 공간적 결과를 제공한다. MaskIoU head는 이 두 정보를 비교하여 예측의 일관성과 품질을 평가하는, 일종의 검증(verification) 작업을 수행한다.
  • 입력 처리 (Input Processing): 일반적으로 예측된 마스크(예: 28x28)와 RoI 피처(예: 14x14)는 공간적 해상도가 다르다. 따라서 두 정보를 결합하기 전에, 예측 마스크에 커널 크기 2x2와 스트라이드(stride) 2를 사용하는 맥스 풀링(max pooling) 레이어를 적용하여 RoI 피처와 동일한 공간 크기로 맞춘다.8 이후 두 텐서를 채널(channel) 축을 따라 연결(concatenate)하여 MaskIoU head의 최종 입력으로 사용한다.2 수행된 소멸 연구(ablation study)에 따르면, 이 연결 방식이 다른 결합 방식(예: 곱셈)에 비해 가장 우수한 성능을 보였다.1
  • 네트워크 구성 (Network Configuration): 연결된 피처는 일련의 컨볼루션 레이어와 완전 연결 레이어를 통과하며 IoU 값을 회귀하도록 학습된다.
  • 컨볼루션 레이어: 4개의 3x3 컨볼루션 레이어로 구성되며, 각 레이어의 필터(채널) 수는 256개이다.8
  • 완전 연결(FC) 레이어: 이후 3개의 완전 연결 레이어가 이어진다. 처음 두 FC 레이어의 출력 뉴런 수는 1024이며, 마지막 FC 레이어는 전체 클래스 수(C) 만큼의 뉴런을 가진다.8
  • 출력 (Output): 마지막 FC 레이어는 각 클래스에 대한 MaskIoU 예측값을 출력한다. 학습 시에는 해당 인스턴스의 실제 정답 클래스(ground truth class)에 해당하는 IoU 값만을 사용하여 손실을 계산하고, 추론 시에는 예측된 클래스(predicted class)에 해당하는 IoU 값을 최종 점수 보정에 사용한다.2

4. 학습 및 추론 과정

4.1 학습 (Training)

  • 학습 대상 생성 (Target Generation): MaskIoU head를 지도 학습(supervised learning) 방식으로 학습시키기 위해서는 회귀 목표값, 즉 실제 MaskIoU(MaskIoU_{gt})가 필요하다. 이를 위해, 먼저 RPN이 제안한 RoI 중 실제 정답 박스와의 IoU가 0.5 이상인 샘플들을 훈련 대상으로 선정한다. 각 훈련 샘플에 대해, 마스크 헤드가 예측한 마스크를 0.5의 임계값으로 이진화(binarize)한다. 마지막으로, 이 이진화된 마스크와 해당하는 실제 정답 마스크 간의 픽셀 단위 IoU를 계산하여 이를 MaskIoU_{gt}로 사용한다.8

  • 손실 함수 (Loss Function): MaskIoU head는 회귀 문제이므로, 예측된 MaskIoU_{pred}와 실제 MaskIoU_{gt} 간의 L2 손실(Mean Squared Error)을 최소화하도록 학습된다. 손실 가중치는 1로 설정된다.4

L_{MaskIoU} = \Vert \text{MaskIoU}_{pred} - \text{MaskIoU}_{gt} \Vert_2^2
전체 손실 (Total Loss):L_{MaskIoU}는 Mask R-CNN의 기존 손실 함수에 추가되어 전체 모델을 종단간(end-to-end)으로 학습시키는 데 사용된다. 따라서 전체 손실 함수는 다음과 같이 구성된다.9
L_{total} = L_{cls} + L_{box} + L_{mask} + L_{MaskIoU}

4.2 추론 (Inference)

추론 과정에서는 학습된 MaskIoU head를 이용해 최종 마스크 점수를 보정한다.

  1. Mask R-CNN의 R-CNN stage에서 N개의 바운딩 박스와 각 박스에 대한 분류 점수(s_{cls}) 및 클래스별 마스크를 출력한다.

  2. 상위 k개(예: 100개)의 박스를 NMS(Non-Maximum Suppression) 또는 SoftNMS를 통해 선택한다.8

  3. 이 k개의 박스에 해당하는 RoI 피처와 예측된 마스크를 MaskIoU head에 입력한다.

  4. MaskIoU head는 각 예측에 대한 품질 점수인 s_{iou} 값을 출력한다.

  5. 최종 마스크 점수 s_{mask}는 다음 수식에 따라 분류 점수와 품질 점수의 곱으로 계산된다.2

s_{mask} = s_{cls} \cdot s_{iou}

  1. 이 새롭게 보정된 s_{mask}를 사용하여 최종 예측 결과의 순위를 다시 매기고, 후처리를 수행한다.

이 과정은 단순한 점수 조정 이상의 의미를 갖는다. 이는 예측 결과의 순위를 근본적으로 재조정하는 메커니즘으로 작동한다. 예를 들어, Mask R-CNN이 예측한 두 객체가 있다고 가정하자. 객체 A는 s_{cls}=0.9, s_{iou}=0.6이고, 객체 B는 s_{cls}=0.8, s_{iou}=0.8이다. 기존 방식에서는 객체 A가 더 높은 순위를 차지하지만, Mask Scoring R-CNN에서는 객체 A의 최종 점수는 0.54, 객체 B는 0.64가 되어 마스크 품질이 더 우수한 객체 B가 더 높은 순위를 차지하게 된다. 이처럼 순위가 재조정됨으로써, AP 평가 시 더 높은 점수를 획득할 가능성이 커진다. 이는 AP 지표가 예측 순위에 민감하다는 점을 직접적으로 공략하는 매우 효과적인 전략이다.4

5. 실험 결과 및 성능 평가

5.1 정량적 성능 분석 (COCO 데이터셋)

Mask Scoring R-CNN의 효과를 검증하기 위해 COCO 2017 데이터셋에 대한 광범위한 실험이 수행되었다. 아래 표는 다양한 백본 네트워크를 사용했을 때 Mask R-CNN 대비 MS R-CNN의 성능을 비교한 결과이다.

MethodBackboneAPAP@.5AP@.75AP_SAP_MAP_L
Mask R-CNNResNet-101-FPN37.059.239.517.139.352.9
MS R-CNNResNet-101-FPN38.358.841.517.840.454.4
Mask R-CNNResNeXt-101-FPN37.160.039.416.939.953.5
MS R-CNNResNeXt-101-FPN38.559.641.717.740.954.7
Mask R-CNNResNet-101 DCN+FPN38.461.241.218.040.555.2
MS R-CNNResNet-101 DCN+FPN39.660.743.118.841.556.2

표의 내용은 4을 기반으로 재구성됨.

결과 해석:

  • 일관된 성능 향상: MS R-CNN은 모든 백본 네트워크(ResNet, ResNeXt, DCN)와 프레임워크(FPN, DCN+FPN)에 걸쳐 마스크 AP를 일관되게 약 1.3 ~ 1.5% 포인트 향상시켰다.1

  • 고품질 분할 능력 입증: 성능 향상은 특히 더 정밀한 마스크를 요구하는 AP@0.75 지표에서 두드러졌다. 모든 경우에서 약 2.0 포인트 이상의 큰 폭의 성능 향상을 보였는데, 이는 MS R-CNN이 단순히 ‘괜찮은’ 마스크와 ‘나쁜’ 마스크를 구분하는 것을 넘어, ‘좋은’ 마스크와 ‘매우 우수한’ 마스크를 효과적으로 식별하고 이에 높은 점수를 부여하는 능력이 탁월함을 시사한다.4 바로 이 지점에서 분류 점수

s_{cls}가 대리 지표로서의 역할을 제대로 수행하지 못한다.

  • 긍정적 부가 효과: 흥미롭게도, 마스크 품질 점수 보정은 주 목표가 아니었던 바운딩 박스 탐지 성능(box AP)까지 미세하게 향상시키는 경향을 보였다.8 이는 더 신뢰할 수 있는 인스턴스 수준 점수가 NMS 과정에서 더 나은 의사결정을 유도하고, 이것이 연관된 바운딩 박스 결과에도 긍정적인 파급 효과를 미친 것으로 분석된다.

5.2 정성적 분석 및 Ablation Study

정량적 수치 외에도, 정성적 분석을 통해 MS R-CNN의 작동 방식을 직관적으로 확인할 수 있다. Mask R-CNN이 높은 분류 점수를 부여했지만 실제로는 품질이 낮은 마스크를 예측한 사례와, MS R-CNN이 낮은 s_{iou}를 통해 이 점수를 성공적으로 낮추어 보정한 결과를 시각적으로 비교함으로써 그 효과를 명확히 보여준다.7 또한, 보정 전 점수(s_{cls})와 MaskIoU 간의 낮은 상관관계, 그리고 보정 후 점수(s_{mask})와 MaskIoU 간의 뚜렷하게 높아진 상관관계를 보여주는 산점도(scatter plot)는 제안된 방법론의 효과를 통계적으로 증명한다.8

6. 종합 평가 및 결론

6.1 기술적 기여 요약

Mask Scoring R-CNN은 Instance Segmentation 분야에 다음과 같은 중요한 기술적 기여를 했다.

  • 새로운 문제 정의 및 해결: Instance Segmentation 분야에서 ’예측된 마스크의 품질을 점수화’하는 문제를 최초로 공식화하고, 이를 해결하기 위한 프레임워크를 제시했다는 점에서 선구적인 기여를 했다.1 이는 모델이 자신의 예측에 대해 비판적인 평가를 내리도록 하는, 한 단계 더 높은 수준의 지능을 구현하려는 시도이다.
  • 간단하고 효과적인 솔루션: 기존 Mask R-CNN 아키텍처에 경량의 MaskIoU head를 추가하는 최소한의 수정만으로 일관되고 의미 있는 성능 향상을 달성하여, 학술적 가치와 실용성을 모두 입증했다. MaskIoU head로 인한 추가적인 계산 오버헤드는 거의 무시할 수 있는 수준으로, 추론 속도에 거의 영향을 미치지 않는다.4

6.2 영향 및 확장성

MS R-CNN의 성공은 ’예측 품질 회귀’라는 아이디어의 유효성을 검증했으며, 이는 후속 연구에 상당한 영향을 미쳤다. 대표적으로 바운딩 박스의 품질(BoxIoU)을 예측하는 Mask-Box Scoring R-CNN과 같은 연구는 MS R-CNN이 제시한 패러다임을 직접적으로 확장한 사례이다.2

또한, MS R-CNN의 강건함과 일반성 덕분에 COCO 데이터셋과 같은 일반적인 객체를 넘어, 개별 돼지를 추적하고 관리하는 정밀 축산(Precision Livestock Farming) 9이나 녹내장 진단을 위한 의료 영상 분석 6과 같은 특수하고 도전적인 실제 응용 분야에서도 성공적으로 활용되며 그 가치를 입증하고 있다.

6.3 한계 및 미래 연구 방향

모든 혁신적인 연구와 마찬가지로, MS R-CNN 역시 한계와 미래 연구의 가능성을 남긴다. 실험 결과에 따르면, 실제 MaskIoU_{gt}를 점수로 사용하는 이상적인 경우(Oracle)와 MS R-CNN의 성능 사이에는 여전히 2-3% AP의 격차가 존재한다.4 이는 MaskIoU head의 회귀 정확도를 더욱 향상시킬 여지가 있음을 의미하며, 더 정교한 head 아키텍처나 손실 함수에 대한 연구가 필요함을 시사한다.

궁극적으로 Mask Scoring R-CNN의 가장 심오한 영향은 ’부가적인 품질 평가 헤드(add-on quality head)’를 딥러닝 모델 개선을 위한 효과적인 디자인 패턴으로 확립했다는 점에 있다. 이는 단일 모델을 무작정 더 복잡하게 만드는 대신, 품질 평가와 같은 메타-과업을 수행하는 작고 전문화된 모듈을 추가하여 모델을 개선할 수 있음을 보여주었다. 이러한 모듈식의 자기 성찰적 접근 방식은 복잡한 다중 출력 모델의 신뢰도를 높이는 확장 가능한 방법을 제공하며, 더 신뢰성 있고 자기 인식이 가능한 AI 시스템을 구축하려는 분야의 큰 목표에 기여하는 중요한 개념적 진보라 할 수 있다.

7. 참고 자료

  1. [1903.00241] Mask Scoring R-CNN - ar5iv, https://ar5iv.labs.arxiv.org/html/1903.00241
  2. Active Mask-Box Scoring R-CNN for Sonar Image Instance Segmentation - MDPI, https://www.mdpi.com/2079-9292/11/13/2048
  3. arXiv:1703.06870v3 [cs.CV] 24 Jan 2018, http://arxiv.org/pdf/1703.06870
  4. Mask Scoring R-CNN - CVF Open Access, https://openaccess.thecvf.com/content_CVPR_2019/papers/Huang_Mask_Scoring_R-CNN_CVPR_2019_paper.pdf
  5. Mask Scoring R-CNN | Request PDF - ResearchGate, https://www.researchgate.net/publication/331487076_Mask_Scoring_R-CNN
  6. Performance Evaluation of Different Object Detection Models for the Segmentation of Optical Cups and Discs, https://pmc.ncbi.nlm.nih.gov/articles/PMC9777130/
  7. zjhuang22/maskscoring_rcnn: Codes for paper “Mask Scoring R-CNN”. - GitHub, https://github.com/zjhuang22/maskscoring_rcnn
  8. Brief Review — Mask Scoring R-CNN | by Sik-Ho Tsang - Medium, https://sh-tsang.medium.com/brief-review-mask-scoring-r-cnn-ad7d618d1bb0
  9. Instance Segmentation Based on Mask Scoring R-CNN for Group-housed Pigs | Request PDF - ResearchGate, https://www.researchgate.net/publication/341762015_Instance_Segmentation_Based_on_Mask_Scoring_R-CNN_for_Group-housed_Pigs