Mask-rcnn数据集预处理脚本
import json,os
def save(self, path):
f = open(path, "w")
d = {
"vocab_size": self.vocab_size,
"hidden_dim": self.hidden_dim,
"n_head": self.n_head,
"drop_out": self.drop_out,
"layer_count": self.layer_count,
"max_len": self.max_len
}
d = json.dumps(d)
f.write(d)
f.close()
def load(self, path):
d = open(path).read()
d = json.loads(d)
self.vocab_size = d['vocab_size']
self.hidden_dim = d['hidden_dim']
self.n_head = d['n_head']
self.drop_out = d['drop_out']
self.layer_count = d['layer_count']
self.max_len = d['max_len']
json_files=r'C:\Users\GuoQingru\Downloads\data\data_annotated'
new_root=r'C:\Users\GuoQingru\Downloads\data\gqr'
for json_name in os.listdir(json_files):
json_path=os.path.join(json_files,json_name)
with open(json_path,encoding='utf-8') as f:
data=f.read()
inf=json.loads(data)
label_len=len(inf["shapes"])
label_count={"beans":1,"roots":1}
temp_list=[]
for index in range(label_len):
label_name=inf["shapes"][index]['label']
if label_name in label_count.keys():
temp_label=label_name
label_name=label_name+str(label_count[temp_label])
label_count[temp_label]=label_count[temp_label]+1
inf["shapes"][index]['label']=label_name
temp_list.append(inf["shapes"][index])
inf["shapes"]=temp_list
inf["imagePath"]=os.path.splitext(json_name)[0]+'.jpg'
print(inf)
new_path=os.path.join(new_root,json_name)
with open(new_path,'w', encoding='utf-8') as f_reslut:
d = json.dumps(inf)
f_reslut.write(d)