이 포스트에서는 Object Detection에서 많이 사용되는 평가지표에 대해 알아보겠습니다.
모델이 객체를 얼마나 잘 잡아내느냐 평가하는 성능 평가, 모델이 얼마나 빠르게 돌아가느냐 평가하는 속도 평가로 나누어 살펴보겠습니다.
얼마나 잘 객체를 탐지하는지 평가할 때 mAP를 주로 사용합니다.
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)

위와 같은 표를 confusion matrix라고 합니다. 여기서 Ground Truth는 실제 정답에 해당되는 값이고, Predicted는 예측 결과 값입니다.
TP, FP, FN, TN으로 구성되어 있어 다소 헷갈릴 수 있습니다. 하지만 아래의 설명을 머리에 한 번 넣어두면 헷갈리지 않을 수 있습니다.
여기서 앞에 T나 F가 온다면, 실제로 True(1)나 False(0)인 경우라고 생각하면 쉽습니다.
Object Detection에 맞게 설명한다면 아래와 같습니다.
위의 표에서 알 수 있듯이, Precision(정밀도)은 예측한 것들 중에서 실제로 정답인 것의 비율입니다.
Recall(재현율)은 실제 값들 중에서 감지된 것의 비율입니다.
sample들이 TP인지 FP인지 예측했던 확률값을 기준으로 sample 예측 값들을 내림차순 정렬을 한 후, 누적 TP 개수와 누적 FP 개수로 Precision, Recall을 계산합니다. 계산된 Recall을 x값으로, Precision값을 y값으로 하여 그린 그래프를 PR Curve라고 합니다.

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

그런데, TP와 FP를 어떻게 판단할까요? image classification 같은 경우는 명확하게 예측 확률이 0.5 미만이면 FP, 이상이면 TP로 판단하는데, 객체 탐지는 물체가 있을 법한 영역도 같이 예측하기에 추가로 더 고려해야 할 것이 있습니다.
실제 객체의 위치와 예측한 위치가 어느정도 겹쳐 있어야 True로 볼 것인지를 나타내는 값입니다.
실제 객체의 위치를 나타내는 bounding box와 예측한 bounding box의 넓이를 기준으로 서로 겹치는 부분의 넓이가 차지하는 비율을 계산하면 됩니다.
따라서 IOU가 몇인지에 따라 TP, FP가 달라집니다.
AP는 하나의 클래스에 대한 누적 TP, FP로 Precision과 Recall을 사용하여 구한 것이라면, mAP는 여려개의 클래스가 존재할 때 사용됩니다.
각 클래스에 대한 AP를 구한 뒤, 이를 평균을 낸 것이 mAP입니다.
위와 같이 IOU를 어떤 값을 기준으로 할 것인지에 따라 mAP값이 달라질 수 있습니다.
초당 처리할 수 있는 Frame의 수입니다. 크면 클수록 속도가 빠르다는 것입니다.
FLOPs 값은 작을수록 속도가 빠르다는 것이며, 연산량 횟수를 나타내는 값입니다.