def register_lvis_instances(name, metadata, json_file, image_root): """ Register a dataset in LVIS's json annotation format for instance detection. Args: name (str): a name that identifies the dataset, e.g. "lvis_v0.5_train". metadata (dict): extra metadata associated with this dataset. It can be an empty dict. json_file (str): path to the json instance annotation file. image_root (str): directory which contains all the images. """ DatasetCatalog.register( name, lambda: load_lvis_json(json_file, image_root, name)) MetadataCatalog.get(name).set(json_file=json_file, image_root=image_root, evaluator_type="lvis", **metadata)
def register_meta_pascal_voc( name, metadata, dirname, split, year, keepclasses, sid): if keepclasses.startswith('base_novel'): thing_classes = metadata["thing_classes"][sid] elif keepclasses.startswith('base'): thing_classes = metadata["base_classes"][sid] elif keepclasses.startswith('novel'): thing_classes = metadata["novel_classes"][sid] DatasetCatalog.register( name, lambda: load_filtered_voc_instances( name, dirname, split, thing_classes) ) MetadataCatalog.get(name).set( thing_classes=thing_classes, dirname=dirname, year=year, split=split, base_classes=metadata["base_classes"][sid], novel_classes=metadata["novel_classes"][sid] )
def register_coco_instances(name, metadata, json_file, image_root): """ Register a dataset in COCO's json annotation format for instance detection. This is an example of how to register a new dataset. You can do something similar to this function, to register new datasets. Args: name (str): the name that identifies a dataset, e.g. "coco_2014_train". metadata (dict): extra metadata associated with this dataset. You can leave it as an empty dict. json_file (str): path to the json instance annotation file. image_root (str): directory which contains all the images. """ # 1. register a function which returns dicts DatasetCatalog.register( name, lambda: load_coco_json(json_file, image_root, name)) # 2. Optionally, add metadata about this dataset, # since they might be useful in evaluation, visualization or logging MetadataCatalog.get(name).set(json_file=json_file, image_root=image_root, evaluator_type="coco", **metadata)
def register_pascal_voc(name, dirname, split, year): DatasetCatalog.register(name, lambda: load_voc_instances(dirname, split)) MetadataCatalog.get(name).set(thing_classes=CLASS_NAMES, dirname=dirname, year=year, split=split)