目标检测中平均精度MAP理解

一副图像的人为标注框,我们称之为GT-Boxes(Ground-Truth),而我们使用算法估计的框,为predictions,称之为PBoxes,前者简写为GTs,后者简写为PBs。

如何评价检测器在某个数据集上的平均精度呢(MAP)?

我们进行如下定义:

GTs(c)代表第c类的GTs,而PBs(c)代表第c类算法检测输出的PBs。

  1. 将PBs(c)按照置信度(每个输出结果算法都会由一个置信度进行评价)降序排列;
  2. 对每一个PBs(c)都找一个与之IOU(交并比,Intersection-over-Union)最大的GT,如果其IoU的比值超过设定的阈值,例如0.5,且该GT还没有被检测到过(匹配过),则该检测结果被判定为正例(TP),而如果该GT已经被检测到过,说明该目标被重检了(DP),在定义中,我们将重检也定义为错误(FP)。如果最大IoU没有超过阈值,则人为检测失败,该检测结果也被判定为FP。

针对每张图片,对所有类进行同样处理,这样就搜集到了所有检测结果TP/FP标记。

当运行完整个数据集后,我们搜集到了所有图片的所有检测结果的TP/FP标记。注意在整个运行过程中,每张图片的每个类的GTs数量也回进行搜集,因此整个数据集的每个类别的GTs数量也进行了统计。最后,我们将所有的检测结果按照置信度进行降序排血,并从尾端开始进行统计。

我们首先定义两个指标:(假定GTs的数量为G)

精度(P):同时提出的所有检测结果中,正例的比例(TP / TP+FP)

召回(R):提出的所有检测结果中,GTs中被检测到的比率,TP / G

前者确定了误检率,后者确定了检出率。P和R通过积分法即可得出平均精度(AP)。

最后,我们统计所有类别的AP,得出整个检测器的平均检测精度(mAP)。

你可能感兴趣的:(deeplearning,object,detection)