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

idfiyjo8  于 2022-11-09  发布在  其他
关注(0)|答案(3)|浏览(190)

我正在使用下面的代码来加载经过训练的自定义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)

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

results.print()  
results.save() 
results.show()

我的问题是如何将结果保存在不同的目录中,以便在基于Web的应用程序中使用它们。作为参考,我正在使用Streamlit。例如,目前,结果(图像)被保存在runs\detect\exp* 中。我想更改它。有人能指导我吗?

41ik7eoe

41ik7eoe1#

您可以在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

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

kpbwa7wx

kpbwa7wx2#

只需将save_dir参数传递到所需的目录。
范例

results.save(save_dir='data/output/images')
dddzy1tm

dddzy1tm3#

这对我很有效,你所要做的就是使用一些参数。

--exist-ok --名称(保存位置的路径)
例如-!python train.py--img 608 --批处理16 --epochs 5000 --数据{数据集.位置}/数据.yaml --权重yolov5l.pt**--存在-确定--名称'要保存的路径'**
为了更好地理解,您可以参考此处:https://github.com/ultralytics/yolov5/issues/6507#issuecomment-1027985452

相关问题