智慧农业-无人机枸杞树病害检测数据集 深度学习框架基于YOLOV8枸杞病害检测系统 无人机智慧农业枸杞病害巡检

智慧农业-无人机枸杞树病害检测数据集 深度学习框架基于YOLOV8枸杞病害检测系统 无人机智慧农业枸杞病害巡检

无人机枸杞树病害目标检测测数据集
数量:1539张数据集
"训练集:1083""验证集:304"“测试集:152”
类别数量:2个对象类别
类别类型:“healthy健康作物”, “stressed病害作物(如点片状发病区、连片扩散区、叶片卷曲程度、病斑面积占比、初期病斑、局部黄化、大面积枯萎、组织坏死)”

在这里插入图片描述
数据集类型图片数量
总计1539
训练集1083
验证集304
测试集152

类别信息如下表所示:

类别索引类别名称描述
0healthy(健康作物)表示没有受到病害影响的枸杞树区域。
1stressed(病害作物)包括点片状发病区、连片扩散区、叶片卷曲程度、病斑面积占比、初期病斑、局部黄化、大面积枯萎、组织坏死等多种病害情况。

这个表格简要概括了您提供的数据集的基本结构和内容。如果您需要更详细的信息或有特定格式的需求,请告知我进一步调整。

在这里插入图片描述


1

在这里插入图片描述


1

在这里插入图片描述

✅ 一、数据集概览表

项目内容
数据集名称无人机枸杞树病害检测数据集
总图像数1,539 张(航拍 RGB 图像)
类别数量2 类
类别标签0: healthy(健康作物)1: stressed(病害作物)
病害类型点片状发病区、连片扩散区、叶片卷曲、病斑面积占比高、初期病斑、局部黄化、大面积枯萎、组织坏死等
数据划分- 训练集(train):1,083 张- 验证集(val):304 张- 测试集(test):152 张
标注格式YOLO 格式.txt 文件,归一化坐标)
兼容模型YOLOv5 / YOLOv6 / YOLOv8 / YOLOv11 等

✅ 二、目录结构(标准 YOLO 格式)

确保你的数据组织如下:

goji_blight_dataset/ ├── images/ │ ├── train/ # 1083 张 │ ├── val/ # 304 张 │ └── test/ # 152 张 ├── labels/ │ ├── train/ # 对应 .txt 标签 │ ├── val/ │ └── test/ └── data.yaml # 配置文件(必须) 

✅ 三、data.yaml 配置文件

创建 goji_blight_dataset/data.yaml

# goji_blight_dataset/data.yamltrain: ./images/train val: ./images/val test: ./images/test nc:2names:['healthy','stressed']
⚠️ 路径为相对路径,与训练脚本同级。

✅ 四、YOLOv8 完整训练代码(Python)

保存为 train_goji_blight.py

# -*- coding: utf-8 -*-""" 无人机枸杞树病害检测 - YOLOv8 训练脚本 支持:2 类目标检测(healthy / stressed) 作者:AI助手 """import os from ultralytics import YOLO import torch # -----------------------------# 1. 检查数据集路径是否存在# ----------------------------- dataset_path ="goji_blight_dataset"ifnot os.path.exists(dataset_path):raise FileNotFoundError(f"❌ 数据集路径 '{dataset_path}' 不存在!请检查目录结构。")# -----------------------------# 2. 自动选择设备(GPU/CPU)# ----------------------------- device ='cuda'if torch.cuda.is_available()else'cpu'print(f"🚀 使用设备: {device}")# -----------------------------# 3. 加载预训练 YOLOv8 模型# -----------------------------# 推荐使用 yolov8s(平衡速度与精度),若部署到边缘设备可用 yolov8n model = YOLO('yolov8s.pt')# 首次运行会自动下载权重# -----------------------------# 4. 开始训练(关键参数已优化)# ----------------------------- results = model.train(# 数据配置 data=os.path.join(dataset_path,'data.yaml'),# 指向 data.yaml# 训练参数 epochs=100,# 训练轮数(100 足够收敛) imgsz=1280,# 输入图像尺寸(提升小病斑检出率) batch=16,# 批大小(RTX 3060 可设 16~32) name='goji_yolov8s_1280',# 实验名称,结果保存在 runs/detect/ 下# 设备 device=device,# 数据增强(针对航拍作物图像定制) hsv_h=0.015,# 色调扰动(模拟不同光照) hsv_s=0.7,# 饱和度(应对绿/黄/枯色变化) hsv_v=0.5,# 亮度(应对阴影/强光) degrees=10.0,# 旋转 ±10°(模拟无人机偏航) translate=0.1,# 平移 10% scale=0.5,# 缩放(模拟飞行高度变化) mosaic=1.0,# ✅ 必开!将小病斑拼接到新背景,提升召回率 mixup=0.1, flipud=0.0,# 不上下翻转(农田通常不倒置) fliplr=0.5,# 左右翻转(合理)# 训练策略 patience=20,# 早停:20 轮验证损失无改善 save_period=10,# 每 10 轮保存一次 checkpoint workers=8,# 数据加载线程数 cache=False# 若内存充足可设 True 加速训练)print("✅ 训练完成!")print(f"📌 最佳模型路径: runs/detect/goji_yolov8s_1280/weights/best.pt")

✅ 五、命令行快速训练(可选)

yolo detect train \data=goji_blight_dataset/data.yaml \model=yolov8s.pt \epochs=100\imgsz=1280\batch=16\name=goji_yolov8s_1280 \device=0

✅ 六、模型评估(测试集性能)

# evaluate_model.pyfrom ultralytics import YOLO # 加载最佳模型 model = YOLO('runs/detect/goji_yolov8s_1280/weights/best.pt')# 在测试集上评估 metrics = model.val( data='goji_blight_dataset/data.yaml', split='test'# 指定使用 test 集)# 打印关键指标print("📊 测试集评估结果:")print(f" [email protected] : {metrics.box.map50:.4f}")print(f" [email protected]:0.95: {metrics.box.map:.4f}")print(f" Precision : {metrics.box.mp:.4f}")print(f" Recall : {metrics.box.mr:.4f}")
💡 预期性能[email protected] > 0.85(高质量航拍数据集)Recall > 0.80(避免漏检病害区域)

✅ 七、推理脚本(单图 + 批量)

1. 单图推理并保存结果

# infer_single.pyfrom ultralytics import YOLO model = YOLO('best.pt')# 替换为你的 best.pt 路径# 推理单张图像 results = model.predict( source='goji_field.jpg',# 输入图像路径 conf=0.3,# 置信度阈值(病害检测可设低些) iou=0.45,# NMS IoU 阈值 save=True,# 保存带框图像到 runs/detect/... show=False# 不显示窗口)print("✅ 检测结果已保存!")

2. 批量处理并生成病害报告

# infer_batch_report.pyfrom ultralytics import YOLO import os import pandas as pd model = YOLO('best.pt') input_dir ='field_images/'# 待检测图像目录 output_dir ='detected_results/' os.makedirs(output_dir, exist_ok=True) report =[]for img_name in os.listdir(input_dir):if img_name.lower().endswith(('.jpg','.png','.jpeg')): img_path = os.path.join(input_dir, img_name) results = model.predict(img_path, conf=0.3, save=True)for r in results:# 统计每张图的病害区域数量 stressed_count =sum(1for cls in r.boxes.cls ifint(cls)==1) healthy_count =len(r.boxes)- stressed_count report.append({'image': img_name,'healthy_regions': healthy_count,'stressed_regions': stressed_count,'total_detections':len(r.boxes)})# 保存 CSV 报告 df = pd.DataFrame(report) df.to_csv(os.path.join(output_dir,'goji_health_report.csv'), index=False)print(f"✅ 病害统计报告已生成: {output_dir}/goji_health_report.csv")

Read more

Stable Diffusion数据集标签编辑器:AI绘画新手的智能标注神器

Stable Diffusion数据集标签编辑器:AI绘画新手的智能标注神器 【免费下载链接】stable-diffusion-webui-dataset-tag-editorExtension to edit dataset captions for SD web UI by AUTOMATIC1111 项目地址: https://gitcode.com/gh_mirrors/st/stable-diffusion-webui-dataset-tag-editor Stable-Diffusion-WebUI-Dataset-Tag-Editor是一款专为AI绘画用户设计的智能数据集标签管理工具,能够帮助用户高效整理和优化训练数据集的标签信息。这个强大的扩展插件让原本复杂的标签编辑工作变得简单直观,即使是初学者也能快速上手。 🎯 项目速览:AI绘画的数据管家 数据集标签编辑器是Stable Diffusion WebUI生态中的重要组成部分,它解决了AI绘画训练中最关键的数据准备问题。通过可视化界面,用户可以: * 批量管理数千张图片的标签 * 智能筛选和分类数据集

Llama-Factory的eval模块详解:准确率、困惑度等指标一览

Llama-Factory的eval模块详解:准确率、困惑度等指标一览 在大语言模型(LLM)快速迭代的今天,微调已不再是少数研究团队的专属技术。越来越多的企业和开发者希望基于开源模型定制自己的智能应用——从金融客服到医疗问答,从教育辅导到内容生成。然而,一个常被忽视的问题是:我们如何科学地判断一个微调后的模型真的“变好了”? 答案并不总是显而易见。你可能训练了几十个epoch,loss曲线一路下降,但最终生成的回答却越来越模板化;或者准确率高达90%,但在真实场景中仍然频繁出错。这些问题的背后,是对评估环节的轻视。 正是在这样的背景下,Llama-Factory 的 eval 模块显得尤为关键。它不仅仅是一个“跑个测试集出个分数”的工具,而是将模型评估系统化、标准化、自动化的关键组件。通过统一接口支持多种任务与指标,它让不同模型、不同训练策略之间的比较成为可能,也让实验结果更具可复现性。 准确率:简单却不容小觑的基础指标 说到评估,最直观的指标莫过于准确率(Accuracy)。它的定义极其朴素:预测正确的样本数占总样本的比例。公式也简洁明了: $$ \text{Accur

permission.site核心功能揭秘:从摄像头到蓝牙的权限测试技巧

permission.site核心功能揭秘:从摄像头到蓝牙的权限测试技巧 【免费下载链接】permission.siteA site to test the interaction of web APIs and browser permissions. 项目地址: https://gitcode.com/gh_mirrors/pe/permission.site permission.site是一个专为测试Web API与浏览器权限交互而设计的开源工具,能够帮助开发者和测试人员轻松验证各类权限请求的行为和状态。无论是摄像头、麦克风访问,还是地理位置获取,该工具都能提供直观的权限状态反馈和操作指引。 为什么需要专业的权限测试工具? 现代浏览器对用户隐私保护日益严格,网页应用需要通过明确的权限请求才能访问摄像头、麦克风、位置等敏感设备或数据。权限测试已成为前端开发不可或缺的环节,直接影响用户体验和应用功能完整性。 permission.site通过模拟真实场景下的权限请求流程,帮助开发者: * 验证不同浏览器环境下的权限行为差异 * 测试权限授予/拒绝后的应用状态处

什么是Agentic AI?Agentic AI 与传统 AIGC 有什么区别?

什么是Agentic AI?Agentic AI 与传统 AIGC 有什么区别?

什么是 Agentic AI?Agentic AI 与传统 AIGC 有什么区别? 1. 引言 近年来,人工智能(AI)技术飞速发展,其中以生成式 AI(AIGC,Artificial Intelligence Generated Content)和 Agentic AI(智能代理 AI)最为热门。AIGC 通过深度学习模型生成文本、图像、视频等内容,而 Agentic AI 则更进一步,能够自主感知、决策并执行任务。那么,Agentic AI 究竟是什么?它与传统的 AIGC 有何不同?在本文中,我们将深入探讨 Agentic AI 的概念、技术原理、