智慧农业烟草植株病虫害识别|无人机田间巡检数据集|YOLO目标检测深度学习项目实战
·
智慧农业烟草植株病虫害识别|无人机田间巡检数据集|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. 核心优势
- 真实田间:无人机实拍,还原光照、遮挡、复杂背景
- 开箱即用:目录规范、配置完整,克隆即可跑通训练
- 场景聚焦:专用于烟草幼苗/叶片病害,比通用数据集精度更高
- 工程友好:配套预处理、训练、推理、评估全流程代码
🎯 核心应用场景
- 无人机田间自动巡检:实时回传病害位置与热力图
- 智慧农场监测系统:7×24小时无人值守病害预警
- 精准植保:定位病灶,指导变量喷药,减药增效
- 科研教学:目标检测实战数据集,课程实验/毕设项目
- 产业落地:快速搭建烟草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")
📊 深度思考与工程价值
- 数据价值:填补烟草无人机实景标注数据缺口,降低农业AI落地门槛
- 模型策略:轻量YOLO+小学习率+适度增强,适配小样本、小目标病害
- 落地优势:可直接对接无人机、边缘盒子、手机APP,形成“采集-识别-决策”闭环
- 扩展方向:多病害细分、时序生长监测、跨作物迁移学习、病虫害预警模型
🧰 快速开始
- 克隆项目并安装依赖
pip install ultralytics opencv-python - 放置数据集到
dataset/目录 - 配置
data.yaml路径 - 运行
python train.py训练 - 运行
python predict.py推理测试
🏷 标签
#智慧农业 #烟草病虫害识别 #无人机巡检 #YOLO目标检测 #农业数据集 #深度学习实战 #计算机视觉 #精准植保 #AI农业 #目标检测数据集
更多推荐




所有评论(0)