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

rider开发asp.net webform项目

环境 windows10 .net framework4.8 rider2025.3 新建类库项目 编辑aspxstudy01.csproj 添加 WebForms 项目类型 GUID <!--下面一行代码表示是web项目--><ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 验证目标框架:确保<TargetFrameworkVersion>节点指向有效的.NET Framework 版本 <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> 保存.csproj文件后,右键项目 → 选择「重新加载项目」 查看项目属性就可以看到多了个web属性 填写url和端口号 新建web.

Web转AI架构篇:Agent Skills vs MCP-混合架构设计模式实战指南

Web转AI架构篇:Agent Skills vs MCP-混合架构设计模式实战指南

图片来源网络,侵权联系删。 相关文章 1. 深入理解Agent Skills——AI助手的“专业工具箱“实战入门 2. 环境搭建与基础使用:5分钟上手Agent Skills 3. 创建你的第一个Skill:从构思到部署 4. Skills高级设计模式(一):向导式工作流与模板生成 5. Web开发者进阶AI:Agent技能设计模式之迭代分析与上下文聚合实战 6. Web开发者进阶AI:Agent Skills-深度迭代处理架构——从递归函数到智能决策引擎 7. Web开发者进阶AI:Agent Skills-多源数据整合方法实战 8. Web开发者进阶AI:Agent上下文管理最佳实践与Java实战 9. Web开发者进阶AI:Agent Skills-案例:代码质量分析Skill实战 10. Web开发者必读:从API网关到智能路由 —— Agent Skills元工具系统架构深度解析 11. Web开发者进阶:Agent Skills元工具三级加载机制深度解析——从类加载器到动态工具链

AI时代前端之路:从“代码执行者”到“智能协作架构师”

AI时代前端之路:从“代码执行者”到“智能协作架构师”

✅ 最新技术适配:聚焦AI与前端融合的核心趋势(AI原生开发、边缘AI、多模态交互),贴合当前主流工具链(GitHub Copilot、Cursor、Figma AI等) ✅ 通俗易懂:用“副驾驶”“原料加工”等白话比喻拆解复杂逻辑,无专业黑话,零基础也能理解 ✅ 条理清晰:先明确前端未来方向,再拆解AI高效工作方法,最后给出能力升级路径,逻辑闭环 ✅ 核心目标:帮前端开发者搞懂“AI时代该怎么定位自己”“如何用AI提效不被替代”“未来3年该学什么” 一、先明确核心结论:AI不是替代者,而是前端的“超级副驾驶” 2026年的前端行业,AI已经从“可选工具”变成“必备基建”——但这绝不是“前端要被淘汰”的信号,反而让前端的核心价值从“写代码”上移到了“做决策、控体验、搭架构”。 用一个形象的比喻理解: * 以前的前端是“独自开车的司机”

【前端地图】地图开发基础概念——地图服务类型(矢量图、卫星图、地形图)、WGS84 / GCJ-02 / BD09 坐标系、地图 SDK 简介

【前端地图】地图开发基础概念——地图服务类型(矢量图、卫星图、地形图)、WGS84 / GCJ-02 / BD09 坐标系、地图 SDK 简介

🌍第1节 | 地图开发基础概念——地图服务类型(矢量图、卫星图、地形图)、WGS84 / GCJ-02 / BD09 坐标系、地图 SDK 简介 🎯 学习目标 老曹说:“别急着敲代码,先搞懂地图是个啥玩意儿!不然你画个圈都可能画歪。” 1. 🧠 理解地图服务的基本类型及其应用场景 2. 🔍 掌握 WGS84、GCJ-02、BD09 三大坐标系的区别与转换原理 3. 🛠️ 熟悉主流地图 SDK 的核心功能与适用场景 4. 🧩 构建对地图开发的整体认知框架 🧠 引言:地图不是纸,是数据! 你以为地图就是一张平面图?Too young too simple!现代前端地图开发本质上是对空间数据的可视化与交互处理。它融合了地理信息系统(GIS)、计算机图形学、前端工程化等多个领域的知识。 老曹吐槽时间: “有人问我为啥地图开发这么难?我说:因为你不仅要会前端,还得懂地球科学!