基于改进YOLO v5n的葡萄叶病虫害检测模型轻量化方法
2024-05-22蔡易南肖小玲
蔡易南 肖小玲
蔡易南,肖小玲. 基于改进YOLO v5n的葡萄叶病虫害检测模型轻量化方法[J]. 江苏农业科学,2024,52(7):198-205.
doi:10.15889/j.issn.1002-1302.2024.07.027
(长江大学计算机科学学院,湖北荆州 434000)
摘要:由于较大的参数量和较高的计算复杂度,直接在移动端部署通用检测及识别模型的难度较高。为了解决轻量化的移动端部署难题及提升移动设备上葡萄叶病害的检测能力,拟提出1种轻量化、高精度、实时性的检测模型。首先,引入Slimming算法对传统的YOLO v5n网络进行缩减,利用模型稀疏化训练、批归一化的缩放因子分布状况对不重要的通道进行筛选;其次,引入轻量级上采样算子CARAFE增加感受野,进行数据特征融合;最后,将边界框回归损失函数改进为WIoU损失函数,制定合适的梯度增益分配策略来获得更加精准的框定位提升模型对每个类别目标的检测能力。试验结果表明,改进后的模型能够在保持模型性能的情况下有效轻量化。与传统的YOLO v5n相比,改进后的算法mAP提高了0.2百分点,同时改进后的模型权重、参数量、计算量分别为1.6 MB、0.6 M、1.8 G,分别比原模型减少了58%、67%、57%,能够满足移动端和嵌入式设备的部署要求。
关键词:葡萄叶病害;YOLO v5;Slimming剪枝;WIoU损失函数;CARAFE算子
中图分类号:TP391.41;S126 文献标志码:A 文章编号:1002-1302(2024)07-0198-07
葡萄是我国种植面积较大的经济作物之一,并且我国目前是全球第二大葡萄生产国和全球第一大鲜食葡萄生产国[1]。在葡萄树的生长过程中,准确识别葡萄叶片上的病虫害类型能有效提高葡萄的产量。传统的人工识别方法耗费的时间和精力十分巨大,而利用计算机视觉和图像处理等技术,可以实现更为精准的病虫害检测识别,对节省人力、提升葡萄的产量和质量具有重要意义[2]。
目前在农业领域已经有应用深度学习目标检测方法对农业病虫害进行识别的应用,戴久竣等在ResNet50的基础上采用金字塔卷积网络,并在金字塔网络结构上采用深度超参数化卷积层代替传统的卷积层使模型能够更快收敛的同时提高精度[3]。谢圣桥等在ResNet50模型的基础上,保留了卷积层并设计了全新的全连接层,提升了模型的鲁棒性和识别性能[4]。何欣等针对RestNet模型对不同尺度特征的提取效果较差的问题,提出了在Mask R-CNN 模型中引入多尺度卷积的方法,并且通过添加注意力机制提升了网络的特征提取能力[5]。陈浪浪等以DenseNet121为基础网络,引入坐标注意力学习图像特征通道关系和空间位置的重要性来增强模型的特征提取能力[6]。YOLO系列算法及其改进的方法在农业领域也被广泛应用,张伏等采用轻量级特征提取网络对YOLO v4模型进行结果轻量化改进,引入了深度可分离卷积结构完成了轻量级网络的搭建,并增加小目标检测层,提高了检测模型对圣女果的识别精度[7]。刘广等通过引入轻量级网络ShuffleNet v2模块优化YOLO v3原有的特征提取网络,以降低网络模型的参数,然后在优化后的特征提取网络中融合了CBAM注意力机制以提升模型的数据精度[8]。
但是,上述模型的网络结构都存在过于复杂、计算量过大和参数量过多等问题,对设备的计算能力要求较高,以致在嵌入式或移动端设备上实现实时目标检测依旧难以实现。针对模型过于庞大和参数量过多的问题,许多研究人员提出了轻量化模型,但轻量化模型在减少了模型大小和参数量的同时也降低了模型的精度。针对上述問题,本研究拟引入一种剪枝算法,该算法对原始YOLO v5n网络训练完成后的模型中贡献较小的网络通道进行剪裁,以达到在减小模型复杂度的同时能够保持模型原有的精度。同时融合轻量级上采样算子CARAFE在上采样的过程中对特征进行重新组装和提取来提升上采样的质量。并引入WIoU来获得更加精准的框定位以提升模型的识别能力。
1 材料与方法
1.1 试验数据集
本研究的数据集包括3个类别的染病叶片图片,分别为黑腐病、埃斯卡病、褐斑病(图1)。由于获取的数据集大多数都没有标注,因此对数据集进行重新标注。对叶片中的病害部分采用最大外接矩形框进行标注,标注的类别和图片的类别相同。
首先将原始数据集进行样本分类,再采取旋转、翻转、局部放大等数据增强方式扩充数据集并以xml格式保存标注文件,示例结果见图2。为了保持试验数据的随机性,本试验将数据集划分为训练集和验证集,比例为9 ∶1。训练集包含4 005张图片,测试集和验证集的图片总数为445张。为了保证试验的准确性与严谨性,所有试验数据皆为进行3次试验后统计出的平均值。
1.2 YOLO v5网络模型
目前,主流的目标检测模型可以大致归为两大类:二阶段目标检测模型和一阶段目标检测模型。二阶段目标检测模型首先生成一系列候选框,然后对这些候选框进行分类。一种经典的二阶段目标检测模型是Faster-RCNN[9]。除了Faster-RCNN,还有一些其他二阶段目标检测模型,如R-FCN等[10]。一阶段目标检测模型是一种直接从输入图像中预测目标类别和边界框的目标检测模型,相比于两阶段目标检测模型,一阶段目标检测模型具有更快的检测速度,具有代表性的网络模型有SSD、YOLO系列等[11-15]。
相比于之前的YOLO系列目标检测模型,YOLO v5 能够实现140帧/s的推理速度,并且在MSCOCO数据集上的mAP@50能够达到55.0%以上。YOLO v5的5个版本有YOLO v5n、YOLO v5s、YOLO v5m、YOLO v5x、YOLO v5l,区别主要在于网络的深度和宽度。在YOLO v5中,网络深度、宽度的改变是通过调整C3的数量来实现的。YOLO v5n是最小的版本,其网络结构相对简单,训练后的模型参数量较小并能保持较好的检测速度和精度。因为本试验考虑到需要满足实时检测和足够的轻量化的要求,故采用深度最小和特征图宽度最小的YOLO v5n模型作为基础模型进行改进,改进后的YOLO v5n模型结构如图3所示。
YOLO v5n目标检测模型主要包括输入层、主干网络、颈部网络和预测层4个部分。输入层是网络的起始点,负责接收并预处理输入图像,YOLO v5n 接收固定尺寸的输入图像并经过归一化、通道顺序转换等处理,以便于后续网络的处理。主干网络是YOLO v5的核心,被用于提取图像特征,YOLO v5n主干网络采用CSPDarknet53架构,它是一种轻量级的网络结构,CSPDarknet53利用CSP连接,通过在不同的层级进行特征融合,进一步提高了特征的表达能力。颈部网络位于主干网络之后,负责进一步处理和增强从主干网络中提取到的特征,YOLO v5n使用特征金字塔网络结构及路径聚合网络来增强特征的融合程度,以获取不同尺度上层级上的特征信息,多尺度特征融合有助于检测不同大小的目标,从而提高检测的准确性[16-17]。预测层是YOLO v5n的最后一层,负责生成目标检测的结果。预测层会根据不同尺度和特征图预测边界框位置、目标类别和置信度得分。
1.3 轻量化葡萄叶病虫害识别方法
1.3.1 Slimming剪枝算法 优化YOLO v5n以使其更加轻量化的方法有很多,如权值量化、轻量化模型架构等。然而,在进行轻量化时不能仅关注模型的大小以及计算量和参数量,还要保持模型的检测性能。为了在不影响准确性的情况下降低运算量和减小模型的大小,本研究选择Slimming剪枝算法对模型进行压缩。Slimming剪枝原理如图4所示[18]。
由图4可见,深度学习网络在卷积之后会得到多个特征图,但有些特征图的权重接近0,并未起到作用。因此Slimming剪枝算法采用在BN层中引入缩放因子(γ)来评估每个通道的重要性,并且使用L1正则化来稀疏γ的值。引入BN层可以有效避免网络过拟合、提高训练的稳定性和训练速度并有效避免内部协变量偏移,其基本公式如下所示:
z^=zin-μBσ2B+;zout=γz^+β。(1)
式中:zin、zout分别为BN层的输入、输出;μB表示本批次该层输入的均值;σB表示本批次该层输入的方差;γ表示缩放因子。
在BN层之后插入1个缩放层,对于每个通道将会有2个连续的缩放因子。引入缩放因子正则项之后,部分缩放因子会趋于0,剪掉接近0的缩放因子对应的通道从而达到减小模型的大小和计算量的目的。相对较大的缩放因子所对应的通道则被视为相对重要的通道保留下来以保证模型的性能不受影响。
Slimming剪枝算法的定义公式如下:
L=∑(x,y)l[f(x,W),y]+λ∑γ∈Γ g(γ)。
式中:(x,y)为训练的输入和目标;W为网络中的可训练参数;前一项代表卷积神经网络中的训练损失函数,后一项是缩放因子上的惩罚项;λ为2项的平衡因子。
Slimming剪枝算法包含5个主要步骤:(1)初始训练。首先使用训练集对深度神经网络模型进行初始训练,以确保其具备一定的准确性。(2)评估权值的重要性。在训练过程中,计算每个权重对模型准确性的贡献。(3)剪枝。根据权重的重要性,选择1个合适的阈值来确定需要剪枝的权重。所有权重的绝对值低于阈值的节点将被剪枝,即将其权重重新设定为0。(4)微调。对于经过剪枝的模型,经过微调以恢复其准确性。(5)迭代剪枝。重复执行步骤(2)至步骤(4),直到达到期望的模型大小和准确性。
1.3.2 WIoU Loss YOLO v5原网络中使用的邊界框回归损失函数是GIoULoss,GIoU考虑到了预测框和真实标注框的外接矩形面积,并将其纳入损失计算中,从而改善了IoU只关注预测框和真实标注框的重叠区域而不能反映二者相交的不足。损失函数的定义如下所示:
GIoU=IoU-|C-(A∪B)|[]|C|;(3)
LossGIoU=1-GIoU。(4)
WIoU是一种动态非单调聚焦机制的边界框定位损失函数,对于低质量示例,预测框和真实框的纵横比、距离等几何度量会增加对低质量示例的惩罚,从而影响模型的泛化能力,当预测框、真实框能够很好地重合时,应适当降低几何度量的惩罚[19]。WIoU共有3个版本,v1构造了基于注意力的边界框损失,v2、v3在v1的基础上附加了聚焦机制,其中v3的性能更好。WIoU根据距离度量构建得到了WIoUv1,如下式所示:
LossWIoUv1=RWIoULIoU;(5)
RWIoU=exp(x-xgt)2+(y-ygt)2(W2g+H2g)*。(6)
式中:Wg、Hg分别代表最小包围框的宽、高;当RWIoU∈[1,e)时,会在一定程度上扩大普通质量锚框的IoU损失函数值LIoU,当LIoU∈[0,1]时,会明显降低高质量锚框的RWIoU;在目标框、锚框匹配度重叠较高的情况下,应重点关注2个框中心点的距离;*表示将Wg、Hg从计算图中分离。
WIoUv2边界框回归损失函数设计了能够减少简单样本对损失函数的贡献,同时使模型能够聚焦于困难样本的单调聚焦系数,从而提升模型目标检测性能。WIoUv2损失函数的计算公式如下:
LWIoUv2=Lγ*IoULWIoUv1,γ>0。(7)
式中:Lγ*IoU在训练时会随着LIoU的减小而减小,这会导致模型在训练后期收敛速度变慢。针对这一问题,WIoUv2引入了移动平均值LIoU[TX-]使L*IoULIoUγ整体能保持在较高水平,详见如下公式:
LWIoUv2=]L*Io]LIoUγLWIoUv1。(8)
WIoUv3损失函数使用离群度来描述锚框的质量,离群度越低表示高质量锚框,离群度高表示低质量锚框。离群度的定义如下所示:
β=[SX(C*5]L*IoU[]LIoU[TX-*5][SX)]∈[0,+∞)。(9)
利用β构造了一个非单调动态聚焦机制并将其应用到WIoUv1,从而得到WIoUv3,该机制通过将小梯度增益分配到具有小β的高质量锚框,使得锚框回归能够专注于普通质量的锚框。同时,该机制将小梯度增益分配给β较大的低质量锚框,进而有效削弱低质量样例对锚框回归的危害。动态聚焦机制的定义如下所示:
LWIoUv3=γLWIoUv1,γ=[SX(]β[]δαβ-δ。(10)
式中:当β=δ时,δ使得γ=1。当锚框的离群度满足β=C(C为一个常数)时,锚框将获得最高的梯度增益。由于LIoU[TX-]是动态的,这就使得WIoUv3在每一刻都做出最符合当前情况的梯度增益。
1.3.3 上采样算子CARAFE 特征上采样是卷积神经网络中不可或缺的一部分。[JP2]在传统算法中较常见的上采样方法为最近邻插值法,该方法仅使用离待插值最近的像素的灰度值作为该采样点的灰度值,而没有考虑到其他相邻像素点的影响,故不能充分利用特征图的语义信息。此外,传统方法通常具有较小的感知域并且还引入了大量参数量和计算量。
轻量级上采样算子CARAFE在保持高精度的同时,具有轻量级、高效和内容感知的特点[20]。CARAFE能够通过聚合相邻特征通道来恢复目标的语义信息,从而有效地增强感受野。与其他上采样方法不同,CARAFE不是简单地通过像素点的空间位置来决定上采样核,而是充分利用了特征图的语义信息。这使得采样点更加集中在物体区域,从而有效忽略背景区域,达到内容感知重构的效果。引入CARAFE替换所有颈部网络中的上采样操作,能够更好地恢复图像的细节信息,提供更好的上采样效果,从而改善模型的性能、结果质量。CARAFE的原理如图5所示。
CARAFE分为上采样预测模块、特征重组模块等2个主要模块。假定上采样倍率为σ,给定1个形状为H×W×C的输入特征图,首先通过上采样核预测模块来预测上采样核,然后通过特征重组模块完成上采样操作,得到形状为σH×σW×C的输出特征图。CARAFE的操作可以分为2个步骤。在第1步中,CARAFE会根据每个目标位置的内容预测1个重组核。这个过程可以视为特征图通道压缩,例如使用1个1×1的卷积将它的通道数降低,以减少后续计算量。在第2步中,用预测的核对特征进行重组,生成1个新的特征图。因此,CARAFE并不仅仅是简单地插值或反褶积,而是能够根据输入特征来指导重组过程,这样在不同的位置可以使用自适应和优化的重组核,从而实现更好的性能。
2.1 试验环境与准备
本试验所有轻量化处理及训练均在台式计算机上进行,所用计算机配置如下:Windows 10操作系统,Intel Core I5-12600KF CPU,NVIDIA RTX3080Ti GPU,32 GB内存。所用环境为Pytorch 2.0.1,Cuda 12.2,cuDNN 8.7.0,Python 3.9。试验时间为2023年1—9月,试验地点为长江大学东校区3号教学楼。
2.2 评测指标
试验结果采用Precision、Recall、AP、mAP作为评价指标,评价指标的计算公式如下:
Precision=[SX(]TP[]TP+FP[SX)][JZ)];(11)
Recall=[SX(]TP[]TP+FN[SX)][JZ)];(12)
AP=∫1[KG-1]0p(r)dr[JZ)];](13)
mAP=[SX(]1[]m[SX)]∑[DD(]m[]i=1[DD)]APi。(14)
式中:m表示样本类别数;p(r)表示Precision以Recall为参数的一个函数;TP表示被正确识别的正样本;TN表示被正确识别的负样本;FP表示负样本被错误识别为正样本;FN表示正样本被错误识别为负样本。
2.3 损失函数对比试验
本试验通过对比LCLoU、LFocal-ELoU、LWIoUv1、LWIoUv2以及LWIoUv3这5种损失函数,验证WIoUv3能够降低框回归损失,从而使模型能够更好地预测准确的边界框,有助于提高目标检测中框的质量,减少误检、漏检(表1)。
图6为模型精度随着训练轮次增长的过程,LWIoUv3相比于LCLoU、LWIoUv1和LWIoUv2、LFocal-ELoU能够在精度上使模型达到更高的检测性能。WIoUv3 Loss通过引入类别权重,可以平衡不同类别的重要性,使得模型更加关注那些类别较少的目标,从而提高模型对于稀有类别的检测能力。同时,本试验使用的数据集中,受埃斯卡病所感染的叶片目标区域相对于褐斑病和黑腐病来说比较大,目标数量较少,因此使得3个类别中的目标数量差距较大。而引入WIoU Loss可以动态调整每个类别的权重,从而提高模型整体的检测性能。
2.4 轻量化对比试验
在本试验中,利用常见的MobileNet v3-small、GhostNet及EfficientNet来优化YOLO v5n的骨干网络与Slimming算法进行对比试验,验证了Slimming算法能够更加有效地实现YOLO v5n模型的轻量化[21-23]。试验模型的对比结果见表2。为了保证试验结果的严谨性,本研究中所有模型的参数设定都一致。
由表2可知,轻量化主干网络虽然可以降低参数量和模型大小,但是其检测速度也有所下降。本试验提出的Slimming剪枝算法可以在有效减少参数量、计算量和模型权重文件大小的同时保持模型精度和推理时间,保证模型的实时性。GhostNet、EfficientNet等方法具有较低的参数量和计算量,但推理速度较慢。对于GPU来说,算力瓶頸在于访问带宽。EfficientNet这类轻量化网络的特点是使用了大量低FLOPs、高数据读写量的操作,这会使得模型将大量时间浪费在从现存中读写数据上,使模型的实时性变差。因此,采用Slimming算法能在轻量化的同时兼顾模型的检测性能和推理速度。
2.5 消融试验
为了评估Slimming剪枝方法、WIoUv3损失函数及轻量级上采样算子CARAFE对YOLO v5n算法带来的影响,进行消融试验,试验结果见表3。[JP2]为了提高模型的泛化能力和避免过拟合,所有试验均采用较大的epoch值(300)。[JP2]表3中,改进1模型对原有YOLO v5n算法进行剪枝,改进2模型对剪枝之后的模型添加了WIoUv3 Loss,改进3模型在改进2模型的基础上引入轻量级上采样算子CARAFE的结果。
由表3可知,对YOLO v5n使用Slimming剪枝方法可以在模型精度轻微下降的同时使参数量降低72%,使计算量降低62%。通过后续引入WIoUv3 Loss、轻量级上采样算子CARAFE,模型的精度相比于比YOLO v5n算法提高了0.2百分点,同时参数量减少了67%,计算量减少了57%,模型的大小也缩减了58%。因此可见,改进后的模型不仅在检测精度上有所提升,而且在参数量、计算量和检测速度方面也表现出色。模型的验证结果如图7所示。
3 结论
为了解决现有葡萄叶病虫害检测模型难以部署在移动端设备或嵌入式设备上的问题,本研究提出了1种基于改进的YOLO v5n的深度卷积神经网络模型。通过Slimming剪枝方法对YOLO原有网络模型进行剪枝并添加WIoUv3损失函数,引入轻量级上采样算子CARAFE。[JP2]在减小58%的模型大小和减少67%的参数量及57%计算量的基础上,最终的模型大小仅为1.6 MB,模型精度相比YOLO v5n[JP]的原模型提升了0.2百分点。结果表明,本研究方法在葡萄叶病虫害识别上获得了较好效果,为部署于移动设备与嵌入式设备上提供了可能。
参考文献:
[1]田 野, 陳冠铭,李家芬,等. 世界葡萄产业发展现状[J]. 热带农业科学, 2018, 38(6):96-101.
[2]翟肇裕,曹益飞,徐焕良,等. 农作物病虫害识别关键技术研究综述[J]. 农业机械学报, 2021, 52(7):1-18.
[3]戴久竣,马肄恒,吴 坚,等. 基于改进残差网络的葡萄叶片病害识别[J]. 江苏农业科学,2023,51(5):208-215.
[4]谢圣桥,宋 健,汤修映,等. 基于迁移学习和残差网络的葡萄叶部病害识别[J]. 农机化研究,2023,45(8):18-23,28.
[5]何 欣, 李书琴, 刘 斌. 基于多尺度残差神经网络的葡萄叶片病害识别[J]. 计算机工程, 2021, 47(5):285-291.
[6]陈浪浪,张 艳. 基于改进深度卷积神经网络的水稻病虫害识别[J]. 山东农业科学,2023,55(5):164-172.
[7]张 伏,陈自均,鲍若飞,等. 基于改进型YOLO v4-LITE轻量级神经网络的密集圣女果识别[J]. 农业工程学报,2021,37(16):270-278.
[8]刘 广,胡国玉,赵腾飞,等. 基于改进YOLO v3的葡萄叶部病虫害检测方法[J]. 微电子学与计算机,2023,40(2):110-119.
[9]Ren S Q,He K M,Girshick R,et al. Faster R-CNN:towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[10]Dai J F,Li Y,He K M,et al. R-FCN:object detection via region-based fully convolutional networks[J]. Advances in Neural Information Processing Systems,2016,29:379-387.
[11]Liu W,Anguelov D,Erhan D,et al. SSD:single shot multibox detector[C]//Computer Vision–ECCV 2016:14th European Conference,Amsterdam:Springer International Publishing,2016:21-37.
[12]Bochkovskiy A,Wang C Y,Liao H Y M. YOLO v4:optimal speed and accuracy of object detection[J/OL]. [2023-09-09]https://arxiv.org/abs/2004. 10934.
[13]Redmon J,Divvala S,Girshick R,et al. You only look once:unified,real-time object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,Las Vegas,USA,2016:779-788.
[14]Redmon J,Farhadi A. Yolo9000:better,faster,stronger[C]//Proceedings of the IEEE conference on Computer Vision and Pattern Recognition,Honolulu,USA,2017:7263-7271.
[15]Redmon J,Farhadi A. YOLO v3:An incremental improvement[J/OL]. [2023-09-09]https://arxiv.org/abs/1804. 02767.
[16]Lin T Y,Dollár P,Girshick R,et al. Feature pyramid networks for object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,Honolulu,USA,2017:2117-2125.[HJ2mm]
[17]Liu S,Qi L,Qin H,et al. Path aggregation network for instance segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,Salt Lake City,USA,2018:8759-8768.
[18]Liu Z,Li J,Shen Z,et al. Learning efficient convolutional networks through network slimming[C]//Proceedings of the IEEE International Conference on Computer Vision,Venice,Italy,2017:2736-2744.
[19]Tong Z,Chen Y,Xu Z,et al. Wise-iou:bounding box regression loss with dynamic focusing mechanism[J/OL]. [2023-09-09]https://arxiv.org/abs/2301. 10051.
[20]Wang J,Chen K,Xu R,et al. Carafe:content-aware reassembly of [JP3]features[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision,Seoul,Korea(South),2019:3007-3016.
[21]Howard A,Sandler M,Chu G,et al. Searching for mobilenetv3[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision,Seoul,Korea(South),2019:1314-1324.
[22]Han K,Wang Y,Tian Q,et al. Ghostnet:more features from cheap operations[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition,Seattle,USA,2020:1580-1589.
[23]Tan M,Le Q. Efficientnet:rethinking model scaling for convolutional neural networks[C]//International Conference on Machine Learning. PMLR,Long Beach,California,USA,2019:6105-6114.
基金項目:国家自然科学基金(编号:61771354)。
作者简介:蔡易南(2000—),男,湖北黄冈人,硕士研究生,主要研究方向为计算机视觉与目标检测。E-mail:2022710621@yangtzeu.edu.cn。
通信作者:肖小玲,博士,教授,主要研究方向为智能信息处理与网络安全。E-mail:xxl@yangtzeu.edu.cn。