一、脚本功能
使用yolov5做推理并保存yolo格式的txt文件时,当图片上没有检测到目标时,yolov5将不会保存空的txt文件,导致txt文件缺失,yolo训练时报错。
所以写了个简单的小脚本,在不影响原来已存在txt文件的前提下,来批量创建缺失的空txt文件,确保txt文件的总数量与图片的总数量一致。
二、脚本源码
# -*- coding: utf-8 -*-
import os
img_list = []
txt_list = []
def img_path(image_path):
for i in os.listdir(image_path):
path = i.split(".")[0]
img_list.append(path)
# print(path)
def txt_path(label_path):
for i in os.listdir(label_path):
path = i.split(".")[0]
txt_list.append(path)
def create_txt(label_path,txt):
txt_txt = list(txt)
for path in txt_txt:
path_data = os.path.join(label_path, path) + '.txt'
print(path_data)
with open(path_data, 'w') as f:
f.write("")
f.close()
pass
if __name__ == '__main__':
image_path = r'D:\gs\datasets\sp\split\1'#图片路径
label_path = r'D:\gs\datasets\sp\split\2'#txt文件路径
img_path(image_path)
txt_path(label_path)
sat1 = set(img_list)
sat2 = set(txt_list)
txt = sat1 ^ sat2
create_txt(label_path,txt)
pass
温馨提示:运行此脚本时,一定要注意图片和txt文件的文件名中,除了文件名后缀前有一个 . 就不要出现第二个 .