建设工程安全事故在哪个网站查,西湖区外贸网站建设,深圳网站建设公司哪家比较好,住房和建设局官网YOLOv8 出来一段时间了#xff0c;继承了分类、检测、分割#xff0c;本文主要实现自定义的数据集#xff0c;使用 YOLOV8 进行检测模型的训练和使用 YOLOv8 此次将所有的配置参数全部解耦到配置文件 default.yaml#xff0c;不再类似于 YOLOv5#xff0c;一部分在配置文件…YOLOv8 出来一段时间了继承了分类、检测、分割本文主要实现自定义的数据集使用 YOLOV8 进行检测模型的训练和使用 YOLOv8 此次将所有的配置参数全部解耦到配置文件 default.yaml不再类似于 YOLOv5一部分在配置文件一部分在 train.py 中
1. 运行环境
windows11 和 Ubuntu20.04建议使用 Linux 系统 首先切换到自己建立的虚拟环境安装 pytorch
torch 1.12.0cu116根据自身设备而定
torchvision 0.13.0cu116根据自身设备而定安装完成后使用 git 命令将源码克隆下来
git clone https://github.com/ultralytics/ultralytics.git参照官网直接使用以下语句即可导入项目所需要的库
pip install ultralytics根据官方的解释pip 的 ultralytics 库包含了 requirements.txt中的所有库
2. 自定义数据集
我自己准备了一批 熊猫、老虎的图片作为实验数据集文件夹命名为 data 文件路径/home/mango/ultralytics/data对数据集进行划分后的文件夹整体目录结构如下 images 下包含 train、val 文件夹这两个文件夹下包含此次需要的 图片信息 labels 下包含 train、val 文件夹这两个文件夹下包含此次需要的 对应图片的标注信息 test_images 下包含的是提供测试的数据集 ps数据集形式共有3种可根据自己实际情况采用
1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]3. 模型训练四种方式
首先在 data 文件夹下新建一个数据加载配置文件 animal.yaml
train: /home/mango/ultralytics/data//images/train
val: /home/mango/ultralytics/data/images/val
# number of classes
nc: 2
# class names
names: [panda, tiger]接下来就可以准备开始训练了 打开终端进入虚拟环境进入yolov8的文件夹 考虑到命令行模式下下载模型可能有点慢所以先在官方仓库下载好模型并放入新建的 weights 文件路径/home/mango/ultralytics/weights目录下 YOLOv8模型仓库 (1) 第一种方式参数重写 参数很多建议查看 官网文档 下面是yolov8官方给定的命令行训练/预测/验证/导出方式
yolo taskdetect modetrain modelyolov8n.pt args...classify predict yolov8n-cls.yaml args...segment val yolov8n-seg.yaml args...export yolov8n.pt formatonnx args...最后输入以下命令即可开始训练参数很多可以修改建议查看官网文档或者查看/home/mango/ultralytics/ultralytics/yolo/cfg下的 default.yaml 文件
yolo taskdetect modetrain modelweights/yolov8n.pt datadata/animal.yaml batch16 epochs50 imgsz640 workers16 device0可以看到已经成功开始训练运行生成的权重、混淆矩阵等信息存在于/home/mango/ultralytics/runs 下面 (2) 第二种方式重写配置文件
可以新建一个配置文件例如demo.yaml参数配置内容从 /home/mango/ultralytics/ultralytics/yolo/cfg/default.yaml 复制即可 或者使用命令行
yolo copy-cfg它会自动生成一个 default_copy.yaml (目录地址/home/mango/ultralytics/default_copy.yaml) 截取的部分参数信息如下
# Ultralytics YOLO , GPL-3.0 license
# Default training settings and hyperparameters for medium-augmentation COCO trainingtask: detect # inference task, i.e. detect, segment, classify
mode: train # YOLO mode, i.e. train, val, predict, export# Train settings -------------------------------------------------------------------------------------------------------
model: # path to model file, i.e. yolov8n.pt, yolov8n.yaml
data: # path to data file, i.e. coco128.yaml
epochs: 100 # number of epochs to train for
patience: 50 # epochs to wait for no observable improvement for early stopping of training
batch: 16 # number of images per batch (-1 for AutoBatch)
imgsz: 640 # size of input images as integer or w,h
save: True # save train checkpoints and predict results
save_period: -1 # Save checkpoint every x epochs (disabled if 1)
cache: False # True/ram, disk or False. Use cache for data loading
device: # device to run on, i.e. cuda device0 or device0,1,2,3 or devicecpu
workers: 8 # number of worker threads for data loading (per RANK if DDP)
project: # project name
name: # experiment name
...
...根据自身需求修改相应参数例如修改 model、data、epochs、batch
model: weights/yolov8n.pt # path to model file, i.e. yolov8n.pt, yolov8n.yaml
data: data/animal.yaml # path to data file, i.e. coco128.yaml
epochs: 20 # number of epochs to train for
batch: 8 # number of images per batch (-1 for AutoBatch)然后在终端输入下列代码行命令即可开始训练
yolo cfgdefault_copy.yamlps: 还可以使用 yolo cfgdefault_copy.yaml imgsz320 batch8 的方式修改 imgz、batch 等参数信息 可以看到也已经成功开始训练运行生成的权重、混淆矩阵等信息存在于/home/mango/ultralytics/runs 下面 (3) 第三种方式python命令
在 Python 环境中直接使用
from ultralytics import YOLO# 加载模型
# model YOLO(yolov8n.yaml) # 从头开始构建新模型
model YOLO(weights/yolov8n.pt) # 加载预训练模型推荐用于训练# Use the model
results model.train(datadata/animal.yaml, epochs20, batch8) # 训练模型或者创建一个 demo.py, 将上述代码拷贝到 demo.py然后调用 python demo.py 即可 可以看到也已经成功开始训练运行生成的权重、混淆矩阵等信息存在于/home/mango/ultralytics/runs 下面 (4) 第四种方式python文件调用
进入 /home/mango/ultralytics/ultralytics/yolo 目录下复制 animal.yaml、yolov8n.pt 到 /home/mango/ultralytics/ultralytics/yolo/v8/detect 目录 修改 /home/mango/ultralytics/ultralytics/yolo/cfg/default.yaml 的 model、data 路径及其他参数信息
# Ultralytics YOLO , GPL-3.0 license
# Default training settings and hyperparameters for medium-augmentation COCO trainingtask: detect # inference task, i.e. detect, segment, classify
mode: train # YOLO mode, i.e. train, val, predict, export# Train settings -------------------------------------------------------------------------------------------------------
model: yolov8n.pt # path to model file, i.e. yolov8n.pt, yolov8n.yaml
data: animal.yaml # path to data file, i.e. coco128.yaml
epochs: 100 # number of epochs to train for
patience: 50 # epochs to wait for no observable improvement for early stopping of training
batch: 16 # number of images per batch (-1 for AutoBatch)
imgsz: 640 # size of input images as integer or w,h
save: True # save train checkpoints and predict results
save_period: -1 # Save checkpoint every x epochs (disabled if 1)
cache: False # True/ram, disk or False. Use cache for data loading
device: # device to run on, i.e. cuda device0 or device0,1,2,3 or devicecpu
workers: 8 # number of worker threads for data loading (per RANK if DDP)运行 train.py 可以看到也已经成功开始训练运行生成的权重、混淆矩阵等信息存在于/home/mango/ultralytics/yolo/v8/detect/runs 下面
4. 模型预测 可修改的参数很多建议查看 官网文档 和模型训练一样预测同样可以采用不同的方式去实现这里展示其中一种方法主要目前还是看看模型效果 将训练得到的 best.pt 复制到 /home/mango/ultralytics/weights 下执行如下指令
yolo detect predict modelweights/best.pt sourcedata/test_images saveTrue结果如下
最后一张图没有检测好估计是跟我训练数据集数量有关系总共40张还有一个就是训练轮次50轮花了不到2分钟时间 但总体来说效果还是可以的速度精度都不低
5. 最后 接下来准备试试 onnx、和 TensorRT 的部署 ❗️