1. 项目背景与核心价值
烟草作为重要的经济作物,其病虫害防治一直是农业生产中的关键环节。传统的人工检测方式存在效率低、主观性强、覆盖范围有限等问题。我们团队基于CNN卷积神经网络开发的这套烟草病虫害目标检测系统,实现了对7种常见烟草病害和虫害的早期识别,平均识别准确率达到92.3%,比传统人工检测效率提升15倍。
这个项目的创新点主要体现在三个方面:
- 采用改进的YOLOv5s架构,引入GAM注意力机制提升小目标检测能力
- 结合ShuffleNetv2轻量化网络,使模型体积压缩至原生YOLOv5的40%
- 开发了适配田间场景的数据增强方案,有效解决叶片遮挡、光照变化等实际问题
2. 技术架构解析
2.1 模型整体设计
我们采用"轻量化主干+增强检测头"的混合架构:
- 主干网络:基于ShuffleNetv2改进的CBRM模块(Conv-BN-ReLU-MaxPool)
- 颈部网络:FPN+PAN结构融合多尺度特征
- 检测头:引入GAM全局注意力机制
class CBRM(nn.Module): def __init__(self, c1, c2): super().__init__() self.conv = nn.Conv2d(c1, c2, 3, padding=1) self.bn = nn.BatchNorm2d(c2) self.act = nn.ReLU() self.pool = nn.MaxPool2d(2) def forward(self, x): return self.pool(self.act(self.bn(self.conv(x))))2.2 关键改进点
2.2.1 GAM注意力机制
在FPN和PAN之间插入GAM模块,通过通道和空间双重注意力增强病害特征:
- 通道注意力分支:
- 全局平均池化 → 全连接层 → Sigmoid激活
- 空间注意力分支:
- 1x1卷积 → 批归一化 → 空间卷积
2.2.2 轻量化设计
将原YOLOv5的C3模块替换为ShuffleBlock,具体改进:
- 通道分割比例设为1:3
- 深度卷积核大小调整为3x3
- 添加残差连接
3. 数据集构建
3.1 数据采集
我们收集了5个主要烟草产区的田间图像,包含:
- 病害类型:花叶病、赤星病、黑胫病等
- 虫害类型:烟青虫、烟蚜、斜纹夜蛾等
- 生长阶段:苗期、旺长期、成熟期
3.2 数据增强策略
针对农业图像特点设计的增强方案:
| 增强类型 | 参数设置 | 作用 |
|---|---|---|
| Mosaic | 4图拼接 | 提升小目标检测 |
| 光照调整 | ±30%亮度 | 模拟不同时段光照 |
| 叶片遮挡 | 最大30%面积 | 增强鲁棒性 |
| 旋转 | ±15度范围 | 适应不同拍摄角度 |
特别注意:避免使用色相变换,会改变病斑颜色特征
4. 模型训练细节
4.1 超参数配置
lr0: 0.01 # 初始学习率 lrf: 0.2 # 最终学习率 momentum: 0.937 weight_decay: 0.0005 warmup_epochs: 3 batch_size: 324.2 训练策略
采用三阶段训练法:
- 冻结主干网络:仅训练检测头(50轮)
- 微调全网络:学习率降为1/10(100轮)
- 强化难样本:对错检样本加倍采样(50轮)
4.3 评估指标对比
| 模型 | mAP@0.5 | 参数量(M) | 推理速度(ms) |
|---|---|---|---|
| 原始YOLOv5s | 0.891 | 7.2 | 12.3 |
| 我们的模型 | 0.923 | 4.8 | 9.7 |
5. 部署应用方案
5.1 硬件配置建议
- 边缘设备:Jetson Xavier NX
- 摄像头:200万像素全局快门相机
- 部署方式:
- 田间固定监测站
- 手持巡检设备
- 无人机巡检测绘
5.2 软件部署流程
- 模型转换:PyTorch → TensorRT
trtexec --onnx=model.onnx --saveEngine=model.engine --fp16- 开发推理服务:
import tensorrt as trt class Detector: def __init__(self, engine_path): self.logger = trt.Logger() with open(engine_path, "rb") as f: self.engine = trt.Runtime(self.logger).deserialize_cuda_engine(f.read())6. 常见问题解决
6.1 误检问题排查
当出现以下情况时:
- 将水滴误检为病斑
- 将叶脉误判为虫害
解决方案:
- 增加反光样本训练数据
- 调整NMS阈值至0.4-0.5
- 添加后处理规则:过滤长宽比异常的检测框
6.2 模型优化方向
- 知识蒸馏:用大模型指导小模型训练
- 量化感知训练:提升INT8量化精度
- 多模态融合:结合近红外光谱数据
7. 实际应用案例
在云南某烟草种植基地的测试结果显示:
- 早期病害识别准确率提升35%
- 农药使用量减少22%
- 平均每亩增收800-1200元
这套系统目前已经部署在7个省级烟草种植示范区,累计监测面积超过3万亩。我们正在开发移动端应用,方便农户通过手机拍照即可获得诊断结果。