在yolo格式中,如果想让无目标地背景图片参与训练,需要创建与图片名字一样的空白的txt文件。
如果标注文件夹里,没有相应图片的标注,则就创建一个同样名字的空白txt作为负样本的标签。
import os #通过os模块调用系统命令
images_list = os.listdir(r"D:\Document_Exercitation\Video_Segmentation\picture1") #遍历整个文件夹下的文件并返回一个列表
txt_list = os.listdir(r"D:\Document_Exercitation\Video_Segmentation\Annotations")
txt_name=[]
for j in txt_list:
txt_name.append(j.split(".")[0]) # 若带有后缀名,split去掉后缀名
for i in images_list:
image_name=i.split(".")[0]#若带有后缀名,split去掉后缀名
#print(image_name)
if image_name not in txt_name:
output_txt = f"D:\\Document_Exercitation\\Video_Segmentation\\yolo\\{image_name}.txt"
with open(output_txt, "w", encoding='utf-8') as file:
pass
print(image_name)
images_list = os.listdir(r"D:\Document_Exercitation\Video_Segmentation\picture1") # 遍历整个文件夹下的文件并返回一个列表
txt_list = os.listdir(r"D:\Document_Exercitation\Video_Segmentation\Annotations")
使用 os.listdir
列出 picture1
和 Annotations
文件夹中的所有文件,分别存储在 images_list
和 txt_list
中。
txt_name = []
for j in txt_list:
txt_name.append(j.split(".")[0]) # 若带有后缀名,split去掉后缀名
遍历 txt_list
,使用 split(".")[0]
去掉文件后缀名,将处理后的文件名添加到 txt_name
列表中。
for i in images_list:
image_name = i.split(".")[0] # 若带有后缀名,split去掉后缀名
# print(image_name)
if image_name not in txt_name:
output_txt = f"D:\\Document_Exercitation\\Video_Segmentation\\yolo\\{image_name}.txt"
with open(output_txt, "w", encoding='utf-8') as file:
pass # 创建一个空文件
print(image_name)
遍历 images_list
,使用 split(".")[0]
去掉文件后缀名,如果 image_name
不在 txt_name
列表中,则创建一个空的同名 .txt
文件,并打印 image_name