【目标检测】常用评价指标mAP


参考: https://www.zhihu.com/question/53405779/answer/3270357481

博士论文:复杂场景下高精度有向目标检测的研究_杨学

1.IoU

IoU(Intersection over union),中文称为“交并比”,用于衡量两个区域之间重叠部分的相对大小。在目标检测中,常用IoU来衡量预测框和真实框的重叠程度,交并比越大表示重叠程度越高,即预测框越接近真实框,预测越准确。IoU的计算公式如下:
I o U = area of overlap area of union IoU = \frac{\text{area}\ \text{of} \ \text{overlap}} {\text{area}\ \text{of} \ \text{union}} IoU=area of unionarea of overlap
假设预测框为A,真实框为B,则IoU的计算方法如下:
I o U = A ∩ B A ∪ B IoU = \frac{A\cap B}{A\cup B} IoU=ABAB

2.Precision & Recall

在介绍Precision(精确度)和Recall(召回率)之前,需要先了解机器学习二分类问题中常用的混淆矩阵,如下图

请添加图片描述

  • TP (True Positive): 指预测为正且真实值也为正;
  • FN (False Negative): 指预测为负但真实值为正;
  • FP (False Positive): 指预测为正但真实值为负;
  • TN (True Negative): 指预测为负且真实值也为负。

(T开头即预测正确,F开头即预测错误,FN表示预测成了负,但实际为正。)

在理解混淆矩阵后,即可计算Precision和Recall,其计算公式如下:
P r e c i s i o n = T P T P + F P R e c a l l = T P T P + F N Precision = \frac{TP}{TP+FP} \\ Recall = \frac{TP}{TP+FN} Precision=TP+FPTPRecall=TP+FNTP
精确度Precision表示模型预测的正确率,即网络预测为正确的样本中,实际有多少是正确的(找的准不准

召回率Recall表示模型预测的查全率,即网络预测到的正确样本中,占实际正样本的比例(找的全不全

  • Precision和Recall是一对矛盾的指标:为了提高精确度Precision,我们需要提高网络预测的置信度,即有把握的时候才将某样本预测为正样本,而这样做无疑会减少模型预测正样本的数量,导致召回率Recall下降。
3.AP与mAP

在计算AP之前,通常会创建一条Precision-Recall曲线(PR曲线)。

该曲线用于衡量不同置信度(Confidence)阈值下Precision和Recall之间的关系。(注:这里的置信度是由模型输出的结果,并不是IoUIoU阈值是用来判断预测框是否为TP的)。如下是一条PR曲线的示意图,该曲线也反映了Precision和Recall之间的矛盾关系。

请添加图片描述

计算公式如下:
A P i = ∫ 0 1 P i ( R i )   d R ,   m A P = 1 N c l s ∑ i = 0 N c l s A P i AP_i=\int_0^1 P_i(R_i) \,{\rm d}R,\ mAP = \frac{1}{N_{cls}}\sum_{i=0}^{N_{cls}}AP_i APi=01Pi(Ri)dR, mAP=Ncls1i=0NclsAPi
其中 N c l s N_{cls} Ncls表示目标类别数量。

AP在实际代码实现中常常用近似计算的方式来加速计算,常用的计算方式方式有三种:

  • VOC2007: 11 个点的插值平均精度 (11-Point Interpolated Average Precisio)。

    具体做法是先设定一组阈值 [0, 0.1, 0.2, …, 1],然后对于 Recall 大于每一个阈值时均会得到一个对应的最大 Precision,最后这 11 个 Precision 的平均值就是最终的 AP。

  • VOC2012: 全插值方法。

​ 假设 N 个样本中有 M 个正例,会先得到 M个 Recall 值 (1/M, 2/M, ⋯, M/M),然后 Recall 值 大于每一个阈值(如 3/M)均可以得到一 个最大 Precision,这样就得到了 M 个最大 Precision,最后对这 M 个 Precision 值取平均即可得到 AP。

  • COCO

​ 在AP曲线上采样100个点进行计算,而且IoU阈值在0.5~0.95的区间上,每隔0.05计算一次AP,最后取所有结果的平均值,相当于在 0.95 − 0.5 0.05 + 1 = 10 \frac{0.95-0.5}{0.05}+1=10 0.050.950.5+1=10条PR曲线上,每条都取100个点,一共对共1000个点取平均。

COCO数据集中各项评价指标的含义如下:

  • A P AP AP : 采用COCO数据集标准计算的得到的mAP
  • A P 50 AP_{50} AP50 : IoU阈值为0.5时的mAP(一般标准)
  • A P 75 AP_{75} AP75 : IoU阈值为0.75时的mAP(较为严格的标准)
  • A P s AP_{s} APs : 像素面积小于 3 2 2 32^2 322 的目标框的mAP
  • A P M AP_M APM : 像素面积在 3 2 2 ∼ 9 6 2 32^2\sim 96^2 322962的目标框的mAP
  • A P L AP_L APL : 像素面积大于 9 6 2 96^2 962的目标框的mAP

注:对于目标检测任务中的每个标注框,只能有一个检测结果可以被视为它们的TP。如果有多个检测结果满足TP的条件,则选择与标注框具有最大 IoU 的检测结果作为 TP,而其他结果则被视为假正例 (False Positive, FP)。如果一个标签框没有匹配到任何一个估计框,那么这个标签框就没有被成功检测出来,该标签框被称为假负例 (False Negative, FN)。

### 目标检测常用评价指标详解 #### 平均精度 (Average Precision, AP) AP 是目标检测中非常重要的一个评价指标,表示的是 **Precision-Recall 曲线下方的面积**。对于一个好的分类器而言,其 AP 值通常较高[^3]。在实际计算过程中,AP 反映了一个特定类别下模型的表现情况。 #### Mean Average Precision (mAP) mAP 则是对多个类别的 AP 进行平均后的结果,用来综合评估模型在整个数据集上的性能。具体来说,它是通过对每个类别单独计算 AP 后再取平均值得到的结果[^4]。这种设计使得 mAP 能够更好地反映多类别场景下的检测效果以及不同类别间的平衡性。 #### 精确率 (Precision) 精确率定义为真正例数量占预测正例总数的比例,即 \( \text{Precision} = \frac{\text{TP}}{\text{TP}+\text{FP}} \),其中 TP 表示真阳性样本数,FP 表示假阳性样本数。高 Precision 意味着模型很少错误地标记负样本为正样本[^5]。 #### 召回率 (Recall) 召回率是指被正确识别出来的正样例数目占所有真实正样例总比例,表达式为 \( \text{Recall} = \frac{\text{TP}}{\text{TP}+\text{FN}} \),这里 FN 是指未检出的实际正样本的数量。较高的 Recall 显示该算法能够有效地找到尽可能多的相关实例。 #### 交并比 (Intersection over Union, IOU) IOU 度量用于判断两个边界框重叠程度的一个标准方法,在目标定位任务里尤其重要。它的基本原理是比较预测框和地面实况之间区域大小的关系,当且仅当 IOU 大于设定阈值时才认为两者匹配成功[^2]。 ```python def compute_iou(boxA, boxB): # determine the coordinates of the intersection rectangle xA = max(boxA[0], boxB[0]) yA = max(boxA[1], boxB[1]) xB = min(boxA[2], boxB[2]) yB = min(boxA[3], boxB[3]) # compute the area of intersection rectangle interArea = max(0, xB - xA + 1) * max(0, yB - yA + 1) # compute the area of both boxes boxAArea = (boxA[2] - boxA[0] + 1) * (boxA[3] - boxA[1] + 1) boxBArea = (boxB[2] - boxB[0] + 1) * (boxB[3] - boxB[1] + 1) iou = interArea / float(boxAArea + boxBArea - interArea) return iou ``` 以上这些指标共同构成了现代目标检测领域内的核心评测体系,帮助研究者们更全面地分析模型优劣之处。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值