|
|
|
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')) |
|
|