PR curve, AP, mAP, AUC, f1-score ??

不同检测网络的性能好坏我们经常使用AP来表示, AP越高表示网络的学习能力越好。那么什么是AP呢? mAP又是什么? AUC又是啥?这里简单做下汇总。

  • True positive(TP)
    检测正确, iou>=threshold

  • False positive(FP)
    检测错误, iou < threshold

  • False Negative(FN)
    漏检, 目标没有被检测到。

  • True Negative (TN)
    意思为正确的漏检, 也就是说, 不是检测目标的地方没有被检测出来, 对于检测网络来说,这个指标没有用。
    PR curve, AP, mAP, AUC, f1-score ??_第1张图片

有了以上基础,那么就有了precision和recall的概念。

  • Accuracy

    accuracy = 预测对的/所有 = (TP+TN)/(TP+FN+FP+TN)

  • Precision
    在这里插入图片描述

  • Recall
    在这里插入图片描述
    如果把Precision和Recall分别作为y和x, 那么可以画在一张图上。
    PR curve, AP, mAP, AUC, f1-score ??_第2张图片
    对于不同的detector可以画一个不同的曲线,那么怎么比较两个曲线哪个好呢? 那么怎么用一个数字就能看出检测的好坏呢? 这是就要考虑AUC(曲线下面积), 对于PR曲线来说, 曲线下的面积称为AP。

  • TPR和FPR
    PR curve, AP, mAP, AUC, f1-score ??_第3张图片
    TPR和FPR计算参考上图

  • ROC 曲线

对于不同的阈值, 我们可以算出不同fp,tp等数值,对应的tpr和fpr也可以得到, 那么把tpr和fpr放在一个坐标系下可以画出下面这张图, 曲线下的面积可以表示出一个模型的性能好坏.PR curve, AP, mAP, AUC, f1-score ??_第4张图片

实现代码可以参考sklearn.metrics.roc_curve.

  • AP计算

下面开始尝试手动计算AP, 对于一个数据集图片总数为5, 总gt bbox个数有15个,用红框表示预测框, 绿色表示gt框。如下图:
PR curve, AP, mAP, AUC, f1-score ??_第5张图片
下面将所有检测框分类为tp和fp, 分类的标准是IOU > threshold, 比如上面的AP50,指的就是这个threshold=50%. 这个例子中,我们使用threshold=30%, 也就是说iou>30%就认为是tp。但是也有一个特例, 比如一个gt box有多个预测框与其iou都大于30%, 那么只有第一个预测框为tp, 剩下的都是fp(参考了VOC 2012 metric计算要求)。按照这么个规则区分tp和fp,我们可以得到下面一个表格。
PR curve, AP, mAP, AUC, f1-score ??_第6张图片
接下来按照confidence排序,则有:
PR curve, AP, mAP, AUC, f1-score ??_第7张图片
可以看出precision和recall递减,一个递增, 画出来如下:
PR curve, AP, mAP, AUC, f1-score ??_第8张图片
至此,我们就得到了一个PR curve, 这种犬牙交错的曲线算AP有两种方法。11点插值法所有点插值法

  • 11点插值法
    故名思意, 从[0, 1]之间均匀采样11点, 用这11个点的precision均值作为ap。
    PR curve, AP, mAP, AUC, f1-score ??_第9张图片
    如图, 红色点为采样点,采样点基本不会刚好落在真实的pr曲线上, 那么采样点的precision就取pr曲线上最近的precision值。

  • 所有点插值法
    PR curve, AP, mAP, AUC, f1-score ??_第10张图片
    如上上, 算出红色曲线下的面积即为AP。

所以,算AP的总过程为:

  1. 所有预测框按照iou 阈值分为tp和fp
  2. 将预测框按照confidence排序,计算出不同confidence下的precision和recall
  3. 按照11点或者全部点插值算法计算出AP。
    论文里经常看到AP50, AP75, APs, APm, APl的等值, 他们是什么意思呢?
  • AP50
    iou 阈值大于0.5时AP值

  • AP75
    iou阈值大于0.75时的AP值

  • APs
    像素面积小于32*32目标框的AP值

  • APm
    像素面积小于32*32 ~96 * 96之间目标框的AP值

  • APl
    像素面积大于96*96的目标框 AP值

  • mAP
    一般AP是指单个类下,mAP则是所有类别AP的平均。

f score

f s c o r e = ( 1 + β 2 ) ∗ P ∗ R / ( β 2 ∗ P + R ) fscore=(1+ β^2)*P*R/(β^2*P + R) fscore=(1+β2)PR/(β2P+R)
β为1即为f1score, 表示P和R一样重要.

参考资料:https://github.com/rafaelpadilla/Object-Detection-Metrics

你可能感兴趣的:(视觉算法,机器学习,算法,人工智能,深度学习)