R-CNN 논문 리뷰
먼저 읽어보면 좋아요
R-CNN(Regions with CNN)이란?
설정한 Region을 CNN의 Feature(입력값)으로 활용하여 Object Detection을 수행하는 신경망
- Image Classification을 수행하는 CNN과 Localization을 수행하는 Regional Proposal 알고리즘을 연결한 모델
R-CNN의 구조
-
Region Proposal
-
이미지를 Input으로 입력
- R-CNN에는 이미지를 데이터로 사용, 레이블은 정답 Bounding Box
- 이미지를 데이터 형식을 사용하는 방법
- 이미지 픽셀들을 Vertex로 표현
- Vertex들의 연결을 Edge라 표현
- 이미지를 데이터 형식을 사용하는 방법
- R-CNN에는 이미지를 데이터로 사용, 레이블은 정답 Bounding Box
-
~2000개 영역(Bounding Box)을 Selective Search 알고리즘을 통해 추출 (Sliding Window 방식의 비효율성을 극복)
-
Sliding Window 방식이란?
-
이미지에서 물체를 찾기 위해 Window의 크기,비율을 임의로 마구 바꿔가면서 모든 영역에 대해서 탐색
→ 임의의 크기,비율로 모든 영역을 탐색하는 것 너무 느림!
-
-
Selective Search 알고리즘이란?
-
Segmentation 분야에 많이 쓰이는 알고리즘
-
객체와 주변간의 색감(Color), 질감(Texture) 차이, 다른 물체에 애워 쌓여 있는지(Enclosed) 여부 등을 파악해서 인접한 유사한 픽셀끼리 묶어 물체의 위치를 파악할 수 있도록 하는 알고리즘
-
목표
- Capture All Scales - 영상은 계층적 구조를 가지므로 적절한 알고리즘을 사용하여, 크기에 상관없이 대상을 찾는다.
- Diversification - 영역들을 그룹화하는데 최적화된 단일 전략은 없다. 색상, 재질, 크기 등 다양한 조건응ㄹ 고려하여 다룰 필요가 있다.
- Fast to Compute - 실제 객체 탐지 프레임워크에서 사용할 수 있어야 하기에 계산상 병목현상(Bottleneck)이 발생하면 안되므로 빨라야 한다.
-
절차
-
초기 Sub-Segmentation을 수행
-
작은 영역을 반복적으로 큰 영역으로 통합 → Greedy 알고리즘을 사용
- Greedy 알고리즘이란?
- 여러 영역으로부터 가장 비슷한 영역을 고른다.
- 좀 더 큰 영역으로 통합을 진행
- 1~2과정을 1개의 영역이 남을 때까지 반복한다.
- Greedy 알고리즘이란?
-
통합된 영역들을 바탕으로 후보 영역을 생성
-
-
-
-
추출된 영역을 CNN에 넣기 위해 같은 사이즈 (224 x 224)로 찌그러뜨려 통일 (Warping)
-
-
CNN(Convolution Neural Network)
-
AlexNet(ImageNet)구조 재사용 (Object Detection 용으로 마지막 부분만 조금 수정)
→ AlexNet Network 마지막 부분을 Detection을 위한 Class의 수로 수정
-
CNN을 거쳐 각각의 Region Proposal로부터 4096-dimensional feature vector를 뽑아내고 고정길이의 Feature Vector를 만들어낸다.
-
-
SVM(Support Vector Machine)
-
추출된 Feature에 대해 Linear SVM을 통해 Classification 진행
→ 왜 Classifier로 SVM을? : CNN fine-tuning을 위한 학습 데이터가 시기상 많지 않아서 Softmax를 적용하면 오히려 성능이 낮아졌음
-
추출된 Feature Vector들의 점수를 Class별로 매기고, 객체인지 아닌지, 객체라면 어떤 객체인지 판별
-
-
Bounding Box Regression
- CNN을 통과해서 나온 Bounding Box와 처음에 y로 줬던 레이블 간 차이를 줄이도록 조정하는 선형회귀 모델 절차
- Bounding Box Regression을 통해서 나온 값을 CNN 단계 전으로 다시 전달 → Region Proposal이 더 잘되도록 해줌
- P를 G에 맞추도록 Transform하는 것을 학습하는 것이 Bounding Box Regression의 목표
- P : 처음에 Region Proposal을 통해 제안된 Bounding Box
- G : Ground Truth Bounding Box (정답 박스)
R-CNN의 단점(한계)
-
시간이 너무 오래 걸림
- Selective Search에서 뽑아낸 2000개의 영역 이미지들을 모두 CNN모델에 넣음
- Selective Search → CPU를 사용하는 알고리즘
→ R-CNN 수행시간 : Training Time = 84시간, Testing Time = 프레임 당 13초 (GPU K40 사용 기준)
-
모델이 너무 복잡함
- CNN, SVM, Bounding Box Regression까지 3가지의 모델을 필요로 함
-
Back Propagation이 불가능
- SVM, Bounding Box Regression에서 학습한 결과가 CNN을 업데이트 시키지 못함.
참고
[Object Detection] 2. R-CNN : 딥러닝을 이용한 첫 2-stage Detector
갈아먹는 Object Detection [1] R-CNN
Author And Source
이 문제에 관하여(R-CNN 논문 리뷰), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chang0517/R-CNN-논문-리뷰저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)