时间:2024-05-24
赵 辉 黄 镖 王红君 岳有军
(1.天津理工大学电气工程与自动化学院, 天津 300384; 2.天津市复杂系统控制理论与应用重点实验室, 天津 300384)
农作物的健康生长决定着农业生产的产量及品质,作物健康监测是精准农业的一个重要组成部分。由于害虫种类繁多且为害特点复杂,人工识别效率低下,无法及时对农田虫害进行全面有效防控[1-2]。农田巡检机器人可实现害虫的自动监测[3-4],在降低人工成本的情况下实现全天候的实时监测,其中巡检机器人的视觉系统是高效、准确识别害虫的关键。因此,研究一种能够在复杂农田环境下快速准确识别害虫的方法,对提高农业生产效率和质量具有重要意义。
随着人工智能技术的发展,机器学习和深度学习的方法已经被大量应用于农作物的病虫害检测。DENG等[5]研究了一种基于SIFT-HMAX和局部配置模型(Local configuration pattern)提取不变特征的方法,并利用支持向量机(Support vector machine,SVM)对害虫进行识别,缺点是检测图像的时间较长,实时性差;KASINATHAN等[6]利用GrabCut算法对图像进行前景与背景的分割,并利用直方图均衡化对图像的对比度进行增强来提取害虫特征,对害虫具有较好的检测性能,但无法对数量较多的害虫进行检测。传统检测方法需要人工提取作物害虫特征,然而害虫的颜色和纹理与田间背景的颜色和纹理相似,通过传统机器学习方法对农田复杂环境下的害虫进行检测,易受复杂环境影响造成检测精度差,难以满足巡检机器人的实际工作需求。
深度学习方法能够通过数据集训练的方式提取目标多尺度特征,提高了模型精度及泛化能力,在害虫检测方面得到广泛应用[7-10]。主流的目标检测网络主要有SSD[11]、YOLO(You only look once)系列[12-14]和Faster R-CNN(Faster region with CNN)系列[15-17]等。在害虫检测方面,DONG等[18]提出一种具有信道重新校准特征金字塔网络 (CRFPN) 和自适应锚 (AA) 模块的CRA-Net,提高了小目标害虫检测的准确性;JIAO等[19]设计了自适应特征融合金字塔网络(AFFP-Net),可提取害虫最优多尺度特征,改善了病害检测性能;NANNI等[20]利用显著图方法突出图像中与目标最相关的像素,并与CNN相结合的方式对害虫进行识别,但是对小目标的识别效果差;姚青等[21]基于改进的CornerNet,利用重叠滑动窗和检测框抑制的方法,实现了对不同密度下稻飞虱的检测;郭庆文等[22]提出一种基于显著图分析技术的深度网络害虫检测模型,有效提高了诱虫板图像害虫检测精度,mAP达到86.40%;肖德琴等[23]提出一种改进的Faster R-CNN算法,对不同天气下不同密度的害虫进行检测,采用ResNet101作为特征提取网络时,mAP达87.14%;彭红星等[24]利用改进后的YOLOF模型,对田间害虫进行检测,平均精度均值达到93.7%。上述方法能够从训练数据中有效学习到目标特征,弥补了传统机器学习人工提取特征的不足,并且在准确率和检测效率上也有一定程度的提高,但还存在以下问题尚待解决:①当前害虫检测算法是在实验室环境下进行检测的,当在农田复杂环境下对害虫进行检测时,害虫图像不仅受背景因素影响,而且害虫形态、尺度多变,很容易造成害虫目标误检和漏检。②已有算法主要针对特定群体的害虫进行目标检测,农田复杂环境下害虫体积小、数量多、分布不均且会存在作物遮挡的情况,从而影响识别准确率。
针对上述问题,本文通过融合注意力模块、改进多尺度特征融合模块和优化损失函数,提出一种基于改进YOLO v7的农田复杂环境下害虫识别方法,以提高模型在农田复杂环境下对密集小目标害虫的检测效果。
实验样本数据集共包含2部分:采用公开害虫图像数据集IP102[25]和在佐治亚大学等机构设立的网址(https:∥www.insectimages.org/index.cfm)下载的数据集,包括蝼蛄、白星花金龟、麦长管蚜、红蜘蛛、蝗虫、玉米螟、飞蛾、蓟马和麦叶蜂9种常见农田害虫图像。为了符合巡检机器人在复杂场景下的实际工作需求,共筛选出包含农田复杂环境的3 824幅图像作为实验数据集,并按照比例8∶1∶1创建训练集、验证集和测试集。然后将标签格式保存为 PASCAL VOC 数据集格式,并将图像统一裁剪为640像素×640像素,调整后的部分害虫数据集图像如图1所示,训练集、验证集和测试集各类害虫详细信息如表1所示。
表1 害虫数据集信息明细Tab.1 Pest dataset information details
图1 复杂场景下的害虫图像Fig.1 Image of pest in complex scenes
YOLO v7[26]是YOLO系列最新推出的结构,是目前在MSCOCO数据集上推理速度和识别效果最优的YOLO模型,该模型兼顾了检测速度与精度,满足复杂环境下巡检机器人识别快速、精准的要求,因此,本文以YOLO v7 为基础检测模型并对其进行改进。YOLO v7 由骨干网络(Backbone network)、颈部网络(Neck network)和预测网络(Prediction network)3部分组成。Backbone部分由集成卷积单元(CBS)、E-ELAN 架构以及MPConv模块组成,实现对特征的下采样,生成目标的语义信息;E-ELAN模块通过利用CBS以不同方式的残差连接来增强网络对目标的特征提取能力;MPConv模块通过利用Maxpooling与CBS并行连接的方式分别对输入特征图进行2倍下采样并进行信息融合,可以得到更多的特征信息,提升算法的检测精度。Neck部分利用CBS、Cat-ELAN模块和MPConv将不同特征层之间的特征信息相互融合,输出到Prediction部分以生成检测不同尺度的检测框并预测出含有置信度的目标类别。
2.2.1害虫检测模型构建
虽然YOLO v7网络模型能够很好地权衡速度与精度,但是在农田复杂环境中,由于作物枝叶遮挡等环境因素造成许多目标特征提取困难,特征信息容易丢失,不利于对作物害虫的检测。为了提高检测精度与检测效率,提出改进的YOLO v7害虫检测模型,其网络结构如图2所示。Backbone部分提取的特征B1与经过3次上采样的特征进行特征融合后得到N4,最后经过Rep卷积模块后得到P1,用于检测极小目标;进行特征提取后的特征图B2与经过2次上采样的特征图进行特征融合后得到N3,再将N3与N4进行级联操作后,经过Rep卷积模块后得到P2,用于检测小目标;同理可得到特征图P3和P4分别用于对中目标和大目标的检测。
图2 改进的YOLO v7网络结构图Fig.2 Improved YOLO v7 network structure diagram
2.2.2基于Swin Transformer的特征提取模块
由于在农田复杂环境下的害虫呈现密集且分布不均现象,容易造成模型无法准确定位害虫目标位置,出现漏检问题。YOLO v7网络模型为CNN网络,具有局部相关性和平移不变性,缺乏全局建模的能力。为进一步提高模型对密集目标的特征提取能力,在YOLO v7网络模型的骨干网络顶层引入Swin Transformer特征提取模块(SwinCSPX),通过Swin Transformer自注意力机制[27],有效地融合局部特征和全局特征,获取全局上下文信息,从而指导模型更好地完成对密集目标的检测。因此,本研究将Swin Transformer Block与CSP Bottleneck结合,构成SwinCSPX模块,其结构如图3所示。
图3 SwinCSPX模块Fig.3 SwinCSPX module
Swin Transformer Block利用基于窗口多头自注意力(Windows multi-head self-attention,W-MSA)和基于移位窗口多头自注意力(Shifted windows multi-head self-attention,SW-MSA)相结合的方式,指导模型建立害虫特征图通道与害虫目标位置信息的关系,利用全局上下文信息进行特征通道与害虫目标的信息交互,提高模型对密集型目标位置信息的识别能力,即W-MSA将输入特征图分割成4个尺寸相同的窗口,在W-MSA之后使用移位窗口自注意力(SW-MSA) 将4个不同窗口间的信息融合。其具体实现方法是将W-MSA的4个窗口利用滑动窗口得到的编码为A~I的9个窗口,通过循环移位的方法对9个窗口进行信息重组,保证了移位后窗口的尺寸与原W-MSA窗口一致,最后进行窗口内Transformer自注意力[28]计算,不仅减少了计算量,而且实现了全局建模。
SW-MSA移动窗口的重组示意图如图4所示。图4上方矩形框内执行的操作为W-MSA,将图像划分为4个窗口;图4下方矩形框内执行操作为SW-MSA,利用滑动窗口将得到的4个窗口划分为尺寸不一的9个窗口(A~I),通过循环移位操作将(F,D)、(H,B)及(I,G,C,A)构成的小窗口重新组合成4个同样尺寸的窗口,从而完成不同窗口间的信息交流。Swin Transformer Block可以表示为
(1)
式中 W-MSA——窗口多头自注意力
SW-MSA——移位窗口多头自注意力
ml-1——输入
ml、ml+1——W-MSA和SW-MSA的输出
MLP()——多层感知机
LN()——层标准化操作
2.2.3多尺度路径聚合模块
为了更好地利用底层特征,从而提升模型对小目标检测性能,在原YOLO v7网络模型的基础上,构建4种不同尺度的检测头来识别害虫多尺度目标。浅层特征图中包含更丰富的颜色、纹理等信息。随着网络层数的加深,深层网络感受野变大,得到的特征图更具全局性,可以得到表达能力更强的语义信息,但是小目标的一些细粒度的特征信息容易丢失[28]。通过在路径聚合部分增加第4检测支路,将浅层网络中的底层信息特征与深层网络的高语义特征进行信息融合,从而提升模型在实际农田环境下对小目标害虫的检测精度。
2.2.4注意力机制模块
CBAM利用通道注意力和空间注意力对输入特征图进行自适应特征优化,其模型结构如图5所示。在通道注意力机制中,其输入的特征图F在分别经过平均池化和最大池化进行映射后,将得到的特征传递到多层感知机(MLP)中,获得每个通道的权重,将权重进行Add操作后,通过 Sigmoid 激活函数得到系数矩阵Mc,原始特征图F与系数矩阵Mc相乘得到优化后的特征图F′。Mc计算公式为
Mc=σ(MLP(Avgpool(F)))+
σ(MLP(Maxpool(F)))
(2)
式中σ——Sigmoid激活函数
Avgpool——平均池化操作
Maxpool——最大池化操作
经过通道注意力机制优化的特征图F′在空间注意力机制中,经过全局平均池化和最大池化得到权重映射并对其进行堆叠形成特征图空间权重。经过一个7×7卷积层并利用Sigmoid进行激活后得到系数矩阵Ms。最后将特征图F′ 和系数矩阵Ms相乘,对特征图上的特征进行重要程度的重分配,得到优化后的特征图F″,将F″与原始特征图F进行特征融合得到自适应特征图F*,从而使网络能够从更多的维度关注到感兴趣的目标区域。
2.2.5损失函数
由于农田复杂环境下拍摄的害虫图像背景复杂,前景与背景容易出现类失衡,训练过程中高质量的锚框远少于误差大的锚框,质量差的样本会产生较大梯度从而影响模型优化方向。
为了解决以上问题,本文引入Focal EIoU Loss(Focal and efficient IoU loss)替换原损失函数中的CIoU Loss,其计算公式为
LFocal-EIoU=IoUγLEIoU
(3)
式中γ——控制异常值抑制程度的参数
LEIoU——有效交并比损失
相当于对高质量的回归目标进行加权,提高锚框的回归精度。
EIoU计算公式为
(4)
式中b、bgt——预测框和真实框的中心点
ω、ωgt——预测框和真实框的宽
h、hgt——预测框和真实框的高
cω、ch——包含预测框和真实框最小外接框的宽度和高度
c——预测框与真实框最小外接矩形的对角线距离
ρ——欧几里得距离
EIoU Loss将损失函数分为预测框和真实框的重叠损失、位置损失以及宽高损失。
Focal EIoU Loss在CIoU Loss的基础上,不仅优化了边界框回归,挖掘了高质量样本,还对宽高损失进行改进,直接计算预测框与真实框宽高的差值作为边长损失函数,提升了边界框收敛速度,优化了模型检测性能。
本实验在基于Ubuntu 18.04、Python 3.8与PyTorch 1.7搭建的深度学习环境中完成,在GTX1080Ti×2的服务器上进行实验,同时使用CUDA v11.0、cuDNN v7.6.5对运算进行加速。
模型对蝼蛄、白星花金龟、麦长管蚜、红蜘蛛、蝗虫、玉米螟、飞蛾、蓟马和麦叶蜂9种常见农田害虫识别结果进行分析,用精确率(Precision,P)、召回率(Recall,R)、平均精度均值(mAP)及检测速度评价模型性能。
3.2.1不同识别模型结果对比
基于制作的害虫数据集,将改进算法与其他6种目标检测网络算法在同一计算平台进行对比实验,检测结果如表2所示。
表2 不同模型实验结果Tab.2 Experiment results of different models
改进算法的精确率为91.6%,召回率为82.9%,平均精度均值为88.2%,在保证精确率与其它模型基本一致的情况下,召回率和平均精度均值均高于其他6种模型,比YOLO v5模型的召回率和平均精度均值分别高了4.4、4.6个百分点,比YOLO v7模型的召回率和平均精度均值分别高了1.2、3个百分点。改进算法的平均检测速度为27.3 f/s,虽然略低于检测速度最快的YOLO v7模型,但是检测算法的其他性能指标均优于该模型。因此,综合模型整体的检测性能指标,本文算法在识别精度与速度方面均具有较大优势。
图6为改进算法的检测效果图,改进算法能够在不同光照、多尺度以及不同程度遮挡的复杂环境下很好地检测出不同种类害虫,且漏检和误检情况较少,模型的鲁棒性强。
图6 改进算法检测效果Fig.6 Detection effects of improved algorithm
模型能够精准检测出害虫的种类及位置,表明模型具有较强的特征提取及推理能力。本文将7种算法对9种害虫的识别结果(平均精确率和召回率)进行对比,如表3所示。改进的YOLO v7模型对麦长管蚜和红蜘蛛这两种类别的小目标样本的识别精确率分别为88.9%和76.2%,比YOLO v7模型分别提升0.4、9.4个百分点,表明改进后的模型能够提取到更底层的特征,使模型学习到了更多的细节特征,从而提高了模型对小目标的识别能力。改进的YOLO v7模型对全类别害虫的召回率较原模型提升1.2个百分点,对体型小且分布较为密集的麦长管蚜、红蜘蛛这两类害虫的召回率比原YOLO v7模型分别提高1.0、5.7个百分点,说明改进的模型对密集情况下的害虫也有很好的检测效果。
表3 不同种类害虫识别的平均精确率与召回率对比Tab.3 Comparison of average precision rate and recall rate for different kinds of pests identification %
由图7可知,改进的YOLO v7模型不仅漏检和误检极低,而且在白天和夜间环境下对密集小目标的精确率和召回率更高。在图像1中,Faster R-CNN模型对遮挡目标的检测效果较差,且存在误检情况,而YOLO v3模型存在更多的漏检情况,YOLO v5模型检测效果优于以上2种模型,但是左上方被遮挡的白星花金龟未检测到;图像2中,YOLO v4模型检测与背景相似的多目标漏检程度较高,Faster R-CNN模型作为二阶段目标检测算法,容易将背景识别成目标,检测精度较差;在对密集小目标的检测结果中,SSD模型在图像3和图像4中仅检测出一小部分的麦长管蚜和红蜘蛛,YOLO v3和YOLO v4模型虽然检测效果优于SSD,但仍有小部分目标未检测出。改进的YOLO v7模型不仅能够检测出被枝叶遮挡的害虫,同样,该算法也能对密集且分布不均的小目标有较高的检测精度。
图7 不同算法检测结果对比Fig.7 Comparison of different algorithms results
3.2.2消融实验
本文共设计5组不同模型的消融实验,实验结果如表4所示。
表4 消融实验结果Tab.4 Ablation experiment results
由表4可知,在骨干网络顶层添加SwinCSPX模块的网络模型比YOLO v7网络平均精度均值提升2.2个百分点,对麦长管蚜的检测结果提升1.6个百分点,说明Swin Transformer模块使模型能够更加关注密集的小目标,提取到了更多轮廓纹理等细节特征,使模型在层数加深的同时,依旧能够具有提取全局上下文特征信息的能力,提升了对小目标的检测精度。YOLO v7+SwinCSPX+CBAM模型较YOLO v7+SwinCSPX网络平均精度均值提高0.2个百分点,对白星花金龟和玉米螟的检测结果提升1.0、4.6个百分点,说明了注意力机制模块能够有效抑制背景等一般特征表达,能明显提升模型的检测性能。在此基础上将YOLO v7网络路径聚合部分拓展为4种不同尺度的检测支路,对麦长管蚜和蝗虫的检测结果较YOLO v7+SwinCSPX+CBAM模型提升2.1、1.5个百分点。由实验可得出,改进的YOLO v7算法比基准网络平均精度均值提升3个百分点,对蝼蛄、红蜘蛛、飞蛾、麦叶蜂的识别结果比YOLO v7模型提升2.9、9.4、4.5、3.3个百分点,检测精度显著提升。
(1)针对实际农田环境下存在的遮挡、形态多变和数量多且分布不均等问题,提出了一种基于改进YOLO v7的目标检测模型,能够在农田复杂环境下的害虫图像中准确检测出害虫种类、位置及分布密度。首先,通过在YOLO v7骨干网络中加入CBAM模块,使模型更加关注害虫目标,抑制背景等一般特征的表达;同时将YOLO v7的3个不同尺度的检测头增加为4个,提高了模型对害虫目标的检测精度;其次,在骨干网络顶层添加SwinCSPX模块,使模型对密集且分布不均的害虫定位更加准确;最后,将原YOLO v7模型的损失函数替换为Focal EIoU,提高了模型的检测性能。
(2)改进的YOLO v7模型的平均精度均值为88.2%,较原YOLO v7模型提升3个百分点,在保证检测速度的同时,提高了检测精度。面对复杂的农田环境,改进算法具有较高的稳定性和鲁棒性,为提升害虫视觉检测系统性能提供了有效手段。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!