MAP在目标检测和图像检索中的计算(详细)

前言:该博客没有进行IOU Precision Recall等指标的计算讲解,默认这些基本知识已经掌握,这里只对 map 中比较难懂且和其他博客中存在歧义的部分进行讲解。

目标检测中的 map 计算:

举个栗子:

Image 1:预测出了5个框(在一定的阈值下,且经过了NMS等处理),真实的标注信息只有三个框(也就是只能有3个correct 框),将5个预测框通过置信度进行排序,然后分别从上至下计算 precision 和 recall ,得到这些值就可以绘制 P-R 曲线了,计算面积就是最终的AP值(这里计算的就是该张图像的AP值,一般以batch为单位计算)。
在这里插入图片描述
上面提到的说计算P-R曲线围成的面积,这里有一点需要注意,直接计算面积比较麻烦,常见的作法是进行平滑,recall的值不动(x 轴),将precision 的值用其之后的最大值进行替换,类似下面这样:

原始 P-R 曲线:

原始 P-R 曲线

平滑后 P-R 曲线:

纠正后的 P-R 曲线
使用 11 点法进行 AP 的计算(或者直接计算也可以):
11点法的计算: (41+60.75+0.6*1)/11 = 0.827

note: 一个 batch 内的怎么计算,将所有图像的 预测框输出按照 置信度 进行排序,然后进行同样的计算。

二、图像检索中的 map 计算:

map@5:其表达的意思和 top-5 相同,前五个预测概率输出的 map

计算方式和上述一样,但是有一点不一样的是:预测输出和真实的label都是固定的大小,比如在目标检测(OB)中,真实框的个数和预测框的个数往往是不相同的,但是这里一般是相同的,即人工取前五个。
这里说一个特殊的例子:(非特殊的和上述计算方式相同)
特殊且常见场景:在五个预测输出中只有一个正确(比如输出为:五个人的名字ID,其中只有一个是正确的,或者输出为五个类别:狗猫飞机等,但真实的只属于其中的一个)

计算方式直接计算 precision 即可,如下图:
在这里插入图片描述
参考资料:kaggle中一个 whale 计算方式notebook资料链接

你可以尝试用上述目标检测中提到的方式进行计算,结果是一样的,其中的道理也是一样的,只不过简化了计算流程(在很多的博客中介绍的AP就是这样的计算方式-因为这种场景很常见)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值