Object Detection에서의 대표적인 성능 평가 지표인 mAP에 대해 알아보자.
Table of Contents
Prerequisite
IoU에 대한 기본적인 개념과, Confusion Matrix(TN, FP, FN, TP), Precision/Recall 개념을 알고 있어야 진행할 수 있다.
Confidence Threshold에 따른 P-R 변화
Confidence란, 모델마다 주로 로 등장하는, 해당 예측이 얼마만큼의 신뢰도를 가지는지를 나타내는 점수이다. "이 정도 확률로 이 예측을 확신하다!" 하는...
그리고 Confidence Threshold란 말 그대로 Confidence의 임계값으로, Confidence가 몇 이상인 예측들만 예측으로 볼 것인가 하는 수치이다.
•
C. Threshold가 낮으면 → Bbox 예측이 많아지고 ("난사") → Precision 감소, Recall 증가.
•
C. Threshold가 높으면 → Bbox 예측이 적어지고 ("신중") → Precision 증가, Recall 감소.
즉, Confidence Threshold에 따라 Precision과 Recall의 Trade-off가 있는 셈이다.
보기 쉽게 그래프로 나타내면 다음과 같다. (개형이 꼭 저렇지는 않다.)
Precision-Recall Curve와 AP(Average Precision)
P-R Curve는, Recall의 변화에 따른 Precision을 나타낸 곡선이다. 즉, x축이 Recall, y축이 Precision이다.
그리고, 이 P-R Curve의 면적이 바로 우리가 찾던 AP(Average Precision)이 된다!
정확히는 Precision 값들의 평균인데, 아마도 면적이 동일한 의미를 갖는 것 같다.
어떻게 평균을 구하는지는 예시에 써 두었다.
어떻게 그려지는지 한번 보자!
Recall 값은 C. Threshold에 의해 변한다. 그래서 P-R Curve를 그릴 때는 Confidence를 조절하면서 Recall과 Precision의 변화를 관찰해야 하는데, 실제로 예시를 들어 C. Threshold 값을 조절하면서 P-R Curve를 그려보자.
1.
우선, Confidence 값을 1.0부터 0.1씩, 0까지 줄여나갈 것이다. 즉, 1.0, 0.9, 0.8, ..., 0.1, 0.0의 Confidence에 대해 Precision과 Recall을 하나씩 구해보자.
2.
그리고 x축을 Recall, y축을 Precision으로 해서, 우선은 각 Recall값에 대해 해당하는 점만 모두 찍어보자.
3.
그리고 점들을 모두 선으로 이을 것인데, 오른쪽 기준 최대 Precision 값들을 기준으로 잇는다. 사진을 보면 이해가 쉽다.
점들을 모두 이으면 빨간 점선대로 이어져서 톱날 모양처럼 됐겠지만, 저렇게 오른쪽 기준 최댓값들을 이어서 step function 비슷하게 만든다.
4.
면적을 구하면 그게 바로 AP다!
초기 PASCAL VOC 같은 경우에는 Recall 값 11개(0.0부터 1.0) 각각 해당 Precision값을 다 더해서 평균 내서 구했었다.
mAP(mean Average Precision)
이제 정말로 mAP에 대해 알아볼 때가 됐다!
mAP는 거창한 것이 아니고, 여러 Object에 대한 AP를 평균한 값이다. AP는 1개 Object class에 대한 수치였으므로 mAP가 필요한 것이다.
논문에서의 예시
PASCAL VOC 같은 경우, 단순히 이면 예측 성공으로 보기 때문에 논문에서는 보통 mAP 하나만 나타난다.
COCO Challenge는 다양한 IoU 기준치를 적용하고, 크기(S/M/L)에 따른 mAP도 측정하기 때문에 논문에서는 보통 다음과 같이 다양한 수치를 기록한다.
여기서 는 IoU 기준을 0.5부터 시작해 0.95까지 0.05씩 높이면서 측정한 mAP로, AP@[.50:.05:.95]로 표기하기도 한다.
은 IoU 기준, 즉 정답으로 인정되는 IoU의 최솟값을 0.5로 설정했을 때의 mAP이고, 는 마찬가지로 IoU가 0.75 이상인 애들을 정답으로 봤을 때의 mAP이다.
, , 은 각각 크기에 따른 mAP이다.