[DLCV] R-CNN

Deep Learning, Computer Vision

Posted by dongjune on October 21, 2020

R-CNN 개요

R-CNN은 하나의 이미지에서 2천개의 region proposal 이미지를 추출하여 개별적으로 CNN Detection을 수행해주는 알고리즘이다.
2천개의 region proposal 이미지들을 개별적으로 수행하기 때문에 실행속도가 매우 느리지만 성능은 높아졌다. 이제 그림을 통해 살펴보자.
1

  1. Input Image
  2. 2천개의 Region proposal을 추출한다.
  3. 2천개의 개별 이미지들을 동일한 사이즈들로 warp해주고 각각의 이미지들을 CNN 네트워크를 통과시켜 feature map을 추출한다.
  4. 추출 된 feature map들을 bounding box regression 과 SVMs를 통해 예측한다.

2

R-CNN의 Object Detection Logic

3

  • Stage 1에서 Selective Search를 통해 2천개의 Region Proposal 이미지를 추출한다.
  • 추출된 이미지들은 모두 동일한 크기로 맞추기 위해 warp 된다.
  • Stage 2에서 AlexNet을 통해 Feature Map을 추출한다.
  • 추출 된 feature map을 Classfication과 Regression을 수행해준다.
  • 그림 상에는 Soft max라 써있지만 RCNN에서는 더 좋은 성능을 보이는 SVM Classifier을 사용한다.

R-CNN의 장점

  • 동시대의 다른 알고리즘 대비 높은 Detection 정확도를 보인다.
  • Deep Learning 기반,Region proposal 기반 Object Detection 성능을 입증하여 연구 방향성을 제시했다.

R-CNN의 단점

  • 하나의 이미지마다 selective search를 수행하여 2000개의 이미지를 도출하여 개별 이미지마다 CNN feature map을 생성하기 때문에 느린 수행시간을 보여준다.
  • selective search, CNN Feature Extractor, SVM, Bounding box regressor로 구성되는 복잡한 아키텍쳐 및 학습 프로세스를 갖는다.

이처럼 RCNN은 딥러닝의 Object Detecion 성능 향상에 큰 기여를 한 알고리즘이지만 실행속도가 매우 느리고 복잡하다는 단점을 갖고 있다.
후에 이를 개선하기 위해 SPP Net과 Fast R-CNN, Faster R-CNN이 등장하게 된다. 다음 포스팅에서 이 알고리즘들을 다뤄볼것이다.