Deep Learning/Computer Vision

mAP란 무엇일까요? (ft. IOU)

jinmc 2021. 6. 3. 18:08
반응형

yolov5 github : https://github.com/ultralytics/yolov5 

참고 url : https://jonathan-hui.medium.com/map-mean-average-precision-for-object-detection-45c121a31173

 

yolov5 github를 살펴보면, mAP라는 개념이 나옵니다.

mAP는 mean Average Precision의 약자이며, Precision은 positive 들에서 true positive rate을 말합니다.

즉, object detection의 경우에는, detection되는 bounding box를 말한다고 보면 됩니다.

그럼 average precision이란 어떤 걸 의미할까요?

 

이를 위해서는 IOU(Intersection Over Union)에 대해서 알아야 합니다.

Intersection Over Union이란, Ground truth과 Prediction의 겹치는 부분의 비율을 말합니다.

보통, 0.5를 기준으로 판단을 많이 한다고 합니다.

즉, IOU가 0.5 이상인 경우만 true positive로 본다고 합니다.

Precision과 Recall의 경우, 서로 반비례되는 경우일 겁니다.

한마디로, precision이 높다면, recall이 낮을 수밖에 없고, recall이 높다면, precision이 높을 수밖에 없습니다.

간단하게 말하자면, 의심되는 모든 것에 box를 친다면, recall이 높지만, precision이 높겠죠.

하지만 정말 확실한 것에만 box를 친다면, precision이 높지만, recall 은 낮아지겠죠.

이를 그래프로 본다면 이렇게 됩니다.

 

빨간색은 실제로 나온 그래프 (가정)이고, 초록색은 보정된 그래프 입니다.

보정을 한 이유는, 빨간색 그래프의 수직에서 가장 높은 precision은 낮은 recall에서는 당연히 해당되기 때문에 

초록색으로 보정이 가능한 점입니다.

 

결국 AP는, r1에서 r2까지의 적분값을 더해서 r2 - r1 으로 나눈 값으로 

나타낼 수 있고, 이를 AUC(Area Under the Curve)라고 합니다.

 

COCO Dataset에서는 mAP(0.5:.05:0.95)가 됩니다.

이는, AP 0.5 (IOU 0.5 이상을 true positive로 잡음) 부터, AP 0.55, 0.60, ... 등 10개 step에 걸쳐서 

위의 AP값을 모두 모아서 평균값을 구한 걸 mAP라고 합니다.

반응형