李滨 樊健
摘要: 针对水稻害虫识别过程中存在的检测难度大、模型精度低、计算量大等问题,以稻纵卷叶螟等14类水稻害虫为研究对象, 改进了YOLO v5检测算法,引入高效通道注意力机制(efficient channel attention,ECA)与EIoU(efficient- IoU)损失函数,并结合Ghost卷积,提出了一种基于改进的YOLO v5水稻害虫识别方法:(1)通过引入ECA注意力机制实现对水稻害虫识别过程中重要信息的处理,采用跨通道信息交互,保证模型性能和降低复杂度;(2)引入EIoU损失函数代替CIoU(complete-IoU)损失函数,从而降低原有CIoU损失函数存在的回归精度问题;(3)利用Ghost卷积替换CBS模块及C3模块中的标准卷积,实现模型轻量化处理。结果表明,改进后的模型较原始YOLO v5模型精度略微提升,参数量减少,模型体积降低至7.38 MB,较原模型减少了46%,与YOLO v7、Faster-RCNN模型相比,mAP比YOLO v7高1.49百分点,比Faster-RCNN高12.89百分点,且本研究模型体积最小,检测速度满足实时性要求,使水稻害虫检测识别能够更加高效地完成,为水稻害虫检测提供了一种更优的方法,对于防治水稻害虫有重要意义。
关键词: 水稻;害虫;深度学习;Ghost卷积;YOLO v5;轻量化;ECA注意力机制
中图分类号:TP391.41;S126 文献标志码:A
文章编号:1002-1302(2024)02-0175-07
水稻在生长过程中易遭到害虫的侵蚀,且近年来水稻虫害的暴发呈上升趋势,导致水稻产量和品质下降,给水稻产业造成了巨大的损失[1]。害虫领域的检测识别技术落后,会影响对水稻害虫类别、破坏程度等的判断。鉴别害虫传统的方法主要是根据主观直觉以及积累的经验,这需要耗费大量的人力、物力和时间。因此,开展水稻害虫识别的研究显得尤为重要。随着农业智能化和数字化不断推进,利用计算机图像识别技术与机器学习方法对病虫害进行检测已成为发展新型农业的研究热点[2]。杨英茹等结合颜色纹理特征,提出一种基于支持向量机(SVM)的复杂环境番茄叶部图像病害识别方法,该方法计算量小,对系统要求低,准确率达97.5%[3]。Sethy等采用深度特征+SVM的方法对4种水稻病害进行分类[4]。Qing等通过7倍交叉验证,采用SVM分类器对4种鳞翅目水稻害虫进行检测,平均准确率达97.5%[5]。然而,传统的机器学习方法只能处理小数据模型,不能学习特征之间的相互作用,需要依靠人工提取,识别效率不佳。卷积神经网络(convolutional neural networks,CNN)是深度学习的代表算法之一,目前基于卷积神经网络的深度学习模型逐渐应用于水稻害虫识别领域中[6]。刘晓锋等提出一种改进的空间残差网络,进行农作物病虫害识别,有效地减少了混合噪声,提高了模型分类精度[7]。Rahman等提出了一种新型的基于两阶段训练的轻量级卷积神经网络,精度达93.3%[8]。梁万杰等设计了一个10层的卷积神经网络识别水稻害虫,识别精度可达89.14%[9]。Thenmozhi等提出一种高效的深度CNN模型,结合迁移学习,在3种昆虫数据集上的准确率均达95%以上[10]。郭阳等在YOLO v3模型中引入Darknet-53网络和多尺度融合,实现对水稻害虫的准确识别,精度可达91.93%[11]。Chen等在MobileNet-V2网络基础上添加注意力机制,优化损失函数,并对水稻病害进行识别,平均准确率达98.48%[12]。
對于水稻害虫检测识别数据集的构建比较困难,若数据集过少,会使实际数据精度较低,而为了提高卷积神经网络的精度,需要设计较为复杂的神经网络,这使得模型参数设置困难,计算难度加大[13]。因此,在设备计算能力与存储空间有限的前提下,模型轻量化很有必要[14]。李衍照等提出Mosaic+Mixup的数据增强策略并改进YOLO v5模型,进行金属焊缝缺陷检测,其检测精度达 96.88%[15]。马晓东等用Mish激活函数替换YOLO v5 模型中的SiLU激活函数,再融合协同注意力机制,改进YOLO v5模型,改进后的模型识别精度比原模型提高了3.8%[16]。
本研究采用YOLO v5模型,并在此基础上引入高效通道注意力机制(efficient channel attention,ECA)降低模型计算量,通过EIoU损失函数提高模型精度,并结合GhostNet网络构建轻量化模型,对原始的所有普通卷积与C3模块中的普通卷积进行替换,减少参数量的使用,并且能更好地部署参数,从而降低卷积计算的复杂程度。因此,改进的YOLO v5检测方法能更好地解决水稻害虫识别过程中识别难度大、费时费力等问题。
1 数据集的构建
构建水稻害虫数据集,采用IP102数据集中的水稻害虫图像,共14类,合计1 248张,虫类中文名称及图片数量如表1所示。使用LabelImg软件对图片进行位置及类别标注,因本次获取到的图像数量过少,为了降低训练样本多样性不足产生的模型过拟合现象,对原始图像采用缩放、翻转、对比度等离线增强方式扩充数据集,保证样本空间的一致性,避免因样本空间不同而对试验结果造成干扰。
模型的识别性能在很大程度上由数据集决定,为了探讨数据集大小对害虫识别精度的影响,设置6组不同大小的数据集,分别为1 248、2 496、3 744、4 992、6 240、7 488张,对YOLO v5模型进行训练,数据集以8 ∶ 2的比例划分训练集和验证集,训练结果见表2。当数据集大小为3 744张时,平均精准度(mAP)达到了90%以上,数据集大小为7 488张时,mAP高达97.19%,但是训练时间长达16.57 h,因此本研究采用3 744张的数据集进行分析。
2 水稻害虫检测网络
2.1 YOLO v5网络模型
YOLO v5网络模型是YOLO系列的第5个版本,其结构主要分为输入端(input)、主干网络(backbone)、颈部网络(neck)和预测网络(prediction)4个部分(图1)。输入端采用Mosaic数据增强,其主要思想是任意抽取4张图片进行随机裁剪,然后拼接到1张照片上作为训练数据,同时也会对每张图片上的标注框进行相应裁剪,这样不仅丰富了图片的背景,也降低了训练时对批量大小(batch size)的依赖性。
主干网络对图像通过深度卷积获得其特征信息(主要包括Focus模块、标准卷积(CBS)模块、C3模块和SPP模块)。Focus模块对输入的图像进行切片,将特征图的通道数扩充4倍,然后再通过卷积得到2倍下采样特征图。CBS模块由二维卷积(Conv)、批量标准化(batch normalization,BN)和SiLU激活函数三者组成。C3模块由一种残差结构组成,一定程度上减少了计算量,加快了推理速度。SPP模块也称为空间金字塔池化,通过大小不同的卷积核提取特征后进行特征融合,一定程度上解决了目标的多尺度问题。
颈部网络分为特征金字 塔网络(feature pyramid network,FPN) 结构和路径聚合网络(path aggregation network,PAN)结构。FPN自上向下传达强语义特征,PAN从下向上传达强定位特征。预测网络生成水稻害虫的类别概率和位置信息,由3个检测层组成,对不同尺寸目标进行检测。
2.2 改进的YOLO v5算法
2.2.1 ECA注意力机制
深度学习中的注意力机制有助于人们在有限的资源下,从大量无关背景区域中筛选出具有重要信息的目标区域,帮助人们更高效地处理视觉信息,因此可以借助特定的注意力机制来实现对于水稻害虫目标对象重要信息的处理。常见的注意力机制有SE-net(squeeze-and-excitation networks)、ECA-net(efficient channel attention networks)、CBAM(convolutional block attention module)等[17],其中ECA模块能够避免降维对检测结果造成的误差,并且通过大小为k的快速一维卷积获取局部跨通道的交互信息,并通过Sigmoid激活函数[如式(1)所示]得到各个通道的权重ω。
ω=σ[C1Dk(y)]。 (1)
式中:ω表示各通道權重;C1D表示一维卷积;k表示一维卷积的内核大小。这种方法称为ECA模块,在计算过程中,其只涉及k个参数的信息,在k为某一特定值的情况下,ECA模块能实现与SE-Var同样的效果,且其模型的复杂程度更低,因此这种跨通道信息交互的方法能有效保证检测结果与检测效率。ECA注意力机制能更好地捕捉水稻害虫图像的主要信息,有效减小参数的计算量。因此,本研究在YOLO v5预测网络前加入ECA注意力机制,其模块如图2所示。其中,k的确定是确定通道交互信息大致范围的必要条件。在固定group数量的前提下,高维(低维)通道随着长距离(短距离)卷积的增大而增大,同理,跨通道信息交互覆盖率k(即一维卷积的内核大小)也会随着通道维数C的增加而增大,即二者存在映射关系,且低维度通道比高维度通道对于卷积作用的影响更小。k可通过ψ(C)进行自适应的确定,如式(2)所示。
k=ψ(C)= log2C γ + b γ odd。 (2)
式中:b、γ表示线性拟合中所涉及到的非线性参数;|t|odd表示最接近的奇数。
在本研究中,给定b和γ的值,分别为1和2,则k值为5。本研究在引入ECA注意力机制时,采用基于自适应卷积核大小的方法,直接在全局平均池化层之后使用1×1卷积层,去除全连接层,完成跨通道间的信息交互,适当的跨通道交互可以在保持性能的同时显著降低模型的复杂性。
2.2.2 损失函数
损失函数(loss function)可通过测量实际测量值与预测值之间的误差,来衡量测量模型与数据之间的吻合程度,是深度学习的重要一环,很大程度上决定预测模型的性能[18]。损失函数针对每个数据点进行计算,所得值越高,说明预测结果就越不精确,反之,则说明计算结果越接近真实值。可以在训练模型时通过引入损失函数指导模型的优化,因为在构建模型的过程中,特征的权重可能会发生一定的变化,从而导致预测结果发生相应的变化,此时就需要利用损失函数来判断模型中特征权重的具体变化进行相应的调整。
在本研究中,损失函数用于描述害虫图像检测框与真实框之间的差距,在检测网络中对目标对象的概率进行分类,对目标置信度进行评定,并对检测框位置进行标定,最后将这3种作为结果输出。损失函数包括置信度损失(obj_loss)、边框定位损失(box_loss)以及分类损失(cls_loss)3个部分[19],置信度损失函数用来计算对预测模型所设定网络的置信度,边框定位损失函数用来计算预测框与真实框之间的误差,分类损失函数用来计算目标框所对应的标定分类是否正确。
在进行水稻害虫的识别过程中,由于目标输出标签具有互斥性,需要应用softmax函数将目标置信度得分转换为总和为1的概率,在YOLO v5中使用多个独立的逻辑(logistic)分类器用以替换softmax,可使输出综合大于1,从而达到计算输入特定标签的目的。YOLO v5在计算类别概率和目标置信度得分时,使用二元交叉熵损失函数,也可以有效避免使用softmax所带来的弊端,进而减小计算量。在原有的YOLO v5中,对于边框定位损失,选用CIoU Loss作为其损失函数[20],其计算公式如式(3)所示。
LCIoU=1-IoU+ ρ2(b,bgt) c2 +αv。 (3)
式中:ρ2(b,bgt)表示2个检测框中心点的距离;c表示2个检测框所形成的最小包围矩形的对角线长度;v表示2个检测框的宽高比的相似程度,其表达式如式(4)所示;α表示v的重要影响因素,其表达式如式(5)所示。
v= 4 π arctan wgt hgt -arctan w h 2; (4)
α= v (1-IoU)+v 。 (5)
然而,CIoU损失函数的长宽比描述的是相对值,存在一定的模糊界限,当预测框的宽和高满足{(w=kwgt,h=khgt)|k∈ R +}时,CIoU损失函数的相对比例惩罚项就不起作用[21]。并且CIoU损失函数中w和h不能保证同时增大或减小,会给训练过程带来问题。
因此,本研究在检测水稻害虫模型中引入EIoU Loss,以减小CIoU在定位回归方面存在的误差,其在CIoU损失函数的基础上可以精确检测重叠面积、边长以及中心点之间的差异,并解决CIoU存在的宽和高不能同增同减的问题,从而获取更高精度的检测样本,其定义如式(6)所示。
LEIoU=LIoU+Ldis+Lasp=1-IoU+ ρ2(b,bgt) c2 + ρ2(w,wgt) c2w + ρ2(h,hgt) c2h 。 (6)
式中:cw表示同时覆盖2个矩形框的宽度;ch表示能够同时覆盖2个矩形框的宽和高。
2.2.3 Ghost卷积
通过引入EIoU损失函数虽然可以明显提高YOLO v5模型的识别效率,但是会增加计算量,背离检测模型轻量化的目的。因此,本研究在应用EIoU损失函数基础上引入Ghost卷积替换CBS模块中的普通卷积进行特征提取,同时,也将C3模块中的普通卷积替换。Ghost卷积的实现主要由2个部分组成,通过普通的卷积计算生成少量特征图,称为本征特征图,如式(7)所示。
Y′=X ×f′。 (7)
式中: X 表示输入特征图, X R h×w×c,且h表示宽度,w表示长度,c表示通道数;f′表示该层网络的卷积核,f′∈ R c×k×k×m(m表示输出通道数); Y ′表示输出的特征图, Y ′ R h′×w′×n。
对本征特征图Y′进行线性变化得到更多的特征图,最后对前面所得的2组特征图进行拼接,形成新的特征图输出。Ghost模块的卷积形成过程如图3所示。
相較于原始的普通卷积,Ghost卷积能够保持较高的相似度,并且能显著降低模型参数量,使参数量更容易分布于终端,从而简化卷积运算[22]。二者计算量的对比如式(8)所示。
rs = n·h′·w′·c·k·k n s ·h′·w′·c·k·k+(s-1)· n s ·h′·w′·d·d
= c·k·k 1 s ·c·k·k+ s-1 s ·d·d ≈ s·c s+c-1 ≈s。 (8)
式中:与Ghost卷积相比,普通卷积计算量是其s倍,在相同参数的前提下,普通卷积的计算量也是Ghost卷积的s倍,这充分展示出Ghost卷积在计算量方面的优势。因此,应用Ghost卷积代替原始的普通卷积可以有效降低目标的运算量,实现模型轻量化的目的。
3 结果与分析
3.1 试验环境与设置
本试验环境:InterCoreTM15-12600KF CPU;16 G内存;GPU为NVIDIA GeForce RTX3060,显存12 G;操作系统为Windows 10,64位操作系统;学习框架为Pytorch 1.12.1,Cuda版本11.7,Cudnn版本8.5.0。
输入图像大小调整为640像素×640像素,批量大小设置为16张,初始学习率(learning rate)为0.01,训练轮次(epoch)为300轮次,采用Adam优化,动量(momentum)设为0.937,权重衰减(weight decay)为0.000 5。
3.2 评价指标
本试验在研究过程中主要使用4种评价指标对改进的YOLO v5模型性能进行评价,分别为精确率(precision,P)、召回率(recall,R)、平均精度(average precision,AP)和均值平均精度(mean average precision,mAP)。
精确率P表示预测样本中预测正确的正样本数量与所有预测出的正样本数量的比值,计算公式如式(9)所示。
P= TP TP+FP 。 (9)
式中:TP(true positive)表示预测正确的正样本数量;FP(false positive)表示预测错误的正样本数量。
召回率R表示检测出正确的正样本数量与实际正样本总数量的比值,计算公式如式(10)所示。
R= TP TP+FN 。 (10)
式中:FN(false negative)表示样本中未被检测出来的正样本数量。平均精度AP是P与R围成的曲线的面积,其计算公式如式(11)所示。
AP=∫1 0P(R)dR。 (11)
均值平均精度mAP表示各个类别的AP的均值,其衡量指标分为mAP@0.5和mAP@0.5 ∶ 0.95等2种,与P和R不同,mAP可以单独评价模型的优劣,其计算公式如式(12)所示。
mAP= ∑(AP) n 。 (12)
式中:n表示所检测类别的数量,个。
3.3 Ghost卷积替换部分试验
Ghost卷积使用较少的参数和计算量便可实现对检测目标特征的识别,从而避免原始模型中存在使用大量卷积核进行采样与融合等操作的问题,也同时减少了输出的特征图中包含冗余特征。但是,Ghost卷积在去除冗余特征实现轻量化的同时,会导致输出特征图的精度有所下降、推理速度缓慢等问题。因此,需要后续进一步进行Ghost卷积部分的替换试验,探究最佳的Ghost卷积替换部分,从而在实现模型轻量化的同时,也能适当保证其精度。
本研究应用Ghost卷积模块对不同位置进行替换并进行试验,表3直观地表达出各个位置Ghost卷积替换的精度对比,其中主干网络表示Ghost卷积模块替换YOLO v5中主干部分的CBS模块的普通卷积,颈部网络表示Ghost卷积模块替换YOLO v5中颈部CBS模块的普通卷积,主干网络+颈部网络表示Ghost卷积模块替换YOLO v5所有CBS模块中的普通卷积。
3.4 对比试验
为进一步验证本研究提出的改进的YOLO v5算法对水稻虫害病识别的检测效果, 将本研究算法与YOLO v5s算法、Faster-RCNN算法以及YOLO v7 算法进行对比。训练参数设置一致,批量大小设置为16张,训练300轮次,初始学习率0.01,得到的模型指标如表4所示。
YOLO v7是YOLO系列的最新算法。由表4可知,YOLO v7算法在本研究自制数据集上的表现不如YOLO v5s,其mAP比YOLO v5s低1.49%。本研究算法较其他算法有更高mAP的值,且模型体积最小,仅7.38 MB。
图4、图5展示了7种水稻害虫的检测结果,通过对比可以看出,本研究算法较YOLO v5模型检测精度整体上升,部分害虫检测精度略微下降,如白背飞虱和稻蓟马,但检测精度仅相差0.04%,满足实际检测需求。
3.5 消融试验
为验证改进YOLO v5算法的有效性,本研究用自制数据集设置消融对比试验,以验证每个改进策略对模型性能的影响,试验考虑了ECA模块、EIoU模 块、GhostNet-Conv模块和GhostNet-C3模块 4 个因素,依次将4个改进策略添加到原YOLO v5s算法模型中,在同一试验条件下训练300轮次,训练结果如表5所示。
首先,在YOLO v5s模型的检测网络前加入ECA注意力机制,增强特征聚合;然后,将边框损失函数用EIoU进行替换,加速收敛并提高回归精度;再次,将YOLO v5s中CBS模块中的Conv标准卷积换为GhostNet卷积,将模型体积减少3.5 MB;最后,将C3模块中的所有Conv标准卷积替换为GhostNet卷积,模型体积再次减少2.82 MB。通过消融试验对各个模块的优化效果的验证,发现本研究算法的mAP较YOLO v5s模型提升0.09百分点,模型体积降低到了7.38 MB,且模型的识别速度仍满足实时性要求。
4 结论
本研究选取稻纵卷叶螟、稻叶毛虫、稻潜叶蝇等14类害虫构建数据集,针对采用传统神经网络的水稻害虫识别方法中存在的识别正确率低、效率低等现象,提出一种基于YOLO v5的水稻害虫识别方法,主要改进如下:(1)在预测网络前引入ECA注意力机制;(2)边框损失函数采用EIoU;(3)将CBS模块和C3模块中的标准卷积换为Ghost卷积。与YOLO系列最新的算法YOLO v7、Faster-RCNN进行对比,本研究算法模型拥有最高的mAP(94.21%)和最小的模型体积(7.38 MB)。
参考文献:
[1] 车 琳,蒋沁宏,王 也,等.我国水稻五大产区虫害发生及防控情况差异的比较分析[J]. 植物保护,2022,48(3):233-241.
[2]Daniya T,Vigneshwari S. A review on machine learning techniques for rice plant disease detection in agricultural research[J]. International Journal of Advanced Science and Technology,2019,28(13):49-62.
[3]杨英茹,吴华瑞,张 燕,等. 基于复杂环境的番茄叶部图像病虫害识别[J]. 中国农机化学报,2021,42(9):177-186.
[4]Sethy P K,Barpanda N K,Rath A K,et al. Deep feature based rice leaf disease identification using support vector machine[J]. Computers and Electronics in Agriculture,2020,175:105527.
[5]Qing Y A O,Jun L V,Liu Q J,et al. An insect imaging system to automate rice lighttrap pest identification[J]. Journal of Integrative Agriculture,2012,11(6):978-985.
[6]馬佳佳,陈友鹏,王克强,等. 基于优化SVM的虫害图像识别研究[J]. 中国粮油学报,2022,37(5):10-15.
[7]刘晓锋,高丽梅. 基于改进空间残差收缩网络模型的农作物病虫害识别[J]. 山东农业大学学报(自然科学版),2022,53(2):259-264.
[8] Rahman C R,Arko P S,Ali M E,et al. Identification and recognition of rice diseases and pests using convolutional neural networks[J]. Biosystems Engineering,2020,194:112-120.
[9]梁万杰,曹宏鑫. 基于卷积神经网络的水稻虫害识别[J]. 江苏农业科学,2017,45(20):241-243,253.
[10] Thenmozhi K,Reddy U S. Crop pest classification based on deep convolutional neural network and transfer learning[J]. Computers and Electronics in Agriculture,2019,164:104906.
[11]郭 陽,许贝贝,陈桂鹏,等. 基于卷积神经网络的水稻虫害识别方法[J]. 中国农业科技导报,2021,23(11):99-109.
[12]Chen J,Zhang D F,Zeb A,et al. Identification of rice plant diseases using lightweight attention networks[J]. Expert Systems with Applications,2021,169:114514.
[13]王江晴,冀 星,莫海芳,等. 基于轻量化VGG的植物病虫害识别[J]. 中国农机化学报,2022,43(4):25-31.
[14] 周 维,牛永真,王亚炜,等. 基于改进的YOLO v4-GhostNet水稻病虫害识别方法[J]. 江苏农业学报,2022,38(3):685-695.
[15]李衍照,于 镭,田金文. 基于改进YOLO v5的金属焊缝缺陷检测[J]. 电子测量技术,2022,45(19):70-75.
[16]马晓东,魏利胜,刘小珲. 基于新型YOLO v5算法的磁悬浮球精确识别[J]. 电子测量与仪器学报,2022,36(8):204-212.
[17]张宸嘉,朱 磊,俞 璐. 卷积神经网络中的注意力机制综述[J]. 计算机工程与应用,2021,57(20):64-72.
[18]肖雨晴,杨慧敏. 基于改进YOLO v3算法的交通场景目标检测[J]. 森林工程,2022,38(6):164-171.
[19]郭 文,李 冬,袁 飞. 多尺度注意力融合和抗噪声的轻量点云人脸识别模型[J]. 图学学报,2022,43(6):1124-1133.
[20]Wang Z,Sun W,Zhu Q,et al. Face mask-wearing detection model based on loss function and attention mechanism[J]. Computational Intelligence and Neuroscience,2022,2022:2452291.
[21]孙丽萍,谭少亨,周宏威,等. 基于YOLO v5的林业有害生物检测与识别[J]. 森林工程,2022,38(5):104-109,120.
[22]付思琴,邱 涛,王权顺,等. 基于改进YOLO v4的焊接件表面缺陷检测算法[J]. 包装工程,2022,43(15):23-32.
收 稿日期:2023-04-12
基金项目:黑龙江省哈尔滨市应用技术研究与开发项目(留学回国创业人才A类)(编号:2017RALXJ011)。
作者简介:李 滨(1975—),男,黑龙江哈尔滨人,博士,副教授,研究方向为先进制造技术及装备、智能农业技术及装备。E-mail:630104635@qq.com。