You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Detectron2报错AssertionError:数据集已注册,如何重执行register_coco_instances?

解决Detectron2重复注册COCO数据集的断言错误问题

问题核心是Detectron2的DatasetCatalog和MetadataCatalog会记录已注册的数据集名称,重复调用register_coco_instances会触发名称冲突的断言错误。无需重启程序,直接通过注销旧注册项再重新注册即可解决:

  • 先检查目标数据集是否已注册,若已存在则从两个Catalog中移除:
from detectron2.data import DatasetCatalog, MetadataCatalog

dataset_name = "xx_train"
if dataset_name in DatasetCatalog:
    DatasetCatalog.remove(dataset_name)
    MetadataCatalog.remove(dataset_name)
  • 然后重新执行注册命令,加载修改后的JSON文件:
from detectron2.data.datasets import register_coco_instances

register_coco_instances(
    dataset_name,
    {},  # 可选的元数据配置
    "/path/to/your/modified_xx_train.json",
    "/path/to/your/image_directory"
)

补充说明

  • 这种方法适用于交互式环境(如Jupyter Notebook)或脚本运行中,无需重启进程即可更新数据集配置。
  • 必须同时移除DatasetCatalog和MetadataCatalog中的注册项,否则仍可能出现冲突或旧数据缓存的问题。

内容的提问来源于stack exchange,提问作者DSC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:40:25