当前位置:   article > 正文

超级详细的YOLOV8教程

yolov8教程

YOLOV8介绍

YOLOV8是较强的计算机视觉技术之一,我将带你手把手使用YOLOV8对自定义数据集进行图像检测和分类。

各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!

1. 数据标记

首先第一步为数据标记,有两种方式。

1.1 第一种为在网站上下载,

链接:图像数据集

https://storage.googleapis.com/openimages/web/index.html

打开网站点击探索

在这里插入图片描述

选择数据集的类型为检测,而后在class中选择例如ball类,则在下面出现各种关于ball类的数据集

在这里插入图片描述

如果你选择像这种开放式数据集,在这个网站下载即可。

1.2 第二种为在CVAT上自定义数据

链接:CVAT

https://www.cvat.ai/

CVAT是较为常用的数据集编辑网站,我们可以将自己手机电脑里的数放到CVAT上进行处理,导出时可以获得带有标记数据的数据集,但是这样需要很多时间来标记数据集。

在这里插入图片描述

首先进行注册和登录,登录完成后,选择Projects新建项目

在这里插入图片描述

输入数据集的名字,比如road,点击Add label添加标签

在这里插入图片描述

在这里我们输入road_1,road_2两个标签,点击continue进行保存,输入标签后点击“Continue“,最后点击”Submit & Open“提交并打开,请注意,如果你的标签不止一个,记得在创建项目时把它们都加入进去。

在这里插入图片描述

点击submit&open选择保存项目数据集

在这里插入图片描述

完成之后可以看到数据集的名称,以及标记的名称和数量

在这里插入图片描述

我们点右下角的+号来添加图片,在新的跳转页面中,添加新的“task“,命名,导入需要注释的图片,最后”submit & open“

在这里插入图片描述

输入图片数据集的名称,点击Click or drag files来添加文件,此时,如果你的图片基数非常大,并不需要全部导入,选择二十到三十张进行注释即可。

在这里插入图片描述

我在这里添加一张道路数据图片,下面我们进行标记数据集,点击open再点击图片打开进行标记

在这里插入图片描述

创建完成后,点击工作编号即可打开所有图像。

打开图片到以下页面
在这里插入图片描述

点击左边图标,我们刚刚创建了两个标签,我们选择road_1标签,点击shape即可标注

在这里插入图片描述

我们将road_1数据在图中进行标记,再选中road_2,将road_2部分在图中标出

在这里插入图片描述

如果你想要删除一个注释,可以在右侧对应注释点击remove。

注释带有主观性,所以会有差异。

注释的同时注意“ctrl+s”保存。

下面将标注好的数据进行格式化

在这里插入图片描述

全部注释完成后,点击头部菜单栏的“Tasks”,导出注释好的数据。

在这里插入图片描述

数据可以导出为多种不同格式,此处我们选择为YoLo 1.1,点击ok。

在这里插入图片描述

下载完成的压缩包中的文件夹内保存着刚刚注释完的图片

我们打开文件可以看到我们的标注数据,这些数据就是刚刚我们在图片中标注数据的YOLO格式化。

在这里插入图片描述

其中,我们在这个图片上标注了四个地方,所以有四行数据,第一行的0表示检测的第一个标签,第二第三个数据是标记数据的中心位置坐标,最后两个数据表示标记框的宽高。

2. 制作数据集

下面我们来创建数据集并说明自定义数据集的格式

创建两个文件夹,一个叫做images,另一个叫做labels。

在这里插入图片描述

在images文件夹中创建train文件夹,在train文件夹中放入要检测的图像。

在这里插入图片描述

在labels文件夹中创建train文件夹,在train文件夹中放入检测图像的标注数据。

在这里插入图片描述

这里的检测图像和标注数据一定要完全对应,检测的图像文件名也是标注数据的文件名。

这样数据集文件夹就创建好了

3. 部署YOLOV8的代码

部署方式有两种,远程部署和本地部署。

3.1 远程部署

为了不消耗电脑的空间以及忽略电脑带来的差异,我将使用远程控制软件来远程部署安装环境以及推理和验证我们自己的数据集。

远程控制软件fellshell:远程控制软件finalshell + AutoDL算力云

https://blog.csdn.net/hellow_xqs/article/details/135251072

3.1.1 项目下载

链接:YOLOV8

https://github.com/ultralytics/ultralytics

在这里插入图片描述

将项目下载到本地之后

3.1.2 修改代码

用vscode打开项目代码包

在这里插入图片描述
复制在官网的代码

在这里插入图片描述
在代码中新建文件夹data,将在上面的images和labels文件夹复制到文件夹中,

在这里插入图片描述

3.1.2.1 训练模型

在一级目录中新建文件main.py,将以下代码复制到文件中

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from scratch

# Use the model
model.train(data="config.yaml", epochs=3)  # train the model
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

在一级目录中新建文件config.yaml,将以下代码复制到文件中

path: /root/autodl-tmp/ultralytics-main/data//注意地址
train: images/train//训练文件夹的图片地址
val: images/train//训练文件夹的图片地址

names:
  0: 横向裂缝
  1: 纵向裂缝
  2: 块状裂缝
  3: 龟裂
  4: 坑槽
  5: 修补网状裂缝
  6: 修补裂缝
  7: 修补坑槽

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
3.1.2.1 验证模型

在一级目录中新建文件verify.py,将以下代码复制到文件中

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

model.info()

results = model("/root/autodl-tmp/ultralytics/ultralytics/assets/bus.jpg",save = True,save_txt = True)  # predict on an image

print(results)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

3.2 本地部署

3.2.1 YOLOV8项目部署

github链接:https://github.com/ultralytics/ultralytics

git拉取项目:git clone https://github.com/ultralytics/ultralytics.git

3.2.2 cuda、cudnn、Pytorch等环境安装与卸载

首先查看pytorch支持的最高版本:https://pytorch.org/

然后查看N卡系统支持最高的版本,然后权衡下载支持最高版本的CUDA和cuDNN

CUDA工具包

https://developer.nvidia.cn/zh-cn/cuda-toolkit

cuDNN

https://developer.nvidia.com/rdp/cudnn-download

配置对应的环境变量

3.2.3 安装项目依赖

在上级目录下安装

pip install ultralytics

pip install yolo
  • 1
  • 2
  • 3

卸载项目依赖为你安装CPU版本pytorch,打开pytorch官网,使用对应命令下载GPU版本

3.2.4 训练与推理使用指令
3.2.4.1 文件

yolov8.yaml文件为权重样本文件
位置:ultralytics-main\ultralytics-main\build\lib\ultralytics\cfg\models\v8\yolov8.yaml

test_python.py为yolov8.yaml输出文件
位置:ultralytics-main\ultralytics-main\tests\test_python.py

default为YOLOv8的训练配置文件
位置:ultralytics-main\ultralytics-main\ultralytics\cfg\default.yaml

3.2.4.2 指令
task=detect,表示使用YOLO进行目标检测任务
  • 1
推理:
mode=predict设置为推理

model=yolov8n.pt为模型文件

conf=0.25  置信度

source='ultralytics/assets/bus.jpg'   训练样本


yolo task=detect mode=predict model=存放自己最好的训练模型地址 conf=0.25 source='ultralytics/assets/bus.jpg'

yolo task=detect mode=predict model=yolov8n.pt conf=0.25 source='ultralytics/assets/bus.jpg'

yolo task=detect mode=predict model=/root/autodl-tmp/ultralytics-main/ultralytics-main/runs/detect/train8/weights/best.pt conf=0.25 source='/root/autodl-tmp/ultralytics-main/ultralytics-main/ultralytics/assets/images/'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
训练:
mode=train设置为训练

model=yolov8n.pt为模型文件

epochs=100    100轮

imgsz=640   图片为640尺寸

resume=True  为断训续训

yolo task=detect mode=train model=yolov8n.pt data=config.yaml epochs=100 

yolo task=detect mode=train model=yolov8s.pt data={dataset.location}/data.yaml epochs=100 imgsz=640 resume=True workers=2

中断续训:
runs/detect/train12/weights/last.pt为上次续训地址

yolo task=detect mode=train model=runs/detect/train12/weights/last.pt epochs=100 imgsz=640 resume=True workers=2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

4. 出现的错误:

1.出现 Usage: yolo 【OPTIONS】 COMMAND 【ARGS】…
Try ‘yolo -h’ for help.

Error: No such command ‘task=detect’.

解决办法: python setup.py install 然后重新运行代码即可。

出现Downloading https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt to ‘yolov8n.pt’…
Traceback (most recent call last):
File “C:\minconda\envs\xqs2.0\lib\site-packages\urllib3\connectionpool.py”, line 711, in urlopen
self._prepare_proxy(conn)
File “C:\minconda\envs\xqs2.0\lib\site-packages\urllib3\connectionpool.py”, line 1007, in _prepare_proxy

解决办法:把自己梯子关掉试试

出现FileNotFoundError: ultralytics-main/ultralytics/assets/zidane.jpg does not exist

解决办法:yolo task=detect mode=predict model=yolov8n.pt conf=0.25 source='ultralytics/assets/zidane.jpg’中source改为绝对路径或者相对路径。

5. 参考

Ultralytics YOLOv8 Docs(官方的说明文档)

https://docs.ultralytics.com/ultralytics/README.zh-CN.md at main · ultralytics/ultralytics · GitHub(官方的中文说明页)

https://github.com/ultralytics/ultralytics/blob/main/README.zh-CN.md

https://stitch.blog.csdn.net/article/details/112329058 cuda 和 cudnn 库的卸载与安装 - 知乎

https://zhuanlan.zhihu.com/p/102966512

Pytorch环境详细安装教程【Win10+CUDA升级11.6+cudNN+Anaconda3虚拟环境+pycharm】https://blog.csdn.net/weixin_44842318/article/details/127487476/

cs/ultralytics · GitHub(官方的中文说明页)

https://github.com/ultralytics/ultralytics/blob/main/README.zh-CN.md

https://stitch.blog.csdn.net/article/details/112329058 cuda 和 cudnn 库的卸载与安装 - 知乎

https://zhuanlan.zhihu.com/p/102966512

Pytorch环境详细安装教程【Win10+CUDA升级11.6+cudNN+Anaconda3虚拟环境+pycharm】https://blog.csdn.net/weixin_44842318/article/details/127487476/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/271235
推荐阅读
相关标签
  

闽ICP备14008679号