[Object Detection] 2. Fast R-CNN 논문 리뷰

Fast R-CNN - Fast R-CNN을 읽고 논문 주요내용을 정리해본다.

[PDF] 논문원본

Fast R-CNN

모델 구조

Fast R-CNN은 앞서 설명한 R-CNN의 치명적인 단점을 해결하여 성능을 개선한 모델이다. 모델의 전반적인 구조는 위와 같다. 이전 모델인 R-CNN과 비교되는 Fast R-CNN의 특징을 살펴보면 아래와 같다.

먼저, 이미지에 대해 후보 영역(region proposal)을 약 2000개정도 생성한다. 여기까지는 R-CNN과 같지만 생성된 ROI(region of interest)의 이미지를 잘라서 하나하나 메모리에 홀딩하는 R-CNN과 다르게 Fast R-CNN은 찾아낸 ROI의 좌표값만 메모리에 홀딩하고, 그렇기때문에 많은 메모리를 필요로 하지 않는다.

2단계. Feature Extraction(CNN & ROI Projection)

R-CNN에서는 Selective Search에서 나온 약 2000여장의 이미지를 전부 CNN에 넣어야 했지만 Fast R-CNN에서는 처음에 input된 이미지 한장에서 공통적인 feature map을 추출하기 때문에 실행속도가 빨라졌다.

그리고 이미지가 CNN에 input될때 사이즈가 변형된 비율을 고려하여 ROI의 좌표들을 맞추어 준다.(ROI projection)

3단계. ROI Pooling

CNN을 통과한 이미지를 classification에 필요한 형태로 변환시켜 주기 위하여 ROI pooling을 진행한다.

먼저, CNN을 통해 나온 feature map에서 ROI projection을 통해 얻어진 bounding box 좌표에 따라 feature 값을 기준으로 max pooling하여 이미지 사이즈를 맞춰준다.

4단계. Classification & Bounding Box Regression

마지막으로 지금까지 나온 값들을 FC(fully connected layer)에 넣어 Classification과 Bounding Box Regression을 할 수 있도록 한다.

Classification에서는 softmax를 사용하여 분류하였고, bounding box regression에서는 Linear를 통해 regression하였다.

Loss Function

R-CNN에서는 Classification과 Bounding Box Regression을 따로 학습하였다. 하지만 Fast-RCNN에서는 두 가지를 합쳐 Multi-task Loss로 학습을 진행하였다.

앞쪽의 Lcls는 classificaion loss 이고, Lloc는 bounding box regression loss 이다.

R-CNN과 성능비교

차트와 같이 학습시간, 테스트 시간에서 월등히 좋아진 것을 알 수 있다. 하지만 Fast R-CNN도 selective search를 포함한 test시간이 2초라는 것을 보아 real-time task에서는 사용하기 부적절 하다는 것을 알 수 있다.

p.s. 위의 차트에서 보면 알 수 있듯이 대부분의 시간지연은 selective search 과정에서 일어 나는 것을 알 수 있다.


© 2020. All rights reserved.