当前位置: 首页 > news >正文

Yolov10训练,转化onnx,推理

                         yolov10对于大目标的效果好,小目标不好

一、如果你训练过yolov5,yolov8,的话那么你可以直接用之前的环境就行

目录

一、如果你训练过yolov5,yolov8,的话那么你可以直接用之前的环境就行

二、配置好后就可以配置文件了

三、然后开始训练

推理图片

转化onnx模型


具体你可以看我另一篇的文章,yolov5-7.0实现训练推理以及C#部署onnx-CSDN博客

我这是配置的cuda  调用GPU的版本,下载可以再我的博文里下载 

cuda各个版本的Pytorch下载网页版,模型转化工具,免费gpt链接_cuda国内镜像下载网站-CSDN博客

安装的教程可以直接再网上搜索既可以了

二、配置好后就可以配置文件了

下载源码 GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection

建议你手动下载预训练模型,和在命令行中运行训练,因为你用右键run有可能直接下载 v8的预训练模型。

下载预训练模型 Https://github.com/jameslahm/yolov10/releases/download/v1.0/yolov10s.pt

最小模型是N  最大模型是X  区别就是,越小的就越快,精度相对的会低一点点,越大的就越慢,精度会高一点,建议用S和M的比较中和,设备不行的就用N

   用labelimg标注后这种放,和yolov5一样,coco数据集

然后再目录中创建一个data文件夹,再其中创建一个data.yaml的文件

然后配置数据集读取路径

三、然后开始训练

你可以在目录中创建三个文件,detect.py,export.py,train.py文件像这样

填入代码

train.py

from ultralytics import YOLOv10model_yaml_path = "ultralytics/cfg/models/v10/yolov10s.yaml"
#数据集配置文件
data_yaml_path = 'data/data.yaml'
#预训练模型
pre_model_name = 'yolov10s.pt'if __name__ == '__main__':#加载预训练模型model = YOLOv10(model_yaml_path).load(pre_model_name)#训练模型results = model.train(data=data_yaml_path,epochs=150,batch=4,name='train/exp')

打开v10算法代码文件夹的根目录  在路径中写cmd回车 

进入这里,查看你的环境

用代码

conda activate 你的环境名

然后就进入了

直接运行   --cache 是用你的磁盘跑,如果电脑不牛逼  加上这个 可以提升速度

python train.py --cache

然后就可以运行了

四、推理图片

打开刚刚创建的detect.py文件 添加代码 就可以推理了

from ultralytics import YOLOv10import torch
if  torch.cuda.is_available():device = torch.device("cuda")
else:raise Exception("CUDA is not")model_path = r"H:\\DL\\yolov10-main\\runs\\detect\\train\\exp\\weights\\best.pt"
model = YOLOv10(model_path)
results = model(source=r'H:\DL\yolov10-main\dataDakeset\CCD_dataBlue25\test',name='predict/exp',conf=0.45,save=True,device='0')

五、转化onnx模型

打开刚刚创建的export.py 文件 添加代码,转哪中模型直接替换onnx就行

from ultralytics import YOLOv10
model=YOLOv10("H:\\DL\\yolov10-main\\runs\\detect\\train\\exp\\weights\\best.pt")model.export(format='onnx')
# help='torchscript, onnx, openvino, engine, coreml, saved_model, pb, tflite, edgetpu, tfjs, paddle'

自此yolov10python的训练推理转化流程全部结束,有问题可以评论区问或者私信

http://www.lryc.cn/news/394984.html

相关文章:

  • GEE代码实例教程详解:洪水灾害监测
  • 运维锅总详解系统设计原则
  • 深度学习笔记: 最详尽解释预测系统的分类指标(精确率、召回率和 F1 值)
  • GEE代码实例教程详解:MODIS土地覆盖分类与面积计算
  • LT86101UXE 国产原装 HDMI2.0 / DVI中继器方案 分辨率 4Kx2K 用于多显示器 DVI/HDMI电缆扩展模块
  • FastApi中的常见请求类型
  • 服务器,云、边缘计算概念简单理解
  • 【Linux系列2】Cmake安装记录
  • C++ STL 多线程库用法介绍
  • Jmeter实现接口自动化
  • 【大模型】多模型在大模型中的调度艺术:解锁效率与协同的新境界
  • LeetCode 704, 290, 200
  • 如何利用Java进行大数据处理?
  • 【论文通读】GUICourse: From General Vision Language Model to Versatile GUI Agent
  • 王道考研数据机构:中缀表达式转为后缀表达式
  • PL/SQL安装+汉化教程
  • Qt | Qt 线程相关类概述和举例
  • Linux 复现Docker NAT网络
  • HBuilder X 小白日记03-用css制作简单的交互动画
  • 【深度学习练习】心脏病预测
  • 创建react的脚手架
  • 用例导图CMind
  • C++ 仿函数
  • Redhat 安装 docker 网络连接超时问题
  • Java面试题:undo log和redo log
  • 【Scrapy】Scrapy 中间件等级设置规则
  • SDK环境的安装(测试使用)
  • 【matlab】【python】爬虫实战
  • Android TV跨平台开发心得
  • View->裁剪框View的绘制,手势处理