跟着肆十二博主,学的YOLOv5,运行代码后,我的界面没有显示图片和视频

这是正常运行的结果。

这是我运行的结果,不知道在哪里出错了,希望大家帮我解答,求解,蟹蟹
跟着肆十二博主,学的YOLOv5,运行代码后,我的界面没有显示图片和视频


上午好☀️☀️☀️️
本答案参考通义千问
你提到在运行 YOLOv5 的代码后,界面没有显示图片和视频,但你认为这是“正常运行的结果”。这可能意味着你对 YOLOv5 的运行机制不太熟悉,或者代码中存在一些配置或路径错误。以下是对问题的详细分析与解决方案:
runs/detect 文件夹下生成检测结果,但如果你没有查看该目录,或未开启图像显示功能,可能会误以为没有输出。cv2.imshow() 被注释),或未正确加载图像/视频文件。检查代码中是否指定了图片或视频路径
在 detect.py 或你自定义的脚本中,确保有如下代码:
source = "your_image.jpg" # 或者 "your_video.mp4"
如果你没有指定,YOLOv5 会默认使用摄像头(source=0)。如果摄像头不可用,就会没有输出。
修改为图片或视频路径
如果你想测试图片或视频,可以将 source 改为你的本地文件路径,例如:
source = "test.jpg" # 替换为你的图片路径
runs/detect 目录runs/detect 文件夹exp/ 文件夹中的图片)exp/ 中的 .mp4)cv2.imshow()detect.py 中,通常会有类似如下代码:
cv2.imshow('YOLOv5', im0)
cv2.waitKey(1) # 等待按键
如果你删除了这些代码,就看不到图像。请确认你是否手动注释掉了这些部分。
python detect.py --source test.jpg --weights yolov5s.pt
--source:输入源(图片、视频或摄像头)--weights:模型权重路径如果你是通过自定义脚本运行,以下是简化版的代码示例:
import cv2
from models.experimental import attempt_load
from utils.general import check_img_size, non_max_suppression, scale_coords
from utils.plots import plot_one_box
# 加载模型
model = attempt_load('yolov5s.pt', device='cpu') # 可以改为 'cuda' 使用GPU
# 图像路径
img_path = 'test.jpg'
# 读取图像
img = cv2.imread(img_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 预处理
img = check_img_size(img, imgsz=640)
img = img / 255.0 # 归一化
# 推理
with torch.no_grad():
pred = model(torch.from_numpy(img).unsqueeze(0).float())
# 后处理
pred = non_max_suppression(pred, 0.25, 0.45)
# 绘制结果
for i, det in enumerate(pred):
if len(det):
for *xyxy, conf, cls in det:
label = f'{model.names[int(cls)]} {conf:.2f}'
plot_one_box(xyxy, img, label=label, color=(255, 0, 0), line_thickness=2)
# 显示图像
cv2.imshow('YOLOv5 Detection', cv2.cvtColor(img, cv2.COLOR_RGB2BGR))
cv2.waitKey(0)
| 问题 | 解决方案 |
|------|----------|
| 未看到图像 | 检查 source 是否正确,确认 cv2.imshow() 未被注释 |
| 没有输出文件 | 查看 runs/detect 文件夹,确认模型已保存 |
| 摄像头无法打开 | 检查摄像头设备是否可用,或改用图片/视频 |
| 模型未加载 | 确认 weights 路径正确,且模型文件存在 |
重点总结:
- 确认输入源是否正确(图片/视频/摄像头)
- 查看
runs/detect目录获取检测结果- 确保
cv2.imshow()未被禁用- 使用标准命令运行检测
如果你能提供具体的代码片段或错误日志,我可以进一步帮你定位问题。希望以上内容对你有帮助!如果还有疑问,欢迎继续提问!