如何注册数据集以与 detectron2 一起使用?我们有 COCO JSON 格式的图像及其注释

问题描述 投票:0回答:2

我正在尝试使用 Detectron2 训练模型。我正在使用 Grocery 图像数据,并且有 COCO 格式的注释。我在加载模型时遇到问题。模型不接受注释。我指的是这个博客https://gilberttanner.com/blog/detectron2-train-a-instance-segmentation-model.

注册数据集时遇到问题。

from detectron2.data.datasets import register_coco_instances

for d in ["train", "test"]:
    register_coco_instances(f"microcontroller_{d}", {}, f"Microcontroller Segmentation/{d}.json", f"Microcontroller Segmentation/{d}")

这段代码有什么问题吗?

json deep-learning image-segmentation image-classification detectron
2个回答
5
投票

我想这可能对你有帮助

from detectron2.data.datasets import register_coco_instances
register_coco_instances("YourTrainDatasetName", {},"path to train.json", "path to train image folder")
register_coco_instances("YourTestDatasetName", {}, "path to test.json", "path to test image folder")

让我知道它是否适合你。我已经用这个训练了 detectron2 :)


0
投票

任何人(比如我)都在寻找数据集正确注册的证据。

注册数据集后(像这样):

from detectron2.data.datasets import register_coco_instances
register_coco_instances("coco_custom", {}, "./data/annotations/instances.json", "./data/images/")

您可以获得元数据:

nuts_metadata = MetadataCatalog.get('coco_custom')
dataset_dicts = DatasetCatalog.get("coco_custom")

并可视化数据:

import random
from detectron2.utils.visualizer import Visualizer
import matplotlib.pyplot as plt

for d in random.sample(dataset_dicts, 3):
    img = cv2.imread(d["file_name"])
    visualizer = Visualizer(img[:, :, ::-1], metadata=nuts_metadata , scale=0.5)
    vis = visualizer.draw_dataset_dict(d)
    plt.imshow(vis.get_image()[:, :, ::-1])

这样你就可以看到是否一切都正确导入

© www.soinside.com 2019 - 2024. All rights reserved.