目 录
前 言
YOLOv8是YOLO的最新版本,由Ultralytics公司开发。它是一种基于锚点的目标检测算法,可以在图像中检测出多个对象并标记它们的位置。与以前的版本相比,YOLOv8具有更高的准确性和更快的速度,同时还支持实例分割任务。
YOLOv8的优势包括:
1. 高速度:YOLOv8是目前最快的目标检测算法之一。
2. 高准确性:YOLOv8在准确性方面也表现出色。
3. 简单易用:YOLOv8易于使用和实现,适用于各种应用场景。
一、AutoDL租算力云服务器
2.1、创建AutoDL云算力实例
首先在AutoDL官网(AutoDL-品质GPU租用平台-租GPU就上AutoDL)注册登录,接着在“算力市场”上挑选GPU。
此时我们选择RTX3090的GPU版本,计费方式为按量计费,这样比较省钱。
然后选择“基础镜像”,GPU数量为1个,挑选好下图中的Pytorch镜像,因为待会源码的环境是需要Pytorch的,点击“立即创建”即可,稍等片刻即可创建成功。
二、数据准备
这里放置一个百度网盘链接供大家学习,包括数据集、源码和PYQT-GUI界面以及训练好的一个模型文件。
链接:https://pan.baidu.com/s/1pkfC4hQPbWr2nYS7ic2fHw?pwd=1zxw
提取码:1zxw
将这份项目代码放到AutoDL中去,可以使用JupyterLab将数据上传进去。
也可以使用阿里云盘来上传代码。
三、环境准备
准备好上述的AutoDL镜像后,使用JupyterLab进入到终端界面,进入到YOLOv8-PyGUI-fire文件夹里面,然后按步骤安装以下指令。
sudo apt update
pip install ultralytics
接下来打开datasets-train/fire.yaml修改参数,包括数据集路径、类别、类别名,如下所示:
四、模型训练
yolov8的训练采用代码的形式运行,下面是根据YOLOv8改写的代码案例:
# train.py
from ultralytics import YOLO
# 加载模型
# model = YOLO('yolov8n.yaml') # 从YAML创建一个新模型
model = YOLO('weights/yolov8s.pt') # 加载预训练模型(推荐用于训练)
# model = YOLO('yolov8s.yaml').load('weights/yolov8s.pt') # 从YAML构建并转移权重
# 训练模型
model.train(data="../datasets-train/fire.yaml",
imgsz=640, # 输入图像的大小为整数或 w,h
epochs=100, # 要训练的次数
batch=64, # 每批次的图像数量(AutoBatch 为 -1)
device=0, # 要运行的设备,即 cuda device=0 或 device=0,1,2,3 或 device=cpu
workers=2, # 用于数据加载的工作线程数(如果是 DDP,则为每个 RANK)
resume=False) # True的时候则从上一个检查点恢复训练
打开终端,进入到ultralytics-YOLOv8文件夹里面,在终端中输入以下命令,即可开始训练。
python train.py
五、PYQT-GUI界面(模型预测)
将ultralytics-YOLOv8/runs文件夹下载并复制到本地文件夹,在本地环境配好环境后,运行YOLOv8-PySide6-GUI目录下的main.py。
运行结果如下:
该GUI界面来源于某位B站up主的开源界面,原版没有摄像头功能的,我在后面魔改了一下,加了摄像头的功能,其它功能一致,欢迎大家免费下载体验一下!
六、参考资料
参考源码:YOLOv8-ultralytics
参考GUI界面:GitHub - Jai-wei/YOLOv8-PySide6-GUI: YoloSide - YOLOv8 GUI By PySide6
参考数据集分类:目标检测---数据集格式转化及训练集和验证集划分