Spaces:
Runtime error
Runtime error
# Copyright (c) Facebook, Inc. and its affiliates. | |
import os | |
from detectron2.data import DatasetCatalog, MetadataCatalog | |
from detectron2.data.datasets import load_sem_seg | |
PASCALVOC20_NAMES = ( | |
"aeroplane", | |
"bicycle", | |
"bird", | |
"boat", | |
"bottle", | |
"bus", | |
"car", | |
"cat", | |
"chair", | |
"cow", | |
"diningtable", | |
"dog", | |
"horse", | |
"motorbike", | |
"person", | |
"pottedplant", | |
"sheep", | |
"sofa", | |
"train", | |
"tvmonitor", | |
) | |
def _get_voc_meta(cat_list): | |
ret = { | |
"stuff_classes": cat_list, | |
} | |
return ret | |
def register_pascalvoc(root): | |
root = os.path.join(root, "VOCdevkit/VOC2012") | |
meta = _get_voc_meta(PASCALVOC20_NAMES) | |
for name, image_dirname, sem_seg_dirname in [ | |
("val", "JPEGImages", "annotations_detectron2/val"), | |
]: | |
image_dir = os.path.join(root, image_dirname) | |
gt_dir = os.path.join(root, sem_seg_dirname) | |
all_name = f"pascalvoc20_sem_seg_{name}" | |
DatasetCatalog.register( | |
all_name, | |
lambda x=image_dir, y=gt_dir: load_sem_seg( | |
y, x, gt_ext="png", image_ext="jpg" | |
), | |
) | |
MetadataCatalog.get(all_name).set( | |
image_root=image_dir, | |
sem_seg_root=gt_dir, | |
evaluator_type="sem_seg", | |
ignore_label=255, | |
**meta, | |
) | |
_root = os.getenv("DETECTRON2_DATASETS", "datasets") | |
register_pascalvoc(_root) | |