일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CNN
- 데이터 전처리
- 논문분석
- Faster R-CNN
- Deep Learning
- self-supervision
- pytorch
- libtorch
- SVM margin
- cnn 역사
- darknet
- SVM hard margin
- svdd
- 서포트벡터머신이란
- EfficientNet
- fast r-cnn
- RCNN
- yolov3
- Computer Vision
- support vector machine 리뷰
- computervision
- pytorch c++
- pytorch project
- yolo
- TCP
- CS231n
- cs231n lecture5
- SVM 이란
- DeepLearning
- Object Detection
- Today
- Total
아롱이 탐험대
R-CNN: Rich feature hierarchies for accurate object detection and semantic segmentation 본문
R-CNN: Rich feature hierarchies for accurate object detection and semantic segmentation
ys_cs17 2020. 3. 12. 16:36Rich feature hierarchies for accurate object detection and semantic segmentation
-Ross Girshick, Jeff Donahue, Trevor Darrell Jitendra Malik-
1. Introduction
이전 분석했던 Alex net, Le net-5는 모두 classification problem를 해결하고자 만들어진 네트워크다. Computer vision에서의 problem 분야는 크게 4가지로 정의할 수 있다. 우선 첫번째로 지금까지 살펴본 classification 즉 이미지를 보고 어떤 물체인지 인지하는 문제, 두번째는 Classification + Localization이다. 이는 해당 물체를 인지할 뿐만 아니라 boundary box를 통해 해당하는 위치 좌표까지 반환한다. 이 두개의 문제들은 여러 개의 물체를 한번에 찾지 못한다는 단점이 존재한다. 하지만 세번째인 object detection는 앞서 설명한 Classification + Localization에서 발전해 다중 물체를 인식할 수 있다. 그리고 마지막인 Instance Segmentation은 object detection에서 더욱 발전해 각 객체를 구별할 수 있게 만드는 문제이다.
오늘 분석할 논문인 R-CNN은 처음으로 CNN을 활용하여 Object Detection 문제를 해결한 네트워크라고 할 수 있다. 2014년 전까지 Object Detection은 주로 SIFT와 DOG를 사용하여 해결하였는데 성능이 매우 좋지 않고, 걸리는 시간도 매우 길다. 하지만 R-CNN은 이 기술들보다 mAP가 30%더 높고, 속도 측면에서도 나중에 다뤄볼 faster RCNN이 훨씬 빠르게 작동한다.
2. Model & Network
R-CNN의 네트워크와 모델 구성은 전체적인 측면에서 크게 4가지로 분류할 수 있다.
간략하게 설명하자면
1. 이미지를 input으로 집어넣는다.
2. 약 2000개의 영역을 Selective search라는 알고리즘을 통하여 잘라낸다. 그후 분할된 이미지들을 227*227 size로 Waring한다.
3. 2000개의 warped image를 각각 CNN의 input으로 집어넣는다.
4. 각각 Classification을 통해 결과값을 확률적으로 도출한다.
R-CNN은 전체적으로 2 단계를 통해 진행되는 2-stage Detector이다. 따라서 첫번째 단계에서는 Region Proposal, 두번째 단계에서는 Region classification을 진행한다.
이 논문에서는 크게 3가지의 module을 통해 2단계를 진행하였다.
1) Region proposals
이 module은 위에서 언급한 selective search라는 알고리즘을 통해 물체가 존재할 것 같은 약 2000개의 region을 분할한다.
여기서 selective search algorithm이란 서로 비슷한 물체들을 bounding box화하여 물체들을 탐색하는 알고리즘이다. 이때 쓰이는 algorithm 방식은 hierarchical grouping algorithm을 사용한다고 한다.
해당 알고리즘을 더욱 자세히 알고 싶으면 https://donghwa-kim.github.io/SelectiveSearch.html 에서 확인가능하다.
2) CNN
Region proposals의 결과값으로 나온 2000개의 224*224 size로 warping된 image들을 각각 CNN의 input으로 넣어 준다. 여기서 사용되는 CNN network는 Alex net과 유사한 network를 사용한다고 한다. 하지만 해당 train data set의 class수가 달라 마지막 부분을 바꾸고, Object Detection 전용 dataset을 넣어 fine-tuning을 진행한다.
3) SVM – Classification
CNN을 통해 추출된 feature들을 통해 Linear SVM을 이용하여 classification을 진행한다. 보통 classification problem에서는 마지막에 softmax가 쓰이기 마련이지만 해당 논문에서는 SVM이 softmax보다 약 4% 성능이 더 좋아 Linear SVM을 썼다고 한다. 그리고 논문을 보게되면 Bbox (Bounding Box)라는 module이 나오는데 이는 selective search의 단점을 보완하고자 쓰였다고 한다.
위 식을 설명하자면 우선 x,y는 해당 좌표, w,h는 너비와 높이를 뜻한다., 그리고 P는 선택된 bouding box이고, G는 실제 정답인 bounding box이다. 여기서 P를 최대한 G에 가깝게 학습하는 게 이 알고리즘의 목표이다.
해당 식에서 G hat은 G와 최대한 가까워질 변수이고, 왼쪽에 있는 G hat들을 G로 치환하여 나타낸 것이 오른쪽에 있는 식들이다. 그리고 맨 아래에 있는 식은 Loss function임으로 최대한 줄이는게 우리의 목표다. 논문에서는 이 식의 lamda에 해당하는 값이 가장 중요하다고 한다. 논문에서는 lamda를 1000으로 설정하였다.
3. result
결과를 확인해보자면 최종적인 mAP는 bbox를 적용시킨 R-CNN BB를 사용한 net이 53.7로 가장 높았다. R-CNN이 좋은 performance를 가진 것은 확실하지만 이에 준하는 단점들도 존재한다. 우선 앞에서 설명한 첫번째 module에서 생성된 2000개의 image들을 CNN에 모두 넣는 것부터 속도 측면에서는 매우 느리다. Test 시 GPU K40을 기준으로 frame당 13초가 걸린다고 한다. 또한 R-CNN은 전체적으로 봤을 때 3개의 module이 복합적으로 사용된 복잡한 구조이다. 따라서 각 module의 결과값들을 backpropagation하기에는 힘든 구조라 loss를 줄이기에 쉽지가 않다. 하지만 R-CNN은 현재 Object detection분야에서 CNN을 처음 도입하였고, 2-stage structure를 사용했다는 점에서는 엄청난 파급효과를 지닌 논문이다.
다음은 R-CNN의 단점을 cover했던 후속 논문들에 대해 분석해보겠다.
4. reference
https://bskyvision.com/694?category=635506
https://j911.me/2019/03/analysis-of-rcnn-paper.html
https://nuggy875.tistory.com/21
https://donghwa-kim.github.io/SelectiveSearch.html
Rich feature hierarchies for accurate object detection and semantic segmentation (paper)
'study > paper reviews' 카테고리의 다른 글
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks (0) | 2020.03.16 |
---|---|
VGG NET: Very Deep Convolution Networks For Large-Scale Image Recognition (0) | 2020.03.13 |
Fast R-CNN (0) | 2020.03.13 |
ALEX Net: ImageNet Classification with Deep Convolutional Neural Network (0) | 2020.03.11 |
Le Net - 5 (0) | 2020.03.11 |