DeticChatGPT / tools /fix_o365_names.py
taesiri's picture
Duplicate from akhaliq/Detic
6e14436
# Copyright (c) Facebook, Inc. and its affiliates.
import argparse
import json
import copy
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("--ann", default='datasets/objects365/annotations/zhiyuan_objv2_val.json')
parser.add_argument("--fix_name_map", default='datasets/metadata/Objects365_names_fix.csv')
args = parser.parse_args()
new_names = {}
old_names = {}
with open(args.fix_name_map, 'r') as f:
for line in f:
tmp = line.strip().split(',')
old_names[int(tmp[0])] = tmp[1]
new_names[int(tmp[0])] = tmp[2]
data = json.load(open(args.ann, 'r'))
cat_info = copy.deepcopy(data['categories'])
for x in cat_info:
if old_names[x['id']].strip() != x['name'].strip():
print('{} {} {}'.format(x, old_names[x['id']], new_names[x['id']]))
import pdb; pdb.set_trace()
if old_names[x['id']] != new_names[x['id']]:
print('Renaming', x['id'], x['name'], new_names[x['id']])
x['name'] = new_names[x['id']]
data['categories'] = cat_info
out_name = args.ann[:-5] + '_fixname.json'
print('Saving to', out_name)
json.dump(data, open(out_name, 'w'))