YOLOV8是较强的计算机视觉技术之一,我将带你手把手使用YOLOV8对自定义数据集进行图像检测和分类。
各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!
首先第一步为数据标记,有两种方式。
链接:图像数据集
https://storage.googleapis.com/openimages/web/index.html
打开网站点击探索
选择数据集的类型为检测,而后在class中选择例如ball类,则在下面出现各种关于ball类的数据集
如果你选择像这种开放式数据集,在这个网站下载即可。
链接: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表示检测的第一个标签,第二第三个数据是标记数据的中心位置坐标,最后两个数据表示标记框的宽高。
下面我们来创建数据集并说明自定义数据集的格式
创建两个文件夹,一个叫做images,另一个叫做labels。
在images文件夹中创建train文件夹,在train文件夹中放入要检测的图像。
在labels文件夹中创建train文件夹,在train文件夹中放入检测图像的标注数据。
这里的检测图像和标注数据一定要完全对应,检测的图像文件名也是标注数据的文件名。
这样数据集文件夹就创建好了
部署方式有两种,远程部署和本地部署。
为了不消耗电脑的空间以及忽略电脑带来的差异,我将使用远程控制软件来远程部署安装环境以及推理和验证我们自己的数据集。
远程控制软件fellshell:远程控制软件finalshell + AutoDL算力云
https://blog.csdn.net/hellow_xqs/article/details/135251072
链接:YOLOV8
https://github.com/ultralytics/ultralytics
将项目下载到本地之后
用vscode打开项目代码包
复制在官网的代码
在代码中新建文件夹data,将在上面的images和labels文件夹复制到文件夹中,
在一级目录中新建文件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
在一级目录中新建文件config.yaml,将以下代码复制到文件中
path: /root/autodl-tmp/ultralytics-main/data//注意地址
train: images/train//训练文件夹的图片地址
val: images/train//训练文件夹的图片地址
names:
0: 横向裂缝
1: 纵向裂缝
2: 块状裂缝
3: 龟裂
4: 坑槽
5: 修补网状裂缝
6: 修补裂缝
7: 修补坑槽
在一级目录中新建文件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)
github链接:https://github.com/ultralytics/ultralytics
git拉取项目:git clone https://github.com/ultralytics/ultralytics.git
首先查看pytorch支持的最高版本:https://pytorch.org/
然后查看N卡系统支持最高的版本,然后权衡下载支持最高版本的CUDA和cuDNN
CUDA工具包
https://developer.nvidia.cn/zh-cn/cuda-toolkit
cuDNN
https://developer.nvidia.com/rdp/cudnn-download
配置对应的环境变量
在上级目录下安装
pip install ultralytics
pip install yolo
卸载项目依赖为你安装CPU版本pytorch,打开pytorch官网,使用对应命令下载GPU版本
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
task=detect,表示使用YOLO进行目标检测任务
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/'
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.出现 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改为绝对路径或者相对路径。
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/