[Paper Review] Object Detection 배경지식
카테고리: Paper
태그: Object Detection ML
Main Reference:
- Deep Learning for Computer Vision
중간에 등장하는 ppt는 강의자료를 캡처한 것입니다.
🚀 Introduction
이번에 소개할 R-CNN 논문은 딥러닝을 이용한 최초의 Object Detection 알고리즘이라 할 수 있다. 물론 비슷한 시도는 있었지만, 완성도 측면에서 첫 시도라 할 수 있겠다. 최근 사용되는 Object Detection & Semantic Sementation 기법을 이해하기 위해서는 R-CNN의 내용은 필수적으로 알아야 한다.
🚀 Object Detection은 왜 어려울까?
R-CNN version1이 출시된 2013년의 상황을 상상해보자. 2012년 딥러닝을 이용한 image classification 모델 AlexNet이 등장하면서 사람들은 image classification에 대해서는 자신감을 얻었을 것이다. 그 후 자연스럽게 classification의 다음 단계인 object detection 분야에 눈독 들였을 것이다. 하지만 조금만 생각해봐도 object detection 모델은 훨씬 까다롭다는 것을 알 수 있다.
- Input : 하나의 RGB Image
- Multiple Output : 몇 개의 object가 존재하는 지 이미지마다 다르다.
- Multiple types of output : 하나의 object마다 어떤 카테고리에 속하는지(what), 어디에 있는지(where) 즉, 다른 타입의 output이 필요하다.
- Large Image : object detection은 기본적으로 높은 해상도가 요구된다.
Sliding Window
가장 먼저 떠오르는 방법은 고정시킨 bounding box를 sliding 하면서 detection 하는 방법일 것이다. 하지만 가능한 bounding box의 모양, bouding box의 위치를 고려하면 눈앞이 캄캄해진다. R-CNN 에서 대안으로 사용한 방법은 후보 영역들을 제안해주는 Region Proposal 알고리즘이다. 여담으로 R-CNN이 나오기 직전 가장 성능이 좋은 Overfeat Detection 모델은 sliding window를 이용한 방법이다. 논문에서 R-CNN이 overfeat 보다 좋다고 계속 부관참시하더라.
🚀 Region Proposal
Region Proposal은 object가 있을 만한 위치 후보군을 제시해주는 모델이다. 이는 기존의 Computer Vision 분야에서도 논문이 우수수 쏟아지는 뜨거운 주제였는데 생태계 파괴 종 딥러닝의 등장 이후 모든 알고리즘은 씹어 먹혔다고 한다. (딥러닝 엔딩..) 아무튼 본 논문에서 사용한 Region Proposal 알고리즘인 Selective Search에 대해 알아보자.
Selective Search
상상 속 selective search
Selective Search의 골자는 Color, Texture, Size, Fill 이렇게 4가지 구성 요소로 주변 영역들과의 Similarity를 계산한다. 그 후 similarity가 비슷한 영역들을 merge해 나가면서 최후에 남는 영역들을 제안해주는 알고리즘이다. 하지만 최후에 남는 영역들을 제안받으면 놓치는 object 들이 너무 많아서 본 논문에서는 2천 개의 후보 영역을 제안받는다.
현실
그럼에도 2천 개의 영역을 cpu로 몇 초안에 계산해 내는 훌륭한 알고리즘이다. Selective Search의 가장 큰 문제는 같은 object를 몇 픽셀 차이로 여러 번 제안한다는 것이다. 따라서 중복된 box를 제거하는 방법이 필요한데 이 때 사용되는 개념이 IoU, NMS 이다.
IoU - Intersection over Union
우리의 전략은 실제 bounding box인 Ground-Truth box와 가장 가까운 box를 빼고 전부 치워버리는 것이다. 그려려면 두 box가 서로 가깝다는 것이 어떤 의미인지를 정해야 하는데 그 때 사용하는 기준이 바로 IoU 이다.
- IoU > 0.5 : 음 그럭저럭 잘 맞네
- IoU > 0.7 : 아주 좋아
- IoU > 0.9 : 완벽해! (실제로는 pixel 몇 개 차이)
이제 box-metric을 정의했으니, Non-Max Suppression(NMS) 알고리즘을 이해할 수 있다. NMS는 말 그대로 max값 빼고 전부 압축시키겠다는 의미이다.
NMS - Non Max Suppression
- 가장 점수가 높은 box 선택
- IoU > threshold (ex 0.7) 인 box들 전부 제거
- threshold 값은 hyper parameter
- 다시 1번으로 (남는 box가 없을 때까지)
NMS 한계
- NMS는 Object Detection 분야에서 반드시 필요한 좋은 알고리즘이다.
- 하지만 object들이 highly overlapping되면 실제 필요한 box들도 지우게 된다.
- 이는 Object Detection 분야의 Open Problem 이라고 한다.
🚀 Evaluating Object Detection
두 Detector를 단순히 비교하기에는 조금 애매한 측면이 있다.
Object Detection의 평가 지표인 mAP에 대해 알아보자.
- 왼쪽 Detector : 틀린 Detecting 있지만, 모든 고양이 Detect
- 오른쪽 Detector : 모든 고양이를 Detect하지 못했지만, 틀린 Detecting 없음
- 어떤 것이 더 좋은 Detetor일까?
Precision(정확도) vs Recall(재현율)
\[Pricision = \frac{예측\,성공한\,영역\,갯수}{Detector가\,예측한\,영역\,갯수}\] \[Recall = \frac{예측\,성공한\,영역\,갯수}{실제\,Object\,영역\,갯수}\]mAP - mean Average Pricision
- 우선 Prediction Score가 높은 순으로 box들을 sorting 한다.
- 1번 box: 고양이일 확률 가장 높음
- 2번 box: 고양이일 확률 두 번째로 높음
- …
- Prediction box(빨간색)와 Ground-Truth box(파란색)의 IoU가 0.5 이상이면 예측 성공
- IoU > 0.5 → 예측 성공 / IoU < 0.5 → 예측 실패
- 이를 기준으로 PR Curve를 그린다 (Pricision-Recall Curve)
- 이때 PR-Cureve의 면적을 Average Pricision(AP)라 한다.
- 그럼 Category별로 AP를 구할 수 있을 것이다.
- Dog AP = 0.7
- Cat AP = 0.8
- Car AP = 0.7
- …
- mean Average Pricision (mAP) = AP들의 평균
댓글 남기기