본문 바로가기
DL/Object detection

Fast R-CNN

by hits_gold 2024. 1. 5.
반응형

Introduction

이전의 R-CNN은 다음과 같은 한계점들이 있었다.

 

  • RoI마다 CNN연산을 수행해 속도가 느림
  • Multi-stage pipelines로 모델을 한 번에 학습시키지 못함

위와 같은 문제점들을 Fast R-CNN에서는 다음과 같이 극복한다.

  1. RoI Pooling
  2. CNN feature 추출부터 classification, bounding box regression까지 한 번에 학습

R-CNN이 나온 이후 이를 개선한 SPPNet이 나왔는데, Fast R-CNN은 SPPNet의 SPP layer를 사용하면서 이를 더 개선한 모델이라고 할 수 있다.

 

Fast R-CNN Process

  1. 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 통과 뒤 두 브랜치로 나뉨
  6. feature vector 하나는 softmax 통과 후 RoI에 대해 object classification 진행, 하나는 bounding box regression을 통해 selective search로 찾은 box 위치 조정

Fast R-CNN은 RoI pooling으로 CNN 연산 횟수를, Multi-task loss로 multi-stage pipeline이 가지는 문제점을 개선한다.

 

ROI Pooling

SPPNet에서의 SPP layer는 4x4, 2x2, 1x1 크기의 세 피라미드를 사용해 Max pooling을 진행했다. Fast R-CNN에서는 7x7크기의 한 피라미드를 사용해 고정된 크기의 feature vector를 만든다. 이를 **"RoI Pooling"**이라한다.

RoI pooling 과정은 다음과 같다.

  1. Fast R-CNN에서 입력이미지를 CNN 구조에 통과시켜 feature map을 추출한다. 그 후 이전에 Selective Search로 만들어놨던 RoI를 feature map에 projection시킨다.
  2. -> 그림 제일 좌측 그림이 feature map이고 검은색 box가 투영된 RoI이다.
  3. 이 때 projection된 RoI영역이 고정된 크기의 feature vector가 되는 과정은 다음과 같다.
    1. 미리 설정한 HxW의 고정된 크기로 만들어 주기 위해 (h/H)x(w/H) 크기만큼 grid를 RoI위에 만든다.
    2. RoI를 grid 크기로 split한 뒤 max pooling을 적용시켜 각 grid 칸마다 하나의 값을 추출한다.위 과정을 통해 CNN연산을 2000번에서 1번으로 줄여 속도를 높일 수 있다.
  4. -> 이 작업을 통해 feature map에 투영했던 RoI는 HxW의 고정된 feature vector로 변환된다.

Multi-task loss

기존 R-CNN은 multi-stage pipeline으로 인해 3가지 모델(CNN, SVM, bounding box regression)을 따로 학습해야했다.

 

그러나 위 그림처럼 RoI Pooling을 추가함으로써 RoI영역을 feature map에 projection시킬 수 있게 되었다. 따라서 동일한 data가 각자 softmax(classification), bounding box regression(localization)으로 들어가 연산을 공유하게 된다. 이는 모델이 end-to-end로 학습할 수 있게 되었다는 뜻이다.

 

Conclusion

Fast R-CNN에서는 RoI Pooling과 Multi-task loss를 통해 R-CNN과 SPPNet의 문제점을 개선했다. 하지만 여전히 RoI를 생성하는 Selective search를 CNN 외부에서 진행시켜 속도의 저하가 있다. 이 RoI 생성마저 CNN내부에서 진행함으로써 더욱 빠르면서 정확한 region proposal을 생성하는 Faster R-CNN이 나오게 된다.

반응형

'DL > Object detection' 카테고리의 다른 글

FPN (Feature Pyramid Networks for Object Detection)  (0) 2024.01.17
YOLO v2  (1) 2024.01.15
YOLO v1  (1) 2024.01.05
Faster R-CNN  (1) 2024.01.05
R-CNN  (0) 2024.01.05