본문 바로가기
딥러닝관련/Detection

Fast R-CNN 정리

by 머리올리자 2021. 6. 28.

기존의 R-CNN은 

 

1. 학습이 end-to-end로 이뤄지지 않으며

 

2. 학습 및 테스트 시간이 오래 걸린다

 

는 단점이 있었다.

 

Fast R-CNN은 이를 개선하기 위해 몇 가지 변형을 진행하였다.

 

<Fast R-CNN 구조>

그림 출처 : Fast R-CNN

 

디테일하게 프로세스를 살펴보자

 

[1단계]

Input 전체 이미지가 ConvNet의 input으로 입력이 된다.

출처 : https://www.robots.ox.ac.uk/~tvg/publications/talks/fast-rcnn-slides.pdf

[2단계]

RoI Pooling layer를 통해 feature를 추출

출처 : https://www.robots.ox.ac.uk/~tvg/publications/talks/fast-rcnn-slides.pdf

 

ROI Pooling

Object의 크기가 어떤 건 작고, 또 어떤 건 크기 때문에 feature map에 mapping된 후 개체의 ROI 크기도 달라진다.

 

따라서 classification을 위해 fully connected layer에 입력하려면, 동일한 수의 nueron이 있어야 한다.

(fc 때문에 input size가 고정되어야 하기 때문에)

 

Input 이미지에 대하여 입력 받은 이미지를 CNN을 통해 feature map을 추출하고,

이 추출된 feature map을 미리 정의된 크기(H x W))에 맞게 그리드를 설정한다.

 

그리고 각각의 칸 별로 max pooling을 실시하면 결과값은 미리 정의된 크기(아래 예시 2 x2)에 맞게 되고,

이를 feature vector화 한다.

 

 

여기서 미리 정의된 사이즈 즉 2 x 2 (H x W)는 hyperparameter이며, 각 RoI는 (r, c, h, w)의 튜플 형태로 정의가 된다.

 

여기서

(r, c)는 top left corner를 의미하고

(h, w)는 height width를 의미한다.

 

위 방법을 사용하면 input feature map 사이즈가 다르더라도 

 

참고

https://www.programmersought.com/article/68963530296/

 

CV-Notes-Reread ROI pooling of Fast R-CNN - Programmer Sought

Fast R-CNN mainly uses a ROI Pooling operation to classify candidate regions and fine-tune the bounding box. Here mainly explain how ROI pooling is done, mainly including: How to map the ROI coordinates on the original image to the feature map? How does RO

www.programmersought.com

https://yeomko.tistory.com/15

 

갈아먹는 Object Detection [3] Fast R-CNN

지난 글 갈아먹는 Object Detection [1] R-CNN 갈아먹는 Object Detection [2] Spatial Pyramid Pooling Network 들어가며 지난 시간 SPPNet에 이어서 오늘은 Fast R-CNN[1]을 리뷰해보도록 하겠습니다. 저 역..

yeomko.tistory.com

https://woosikyang.github.io/fast-rcnn.html

 

RCNN 부터 Mask R-CNN까지 (1) R-CNN ~ Fast R-CNN

Fast R-CNN 안녕하세요. 이번 포스트에서는 Object Detection을 정리해보려 합니다. 우선, Object Detection이란 Classification보다 더 어려운 task입니다. 분류가 단순히 이미지의 클래스를 판별하는 작업이라면

woosikyang.github.io