如何仅在一个特定类上评估Tensorflow对象检测API?
我已经从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
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)