YOLOv8的分类模型不像目标检测和实例分割模型,它的训练不需要yaml文件,配置比较简单,只需要将数据集根目录作为训练参数即可。下面是具体步骤:
1、构建数据集
数据集目录结构
|—data_dir (数据集根目录)
|—train (训练集目录)
|—class1 (类别1)
|—class2 (类别2)
.......
|—val (验证集目录)
|—class1 (类别1)
|—class2 (类别2)
.......
2、数据增强
如果数据集需要数据增强,则可以对图像进行亮度、噪声、旋转、高斯模糊等操作,但增强后的数据集结构需要与原始数据保持一致。如果不需要数据增强,可以直接进行训练。
3、训练代码
训练代码非常简单,只需要把数据集根目录作为参数即可。另外,需要注意使用预训练模型时需要指定后缀为“-cls.pt”。
from ultralytics import YOLO
if __name__ == '__main__':
# 数据集所在的根目录
data_path = r"D:\data_dir"
print("执行分类训练")
model = YOLO("weights/yolov8n-cls.pt") # 加载分类模型
# 训练模型
results = model.train(data=data_path, epochs=100)
# 评估模型
metrics = model.val()
4、训练后的标签说明
训练之后的模型中会存储各个类别的id,类别的id按照首字母顺序排序,例如:数据集中有三个分类car、human、dog,标签顺序则为{"0":"car", "1": "dog", "2": "human"}。