isaid_json.py 988 B

1234567891011121314151617181920212223242526272829
  1. import argparse
  2. import json
  3. import os.path as osp
  4. def json_convert(path):
  5. with open(path, 'r+') as f:
  6. coco_data = json.load(f)
  7. coco_data['categories'].append({'id': 0, 'name': 'background'})
  8. coco_data['categories'] = sorted(
  9. coco_data['categories'], key=lambda x: x['id'])
  10. f.seek(0)
  11. json.dump(coco_data, f)
  12. f.truncate()
  13. if __name__ == '__main__':
  14. parser = argparse.ArgumentParser(
  15. description='Convert iSAID dataset to mmdetection format')
  16. parser.add_argument('dataset_path', help='iSAID folder path')
  17. args = parser.parse_args()
  18. dataset_path = args.dataset_path
  19. json_list = ['train', 'val']
  20. for dataset_mode in ['train', 'val']:
  21. json_file = 'instancesonly_filtered_' + dataset_mode + '.json'
  22. json_file_path = osp.join(dataset_path, dataset_mode, json_file)
  23. assert osp.exists(json_file_path), f'train is not in {dataset_path}'
  24. json_convert(json_file_path)