如何为Pascal VOC排行榜的检测任务计算mAP(平均平均精度)?http://host.robots.ox.ac.uk:8080/leaderboard/displaylb.php?challengeid=11&compid=4
那里说-在第11页:http : //homepages.inf.ed.ac.uk/ckiw/postscript/ijcv_voc09.pdf
平均精度(AP)。对于VOC2007挑战,使用插值平均精度(Salton和Mcgill 1986)来评估分类和检测。对于给定的任务和类别,从方法的排序输出中计算出精度/召回曲线。召回率定义为排名高于给定等级的所有阳性示例的比例。精确度是高于该等级的所有示例中来自肯定类别的比例。AP汇总了精度/召回曲线的形状,并定义为一组11个等距召回级别[0,0.1,...,1]的平均精度:
AP = 1/11 ∑ r∈{0,0.1,...,1} pinterp(r)
通过采用针对相应召回率超过r:的方法测得的最大精度来内插每个召回级别r的精度
pinterp(r) = max p(r˜)
,其中p(r〜)是在召回〜r时测得的精度
有关地图:http://0agr.ru/wiki/index.php/Precision_and_Recall#Average_Precision
这是否意味着:
我们计算精度和召回率:
- A)对于许多不同的值,
IoU
> {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}
我们计算真/假正/负值
其中
True positive = Number_of_detection with IoU > {0, 0.1,..., 1}
,这里说:/datascience//a/16813/37736然后我们计算:Precision = True positive / (True positive + False positive)
Recall = True positive / (True positive + False negative)
- A)对于许多不同的值,
B)或者对于许多不同的检测算法阈值,我们计算:
Precision = True positive / (True positive + False positive)
Recall = True positive / (True positive + False negative)
当
True positive = Number_of_detection with IoU > 0.5
这里说:/programming//a/43168882/1558037
C)或者对于许多不同的检测算法阈值,我们计算:
Precision = Intersect / Detected_box
Recall = Intersect / Object
- 然后我们计算AP(平均精度)为平均11个值
Precision
在点,其中Recall = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}
,即AP = 1/11 ∑ recall∈{0,0.1,...,1} Precision(Recall)
(通常,对于每个点,例如0.3,我们得到Recall <= 0.3的Precision最大值,而不是此时Recall = 0.3的Precision值)
- 而且,当我们仅针对所有图像上的1个对象类计算AP时- 例如,仅获得的AP(平均精度)
air
。
因此AP是积分(曲线下的面积):https : //stats.stackexchange.com/a/157019/111998
但是,当我们为所有图像上的所有对象类计算AP时-那么我们将获得所有图像数据集的mAP(平均平均精度),例如,88.6
对于R4D_faster_rcnn:http ://host.robots.ox.ac.uk:8080/leaderboard /displaylb.php?challengeid=11&compid=4
问题:
- 是的,如果不是,那么如何计算Pascal VOC Challenge的mAP?
- 在第1段中,三个公式(A,B或C)中的哪个公式对于计算“精确度”和“召回率”是正确的?
简短答案:
- mAP = AVG(每个对象类的AP)
- AP = AVG(11次召回中的每个召回的精度{precision = 0、0.1,...,1})
- PR曲线=精确度和调用率(对于“预测”边界框中的每个阈值)
- 精度= TP /(TP + FP)
- 召回率= TP /(TP + FN)
- TP = IoU> 0.5的检测次数
- FP = IoU <= 0.5或多次检测的检测次数
- FN =未被检测到或被IoU <= 0.5检测到的对象数