如何将YOLOv5检测结果保存至同一目录并自定义文件名?
解决YOLOv5检测结果保存至同一文件夹的问题
YOLOv5默认的results.save()方法会自动在指定目录下创建新的子文件夹(如exp、exp1)来存放每次的检测结果,要将所有图片统一保存到同一文件夹,有两种可行方法:
方法一:使用save_img()手动指定保存路径
这种方式可以完全自定义文件名,直接将检测后的图片保存到目标文件夹,不会生成额外子目录:
import os # 确保目标文件夹存在,不存在则创建 save_dir = 'output/detect/images' os.makedirs(save_dir, exist_ok=True) results = self.yolov5_model(rendered_image_pil) idx = offset + pos # 自定义文件名,记得加上图片后缀(如.jpg) filename = f"rendered_{idx:04}.jpg" # 拼接完整保存路径 save_path = os.path.join(save_dir, filename) # 保存检测后的图片 results.save_img(save_path)
方法二:修改save()方法的参数
如果你仍想使用results.save(),可以设置exist_ok=True,让YOLOv5直接将结果保存到指定的save_dir中,不再创建新的子文件夹:
results = self.yolov5_model(rendered_image_pil) idx = offset + pos filename = f"rendered_{idx:04}" # 设置exist_ok=True,避免创建新子文件夹 results.save(save_dir='output/detect/images', exist_ok=True)
注意:这种方式下,YOLOv5会使用默认的命名规则(如原图片名+
_detected)保存图片,若需要自定义文件名,建议使用方法一。
内容的提问来源于stack exchange,提问作者Ian Gallegos
相关产品推荐
相关产品推荐

