[Object Detection] Two-Stage Object Detection – R-CNN

2025. 7. 10. 20:16·Computer Vision1/Paper reviews

Two-Stage Object Detection 논문들을 하나씩 살펴볼건데 오늘은 R-CNN논문을 다루어 보려고 한다

논문 링크 : https://arxiv.org/pdf/1311.2524

 

Recap)  먼저 Two-Stage Object Detection이란?

2024.12.27 - [Computer Vision1/Computer Vision] - [Object Detection] 1-Stage vs. 2-Stage Object Detection 아키텍처 비교

 

[Object Detection] 1-Stage vs. 2-Stage Object Detection 아키텍처 비교

Object Detection detector 객체 탐지(Object Detection) 시스템에서 이미지나 비디오 내의 객체를 식별하고 위치를 추정하는 알고리즘 또는 모델을 의미합니다. 객체 탐지에서 detector는 특정 객체가 이미지

c0mputermaster.tistory.com

이전 포스팅을 참고하고 정리하자면 Two-Stage Object Detection는 이름 그대로 두 단계(Stage)로 객체를 검출하는 구조를 가진다.

  • Stage 1 (Region Proposal):
    객체가 있을 법한 후보 영역(region)을 영상에서 먼저 뽑아낸다.
    → "여기 무언가 있을 것 같아" 하는 후보 상자를 생성.
  • Stage 2 (Classification + Regression):
    각 후보 영역에 대해
    ① 어떤 객체인지 Classification (분류)
    ② 위치를 더 정확히 다듬는 Bounding Box Regression (좌표 보정)
    을 수행한다.

 

즉, 첫 번째 단계는 어디에 객체가 있을지를 대략 찾고, 두 번째 단계는 무엇인지, 정확한 위치는 어디인지를 정밀하게 맞추는 과정이다.

R-CNN ( Regions with CNN features )

Facebook AI 리서치 그룹에서 발표된 초창기 Two-Stage Detector이며, Object Detection에 처음으로 딥러닝(CNN)을 본격적으로 적용한 모델이다.

R-CNN의 파이프라인은 다음과 같다.

 

  1. Region Proposal (Selective Search 사용 → 약 2000개의 후보 영역 추출)
  2. Warping (후보 영역을 CNN 입력 크기(227×227)에 맞게 리사이즈)
  3. CNN (AlexNet) 통과 (4096차원의 Feature 벡터 추출)
  4. Classification (SVM) (객체 클래스 + 배경 여부 판별)
  5. Bounding Box Regression (좌표 보정, Δx, Δy, Δw, Δh)

초기 모델이라 그런지 방법론이 나름 직관적이라고 생각된다.

 

1. Region Proposal

우선 RCNN에서는 Selective Search 알고리즘을 사용한다.

이전에 리뷰한 포스팅이 있으니 참고!

2024.04.19 - [Computer Vision1/Paper reviews] - [논문 리뷰] Selective Search for Object Recognition (선택적 탐색)

 

[논문 리뷰] Selective Search for Object Recognition (선택적 탐색)

이 리뷰는 오직 학습과 참고 목적으로 작성되었으며, 해당 논문을 통해 얻은 통찰력과 지식을 공유하고자 하는 의도에서 작성된 것입니다. 본 리뷰를 통해 수익을 창출하는 것이 아니라, 제 학

c0mputermaster.tistory.com

 

Selective Search  알고리즘을 정리하자면

  • 픽셀 유사도 기반으로 클러스터링하여 Superpixel들을 만든다.
  • 유사한 Superpixel들을 반복적으로 병합.
  • 각 Superpixel 영역에 사각형(bounding box)을 씌움.
  • 최종적으로 약 2000개의 후보 영역(Region Proposal)을 생성.

이렇게 조금은 딥러닝이라고 하기는 힘든 영상 처리 기반의 알고리즘을 사용한다. 그리고 계산량 좀 크다는 문제가 있음

 

2. Warping 단계

 

먼저 이전 단계인 Region Proposal로 얻은 박스들은 크기가 제각각이다. 당시 CNN(AlexNet)은 입력 크기가 고정(227×227)되어 있었음 ( 뒤에 달려있는 FC Layer 때문에 ) 따라서 모든 후보 영역을 강제로 227×227로 리사이즈하는 것을 논문에서 Warping이라고 했다,

 

3. Feature Extraction

 

논문에서는 AlexNet을 Feature Extracter로 사용했고 Warping된 영역(2000개)를 각각 입력으로 넣어

각 영역마다 4096차원의 Feature Vector를 추출하였다.

  • 결과: 한 장의 이미지 → 2000 × 4096 차원의 Feature 집합 생성

 

4. Classification

 

SVM (Support Vector Machine)을 사용한다.

https://velog.io/@hyesoup/%EC%84%9C%ED%8F%AC%ED%8A%B8-%EB%B2%A1%ED%84%B0-%EB%A8%B8%EC%8B%A0Support-Vector-Macine-SVM

 

서포트 벡터 머신(Support Vector Macine, SVM)

서포트 벡터 머신

velog.io

 

왜 SVM을 썼을까?

=> 당시 Object Detection 데이터셋이 작아서 딥러닝 모델보다는 SVM을 썼다고함

입력으로 이전 단계에서 구한 2000 × 4096 차원의 Feature들을 넣어주면 SVM의 Output으로 클래스 개수 + 1개 배경 + confidence socore까지 받는다.

 

+ CNN에서 뽑은 feature를 따로 저장 후, SVM이라는 별도의 머신러닝 알고리즘으로 학습하는데 SVM은 CNN과 분리되어 있어서 Gradient 역전파가 불가능. = End-to-End 학습 불가능

 

 

5. Bounding Box Regression

 

우리가 예측한 Proposed box와 실제 gt box를 비교해서 학습 (CNN feature → 작은 NN → 4개 값 출력)

+ w, h의 경우 급격한 변화 방지를 위해 log 변환을 적용

 

정리하자면 4096차원의 벡터를 가지고 경로를 두 갈래로 나눠서 한쪽은 SVM을 써서 Classification을 하는 경로 하나는 여기다가 Neural Network를 달아서 이 좌표 4개를 예측하는 형태

 

RCNN의 학습 과정

 

  1. Pre-training
    • CNN(AlexNet)을 ImageNet Classification Dataset으로 먼저 학습 (1000 클래스 분류).
    • Feature Extractor로서의 성능 확보.
  2. Fine-tuning
    • Object Detection Dataset (예: Pascal VOC)으로 파인튜닝.
    • Detection 클래스(20개) + 배경(1개) 총 21개 클래스.
  3. SVM 학습
    • 이제 CNN feature(4096개)를 입력으로 받아, SVM으로 최종 Classification 학습.
    • Hard negative mining => 성능을 높이기 위  false positive 즉 Background 배경 성분에 대해서 굉장히 어려운 샘들을 위주로 학습
  4. Bounding Box Regressor 학습
    • 정답 좌표와 추정 좌표를 비교
    • Mean Squared Error (MSE) 사용

RCNN의 한계점 정리

  • 속도 문제
    • 이미지 하나당 2000개 후보 영역.
    • 각 영역마다 CNN 실행 → 매우 느림 (실시간 불가능). 당시 84시간 걸렸다고
  • End-to-End 학습 불가
    • CNN, SVM, Bounding Box Regressor를 따로따로 학습.
    • 통합 최적화가 되지 않음.
  • Storage 문제
    • 모든 Region Proposal의 CNN Feature(2000 × 4096)를 저장해야 함.
    • 디스크 사용량 수십~수백 GB 발생.
  • Warping 문제
    • 다양한 비율의 객체를 강제로 227×227로 변환 → 정보 손실.

 

이렇게 단점이 많았지만, R-CNN은 딥러닝 기반 Object Detection의 출발점이 되었다.

 

'Computer Vision > Paper reviews' 카테고리의 다른 글

[Object Detection] Faster R-CNN  (0) 2025.08.06
[Object Detection] SPPNet과 Fast R-CNN  (0) 2025.07.17
[ILSVRC 논문 정리해 보기] AlexNet (ImageNet Classification with Deep Convolutional Neural Networks)  (0) 2025.05.07
[논문 리뷰] ImageNet Classification with Deep ConvolutionalNeural Networks (AlexNet)  (0) 2025.02.02
[논문 리뷰] You Only Look Once: Unified, Real-Time Object Detection 2  (0) 2025.01.25
'Computer Vision1/Paper reviews' 카테고리의 다른 글
  • [Object Detection] Faster R-CNN
  • [Object Detection] SPPNet과 Fast R-CNN
  • [ILSVRC 논문 정리해 보기] AlexNet (ImageNet Classification with Deep Convolutional Neural Networks)
  • [논문 리뷰] ImageNet Classification with Deep ConvolutionalNeural Networks (AlexNet)
임승택
임승택
"Hello, I am Lim Seungtaek, a computer engineering student. Nice to meet you!"
  • Lim's Technology
    임승택
    임승택
    "Welcome to Lim's Technology!"
  • 누적 조회수
    총 회
    구독하기
    • 분류 전체보기 (102)
      • Blog (10)
      • Computer Vision (44)
        • Computer Vision (4)
        • Paper reviews (24)
        • Project (8)
        • Basic (8)
      • LLM (8)
        • Paper reviews (3)
        • Project (3)
        • Basic (2)
      • Data Analysis (11)
        • Basic (8)
        • Project (3)
      • Computer Graphics (2)
        • Basic (2)
      • Robotics (5)
        • Paper reviews (3)
        • Basic (2)
      • Technology Notes (15)
      • Memo (5)
  • 인기 글

  • 최근 댓글

  • 최근 글

임승택
[Object Detection] Two-Stage Object Detection – R-CNN
상단으로

티스토리툴바