基于改进YOLOv7的复杂背景农间杂草检测

2024-05-20 08:29刘晨晖邹红艳朱瑞林
林业机械与木工设备 2024年3期
关键词:除草杂草卷积

刘晨晖, 邹红艳, 吕 鹏, 朱瑞林

(南京林业大学机械电子工程学院,江苏 南京 210037)

农田杂草是农作物产量和品质的主要制约因素,它们与农作物争夺阳光、生长空间和土壤中的水分、养分,并可能成为病虫害的宿主,对农作物生长产生严重影响[1]。常见除草方式包括:人工除草法,耗费大量人力且效率较低;机械除草法,容易造成农作物的人为损害;喷洒除草剂法,残留药物造成土壤肥力下降和环境污染,降低农作物品质[2-4]。大田作物智慧种植作为智慧农业的重要发展目标,也是未来农业发展方向。解决农作物和杂草的准确识别问题,实现智能化除草,对提高农作物产量、减少对环境的破环和加速智慧农业产业发展有重要作用[5]。

随着科技和精准农业的发展,无人农场开始逐步实现,自动除草设备成为无人农场中不可或缺的智能装备。图像处理技术在此领域中的应用逐渐凸显其优势,具有高准确度、低成本、快速处理和强鲁棒性等特点,已成为精准农业中杂草检测和识别的重要技术手段[6]。尚文卿等[7]使用目标检测框架Faster R-CNN结合迁移学习来进行农田杂草的识别,将进的双阈值非极大抑制运用在Faster R-CNN上,提升精度的同时并有很好的泛化能力,但会产生大量额外的候选框、增加运算量。颜秉忠等[8]将采集的图片经过畸变矫正、HSI 颜色空间转换和阈值分割后,根据形状和颜色特征提取并识别杂草。Wang等[9]开发了基于HLS-SVM和灰度梯度的识别方法,但平均分割时间为0.49 s,难以满足除草工作的实时性要求。姜红花等[10]提出了基于Mask R-CNN的杂草检测方法,均值平均精度为85.3%,单样本耗时为280 ms。Etienne等[11]运用基于YOLOv3的玉米与杂草检测方法,得到双子叶杂草检测的精确度为86.13%。Chechlinski等[12]使用MobileNet等轻量化模块对卷积神经网络进行改进,在树莓派上对杂草识别帧率达到10 F/s以上,但检测精度最高仅为66.8%。尽管传统的检测方法已经取得不错成效,但也存在模型体积大,参数多,检测速度慢,难以部署到小型移动端设备上的问题[13]。Wang等[14]对YOLOv4进行轻量化,设计了YOLOv4-tiny模型,效果不佳。孟庆宽等[15]利用轻量卷积网络结合特征层融合机制构建SSD杂草识别模型,mAP为88.27%,模型的检测速度为32.26 F/s。

基于深度学习的目标检测算法可分为两阶段检测和一阶段检测方法。两阶段检测方法先推荐目标边界框,再对目标进行识别分类。其主流模型有Faster R-CNN[16],检测精度相对较高,但是检测速度较慢。一阶段检测方法为端到端地生成目标边界框和分类。其主流模型包括SSD[17]和YOLO[18]系列等,检测速度较快,但是检测精度较低。YOLOv7[19]是目前YOLO系列较新的算法之一,已被广泛应用在各方面[20],其检测精度及速度都满足农间杂草检测的基本需求, 但在具体应用时仍需对其进行改进。

本文提出了一种改进的YOLOv7模型,用于检测复杂背景农间杂草。实验结果表明,该方法不仅提高了检测速度,而且提高了检测精度,为后续的自动除草过程提供了有益的指导。

本文的主要贡献如下:

(1)在小数据集情况下,采用图像处理手段扩充数据集,提高农间杂草识别准确率。

(2)对YOLOv7进行了改进,通过优化模型结构和参数,对芝麻作物和杂草数据集进行了检测,取得了很好的效果。

1 算法及其改进

1.1 改进YOLOv7检测算法

为提高农间杂草的检测精度,降低参数量,降低漏检率,提升检测速度,对YOLOv7算法进行改进。首先,在网络中引人FasterNet结构降低参数量计算量,提高帧率(F/s),并在主干每次特征提取后引入CA坐标注意力模块,最后使用Focal-EIoU损失函数优化模型性能,改进的YOLOv7结构如图1所示。

图1 改进的YOLOv7结构图

1.2 FasterNet结构

相较于利用昂贵的计算设备来提高神经网络检测速度,现有的研究更倾向于设计经济高效的快速神经网络。MobileNets、ShuffleNet[21]等卷积神经网络利用深度卷积(DWConv)和分组卷积(GConv)提取空间特征来降低计算复杂度,但这些卷积在减少浮点运算量(FLOPs)的同时,也会带来内存访问的增加,导致较低的每秒浮点操作数。FasterNet采用了部分卷积(PConv)进行特征提取,能够大幅减少卷积运算时的运算量。图2为FasterNet[22]和PConv[23]结构图。

图2 FasterNet和PConv结构图

FasterNet体系结构分为四个层次,每个层次包含一个PConv层和两个PWConv层。 PConv层是部分卷积层,只计算卷积输出的有效部分,而PWConv层是逐点卷积层,这些层一起形成了一个倒置的残差结构。FasterNet体系结构中使用的激活函数对于较小的变体是GELU,对于较大的变体则采用ReLU。该架构还具有嵌入式层和合并层,用于空间下采样和通道数扩展,并将更多的计算分配给后两个阶段,消耗更少的内存访问和更高的FLOPS,最后使用全局平均池化层、1×1卷积层和全连接层进行特征转换和分类。

1.3 CA注意力机制

在视觉任务中,位置信息对捕获空间结构有着至关重要的作用,引入CA注意力机制[24],用嵌入精确的位置信息去融合通道关联和长距离依赖关联。CA注意力机制将输入特征图分别在水平方向和垂直方向进行平均池化,得到两个一维向量在空间维度上融合(Concat),用1×1大小卷积核来做卷积(Covn2d),再通过批量归一化(Batch Normalization)和非线性激活函数来编码垂直方向和水平方向的空间信息。将以上两个方向的空间信息,各自通过1×1大小卷积核做卷积(Covn2d),得到与输入特征图一样的通道数,最后做归一化加权运算输出特征图。CA注意力机制结构如图3所示。

图3 CA注意力机制结构

1.4 Focal-EIoU损失函数

在目标识别和检测过程中,目标框和预测框的重叠面积、中心点距离、纵横比,以及边界框Bounding box(BBox)都是决定其精确度的重要因素。原始YOLOv7使用CIoU[25]作为坐标损失函数,并未考虑到BBox,因此引入Focal-EIoU loss[26]函数来替代原始损失函数。Focal-EIoU函数不仅包含了CIoU的有益特性,还聚焦于高质量的BBox,提高模型检测精确度同时,还可以加快模型收敛,Focal-EIoU计算式如下:

(1)

式中:LIoU为IoU损失;Ldis为中心点距离损失;Lasp为长宽损失;ω和h为覆盖预测框与真实框的最小包围框的宽和高,b和bgt分别表示目标框和预测框的中心点,ρ表示b和bgt之间中心点坐标的欧氏距离。LEIoU损失直接减小了目标框和真实框的宽、高差,收敛速度更快,更有益于模型检测精确度的提高。

2 模型训练与评价指标

2.1 实验数据集

本文的数据集来源于Kaggle网站公开数据集(crop and weed detection data with bounding boxes),该数据集包含1 300张芝麻作物和不同类型杂草的图像,每个图像都带有PASCAL VOC 2007格式标签,图像分辨率为512×512像素。本研究采取加入噪声的方式对数据集进行扩容,使用lebelImg标注工具对所有图像进行标注,将扩充后的2 600张图片按照7:1:2分为训练集、验证集和测试集,对数据所做的处理部分如图4所示。

图4 图像处理示例图

2.2 实验配置

本实验是在Win10操作系统下进行,CPU型号为Intel©CoreTMi5-12400F,运行内存为16 GB。GPU型号为NVIDIA GeForce RTX 4060,专用GPU内存8 GB。该YOLOv7模型是基于Pytorch1.12.0深度学习框架,编程语言为Python3.11,Pycharm集成开发环境进行实验,CUDA版本为11.7.99。

实验设置基本采用YOLOv7的官方推荐参数设置,改进的前后算法采用相同超参数和预训练权重,采用自适应anchor,采用mosaic数据增强,输入图像尺寸大小为640×640,训练时batch-size为16,测试时batchsize为1,epoch为300,初始化学习率为0.01,学习率动量为0.937,推理时conf-thres设为0.40。

2.3 评价指标

本文实验采用精度(Precision,P)、召回率(Recall,R)、多个类别平均精度的平均值(mean Average Preci-sion,mAP)几项性能指标评判算法的性能。其中精度P、召回率R、mAP分别表示为:

(2)

(3)

(4)

式中:TP为模型识别杂草或芝麻作物正确的样本数量,FP为模型识别杂草或芝麻作物错误的样本数量,FN为模型遗漏识别杂草或芝麻作物的样本数量。N为模型能检测出目标的种类数量,APi为第i个类别的平均精度(Average Precision)。通过计算P-R曲线所围成的面积而得到,对所有类别求均值即为平均精度均值mAP。在研究中,mAP值越高、漏检率越低,未检测到的杂草数量越少,网络性能越好。

3 结果与分析

3.1 消融实验

为了验证改进算法对农间杂草检测的有效性,进行了一系列消融实验,结果如表1所示。在这些实验中,实验以YOLOv7作为基准算法,并使用mAP评价指标来评估实验效果。在表中,“√”表示针对原始算法进行的改进点,在该研究中分别进行了A、B、C三组消融实验。

表1 消融实验结果

通过表1可以看出,A组实验引入轻量级的FasterNet结构,mAP相比于原始的算法提升了0.9%,FasterNet结构提高了对小目标的检测能力。B组实验在A组实验的基础上增加了CA注意力模块,mAP相比A组实验提升了1.1%。C组实验在B组实验的基础上修改了损失函数,实验表明该改进方法比B组方案的平均精度提升了2.2%。

总体来讲,实验结果表明每项算法的优化对最终的结果都是正向促进作用,三项算法的组合改动同时应用使该算法的平均精度达到最优。

3.2 主流模型对比

为了对比本研究模型与SSD模型、FasterR-CNN模型、YOLOv5s模型、YOLOv7模型在目标检测任务中的有效性,本试验设计了不同模型之间性能测试对比。采用相同的数据集和参数设置进行1 000次迭代训练和测试,表2列出不同模型的精确度、FPS、召回率、平均精度均值和帧速率。

表2 主流模型实验结果

对比表2中不同算法模型的实验结果,可以看出,本文提出的改进YOLOv7算法相较于其他主流的算法模型有着最高的检测精度。其中,相较SSD、YOLOv5s、YOLOv7算法,本文改进算法的检测精度明显提升。相较于检测精度较为相近的Faster R-CNN算法,本文所提算法帧速率优势明显。

图5为YOLOv5s、YOLOv7以及本文算法的部分实验检测结果对比图。从图5可以看出,3种算法定位效果类似,本文所改进的算法置信度均是最高值,且YOLOv5s出现了漏检的情况。相比于YOLOv7,本文改进算法置信度更高、检测效果更准确,也进一步验证了将改进的YOLOv7算法应用于农间杂草检测的有效性。

图5 检测结果对比

4 结论

针对传统农间除杂草方式存在的弊端和目前农间实时杂草检测速度与检测精度有很大提升空间的现象,基于YOLOv7网络进行改进得到本检测方法。首先,从轻量化模型角度出发,将网络骨干输入和输出的2个E-ELAN以及特征融合部分的模块替换为FasterNet模块,保证模型精度的同时降低参数量,提高检测速度;其次,在主干部分加入CA注意力机制,获取交叉信道信息时,也能获取和感知位置敏感信息,提高检测精度和网络表达能力;最后,替换原来的损失函数为Focal-EIoU,减少了目标框与预测框的宽高差,降低了样本之间的不平衡性,提升了定位精度。该方法在NVIDIA GeForce RTX 4060环境下,对于芝麻作物和多种杂草的数据集mAP为93.7%,检测时间为2.6 ms。试验表明该方法检测精度高,推理速度快,有助于农田智能除草设备能准确、实时地检测目标。

猜你喜欢
除草杂草卷积
玉米除草、追肥 记住这些“黄金时段”
拔杂草
除草记
小麦播种后 除草最佳时间别错过
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
水稻田几种难防杂草的防治
一种基于卷积神经网络的性别识别方法
除草新招