Obeject Detection 이란?
이번 포스팅에서는 Object Detection(객체 탐지)에 관한 기본적인 내용을 공유해보려고 합니다.
Object Detection 이란?
Object Detection이란 컴퓨터 비전과 이미지 처리와 관련된 컴퓨터 기술로서, 여러 물체에 대해 어떤 물체인지 분류하는 Classification 문제와 그 물체가 어디 있는지 박스를 통해 바운딩 박스(Bounding box) 위치 정보를 나타내는 Localization 문제를 둘 다 해내야 하는 분야를 뜻합니다.
Classification : 특정 이미지가 어떤 객체인지 클래스를 판단하는 분류를 하며 주로 CNN 계열의 모델을 사용합니다. Classification + Localization : Localization이란, 단 1개의 객체 위치를 바운딩 박스(Bounding Box)로 지정해 찾는 것을 의미합니다. Object Detection : 여러 개의 객체들에 대한 위치를 여러 개의 바운딩 박스로 지정해서 찾습니다. 이 때 동시에 여러 개의 객체들이 무엇을 의미하는지 클래스 분류도 수행힙니다. Segmentation : Pixel-level로 Object Detection을 하는 것을 의미합니다. 그림에서 Object Detection일 때 바운딩 박스와 비교해보면 시각적으로 차이점이 무엇인지 확연히 알 수 있습니다.
객체 탐지는 위와 같이 물체의 위치(바운딩 박스)를 찾는 ‘예측’과 물체를 분류하는 ‘분류’ 작업을 함께 수행합니다.
Bounding Box 이란?
객체 탐지에서 박스의 형태로 나타내는 위치를 의미합니다. 이미지 상에서 수직/수평 방향을 향한 직사각형의 모양의 박스입니다.
손실 함수 (Loss Function)
1) Classification loss : 제대로 된 분류를 위한 손실 함수 2) Localization loss : 해당 Grid 안에 물체가 있을지 없을지에 대한 손실 함수 3) Confidence loss : 바운딩 박스의 Center Point(X, Y)와 Width, Height를 잘 찾기 위한 회귀 손실 함수
모델 연혁
-One Stage : Classification, Regional Proposal을 동시에 수행하여 결과를 얻는 방법 이미지를 모델에 입력 후, Conv Layer를 사용하여 이미지 특징을 추출 Example) YOLO, SSD
-Two Stage : Classification, Regional Proposal을 순차적으로 수행하여 결과를 얻는 방법 비교적 One-Stage Detector는 빠르지만 정확도가 낮고, Two-Stage Detector는 느리지만 정확도가 높음 Example) R-CNN, Fast R-CNN, Faster R-CNN
성능 평가 매트릭스
- IoU(Intersection Over Union)
실제 객체가 있는 바운딩 박스(Ground Truth)와 모델이 예측한 바운딩 박스(Predicted)가 포함하고 있는 영역을 계산합니다.
- mAP(mean-Average Precision) Precision, Recall은 Trade-off 관계가 존재합니다. 즉, 두 개의 값을 모두 최상위 값으로 끌어올릴 수 없습니다. 어느 한 값으로 알고리즘의 성능을 판단하기는 어렵고, 두 값을 종합해서 알고리즘을 평가하기 위한 것이 Average Precision입니다.
이상으로 Object Detection에 대해 간단히 알아보았습니다.
참고 자료