如何在不同文件夹中访问yolov5的保存结果?

0 web-applications pytorch streamlit detectron yolov5

我使用下面的代码加载经过训练的自定义 Yolov5 模型并执行检测。

import cv2
import torch
from PIL import Image

model = torch.hub.load('ultralytics/yolov5', 'custom', 
 path='yolov5/runs/train/exp4/weights/best.pt', force_reload=True) 

img = cv2.imread('example.jpeg')[:, :, ::-1]  # OpenCV image (BGR to RGB)

results = model(img, size=416)
Run Code Online (Sandbox Code Playgroud)

#显示和保存我正在使用的结果:

results.print()  
results.save() 
results.show()
Run Code Online (Sandbox Code Playgroud)

我的问题是如何将结果保存在不同的目录中,以便我可以在基于网络的应用程序中使用它们。我正在使用 Streamlit,供您参考。例如,目前,结果(图像)保存在运行\检测\exp*中。我想改变它。任何人都可以指导我吗?

小智 5

您可以更改函数的定义results.save(),该函数可以在文件中找到yolov5/models/common.py。默认情况下的定义是:

def save(self, labels=True, save_dir='runs/detect/exp'):
        save_dir = increment_path(save_dir, exist_ok=save_dir != 'runs/detect/exp', mkdir=True)  # increment save_dir
        self.display(save=True, labels=labels, save_dir=save_dir)  # save results
Run Code Online (Sandbox Code Playgroud)

您可以将参数更改save_dir为所需的保存位置,文件应保存在新目录中。