【目标检测】常用评价指标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)。

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值