首页 > 编程问答 >如何测试 Yolov10

如何测试 Yolov10

时间:2024-08-05 16:03:23浏览次数:23  
标签:python tensorflow object-detection yolo

我的目标是训练 Yolov10 模型来检测火灾、人类和烟雾。我在 roboflow 上找到了一个 数据集 来帮助我做到这一点。我使用以下代码训练了模型:

from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="./datasets/fire-smoke-human/data.yaml", epochs=30, device="cuda:0")

# Export the model
model.export(format="onnx", int8=True)

模型似乎训练得非常好,训练后的图表、验证图像看起来相当准确: Validation Image

但是,当我尝试使用 model = YOLO(f"./runs/detect/train/weights/best.onnx") 运行模型时,我不断得到关键错误。测试 Yolov8 模型时使用相同的代码。有不同的方法来使用 Yolov10 还是我必须以不同的方式训练它?我将不胜感激任何帮助。谢谢你!


你遇到的问题在于,你试图用 YOLOv8 的加载方法来加载 YOLOv10 模型。尽管 Ultralytics 努力保持 API 的一致性,但 YOLOv10 相较于 YOLOv8 有着重大的架构变化,导致加载方式有所不同。

以下是测试 YOLOv10 模型的正确步骤:

  1. 不要导出模型: 与 YOLOv8 不同,你不需要为了测试而将 YOLOv10 模型导出为 ONNX 格式。训练好的模型可以直接使用。

  2. 使用 model 对象进行预测: 在训练完成后, model 对象已经包含了训练好的权重,可以直接用于预测。

以下是修正后的代码:

from ultralytics import YOLO

# 加载 YOLOv10n 模型
model = YOLO("yolov10n.yaml")

# 训练模型
model.train(data="./datasets/fire-smoke-human/data.yaml", epochs=30, device="cuda:0")

# 在图像、视频或网络摄像头上运行模型
results = model("path/to/your/image.jpg")  # 用你的图像路径替换

# 打印结果
print(results)

# 可选:保存结果
results.save() 

代码解释:

  • 训练完成后,无需重新加载模型,直接使用已有的 model 对象。
  • 使用 model("path/to/your/image.jpg") 进行预测,将图片路径替换为你的实际路径。
  • results 对象包含了预测结果,可以使用 print(results) 查看,或使用 results.save() 保存结果。

其他建议:

  • 确保你使用的是最新版本的 Ultralytics YOLO。可以通过 pip install -U ultralytics 更新。
  • 参考 Ultralytics YOLOv10 的官方文档和示例代码: https://docs.ultralytics.com/

通过以上步骤,你应该能够成功测试你的 YOLOv10 模型。

标签:python,tensorflow,object-detection,yolo
From: 78833344

相关文章

  • 【Python学习手册(第四版)】学习笔记14-迭代器和列表解析(一)
    个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。本文主要以通俗易懂的语言介绍迭代器(文件迭代、手动迭代iter和next等),列表解析式包括基础知识包括写法、文件上使用列表解析、扩展列表解析语法等,对列表解析不懂的同学着重推荐......
  • 如何获取部署在 Azure 应用服务上并通过 Microsoft 身份提供商进行身份验证的 Python
    我使用PythonDash包构建了一个Web应用程序,并将该应用程序部署在Azure应用服务上。Web应用程序当前通过Azure门户的应用程序服务使用Microsoft身份提供程序进行身份验证。但是如何获取登录用户的详细信息呢?在本地运行时如何验证我的Web应用程序?我当前的登录流......
  • 使用 Python 打印此图案
    1010101010101010使用python打印此我已经尝试过defprint_pattern(rows):foriinrange(rows):start_char='1'ifi%2==0else'0'pattern=''.join(start_charifj%2==0else('0'ifs......
  • python discord bot nextcord 斜线命令 更改语言
    我想根据用户的不和谐语言更改斜杠命令的名称。如果语言是韩语/서버如果语言是英语/服务器像这样。我可以使用ctx.locale更改里面的内容,但我也想更改名称和描述。我应该怎么办?当我问ChatGPT时,他们说的很奇怪,谷歌上也没有任何信息。但是有一个机器人可以根据语言......
  • 学习Python的书籍推荐--《Python编程从入门到实践》
    版权信息:书名:Python编程:从入门到实践(第3版)作者:[美]埃里克·马瑟斯(EricMatthes)译者:袁国忠评价:1.北京邮电大学副教授陈光老师是这样评价的:    编程教学之道,一是重在实践,二是循序渐进一一通过巧妙的实战项目,激发和保持学习的热情,让学习渐入佳境。在这两方......
  • 我可以将 Python 与 javascript 结合起来用于网站或应用程序吗
    我不知道如果j添加Python和javascript可以吗我尝试过。但决定在继续之前询问一下是否可以继续但是如果我只使用javascript还是只使用python会更好吗?我只需要建议或答案将Python与Javascript结合用于网站或应用程序不仅完全可行,而且也是一种非常常见的做法!二者......
  • Python 网络抓取与请求和美丽的汤被需要 javascript 阻止
    我正在尝试从网站上抓取文本。我使用简单的代码:requests.get(url_here)。我的代码直到最近才有效。现在,当我使用请求时,我收到一条消息,而不是获取网站的文本:“该网站需要启用JavaScript!您使用的浏览器不支持JavaScript,或者已关闭JavaScript。“我已验证我的浏览器确实......
  • python实现局域网及广域网私人聊天(Socket库局域网应用)
    引言在当今这个数字化时代,即时通讯已成为我们日常生活的一部分。无论是通过手机还是电脑,人们都在寻找更高效、更私密的沟通方式。想象一下,在你自己的局域网内,与朋友或同事建立一个专属的聊天室,无需担心数据泄露或者被第三方监听。本文将引导你从零开始,利用Python和Socket库......
  • 使用 python 抓取网页
    我有以下网页</div><ahref="https://www.emag.ro/laptop-lenovo-thinkbook-15-iil-cu-procesor-intel-core-i7-1065g7-pana-la-3-90-ghz-15-6-full-hd-16gb-512gb-ssd-intel-iris-plus-graphics-free-dos-mineral-grey-20sm003jrm/pd/DKBK1TMBM/#reviews-section&......
  • Python:需要有关类方法的帮助
    我有一个类“Duck”和“Dog”,如下所示:classDuck:defquack(self):print("quack")classDog:defbark(self):print("Ijustbark")以两种方式定义了另一个类并启动:case:1classItQuacks:def__init__(self,animal):......