【yolov10】使用自己的数据集训练目标检测模型

【yolov10】使用自己的数据集训练目标检测模型

    • 一、anaconda安装
    • 二、环境配置
    • 三、数据集制作
      • 1、labelimg的安装
      • 2、使用labelimg`
    • 四、正片
      • 1、下载yolov10源码
      • 2、数据集目录
      • 3、训练
      • 4、推理

一、anaconda安装

直接参考前一篇博客:
https://blog.csdn.net/m0_71523511/article/details/136546588

pycharm开发环境参考:
https://www.bilibili.com/video/BV1Cr4y1u76N/?p=3&spm_id_from=pageDriver&vd_source=2a10d30b8351190ea06d85c5d0bfcb2a

二、环境配置

官方给出的环境配置使用的torch版本是2.0.1,我电脑最高也就支持到1.11.0,所以就没法用gpu来训练了,当然也可以用自己的可以使用gpu训练的环境来训练yolov10,就是会有一些依赖报错,根据提示进行修改试试。
打开anaconda命令行:
在这里插入图片描述

conda create -n yolov10 python=3.9
conda activate yolov10
pip install -r requirements.txt
pip install -e .

三、数据集制作

1、labelimg的安装

首先打开cmd命令行(快捷键:win+R)。进入cmd命令行控制台。输入如下的命令:`

pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

2、使用labelimg`

①搜索labelimg

在这里插入图片描述

②设置

在这里插入图片描述
格式选择yolo,然后点击open dir,选择存放待打标图片的文件夹,点击change save dir来更改保存标签的文件夹。

③打标

常用快捷键如下:

A:切换到上一张图片

D:切换到下一张图片

W:调出标注十字架

del :删除标注框框

Ctrl+u:选择标注的图片文件夹

Ctrl+r:选择标注好的label标签存在的文件夹

在这里插入图片描述
这样标注完之后可以在保存标签的目录看到yolo格式的标签,它会自己生成一个类别文件:
在这里插入图片描述

四、正片

1、下载yolov10源码

https://github.com/THU-MIG/yolov10
解压后目录如下:
在这里插入图片描述

2、数据集目录

将前面打标好的数据集以下面这种目录格式放置,并新建data.yaml文件:
在这里插入图片描述
data.yaml文件如下:
names根据自己数据集的标签来,train和val就是训练集和验证集的图片路径

train: C:/new_pycharm_project/yolov10-main/datasets/Data/train/images
val: C:/new_pycharm_project/yolov10-main/datasets/Data/val/images


# Classes
nc: 3  # number of classes
names: ['person', 'hat', 'one']  # class names

3、训练

在数据集的同级目录下新建一个train.py文件:

from ultralytics import YOLOv10

model_yaml_path = "ultralytics/cfg/models/v10/yolov10s.yaml"
#数据集配置文件
data_yaml_path = 'datasets/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_v10')

到以下网址下载s版本的预训练模型,并将此pt模型放置到与train.py的同级目录下:
https://github.com/jameslahm/yolov10/releases/download/v1.0/yolov10s.pt

右击开始训练:
在这里插入图片描述
等待训练结束之后可以在runs目录下找到权重文件:
在这里插入图片描述

4、推理

在数据集的同级目录下新建一个infer.py文件,并放置一张待检测的图片名字为infer.jpg:

from ultralytics import YOLOv10

model = YOLOv10("runs/detect/train_v10/weights/best.pt")

results = model.predict("infer.jpg")

results[0].show()

运行结果如下:
在这里插入图片描述
在这里插入图片描述
可以看出来推理时间很长,我这里只训练了一轮所以效果不好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/652401.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网易面试:手撕定时器

概述: 本文使用STL容器-set以及Linux提供的timerfd来实现定时器组件 所谓定时器就是管理大量定时任务,使其能按照超时时间有序地被执行 需求分析: 1.数据结构的选择:存储定时任务 2.驱动方式:如何选择一个任务并执…

CC工具箱使用指南:【淹没区分析(BHM)】

一、简介 群友定制工具。 这个工具适用面比较小。 工具的应用场景如下: 提供一个淹没区范围,类型是面要素。统计这个范围内的一些线、面要素的面积或长度。 给定的几个数据有:耕地、永久基本农田、房台、道路(线)…

LeetCode - 贪心算法 (Greedy Algorithm) 集合 [分配问题、区间问题]

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/139242199 贪心算法,是在每一步选择中,都采取当前状态下,最好或最优(即最有利)的选择&…

【MySQL】库的操作+表的操作

库的操作表的操作 1.库的操作1.1创建数据库1.2删除数据库1.3查找数据库1.4修改数据库1.5数据库备份和恢复1.6查看连接情况 2.库的操作2.1创建表2.2查看表结构2.3修改表2.4删除表 点赞👍👍收藏🌟🌟关注💖💖 …

Petalinux 制作ZYNQ镜像文件流程

1概述 在Zynq-7000 SoC中搭建运行Linux,嵌入式软件栈。 处理器系统引导是一个分两个阶段的过程。第一个阶段是一个内部 BootROM,它存储 stage-0 的引导代码。BootROM 在 CPU 0 上执行,CPU 1 执行等待事件(WFE)指令。…

单片机通信协议(1):SPI简介

关于SPI SPI(串行外设接口)是板载设备间通信接口之一。它是由摩托罗拉公司(飞思卡尔半导体)推出的。由于其简单性和通用性,它被纳入各种外围设备中,并与飞利浦I2C总线并列。 SPI的三线或四线信号数量比IIC…

connection problem,giving up

参考: https://zhuanlan.zhihu.com/p/93438433 仅仅安装 sudo apt-get install xrdp 在用RDP远程的时候总是卡在登录界面,connection problem,giving up, some problem… 第一步: sudo apt-get install xserver-xorg-core sudo…

接口性能测试复盘:解决JMeter超时问题的实践

在优化接口并重新投入市场后,我们面临着一项关键任务:确保其在高压环境下稳定运行。于是,我们启动了一轮针对该接口的性能压力测试,利用JMeter工具模拟高负载场景。然而,在测试进行约一分钟之后,频繁出现了…

【OpenVINO™】在C#中使用 OpenVINO™ 部署 YOLOv10 模型实现目标

文章目录 1. 前言1.1 OpenVINO™ C# API1.2 YOLOv10 2. 模型获取2.1 源码下载2.2 配置环境2.3 下载模型 3. Yolov10 项目配置3.1 项目创建与环境配置3.2 定义模型预测方法3.2.1 定义目标检测模型方法3.2.2 使用OpenVINO™ 预处理接口编译模型 3.2 模型预测方法调用 4. 项目运行…

在Linux中 --help 和 -h 的区别

在Linux命令行工具中,--help 和 -h(而不是 -help)是常见的选项,用于显示工具的帮助信息。 --help: 这是一个长选项(long option),用于提供详细的帮助信息。许多工具都支持这个选项。…

这款信创FTP软件,可实现安全稳定的文件传输

信创,即信息技术应用创新,2018年以来,受“华为、中兴事件”影响,国家将信创产业纳入国家战略,并提出了“28n”发展体系。“8”具体指金融、石油、电力、电信、交通、航空航天、医院、教育等主要行业。目前企业使用比较…

ElementPlus-日期选择器实现周选择

ElementPlus的日期选择器实现周选择,并且显示的是日期范围,其效果如下: 首先修改中文语言环境,否则日期选择器是从周日开始的。在main.js文件中加上以下代码: import ElementPlus,{dayjs as elDayjs} from element-…

【包邮送书】你好!C语言

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

使用YOLOv9训练和测试自己的数据集

任务:检测舌头上的裂纹和齿痕 已经有了labelme标注的数据集,并且转为了coco格式 参考: 详细!正确!COCO数据集(.json)训练格式转换成YOLO格式(.txt)_coco数据集的train…

【Fiddler抓包工具】第五节.安卓、IOS抓包+fildder插件

文章目录 前言一、HTTPS抓包 1.1 HTTPS与HTTP区别 1.2 HTTPS抓包设置过程 1.3 错误解决方法 1.4 验证证书是否安装成功 1.5 Firefox HTTPS请求捕获二、IOS设备APP抓包 2.1 APP抓包Fiddler设置 2.2 APP抓包IOS设备设置 2.3 And…

拓展虚拟世界边界,云手机可以做到吗

虚拟世界,AI,VR等词汇是21世纪最为流行的词汇,在科技背后,这些词汇的影响变得越来越大,已经走进了人们的世界,比如之前APPLE发布的vision pro,使人们能够更加身临其境的体验到原生os系统&#x…

linux下docker 的使用(2)

上期我们讲了网络,现在来进行最后的 docker的基础内容 java项目的部署 假如说 我们java 项目已经写好了,现在在maven中打包一下我们的项目,然后会得到一个jar包,把jar包 上传到虚拟机上 点击package 命令,会得到一个…

js toFixed()四舍五入丢失精度问题处理

js toFixed()四舍五入丢失精度问题处理 错误展示 看了下lodash的代码,大概是通过使用科学计数法扩大10的n次,将操作数化为整数运算,可以避免精度丢失。 /*** Creates a function like _.round.** private* param {string} methodName The …

艾体宝干货 | 教程:使用ntopng和nProbe监控网络流量

本教程旨在分享如何通过 ntopng 和 nProbe 这两款工具,深入了解和掌握网络流量监控的艺术。我们将提供从基本概念到高级应用的全面指导,涵盖了在多种平台和设备上的部署和配置步骤。不论您是专业人员还是技术爱好者,跟随本教程,都…