AP는 물체 검증 알고리즘 성능 평가중 하나이다.
물체 검출(object detection) 알고리즘의 성능은 precision-recall 곡선과 average precision(AP)로 평가하는 것이 대세다.
iou = 실제 박스와 예측 박스의 교집합 / 실제박스와 예측 박스의 합집합
-> 이값이 0.5이상이면 제대로 검출하였다고 판단함(TP : True Positive), 반대로 0.5이하라면 FP(False Positive)라 판단한다.
PR곡선은 cofidence 레벨에 대한 threshold 값의 변화에 의한 물체 검출기의 성능을 평가하는 방법이다. confidence는 알고리즘 자신이 해당 detection에 있어서 얼마나 자신이 있는지를 의미하며 절대적인 지표는 아니다.
confidence 레벨에 대해 threshold 값을 부여하여 그 이상의 confidence를 가져야만 검출된 것으로 인정한다. 이에 따라서 검출되는 개수에 변동이 오므로 precision과 recall 값들이 threshold에 따라 달라지게 된다.
threshold 값을 검출들의 confidence 레벨에 맞춰 낮춰가면 precision과 recall이 계산되므로 이를 그래프로 나타낸다면 Precision - Recall 곡선이 된다.(X축이 Recall , Y축이 precision이다.)
위의 이미지는 mask rcnn으로 책장을 검출하면서 나온 결과이다. 파이썬 코드로는 mrcnn폴더내 visualize를 활용 할 수 있다.
visualize.plot_precision_recall(AP, precisions, recalls)
PR 곡선은 성능을 평가하는데 매우 좋은 방법이긴 하지만 단 하나의 숫자로 성능을 평가할 수 있다면 훨씬 더 좋을 것이다. 그래서 나온 것이 AP이다. AP는 precision-recall 그래프에서 그래프 선 아래쪽의 면적으로 계산된다.
아래의 이미지는 coco에서 제공하는 AP에 대한 설명이다.