我正在尝试合并可可数据集上的某些类以进行评估。我的目标是将“汽车”,“卡车”,“公共汽车”类别合并到新的“车辆”类别中。但是我不想训练一个新模型。以下代码输出对所有80个Coco类别的评估。
from detectron2.evaluation import COCOEvaluator, inference_on_dataset
from detectron2.data import build_detection_test_loader
from detectron2.modeling import build_model
from detectron2.checkpoint import DetectionCheckpointer
model = build_model(cfg)
DetectionCheckpointer(model).load(weights_path)
evaluator = COCOEvaluator("testsetPre_val", cfg, False, output_dir="./output/")
val_loader = build_detection_test_loader(cfg, "testsetPre_val")
inference_on_dataset(model, val_loader, evaluator)
有什么建议吗?
答案 0 :(得分:0)
那么,对此的简单解决方案是让模型预测“汽车”,“公共汽车”和“卡车”。但是,在绘制边界框之前,将标签编辑为“车辆”。
在将检测到的对象传递到TensorFlow的“ visutil”函数周围绘制边界框之前,只需执行简单的if-else语句即可:
if label in ["car", "buses", "trucks"]:
label="vehicles"
如果您不想重新训练模型,这是唯一的方法。
但是,如果您想重新训练模型,请将“公共汽车”,“卡车”和“汽车”的标签更改为仅“车辆”。