728x90
Comments : CVPR 2014
Ross Girshick et al.
논문 링크 : https://arxiv.org/abs/1311.2524
Abstract
- 이미지 내 객체를 localize 하기 위해 CNN을 도입, bottom-up 형식으로 region proposal 추출함
- labeled data의 부족으로, 다른 대규모 데이터셋에 pre-training 및 특정 데이터셋에 fine-tuning 했더니 성능이 좋더라... (supervised pre-training / domain-specific fine-tuning)
Conclusion
- R-CNN은 Simple하고 scalable object detection-algorithm이다.
Introduction
- Object detection 분야에 기존 HOG, SIFT를 적용하는 것보다 CNN을 적용하는 것이 월등히 좋은 성능을 보였다.
- CNN을 적용하기 위해서 객체의 localizing 문제와 부족한 annotated detection data 를 해결해야만 했다.
- localizing 문제를 해결하기 위해 sliding-window detector 방식을 통해 이미지 당 2000개의 category-independent region proposals 을 생성해냈다.
- 각각의 proposal은 category-specific linear SVM을 통해 classify 된다.
- 부족한 annotated data는 Abstract에서 언급한 것처럼, large dataset(ex. ILSVRC)에서 pre-training 후 fine-tuning 하는 방식으로 진행했다.
Object Detection with R-CNN
- 세 가지 모듈로 구성
- category-independent region proposals 생성해주는 모듈
- feature 추출을 위한 CNN network
- 분류를 위한 linear SVM
1. Region Proposals
- Selective search 방식을 활용하여 2000개의 region proposals 생성
- Selective search는 간단히 말해서 영역들을 그룹화 시키기 위해 색상, 재질(텍스쳐), 크기 등 다양한 종류의 조건을 고려하여 그룹화시키는 방법을 말한다.
2. Feature extraction
- input image에 대해서 객체의 부분만 tight하게 crop하여 적절한 값으로 padding한다. 논문에서는 context (여기서는 배경 정도를 의미함)를 적절히 padding하는 것이 성능 향상에 도움이 되었다고 한다. (16pix 정도)
- 이렇게 생성된 이미지는 특정 ratio를 따르는 것이 아닌 fixed-size 이다.
3. Detail
Region proposals (~2k) 생성 -->
region wrapping 후 CNN에서 feature 추출 -->
linear SVM으로 object 별 score 계산 -->
non-maximum suppression 으로 IOU threshold보다 높은 (즉, 많이 겹쳐져 있는) 객체는 제거
- IoU threshold 값을 기준으로 positive, negative region 구별
- 임계값은 0, 0.1 ... 0.5 값 중 grid search를 통해 구했음 (임계값이 성능에 영향을 주더라...)
- Bounding box regression
Result