YOLO V10简单使用

news2024/9/23 23:40:47

一.环境安装

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 cv2

video = cv2.VideoCapture("./001.mp4")
num=0#计数器
save_setp=30#间隔帧数
while True:
    ret,frame=video.read()
    if not ret:
        break
    num+=1
    if 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.coloradmin.cn/o/2158780.html

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

相关文章

GitHub上图像超分开源项目推荐【持续更新】

RAISR 介绍:RAISR(Rapid and Accurate Image Super-Resolution)是一种由Google开发的图像超分辨率技术,它利用机器学习算法来提高低分辨率图像的质量,使其看起来更加清晰和细致。这项技术可以在移动设备上实时运行&am…

JBoss EJBInvokerServlet CVE-2013-4810 反序列化漏洞

环境 vulhub/jboss/JMXInvokerServlet-deserialization 复现 此漏洞存在于JBoss中 /invoker/JMXInvokerServlet 路径。访问若提示下载 JMXInvokerServlet,则可能存在漏洞: 1.访问123.57.211.129:8081/invoker/JMXInvokerServlet 使⽤JavaDeserH2HC进…

聊聊通过「白包账号」能否提高谷歌上架成功率?

大家好,我是牢鹅!按国际惯例先吐槽下谷歌,近一年来对谷歌开发者来说很难,一方面谷歌政策严厉打击;另一方面审查机制不够健全,过分依赖大模型驱动审核,改善他们所谓的执行力。与苹果相比&#xf…

Easy Excel从入门到精通!!!

目录 1.文件导入 1.1基本方式读取excel文件内容 1.2注解模型映射器读取excel 1.3多行表头读取 1.4文件上传读取 2.文件导出 2.1基本方式导出 2.2模型映射导出 2.3设置行高、列宽等内容 2.4合并单元格 2.5导出设置超链接、批注、公式 2.6模板填充对象导出 2.7模板填…

AI大模型日报#0923:李飞飞创业之后首个专访、华为云+腾讯音乐发布昇腾适配方案

导读:AI大模型日报,爬虫LLM自动生成,一文览尽每日AI大模型要点资讯!目前采用“文心一言”(ERNIE-4.0-8K-latest)、“智谱AI”(glm-4-0520)生成了今日要点以及每条资讯的摘要。欢迎阅…

2024个人简历模板免费可编辑,可能是整理最全的简历(支持Word格式下载)

提供各行业简历模板WORD可编辑格式下载,涵盖求职简历模板、大学生简历模板、个人简历模板、留学简历模板、英文简历模板、免费简历模板、工作简历模板、保研简历模板、暑期实习简历、寒假实习简历、校招简历等。 都是word格式,直接下载就能用。 网盘链…

【重磅】考虑火电机组储热改造的电力系统低碳经济调度

目录 1 主要内容 储热改造原理 约束条件 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《考虑火电机组储热改造的电力系统低碳经济调度》,利用原文献火电机组储热改造方案建立模型,在传统火电机组的基础上加装热能存储系统&#xf…

BEV学习--Nuscenes数据集解读

一、Nuscenes数据集简介 Nuscenes数据的采集来自不同城市的1000个场景中,采集车上配备了完善的传感器,包括6个相机(CAM)、1个激光雷达(LIDAR)、5个毫米波雷达(RADAR)、IMU和GPS&…

【RabbitMQ】RabbitMQ 的概念以及使用RabbitMQ编写生产者消费者代码

目录 1. RabbitMQ 核心概念 1.1生产者和消费者 1.2 Connection和Channel 1.3 Virtual host 1.4 Queue 1.5 Exchange 1.6 RabbitMO工作流程 2. AMQP 3.RabbitMO快速入门 3.1.引入依赖 3.2.编写生产者代码 ​3.3.编写消费者代码 4.源码 1. RabbitMQ 核心概念 在安装…

Java中的事件(动作监听-ActionListener)

(一)、ActionListener接口 ActionListener接口用于处理用户界面上的动作事件,例如:按钮点击、菜单选择等。实现ActionListener接口需要重写actionPerformed(ActionEvent e)方法,该方法会在动作发生时被调用。 &#…

苍穹外卖上半部分总结

苍穹外卖一个很经典的项目 虽然已经烂大街,但项目依旧是很优秀,并且代码十分规范,很值得学习。 前置介绍 niginx反向代理 前端和后端的url请求不一致的原因:前端是请求到nginx服务器,再由nginx服务器转发到后端 ngi…

个人防护装备检测系统源码分享

个人防护装备检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

字母与符号检测系统源码分享

字母与符号检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

全国职业院校技能大赛(大数据赛项)-平台搭建Spark、Scala笔记

Spark作为一个开源的分布式计算框架拥有高效的数据处理能力、丰富的生态系统、多语言支持以及广泛的行业应用。Scala是一种静态类型的编程语言,它结合了面向对象编程和函数式编程的特性,被誉为通用的“大数据语言”。而二者的结合更能迸发出新奇的化学反…

深度学习之微积分预备知识点(2)

极限(Limit) 定义:表示某一点处函数趋近于某一特定值的过程,一般记为 极限是一种变化状态的描述,核心思想是无限靠近而永远不能到达 公式: 表示 x 趋向 a 时 f(x) 的极限。 知识点口诀解释极限的存在左…

itextsharp报错 PdfReader not opened with owner password

itextsharp报错 PdfReader not opened with owner password itextsharp读取PDF时报错: PdfReader not opened with owner password 报错原因(据说是):pdf 文件设置了加密。 网上搜索了一下,查到大多数答案是: 在创建pdfReader…

JDK7u21 HashMap版

今天在搞ROME HotSwappableTargetSource链的时候突然发现,JDK7U21反序列化链不仅HashMap.put触发了key.equals putForCreate也调用了 而且HashMap.readObject直接调用了putForCreate来还原 what?直接向HashMap两个put不就完了,还搞什么HashSet 开弄&am…

闪回科技再冲刺上市:曾夸大融资规模,毛利率下滑,有股东退出

近日,闪回科技有限公司(下称“闪回科技”)递交招股书,准备在港交所主板上市。据贝多财经了解,该公司曾于2024年2月递表,此次是“失效”后的更新版本,清科资本为其独家保荐人。 闪回科技在招股书…

5款好用的电脑软件,个个良心实用

分享5款好用但冷门的windows软件,个个良心实用,而且大部分免费,值得统统装进电脑里! 1、EagleGet——高速下载器 一款免费的高速下载软件,页面设计简洁,没有广告,支持 HTTP、HTTPS、FTP、MMS、…

​数据库: MyBatis-Plus

MyBatis-Plus MyBatis-Plus 是 MyBatis 的增强工具,核心作用是简化 CRUD 操作和提升开发效率。它提供基础的增删改查方法、分页插件、条件构造器以及代码生成器,帮助减少重复代码量。MyBatis-Plus 不支持自动建表,专注于简化数据库操作&…