아래 글에서 이 블로그에서 리뷰한 논문들의 흐름과 분야별 분류를 한 눈에 볼 수 있다.
읽은 논문들 정리
[목차]지속적으로 업데이트 중, 번호는 모델발전 순서가 아닌 읽은 순서에 따라 정렬.1. Computer Vision 분야 논문Classification 모델들의 발전Detection 모델들의 발전3D 처리2. Natural Language Processing 분야
april2901.tistory.com
이번 논문은 Mask R-CNN이다.
이 논문을 읽기 전 FCN논문을 먼저 읽는 것을 추천한다.
Fully Convolutional Networks for Semantic Segmentation
[CV 논문] Fully Convolutional Networks for Semantic Segmentation
아래 글에서 이 블로그에서 리뷰한 논문들의 흐름과 분야별 분류를 한 눈에 볼 수 있다.읽은 논문들 정리 읽은 논문들 정리[목차]지속적으로 업데이트 중, 번호는 모델발전 순서가 아닌 읽은 순
april2901.tistory.com
RCNN들의 흐름
먼저 흐름을 다시 정리하자.
1. R-CNN
핵심: 기존의 머신러닝 방식에 CNN을 처음으로 결합
작동 방식: 외부 알고리즘인 Selective Search로 약 2,000개의 후보 영역을 뽑아낸 뒤, 각 영역을 CNN에 일일이 집어넣는다.
문제점: 후보 영역 2,000개를 각각 CNN에 돌려야 해서 연산량이 엄청나고 속도가 매우 느리다.
2. Fast R-CNN
핵심: 이미지 전체를 CNN에 딱 한 번만 통과시켜 전체 특징 맵을 얻는다.
도입 기술: RoI Pooling을 통해 서로 다른 크기의 후보 영역을 고정된 크기의 벡터로 변환하여 연산이 빠르게 되게 했다.
문제점: 여전히 후보 영역 추출은 외부 알고리즘(Selective Search)에 의존하므로, 이 부분이 전체 속도의 병목이다.
3. Faster R-CNN
핵심: 후보 영역 추출 알고리즘을 신경망 내부의 RPN(Region Proposal Network)으로 대체
도입 기술: Anchor Box 개념을 사용하여 객체가 있을 법한 위치를 학습 가능하게 만들었다.
이번글에서 볼 mask R-CNN은 박스의 정확도도 높아졌으며, instance segmentation기능이 추가된 모델이다.
FCN에서는 매 픽셀마다 어떤 클래스인지를 분류했지만, mask R-CNN은 detection을 통해 물체가 사람이라는 것을 알았다면 각 픽셀에 대해 사람인지 아닌지만 판별하면 된다.
Mask RCNN은 기존의 Faster RCNN을 확장했다.
Faster RCNN에서는 병렬로 bounding box와 클래스 예측이 진행되었었는데, 여기에 하나의 분기를 더 배치해 물체가 차지하는 영역을 픽셀단위로 찾도록 했다.
기존의 RoIPool과 다르게 RoIAlign이라는 기법을 사용한다는 차이점이 있다.
Mask R-CNN
손실함수
손실함수는 mask rcnn의 세 가지 분기에서 나오는 손실을 합산한 방식을 사용한다.
각각 클래스 분류, 박스 위치 예측, 물체 모습 예측이다.
$$L = L_{cls} + L_{box} + L_{mask}$$
앞의 두 항은 faster R-CNN과 동일하므로 넘어가고, $L_{mask}$만 살펴보자.
마스크 분기는 K개의 클래스에 대해 m x m크기의 이진 마스크를 출력한다.
이진 마스크이므로 해당 픽셀이 해당 클래스인지 아닌지 0 / 1로 나타내는 것이다.
각 픽셀에 Sigmoid를 적용하고 Average Binary Cross-Entropy를 계산한다.
RoIAlign
Faster R-CNN의 기존 RoIPool은 위치를 정수 단위로 반올림했다.
따라서 정확도가 낮아졌다.
RoIAlign은 이런 모든 반올림 과정을 제거하고 Bilinear Interpolation를 사용해 정확한 값을 계산한다.
이 방식은 소수점 위치를 보존한다.
예를 들면 기존에는 RoI의 네 귀통이 좌표를 모두 정수로 반올림 했는데,
이제는 Bilinear Interpolation을 사용해 귀퉁이의 좌표로 쓰고 싶은 점의 주변 4개의 점으로부터 거리를 고려해 좌표가 소수점으로 계산된다.
네트워크 구조
모델은 크게 두 부분으로 구분될 수 있다.
각각 backbone과 head이다.
backbone은 특징 추출, head는 클래스분류 / bounding box 회귀 / 마스크 에측을 수행한다.
이 떄 논문에서는 backbone으로 ResNet과 FPN의 두 가지를 사용해봤다.
head는 어떤 backbone을 사용했는지에 따라 달라진다.
ResNet을 사용했을 경우 res5를 통과시킨 후 두 갈래로 나눈다.
mask 분기에서는 7x7을 14x14로 upsampling해서 출력한다.
FPN을 사용했을 경우 이미 백본에 res5가 포함되어 있어 head가 더 가벼워진다.

결과
아래 사진은 이 모델의 결과를 나타낸 것이다.

'AI > 컴퓨터비전(CV)' 카테고리의 다른 글
| [CV 논문] Structure-from-Motion Revisited (5) | 2026.03.10 |
|---|---|
| [CV 논문] Auto-Encoding Variational Bayes (2) | 2026.03.05 |
| [CV 논문] Fully Convolutional Networks for Semantic Segmentation (0) | 2026.02.26 |
| [CV 논문] 3D Gaussian Splatting for Real-Time Radiance Field Rendering (0) | 2026.02.24 |
| [CV 논문] End-to-End Object Detection with Transformers (0) | 2026.02.19 |