美文网首页
目标检测之评论指标

目标检测之评论指标

作者: blackmanba_084b | 来源:发表于2019-10-10 17:59 被阅读0次

    目标检测指标主要有两项一个是AP一个就是mAP。

    一、 AP(Average Precision)


    1、我们就拿faster rcnn预测出的bounding box进行举例。

    a. 首先将模型预测的结果进行置信度筛选,选择置信度高的bounding box。
    b. 第二步,我们会对预测结果通过置信度进行降序排列,形成排列rank。
    c. 第三步, 给定rank级别,计算recall以及precision。
    d. 第四步, 计算AP

    * 这里需要强调的是第四步计算AP的过程:

    VOC 计算过程
    VOC2010以前 只需要选取当Recall >= 0, 0.1, 0.2, …, 1共11个点时的Precision最大值,即当recall>0时,Precision的最大值,当recall>0.1时Precision的最大值,依次类推。然后AP就是这11个Precision的平均值。
    VOC2010之后 需要针对每一个不同的Recall值(包括0和1),选取其大于等于这些Recall值时的Precision最大值,然后计算PR曲线下面积作为AP值。
    2. 示例
    Rank Rrecision Recall 计算过程
    Rank = 1 Precision = 1.00 Recall = 0.14 表示只预测出来了一个框BB1,这个框BB1恰好是和ground truth的IoU > 0.5,所以可以作为一个TP。TP=1,没有预测出错误的飞机,所以FP=0,但是实际上一共有5+2=7个真值飞机(这里的2没有表示出来,是confidence score低于0.5即还有BB10 以及BB11),所以相当于漏检了6个飞机,即FN=6,。因此,可以计算出Precision=1/1=1;Recall=1/7=0.14
    Rank=2 Precision=1.00 Recall=0.29 表示预测出来了两个框BB1和BB2,BB1和BB2和ground truth的IoU > 0.5,所以都可以作为TP。TP=2,没有预测出错误的飞机,所以FP=0,但是实际上一共有5+2=7个真值飞机,所以相当于漏检了5个飞机,即FN=5,。因此,可以计算出Precision=2/2=1;Recall=2/7=0.29
    Rank=3 Precision=0.66 Recall=0.29 表示预测出来了三个框BB1、BB2和BB3,BB1和BB2和ground truth的IoU > 0.5,所以都可以作为TP。TP=2,BB3预测错误,所以FP=1,但是实际上一共有5+2=7个真值飞机,所以相当于漏检了5个飞机,即FN=5,。因此,可以计算出Precision=2/3=0.66;Recall=2/7=0.29
    Rank=4 Precision=0.50 Recall=0.29 ...
    Rank=5 Precision=0.40 Recall=0.29 ...
    Rank=6 Precision=0.50 Recall=0.43 ...
    Rank=7 Precision=043 Recall=0.43 ...
    Rank=8 Precision=0.38 Recall=0.43 ...
    Rank=9 Precision=0.44 Recall=0.57 ...
    Rank=10 Precision=0.50 Recall=0.71 ...
    • VOC2010之前的做法
    Recall 条件 Prercision最大值
    Recall >= 0时 Percision最大为1
    Recall >= 0.1时 Percision最大为1
    Recall >= 0.2时 Percision最大为1
    Recall >= 0.3时 Percision最大为0.5
    Recall >= 0.4时 Percision最大为0.5
    Recall >= 0.5时 Percision最大为0.5
    Recall >= 0.6时 Percision最大为0.5
    Recall >= 0.7时 Percision最大为0.5
    Recall >= 0.8时 Percision最大为0
    Recall >= 0.9时 Percision最大为0
    Recall >= 1时 Percision最大为0

    此时Aeroplane类别的 AP = 5.5 / 11 = 0.5。

    • VOC2010之后的做法
      对于Recall >= 0, 0.14, 0.29, 0.43, 0.57, 0.71, 1,我们选取此时Percision的最大值:1, 1, 1, 0.5, 0.5, 0.5, 0。此时Aeroplane类别的 AP = (0.14-0)1 + (0.29-0.14)1 + (0.43-0.29)0.5 + (0.57-0.43)0.5 + (0.71-0.57)0.5 + (1-0.71)0 = 0.5

    mAP(mean Average Precision)

    mAP 就是所有类别的 AP 的均值.

    • 当我们计算 mAP 值时,需要注意一些 “点”:
      mAP 的计算通常都是在一个数据集上计算的。

    • 尽管很难去解释模型的绝对性能,但 mAP 作为一个较好的相对指标,有助于评价模型。当我们在一些流行的公开数据集上计算该指标时,可以很容易地使用 mAP 去比较目标检测新旧算法的性能。

    • 根据训练集的类别分布情况,不同类别的 AP 值可能会出现较大差异(训练数据较好的类别有较高的 AP 值,训练数据不好的类别有较低的 AP 值)。所以你的 mAP 可能是稳健的,但是你的模型可能对某些类别的效果较好,对于某些类别的效果不好。因此在分析模型时,建议去查看下各类别的 AP 值。这些值可以作为添加训练数据的一个参考指标。

    参考

    1. 目标检测评价指标Precision Recall AP mAP

    相关文章

      网友评论

          本文标题:目标检测之评论指标

          本文链接:https://www.haomeiwen.com/subject/wuaopctx.html