detectron2:数据集注册

detectron2通过访问 DatasetCatalog 来访问具体数据,以及 MetadataCatalog 来访问 metadata(我的理解是metadata里面是数据集的具体信息,比如类别数,评估器的种类)

先要把数据集转化成coco格式

from detectron2.data.datasets.register_coco import register_coco_instances
from detectron2.data.catalog import DatasetCatalog,MetadataCatalog
import os
from detectron2.data.datasets.coco import load_coco_json

if __name__ == '__main__':
    root_file = r'F:/DeepLearning/CrossVIS-main/datasets'

    json_file = os.path.join(root_file,'smoke/annotations/train_in_coco.json')
    image_root = os.path.join(root_file,'smoke/train')


    DatasetCatalog.register("smoke_train",
                            lambda: load_coco_json(json_file, image_root, "smoke_train"))
    MetadataCatalog.get("smoke_train").set(thing_classes=["smoke"],
                                                    json_file=json_file,
                                                    image_root=image_root)

代码只展示了训练集的注册,验证集操作一样,注册完成后,我们可以看到DatasetCatalog和MetadataCatalog中已经有了我们的数据集

注册完成后,可以用load_coco_json函数或者DatasetCatalog.get()方法来

data_dict = load_coco_json(json_file,image_root,"smoke_train")
    # data_dict = DatasetCatalog.get("smoke_train")

查看该数据集detectron2格式的标注list[dict]

 

你可能感兴趣的:(detectron2,深度学习,神经网络,pytorch)