进行resnet18数据集标注时,如果数据集数量较多分发给好多个小伙伴一起标注时,这个时候,小伙伴一不小心把某些数据集的标签打错了,这该怎么办呢?
废话少说,直接给出脚本进行转换:
# -*- encoding: utf-8 -*-
import os
import json
def Edit_label(json_dir,new_label = 'line_center'):
json_files = os.listdir(json_dir)
json_dict = {}
for json_file in json_files:
# 只获取json文件
if json_file[-4:] != 'json':
continue
jsonfile = json_dir + '/' + json_file
with open(jsonfile, 'r', encoding='utf-8') as jf:
info = json.load(jf)
# 找到位置进行修改
for i, label in enumerate(info['shapes']):
info['shapes'][i]['label'] = new_label
# 使用新字典替换修改后的字典
json_dict = info
# 将替换后的内容写入原文件
with open(jsonfile, 'w') as fw:
json.dump(json_dict,fw,indent=2)
if __name__ == '__main__':
# 文件夹目录
json_dir = r'D:\AAAAAAAAAAAAAAAAAAAAA' #此处替换为数据集所在文件夹
new_label = 'line_center' #想要统一成的标签
Edit_label(json_dir,new_label)
print('OK!') #当输出这行时,转换成功
用上面的Python脚本,修改倒数第三四行,即可进行转换。