Pascal VOC 2007
数据集
共20类
9963幅标注图片,分为训练集(2501)、验证集(2510)和测试集(4952)
-
结果提交:
所有图片每类目标的检测结果单独放一个txt文件,每行代表一个检测输出,格式如下:
<image identifier> <confidence> <left> <top> <right> <bottom>
整个文件例如:
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值。
代码实现
读取val中所有图片的airplane类标注信息(包括diff),统计airplane类的目标总数npos(不包括diff)
读取对val所有图片的airplane类的预测结果
按score从高到低排列预测结果,:预测框个数,:初始化为零,:初始化为零
-
遍历预测框,
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。
-
计算PR曲线
fp = cumsum(fp) tp = cumsum(tp) rec = tp / npos prec = tp ./ (fp + tp)
按Pascal VOC 2007方式计算AP。
Pascal VOC 2012
代码实现
1,2,3,4,5步同Pascal VOC 2007的代码实现部分,
第6步按Pascal VOC 2012方式计算AP。