欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 目标检测指标计算

目标检测指标计算

2025/5/21 23:16:40 来源:https://blog.csdn.net/qq_42693593/article/details/148007833  浏览:    关键词:目标检测指标计算

mAP(mean Average Precision)

概述

  1. 预备参数:类别数,IoU阈值,maxDets值(每张测试图像最多保留maxDets个预测框,通常是根据置信度得分排序后取前maxDets个);
    • Q: 假如某张测试图像只有3个预测框dt,而此时的maxDets=5,如何处理?A: 只保留这3个dt,对应代码是dt[0:maxDets]
  2. 根据模型输出的置信度分数,将所有预测框按从高到低排序;
  3. 根据IoU是否超过阈值,判断每个预测框是 T P I o U TP_{IoU} TPIoU还是 F P I o U FP_{IoU} FPIoU(TP/FP还要结合分类置信度判断);
  4. 不同置信度阈值对应一个Precision-Recall点,取不同置信度阈值得到 Precision-Recall 曲线;
  5. PR曲线下面积即为 AP(根据面积积分计算方式不同,分为VOC和COCO风格);
  6. 所有类别AP平均值即为mAP;如果数据集中包含多个 IoU 阈值,则需要分别计算每个 IoU 阈值下的mAP,然后取平均值,例如 mAP@[0.5:0.95] 。

背景知识

Precision 和 Recall

  • Precision(精确率) :预测为正类的样本中,实际为正类的比例。
    P r e c i s i o n = T r u e P o s i t i v e s ( T P ) T r u e P o s i t i v e s ( T P ) + F a l s e P o s i t i v e s ( F P ) Precision=\frac{True Positives (TP)}{True Positives (TP)+False Positives (FP)} Precision=TruePositives(TP)+FalsePositives(FP)TruePositives(TP)
  • Recall(召回率) :实际为正类的样本中,被正确预测为正类的比例。
    R e c a l l = T r u e P o s i t i v e s ( T P ) T r u e P o s i t i v e s ( T P ) + F a l s e N e g a t i v e s ( F N ) Recall= \frac{True Positives (TP)}{True Positives (TP)+False Negatives (FN)} Recall=TruePositives(TP)+FalseNegatives(FN)TruePositives(TP)

IoU与匹配规则

  • IoU :预测框与真实框的交集面积与并集面积的比值。
    I o U = A r e a o f O v e r l a p A r e a o f U n i o n IoU=\frac{Area of Overlap}{Area of Union} IoU=AreaofUnionAreaofOverlap
  • 如果 IoU 超过某个阈值(通常为 0.5 或其他自定义值),则认为该预测框是 T P I o U TP_{IoU} TPIoU,否则为 F P I o U FP_{IoU} FPIoU

计算 Precision-Recall 曲线

假设我们有一个简单的例子,包含以下数据:

  • 总共有 5 个真实框。
  • 模型输出了 5 个预测框,按置信度排序后的结果如下:
    在这里插入图片描述
    取预测框1的置信度为阈值,则TP = 1, FP = 0;Precision=1/1=1.0,Recall=1/5=0.2;

    取预测框5的置信度为阈值,则TP = 3, FP = 2;Precision=3/5=0.6,Recall=3/5=0.6;

这5个点可以组成PR曲线。

20250520更新

Q:在计算目标检测的mAP的时候,如果当前有100个预测框,而只有5个GT。在分配TP和FP的时候,只要预测框的iou大于阈值,就认为它是TP吗?还是100个预测框按置信度降序排列,按iou分配完5个GT后,剩余的都作为FP?

A:TP和 FP 的分配不是简单地“只要预测框的 IoU 大于阈值就算 TP”,而是需要考虑 置信度排序 和 唯一匹配原则。

  1. 将所有预测框按照置信度得分从高到低排序
  2. 从得分最高的预测框开始,依次与GT进行匹配
    • 如果当前预测框与某个未被匹配的 GT 框的 IoU ≥ 阈值(通常是 0.5),则这个预测框被标记为 TP,同时该 GT 框被“占用”,不能再被其他预测框匹配
    • 如果没有任何未匹配的 GT 框与当前预测框的 IoU ≥ 阈值,那么这个预测框被标记为 FP
  3. 注意!这里的TP和FP实际对应 T P I o U TP_{IoU} TPIoU F P I o U FP_{IoU} FPIoU

计算 AP(曲线下面积)

  • 插值处理 :为了消除 Precision 的波动,通常对 Precision 进行插值处理,即对于每个 Recall 值 r,取大于等于 r 的最大 Precision 值。
  • 积分计算 :对插值后的 Precision-Recall 曲线进行积分,计算曲线下面积。常用的方法包括:
    • 直接数值积分(COCO风格)
    • 使用 11 点插值法(如 VOC 2007 的标准),在 Recall = [0, 0.1, 0.2, …, 1.0] 处取 Precision 值并求平均。

Recall

以COCO计算方式为例,如果是单独考虑recall指标,则指每一类下, T P I o U TP_{IoU} TPIoU和GT数量的比值。并没有考虑置信度阈值,而只考虑根据IoU匹配上来决定TP。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词