이번에는 Selective Search 시간이 너무 오래 걸리는 Fast RCNN을 NN으로 바꿔서 속도를 줄여보자는 아이디어에서 나온 Faster R-CNN에 대해 리뷰하여 볼것이다.
2025.07.17 - [분류 전체보기] - [Object Detection] SPPNet과 Fast R-CNN
[Object Detection] SPPNet과 Fast R-CNN
오늘은 Two-Stage Object Detection 모델중 저번 R-CNN에 이어서 SPPNet과 Fast RCNN에 대해 알아보려고 한다.2025.07.10 - [Computer Vision1/Paper reviews] - [Object Detection] Two-Stage Object Detection – R-CNN (Rich feature hierarchies
c0mputermaster.tistory.com
https://arxiv.org/abs/1506.01497
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 time of these detection networks, exposing region proposal computation as a bottle
arxiv.org
Faster R-CNN

RCNN, Fast R-CNN (recap)
- R-CNN
- 이미지를 입력받아 Selective Search로 Region Proposal(후보 영역)을 먼저 찾음 (~2000개).
- 각 후보 영역을 CNN에 넣어 특징 추출 → SVM으로 분류, 박스 회귀 수행.
- 단점: 느림 (한 장 50초 이상). 후보 영역별로 CNN을 돌려야 했기 때문.
- Fast R-CNN
- 이미지 전체를 CNN에 한 번 통과 → Feature Map 추출.
- Selective Search로 얻은 후보 영역을 Feature Map에 투영하여 ROI Pooling 수행.
- 이후 Fully Connected Layer → Classification + Bounding Box Regression.
- 장점: End-to-End 학습, 속도 개선.
- 단점: 여전히 Selective Search가 느림.
Faster R-CNN의 아이디어
- Selective Search 대신 Region Proposal Network (RPN)을 사용.
- 즉, 후보 영역을 뽑는 과정도 신경망으로 학습
- Faster R-CNN = Fast R-CNN + RPN => 같은 백본을 공유하고 Selective Search 빼고는 다 똑같음
Region Proposal Network (RPN)?

- 예: 640×480 이미지 입력 → CNN(VGG) → 20×16 Feature Map (512채널).
- Feature Map의 각 위치를 Anchor라고 부름 (20×16 = 320개 Anchor).

각 Anchor마다 다양한 크기/비율의 Anchor Box(기본 박스)를 미리 정의.
- 예: 9개(3 scales × 3 aspect ratios).
- 따라서 Anchor Box 총 개수 = 20×16×9 = 2880개.
RPN의 예측

각 Anchor Box에 대해 두 가지를 예측
- Objectness Score (객체인지 배경인지 → Binary Classification).
- 1×1 Conv → 채널 수 18 (= 9 anchors × 2 클래스).
- Bounding Box Regression (좌표 보정).
- 1×1 Conv → 채널 수 36 (= 9 anchors × 4 좌표(x, y, w, h)).

최종적으로 RPN은 각 Anchor Box에 대해 "이 위치에 객체가 있을 확률" + "Anchor Box가 얼마나 이동/확대/축소되어야 하는가" 를 동시에 예측한다.
- 모든 Anchor Box에 대해 Objectness(가장 확률이 높은 박스) + 좌표 보정(얼마나 이동해야하나) → Region Proposal 생성.
- Confidence 높은 일부만 선택 (나머지 제거).
- NMS를 통해 겹치는 후보 제거 → 최종 Proposal만 Fast R-CNN으로 전달.
NMS

한 객체에 대해 여러 박스가 중첩될 수 있다 그렇게 때문에 겹치는 박스를 제거하는 과정이 필요
- Confidence Score 가장 높은 박스 선택.
- 나머지 박스와 IOU 계산.
- IOU > 0.5 같은 임계치 이상인 박스는 제거.
- 남은 박스 중 다음 높은 Score 선택 → 반복.
학습 방식

RPN도 Loss가 필요
총 네 가지 Loss로 학습:
- RPN Classification Loss (객체/배경 → Binary Cross Entropy).
- RPN Bounding Box Regression Loss (Smooth L1 Loss).
- Fast R-CNN Classification Loss (Cross Entropy).
- Fast R-CNN Bounding Box Regression Loss (Smooth L1 Loss).
참고) 초기에는 학습이 조금 복잡했다 (원 논문): Alternative Training (4-step)

- Pretrained CNN으로 RPN 학습.
- 얻은 Proposal로 Fast R-CNN 학습.
- 다시 고정된 CNN Feature로 RPN Fine-tuning.
- 최종적으로 Fast R-CNN Fine-tuning.
- 여러번 학습과 frozen을 사용
RCNN → Fast RCNN → Faster RCNN의 발전

'Computer Vision > Paper reviews' 카테고리의 다른 글
| [ILSVRC 논문 정리해 보기] DenseNet, SENet과 대회 그 이후 (0) | 2025.09.05 |
|---|---|
| [ILSVRC 논문 정리해 보기] VGGNet, GoogleNet, ResNet (0) | 2025.09.05 |
| [Object Detection] SPPNet과 Fast R-CNN (0) | 2025.07.17 |
| [Object Detection] Two-Stage Object Detection – R-CNN (0) | 2025.07.10 |
| [ILSVRC 논문 정리해 보기] AlexNet (ImageNet Classification with Deep Convolutional Neural Networks) (0) | 2025.05.07 |