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

咕哥 2024-07-06 12:35:02 阅读 93

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) 创建环境

<code>conda create -n yolov8 python==3.7

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

(2)激活环境

conda activate yolov8

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

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

 去官网下载对应或者不大于箭头指出的版本,官网地址:PyTorch

https://pytorch.org/

pip下载会比conda下载略快。

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

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

 

选择python.exe文件。 

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

<code>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)修改数据加载配置文件,建议全部使用绝对路径

<code>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。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。