Spaces:
Runtime error
Runtime error
# Copyright (c) Facebook, Inc. and its affiliates. | |
# Copyright (c) Meta Platforms, Inc. All Rights Reserved | |
import os | |
from pathlib import Path | |
import numpy as np | |
import tqdm | |
from PIL import Image | |
def convert(input, output, index=None): | |
img = np.asarray(Image.open(input)) | |
assert img.dtype == np.uint8 | |
img = img - 1 # 0 (ignore) becomes 255. others are shifted by 1 | |
if index is not None: | |
mapping = {i: k for k, i in enumerate(index)} | |
img = np.vectorize(lambda x: mapping[x] if x in mapping else 255)( | |
img.astype(np.float) | |
).astype(np.uint8) | |
Image.fromarray(img).save(output) | |
if __name__ == "__main__": | |
dataset_dir = ( | |
Path(os.getenv("DETECTRON2_DATASETS", "datasets")) / "ADEChallengeData2016" | |
) | |
print('Caution: we only generate the validation set!') | |
for name in ["validation"]: | |
annotation_dir = dataset_dir / "annotations" / name | |
output_dir = dataset_dir / "annotations_detectron2" / name | |
output_dir.mkdir(parents=True, exist_ok=True) | |
for file in tqdm.tqdm(list(annotation_dir.iterdir())): | |
output_file = output_dir / file.name | |
convert(file, output_file) | |