본문 바로가기

논문 정리

Fast R-CNN

Fast R-CNN은 기존에 R-CNN의 단점들을 보완한 모델입니다.

 

Fast R-CNN은 크게 3가지를 개선했습니다.

 

첫 번째, Fast inference

 

R-CNN 과 Fast R-CNN의 차이

     기존에 R-CNN은 Region Proposal(Selective Search)를 사용해서 Object가 있을 것이라고 추정되는 2천 개에 영역들을 CNN 네트워크에 입력으로 넣어서 학습을 했습니다. 따라서 영상 1개가 입력으로 CNN 네트워크를 통과하는 시간이 오래 걸리기 때문에 학습을 수행하는 시간도 오래 걸리지만, 영상 1개에 대한 Inference 시에도  Region Proposal을 사용해서 Object가 있을 만한 영역을 2천 개가량 추출해서 네트워크를 통과하기 때문에 Inference 시에도 많은 시간이 걸리게 됩니다.

 

따라서 Fast R-CNN에서는 영상당 1번만 CNN 네트워크를 통과해서 계산 비용을 감소시켰습니다. 따라서 학습 속도도 inference 속도도 빨라지게 되었습니다.

 

두 번째, End-to-End 학습이 가능하게 되었습니다.

SVM -> SoftMax

R-CNN에서 사용하던 SVM을 제거하고, Fast R-CNN에서는 SoftMax함수를 사용하게 되면서, 입력 영상에서 분류까지 Gradient를 계산해서 한 번에 학습이 가능한 구조로 이루어졌습니다.

 

세 번째는 Multi-Task Learning입니다.

Multi-Task Learning is Classification and Bounding Box Regression

R-CNN에서는 Box의 위치를 조정하지 않고, Region Proposal을 통해서 얻은 Object를 Classification을 하는 방법을 사용했습니다. 하지만 Fast R-CNN에서는 Bounding Box Regression을 통해서 Proposal 된 Box들의 위치를 예측하고, Ground Truth와 예측된 Bounding Box 좌표들 사이의 거리가 가까워지도록 조절하는 Term이 존재하고, 기존에 R-CNN에서는 Cropping 된 Object가 같은 크기가 되어야 했기 때문에 Resize를 시켜 주었습니다. 하지만 Fast R-CNN에서는 RoI Pooling을 적용해 서로 다른 크기를 가진 Object들도 Fully Conneted 되어서 뒤쪽에 Layer들레 통과시킬 수 있도록 했습니다.

 

Roi Pooling에 대해서 간단하게 설명을 하자면, Feature Map에서 Object가 있을만한 위치가 (5 x 7)에 해당하는 

RoI Pooling

Roi Pooling에 대해서 간단하게 설명을 하자면, Feature Map에서 Object가 있을만한 위치가 (5 x 7)에 해당하는 위치라면,해당 영역에 sub-window를 적용해서 나누어진 각 영역에 대해서 Max Pooling을 수행해서 크기가 다른 Object들이 2x2에 해당하는 Pooling Matrix를 같도록 만들고, FC Layer에 Mapping 할 수 있도록 해줍니다.

 

아래 그림은 R-CNN과 Fast R-CNN의 전체적인 구조입니다.

 

R-CNN

 

Fast R-CNN

 

'논문 정리' 카테고리의 다른 글

[간단리뷰]Unet++  (0) 2024.05.11
[review]PETALS: Collaborative Inference and Fine-tuning of Large Models  (0) 2023.08.08
YOLOV1  (0) 2023.07.02
Faster R-CNN  (0) 2023.06.24
R-CNN  (0) 2023.05.30