智慧农业-无人机枸杞树病害检测数据集 深度学习框架基于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

【从0学习Spring AI Alibaba】1、什么是Spring AI Alibaba?

【从0学习Spring AI Alibaba】1、什么是Spring AI Alibaba?

一、开篇:Java大模型应用开发现状与痛点 在AI技术深度渗透企业应用的当下,Java开发者如何高效构建大模型应用成为关键命题。当前Java生态中已经涌现出多个大模型框架,形成了相对完整的开发体系。 1、主流框架对比: OpenAI SDK:OpenAI API的Java封装层,简化API调用流程,支持流式响应,适合快速集成GPT系列模型 Deep Java Library (DJL) :JVM本地模型运行时,支持PyTorch/TensorFlow模型在JVM运行,ONNX格式兼容,适合本地推理、隐私敏感型应用 Spring AI:Spring生态AI集成层,提供统一API调用多模型、向量库操作、ETL支持,适合微服务架构中的AI能力嵌入 LangChain4j:Java生态开发枢纽,支持多模型集成、RAG系统、Spring生态无缝衔接,适合企业级AI应用、智能客服、金融分析等场景 2、企业级AI应用面临的挑战: * 模型接入复杂:不同厂商的API协议、认证方式、参数格式差异大,集成成本高 * 工程化能力不足:缺乏统一的可观测性、

2026年8款AI大模型实测排名!国产杀入全球前10,最便宜只要2毛钱

2026年8款AI大模型实测排名!国产杀入全球前10,最便宜只要2毛钱

先说结论:按需求直接选 2026年大模型格局已经从"美国领跑、中国追赶"变成了真正的多极竞争。如果你不想看完全文,这是按场景给出的推荐: * 日常对话和写作:Claude Opus 4.6(综合体验最佳)、豆包 Seed 2.0 Pro(中文国产第一) * 写代码:Claude Opus 4.6 / Gemini 3.1 Pro(旗舰级)、GLM-5 / DeepSeek V3.2(开源最强) * 数学和推理:GPT-5.2(AIME 2025 满分)、豆包 Seed 2.0 Pro(IMO 金牌级)

AI 驱动游戏:鸿蒙生态的机会在哪里?

AI 驱动游戏:鸿蒙生态的机会在哪里?

子玥酱(掘金 / 知乎 / ZEEKLOG / 简书 同名) 大家好,我是子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。 我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案, 在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。 技术方向:前端 / 跨端 / 小程序 / 移动端工程化 内容平台:掘金、知乎、ZEEKLOG、简书 创作特点:实战导向、源码拆解、少空谈多落地 文章状态:长期稳定更新,大量原创输出 我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、

我和 AI 聊了一晚上,第二天它说“你好,请问有什么可以帮你?“凌晨我的 AI 尽然悄悄把记忆清空了!——OpenClaw Session 完全生存指南:重置、压缩、剪枝、记忆一网打尽

凌晨4点,我的 AI 悄悄把记忆清空了——OpenClaw Session 避坑指南 摘要:用 OpenClaw 搭了个 AI 助手,聊得好的,第二天一早它就"失忆"了?本文从一个真实踩坑出发,系统拆解 OpenClaw 的 Session 机制——重置(Reset)、压缩(Compaction)、剪枝(Pruning)、记忆(Memory)、会话控制(Session Tool)——帮你彻底搞懂"对话为什么会消失"以及"怎么让 AI 记住你"。 🤯 踩坑现场 事情是这样的: 我用 OpenClaw