test
/
FoodSeg103
/Swin-Transformer-Semantic-Segmentation-main
/tools
/convert_datasets
/cityscapes.py
import argparse | |
import os.path as osp | |
import mmcv | |
from cityscapesscripts.preparation.json2labelImg import json2labelImg | |
def convert_json_to_label(json_file): | |
label_file = json_file.replace('_polygons.json', '_labelTrainIds.png') | |
json2labelImg(json_file, label_file, 'trainIds') | |
def parse_args(): | |
parser = argparse.ArgumentParser( | |
description='Convert Cityscapes annotations to TrainIds') | |
parser.add_argument('cityscapes_path', help='cityscapes data path') | |
parser.add_argument('--gt-dir', default='gtFine', type=str) | |
parser.add_argument('-o', '--out-dir', help='output path') | |
parser.add_argument( | |
'--nproc', default=1, type=int, help='number of process') | |
args = parser.parse_args() | |
return args | |
def main(): | |
args = parse_args() | |
cityscapes_path = args.cityscapes_path | |
out_dir = args.out_dir if args.out_dir else cityscapes_path | |
mmcv.mkdir_or_exist(out_dir) | |
gt_dir = osp.join(cityscapes_path, args.gt_dir) | |
poly_files = [] | |
for poly in mmcv.scandir(gt_dir, '_polygons.json', recursive=True): | |
poly_file = osp.join(gt_dir, poly) | |
poly_files.append(poly_file) | |
if args.nproc > 1: | |
mmcv.track_parallel_progress(convert_json_to_label, poly_files, | |
args.nproc) | |
else: | |
mmcv.track_progress(convert_json_to_label, poly_files) | |
split_names = ['train', 'val', 'test'] | |
for split in split_names: | |
filenames = [] | |
for poly in mmcv.scandir( | |
osp.join(gt_dir, split), '_polygons.json', recursive=True): | |
filenames.append(poly.replace('_gtFine_polygons.json', '')) | |
with open(osp.join(out_dir, f'{split}.txt'), 'w') as f: | |
f.writelines(f + '\n' for f in filenames) | |
if __name__ == '__main__': | |
main() | |