2021-11-30 目标检测评价指标

Pascal VOC 2007

数据集

  • 共20类

  • 9963幅标注图片,分为训练集(2501)、验证集(2510)和测试集(4952)

  • 结果提交:

    所有图片每类目标的检测结果单独放一个txt文件,每行代表一个检测输出,格式如下:

    整个文件例如:

    comp3_det_test_car.txt:

    000004 0.702732 89 112 516 466
    000006 0.870849 373 168 488 229
    000006 0.852346 407 157 500 213
    000006 0.914587 2 161 55 221
    000008 0.532489 175 184 232 201       
    

评估

  • 检测任务通过PR曲线(precision/recall curve)评价,主要的定量测量为AP(average precision)。

  • 预测框和真实边界框(ground truth bounding box)的IoU值超出50%时认为其为一个正确的预测,其中

  • 一幅图片内的一个目标的多个预测被记为一个为正确预测,其他为错误预测。

工具包(Development Kit)

  • 安装,将数据放到工具包目录中,详看工具包pdf文档

  • 检测器例子

    example_detector.m包含了一个完整检测任务实现。其在train set训练一个检测器,然后应用到val set得到一个满足格式的结果文件,最后绘制出PR曲线和得到AP值。

代码实现

  1. 读取val中所有图片的airplane类标注信息(包括diff),统计airplane类的目标总数npos(不包括diff)

  2. 读取对val所有图片的airplane类的预测结果

  3. 按score从高到低排列预测结果,:预测框个数,:初始化为零,:初始化为零

  4. 遍历预测框,for d = i:nd

    找到预测框`d`对应的图片`i`
    
    遍历图片`i`中airplane类的目标框,`for j = 1:size(gt(i))`
    
        找到最大的IOU值及对应的目标框`j`
    
    如果IOU大于等于阈值(0.5)、目标框`j`非diff、目标框`j`未被匹配,则
    
        $tp(d)=1$,标记目标框`j`被匹配
    
    如果IOU大于等于阈值(0.5)、目标框`j`非diff、目标框`j`被匹配,则
    
        $fp(d)=1$
    
    如果IOU大于等于阈值(0.5)、目标框`j`是diff,则
    
        标记目标框`j`被匹配
    
    如果IOU小于阈值,则
    
        $fp(d)=1$
    

    注:1.预测框匹配到diff目标框时fp,tp都不统计;2.预测框匹配到已经被匹配的目标框时,此目标框也记为fp。

  5. 计算PR曲线

    fp = cumsum(fp)
    tp = cumsum(tp)
    rec = tp / npos
    prec = tp ./ (fp + tp)
    
  6. 按Pascal VOC 2007方式计算AP

Pascal VOC 2012

代码实现

1,2,3,4,5步同Pascal VOC 2007的代码实现部分,

第6步按Pascal VOC 2012方式计算AP

COCO

你可能感兴趣的:(2021-11-30 目标检测评价指标)