首页 > 解决方案 > 如何仅在一个特定类上评估 Tensorflow 对象检测 API?

问题描述

我已经使用 Tensorflow 对象检测 APIfaster_rcnn_inception_resnet_v2_atrous_coco在大约 10 个类上训练了一个对象检测模型。当我运行model_main.py文件来评估模型时,它似乎只给出了所有 10 个类的平均平均精度 (AP) 和平均召回率 (AR),如下所示:

Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.331
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.479
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.395
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.600
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.407
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.333
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.358
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.544
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.548
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.600
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.545
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.551

但是,如果我只想评估 1 个特定类的性能,而不是所有 30 个检测到的类,我该怎么办?

标签: tensorflowcomputer-visionartificial-intelligenceobject-detection-apifaster-rcnn

解决方案


迟到总比没有好 - 来自这篇文章

1.使用不同的评估配置

只需将模型文件中的metrics_set值更改为.*.config"pascal_voc_detection_metrics"

TensorFlow 对象检测 API 支持各种评估指标,详见此处的文档。PASCAL VOC 2010 检测指标给出了每个类别的 AP 分数。

2. 编辑cocoeval.pypycocotools 包中的文件

此方法涉及将 8 行代码粘贴到cocoeval.py文件中。在这篇文章中有很好的解释和记录。


推荐阅读