ap的计算
概念:
TP TN FP FN里面一共出现了4个字母,分别是T F P N。
T是True;
F是False;
P是Positive;
N是Negative。
T或者F代表的是该样本 是否被正确分类。
P或者N代表的是该样本 原本是正样本还是负样本。
TP(True Positives)意思就是被分为了正样本,而且分对了。
TN(True Negatives)意思就是被分为了负样本,而且分对了,
FP(False Positives)意思就是被分为了正样本,但是分错了(事实上这个样本是负样本)。
FN(False Negatives)意思就是被分为了负样本,但是分错了(事实上这个样本是这样本)。
在mAP计算的过程中主要用到了,TP、FP、FN这三个概念。
我们平时所说的Accuracy的计算公式为
TP,TN,FP,FN的确定:
假设我们在数据集上训练了一个识别猫咪的模型,测试集包含100个样本,其中猫咪60张,另外40张为小狗。测试结果显示为猫咪的一共有52张图片,其中确实为猫咪的共50张,也就是有10张猫咪没有被模型检测出来,而且在检测结果中有2张为误检。因为猫咪更可爱,我们更关注猫咪的检测情况,所以这里将猫咪认为是正类(计算谁的ap,谁就是正类):
根据检测到的结果:
如下
有7幅图像,其中15个地面真实对象由绿色边界框表示,24个检测到的对象由红色边界框表示。每个检测到的物体都有一个置信水平,…,Y)。
下表显示了边界框及其相应的置信度。最后一列将检测结果标识为TP或FP。在本例中,如果IOU>30%,否则它就是一个FP。通过查看上面的图像,我们可以大致判断出检测是TP还是FP。(P检测出来的框(红框),N是没有检测出来的物体个数?,不是框(SSD有8732个框)
通过预测的bbox与ground truth的iou确定为正样本或负样本,IOU>30%,为正样本)可通过top-5评估(置信度)来控制框的数量
在一些图像中,有一个以上的检测与ground truth交叉(图中)(图像2、3、4、5、6和7)。对于这些情况,第一次检测被认为是TP,而其他的是FP。PASCAL VOC 2012度量标准应用了此规则:“例如,单个对象的5个检测(TP)被计为1个正确检测和4个错误检测。”
精度x召回曲线是通过计算TP和FP检测的累计,而计算精度和召回率绘制的。首先我们需要根据置信度对检测结果进行排序,然后我们计算每个累积检测的精度和召回率,如下表所示:
TP + FN为图中所有绿框的个数,为15,。
第一行:TP / (TP + FP) = 1 / 1 = 1
TP / (TP + FN) = 1 / 15 = 0.0666
第二行:TP / (TP + FP) = 1 / (1+1) = 0.5
TP / (TP + FN) = 1 / 15 = 0.0666
绘制精度和召回值,我们有以下内容精度x召回曲线:
计算AP: VOC2007的11Point方法(MAXIntegral方法),
VOC2012 Integral方法(Natural Integral方法)
coco的计算方法
不同:
这三种计算AP的方法只是在积分上有不同,计算方法是类似的。11Point方法是在MaxIntegral方法中找到11个最大的Precision,然后结合Recall = [0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],绘制出P-R曲线,并通过如下公式计算出AP:
对于MaxIntegral的方法是:计算所有的MaxPrecision的值,然后进行相加求平均值。
对于Integral的方法是:直接对曲线下的值进行积分(当然实际计算是也是采用相加来积分的,不仅仅是11点,针对每一个precision下降的点都加入计算,计算方法与11点的类似,只是分母不再是11了)。
另外还有COCO数据中计算AP的方法,采用的是IOU(用于决定是否为TP)在[0.5 : 0.05 : 0.95]计算10次AP,然后求均值的方法计算AP。
一、
11点插值平均精度的思想是在一组11个回忆级别(0,0.1,…,1)。插值精度值通过取最大精度获得,其召回值大于其当前召回值,(也就是大于当前召回值的后面曲线的最大精度)如下所示:
通过应用11点插值,我们可以:
二、the interpolation performed in all points
通过插值所有点,平均精度(AP)可以解释为Precision x Recall曲线的近似AUC。 目的是减少曲线中摆动的影响。 通过应用前面介绍的方程式,我们可以获得在这里将要演示的面积。 通过查看从最高(0.4666)到0(从右到左的图)的召回率,我们还可以从视觉上获得内插的精度点,并且随着我们降低召回率,我们会收集最高的精度值 如下图所示:
查看上面的图,我们可以将AUC分为4个区域(A1、A2、A3和A4):
计算总面积,我们有AP:
两种不同插值方法之间的结果略有不同:all points 和11-point interpolation 分别为24.56%和26.84%。
我们的默认实现与VOC PASCAL相同:all points interpolation插值。 如果要使用11-point interpolation,请将使用参数method = MethodAveragePrecision.EveryPointInterpolation的函数更改为method = MethodAveragePrecision.ElevenPointInterpolation。
解:
理论上IOU越低,ap变高或不变,IOU低的时候,预测框更容易与ground trouth匹配,precision及recall一般会增大,当然也有不变的可能性