mAp计算
参考:https://blog.csdn.net/ruyingcai666666/article/details/109670567
在目标检测算法中,当一个检测结果(detection)被认为是True Positive时,需要同时满足下面三个条件:
1,Confidence Score > Confidence Threshold
2,预测类别匹配(match)真实值(Ground truth)的类别
3,预测边界框(Bounding box)的IoU大于设定阈值,如0.5
不满足条件2或条件3,则认为是False Positive。
改变不同的置信度阈值,可以获得多对Precision和Recall值,Recall值放X轴,Precision值放Y轴,可以画出一个Precision-Recall曲线,简称P-R曲线。
如上图所示,当Threshold单调下降的时候,recall是单调上升的;而Precision总体趋势是下降的,局部趋势可能上升,也可能下降,走的所谓“zigzag”形状。
改变IoU的阈值,绘制recall和IoU关系曲线。当IoU≥0.5,检测结果才被认为是True Positive,所以绘制曲线的时候,IoU取值 0.5≤IoU≤1.0。
![](https://img2020.cnblogs.com/blog/1389269/202104/1389269-20210429105415245-1538227823.gif)
从Recall-IoU曲线可以看出,Recall跟IoU是单调递减关系,即IoU增加,Recall减少。
了解Confidence Score、IoU、Precision-Recall曲线以及Recall-IoU曲线后,下面本文将介绍目标检测的关键性能评估指标:AP(Average Precision),mAP(mean Average Precision)
![](https://img2020.cnblogs.com/blog/1389269/202104/1389269-20210429105458217-382025574.gif)
图2 PR曲线, 改变IOU,confidence = 0.3
小结:目标检测过程中,候选框必须满足:置信度 > 阈值、IOU > 0.5,才行,在评价的时候,例如:固定IOU为0.5,通过改变置信度阈值,可以得到一个PR曲线,计算积分就得到mAp@0.5;
接着将IOU阈值修改为:0.5-0.95等9个阈值,得到另外9个PR曲线,对应9个mAp,那么最终的mAp计算公式为:
mAp@0.5:0.95 = (mAp@0.5 + mAp@0.55 + ... + mAp@0.95) / 10