[논문리뷰] 내마음대로 R-CNN 논문 리뷰
원문 링크 :
핵심 키워드
1. R-CNN 시리즈들의 서막
2. Regrional Proposal, Selective Search
3. Non-Maximum Suppression
4. Bounding Box Regression
R-CNN 모델의 흐름
위 그림과 같이 (1)이미지를 입력하고 (2) 영역을 추출하고 (3) CNN연산을 한 후 (4)분류한다.
R-CNN
R-CNN이 Object Detection을 수행하는 알고리즘
- 입력 이미지에 selective search를 적용하여 물체가 있을만한 박스 2천개(2K)를 추출한다.
- 모든 박스를 227x227로 resize. 박스의 비율 등은 고려하지 않는다.
- imagenet으로 학습시켜놓은 CNN을 통과시켜 4096차원의 특징 벡터를 추출한다.
- 추출된 벡터를 가지고 각각의 클래스마다 학습시켜놓은 SVM Classifier를 통과한다.
- 박스의 위치를 조정한다. (바운딩 박스 리그레션)
RNN이 학습하는 것
1. Region Proposal
주어진 이미지에서 물체가 있을법한 위치를 찾는 것.
R-CNN에서는 Seletive search라는 룰 베이스 알고리즘을 적용해 약 2K개의 박스를 찾는다. 대충 물제가 있을 법한 영역을 빠른 속도로 찾아내는 알고리즘이다. sliding window보다 훨씬 빠르다는 특징이 있고, 보편적으로 좋은 성능과 속도를 가지고 있다.
찾은 박스의 영역을 227x227 크기로 바꾸는데, 여기서 박스의 비율은 고려하지 않는다. 이 RoI 방식은 R-CNN 이후에는 뉴럴 네트워크가 수행하도록 발전된다.
2. Feature Extraction
Imagenet으로 미리 학습되어있는 CNN을 통과해 4096의 크기 특징 벡터를 추출한다. CNN을 Object Detection용 데이터셋으로 fine tuning 한 뒤 selective search 결과로 뽑힌 이미지들로부터 특징 벡터를 추출한다.
3. Classification
CNN을 통과한 벡터를 가지고 각각의 클래스별로 SVM Classifier를 학습시킨다. SVM Classifier를 쓰는 이유는.. 별건 없고 그냥 다른것들보다 성능이 조금 더 좋아서 그렇다고 한다.
4. Non-Maximum Suppression
SVMClassifier를 통과한 박스들은 어떤 물체일 확률값(score)를 가지게 된다.
여기서 동일한 물체에 여러 박스가 쳐져 있는 것이라면 가장 스코어가 높은 박스만 남기고 나머지는 제거한다. 이 과정을 Non-Maximum Suppression이라고 한다.
IoU 개념을 적용. 논문에서는 IoU가 0.5보다 크면 동일한 물체를 한 박스로 생각하고 있다고 적용한다.
5. Bounding Box Regression
- 물체의 위치를 찾고 물체의 종류를 판별하는데 selective search를 통해 찾은 박스의 위치는 부정확하다. -> Localization 성능이 취약하다.
- 이유 : CNN이 어느정도 positional invariance한 특성을 가지고 있기 때문. regional proposal 내에서 물체가 중앙이 아닌 다른 곳에 위치해있어도 CNN이 높은 classification score를 예측하기 때문에 물체의 정확한 위치를 잡아내기 부족하다.
- 성능을 끌어 올리기 위해 박스의 위치를 교정한다. 이를 Bounding Box Regression이라고 함.
- regional proposal인 $P$와 정답 위치 $G$가 존재할 때 $P$를 $G$로 mapping할 수 있는 변환을 학습하는 것을 말한다.
- 하나의 박스를 아래과 같이 표현한다. $$ P^i = (P^i_x, P^i_y, P^i_w, P^i_h) $$ Ground Truth(실제값)에 해당하는 박스도 아래와 같이 표기한다. $$ G = (G_x, G_y, G_w, G_h) $$
- 우리의 목표는 $P$에 해당하는 박스를 최대한 $G$와 가깝게 이동시키는 함수를 학습하는 것!!
- CNN을 통과하여 추출된 벡터와 x, y, w, h를 조정하는 함수의 웨이트를 곱해 바운딩 박스를 조정해주는 선형 회귀를 학습시키는 것.
R-CNN에서 학습이 일어나는 부분
- 이미지넷으로 이미 학습된 CNN 모델을 가져와 fine tuning을 하는 부분
- SVM Classifier를 학습시키는 부분
- Bounding Box Regression
R-CNN의 한계
- RoI (Region of Interest)마다 CNN 연산을 수행 -> 속도 저하
- multi-stage pipelines으로써 모델을 한번에 학습시키지 못한다.
그래서 이 이후에 Fast R-CNN이 나오게 되는데..!! 재미있는 CV object detection 계보 ㅇㅅㅇ~
'머신러닝 꿈나무 > Paper Review' 카테고리의 다른 글
[논문리뷰] 내 마음대로 NFNet 논문 리뷰 (0) | 2021.06.11 |
---|---|
[논문리뷰] 내 마음대로 ArcFace 논문 리뷰 (0) | 2021.06.05 |
[논문리뷰] 내 마음대로 Triplet Network 논문 리뷰 (1) | 2021.05.28 |
[논문리뷰] 내 마음대로 FaceNet 논문 리뷰 - Triplet Loss란? (0) | 2021.05.26 |
댓글
이 글 공유하기
다른 글
-
[논문리뷰] 내 마음대로 NFNet 논문 리뷰
[논문리뷰] 내 마음대로 NFNet 논문 리뷰
2021.06.11 -
[논문리뷰] 내 마음대로 ArcFace 논문 리뷰
[논문리뷰] 내 마음대로 ArcFace 논문 리뷰
2021.06.05 -
[논문리뷰] 내 마음대로 Triplet Network 논문 리뷰
[논문리뷰] 내 마음대로 Triplet Network 논문 리뷰
2021.05.28 -
[논문리뷰] 내 마음대로 FaceNet 논문 리뷰 - Triplet Loss란?
[논문리뷰] 내 마음대로 FaceNet 논문 리뷰 - Triplet Loss란?
2021.05.26