如何仅在一个特定类上评估Tensorflow对象检测API?

如何仅在一个特定类上评估Tensorflow对象检测API?,tensorflow,computer-vision,artificial-intelligence,object-detection-api,faster-rcnn,Tensorflow,Computer Vision,Artificial Intelligence,Object Detection Api,Faster Rcnn,我已经从Tensorflow对象检测APIfaster\u rcnn\u inception\u resnet\u v2\u atrus\u coco培训了大约10个类的对象检测模型。当我运行model_main.py文件来评估模型时,它似乎只给出所有10个类的平均精度(AP)和平均召回率(AR),如下所示: Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.331 Average Precis

我已经从Tensorflow对象检测API
faster\u rcnn\u inception\u resnet\u v2\u atrus\u 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


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

在检测后,添加以下代码以过滤感兴趣的对象-




在检测后,添加以下代码以过滤感兴趣的对象-




迟做总比不做好-发帖

1。使用不同的评估配置

只需将模型的
*.config
文件中的
metrics\u set
值更改为
“pascal\u voc\u detection\u metrics”

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

2。编辑pycocotools包中的
cococoeval.py
文件


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

迟发总比不发好

1。使用不同的评估配置

只需将模型的
*.config
文件中的
metrics\u set
值更改为
“pascal\u voc\u detection\u metrics”

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

2。编辑pycocotools包中的
cococoeval.py
文件


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

我的意思是评估,而不是展示。我认为它在
model_main.py
model_lib.py
中,但我不知道如何修改它们以仅对1个类进行评估。如果模型检测中的类数发生变化,则需要创建具有相同类数的数据集,并相应地训练模型。查看此链接,了解有关如何创建自己的数据集的更多信息-我的意思是评估,而不是显示。我认为它在
model_main.py
model_lib.py
中,但我不知道如何修改它们以仅对1个类进行评估。如果模型检测中的类数发生变化,则需要创建具有相同类数的数据集,并相应地训练模型。有关如何创建自己的数据集的更多信息,请查看此链接-
objectOfInterest = 1  # Interested object class number as per label file 
box = np.asarray(boxes)
cls = np.asarray(classes).astype(np.int32)
scr = np.asarray(scores)
bl = (cls == objectOfInterest) 
classes = np.extract(boolar,cls)
scores = np.extract(boolar,scr)
boxes = np.extract(boolar,box)