(二)0基础配置YOLOv11环境与模型训练及应用(PyCharm)

发布于:2025-08-10 ⋅ 阅读:(16) ⋅ 点赞:(0)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

基于我第一篇YOLO的配置文章《 基于pycharm的YOLOv11模型训练方法 》,
第一篇以 模型训练 为主要内容(较为粗糙)

基于我第二篇YOLO的配置文章《 基于pycharm的YOLOv11模型训练方法 》重点介绍:
1)从GitHub上,直接下载源代码,原模型。更加源头、更加抽丝剥茧地展示给大家搭建YOLOv11基础环境
2)完成模型验证测试
3)为后续模型训练与精度提升奠定基础

本篇文章 将在此文章的基础上,进行模型训练,及精度提升

一、前期准备

训练集准备

  1. 训练集参考
    较大,1.3G
    水稻病害目标检测数据集五分类
    2.将解压的文件夹 datasets 放在 D:\DeepLearning\ultralytics-8.3.163 文件夹内在这里插入图片描述

代码准备

  1. 打开 Pycharm ,打开项目 D:\DeepLearning\ultralytics-8.3.163
    在这里插入图片描述
  2. 新建一个源文件 train.py 和 data.yaml(注意与模型同级文件夹)
    在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述

train.py:

修改 model 的路径
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO(model=r'D:\DeepLearning\ultralytics-8.3.163\ultralytics\cfg\models\11\yolo11.yaml')
    # model.load('yolo11n.pt') # 加载预训练权重,改进或者做对比实验时候不建议打开,因为用预训练模型整体精度没有很明显的提升
    model.train(data=r'data.yaml',
                imgsz=640,  # 输入图像的尺寸,指定为640x640像素
                epochs=10,  # 训练的轮数
                batch=4,    # 批处理大小,电脑显存越大可设置越大,根据自身电脑性能调整
                workers=0,  # 数据加载的工作线程数,显存不足时可设置为0,默认是8
                device=0,   # 指定用于训练的显卡,使用的GPU设备编号,0表示第一个GPU,如果使用CPU则设为'cpu'
                optimizer='SGD',  # 优化器类型
                close_mosaic=10,  # 在第10个epoch后关闭mosaic数据增强  #
                resume=False,  # 是否从上一次中断状态继续训练,False表示从头开始新训练
                #若从中断后继续训练,要把model换成中断的模型
                project='runs/train',  # 项目文件夹,用于保存训练结果
                name='exp',  # 保存结果的文件夹名称
                single_cls=False,  # 是否将所有类别视为一个类别,False表示保留原有类别
                cache=False,  # 是否缓存数据,False表示不缓存
                )

data.yaml:

修改 path train val 的路径
# 数据集根目录,训练/验证集路径若写相对路径,会基于此根目录拼接
path: D:\DeepLearning\ultralytics-8.3.163\datasets

# 训练集图片存放路径 
# 作用:告诉模型到哪找训练用的图片,模型会搭配对应标签(同目录下labels文件夹或按约定路径)做训练
train: D:\DeepLearning\ultralytics-8.3.163\datasets\train\images

# 验证集图片存放路径 
# 作用:模型训练中,用这里的图片验证学习效果,看有没有“学偏”,同样搭配对应标签使用 
val: D:\DeepLearning\ultralytics-8.3.163\datasets\val\images

# test: C:\Users\HP\Desktop\ultralytics-8.3.39\rice_yolo\test  # 测试集路径(当前注释掉了,要用时取消注释并填实际路径)

# 类别总数 
# 说明:数据集里一共有多少种要识别的类别,数清楚自己标注的类别数量填这里,比如这有 5 种病虫害/健康类别,就填 5
nc: 5  

# 类别名称映射 
# 规则:按标签文件里的索引对应填名称,标签里第一列数字(索引)0 对应第一个类别,1 对应第二个,以此类推 
# 注意:名称用英文!中文可能让训练出问题;顺序必须和标签里的索引对应好,否则模型会把类别搞混
# Classes ['Blast', 'Blight', 'Brown Spot', 'Healthy', 'Tungro']
names:
  0: Blast        # 索引 0 对应的类别名:稻瘟病(Blast)
  1: Blight       # 索引 1 对应的类别名:白叶枯病(Blight)
  2: Brown Spot   # 索引 2 对应的类别名:胡麻叶斑病(Brown Spot)
  3: Healthy      # 索引 3 对应的类别名:健康水稻(Healthy)
  4: Tungro       # 索引 4 对应的类别名:东格鲁病(Tungro)

二、模型训练

  1. 运行 train.py 注意调整轮次,第一次训练10轮即可(一轮 3min)在这里插入图片描述

  2. 训练后的模型路径D:\DeepLearning\ultralytics-8.3.163\runs\train\exp\weights\best.pt在这里插入图片描述

三、模型测试

  1. 使用上篇文章的 Multi_image_detection.py 模型在这里插入图片描述

  2. 软件配置

模型选择:D:\DeepLearning\ultralytics-8.3.163\runs\train\exp\weights\best.pt
图片检测:选一张人像,因为只训练了水稻病虫害的标签,故识别不出人脸
文件夹检测:D:\DeepLearning\ultralytics-8.3.163\datasets\test\images
注:
图片的检测结果不保留,需点击软件上的 保存检测结果
文件夹的检测结果路径D:\DeepLearning\ultralytics-8.3.163\runs\detect
在这里插入图片描述
在这里插入图片描述

总结

本文完整实现了:

  • 自定义数据集训练
  • 实际应用部署

网站公告

今日签到

点亮在社区的每一天
去签到