본문 바로가기
Machine-Learning/paper

[Paper] RCNN

by AteN 2022. 10. 6.

 R-CNN

RCNN은 논문에 설명하는 것처럼 거시적인 측면에서 봤을 때, Input image을 ROI를 통해서 각각의 Region에 해당하는 영역을 Selective Search를 통해서 약 2천장의 Proposal로 분석하고, 나눠진 Proposal을 통합 (Warp)하여 CNN 통해서 학습시켜 각각을 Classification을 할 수 있다.

논문의 사진을 다음과 같이 나누어 설명할 수 있는데, Proposal Method로부터 이미지를 Selective Search를 통해서 선정된 영역을 각각의 ConVN 으로 학습시킨 후 Feature map을 통하여 SVMs과 BBox reg으로 Validation and Evaluation을 할 수 있다.

 

* Selective Search (SS)

Region Proposal 방법 중에 하나이며, 위에 보이는 자료처럼 왼쪽에서 오른쪽으로 가면서Texture, Color 등이 비슷한 pixel끼리 연결하여 영역을 추출 하나의 BBox로 선택할 수 있으며, CPU만으로 몇 초 만에 2000개의 영역을 제시할 수 있다

* Bounding-box regression

Bounding-box regression은 localization performance의 향상을 위해서 사용한다. Proposed RoI 가 정확하지 않기 때문에 인식된 Object의 정보를 이용해 object를 tight하게 감싸도록 조정한다. 여기서 SVM Detection 으로 SS으로 인식을 한다면, Bounding-box regression을 따라서 향상된 BBox으로 예측이 가능하다.

이때 위에 보이는 그림과 같이 P는 input proposal이며 x와y는 center에서의 값, w와 h는 width, height값을 나타내며, G는 예측한 Ground-Truth BBox 값을 나타내어, 각각의 값을

 

 

Loss function

 

RCNN 단점

1. 학습이 multi-stage pipeline 이다 

RCNN은 먼저 object proposal에 대한 ConvNet을 log loss를 이용하여 fine-tune 한다. 그리고 ConvNet featur에 대해 SVM 을 학습한다. 그리고 학습의 마지막 단계에서는 Boundung-box regressors가 학습

2. 시간적, 비용적으로 학습 비용이 많이 든다 

SVM 과 Bounding-box Regressor 를 학습할 때, Features 들은 각각의 이미지의 Object proposals에서 추출되고, disk에 기록되기 때문에 광장히 많은 용량을 필요로 한다 

3. Object Detection 이 느리다 

Test 시에 Feature는 각 테스트 이미지의 각각의 object proposal 에서 추출된다 VGG16을 이용한 Dtection 은 이미지 하나에 대해 47초가 소요 (GPU 기준)

 

RCNN 이 느린 이유는 Object proposal에 대한 ConVNet Forward pass를 실행할 때 연산을 공유하지 않기 떄문이다. SPP 방법의 경우 전체 입력 이미지에 대해 Convolution Feature Map을 연산하고 공유된 Feature map 에서 추출한 Feature vector를 이용하여 각 Object proposal을 분류한다. 

- 학습이 느리고 많은 저장 공간이 필요하다 

- 검출 속도는 느리다 ( 47sec/frame)

- non end – to – end training 

 RCNN은 Convd로 학습된 Feature map을 이용하여 다시 SVM의 모델을 통해서 predicted를 한다.

 

댓글