Object detection overview
부스트캠프 두 번째 대회가 시작되었다.
주제는 재활용 쓰레기 분류를 위한 detection 모델을 개발하는 것이다.
대회가 진행되는 3주 동안 강의가 있는 경우 강의의 내용을 정리하고, 그 외 대회 활동을 어떤 것을 했는지 기술할 예정이다.
성능 평가를 위한 metric
precision
- precision=TP+FPTP=AlldetectionsTP
- 8개 검출 시 4개가 옳은 검출 -> precision은 0.5이다.
recall
- recall=TP+FNTP=AllGroundtruthsTP
- 5개의 GT 중 4개 검출 -> recall은 0.8이다.
PR Curve
- 전체 Ground Truth의 개수와, 각 객체에 대한 Predict 값을 갖고 있을 때, 이를 통해 Precision과 Recall을 구할 수 있다. 이 때, 단순히 모든 객체에 대한 Precision과 recall값만 아는 것이 아니라, 아래 그림처럼 객체를 하나씩 보면서 Precision과 recall 값을 점차 누진적으로 표현할 수 있을 것이다. 객체들은 Confidence 순으로 정렬된 상태이다.

그리고 이런 식으로 계산한 precision과 recall을 그래프로 표현할 수 있다. 이를 PR Curve라 한다.
AP(Average precision)
- PR Curve의 아래 면적을 의미한다.
- 0~1 사이로 표현된다.
mAP(mean Average precision)
IOU(Intersection Over Union)
- IOU=combinedregionoverlappingregion
- 박스 두 개의 전체 영역 대비 겹치는 영역의 비율을 의미
- IOU가 일정 수치 이상일 때 True, False로 보통 기준을 잡는다(일정 수치는 달라질 수 있음)
- 기준이 달라질 수 있으므로 보통 mAP 옆에 숫자를 적음으로서 IOU 비율을 알려준다.(mAP 50: IOU가 50 이상인경우 True)
속도 평가를 위한 metric
FPS(Frames Per Second)
- 초당 처리할 수 있는 Frame의 수
- 클 수록 모델이 빠르다.
FLOPs(Floating Point Operation)
- 연산량 횟수를 의미한다.
- 행렬곱 과정에서의 덧셈과 곱셈, Convolution 연산에서의 Channel별 계산(Cin X Cout), Kernel 계산(K X K), 높이 너피 별 계산(Hout X Wout)이 전부 FLOPs에 포함된다.
- 작을수록 빠른 모델
Detection model의 대표 library
MMDetection
- object detection opensource library
Detectron2
- 페이스북 AI 리서치의 라이브러리
- Object detection, segmentation 관한 기능 제공
YOLOv5
- 코코 데이터셋으로 사전학습된 모델로 Colab, kaggle 등 여러 플랫폼에서 오픈소스로 제공
EfficientDet
- EfficientNet을 응용해 만든 Object detection 모델
Object detection의 경우 위처럼 여러 개의 라이브러리가 공존하고 있다.