일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 그래프 이론
- opencv
- DP
- Python
- edge detection
- overfitting
- 딥러닝
- eecs 498
- MySQL
- dropout
- AlexNet
- dfs
- sklearn
- exists
- BFS
- C++
- image processing
- object detection
- CNN
- machine learning
- canny edge detection
- Reinforcement Learning
- r-cnn
- dynamic programming
- 백준
- deep learning
- 강화학습
- Mask Processing
- 머신러닝
- MinHeap
- Today
- Total
JINWOOJUNG
Fast R-CNN...(1) 본문
Research Paper
0. Abstract
본 논문에서는 Fast Region-based Convolutional Network(Fast R-CNN) method를 제안한다. 기존 R-CNN 연구를 기반으로, 이전 연구와 비교하여 학습 및 테스트 속도를 개선하고 검출 정확도를 높였다.
Fast R-CNN은 VGG-16 Network 학습에 있어서 R-CNN의 9배, SPPnet의 3배 빠른 학습 속도를 보이며, R-CNN의 213배, SPPnet의 10배 빠른 테스트 속도를 보인다. 또한, PASCAL VOC 2012에서 더 높은 mAP를 보인다.
1. Introduction
최근 연구에서 Deep ConvNets는 Classification, Object Detection 성능 향상에 큰 역할을 하였다. 하지만, Object Detection의 복잡성으로 인해 최근 접근 방식은 느리고 비효율적인 다단계 파이프라인에서 모델을 학습시키고 있다.
이러한 복잡성은 객체 검출은 정확한 Localization이 요구되기 때문이다. 이를 위해선 크게 2가지 Task가 요구된다.
- 수많은 후보 객체 위치(Region Proposals) 처리
- Region Proposals의 부정확한 위치 정보 개선
본 논문에서는 최신 ConvNet 기반 객체 탐지기에 대한 간소화 된 학습 프로세스를 제안한다. 즉, Region Proposals의 Classification(SVM)과 위치 정보 개선(BBox Regressor)를 동시에 학습하는 Single-stage Train Algorithm을 제안한다. 제안하는 알고리즘은 VGG-16 Network를 기존 연구인 R-CNN보다 9배 빠른 학습속도, SPPnet 보다 3배 빠른 학습속도를 보이며, Runtime에서는 0.3초의 매우 짧은 이미지 처리 속도를 가진다. 또한, PASCAL VOC 2012에 대하여 mAP가 66%로, 기존 R-CNN의 62%의 최고 성능을 능가한다.
1.1 R-CNN and SPPnet
R-CNN은 Object Detection 성능을 향상시켰지만, 몇가지 단점이 있다.
- Training is a multi-stage pipeline
- Fine-tuning, SVM Fitting, BBox Regression
- Fine-tuning에서 학습한 Softmax Classifier는 SVM으로 대체되고, SVM은 추가적인 학습 요구
- Training is expensive in space and time
- 각 Region Proposals에 대한 Feature Vector를 독립적으로 계산해야 하며, SVM, BBox Regressor의 학습을 위해 저장해야 함
- Large Dataset일 수록 더 많은 Memory와 학습 시간이 요구됨
- Object detection is slow
- Test image에 대하여 각각의 Region Proposal에 대한 Feature Vector를 독립적으로 추출
- VGG-16 기반의 객체 검출은 하나의 Image에 대해 47s가 요구됨
R-CNN의 느린 속도는 계산을 공유하지 않고, 각각의 Region Proposal에 대한 Feature Vector 추출(ConvNet Forward Pass)이 독립적으로 수행되기 때문이다.
SPPnet은 계산을 공유하여 R-CNN의 속도를 향상시킨 Network이다. SPPnet은 Feature Vector 계산을 각각의 Region Proposal에 대해서 수행하는 것이 아닌, Input Image 전체를 ConvNet에 통과시켜 공유하는 Faeture Map을 계산한다. 각각의 Region Proposal에 대한 Feature Vector는 Featuire Map에서 Region Proposal에 속하는 부분만 추출하여 계산되며 이때, 고정된 크기로 Max Pooling하여 고정된 Output size를 가진다. 다양한 고정된 크기의 출력을 연결하여 Spatial Pyramid Pooling 처럼 만들어 이를 FC Layer의 Input으로 입력한다.
SPPnet은 R-CNN을 10~100배 빠르게 테스트 속도를 가속화 할 수 있으며, 학습 시간 역시 3배 줄일 수 있다. 하지만 여전히 Multi-stage Pipeline을 학습(R-CNN의 단점 1)해야 하며, Feature를 저장 (R-CNN의 단점 2) 해야 한다. 또한, Input Image에 대하여 추출한 Feature Map을 공유하여 Feature Vector가 계산되어 FC-Layer로 바로 연결되기 때문에, Fine-tuning 과정에서 Conv Layer를 학습시킬 수 없다.
1.2 Contributions
본 논문에서는 R-CNN, SPPnet의 단점을 보완하고, 학습과 테스트 속도가 상대적으로 빠르며 정확도가 개선된 Fast R-CNN을 제안한다. Fast R-CNN은 다음과 같은 장점을 가진다.
- R-CNN, SPPnet보다 더 높은 mAP
- Single-stage 학습 및 Multi-task loss 사용
- 모든 네트워크 계층 학습 가능
- Feature Caching을 사용하여 디스크 저장 공간의 불필요
Faster R-CNN은 Python과 C++(Caffe 사용)으로 구현되었다.