mAP是目标检测中的基本指标,详细理解有助于我们评估算法的有效性,并针对评测指标对算法进行调整。
对于目标检测来说,IoU大于阈值、检测到框算作是positive;
对每个样本的检测可以通过上面TP/FP/FN的计数来计算出精度与召回率。
Precision精度,即TP/(TP+FP)。指所有结果中正确的检索所占比例。结果中包含了真阳性结果TP和假阳性结果FP。其含义为所有被预测为正类的结果(其中也包含了被错误预测成正类的FP)中预测正确的结果所占比例。Precision=TPTP+FPPrecision=\frac{TP}{TP+FP}Precision=TP+FPTP
Recall召回率,即TP/(TP+FN)。指模型查找出正确对象的概率。其中包含了正确预测的正类TP,也包括了将正类错误预测成负类的FN。召回率的本质可以理解为查全率,即结果中的正样本占全部正样本的比例。Recall=TPTP+FNRecall=\frac{TP}{TP+FN}Recall=TP+FNTP
AP均匀精度AveragePrecision:PR曲线下所围成的面积,面积越大越好;这里的average指的是针对不同recall的平均精度。
mAP平均均匀精度,meanAveragePrecision,指各类计算出AP在不同类别上的均值。这里的mean指的是对于检测算法在数据集上各类对象的表现。
要计算mAP,首先需要计算每一个类别的AP值,主要有两种方法来计算PR曲线下的均值。
那么此时我们可以看到,这是十个独立的框框,其中正例为TP=7(0,1,4,6,7,8,10,11),负例FP=5(2,3,5,9,重复检测的8也算),GT10(一共有八个GT=1)没有检测到那么FN=1.所以根据上面的计算公式我们将按照执行度排序后给出对应的精度和召回率:
随后计算AP,选取Recall>=[0:0.1:1]精度最大值:1,1,1,0.8,0.8,0.8,0.71,0.6,0.54.0,0,。AP=sum(1,1,1,0.8,0.8,0.8,0.71,0.6,0.54.0,0)/11=0.66.随后,对于猫猫、狗狗、浣熊、熊猫等等各个类别的AP都求出来以后在类别上做平均就是mAP值了。
mAP指的是对所有类别都计算好AP,然后在类别上求平均即可得到mAP∑classinAPi\sum^{n}_{class_i}AP_iclassi∑nAPi