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

目标检测——YOLOv8训练自己的数据集

1.下载YOLOv8源代码

下载链接

2. 配置环境
conda create -n yolov8 python=3.8
conda activate yolov8
pip install -r requirements.txt
pip install -e .

无需执行下面这步!

pip freeze > requirements.txt # 导出conda环境中相关的包
3. 数据集准备

数据集标签的格式标注为yolo的txt格式,在labelimg选择YOLO即可,然后进行标注,最后把数据集划分为训练集,验证集,(测试集)即可

  • 非yolo的txt格式,需进行数据集格式转换,相应的转换代码:链接

  • 划分数据集代码见:链接

4.预训练模型

如果未改变网络结构,则可以加载官方在COCO数据集上训练好的预训练模型,加快网络的收敛速度,下载相应的目标检测预训练模型并导入预训练模型,下载链接:链接

5.配置参数
  • 配置数据集路径,类别等(data.yaml文件)
  • 训练轮次(epoch)
  • 批次(batchsize)
  • 数据增广等超参数…
6.开始训练

创建train.py文件,复制以下代码运行

from ultralytics import YOLO
if __name__ == '__main__':# 加载模型model = YOLO("ultralytics/ultralytics/cfg/models/v8/yolov8n.yaml")# 加载预训练权重model.load("yolov8n")# 训练模型results = model.train(data="ultralytics/data/data.yaml",  resume=True,epochs=100,project='train',patience=30,name='exp',amp=False)
7.开始推理

创建val.py文件,复制以下代码运行

from ultralytics import YOLOif __name__ == '__main__':model = YOLO('runs/train/exp/weights/best.pt')model.val(data='dataset/data.yaml',split='test',imgsz=640,batch=1,project='runs/val',name='exp',)
8.开始预测

创建detect.py文件,复制以下代码运行。如果需要对预测的结果进行一些处理,则需要知道预测的结果张量中代表的含义,参考链接如下:链接

from ultralytics import YOLOif __name__ == '__main__':model = YOLO('runs/train/exp/weights/best.pt') # select your model.pt pathmodel.predict(source='dataset/images/test',project='runs/detect',name='exp',save=True, )

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一些常见的数据处理技术
  • android compose contraintlayout 使用 bias
  • 初识C++ · C++11(1)
  • 代码随想录——判断子序列(Leetcode 392)
  • 立仪科技光谱共焦应用之金属隔膜静态重复性测量
  • 化工材料分析丨结构分析丨配方分析丨元素分析
  • 第一百八十八节 Java XML教程 - Java StAX
  • 前端 package.json 的每一项作用
  • 初始化列表的基本介绍
  • 数学建模~~追逐仿真问题
  • 无人机培训机构推广运营理论技术
  • Python中各类常用内置转换函数
  • uniapp免费申请苹果证书教程每次7天可用于测试
  • Redis,MongoDB,Memcached未授权访问漏洞(及其修复方法)
  • NOI Linux 2.0 的安装说明以及使用指南
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • crontab执行失败的多种原因
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • iOS 颜色设置看我就够了
  • JavaScript异步流程控制的前世今生
  • miaov-React 最佳入门
  • spring boot 整合mybatis 无法输出sql的问题
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 为视图添加丝滑的水波纹
  • 原生Ajax
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • # 职场生活之道:善于团结
  • #pragma预处理命令
  • #Z2294. 打印树的直径
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (八)c52学习之旅-中断实验
  • (四)Controller接口控制器详解(三)
  • (一)UDP基本编程步骤
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)Sublime Text3配置Lua运行环境
  • .gitignore文件---让git自动忽略指定文件
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net专家(高海东的专栏)
  • 。。。。。
  • :class的用法及应用
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [000-01-011].第2节:持久层方案的对比
  • [APIO2015]巴厘岛的雕塑
  • [ARM]ldr 和 adr 伪指令的区别
  • [Asp.net mvc]国际化
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [Contiki系列论文之2]WSN的自适应通信架构