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

news2024/12/25 12:25:38

【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()

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

八国多语言微盘微交易所系统源码 单控点控 K线完好

安装环境linux NGMySQL5.6PHP7.2(函数全删)pm2管理器(node版本选择v12.20.0) config/ database.php 修改数据库链接 设置运行目录 public 伪静态thinkphp

【图解IO与Netty系列】IO的同步与异步、阻塞与非阻塞,Linux五种IO模型

IO的同步与异步、阻塞与非阻塞,Linux五种IO模型 IO的同步与异步,阻塞与非阻塞阻塞IO与非阻塞IO同步IO与异步IO Linux五种IO模型BIONIOIO多路复用信号驱动IOAIO IO的同步与异步,阻塞与非阻塞 我们有时会看到类似于同步阻塞式IO、同步非阻塞式…

【python】python 全国5A级景区数据采集与pyecharts可视化(源码+数据+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

C++ prime 第五版 第14章 重载运算与类型转换

一、基本概念 重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成。和其他函数一样,重载的运算符也包含返回类型、参数列表以及函数体。 我们不能为内置类型的运算对象重定义运算符。对于一个运算符函数来说&…

美甲店会员预约系统管理小程序的作用是什么

女性爱美体现在方方面面,美丽好看的指甲也不能少,市场中美甲店、小摊不少,也跑出了不少连锁品牌,70后到00后,每个层级都有不少潜在客户,商家需要获取和完善转化路径,不断提高品牌影响力与自身内…

Python学习---利用Python操作数据库

如何理解连接connection和游标 cursor? connection就像是连接出发地和目的地的高速公路cursor就像是在高速公路上的货车-拉货我们使用游标就可以完成对数据的操作当我们完成操作完成后就可以停下货车,然后公路再停止使用。 pysql实现查询 ""…

Linux基础(七):Linux 系统上的库文件生成与使用

学过C语言我们知道,C语言有标准库和自定义库,这些方便了我们的实际开发,提供了已经实现好的函数接口,我们使用的时候,只需要引入头文件即可,那具体的实现过程又是怎么样的呢?我们又该如何实现我…

[7] CUDA之常量内存与纹理内存

CUDA之常量内存与纹理内存 1. 常量内存 NVIDIA GPU卡从逻辑上对用户提供了 64KB 的常量内存空间,可以用来存储内核执行期间所需要的恒定数据常量内存对一些特定情况下的小数据量的访问具有相比全局内存的额外优势,使用常量内存也一定程序上减少了对全局…

Java进阶学习笔记24——Object类

Object类: Object类是Java中所有类的祖宗类,因此,Java中所有类的对象都可以直接使用Object类中提供的一些方法。 所有类都是Object类的子孙类。 API文档: Object类的成员方法: Object类的常见方法: Student类&…

python冰雹序列的探索与编程实现

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、冰雹序列的奥秘 二、编程实现冰雹序列 三、测试与验证 四、总结与展望 一、冰雹序列的…

pycharm配置python开发环境—miniconda+black+gitlab

下载miniconda管理python开发环境 miniconda下载地址:https://docs.anaconda.com/free/miniconda/ miniconda最新版本的python版本是python3.12.2,下载这个miniconda最新版本后,会导致执行conda create -n py31013 python3.10.13指令配置py…

基于STM32实现智能水族箱控制系统

目录 引言环境准备智能水族箱控制系统基础代码示例:实现智能水族箱控制系统 水温传感器数据读取水泵与加热器控制水位传感器数据读取用户界面与显示应用场景:水族箱管理与环境控制问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌…

力扣刷题---2283. 判断一个数的数字计数是否等于数位的值【简单】

题目描述 给你一个下标从 0 开始长度为 n 的字符串 num &#xff0c;它只包含数字。 如果对于 每个 0 < i < n 的下标 i &#xff0c;都满足数位 i 在 num 中出现了 num[i]次&#xff0c;那么请你返回 true &#xff0c;否则返回 false 。 示例 1&#xff1a; 输入&a…

C++面向对象程序设计 - 输入和输出

程序的输入指的是文件将数据传送给程序&#xff0c;程序的输出指的是从程序将数据传送输出文件。 C的输入和和输出包括以下三个方面&#xff1a; 对系统指定的标准设备的输入和输出&#xff0c;即从键盘输入数据&#xff0c;输出到显示器屏幕。以外存磁盘&#xff08;或光盘、…

消费者相关高效读写ZK作用

消费者分区分配策略 目录概述需求&#xff1a; 设计思路1.消费者分区分配策略2. 消费者offset的存储3. kafka消费者组案例4. kafka高效读写&Zk作用5. Ranger分区再分析 实现思路分析 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show …

学习存储协议的利器,聊聊tcpdump和Wireshark

数据存储技术分为多个方面,包括数据持久化、数据映射、数据压缩和通信协议等等。其中通信协议是数据存储技术中非常重要的一部分,正是通信协议使得计算节点可以访问存储设备。同时,也正是不同的协议让存储系统呈现不同的形态。 如下图所示,通过iSCSI协议,可以将存储端的存…

解决Vue3+TS+vite,VSCode 高亮语法错误

一般像这种提示&#xff0c;有可能就是TypeScript语法的识别问题&#xff0c; 一般我们重装一下Vue - Official插件 或者将tcconfig.json中的moduleResolution改为node模式&#xff0c; 基本都是TypeScript无法识别vue文件中的TypeScript语句导致的

22款奔驰GLE450升级原厂AMG阀门运动排气声浪

提升车辆外观&#xff1a;空气悬挂系统可以调节车辆的高度&#xff0c;使车身更接近地面或提高离地间隙&#xff0c;从而改变车辆外观&#xff0c;增加个性化和独特性。 改善驾驶舒适性&#xff1a;空气悬挂系统具有更好的减震效果&#xff0c;可以提供更舒适的驾驶体验&#…