[Object Detection] mAP(mean Average Precision)

전래창·2023년 8월 7일
0

머신러닝

목록 보기
11/11

안녕하세요 mAP(mean Average Precision)는 Faster R-CNN, SSD와 같은 object detector의 정확도를 측정하는 유명한 평가지표 입니다.

이번 포스팅에서는 mAP가 무엇인지 알아보고 파이토치로 구현해보도록 하겠습니다.

mAP를 알아보기 전에 precision(정밀도), recall(재현율), IoU(intersection of union)에 대한 개념을 알아야 합니다.

Precision(정밀도)와 recall(재현율)

Precision은 모델이 True라고 예측한 것 중 정답도 True인 것의 비율을 의미합니다.

recall은 실제 정답이 True인 것중에서 모델이 True라고 예측한 것의 비율입니다.

Precision과 recall의 공식은 다음과 같습니다.

TP, TN, FP, FN은 무엇을 의미하는 걸까요??

예를 들어, 이미지에 10개의 사과가 있고 모델이 6개의 사과를 검출하여 5개는 TP, 1개는 FP라고 가정해보겠습니다.

그러면 모델이 검출하지 못한 4개의 사과는 FN이 됩니다.

그러면 Precision = 5/6가 되고, Recall = 5/10이 됩니다.

Precision을 봤을 때는 좋은 성능을 갖고 있는 것 같은데 Recall을 보면 안좋은 성능을 갖고 있는 것 같습니다.

어느 한 값으로 알고리즘의 성능을 판단하기에는 불가능하고, 두 값을 종합해서 알고리즘을 평가하기 위한 것이 AP(Average Precision) 입니다.

AP(Average Precision)

AP는 Precision-Recall 그래프의 아래 면적을 의미합니다.

Precision-Recall 그래프가 무엇인지 알아보도록 하겠습니다.

5개의 사과가 포함되어 있는 이미지에 Detector가 10개의 사과를 검출했다고 가정해보겠습니다.

각각의 검출 결과를 confidence가 높은 순으로 정렬한 것입니다.

이 recall은 서서히 증가하다가 rank 10에서 5번째 True때 1.0이 되었습니다.

반면에 Precision은 들쑥날쑥 한 것을 확인할 수 있으며 5개의 사과중 10개의 사과를 검출했으므로 최종적으로 0.5의 precision가 되었습니다.

Recall에 따른 Precision을 Plot으로 그려보겠습니다. 이것이 Precision-Recall 그래프입니다.

이렇게 바꾼 다음에 아래 면적을 구해서 AP를 구합니다.

AP = (5x11 + 4x0.57 + 2x0.5) / 11이 됩니다.

mAP(mean Average Precision)

mAP은 이름 그대로 각각의 클래스에 대한 AP의 평균을 의미합니다.

이것이 Object Detection의 평가 지표가 되는 것입니다.

profile
따라가기도 벅찬 AI Engineer 겸 부앙단

1개의 댓글

comment-user-thumbnail
2023년 8월 7일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기