Detic / detic /data /datasets /imagenet.py
AK391
files
159f437
# Copyright (c) Facebook, Inc. and its affiliates.
import logging
import os
from detectron2.data import DatasetCatalog, MetadataCatalog
from detectron2.data.datasets.lvis import get_lvis_instances_meta
from .lvis_v1 import custom_load_lvis_json, get_lvis_22k_meta
def custom_register_imagenet_instances(name, metadata, json_file, image_root):
"""
"""
DatasetCatalog.register(name, lambda: custom_load_lvis_json(
json_file, image_root, name))
MetadataCatalog.get(name).set(
json_file=json_file, image_root=image_root,
evaluator_type="imagenet", **metadata
)
_CUSTOM_SPLITS_IMAGENET = {
"imagenet_lvis_v1": ("imagenet/ImageNet-LVIS/", "imagenet/annotations/imagenet_lvis_image_info.json"),
}
for key, (image_root, json_file) in _CUSTOM_SPLITS_IMAGENET.items():
custom_register_imagenet_instances(
key,
get_lvis_instances_meta('lvis_v1'),
os.path.join("datasets", json_file) if "://" not in json_file else json_file,
os.path.join("datasets", image_root),
)
_CUSTOM_SPLITS_IMAGENET_22K = {
"imagenet_lvis-22k": ("imagenet/ImageNet-LVIS/", "imagenet/annotations/imagenet-22k_image_info_lvis-22k.json"),
}
for key, (image_root, json_file) in _CUSTOM_SPLITS_IMAGENET_22K.items():
custom_register_imagenet_instances(
key,
get_lvis_22k_meta(),
os.path.join("datasets", json_file) if "://" not in json_file else json_file,
os.path.join("datasets", image_root),
)