合并 COCO 数据集中的某些类别
Merging certain categories from COCO dataset
我正在尝试合并 coco 数据集上的某些 类 以进行评估。我的目标是将类别 "cars"、"trucks"、"bus" 合并到一个新类别 "vehicles"。但我不想训练新模型。以下代码输出所有 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)
有什么建议吗?
好吧,解决这个问题的简单方法是,让模型预测 "cars"、"buses" 和 "trucks"。但在绘制边界框之前将标签编辑为 "vehicles"。
在通过将检测到的对象传递给 TensorFlow 的 "visutil" 函数来围绕检测到的对象绘制边界框之前,只需使用一个简单的 if-else 语句:
if label in ["car", "buses", "trucks"]:
label="vehicles"
如果您不想重新训练模型,这是唯一的方法。
但是,如果您想重新训练模型,请将 "buses"、"trucks" 和 "cars" 的标记更改为 "vehicles"。
我正在尝试合并 coco 数据集上的某些 类 以进行评估。我的目标是将类别 "cars"、"trucks"、"bus" 合并到一个新类别 "vehicles"。但我不想训练新模型。以下代码输出所有 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)
有什么建议吗?
好吧,解决这个问题的简单方法是,让模型预测 "cars"、"buses" 和 "trucks"。但在绘制边界框之前将标签编辑为 "vehicles"。
在通过将检测到的对象传递给 TensorFlow 的 "visutil" 函数来围绕检测到的对象绘制边界框之前,只需使用一个简单的 if-else 语句:
if label in ["car", "buses", "trucks"]:
label="vehicles"
如果您不想重新训练模型,这是唯一的方法。
但是,如果您想重新训练模型,请将 "buses"、"trucks" 和 "cars" 的标记更改为 "vehicles"。