测试数据集上的 Tensorflow 对象检测模型评估

我已经微调了Model Zoo上可用的 fast_rcnn_resnet101 模型来检测我的自定义对象。我将数据分成训练和评估集,并在训练时在配置文件中使用它们。现在训练完成后,我想在一个看不见的数据(我称之为测试数据)上测试我的模型。我使用了几个函数,但无法确定使用 tensorflow 的 API 中的哪些代码来评估测试数据集的性能。以下是我尝试过的事情:

  1. 我使用 object_detection/metrics/offline_eval_map_corloc.py 函数对测试数据集进行评估。代码运行良好,但对于大中型边界框,我使用负值或 AR 和 AP。

平均精度 (AP) @[ IoU=0.50:0.95 | 面积=全部| maxDets=100] = 0.459

平均精度 (AP) @[ IoU=0.50 | 面积=全部| maxDets=100] = 0.601

平均精度 (AP) @[ IoU=0.75 | 面积=全部| maxDets=100] = 0.543

平均精度 (AP) @[ IoU=0.50:0.95 | 面积=小| maxDets=100] = 0.459

平均精度 (AP) @[ IoU=0.50:0.95 | 面积=中等 | maxDets=100 ] = -1.000

平均精度 (AP) @[ IoU=0.50:0.95 | 面积=大| maxDets=100 ] = -1.000

平均召回率 (AR) @[ IoU=0.50:0.95 | 面积=全部| maxDets= 1 ] = 0.543

平均召回率 (AR) @[ IoU=0.50:0.95 | 面积=全部| maxDets= 10 ] = 0.627

平均召回率 (AR) @[ IoU=0.50:0.95 | 面积=全部| maxDets=100] = 0.628

平均召回率 (AR) @[ IoU=0.50:0.95 | 面积=小| maxDets=100] = 0.628

平均召回率 (AR) @[ IoU=0.50:0.95 | 面积=中等 | maxDets=100 ] = -1.000

平均召回率 (AR) @[ IoU=0.50:0.95 | 面积=大| maxDets=100 ] = -1.000

现在,我知道 mAP 和 AR 不能为负数,并且有问题。我想知道为什么我在测试数据集上运行离线评估时会看到负值?


慕勒3428872
浏览 243回答 3
3回答

慕姐4208626

评估指标采用 COCO 格式,因此您可以参考 COCO API 了解这些值的含义。如 coco api code 中所指定,-1如果类别不存在,则为默认值。在您的情况下,检测到的所有对象仅属于“小”区域。此外,“小”、“中”和“大”的区域类别取决于此处指定的区域所采用的像素。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python