object detection에 관한 공부를 진행하다보면 모델의 평가 지표로 mAP가 등장한다. 이전까지는 mAP가 등장하면 그저 모델이 좋은 정도를 나타내는구나 생각하고 넘어갔는데, 이번 기회에 mAP에 대해 공부하고 정리하고자 한다.
mAP는 mean Average Precision의 약자이다. 해석하면 평균 정확도의 평균이다. 평균이 두 번 등장해 매우 이상하다. 좀 더 자세히 풀어보면, mAP는 AP(Average Precision)의 평균이고 AP는 Precision의 평균이다. 따라서 mAP를 이해하기 위해서는 Precision부터 알아야한다.
머신러닝을 처음 공부하고, classification을 공부한 사람이라면 한 번쯤은 precision과 recall이라는 말을 들어봤을 것이다. precision은 한국말로하면 정밀도로 모델이 True로 예측한 것들 중에서 실제 True인 비율을 의미한다. recall은 재현율로 실제 True label 중 모델이 True로 예측한 비율을 의미한다.
IoU는 Intersection over Union의 약자로 한국말로 하면 전체 영역 중 겹치는 영역 정도가 되겠다.
즉, 모델이 검출한 bounding box가 ground truth box와 얼마만큼 겹치는지를 나타내는 지표가 된다. 특정 threshold 값을 넘긴 predict bounding box에 대해서 TP로 판단한다.
PR Curve는 confidence score에 대한 threshold 값이 변화함에 따른 Precision과 Recall의 변화량을 나타낸 그래프이다. object detection에서 confidence score는 IoU가 된다.
드디어 AP가 등장한다. 쉽게 설명하면 AP는 PR Curve의 아래 영역이 된다. AUC가 ROC curve의 아래 영역을 의미하는 것과 동일하다. Curve의 아래영역을 계산하기 쉽게 하기 위해서 PR Curve가 단조적으로 감소하도록 수정한 후 AP를 계산한다.
object detection task에서는 강아지, 고양이, 자동차, 비행기 등 탐지하고자 하는 물체(class)가 다양하다. mAP란 각 class 별 AP의 평균을 나타낸 값으로 모델의 정확도를 측정하는 평가 지표가 된다.
1) 물체 검출 알고리즘 성능 평가방법 AP(Average Precision)의 이해
2) mAP (mean Average Precision) for Object Detection
3) 정밀도와 재현율-위키백과
4) Precision-Recall - scikit-learn