2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > json格式数据集转yolo txt格式

json格式数据集转yolo txt格式

时间:2022-06-05 23:40:38

相关推荐

json格式数据集转yolo txt格式

json格式数据集转yolo txt格式

json文件格式代码txt文件

网上相关代码大多针对COCO数据集的,但是有些非公共数据集没有coco相关的文件,只有每张图片对应的json文件,故本文代码针对每张图片的json文件转换为yolo需要的txt文件。

json文件格式

{"shape": [{"label": "class1","boxes": [367,209,537,339],"points": null},{"label": "class1","boxes": [73,597,230,807],"points": null},{"label": "class1","boxes": [410,680,634,888],"points": null},{"label": "class1","boxes": [705,389,835,753],"points": null},{"label": "class1","boxes": [1073,639,1329,959],"points": null},{"label": "class1","boxes": [1464,499,1616,801],"points": null},{"label": "class1","boxes": [1535,385,1742,513],"points": null},{"label": "class1","boxes": [1321,48,1573,178],"points": null},{"label": "class1","boxes": [1618,120,1757,247],"points": null},{"label": "class1","boxes": [1745,159,1877,386],"points": null},{"label": "class1","boxes": [1810,685,1962,793],"points": null},{"label": "class1","boxes": [1838,770,1972,918],"points": null},{"label": "class1","boxes": [1113,950,1391,1175],"points": null},{"label": "class1","boxes": [83,943,192,1156],"points": null},{"label": "class1","boxes": [110,1132,167,1307],"points": null},{"label": "class1","boxes": [129,1102,216,1302],"points": null},{"label": "class1","boxes": [164,1143,253,1350],"points": null},{"label": "class1","boxes": [218,1137,316,1372],"points": null},{"label": "class1","boxes": [286,1142,383,1369],"points": null},{"label": "class1","boxes": [323,1170,445,1426],"points": null},{"label": "class1","boxes": [359,1172,556,1437],"points": null},{"label": "class1","boxes": [530,1189,648,1447],"points": null},{"label": "class1","boxes": [592,1180,811,1458],"points": null},{"label": "class1","boxes": [651,1097,980,1243],"points": null},{"label": "class1","boxes": [848,1021,1115,1283],"points": null},{"label": "class1","boxes": [1007,1101,1284,1404],"points": null},{"label": "class1","boxes": [1042,1204,1278,1474],"points": null},{"label": "class1","boxes": [243,974,435,1117],"points": null}],"imagePath": "1.jpg"}

代码

import jsonimport cv2import osall_classes={'class1':0,'class2':1} ##类别列表,与训练配置文件中的顺序保持一致savepath="./labels/" #txt文件存放位置jsonpath="./train_json/" #json文件位置imgpath="./train_img/" #图片位置,因为我的json文件中没有图片size,故需要读取图片得到sizejson_files=os.listdir(jsonpath)for i in json_files:infile=jsonpath+iwith open(infile,'r') as load_f:load_dict = json.load(load_f) #打开每个json文件outfile=open(savepath+load_dict["imagePath"][:-4]+'.txt','w')img_path=imgpath+load_dict["imagePath"]img=cv2.imread(img_path)size=img.shapeh_img,w_img=size[0],size[1] #得到图片sizefor item in load_dict["shape"]:print(item)label_int=all_classes[item['label']]print(infile)if not item['boxes']:continuex1,y1,x2,y2=item['boxes']print(label_int)print(x1,y1,x2,y2)x_center=(x1+x2)/2/w_imgy_center=(y1+y2)/2/h_imgw=(x2-x1)/w_imgh=(y2-y1)/h_imgoutfile.write(str(label_int)+" "+str(x_center)+" "+str(y_center)+" "+str(w)+" "+str(h)+'\n')outfile.close()

txt文件

0 0.220703125 0.17838541666666666 0.0830078125 0.08463541666666667

0 0.073974609375 0.45703125 0.07666015625 0.13671875

0 0.2548828125 0.5104166666666666 0.109375 0.13541666666666666

0 0.3759765625 0.3717447916666667 0.0634765625 0.23697916666666666

0 0.58642578125 0.522916666666 0.125 0.20833333333333334

0 0.751953125 0.4231770833333333 0.07421875 0.19661458333333334

0 0.800048828125 0.2923177083333333 0.10107421875 0.08333333333333333

0 0.70654296875 0.07356770833333333 0.123046875 0.08463541666666667

0 0.823974609375 0.11946614583333333 0.06787109375 0.08268229166666667

0 0.88427734375 0.17740885416666666 0.064453125 0.14778645833333334

0 0.9208984375 0.4811197916666667 0.07421875 0.0703125

0 0.93017578125 0.5494791666666666 0.0654296875 0.09635416666666667

0 0.611328125 0.6917317708333334 0.1357421875 0.146484375

0 0.067138671875 0.6832682291666666 0.05322265625 0.138671875

0 0.067626953125 0.7939453125 0.02783203125 0.11393229166666667

0 0.084228515625 0.7825520833333334 0.04248046875 0.13020833333333334

0 0.101806640625 0.8115234375 0.04345703125 0.134765625

0 0.13037109375 0.8167317708333334 0.0478515625 0.15299479166666666

0 0.163330078125 0.8173828125 0.04736328125 0.14778645833333334

0 0.1875 0.8450520833333334 0.0595703125 0.16666666666666666

0 0.223388671875 0.8492838541666666 0.09619140625 0.17252604166666666

0 0.28759765625 0.8580729166666666 0.0576171875 0.16796875

0 0.342529296875 0.8587239583333334 0.10693359375 0.18098958333333334

0 0.398193359375 0.76171875 0.16064453125 0.09505208333333333

0 0.479248046875 0.75 0.13037109375 0.17057291666666666

0 0.559326171875 0.8154296875 0.13525390625 0.197265625

0 0.56640625 0.8717447916666666 0.115234375 0.17578125

0 0.16552734375 0.6806640625 0.09375 0.09309895833333333

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。