gpt4 book ai didi

python - 为什么在 YOLOv5 中两个结果不同?

转载 作者:行者123 更新时间:2023-12-05 05:54:13 27 4
gpt4 key购买 nike

我想用yolov5知道图片中的车辆数量但是模型的结果和detect.py不一样

<强>0。图片 enter image description here.

<强>1。模型_结果

# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # or yolov5m, yolov5l, yolov5x, custom

# Images
img = 'D:\code\YOLO\dataset\img\public02.png' # or file, Path, PIL, OpenCV, numpy, list

# Inference
results = model(img)

# Results
results.print() # or .show(), .save(), .crop(), .pandas(), etc.

结果 -> (无检测)

<强>2。检测.py

from IPython.display import Image
import os

val_img_path = 'D:\code\YOLO\dataset\img\public02.png'

!python detect.py --img 416 --conf 0.25 --source "{val_img_path}"

结果 -> enter image description here too

我知道如果我不在 detect.py 中指定权重选项,则会使用默认的 yolo5s 模型。但是,结果 1 与使用相同模型的结果 2 不同。

最佳答案

看来是图片处理的问题。

实际上,对于您的示例,从 torch hub 加载的模型提供的输出与 detect.py 不同。查看 detect.py 的源代码,我发现有一些很好的图像预处理。从模型中心,我真的不知道输入发生了什么。从模型中心,生成的图像是这样的:

Torch hub model

通过他们的预处理,这基本上就是您输入模型的图像。不希望从中进行任何检测都是诚实的。

但后来我尝试自己进行预处理(在他们的 tutorial 中也有注明)

import torch
import cv2

# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # or yolov5m, yolov5l, yolov5x, custom

# Image
imgPath = '/content/9X9FP.png'
img = cv2.imread(imgPath)[..., ::-1] # Pre-processing OpenCV image (BGR to RGB)

# Inference
results = model(img)

# Results
results.save()

一切正常:

Good detections

因此,为了获得快速简单的答案,我会自己进行预处理,这只是一个简单的一行额外步骤。祝你好运!

关于python - 为什么在 YOLOv5 中两个结果不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69694574/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com