完整且详细的Yolov8复现+训练自己的数据集

Yolov8 的源代码下载:ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > CoreML > TFLite (github.com)https://github.com/ultralytics/ultralytics

Yolov8的权重下载:Releases · ultralytics/assets · GitHubUltralytics assets. Contribute to ultralytics/assets development by creating an account on GitHub.https://github.com/ultralytics/assets/releases

        yolov8做了更简单的部署,可以用于检测,分类,分割等,速度更快,精度更高。具体yolov8的复现可以参考:

一、代码,权重的下载

1. 打开上面的源代码地址,下载源代码压缩包。

 2.下载后解压。

 

3.权重的下载 :建议点击上面的链接直接下载,后面的predict.py虽然设置了自动下载,但是往往因为网络或者环境配置的问题cut掉。因为作者复现的是检测任务,权重放在detect文件下。

二、配置环境

1.建议每次做新项目都重建一个新环境,避免了各种包的版本的冲突,同时也为了避免在新项目跑通后旧项目又要重新配置环境的麻烦,所以重建环境是不错的选择。

1.打开Anaconda Prompt(如果没有Anaconda,建议下载一个,在配置环境的方面还是很方便的,具体的下载方式参考:(54条消息) 史上最全最详细的Anaconda安装教程_OSurer的博客-CSDN博客https://blog.csdn.net/wq_ocean_/article/details/103889237?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168653306416782427441050%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168653306416782427441050&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-103889237-null-null.142%5Ev88%5Econtrol,239%5Ev2%5Einsert_chatgpt&utm_term=anaconda%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187

2.具体操作:

(1) 创建环境

conda create -n yolov8 python==3.7

(官方要求>=3.7,所以python3.8也完全可以)

(2)激活环境

conda activate yolov8

(3)下载Pytorch,这个步骤也十分重要!根据自己电脑配置下载。官方要求Pytorch>=1.7。

首先查看自己的显卡配置:win+R  ,输入nvidia-smi

 去官网下载对应或者不大于箭头指出的版本,官网地址:PyTorchhttps://pytorch.org/

pip下载会比conda下载略快。

(4)配置好环境后,使用pycharm打开源代码工程文件

(5)选择下载的yolov8环境。

 

选择python.exe文件。 

 (6)配置yolov8要求的包,点击Temina,输入代码:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

-i https://pypi.tuna.tsinghua.edu.cn/simple/这是一次性换源代码,要关掉梯子才能链接。

三、验证一下代码是否可以预测例子

1.打开predict.py

2.直接运行,结果会保存在runs里。

3.可能碰见的错误是关于torchvision版本的问题,重新安装即可。 

四、制作自己的数据集

先介绍YoLov 8 最终所需要的数据集格式:

datasets

        |-images

                |--train

                |--val

                |--test

        |-labels

                |--train

                |--val

                |--test

1.Yolo要求的数据标签为.txt

2.与Yolov7 和v5 一样,可以使用labelme标注数据集,yolov8支持多种数据集格式,我是采用上面的格式跑通了,具体制作的过程可参考:

(60条消息) YOLOv5系列 1、制作自己的数据集_yolov5数据集制作_冯璆鸣的博客-CSDN博客https://blog.csdn.net/fjlaym/article/details/123992962?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168722415116800180654496%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168722415116800180654496&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-123992962-null-null.142%5Ev88%5Econtrol,239%5Ev2%5Einsert_chatgpt&utm_term=yolov5%E5%88%B6%E4%BD%9C%E8%87%AA%E5%B7%B1%E7%9A%84%E6%95%B0%E6%8D%AE%E9%9B%86&spm=1018.2226.3001.41873.制作好数据集后,建立.yaml文件,可建在任何位置,建议与v8其他yaml文件放在一起,修改路径就会方便很多。

 (1)修改模型配置文件

选择yolov8.yaml,修改nc为自己数据集所需检测类别的个数

 (2)修改数据加载配置文件,建议全部使用绝对路径

train: "D:/ultralytics-main/datasets/belt/train.txt"
val: "D:/ultralytics-main/datasets/belt/train.txt"
nc: 1
names: ["1"]

至此,所有的配置已经完成。

五、训练自己的数据集

(1)yolo提供自己的指令模式,在调参方面十分方便,当然不下载也可以,直接在文件修改和运行也无碍。

在Terminal下直接运行:

 pip install ultralytics

(2)训练:

yolo train data=你的配置文件(xx.yaml)的绝对路径 model=yolov8s.pt epochs=300 imgsz=640 batch=8 workers=0 device=0

如果想使用多卡训练,device='\0,1,2,xxx\'

(3)训练过程首先会显示你所使用的训练的硬件设备信息,然后下一段话则是你的参数配置,紧接着是backbone信息,最后是加载信息,并告知你训练的结果会保存在runs\detect\trainxx。

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

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

相关文章

Java 反射机制:概念、用途与示例

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

Go语言并发编程-案例_3

案例 并发目录大小统计 业务逻辑 统计目录的文件数量和大小(或其他信息)。示例输出: // 某个目录:2637 files 1149.87 MB 实现思路 给定一个或多个目录,并发的统计每个目录的size,最后累加到一起。 当…

Spring纯注解开发

前言 Spring3.0引入了纯注解开发的模式,框架的诞生是为了简化开发,那注解开发就是简化再简化。Spring的特性在整合MyBatis方面体现的淋漓尽致哦 一.注解开发 以前跟老韩学习SE时他就说:注解本质是一个继承了Annotation 的特殊接口,其具体实…

智慧农业新纪元:解锁新质生产力,加速产业数字化转型

粮食安全乃国家之根本,“浙江作为农业强省、粮食生产重要省份,在维护国家粮食安全大局中肩负着重大使命。浙江粮食产业经济年总产值已突破4800亿元,稳居全国前列,然而,同样面临着规模大而不强、质量效益有待提升、数字…

C语言 ——— 打印水仙花数

目录 何为水仙花数 题目要求 代码实现 何为水仙花数 “水仙花数”是指一个n位数,其各位数字的n次方之和等于该数本身 如:153 1^3 5^3 3^3,则153就是一个“水仙花数” 题目要求 求出0~100000的所有“水仙花数”并输出 代码实现 #i…

深入探索 SQL 中的 LIKE 右模糊匹配(LIKE RIGHT)与左模糊匹配(LIKE LEFT)

引言 在数据库操作中,LIKE 子句是执行模糊搜索的强大工具,用于匹配列中的数据与指定的模式。本文将详细介绍 LIKE 子句中的两种常用模式:右模糊匹配(LIKE RIGHT)和左模糊匹配(LIKE LEFT)&#…

python实现自动更新prometheus规则

由于公司需要监控目标类型较多,不能手动去改动prometheus规则然后reload,所以就通过python写了个程序自动更新prometheus配置 基本环境准备 python 3.10.10flask 2.3.2prometheus 2.52.0 基本流程 将接口传来的prometheus规则信息保存到数据表中取数…

人工智能算法工程师(高级)课程1-单类目标识别之人脸检测识别技术MTCNN模型介绍与代码详解

大家好,我是微学AI,今天给大家介绍一下人工智能算法工程师(高级)课程1-单类目标识别之人脸检测识别技术MTCNN模型介绍与代码详解。本文深入探讨了基于PyTorch的人脸检测与识别技术,详细介绍了MTCNN模型、Siamese network以及center loss、sof…

11、实现基于共享内存的二叉树set

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 实现数组肯定不是我们的目标&a…

从数据库查询数据 写入Excel 写出JAVA代码

以下是一个示例代码,演示了如何从数据库中查询数据,然后将数据写入到Excel文件中: import java.io.FileOutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import org.apache.poi.ss.user…

PostgreSQL创建表和自增序列

一、创建表: 注意: 1、在mysql没有序列的概念,id自增通过auto_increment实现; 2、pgsql没有auto_increment的概念,如何实现id自增?有两种方式: 方式一:创建序列,绑定…

面经学习(杭州实在智能实习)

个人评价 秃狼觉得本次的面试是有史以来难度最大的,问了很多陌生的八股文,项目问的比较少,估计是项目本来就没有什么亮点,也是第一次被面试官说菜的面试。不过在后续的学习上还是收获颇丰的。 1.说说你在实习中遇到的难点吧&…

K8S内存资源配置

在 Kubernetes (k8s) 中,资源请求和限制用于管理容器的 CPU 和内存资源。配置 CPU 和内存资源时,使用特定的单位来表示资源的数量。 CPU 资源配置 CPU 单位:Kubernetes 中的 CPU 资源以 “核” (cores) 为单位。1 CPU 核心等于 1 vCPU/Core…

SpringBoot RestHighLevelClient 按版本更新

SpringBoot RestHighLevelClient 按版本更新 1 查询2 更新 RestHighLevelClient 是 Elasticsearch 提供的一个用于与 Elasticsearch 集群交互的高级 REST 客户端。它是基于 Java 的客户端,旨在提供一种简单且功能丰富的方式来执行各种 Elasticsearch 操作&#xff0…

2024年海峡两岸创业青年研学交流项目火热开展中

7月17日,由浙江外国语学院国际商学院、创业学院主办的“文化之舟系两岸,潮头勇立浙商旗”——2024年海峡两岸大学生(创业青年)研学交流项目持续进行中。 上午,邵波副教授带领学生代表接待来自台湾的二十多名学生参加“…

利用 PHP 解锁 1688 详情 API 接口的秘密

在电商领域的探索中,1688 平台的商品详情数据无疑是一座宝藏。而通过 PHP 语言来解锁 1688 详情 API 接口的秘密,将为我们开启获取这一宝藏的大门。 一、深入了解 1688 详情 API 接口 1688 详情 API 接口提供了丰富的商品信息,包括商品描述、…

Linux输出重定向到文件立即输出

./md.out > output.txt 2>&1程序中断时,文件为空的原因可能是由于缓冲机制。标准输出(stdout)和标准错误输出(stderr)默认是缓冲的,这意味着数据在写入文件之前会先存储在缓冲区中。如果程序在缓…

【人工智能】在未来智慧城市的建设及应用分析

作者主页: 知孤云出岫 目录 作者主页:案例分析:人工智能在未来智慧城市的建设及其影响和应用引言一、人工智能在智慧城市中的关键应用领域 案例分析:人工智能在未来智慧城市的建设及其影响和应用 引言 智慧城市是利用信息和通信技术(ICT&am…

电平的概念及应用(电路节点在某一时刻的电压状态)(高电平、低电平)(电压是推动电荷通过导体的力,而电平是这种力的表达形式)

文章目录 电平的概念及其在电子与电气应用中的应用1. 电平的基本概念1.1 电压与电平1.2 电流与电压的区分 2. 数字电路中的电平应用2.1 逻辑电平2.1.1 TTL电平2.1.2 CMOS电平 2.2 电平转换 3. 模拟电路中的电平应用3.1 信号表示3.2 信号放大 4. 电平在通信技术中的应用4.1 RS-4…

迁移学习在乳腺浸润性导管癌病理图像分类中的应用

1. 引言 乳腺癌主要有两种类型:原位癌:原位癌是非常早期的癌症,开始在乳管中扩散,但没有扩散到乳房组织的其他部分。这也称为导管原位癌(DCIS)。浸润性乳腺癌:浸润性乳腺癌已经扩散(侵入)到周围的乳腺组织。侵袭性癌症比原位癌更难治愈。将乳汁输送到乳…