Fast RCNN Paper URL : https://arxiv.org/pdf/1504.08083.pdf

Fast RCNN이 나오게 된 배경

이름에도 알수있듯이 Fast RCNN은 기존의 RCNN의 문제점을 해결하고자 나온 모델이다.
RCNN은 높은 정확도를 제공했지만, 여러 단점이 존재했다. 다단계 훈련과정, 시간과 공간적으로 비효율적인 훈련, 느린 탐지속도가 제일 큰 단점이였다. 이러한 문제를 더 효율적이고 빠른 훈련과 탐지 방법의 필요성이 대두되면서 해당 요구를 충족하기 위해 나온 모델이다.

Fast RCNN의 목표와 가설

  • 목표 : Fast R-CNN의 목표는 RCNN과 SPPnet의 단점을 보완하면서도, 객체 탐지의 속도와 정확성을 향상시키는 것이다.

  • 가설 : 단일 네트워크가 객체 제안을 동시에 분류하고 공간적 위치를 정교화함으로써, 기존 방식보다 더 효율적이고 정확한 객체 탐지가 가능할 것이라는 가설을 제시한다.

Fast RCNN

FastRCNN-Architecture

  1. 전체 이미지를 CNN에 통과시켜 Feature Map을 추출한다.
  2. Selective Search로 찾은 RoI를 Feature Map에 직접 투영(project)한다.
  3. RoI pooling 계층을 사용하여 각 RoI에 대한 고정된 길이의 Feature Vector를 추출한다.
  4. 투영(projection) 시킨 RoI에 대해 RoI Pooling(7x7)을 진행하여 고정된 크기의 feature vector를 얻는다. FastRCNN-FeatureMap
  5. feature vector는 FC layer를 통과하면 softmax와 bbox regressor로 나눌 수 있다.
  6. softmax의 경우RoI에 대해 object classification을 진행한다.
  7. bounding box regression는 selective search로 찾은 box의 위치를 조정한다.

Fast RCNN에서는 왜 RoI Pooling을 사용했을까?

  • 크기 통일 : RoI Pooling을 사용하게 되면 다양한 크기와 형태의 RoI를 고정된 크기의 출력으로 변환할 수있다. 그래서 CNN Input은 마음대로 넣고 FC layer 직전에 크기를 고정 시킨다.
  • 연산 효율성 : 전체 이미지에 대해 한 번의 CNN처리를 수행한 후 RoI Pooling을 통해 필요한 부분만 추출함으로써 연산을 효율적으로 수행할 수 있다.
  • 정확도 향상 : 원본 이미지의 위치를 보존하면서 좋은 품질의 특성을 추출하기 때문에 객체 탐지의 정확도가 높다.

Fast RCNN 결론

R-CNN의 복잡한 다단계 학습 프로세스(따로 CNN, SVM, 및 bounding box regression을 학습)이지만, Fast RCNN은 이런 복잡한 파이프라인을 간소화 시켰다. 그리고 RoI Pooling을 도입하면서 다양한 크기의 객체들을 효과적으로 처리하고 빠른 속도로 기존의 RCNN 보다 높은 정확도를 보였다.