YOLO8不仅仅可以胜任目标检测任务,目前YOLO8还支持图片分类、实例分割、人体关键点检测。本篇文章介绍如何使用YOLO8训练一个自己的图片分类模型。 YOLO8训练目标检测模型的方法参见本人主页的另外一篇文章:如何使用YOLOV8训练自己的目标检测模型
首先准备好ImageNet格式的数据集,我这里以81类水果图片分类数据集为例。ImageNet数据集应该具有一下目录结构
train
├── 类别1|——图片1
|——图片2
|——......
└── 类别2|——图片1
|——图片2
|——......
........
val
├── 类别1|——图片1
|——图片2
|——......
└── 类别2|——图片1
|——图片2
|——......

准备好数据集之后,还需要配置YOLO8的运行环境,详见本人主页的这篇文章。
按照上面的文章在anaconda中配置好虚拟环境之后,我们就可以着手开始训练,训练的方式有很多,我们这里选择python程序训练。在训练之前,文件目录如下面图片所示

datas文件夹下是数据集图片,trian.py是训练脚本,yolov8m-cls.pt是模型模型(我们这里选择使用yolov8m-cls基础模型),yolov8n.pt是模型训练过程中做混合精度验证用到的。这些模型权重都可以在ultralytics官网下载

train.py文件代码如下:
from ultralytics import YOLO
#这里使用的是linux系统进行训练 配置好YOLO8环境,一键运行该文件即可自动训练
# Load a model
#model = YOLO('yolov8n-cls.yaml') # build a new model from YAML
model = YOLO('yolov8m-cls.pt') # load a pretrained model (recommended for training)
#model = YOLO('yolov8n-cls.yaml').load('yolov8n-cls.pt') # build from YAML and transfer weights
# Train the model
#data参数指定数据集路径(文件夹),
#注意workers在windows系统中指定为0
results = model.train(data='datas', batch=32,workers=16,epochs=250,imgsz=224)
之后即可在conda虚拟环境中的YOLO8环境下开展训练(我这里的环境名称为pytorch_learn)

之后,控制台窗口会有一系列的日志输出

经过一段时间等待之后,在目录下的runs文件夹下会自动生成训练过程记录,包含模型权重、混淆矩阵、PR曲线、loss曲线等
本文介绍了如何使用YOLO8进行81类水果图片分类,包括准备ImageNet格式数据集,配置YOLO8运行环境,以及使用Python脚本train.py进行模型训练。训练完成后,会在runs文件夹中找到训练记录和相关指标。
1465

被折叠的 条评论
为什么被折叠?



