Evaluation of Object Detection

김한별·2024년 10월 3일

Object Detection

목록 보기
1/1

이 포스트에서는 Object Detection에서 많이 사용되는 평가지표에 대해 알아보겠습니다.
모델이 객체를 얼마나 잘 잡아내느냐 평가하는 성능 평가, 모델이 얼마나 빠르게 돌아가느냐 평가하는 속도 평가로 나누어 살펴보겠습니다.

1. 성능 평가

얼마나 잘 객체를 탐지하는지 평가할 때 mAP를 주로 사용합니다.

mAP (mean Average Precision)

mAP는 각 클래스의 AP를 평균낸 것입니다.
그렇다면 AP는 무엇일까요? AP를 포함하여 본격적으로 mAP에 대해 알아보기 위해 필요한 개념 몇 개 존재합니다.

1) Confusion matrix
2) Precision, Recall
3) PR curve (Precision-Recall curve)
4) AP (Average Precision)
5) IOU (Intersection Over Union)

1) Confusion matrix


위와 같은 표를 confusion matrix라고 합니다. 여기서 Ground Truth는 실제 정답에 해당되는 값이고, Predicted는 예측 결과 값입니다.
TP, FP, FN, TN으로 구성되어 있어 다소 헷갈릴 수 있습니다. 하지만 아래의 설명을 머리에 한 번 넣어두면 헷갈리지 않을 수 있습니다.

  • 뒤에 P가 온다면 Positive, 즉 1이라고 예측한 거라고 생각하면 됩니다. 실제로 1인지 0인지간에 일단 1이라고 예측한 것입니다.
  • 반대로 N이 온다면 Negative, 즉 실제로 어떻든 간에 0으로 예측한 것입니다.

여기서 앞에 T나 F가 온다면, 실제로 True(1)나 False(0)인 경우라고 생각하면 쉽습니다.
Object Detection에 맞게 설명한다면 아래와 같습니다.

  • TP : 감지되어야 할 것이 감지된 경우
  • FP : 감지 되어야 할 것이 감지되지 않은 경우
  • FN : 감지되지 않아야 할 것이 감지되지 않은 경우
  • FP : 감지되지 않아야 할것이 감지된 경우

2) Precision and Recall

위의 표에서 알 수 있듯이, Precision(정밀도)예측한 것들 중에서 실제로 정답인 것의 비율입니다.

Precision=TPTP+FP=TPAll PredictionPrecision = \frac{TP}{TP+FP}=\frac{TP}{All \space Prediction}

Recall(재현율)실제 값들 중에서 감지된 것의 비율입니다.

Recall=TPTP+FN=TPAll Gound TruthRecall = \frac{TP}{TP+FN}=\frac{TP}{All \space Gound \space Truth}

3) Precision-Recall Curve

sample들이 TP인지 FP인지 예측했던 확률값을 기준으로 sample 예측 값들을 내림차순 정렬을 한 후, 누적 TP 개수와 누적 FP 개수로 Precision, Recall을 계산합니다. 계산된 Recall을 x값으로, Precision값을 y값으로 하여 그린 그래프를 PR Curve라고 합니다.

4) AP, Average Precision

AP는 PR Curve의 아래 면적을 계산한 값입니다.
Precision이 변하는 값을 기준으로 그 전까지 아래의 사각형 면적을 계산한 뒤 모두 더하면 됩니다.

그런데, TP와 FP를 어떻게 판단할까요? image classification 같은 경우는 명확하게 예측 확률이 0.5 미만이면 FP, 이상이면 TP로 판단하는데, 객체 탐지는 물체가 있을 법한 영역도 같이 예측하기에 추가로 더 고려해야 할 것이 있습니다.

5) IOU, Intersection Over Union

실제 객체의 위치와 예측한 위치가 어느정도 겹쳐 있어야 True로 볼 것인지를 나타내는 값입니다.
실제 객체의 위치를 나타내는 bounding box와 예측한 bounding box의 넓이를 기준으로 서로 겹치는 부분의 넓이가 차지하는 비율을 계산하면 됩니다.

  • 실제 위치와 예측값의 교집합 / 실제 위치와 예측값의 합집합

따라서 IOU가 몇인지에 따라 TP, FP가 달라집니다.

  • IOU 50 : IOU가 0.5 이상일 경우 True, 미만일 경우 False
  • IOU 70 : IOU가 0.7 이상일 경우 True, 미만일 경우 False

mean Average Precision

AP는 하나의 클래스에 대한 누적 TP, FP로 Precision과 Recall을 사용하여 구한 것이라면, mAP는 여려개의 클래스가 존재할 때 사용됩니다.
각 클래스에 대한 AP를 구한 뒤, 이를 평균을 낸 것이 mAP입니다.

mAP=1nk=1k=nAPkmAP = \frac{1}{n} \sum_{k=1}^{k= n}{AP_k}
  • mAP50 : IOU50으로 계산한 AP의 평균
  • mAP60 : IOU60으로 계산한 AP의 평균

위와 같이 IOU를 어떤 값을 기준으로 할 것인지에 따라 mAP값이 달라질 수 있습니다.

2. 속도 평가

FPS, Frames Per Second

초당 처리할 수 있는 Frame의 수입니다. 크면 클수록 속도가 빠르다는 것입니다.

FLOPs, Floating Point Operations

FLOPs 값은 작을수록 속도가 빠르다는 것이며, 연산량 횟수를 나타내는 값입니다.

profile
AI_CV에 관심 있는 대학생

0개의 댓글