智慧农业烟草植株病虫害识别|无人机田间巡检数据集|YOLO目标检测深度学习项目实战

传统烟草种植依赖人工巡检病害,效率低、漏检率高、规模化难覆盖;无人机+AI视觉正重构植保流程,但田间实景标注数据稀缺、场景适配性弱成为落地瓶颈。本数据集聚焦烟草幼苗/植株叶片病虫害检测,面向无人机巡检、智慧农场、精准植保等真实场景,适配YOLO全系列训练,快速搭建可落地的病害识别系统。
在这里插入图片描述
在这里插入图片描述


📁 项目总览

tobacco-disease-detection/
├── README.md               # 项目说明
├── dataset/                # 数据集主目录
│   ├── images/             # 原始图像(JPG/PNG)
│   ├── labels/             # YOLO格式标注(txt)
│   ├── train/              # 训练集
│   ├── val/                # 验证集
│   └── data.yaml           # 训练配置文件
├── tools/                  # 数据预处理/增强脚本
├── train.py                # 模型训练脚本
├── predict.py              # 推理部署脚本
└── requirements.txt        # 依赖清单

🧾 数据集完整信息

1. 基础信息

  • 领域:计算机视觉|目标检测|智慧农业
  • 场景:烟草幼苗/植株叶片|无人机田间巡检|自然光照田间实景
  • 任务:烟草病虫害实时检测、健康/病害二分类定位
  • 标注类型:矩形框标注 + 类别标签(YOLO标准格式)
  • 数据规模:1200+ 张高分辨率田间实拍图像,覆盖多光照、多角度、不同生长周期
  • 子集划分:训练集 900+|验证集 200+|测试集 100+,均衡无偏
  • 标注质量:人工精标,过滤模糊/遮挡/无效样本,框选精准

2. 类别定义

类别ID 英文标签 中文标签 说明
0 healthy 健康植株 无病斑、无虫咬、叶片完整
1 disease 病害叶片 含病斑、花叶、枯萎、虫害损伤等

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

3. 格式与兼容性

  • 图像格式:JPG / PNG,分辨率≥1280×720
  • 标注格式:YOLO纯文本txt,一行一个目标,直接训练无需转换
  • 兼容模型:YOLOv5 / YOLOv8 / YOLOv10 / YOLO11 全系列
  • 部署支持:TensorRT / ONNX / OpenVINO 边缘端加速

4. 核心优势

  • 真实田间:无人机实拍,还原光照、遮挡、复杂背景
  • 开箱即用:目录规范、配置完整,克隆即可跑通训练
  • 场景聚焦:专用于烟草幼苗/叶片病害,比通用数据集精度更高
  • 工程友好:配套预处理、训练、推理、评估全流程代码

🎯 核心应用场景

  1. 无人机田间自动巡检:实时回传病害位置与热力图
  2. 智慧农场监测系统:7×24小时无人值守病害预警
  3. 精准植保:定位病灶,指导变量喷药,减药增效
  4. 科研教学:目标检测实战数据集,课程实验/毕设项目
  5. 产业落地:快速搭建烟草AI质检、病害识别商业化方案

🧠 深度学习实战代码(带场景注释)

1. 数据集配置(data.yaml)

# 烟草病虫害检测专用配置|适配YOLOv8/v10
path: ./dataset  # 数据集根目录
train: train     # 训练集相对路径
val: val         # 验证集相对路径
test: test       # 测试集相对路径

# 类别信息
nc: 2            # 健康+病害 2分类
names:
  0: healthy
  1: disease

2. 训练脚本(train.py)

# -*- coding: utf-8 -*-
"""
烟草病虫害YOLO训练脚本
场景:无人机田间巡检|小目标病害检测|轻量化部署
经验:农业场景建议轻量模型+适度增强,避免过拟合
"""
from ultralytics import YOLO

def train_tobacco_disease():
    # 加载轻量预训练模型,适合无人机端侧部署
    model = YOLO("yolov8n.pt")

    # 烟草田间训练参数(经验调优)
    train_params = {
        "data": "./dataset/data.yaml",
        "epochs": 120,           # 小数据集充足迭代
        "imgsz": 640,            # 无人机图像标准尺寸
        "batch": 16,             # 显存友好
        "device": 0,             # GPU训练
        "lr0": 0.01,             # 初始学习率
        "mosaic": 0.7,           # 增强提升泛化
        "mixup": 0.1,
        "pretrained": True,
        "name": "tobacco_disease",
        "exist_ok": True
    }

    # 启动训练
    model.train(**train_params)
    # 验证模型
    metrics = model.val()
    print("mAP50:", metrics.box.map50)
    print("precision:", metrics.box.p)
    print("recall:", metrics.box.r)

if __name__ == "__main__":
    train_tobacco_disease()

3. 推理部署(predict.py)

# -*- coding: utf-8 -*-
"""
烟草病虫害推理脚本
输入:无人机图片/视频
输出:病害框+置信度+类别+保存结果
用途:田间实时巡检、后台批量分析
"""
from ultralytics import YOLO
import cv2

def detect_tobacco_disease(img_path, save_path="./result.jpg"):
    # 加载训练完成的最优模型
    model = YOLO("./runs/detect/tobacco_disease/weights/best.pt")
    # 推理(置信度阈值适配田间小目标)
    results = model(img_path, conf=0.25, iou=0.45)

    # 可视化并保存
    img = results[0].plot()
    cv2.imwrite(save_path, img)

    # 输出病害信息
    for r in results:
        for box in r.boxes:
            cls_id = int(box.cls)
            conf = round(float(box.conf), 2)
            cls_name = model.names[cls_id]
            print(f"类别:{cls_name}|置信度:{conf}|坐标:{box.xyxy[0]}")

if __name__ == "__main__":
    detect_tobacco_disease(img_path="test.jpg")

📊 深度思考与工程价值

  1. 数据价值:填补烟草无人机实景标注数据缺口,降低农业AI落地门槛
  2. 模型策略:轻量YOLO+小学习率+适度增强,适配小样本、小目标病害
  3. 落地优势:可直接对接无人机、边缘盒子、手机APP,形成“采集-识别-决策”闭环
  4. 扩展方向:多病害细分、时序生长监测、跨作物迁移学习、病虫害预警模型

🧰 快速开始

  1. 克隆项目并安装依赖
    pip install ultralytics opencv-python
    
  2. 放置数据集到 dataset/ 目录
  3. 配置 data.yaml 路径
  4. 运行 python train.py 训练
  5. 运行 python predict.py 推理测试

🏷 标签

#智慧农业 #烟草病虫害识别 #无人机巡检 #YOLO目标检测 #农业数据集 #深度学习实战 #计算机视觉 #精准植保 #AI农业 #目标检测数据集

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐