目标检测算法评价指标——mAP值

mAP值即为平均精度,是衡量目标检测算法优劣的常用指标。
AP(平均精度)是衡量目标检测算法好坏的常用指标,在Faster R-CNN,SSD等算法中作为评估指标。
AP等于recall值取0-1时,precision值的平均值。

Precision & Recall(查准率和查全率)

概念

Precision:衡量你的模型预测准确度。即预测的数目中正确的百分比。

例:你预测100个图片是苹果,其中80个真的是苹果,那么你的Precision为0.8

recall:召回表示预测正确的目标数量。

例:总共有100张苹果图片,你成功找到其中50张,那么你的recall为0.5

定义

以二分类结果为例:

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)假正例(false positive)真反例(true negative)假反例(false negative)四种情形,令TPFPTNFN分别表示其对应的样例数,则显然有TP+FP+TN+FN=样例总数。分类结果的“混淆矩阵”(confusion matrix)如表所示:

查准率P和查全率R分别定义为:

$ P = \frac{TP}{TP+FP}$ $R = \frac{TP}{TP+FN}$

一般来说查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

平衡点(BER):查准率=查全率时的取值,用来比较模型好坏.

交并比(IoU)

IoU是预测框与ground truth的交集和并集的比值。

为了计算precision和recall,与所有机器学习问题一样,我们必须鉴别出True Positives(真正例)、False Positives(假正例)、True Negatives(真负例)和 False Negatives(假负例)。

假设边界框对应的IoU大于某个阈值(一般来说,比较常用的IoU阈值是0.5),我们就可以说这个预测的边界框是对的,或者说可以被划分为TP中。反之如果IoU小于阈值,那么这个预测的边界框就是错的,或者说是一个FP。如果对于图像中某个物体来说,我们的模型没有预测出对应的边界框,那么这种情况就可以被记为一次FN。

  • True Positive (TP): IOU>=阈值的检测框
  • False Positive (FP): IOU<阈值的检测框
  • False Negative (FN): 未被检测到的GT
  • True Negative (TN): 忽略不计

对于每一个图片,ground truth数据会给出该图片中各个类别的实际物体数量。我们可以计算每个Positive预测框与ground truth的IoU值,并取最大的IoU值,认为该预测框检测到了那个IoU最大的ground truth。然后根据IoU阈值,我们可以计算出一张图片中各个类别的正确检测值(True Positives, TP)数量以及错误检测值数量(False Positives, FP)。

既然我们已经得到了正确的预测值数量(True Positives),也很容易计算出漏检的物体数(False Negatives, FN)。

AP值

定义

PR曲线下面积的近似,是一个0~1之间的数值,也可用来衡量模型的performance

  • PR曲线比较直观,但由于曲线的上下震荡,不方便比较不同模型的PR曲线
  • AP是一个数字,模型的AP大,则模型更好,方便比较不同模型

计算方法

计算AP值,一般有两种方法:

  1. 11点插值法:

    选取当Recall >= 0, 0.1, 0.2, …, 1共11个点时的Precision最大值,AP是这11个Precision的平均值,此时只由11个点去近似PR曲线下面积。
    $$
    AP = \frac{1}{11}\sum_{r\in(0,0,,1…1)}\rho_{interp(r)}
    $$

    $$
    \rho_{interp(r)} = max_{\widetilde{r}:\widetilde{r}\geq{r}}\rho(\widetilde{r})
    $$

  2. 所有点插值法:

    针对每一个不同的Recall值(包括0和1),选取其大于等于这些Recall值时的Precision最大值,然后计算PR曲线下面积作为AP值:
    $$
    \sum_{r=0}^{1}(r_{n+1}-r_n)\rho_{interp}(r_{n+1})
    $$

    $$
    \rho_{interp(r)} = max_{\widetilde{r}:\widetilde{r}\geq{r}}\rho(\widetilde{r})
    $$

    由于此方法用了所有点去近似PR曲线下面积,计算的AP比11点插值法更准确。

mAP(mean Average Precision, 即各类别AP的平均值)

对于各个类别,分别按照上述方式计算AP,取所有类别的AP平均值就是mAP。这就是在目标检测问题中mAP的计算方法。可能有时会发生些许变化,如COCO数据集采用的计算方式更严格,其计算了不同IoU阈值和物体大小下的AP.

在评测时,COCO评估了在不同的交并比(IoU)[0.5:0.05:0.95]共10个IoU下的AP,并且在最后以这些阈值下的AP平均作为结果,记为mAP@[.5, .95]。

而在Pascal VOC中,检测结果只评测了IOU在0.5这个阈值下的AP值。因此相比VOC而言,COCO数据集的评测会更加全面:不仅评估到物体检测模型的分类能力,同时也能体现出检测模型的定位能力。因此在IoU较大如0.8时,预测框必须和真实的框具有很大的重叠比才能被视为正确。