R-CNN: Regions with CNNfeatures

2025. 11. 18. 13:29·ML&DL/논문리뷰

Abstract

R-CNN은 기존 객체 검출 성능이 수년간 정체되어 있던 문제를 해결하기 위해, 복잡한 특징 조합이나 다양한 부가 정보 없이도 높은 성능을 달성하는 단순하고 확장 가능한 객체 검출 알고리즘을 제안한다. 이 방법은 약 2000개의 region proposal을 생성하고, 각 영역에 고용량 CNN을 적용하여 특징을 추출한 뒤, 클래스별 SVM으로 분류하는 구조를 사용한다. 또한 라벨이 적은 detection 데이터셋의 한계를 극복하기 위해 대규모 ImageNet 데이터셋에서 CNN을 지도 학습으로 사전학습한 후, detection용으로 미세조정(fine-tuning)하는 전략을 도입해 성능을 크게 향상시킨다. 이러한 접근을 통해 VOC 2012에서 기존 최고 성능 대비 mAP를 30% 이상 개선한 53.3%를 달성했으며, sliding-window 기반의 OverFeat보다도 ILSVRC2013 200-클래스 detection에서 큰 우위를 보인다.

 

1. Introduction

먼저 지난 10여 년간 시각 인식 분야는 대부분 SIFT와 HOG 같은 저수준(hand-crafted) 특징에 의존해 발전해 왔으며, PASCAL VOC 객체 검출에서는 2010~2012년 동안 성능이 거의 정체되어 있었다. 이러한 기존 방법들은 여러 특징과 고수준 컨텍스트를 복잡하게 결합한 앙상블 구조를 사용하지만 성능 향상 폭은 매우 작았다.

 

반면 ImageNet 대규모 분류 문제에서 CNN이 뛰어난 성능을 보이며 주목받기 시작했으나, 이러한 분류 성과가 객체 검출 문제에도 일반화될 수 있는지는 명확하지 않았다. 객체 검출은 단순 분류와 달리 이미지 안에서 여러 객체의 위치를 정확히 찾아야 하므로, CNN을 어떻게 지역적(local) 정보에 맞게 적용할지, 즉 정확한 위치(localization) 를 어떻게 해결할지가 핵심 난제였다. 기존에 CNN을 sliding-window 방식으로 적용하는 시도는 있었으나, 깊은 네트워크의 큰 receptive field와 stride 문제 때문에 정밀한 위치 예측이 어렵다는 문제가 있었다.

 

이를 해결하기 위해 논문은 recognition using regions 패러다임을 채택해, bottom-up region proposal을 생성하고 각 region을 CNN에 입력해 특징을 추출한 후 분류하는 방식을 도입한다. 또한 PASCAL VOC의 제한된 라벨 데이터로는 고용량 CNN을 새로 학습시키기 어렵다는 문제를 지적하며 대규모 ImageNet 데이터에서 CNN을 지도 학습으로 사전학습한 뒤 작은 detection 데이터셋에 맞게 미세조정(fine-tuning)하는 전략이 효과적임을 보인다.

 

이 두 가지 설계를 통해 R-CNN은 이전 HOG 기반 탐지기(DPM 등)보다 현저히 높은 detection 성능을 달성하며, OverFeat 같은 최신 sliding-window CNN 탐지기보다도 훨씬 우수한 결과를 보여준다. 논문은 이러한 결과로 CNN이 객체 검출에서도 강력한 표현력을 가진다는 것을 처음으로 입증한다.

 

2. Object detection with R-CNN

2.1. Module design

R-CNN은 다음과 같이 세 가지 모듈로 구성된다.
1. region proposal을 생성하는 단계로, 다양한 방법이 존재하지만 이전 연구와의 비교를 위해 selective search를 사용한다.

 

Selective Search는 객체 후보 영역(region proposals)을 생성하는 알고리즘으로, 이미지 속 물체의 색, 질감, 경계 등 시각적 특징을 기준으로 비슷한 영역끼리 점진적으로 병합하면서 다양한 크기의 후보 박스를 만들어낸다. 이 과정에서 하나의 이미지로부터 약 2,000개의 후보 영역을 생성하게 된다. R-CNN에서는 이렇게 얻은 2,000개의 영역을 모두 224×224로 크기를 강제 변환(warping) 하여 CNN 입력 형식에 맞춘 뒤 각 영역마다 개별적으로 CNN을 통과시켜 특징을 추출했다.


2. CNN을 이용해 각 region proposal에서 4096차원의 고정 길이 feature vector를 추출하는 단계로, AlexNet 구조를 기반으로 227×227로 warp된 region을 입력한다. 원래 region 크기에 상관없이 bounding box를 일정 크기로 강제로 왜곡시키는 간단한 변환을 적용한다.

 

Selective Search로부터 얻은 약 2,000개의 Region Proposal을 모두 224×224 크기로 강제 Warping한 뒤, 이 이미지들을 하나씩  CNN에 통과시킨다. R-CNN에서 사용한 CNN은 원본 AlexNet과 거의 동일하며, Object Detection에 맞게 마지막 FC 출력만 수정했다. PASCAL VOC 20 classes과 ILSVRC Detection 200 classes와 같은 새로운 Detection label에 맞춰 Fine-tuning을 수행했다. CNN을 통과한 각 Region Proposal에서 4096차원(4096-dim)의 고정 길이 Feature Vector가 추출되며, 이 고정된 길이의 벡터를 이후 SVM/Bounding Box Regression 단계에 사용한다.


3. 추출된 특징을 이용해 클래스별 Linear SVM을 학습하는 분류 단계가 존재하며, IoU 기준으로 양성과 음성을 정의하여 SVM을 훈련한다. 또한 동일한 특징을 기반으로 각 클래스마다 별도의 Bounding Box 회귀 모델도 함께 학습하여 제안된 영역의 위치를 보정한다.

 

CNN으로부터 Region Proposal마다 4096차원 feature를 뽑은 후 R-CNN은 마지막 분류기를 Softmax 대신 클래스별 Linear SVM으로 학습시킨다.

 

R-CNN에서는 각 Region Proposal을 CNN에 통과시켜 4096차원의 특징 벡터를 추출한 뒤, 최종 분류 단계에서 Softmax 대신 클래스별 Linear SVM을 사용한다. 논문에 따르면 PASCAL VOC2007 기준으로 Softmax를 사용했을 때 mAP가 50.9%로 떨어졌지만, Linear SVM을 사용하면 54.2%까지 올라가 성능 차이가 뚜렷했다. 이러한 차이가 발생한 이유는 CNN Fine-tuning과 SVM 학습 단계에서 positive/negative 예시를 정의하는 방식이 서로 달랐기 때문이다. Fine-tuning에서는 IoU가 0.5 이상이면 positive로, 나머지는 background로 처리했지만, SVM 학습에서는 오직 ground-truth box만 positive로 삼고 IoU가 0.3 미만인 영역만 negative로 설정했으며, 그 사이 값들은 모두 무시했다.

 

Fine-tuning 과정에서 사용하는 IoU 0.5~1.0의 ‘jittered examples’는 당시의 적은 데이터 상황에서는 다소 불완전하고 노이즈가 많은 샘플이었기 때문에 Softmax 기반의 end-to-end 학습에서는 모델이 쉽게 과적합되고 성능이 저하됐다. 반대로 Linear SVM은 이러한 애매한 샘플을 제거한 더 명확한 positive/negative 기준을 사용했기 때문에 더욱 안정적이고 높은 정확도로 객체 분류가 가능했다. 결국 SVM은 CNN이 추출한 특징 벡터를 입력받아 객체 여부와 종류를 판별하는 역할을 수행하며, 당시의 데이터 조건과 분류 기준에서는 Softmax보다 더 적합한 선택이었다.

 

- Bounding Box Regression

R-CNN에서는 Selective Search가 생성한 Bounding Box가 물체를 완전히 정확하게 감싸지 못하는 문제가 있기 때문에, 이를 보정하기 위한 Bounding Box Regression 단계를 추가한다. 이 단계에서는 각 Region Proposal(P)을 Ground Truth(G)에 최대한 가깝게 이동, 확대, 축소하도록 만드는 변환값(dx, dy, dw, dh)을 학습한다.

(1), (2), (3), (4) 식에 등장하는 Ĝ 값들은 Ground Truth(G)에 최대한 가까워지도록 예측해야 하는 변수들이다. 이 식들에서 Ĝ를 실제 Ground Truth 값 G로 대체하고, d를 t로 치환해 정답값을 표현한 것이 (6), (7), (8), (9)식이며, 이 식들이 바로 회귀 모델이 학습해야 할 실제 타깃 값이 된다. (5)식에서 시그마(Σ) 안에 들어 있는 항이 Bounding Box Regression의 Loss Function으로, 예측값 d와 실제값 t 사이의 차이를 줄이는 방향으로 최적화가 이뤄진다. 결국 회귀 모델은 이 Loss를 최소화하며 Proposal 박스를 Ground Truth에 가깝게 보정하는 변환을 학습하게 된다.

 

2.2. Test-time detection

테스트 시, 입력 이미지에서 약 2000개의 selective search proposal을 추출하고, 각 proposal을 warp하여 CNN에 통과시켜 특징을 계산한다. 이후 클래스별 SVM을 사용해 각 region에 대한 점수를 계산하고 클래스 단위로 독립적으로 greedy non-maximum suppression(NMS)을 수행해 중복 영역을 제거한다.


R-CNN은 CNN 파라미터를 모든 클래스가 공유하고, 특징 차원도 기존 지역 특징보다 훨씬 낮아 효율적이다. 따라서 region proposal + CNN feature 계산이라는 큰 비용이 전체 클래스에 공통으로 사용되며, 이후 분류는 단순 행렬 곱으로 처리되어 큰 규모의 클래스 집합에도 확장성이 뛰어나다.

 

2.3. Training

CNN은 먼저 ImageNet 분류 데이터로 supervised pre-training된 후, detection 작업을 위해 warped proposal을 사용해 fine-tuning된다. fine-tuning에서는 각 region proposal을 해당 ground-truth box와의 IoU에 따라 양성/배경으로 정의해 CNN 전체를 SGD로 업데이트한다. detection SVM 훈련에서는 ground-truth box만을 양성으로 하고 IoU<0.3인 proposal을 음성으로 하여 클래스별 선형 SVM을 hard negative mining으로 학습한다. fine-tuning은 detection 도메인에 맞게 CNN의 표현력을 조정하여 성능을 크게 향상시킨다.

 

2.4. Results on PASCAL VOC 2010–12

 

모든 설정과 하이퍼파라미터는 VOC 2007에서 검증한 것을 그대로 사용한다. VOC 2010, 2011, 2012 test set에서 R-CNN은 기존 region-based detector(UVA, Regionlets 등)보다 뛰어난 성능을 보이며, selective search 기반 방법과 직접 비교했을 때도 mAP 측면에서 큰 성능 향상을 보인다. bounding-box regression(R-CNN BB)을 사용하면 localization 오류가 줄어들어 추가로 성능이 향상된다. 최종적으로 R-CNN은 VOC 2010에서 53.7% mAP를 달성하며 기존 최고 방식 대비 30% 이상 향상된 결과를 얻는다.

 

2.5. Results on ILSVRC2013 detection

 

R-CNN을 ILSVRC2013 200-class detection에 그대로 적용한 결과, bounding-box regression 포함 시 31.4% mAP를 기록해 기존 최고 성능이던 OverFeat(24.3%)을 크게 능가했다. 이는 region proposal + CNN 방식이 sliding-window CNN 방식보다 전반적인 클래스들에서 더 강력한 객체 검출 성능을 제공함을 보여준다.

 

3. Visualization, ablation, and modes of error

3.1. Visualizing learned features

 

저자들은 CNN이 region-based detection에서 어떤 표현을 학습하는지 이해하기 위해 pool5의 각 유닛이 강하게 반응하는 region proposal을 대규모로 수집해 시각화하는 방식을 사용한다. 특정 유닛을 하나의 작은 detector처럼 취급해 높은 activation을 보이는 region을 나열하면 사람이 직접 설계한 특징이 아닌, 얼굴, 텍스처, 색 blob, 기하 패턴 등 다양한 고수준/저수준 시각 개념을 포착한 유닛들이 등장함을 확인할 수 있다. 이는 region proposal 위에서 CNN이 개념적이고 다양한 불변성을 가진 표현을 학습함을 보여준다.

 

3.2. Ablation studies

 

저자들은 CNN의 어떤 층이 detection 성능에 기여하는지 분석한다. fine-tuning 없이 ImageNet pre-trained 모델만 사용할 경우, fc7보다 fc6가 더 잘 일반화하며, 심지어 pool5만 사용해도 꽤 높은 성능을 보여 convolutional layer 자체의 표현력이 매우 강함을 확인한다. fine-tuning을 적용하면 모든 층에서 성능이 크게 향상되며 특히 fc6·fc7의 향상이 두드러진다. 또한 HOG 기반의 DPM 및 그 변형(feature learning을 도입한 DPM-ST, DPM-HSC)과 비교했을 때 R-CNN이 큰 폭으로 성능을 초월함을 명확히 보인다.

 

3.3. Network architectures

 

R-CNN의 성능은 사용하는 CNN 구조에 크게 의존하며, 논문은 AlexNet 기반 모델(T-Net)과 VGG-16 기반 모델(O-Net)을 비교한다. VGG-16은 훨씬 더 깊은 구조를 가지며, fine-tuning 후 detection 성능을 66.0% mAP까지 끌어올려 T-Net(58.5%)보다 크게 우수하다. 단 계산 비용은 7배가량 증가한다. 이는 더 깊고 균질한 CNN 구조가 region-based detection에서도 큰 이점을 제공함을 보여준다.

 

3.4. Detection error analysis

Hoiem et al.의 오류 분석 도구를 사용해 R-CNN의 주요 오류 유형을 분해한다. 분석 결과 R-CNN의 대부분의 오검출은 배경 오인이나 클래스 혼동보다는 poor localization(경계박스 위치 부정확) 에서 비롯된다. 이는 CNN 특성의 높은 분별력 덕분에 false positive 중 가장 많이 남는 것이 위치는 비슷하지만 정확히 맞지 않은 박스임을 의미한다. fine-tuning은 전반적으로 모든 특성에서 성능을 끌어올리지만 localization 민감성 자체를 해소하지는 못한다.

 

3.5. Bounding-box regression

Localization 오류를 줄이기 위해 간단한 선형 회귀 기반 bounding-box regression을 소개한다. pool5 특징을 입력받아 박스 중심 오프셋과 크기 보정을 예측하는 모델을 클래스별로 학습하고 테스트 시 SVM 점수가 높은 region에 이를 적용한다. 이 단순한 회귀 단계만으로도 localization 오류가 크게 감소해 mAP가 3~4% 개선된다. 이는 region proposal 기반 방식에서 localization refinement가 필수적임을 보여준다.

 

3.6. Qualitative results

마지막으로 저자들은 ILSVRC2013에서 얻은 다양한 qualitative detection 결과를 제시한다. 무작위와 curated 예시 모두 포함되며, 실제 환경에서 R-CNN의 객체 검출 방식, 성공 사례와 일반적인 활성 패턴을 시각적으로 보여준다. 이는 모델이 다양한 배경·복잡한 장면에서도 안정적으로 동작함을 시각적으로 확인시키는 역할을 한다.

 

4. The ILSVRC2013 detection dataset

ILSVRC2013 detection 데이터셋은 train, val, test의 세 부분으로 구성되며, val과 test는 PASCAL VOC와 유사한 복잡한 장면 이미지로 이루어져 있고 모든 객체에 대해 완전한 bounding box annotation이 제공된다. 반면 train은 ImageNet 분류용 이미지가 기반이라 단일 객체 중심 구도가 많고, annotation이 완전하지 않아(detections가 누락될 수 있어) hard negative mining에 직접 사용할 수 없다.

이러한 데이터 특성 때문에 R-CNN을 학습할 때 몇 가지 선택이 필요하다. 논문에서는 val을 다시 val1 / val2로 클래스 균형을 유지하며 분할해, val1을 training용으로, val2를 모델 선택용으로 사용한다. train split에서는 각 클래스별로 일정 수(N)까지의 ground-truth box만을 보조적인 positive 예제로 사용하고, negative 예제는 annotation이 완전한 val1에서만 수집한다.

 

Region proposal을 위해 selective search를 사용하되, ImageNet 이미지 크기 편차가 커서 성능 변화가 생기므로 모든 이미지를 너비 500px로 resize한 뒤 proposal을 추출한다. ILSVRC에서는 selective search recall이 VOC보다 낮아(약 91.6%), proposal 단계 개선 여지가 더 크다는 점도 언급한다.

 

전체 학습 절차는 CNN fine-tuning, SVM 훈련, bounding-box regressor 훈련을 분리해 수행하며, fine-tuning은 val1+train_N 구성으로 진행된다. 마지막으로, 모델 선택은 val2에서 수행한 뒤, test 서버 제출은 bounding-box regression 전/후 두 번만 수행해 최종 결과를 얻는다. 이 절은 R-CNN을 ImageNet detection에 적용할 때 필요한 데이터 사용 전략과 실용적인 고려사항을 상세히 정리한다.

 

5. Semantic segmentation

R-CNN은 객체 검출뿐 아니라 semantic segmentation에도 자연스럽게 확장될 수 있다. 저자들은 기존 최고 성능 방법인 O2P(Second-Order Pooling) 프레임워크에 R-CNN 특징을 결합해 비교한다. O2P는 CPMC를 통해 약 150개의 region proposal을 생성하고, 각 region에 대해 다양한 hand-crafted 특징(SIFT, LBP)을 기반으로 SVR을 학습하는 구조다. R-CNN에서는 이 구조를 유지하되, region의 bounding box를 227×227로 warp한 뒤 CNN을 통과시켜 feature를 얻는다.

 

CNN 특징을 적용하는 방식은 크게 세 가지를 실험한다:
(1) region의 전체 bounding box를 그대로 사용하는 full,
(2) region의 foreground mask만 남기고 나머지는 mean으로 채워 특징을 추출하는 fg,
(3) full과 fg를 단순히 concat한 full+fg.


실험 결과, full+fg가 가장 높은 정확도를 보며, region의 형태 정보를 반영하면서도 주변 맥락(context) 정보가 여전히 중요한 역할을 한다는 점을 보여준다.

 

VOC 2011 validation에서는 full+fg+fc6 특징이 O2P를 소폭 능가하는 47.9% mean accuracy를 기록한다. test set에서도 전체 21개 카테고리 중 11개에서 최고 성능을 달성하며, 전반적으로 O2P와 비슷하거나 조금 더 나은 정확도를 보여준다. 중요한 점은, fine-tuning 없이 ImageNet pre-trained CNN 특징만으로도 hand-crafted feature 기반의 강력한 기존 segmentation 시스템을 압도하거나 대등한 결과를 얻는다는 것이다.

 

이 절은 CNN 기반 region 특징이 detection뿐만 아니라 segmentation에서도 강력한 일반화 능력을 가진다는 사실을 보여주며, R-CNN 접근 방식이 여러 시각 인식 문제에 통합적으로 적용될 수 있음을 입증한다.

 

6. Conclusion

R-CNN은 객체 검출 분야에서 수년간 성능 개선이 정체되어 있던 상황을 극복하기 위해, 복잡한 특징 조합이나 여러 모델의 앙상블 없이도 뛰어난 성능을 달성하는 단순하고 확장 가능한 접근법을 제안한다.

 

(1) bottom-up region proposal에 고용량 CNN을 적용해 강력한 지역 특징을 얻는 방식이 기존 HOG 기반 탐지기를 크게 능가

(2) 대규모 분류 데이터셋에서의 지도 사전학습과 소규모 detection 데이터셋에서의 미세조정을 결합한 방식이 데이터 부족 문제 해결

 

R-CNN은 이 두 가지 통찰을 통해 PASCAL VOC에서 기존 최고 성능 대비 30% 이상 향상된 객체 검출 결과를 달성하고, 이러한 학습 패러다임이 향후 다양한 데이터 부족형 시각 인식 문제에서도 매우 유효할 것이라 결론짓는다. 또한 region proposals와 CNN은 서로 대체적이 아니라 자연스럽게 결합되는 기술임을 강조한다.

 

[참고]

https://ganghee-lee.tistory.com/35

https://nuggy875.tistory.com/21#comment14274211

'ML&DL > 논문리뷰' 카테고리의 다른 글

StyleGAN: A Style-Based Generator Architecture for Generative Adversarial Networks  (0) 2025.11.27
CycleGAN: Unpaired Image-to-Image Translationusing Cycle-Consistent Adversarial Networks  (0) 2025.11.19
GAN: Generative Adversarial Nets  (0) 2025.11.17
EfficientNet  (0) 2025.11.13
ResNet  (0) 2025.11.11
'ML&DL/논문리뷰' 카테고리의 다른 글
  • StyleGAN: A Style-Based Generator Architecture for Generative Adversarial Networks
  • CycleGAN: Unpaired Image-to-Image Translationusing Cycle-Consistent Adversarial Networks
  • GAN: Generative Adversarial Nets
  • EfficientNet
minyoy
minyoy
  • minyoy
    MINYOY
    minyoy
  • 전체
    오늘
    어제
    • 분류 전체보기 (17)
      • ML&DL (16)
        • 논문리뷰 (16)
      • 알고리즘 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
minyoy
R-CNN: Regions with CNNfeatures
상단으로

티스토리툴바