深入理解mAP

0 介绍

mAP是目标检测任务最重要的评价指标。
mAP 是mean average precosion的缩写,mean 和 average都是平均的意思, 所以这个指标的计算涉及到2次平均。 mean是对所有类别的平均, 比如VOC 数据有20个类, 每个类别分别计算AP, 再对20个AP计算平均。 那AP中的average是对什么平均呢?这个平均是指对P-R曲线进行积分计算。

那么什么是P-R曲线呢,P-R是指Precion and Recall, 即准确率和召回率。
为什么需要这2个指标一起才能衡量检测效果呢? 其实非常容易理解, 目标检测任务中, 我们希望准确率越高越好, 召回率也是越高越好, 但这两者实际上矛盾的。 想要检测的准确, 少出错,那么漏掉的目标必然就会多;想要不漏掉目标, 那么就要检测出更多的目标,出错的可能性必然更高。 理想情况下, 准确率和召回率都是1, 即一个不漏, 一个不错, 但这是几乎不可能达到的。因此, 采用P-R 曲线下面积积分, 就能综合反应这2个指标。

1 计算方式

那这个指标具体是怎么计算的呢?
首先我们只关注其中一个类别, 忽略其他类别。 比如对某个类别, 我们检测出了100个目标, 而gt是80个。 我们把这100个检测框按置信度从大到小进行排序, 然后从第一个开始与gt进行匹配, 计算Precision值和Recall值。 最终就得到100个P-R值,得到P-R曲线。 按理说到这一步, 已经可以计算出AP值了。但是在VOC和COCO的计算指标里, 对这里其实还做了一些其他处理。

1.1 VOC 的计算方式

在VOC 2007及以前, 会在P-R曲线上采样11个点进行计算, 这11个点是Recall 从0到1, 间隔0.1, 这11个点通过插值的方式得到。 但是只采样11个点, 计算精度较低, 一些小的差别就区分不出来了。 所以从VOC 2008开始, 就不再采用11点采样方式了, 而是用所有点,采用最大值平滑的方式进行处理。

1.2 COCO计算方式

COCO的AP计算是采用采样的方式, 只不过采样点数更多, 是采样101个点, Recall从0到1, 每隔0.01采样一个, 通过插值方式得到采样值。 另外COCO在不同的IOU下都计算了P-R值,VOC固定的取IOU=0.5, COCO的IOU从0.5到0.95,每隔0.05取一个。 因此AP是11个不同IOU下的均值。

同样的方式, 可以得到所有类的AP, 再把所有类的AP平均, 就得到mAP了。

如果严格来说的话, COCO 的mAP可以叫做mmAP了, 有三次平均。 但在论文中, 我们看到的mAP指标直接叫做AP, 其实不那么严谨, 但也没有什么太大歧义,这点要注意甄别。 我觉得直接这么简称是因为COCO 不单独关注某一个类(类太多, 有80个, 也关注不过来), 所以默认就是指所有类别。

COCO指标中, AP是指IOU从0.5到0.95的平均mAP, A P 50 AP_{50} AP50是指IOU=0.5时的mAP, A P 75 AP_{75} AP75是指IOU=0.75时的mAP。

你可能感兴趣的:(基础知识,目标检测,目标跟踪,人工智能,计算机视觉)