[实例分割/目标检测评价指标] mAP

目标检测/实例分割任务

  • 输入:单张图像
  • 输出:边界框(x, y, w, h)+置信度

IOU, TP, FP, FN

  • IOU:预测框与Ground Truth(GT)的交并比

  • TP:预测框中与对应的GT边界框中置信度大于置信度阈值且Ground Truth对应的预测框中最大的

  • FP:预测框集合-TP

  • FN:GT-TP

Precision, Recall, PR-curve

  • precision = #TP/#预测框
  • recall = #TP/#GT
  • PR-curve: precision随着recall增加的变化曲线

AP

为了计算所有类别的mAP,先要计算每个类别的AP

设定

假定数据有Image 1和Image 2两张图片,预测框为:P1、P2、P3、P4,IOU阈值设为0.5
在这里插入图片描述
该数据集GT、预测框的置信度、预测框与对应GT的IOU如下
在这里插入图片描述

按置信度排序

将以上预测结果按其置信度排序,得到如下表格
在这里插入图片描述
从上到下,计算累计precision和recall

  • 累计precision = 累计TP/累计预测框
  • 累计recall=累计TP/#GT

画P-R曲线

不难看出,从上到下累计recall一定是单调非减的(因为累计TP是单调非减的),根据累计recall和累计precision即可得到P-R curve

AP计算的是等间隔recall(如[0:.01:1])下,precision的平均值,描述的是不同recall下precision的总体情况

需要注意的是,这里的precision是插值得到的请添加图片描述

mAP

通过计算得到了每个类别下的AP,各个类别的AP的均值即为mAP

mAP(COCO)

  • COCO使用[0:.01:1] 作为recall的阈值
  • COCO使用[0.5:.05:0.95] 作为IOU的阈值,即
  • COCO计算流程:
    • 计算每类下不同IOU阈值AP的均值

    • 计算所有类别的平均值

可以说,AP是precision的平均(所有recall阈值)的平均(所有IOU阈值)的平均(所有类别)

讨论

优点

  • 目标检测/实例分割是比较复杂的任务,mAP用一个数值就刻画了模型性能的好坏

缺点

  • 对于实例分割任务,mAP没有体现分割mask质量的好坏

参考
[1] https://jonathan-hui.medium.com/map-mean-average-precision-for-object-detection-45c121a31173
[2] https://kharshit.github.io/blog/2019/09/20/evaluation-metrics-for-object-detection-and-segmentation
[3] https://towardsdatascience.com/map-mean-average-precision-might-confuse-you-5956f1bfa9e2
[4] https://manalelaidouni.github.io/Evaluating-Object-Detection-Models-Guide-to-Performance-Metrics.html

版权声明:本文为CSDN博主「notzy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_17030183/article/details/122677147

notzy

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

YOLOX笔记

目录 1. 样本匹配 正负样本划分过程 2. yoloxwarmcos 学习率 3. 无法开启多gpu训练, 或者多gpu训练卡住? 1. 样本匹配 正负样本划分过程 说明: gt_centerbbox是在gt_bbox中心点向四周