Object Detection Overview

이영훈·2021년 9월 27일
0

Naver Boostcamp AI-TECH

목록 보기
16/19

Intro

부스트캠프 level2의 p-stage가 시작되었다. 이번 대회는 object detection을 통해 쓰레기 이미지의 위치를 지정하고 분류하는 것이 목표이다.

모델의 Input에는 쓰레기 객체가 담긴 이미지와 bbox 정보(좌표, 카테고리)가 모델의 인풋으로 사용되고, bbox annotation은 COCO format으로 제공된다. COCO format은 크게 2가지 (images, annotations)의 정보를 갖고 있다.

모델의 Output에서는 bbox 좌표, 카테고리, score 값을 리턴한다. 이를 submission 양식에 맞게 csv 파일을 만들어 제출하면된다.

평가는 mAP 평가지표가 이용된다.

object detection 대회 경험이 처음이라고 생각하고 object detection의 전체적인 흐름을 정리해보자

1. Task

Object detection은 classification보다 한차례 고차원 적인 CV task 이다.

다음과 같이 classification은 이미지 input을 통해 class(label) output만을 출력하면되지만 object detection 같은 경우에는 image locationclassification 모두 수행되어야한다.


다음은 object detectino이 발전해온 계보이다. R-CNN을 시작으로 2021년 현재 transformer 모델인 Swin-T까지 발전해왔다. 주로 차례차례 발전해오면서 모델의 성능속도가 높아졌다. 그렇다면 object detecion의 성능과 속도는 어떻게 측정할 수 있을까?

2. Evalutation

object detection 모델은 크게 두가지의 측정 기준을 갖고 있다. 성능속도이다. 성능의 지표로는 mAP가 있고, 속도의 지표로는 FPSFlops가 있다.

우선 mAP부터 알아보자. mAP를 알기 위해서는 Confusion matrix의 선행이 필요하다.

2-1) confusion matrix

object detection을 confusion matrix에 대입해보면 분류 객체의 위치를 적절히 지정한 것이 TP이고, 분류 객체의 위치를 지정했지만 잘못 지정한 것이 FP가 된다. 또 위치가 지정되었어야 하는 객체인데 지정되지 않은 객체를 FN이라고 할 수 있다. object detection에서 TN은 사실상 큰 의미가 없으므로 무시해도 좋다.

confusion matrix를 토대로 PrecisionRecall을 구할 수 있다.

2-2) precesion / recall

Precision은 정밀도를 의미하는데, 모델이 True라고 분류한 것 중에서 실제로 True인 것의 비율을 의미한다. 수식은 다음과 같다.

Recall은 재현율로, 실제 True인 것 중에서 모델이 True라고 예측한 것의 비율을 의미한다.
수식은 다음과 같다.

아래 예시를 통해 더 정확하게 이해해보자

1) Precision
총 8개의 검출중에서 4개가 옳은 검출이다. 따라서 Precision은 4/8=0.54/8=0.5가 된다.
2) Recall
총 5개의 GT(Groun Truth)에서 4개를 검출하였다. 5개인 이유는 라이터가 5개이기 때문이다. 따라서 Recall 값은 4/5=0.84/5=0.8이 된다.

2-3) PR Curve & mAP

PR Curve는 각 검출 결과의 confidence 값을 통해 높은 수치부터 차례로 나열한 그래프이다.
여기서 confidence 값이란 output값에 대해 모델이 확신하는 정도이다.

테이블로 위와 같이 표현되고 다시 아래와 같이 그래프로 표현될수 있다.

PR Curve의 넓이를 구하면 그 값이 AP 값이 되는데 이를 각 label마다 더해서 평균을 낸 값이 바로 mAP(mean Average Precision)가 된다. 수식으로는 다음과 같이 표현된다.

2-4) IOU

곰곰히 생각해보면 Ground truth와 완전히 일치하는 box를 형성하는 것은 거의 불가능하고 그 기준이 필요하다는 것을 알 수 있다. 그 기준을 나타내는 지표가 바로 IOU(Intersection Over Union)이다.

다음과 같이 IOU에 대한 기준을 정하고 그 기준을 넘으면 True 넘지 못하면 False로 분류하면 된다.

2-5) FPS(Frames Per Second)


다음은 속도 측정 지표이다.
FPS는 쉽게, 1초당 보여지는 영상 수라고 생각하면 된다.

2-6) FLOPs(Floating Point Operations)

FLOPS는 모델이 얼마나 빠르게 작동하는지 측정하는 metric이다. 다음과 같이 연산량 횟수로 계산된다. 모델에서는 주로 더하기 연산이 무시되기도 한다.

Outro

이렇게 object detection에 대한 task와 evalutation을 알아보면서 overview를 살펴 볼 수 있었다. 앞으로 대회를 진행하면서 Object detection을 통한 코드 구현 과정을 알아보도록 하자.

0개의 댓글