我已经对图像进行了注释,并保存在注释文件夹中。我需要将其转换为yolov5格式。
annotations = [os.path.join('annotations', x) for x in os.listdir('/content/gdrive/My
Drive/annotations') if x[-3:] == "xml"]
现在注释有:
annotations/100_1_0_20170110183726390.xml
annotations/100_1_2_20170105174847679.xml
annotations/100_1_2_20170110182836729.xml
当我尝试:
for ann in tqdm(annotations):
info_dict = extract_info_from_xml(ann)
convert_to_yolov5(info_dict)
annotations = [os.path.join('annotations', x) for x in os.listdir('annotations') if x[-3:] == "txt"]
我得到:
FileNotFoundError: [Errno 2] No such file or directory:
'annotations/100_1_0_20170110183726390.xml'
看起来您正在尝试访问一个不存在的文件夹annotations/100_1_0_20170110183726390.xml
(尽管我想我知道您在尝试做什么(。
程序需要知道文件的整个路径,如/content/gdrive/My Drive/annotations/
,而不是annotations
。
我认为os.path.join('/content/gdrive/My Drive/annotations', x) for x in os.listdir('/content/gdrive/My Drive/annotations') if x[-3:] == "txt"
可能会起作用,尽管有点冗长。
如果您在与annotations
相同的目录中编写程序,您可能会使用os.getcwd()
,它将返回当前的工作目录。然后你可以使用:
myPath = os.getcwd()
myPath = myPath + "annotations/"
os.path.join(myPath, x) for x in os.listdir(myPath) if x[-3:] == "txt"
我想。