1. 引言
计算机视觉与深度学习的快速发展推动了农业智能化的变革[1],通过高精度果实识别、机器人自主采摘和基于多模态数据的产量预测技术,显著提升生产效率、降低损耗,并缓解劳动力短缺问题,为精准农业和全链条自动化奠定基础。
玉米作为我国三大主要粮作物之一,在保障国家粮食安全中发挥着战略支柱作用。根据国家统计局数据显示,2024年我国玉米种植面积达44740.7千公顷,玉米总产量突破29491.7万吨,占我国谷物总产量的45.2%。然而,玉米生长周期中易受叶枯病、叶斑病等病虫害威胁,传统病虫害检测依赖人工田间巡查,存在效率低、误判率高、时效性差等问题。
近年基于深度学习的目标检测在农业自动化领域得到了广泛应用,如赵佳悦提出的Dense-YOLOv3番茄病害检测模型[2]、杨国国等人结合GrabCut算法进行害虫目标的定位和分割[3]、彭红星等人提出改进SSD (Single Shot MultiBox Detector)深度学习水果检测模型在自然环境下平均检测精度达88.4% [4]等。当前主流算法可分为两类:第一类为基于候选区域的两阶段检测算法,典型代表包括Faster R-CNN、Mask R-CNN等,其通过区域建议网络(RPN)生成候选框再分类回归,精度较高但计算复杂度大;第二类为基于回归的单阶段检测算法,如YOLO系列和SSD系列,通过端到端方式直接预测目标位置与类别,在速度与精度间取得更好平衡[5]。其中,YOLO算法凭借其高效的检测性能,在农业场景中展现出显著优势,但YOLO在农业场景中仍然存在如复杂背景干扰、病害形态多样性以及边缘设备部署限制等多种挑战。
YOLO系列与传统机器学习、深度学习模型的比较如表1,实际应用决策树如图1,由此分析YOLOv5在目标检测中展现出显著优势,使其成为玉米病虫害快速检测的首选解决方案。
Table 1. Comparison of the YOLO series with traditional machine learning and deep learning models
表1. YOLO系列与传统机器学习、深度学习模型的比较
指标 |
YOLO系列 |
传统方法 |
深度学习模型 |
检测速度 |
极快(实时) |
慢(非实时) |
慢(5~10 FPS) |
检测精度 |
高(85% + mAP) |
低(环境敏感) |
最高(两阶段) |
硬件成本 |
中(需边缘GPU) |
低(树莓派即可) |
高(需服务器GPU) |
数据需求 |
中(迁移学习优化) |
低(规则驱动) |
高(需大量标注) |
适用场景 |
实时监测 |
实验室简单检测 |
高精度病理分析 |
Figure 1. Practical application decision tree
图1. 实际应用决策树
2. 数据集制作
玉米枯叶病是由真菌或细菌感染引起的常见病害,主要表现为叶片出现黄褐斑、条斑或干枯,严重时整株叶片焦枯、植株早衰,导致光合作用减弱、籽粒发育不良,减产可达30%以上,因此选择该病为研究对象,其病害样本图像如图2,共1000张,数据来源于kaggle开源数据集玉米枯叶病数据集。
Figure 2. Sample of leaf blight disease
图2. 枯叶病样本
为实现数据集的扩展和多样性,提高模型训练的鲁棒性和增强泛化能力,首先对枯叶病图片进行翻转、噪声、变亮、变暗等数据增强处理,然后采用labelme工具对数据增强后的图片进行特征标记,标记完成后将保存的JSON文件转换为YOLOv5所需的txt格式,最后划分训练集:验证集:测试集比例为16:3:1。
3. YOLOv5模型
YOLOv5延续了YOLO系列的单阶段检测思路,将目标检测任务简化为回归问题,直接在特征图上预测边界框和类别概率。网络结构分为Backbone (骨干网络)、Neck (特征融合层)和Head (检测头),YOLOv5网络结构如图3所示[6]。
Figure 3. YOLOv5 network structure
图3. YOLOv5网络结构
3.1. 骨干网络(Backbone)
Backbone主要负责对输入图像进行特征提取,将原始的输入图像转化成多层特征图用于后续的目标检测任务,在YOLOv5中使用的是CSPDarknet53或ResNet骨干网络,能够在保证较高检测度的同时尽可能减少计算量和内存占用,Backbone中的主要结构有Conv模块、C3模块和SPP模块。
Conv模块是卷积神经网络中的基础模块,主要由卷积层、BN层和激活函数组成,如图4。卷积层通过滑动窗口和卷积核提取输入特征的局部空间信息,其超参数(如卷积核大小、步长和填充方式)决定了输出特征的大小和感受野。BN层在卷积层后对特征进行批归一化,通过计算每个通道的均值和方差进行标准化,再通过可学习的仿射变换恢复数据分布,从而加速训练并提升模型泛化能力。激活函数(如ReLU、sigmoid等)则引入非线性变换,增强模型对复杂数据分布的拟合能力。三者协同工作,构成高效的特征提取单元。
Figure 4. Conv model structure
图4. Conv模块结构
C3模块是YOLOv5网络中的关键组件,主要用于增强网络的深度和感受野,提升特征提取能力。该模块由三个Conv块组成:第一个Conv块采用步幅2的3 × 3卷积,将特征图尺寸减半以扩大感受野并降低计算量,同时结合BN层和LeakyReLU激活函数确保训练稳定性;后续两个Conv块保持步幅1,通过3 × 3卷积在不改变特征图尺寸的情况下进一步深化特征表征,保留局部细节信息。其中,第一个Conv块后接的Bottleneck结构(由两个Conv块组成)可高效压缩和扩展通道维度,平衡计算效率与特征表达能力,如图5。C3模块通过这种分层设计,兼顾全局语义信息与局部细节特征,显著提升了目标检测任务中对多尺度目标的识别与定位精度。
Figure 5. C3 model structure
图5. C3模块结构
SPP模块是卷积神经网络中用于增强特征表达能力的关键结构,如图6,它通过并行执行多种尺度的池化操作(如1 × 1、5 × 5、9 × 9等)来提取多级感受野特征,有效捕捉不同尺度的空间信息。该模块首先对输入特征图进行多尺度池化获得不同大小的特征图,然后将这些特征拼接融合,最后通过全连接层压缩为固定维度的特征向量。这种设计不仅突破了网络对输入尺寸的限制,还显著提升了模型的空间不变性和多尺度特征提取能力,使其在目标检测和图像识别任务中表现出更强的鲁棒性和准确性。
Figure 6. SPPF model structure
图6. SPPF模型结构
3.2. 颈部网络(Neck)
Figure 7. Neck module structure
图7. Neck模块结构
YOLOv5的颈部网络(Neck)采用FPN + PAN的双向多尺度特征融合架构,如图7,通过自顶向下(FPN)和自底向上(PAN)的双向路径,将骨干网络提取的深层语义特征与浅层细节特征进行跨层级融合。该结构以C3模块为基础单元,结合上采样、下采样和特征拼接操作,构建了覆盖不同感受野的特征金字塔(P3~P5),既能增强小目标的检测能力,又能提升大目标的定位精度。这种设计显著提高了模型对多尺度目标的适应性,在保持轻量化的同时实现了精度与速度的平衡,使其成为YOLOv5高效检测能力的核心组件。
3.3. 检测头(Head)
YOLOv5的检测头(Head)是一个多尺度目标检测模块,如图8,通过融合特征金字塔的不同层级特征进行预测。它由三部分组成:1) Anchors (通过K-means聚类预定义的多种比例边界框);2) Classification分支(卷积层 + Softmax分类);3) Regression分支(卷积层 + 坐标回归)。检测头采用卷积层进行特征处理,通过预测层输出边界框和类别,最后使用NMS过滤冗余检测。关键技术包括GIoU Loss、Mish激活函数和多尺度训练,通过Conv模块降维后实现跨层级特征融合提升检测精度。
Figure 8. Head module structure
图8. Head模块结构
4. 改进YOLOv5模型
4.1. 改进GhostNet模块代替模型主干网络[7]
Figure 9. Ghost module
图9. Ghost模块
Ghost Moule是一种模型压缩的方法,核心思想是将一个卷积层分解成两个较小的卷积层,其中一个卷积层被称为Ghost卷积层,如图9,它只使用原始卷积层的一小部分通道来计算输出,而另一个卷积层则被称为剩余卷积层,它使用剩余的通道来计算输出。在保证网络精度的同时减少网络参数和计算量,从而提升计算速度和降低延时。这种分解方式可以大大减少计算量和参数数量,同时保持网络的精度。
Ghost Bottlencks是由Ghost Moule组成的瓶颈结构,可分为主干部分和残差部分,如图10。
Figure 10. Ghost bottleneck structure with different strides
图10. 不同步长的Ghost瓶颈结构
步长为1时,主干部分用用两个Ghost Module (GM)串联组成,其中第一个GM扩大通道数,第二个GM将通道数降低到与输入通道数一致;残差边部分与ResNet一样。由于步长为1,因此不会对输入特征层的高和宽进行压缩,其功能为加深网络的深度。步长为2时,主干部分的两个GM之间加入了一个步长为2的Deepwise卷积,可以将特征图高和宽进行压缩,使其大小降为输入的1/2;在残差边部分,也会添加一个步长为2 × 2的深度可分离卷积和1 × 1的普通卷积,以保证Add操作可以对齐。由于步长为2,因此会对输入特征层的高和宽进行压缩,其功能为改变输入特征层的形状。
4.2. 检测头融入GSConv模块[8]
Figure 11. GSConv module structure
图11. GSConv模块结构
GSConv (Global Sliding Convolution)是一种轻量化卷积设计,通过通道分割策略在单层内融合标准卷积(SC)和深度可分离卷积(DSC)。它将输入通道划分为两组,分别用SC提取细节特征和DSC降低计算量,最后拼接结果。随着网络加深,GSConv动态调整两组通道的比例,以平衡特征提取能力和计算效率,如图11。H Li等人[9]在研究无人驾驶时发现由大量深度可分离卷积建成的轻量级模型也无法达到实时监测足够的精度,因此引入了一种新的轻量级卷积技术GSConv,在模型精度和速度之间实现了权衡。
优化改进后的YOLOv5网络结构如图12所示:
Figure 12. The improved network structure of YOLOv5
图12. YOLOv5改进过后网络结构
5. 性能分析与结论
5.1. 模型训练
PyTorch框架2.0.0,CUDA版本11.8,选用YOLOv5s-seg、YOLOv5m-seg,YOLOv5l-seg进行实例分割训练,改进后的YOLO模型在原有文件的基础上添加Ghost模块和GSConv模块,并对配置文件进行修改,模型预训练权重文件及相应配置文件在Ultralytics官网获得,迭代次数epoch设为100,batch_size设16,imagesz为640像素进行训练。
Backbone部分以640 × 640 × 3输入开始,通过四次3 × 3卷积,stride = 2,逐步下采样至20 × 20 × 1024特征图,其间交替插入C3Ghost模块,分别使用3、6、9、3次不同深度的特征增强,最后经SPPF层增强感受野。
Head部分通过多尺度双向特征融合,高层特征P5经GSConv压缩通道后上采样与中层P4拼接,经C3模块融合后继续上采样与浅层P3交互,同时底层特征P3通过下采样与中层特征二次融合,中层特征再下采样与高层特征二次交互,形成双向跨尺度特征金字塔。
YOLOv5-seg模型的训练框架采用全链路优化设计,使用SGD优化器,配合动态权重衰减和参数分组策略,学习率调度集成余弦退火与线性衰减双模式,迭代学习率从0.1线性攀升,动量从0.8渐增,训练过程采用AMP混合精度与梯度裁剪保障稳定性,结合EMA权重平均提升模型鲁棒性,动态调整机制包括自动锚框验证、损失函数参数层级归一化和类别权重平衡,配合多尺度训练与分布式同步批归一化,形成兼顾训练效率与精度的完整优化体系。
5.2. 评价指标
采取精确率、召回率、平均精度均值mAP、浮点运算数FLOPs、模型参数量和模型在RTX3060监测的帧率FPS作为评价指标来评估模型整体性能。精确率(Precision)、召回率(Recall)、平均精度均值 (mAP)计算如式(1)所示[10]。
(1)
参数说明:C为目标检测任务中的类别数,TP预测为正例,实际为正例,预测成功(True),FP预测为正例,实际为负例,预测错误(False),FN预测为负例,实际为正例,预测错误(False)。
5.3. 实验结果
Figure 13. Model training results
图13. 模型训练结果
Table 2. Performance of different models in instance segmentation tasks
表2. 不同模型在实例分割任务中的表现
model |
mAP |
Precision |
recall |
F1 |
GFLOPs |
Params (M) |
FPS |
YOLOv5s |
0.921 |
0.854 |
0.868 |
0.86 |
25.9 |
7.2 |
45 |
YOLOv5m |
0.921 |
0.905 |
0.858 |
0.85 |
70.2 |
21.2 |
32 |
YOLOv5l |
0.928 |
0.896 |
0.875 |
0.88 |
147.0 |
46.5 |
22 |
YOLOv5s-Ghost-GSConv |
0.923 |
0.875 |
0.875 |
0.86 |
20.5 |
4.5 |
52 |
YOLOv5m-Ghost-GSConv |
0.917 |
0.891 |
0.870 |
0.86 |
45.9 |
15.8 |
38 |
YOLOv5l-Ghost-GSConv |
0.927 |
0.901 |
0.860 |
0.87 |
81.9 |
34.7 |
26 |
Figure 14. Different model segmentation effects
图14. 不同模型分割效果
为对比所提方法与原模型的性能差异,将实例分割模型YOLOv5s-seg,YOLOv5m-seg,YOLOv5l-seg,YOLOv5s-Ghost-GSConv-seg,YOLOv5m-Ghost-GSConv-seg,YOLOv5l-Ghost-GSConv-seg进行对比实验,结果如图13和表2所示。不同模型的检测效果如图14所示。
5.4. 结论
本研究通过引入GhostNet和GSConv模块对YOLOv5模型进行轻量化改进,在玉米叶片病害检测任务中取得了显著成效。实验结果表明,改进后的YOLOv5s-Ghost-GSConv-seg模型在保持原有检测精度(mAP 0.923)的同时,参数量从7.2 M降至4.5 M (降幅37.5%),计算量从25.9 GFLOPs减少至20.5 GFLOPs (降幅20.8%),推理速度从45 FPS提升至52 FPS (增幅15.6%),不仅显著降低了计算资源需求,还提高了实时检测性能,特别适合部署在资源有限的农业边缘设备上,为田间实时病害监测提供了高效可靠的解决方案,同时该方法的轻量化设计思路也为其他农作物病害检测任务提供了有益借鉴。
基金项目
新疆农业大学校级大学生创新训练项目,《基于YOLO算法的农作物叶片病虫害的检测》,dxscx2025388。
NOTES
*通讯作者。