智慧农业-草莓病害检测数据集 YOLOV11模型如何训练 草莓病害数据集 建立基于深度学习框架YOLOV11草莓病害检测系统

张开发
2026/4/12 5:07:38 15 分钟阅读

分享文章

智慧农业-草莓病害检测数据集 YOLOV11模型如何训练 草莓病害数据集 建立基于深度学习框架YOLOV11草莓病害检测系统
智慧农业-草莓病害数据集训练集1451验证集307测试集7457类Angular_LS(角斑病)Anthracnose_FR(炭疽果腐)Blossom_BT(花枯病)Gray_Mold(灰霉病)Leaf_Spot(叶斑病)Powdery_Fruit(白粉病果)Powdery_Leaf(白粉病叶)数据集详情描述表首先将你的数据集信息整理成表格方便写入配置文件属性详细信息数据集名称草莓病害多类别检测数据集 (Strawberry Disease)总图像量2,503 张 (训练:1451, 验证:307, 测试:745)目标类别数7 类 (nc7)类别名称Angular_LS,Anthracnose_FR,Blossom_BT,Gray_Mold,Leaf_Spot,Powdery_Fruit,Powdery_Leaf模型基础YOLOv11n (Nano版本轻量级)训练配置Epochs: 200构建步骤指南环境准备、数据配置、训练与验证。1. 环境准备 (Environment Setup)参考网页中的环境搭建部分确保你的环境支持 YOLOv11。# 1. 创建虚拟环境 (参考网页步骤)conda create-nstrawberry_detectpython3.9conda activate strawberry_detect# 2. 安装 PyTorch (请根据你的CUDA版本选择参考网页中使用的是CUDA 11.8/12.1)# 示例 (CUDA 11.8):pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# 3. 安装 Ultralytics (支持 YOLOv11)pipinstallultralytics2. 数据集配置文件 (Data Configuration)这是最关键的一步参考网页中的data.yaml结构。你需要创建一个strawberry.yaml文件。strawberry.yaml内容如下# 草莓病害检测数据集配置文件# 训练集和验证集路径 (请修改为你的实际路径)train:./dataset/images/train# 1451张图片的文件夹路径val:./dataset/images/val# 307张图片的文件夹路径test:./dataset/images/test# 745张图片的文件夹路径# 类别数量nc:07# 类别名称 (必须与标签ID严格对应)names:-Angular_LS# 角斑病-Anthracnose_FR# 炭疽果腐-Blossom_BT# 花枯病-Gray_Mold# 灰霉病-Leaf_Spot# 叶斑病-Powdery_Fruit# 白粉病果-Powdery_Leaf# 白粉病叶3. 训练代码 (Training Script)参考网页中的train.py代码针对你的 200 Epochs 和 7分类任务进行调整。train_strawberry.pyfromultralyticsimportYOLOimportargparsedefmain():# 参数解析parserargparse.ArgumentParser()parser.add_argument(--data,typestr,defaultstrawberry.yaml,help数据集配置文件路径)parser.add_argument(--weights,typestr,defaultyolo11n.pt,help预训练权重路径 (你附赠的模型或官方下载))parser.add_argument(--epochs,typeint,default200)# 你的需求是200轮parser.add_argument(--batch,typeint,default32)# 根据显存调整1080Ti以下建议16parser.add_argument(--imgsz,typeint,default640,help训练图像大小)parser.add_argument(--device,typestr,default0,helpcuda device, i.e. 0 or 0,1,2,3 or cpu)parser.add_argument(--project,typestr,defaultruns/train)parser.add_argument(--name,typestr,defaultstrawberry_disease_exp)optparser.parse_args()# 1. 加载模型# 如果你有附赠的模型这里填入附赠模型的路径如果是从头训练填yolo11n.ptmodelYOLO(opt.weights)# 2. 开始训练 (参考网页中的参数风格)resultsmodel.train(dataopt.data,epochsopt.epochs,batchopt.batch,imgszopt.imgsz,deviceopt.device,projectopt.project,nameopt.name,exist_okTrue,patience50,# 早停机制200轮的话可以设长一点防止过早停止optimizerSGD,# 农业数据常用 SGD 或 AdamWlr00.01,# 初始学习率lrf0.01,# 最终学习率momentum0.937,# 数据增强 (针对病害数据可以适当增强以增加泛化性)hsv_h0.015,# 图像色调增强hsv_s0.7,# 图像饱和度增强 (病害颜色变化重要)hsv_v0.4,degrees0.0,# 旋转角度 (草莓图片通常不需要大幅旋转)translate0.1,# 平移scale0.5,# 缩放shear0.0,flipud0.0,# 上下翻转 (草莓通常朝上不建议)fliplr0.5,# 左右翻转 (建议开启))# 3. 验证模型metricsmodel.val()print(f训练完成mAP50:{metrics.box.map50})if__name____main__:main()4. 测试与推理 (Inference)训练完成后参考网页中的推理逻辑来测试你的模型。detect.pyfromultralyticsimportYOLOimportcv2# 1. 加载你训练好的模型 (训练结束后生成的 best.pt)modelYOLO(runs/train/strawberry_disease_exp/weights/best.pt)# 2. 进行预测 (可以是图片、文件夹或视频)resultsmodel.predict(sourcetest_images/,# 你的测试图片路径saveTrue,# 保存结果图片projectruns/detect,namestrawberry_result,conf0.25,# 置信度阈值imgsz640# 推理尺寸)print(推理完成结果保存在 runs/detect/strawberry_result)关键点说明 (针对你的数据)文件夹结构请确保你的文件夹结构与strawberry.yaml中的路径一致dataset/ ├── images/ │ ├── train/ (放1451张图) │ ├── val/ (放307张图) │ └── test/ (放745张图) ├── labels/ │ ├── train/ (放对应的1451个txt标签) │ ├── val/ (放对应的307个txt标签) │ └── test/ (放对应的745个txt标签) └── strawberry.yamlEpochs 设置你的数据集约2500张属于中等规模。设置 200 Epochs 是合理的配合代码中的patience50如果50轮指标不涨就自动停止可以防止过拟合。按照上述步骤操作你就可以复现这个草莓病害检测系统了。如果有报错通常是路径错误或 CUDA 版本不匹配导致的。

更多文章