如何解决无法打开标签文件 仅当您使用MSCOCO时,这才是正常的
我将json边界框转换为yolo darknet格式。但是在训练过程中,它会显示并显示错误,
无法打开标签文件。 (仅当您使用MSCOCO时,这才是正常的): 数据/obj/Avacado_retraining__172.txt
用于转换的代码:
import os
import cv2
import json
from PIL import Image
import shutil
import utils
def json2yolo(labels_dir,index,img_dir1,Result_path):
for jsons in os.listdir(labels_dir):
with open(os.path.join(labels_dir,jsons),"r") as json_data:
json_data = json.load(json_data)
for objects in json_data:
# if objects=="_via_img_metadata":
for filename in json_data[objects]:
for regions in json_data[objects]['regions']:
if regions is not None:
filename=json_data[objects]['filename']
xmin=float(regions['shape_attributes']['x'])
ymin=float(regions['shape_attributes']['y'])
width=float(regions['shape_attributes']['width'])
height=float(regions['shape_attributes']['height'])
xmax=xmin+width
ymax=ymin+height
b = (float(xmin),float(xmax),float(ymin),float(ymax))
im=Image.open(os.path.join(img_dir1,filename))
w= int(im.size[0])
h= int(im.size[1])
bb = utils.yolo_convert((w,h),b)
with open(os.path.join(Result_path,filename[:-3]+"txt"),"a+") as txt:
# print(str(index)," ",bb)
txt.write(str(index) + " " + " ".join([str(a) for a in bb]) + '\n')
dataset_path="./dataset"
images_path=os.path.join(dataset_path,"images")
labels_path=os.path.join(dataset_path,"labels")
Result_path=os.path.join(dataset_path,"Result")
index=0
json2yolo(labels_path,images_path,Result_path)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。