Home [AI] R-CNN/Fast R-CNN/Faster R-CNN 정리
Post
Cancel

[AI] R-CNN/Fast R-CNN/Faster R-CNN 정리

Object Detection 참고

1-stage detector :

  • 1-stage는 2-stage와 다르게 RoI영역을 먼저 추출하지 않고 전체 image에 대해서 convolution network로 classification, box regression(localization)을 수행

2-stage detector :

  • Selective search, Region proposal network와 같은 알고리즘을 및 네트워크를 통해 object가 있을만한 영역을 우선 뽑아낸다.
  • 이 영역을 RoI(Region of Interest)라고 한다. 이런 영역들을 우선 뽑아내고 나면 각 영역들을 convolution network를 통해 classification, box regression(localization)을 수행한다.


대표적인 2-Stage Detector

  • R-CNN, Fast R-CNN, Faster R-CNN

R-CNN

R-CNN Process

  1. R-CNN은 selective search를 통해 region proposal을 먼저 뽑아낸 후 CNN 모델에 들어간다.

  2. CNN모델에 들어가 feature vector를 뽑고 각각의 class마다 SVM로 classification을 수행한다. SVM : 서포트 벡터 머신(SVM: Support Vector Machine)은 분류 과제에 사용할 수 있는 강력한 머신러닝 지도학습 모델, 최적의 Decision Boundary(결정 경계)를 산출

  3. localization error를 줄이기 위해 CNN feature를 이용하여 bounding box regression model을 수정한다.

R-CNN 한계점

1) RoI (Region of Interest, Object 가 있을 만한 영역) 마다 CNN연산을 함으로써 속도저하 2) multi-stage pipelines으로써 모델을 한번에 학습시키지 못함


Fast R-CNN

Fast R-CNN Process

  1. R-CNN에서와 마찬가지로 Selective Search를 통해 RoI를 찾는다.

  2. 전체 이미지를 CNN에 통과시켜 feature map을 추출한다.

  3. Selective Search로 찾았었던 RoI를 feature map크기에 맞춰서 projection시킨다.

  4. projection시킨 RoI에 대해 RoI Pooling을 진행하여 고정된 크기의 feature vector를 얻는다.

  5. feature vector는 FC layer를 통과한 뒤, 구 브랜치로 나뉘게 된다.

    • 하나는 softmax를 통과하여 RoI에 대해 object classification을 한다.
  • bounding box regression을 통해 selective search로 찾은 box의 위치를 조정한다.

ROI Pooling

  • feature map의 proposal region에서 미리 정해놓은 크기(FC layer의 인풋 사이즈)의 격자(grid)에 맞추어 bin마다 maxpooling 하여 고정된 크기의 vector를 만들어낸다.

✔️ why? 사이즈가 제각각인 proposal region을 FC layer의 인풋으로 넣기위해 고정된 크기의 feature로 만들어 주기 위해.


Faster R-CNN

RPN(Region Proposal Network)

  • 원본 이미지에서 region proposals를 추출하는 네트워크
  • region proposals에 대하여 class score를 매기고, bounding box coefficient를 출력

(https://herbwood.tistory.com/10)

This post is licensed under CC BY 4.0 by the author.