一、脚本功能
使用yolov5做推理并保存yolo格式的txt文件时,当图片上没有检测到目标时,yolov5将不会保存空的txt文件,导致txt文件缺失,yolo训练时报错。
所以写了个简单的小脚本,在不影响原来已存在txt文件的前提下,来批量创建缺失的空txt文件,确保txt文件的总数量与图片的总数量一致。
二、脚本源码
# -*- coding: utf-8 -*-importosimg_list= [] txt_list= [] defimg_path(image_path): foriinos.listdir(image_path): path=i.split(".")[0] img_list.append(path) # print(path)deftxt_path(label_path): foriinos.listdir(label_path): path=i.split(".")[0] txt_list.append(path) defcreate_txt(label_path,txt): txt_txt=list(txt) forpathintxt_txt: path_data=os.path.join(label_path, path) +'.txt'print(path_data) withopen(path_data, 'w') asf: f.write("") f.close() passif__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^sat2create_txt(label_path,txt) pass
- 温馨提示:运行此脚本时,一定要注意图片和txt文件的文件名中,除了文件名后缀前有一个 . 就不要出现第二个 .