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

YOLO V10简单使用

一.环境安装

1、下载官方源码

官方GitHub地址:https://github.com/THU-MIG/yolov10 点击跳转
image.png

2. 配置conda环境

  1. 在conda创建python3.9环境
conda create -n yolov10 python=3.9
  1. 激活切换到创建的python3.9环境
conda activate yolov10

3. 安装YOLOv10依赖

  • 切换到yolov10源码根目录下,安装依赖
  • 注意:会自动根据你是否有GPU自动选择pytorch版本进行按照,这里不需要自己去选择pytorch和cuda按照,非常良心
pip install -r requirements.txt

如果执行效果缓慢可以试试加速镜像

pip install -r requirements.txt -i https://pypi.doubanio.com/simple
  • 执行命令
pip install -e .

二、数据图片准备

这里以视频为例,自选任意视频,使用如下代码将视频抽帧处理

import cv2video = cv2.VideoCapture("./001.mp4")
num=0#计数器
save_setp=30#间隔帧数
while True:ret,frame=video.read()if not ret:breaknum+=1if num%save_setp==0:cv2.imwrite("./img/"+str(num)+".jpg",frame)

三、图片标注

1. 环境安装

环境安装:pip install labelimg
启动:labelimg
a2be86d3a0d7f58fe1f0ff95f8dc2d8b.png

2.基础设置

  • 设置打开文件夹和保存文件夹
    acff871b861775f2ca547ea2fc7982dd.png
  • 设置自动保存:工具栏 view-auto save mode
  • 切换模式
    43ef603c08b0356d889b26e8d298759f.png
  • 点击save保存修改

3.开始标注

  1. 双击右侧FileList内的图片打开后,右键create RectBox开始标注,在图像上拖拽画出矩形框,在弹出的对话框里输入标签名称(以Ly为例)或选择,然后点击 OK
    da6c9a1c884dd2c3b675f96f6f117bba.png
    1863180-20220627155700218-1285711873.png
  2. 相同的步骤对目标物体进行标注,使用过的标签再下一次可直接选择不必重新输入;已经标注的框可在右侧看到,可以在图像中进行二次拖拽调整1863180-20220627155849688-1079874332.png
  3. 然后点击 Next Image,对下一个图片进行标注
    1863180-20220627161405153-1616391758.png
  4. 然后会在此前设置好的保存目录中得到标注信息
    注意:yolov10标注完成后的数据文件中,每一行的数据格式为: 类型 x中心坐标 y中心坐标 宽度 高度
     

4.make senc数据集标注工具

  • 地址:https://www.makesense.ai/
  • 辅助标注:
    1. pip instll tensorflowjs==2.8.5
    2. YOLOv5模型导出tfjs
    3. make scene上传模型

5.roboflow公开数据集

  • https://public.roboflow.com/object-detection
  • https://universe.roboflow.com/

四、训练数据准备

1.数据集准备

准备文件夹

  • images:存放图片
    1. train:训练集图片
    2. val: 验证集图片
  • labels:存放标签
    1.train:训练集标签文件,要与训练集图片名称一一对应
    2.val:验证集标签文件,要与验证集图片名称一一对应
    3.classes.txt(可以没有):这个文件是标注的类型文件

此前打标签时导入的文件夹就是训练集,输出结果就是验证集,无非是把目录结构按上述更改一下
一般来说,训练集与验证集的数据比例是8:2,即如果又100张图片,那么80张作为训练集,20张作为验证集

2.文件准备

  1. 准备图片文件夹:在yolov10源码目录下,新建datasets文件夹,将刚才准备好的图片数据复制进该文件夹,bvn为项目名
    image.png
  2. 从ultralytics/cfg/datasets文件夹下随便复制一个yaml配置文件至ultralytics-main根目录下
    image.png
  3. 改写配置文件
    image.png
    1. path为从datasets目录开始算的根文件夹名称
    2. train与val时训练集与验证集的位置
    3. names这里就是分类标签,可以按照标注后生成的calsses.txt文件填下

五、启动训练

1. 命令行启动训练

yolo detect train data=coco.yaml model=yolov10n/s/m/b/l/x.yaml epochs=500 batch=256 imgsz=640 device=0,1,2,3,4,5,6,7

2. 代码启动训练

在源码目录下新建xx.py文件

from ultralytics import YOLOv10 #这里需要注意,这里导入的是YOLOv10
# 这个训练权重可以根据自己情况更换不同的权重文件,在后续权重文件章节会详细解释
# 关于这个yolov10n.pt文件从哪来,亦可以在后续权重文件章节找到下载路径
model = YOLOv10("yolov10n.pt")#这里启动训练,data为刚才的yaml文件路径,workers为0,表示单线程训练,windows系统中workers不为0可能会报错
model.train(data='yolov10-bvn.yaml',workers=0, epochs=50, batch=-1)

在启动训练时候可能会报如下错误:

  1. ModuleNotFoundError: No module named ‘huggingface_hub’
    100c9533d4152c458e071aed75213bb.png
    解决办法:
pip install huggingface_hub
  1. Note dataset download directory is ‘G:\yolo\yolov10\datasets’. You can update this in ‘C:\Users\11839\AppData\Roaming\yolov10\settings.yaml’
    image.png
    解决办法:找到所提示的yaml文件,这里是’C:\Users\11839\AppData\Roaming\yolov10\settings.yaml’,使用记事本打开将文件中的datasets_dir参数值删除并保存即可
    image.png

3. 模型训练结果

模型训练结果会保存至runs目录下
image.png
image.png
::: tip
模型存储在weights文件夹下
best.pt:是训练出的最好的模型
last.pt:是最后面的模型,如果需要继续训练需要使用
:::

4.模型测试:

yolo detect predict model=runs/detect/train/weights/best.pt source=001.mp4 show=True

001.mp4是抽帧的视频

5.注意事项

50aaacdf1f052c78d8475bfaef4d9fa8.png
其中AppData是再当前用户目录下


http://www.mrgr.cn/news/34683.html

相关文章:

  • 【Kafka-go】golang的kafka应用
  • 光学全息详解
  • EasyUI弹出框行编辑,通过下拉框实现内容联动
  • Day39 | 动态规划 :完全背包应用 零钱兑换零钱兑换II
  • 线程与进程的区别(面试)
  • Android——多线程、线程通信、handler机制
  • 0-1开发自己的obsidian plugin DAY 1
  • C++的哲学思想
  • iOS 顶级神器,巨魔录音机更新2.1正式版
  • 一看就会!PS2024下载安装教程详解
  • 在 Java 中,你如何实现不可变对象?不可变对象有哪些好处?
  • 【Godot4.3】三角形类
  • JS的链判断符有几种写法,有哪些用法?
  • # 深度学习笔记(9)huggingface 构建数据集
  • kubernetes网络(三)之bird的路由反射器的使用
  • 大数据新视界 --大数据大厂之 Reactjs 在大数据应用开发中的优势与实践
  • npm、yarn、pnpm 最新国内镜像源设置和常见问题解决
  • Axure精选各类组件案例集锦:设计灵感与实战技巧
  • 速盾:网页游戏部署高防服务器有什么优势?
  • Spring MVC 执行流程
  • FortiGate 硬盘格式化指南
  • C++11新特性和扩展(1)
  • LLMs之Qwen:Qwen2.5的简介、安装和使用方法、案例应用之详细攻略
  • 防护装备穿戴与否检测系统源码分享
  • Algo-Lab 2 Stack Queue ADT
  • GUI编程之MATLAB入门详解(01)