基于改进轻量化YOLO v5n的番茄叶片病害识别方法
2024-06-03王娜陈勇崔艳荣胡蓉华
王娜 陈勇 崔艳荣 胡蓉华
摘要:针对现有番茄叶片病害识别存在背景复杂、识别准确率低、模型参数量大、计算量大以及难以部署至移动设备或嵌入式设备等问题,提出一种改进的轻量化YOLO v5n的番茄叶片病害识别方法。首先收集细菌性斑疹病、早疫病、晚疫病、叶霉病、斑枯病、褐斑病等6种常见番茄叶片病害图像以及番茄健康叶片图像,对图像进行镜像翻转、高斯模糊等数据增强方式增加样本多样性,提升模型识别和泛化能力。接着在YOLO v5n网络基础上,选择采用轻量化的C3Ghost模块替换C3模块以压缩卷积过程中的计算量、模型权重和大小,同时在颈部网络中融合轻量级卷积技术GSConv和VOV-GSCSP模块,在增强特征提取能力的同时降低模型参数量。最后引入PAGCP算法对改进后的模型进行全局通道剪枝压缩参数量并减少训练开销。试验结果表明,改进后的YOLO v5n平均精度均值达到99.0%,参数量减少66.67%,计算量降低了2.6 G,模型权重压缩了2.23 MB。本研究提出的番茄叶片病害识别方法在降低了模型大小、参数量、计算量的同时仍保持较高的识别精度,为移动设备上实现番茄叶片病害识别提供技术参考。
关键词:YOLO v5n;番茄病害识别;轻量化;C3Ghost;GSConv;VOV-GSCSP;PAGCP
中图分类号:S436.412;TP391.41 文献标志码:A
文章编号:1002-1302(2024)08-0192-08
收稿日期:2023-10-24
基金项目:国家自然科学基金面上项目(编号:62077018)。
作者简介:王 娜(2000—),女,河北张家口人,硕士研究生,从事机器学习与人工智能研究。E-mail:2022710629@yangtzeu.edu.cn。
通信作者:陈 勇,硕士生导师,高级工程师,从事WEB信息处理、人工智能应用研究。E-mail:285527563@qq.com。
番茄原产于南美洲的安第斯山地带,是世界上价值最高的蔬果兼用作物[1]。目前,番茄的栽培面积不断扩大,已经成为全球蔬菜生产中年产量最高的作物,食用量居蔬菜之首[2]。番茄作为我国非常重要的经济作物,其生产已成为农民增收的主导产业,对实现农业增效作出了突出贡献[3]。然而,番茄病害现在是影响番茄产量和品质的主要因素,在各个地区都有不同程度的发生,其种类繁多且复杂,包括细菌性斑疹病、早疫病、晚疫病、叶霉病、斑枯病、褐斑病、花叶病、黄化曲叶病、白粉病等。若能快速准确地识别番茄病害,及时防治,便能减少经济损失保证番茄产业可持续健康发展。因此,对番茄病害的研究和防治就显得十分重要。
传统的番茄叶片病害检测和诊断方法主要依赖于人工观测和经验判断,由于叶片病害数量多且难以区分,基于人工的识别方法存在成本高、主观性强、准确率低等问题[4]。随着机器学习的快速发展壮大,机器学习不断应用于农作物采摘、病害识别等方面。根据不同的网络结构,孟莉莎等在EfficientNet v2模型上引入CA注意力机制,在基于Imagenet数据集的迁移学习中初始化基础模型并修改全连接层,去除网络中重复的模块,在蘑菇数据集上的分类准确率达96.8%[5]。严陈慧子等在YOLO v4模型上采用MobileNet v3网络替换原始主干网络CSPDarknet-53,并在颈部网络添加坐标注意力模块(CAM),在水稻叶片病害检测上平均精度提升1.32百分点,模型总参数量为39.35 M[6]。武魁等在EfficientNet v2模型上采用DeepViT算法修改网络通道,并引入特征融合网络提高模型的分类精度,在玉米病虫害数据集上平均识别精度达到97.72%[7]。针对番茄叶片病害识别问题,张宁等在Inception v3模型上结合卷积注意力机制模块(CBAM)和多尺度卷积,并引入迁移学习,在番茄叶片病害识别中的准确率达到98.4%[8]。方晨晨等通过使用多尺度卷积来代替单一尺度的卷积,同时,他们还采用深度可分离卷积来替换部分标准卷积,以降低模型的参数,最终训练后的模型平均测试识别准确率达到了98.58%,模型大小为19 MB,可以有效识别出番茄病害图像[9]。胡玲艳等提出一种轻量级网络自适应特征提取方法,基于SqueezeNet模型构建轻量级网络模型GKFENet,包含全局特征提取和关键特征提取2个模块,对8种番茄病害的识别准确率均超过96%[10]。王哲豪等提出将轻量化网络MobileNet v2和迁移学习方式相结合,采用冻结部分卷积层的方式,在模型最后加上2层全连接层,并用Dropout层防止过拟合,通过Softmax层输出实现对番茄病害图像分类识别,准确率达93.67%[11]。
上述方法均可较为准确地识别研究目标,但是很少考虑所提出的方法能否兼顾准确率、参数量以及计算量3个方面。为解决此类问题,本研究提出了1种改进的轻量化YOLO v5n网络,改进后的網络可以在保证高识别准确率的同时减少存储空间的占用,使其能部署于移动端,从而实现对番茄叶片病害的实时识别,便于果农及时采取措施,减少经济损失。
1 试验材料与方法
1.1 数据来源
本研究的数据集选自开放式数据库Plant-Village,该数据库共收录了14种植物的健康及病害叶片图像,并分为38种类别标签。本研究从9种番茄叶片病害图像中随机选取6种病害图像及番茄健康图像作为试验所需的番茄病害图像数据集,分别是细菌性斑疹病叶、早疫病叶、晚疫病叶、叶霉病叶、斑枯病叶、褐斑病叶以及番茄健康叶。图像大小为256像素×256像素,具体见图1。
1.2 数据预处理
在Plant-Village数据集的番茄叶片病害数据集中,存在某一类别样本数量过多或过少的情况,导致各类样本的数量分布不均衡。因此,为平衡各类别样本间的分布,提高模型的泛化能力,减少过拟合,对图像样本数量较少的类别采用数据扩充策略,本研究主要通过水平镜像、提高亮度、增加高斯噪声以及旋转等数据增强方式进行样本扩充,具体见图2;而对于样本数量明显过多的类别,随机剔除一部分样本,保证数据的平衡性,最终共获取10 500幅番茄叶片病害图像,通过编写程序对数据集进行随机抽样,按照8 ∶2的比例将数据集划分为训练集和测试集(具体见表1)。
本研究训练的模型为YOLO系列格式的数据集,因此,采用LabelImg图像工具标记出叶片位置和类别,生成xml类型的标注文件,标注示例见图3。
1.3 试验方法
1.3.1 YOLO v5n网络模型
YOLO v5网络模型是在YOLO v4[12]的基础上改进的单阶段目标检测算法,其检测速度和精度都得到了极大的提升。YOLO v5网络由输入端、主干网络、颈部以及头部4个部分组成,其中输入端包含Mosaic数据增强、自适应锚框计算和自适应图片缩放,主干网络包含CBS、CSP1_X和SPPF,颈部包含CSP2_X、Upsampling和Concat,最后在头部进行预测并输出结果,结构见图4。
YOLO v5相对于YOLO v4主要有以下改进:第一是提出1种自适应锚框算法,将YOLO v4中用于获得初始锚点框的外部程序嵌入到代码中,每次训练时,根据数据集的名称能够自适应地计算出最合适的锚点框;第二是提出自适应图片缩放方法;第三是在YOLO v4的CSP结构基础上设计2种CSP结构,CSP1_X结构应用于主干网络,CSP2_X应用于颈部替代部分普通卷积;第四是提出SPPF替代SPP,将输入串行通过多个大小相同的MaxPool层,减少模型计算量的同时提升模型检测速度。
YOLO v5主要包含多个版本,其中YOLO v5n是最小的版本,其模型具有网络结构简单、计算量少以及检测速度快的优势,符合本研究的实际需求,因此选用YOLO v5n版本作为基础模型,改进后的网络结构见图5。
1.3.2 C3Ghost模块
GhostNet[13]是华为诺亚方舟实验室提出的、新型轻量级深度神经网络架构,其构建方式不同于ShuffleNet[14]、MobileNet[15]等轻量化卷积网络。通常情况下,卷积生成的大量冗余特征图在实际检测任务中对主要特征图的补充作用很小,对网络提升检测精度没有太大帮助,但是生成这些冗余特征图却要消耗大量算力。因此,GhostNet构建了Ghost模块,利用Ghost模块更快、更节省算力地生成冗余特征图。传统卷积与GhostNet卷积过程见图6。
假设输入特征图的尺寸大小为h×w×c,输出特征图尺寸大小为h′×w′×n,采用的卷积核尺寸大小为k×k,线性操作核为d×d,经过φk操作得到的特征图为s个,则传统卷积与GhostNet卷积所需参数量分别为
Pconv=n×h′×w′×c×k×k;(1)
PGhost=ns×h′×w′×c×k×k+(s-1)×ns×h′×w′×d×d。(2)
因此,GhostNet卷积与传统卷积的理论加速比(Rp)和参数压缩比(Rc)分别为
Rp=PconvPGhost=c×k×k1s×c×k×k+s-1s×d×d≈s×cs+c-1≈s;(3)
Rc=n×c×k×kns×c×k×k+(s-1)×ns×d×d≈s×cs+c-1≈scc=s。(4)
从上述公式可知,GhostNet卷积的计算量和参数量可近似等于传统卷积的1s,大幅降低了模型的计算和存储开销。而YOLO v5n主干网络采用C3结构,参数量较大,检测速度较慢。因此,本研究将新的C3Ghost模块替换C3模块,以达到轻量化的效果,具体结构见图7。GhostBottleneck模块以Ghost模块为构建基础,主要由2个GhostConv模块和1个残差块组成,第1个GhostConv模块被用作扩展层,其目的是增加输入特征图的通道数,以便进行更多的特征提取和信息融合。第2个GhostConv模块的作用是降维,减少输出特征图的通道数,使其与网络中的直径结构相匹配。最后与经过深度卷积的残差边相加融合特征,引入DWConv的作用主要是为了减少参数量。C3Ghost模块是在C3模块的基础上将残差组件Resunit替换成可复用的GhostBottleneck模块,减少了原结构中大多数的传统卷积,压缩了模型并减少了计算量。
1.3.3 GSConv和VOV-GSCSP
在目标检测过程中,一些优秀的轻量级网络主要由大量深度可分离卷积(DSC)[16]构建,以此来减少参数和计算量。但是DSC在计算的过程中会拆分处理每个通道的信息,丢失了大量的隐藏连接,因此其特征提取和融合能力远低于标准卷积,为了使DSC的输出尽可能接近标准卷积,Li等提出了GSConv模块[17],具体结构见图8。GSConv模块由标准卷积、深度可分离卷积和Shuffle等3个部分卷积组成,通过Shuffle操作将标准卷积生成的信息渗透到深度可分离卷积内部,保持通道间的隐藏连接,提高特征的丰富度。在网络的颈部,特征图的空间维度已经达到了最小,而通道维度达到了最大,不再需要进行通道轉换,此时使用GSConv卷积方式不仅冗余信息少,还降低了模型的参数量,达到了轻量化网络的效果。故本研究将GSConv模块部署到网络中用于特征提取的颈部,代替标准卷积来进行上采样和下采样,最大程度地保证采样效果。
由于YOLO v5n在颈部采用的CSP模块在空间特征融合方面具有一定的局限性,同时为了加快模型推理时间并保持精度,本研究添加VOV-GSCSP模块代替颈部的CSP模块,将不同尺度的特征图按照顺序连接起来形成一个更长的特征向量,以增加模型的多样性,提取更丰富的语义信息。图9-a为VOV-GSCSP的瓶颈单元结构GSBottleneck,图9-b为采用单次聚合方法设计的跨阶段的VOV-GSCSP模块。该模块降低了网络结构的复杂性和计算量,推理速度快,适合部署到计算量有限的移动目标平台。
1.3.4 PAGCP全局通道剪枝
目前,基于卷积神经网络的模型在大规模多任务预测领域快速发展,但大多数模型仍面临着巨大的计算和存储开销问题,使得它们在自动驾驶系统和边缘计算设备等实际应用中难以部署。而模型压缩作为缓解这一问题的有效技术,可以将一个复杂的预训练模型简化为1个轻量级模型,从而减少对硬件的存储、带宽和计算需求。在近年的模型压缩方法中,模型剪枝已经成为主流的压缩技术,过去的多任务模型剪枝算
法主要集中在模型迁移或算法迁移上,这2种方式忽略了模型不同层中的卷积核的联合影响以及任务之间的特征不匹配问题。为此,Ye等提出了一个性能感知的全局通道剪枝PAGCP框架[18],从基于显著性指标的剪枝优化问题切入,分析得出传统引入正则惩罚项的方式中存在梯度竞争的问题,从而在优化中使得模型参数偏离了原本的最优点,改变了原始最优点上每个通道的重要程度。基于此,将优化目标调整为仅对显著性指标进行带约束最小化搜索,保证模型参数权重不变,其中约束项调整为对模型剪枝后的性能损失约束以及计算量约束,这保证了模型参数处于最优点并有更准确的重要度评估。
单次剪枝迭代中不同剪枝策略之间的区别见图10,红色虚线圆圈表示在每次迭代中要修剪的过滤器集合。图10-a是通用的多任务模型,其中每个过滤器对不同的任务具有不同的敏感度。图10-b 是分层通道剪枝,其在单层中评估和修剪过滤器,并在每次迭代中微调模型,在当前剪枝迭代中不考虑灰色区域的过滤器。图10-c是先前的全局通道剪枝,其在每次剪枝迭代中基于静态过滤器的关系评估和修剪所有层上的过滤器(用过滤器颜色不变来表示)。图10-d是PAGCP剪枝,其基于先前修剪的结构动态地评估和修剪单层中的过滤器,并且针对多任务模型的压缩性能全局考虑层内和层间过滤器的关系(用过滤器颜色变化来表示)。层修剪顺序由每层对总FLOPs减少量的贡献决定。与以前将分类模型的过滤器显著性准则适应多任务分类模型的方法相比,PAGCP剪枝的方法以贪婪的方式动态地计算每个过滤器的显著性,以近似最优全局通道剪枝(GCP),并通过性能感知的预言准则自动控制剪枝的性能下降。
Ye等通过大量试验证明PAGCP算法框架在将多个模型计算量或参数量压缩比例超过60%的情况下,仅有略微的性能损失,超越了同等计算规模和模型结构下的现有高性能模型,同时大幅提升原模型的推理速度[18]。本研究引入PAGCP算法对模型进行全局通道剪枝,在保持精度的同时有效减少了模型参数量和计算量。
2 试验结果与分析
2.1 试验环境
本研究使用环境为Python 3.9、Pytorch 2.0.1、Cuda 12.2、cuDNN 8.7.0,试验计算机CPU为Intel Core i5-12600KF,GPU为NVIDIA RTX3080Ti,显存32 GB,设置迭代次数为300次。试验时间为2023年6—10月,试验地点为长江大学东校区。
2.2 评估指标
本研究采用IoU阈值设置为0.5的平均精度均值、参数量、浮点运算数以及模型大小作为评价指标。
精确率、召回率计算公式如下:
P=TPTP+FP;(5)
R=TPTP+FN。(6)
平均精度、平均精度均值计算公式如下:
AP=∫10P(R)dR;(7)
mAP=∑Ki=1APiK。(8)
其中:TP表示预测正确的正类样本数量;FP表示预测错误的正类样本数量;FN表示预测错误的负类样本数量;P和R所围成的面积定义为AP;取所有的检测类别AP的均值为mAP。
参数量和浮点计算量作为网络模型复杂度的评价指标,其计算公式如下:
Params=Cin×Cout×K×K;(9)
FLOPs=W×H×K×K×Cin×Cout。(10)
其中:Cin、Cout分别为输入和输出特征通道数;K为卷积核大小;W、H分别是输入特征图的宽度和高度。
2.3 试验结果与分析
2.3.1 轻量化主干网络对比试验
為了进一步验证改进后的YOLO v5n的轻量化效果,本研究选取常见的轻量化网络GhostNet、MobileNet v3-s[19]以及EfficientNet[20]来优化YOLO v5n的主干网络与改进的YOLO v5n网络进行对比试验,结果见表2。
由表2可以看出,改进的YOLO v5n网络平均精度均值达到99%,参数量为0.59 M,计算量为 1.6 G,模型权重大小为1.51 MB。与原模型相比,在平均精度均值仅下降0.5百分点的同时,参数量减少了66.67%,计算量减少了2.6 G,模型权重大小压缩了2.23 MB。与其他3种轻量化网络相比综合性能最优,所以改进后的YOLO v5n在保持识别精度的同时大大减少了参数量,证明了本研究轻量化改进的有效性,能够满足番茄叶片病害识别的实际需求。
3.3.2 消融试验
为了评估PAGCP剪枝算法、C3Ghost模块、GSConv模块以及VOV-GSCSP模块对YOLO v5n网络模型性能所带来的影响,进行消融试验,并与原始YOLO v5n网络模型进行对比,结果见表3。
从表3可知,与原始算法相比,试验2引入PAGCP对模型进行剪枝改进后模型平均精度均值几乎不变,同时计算量减少了50%,参数量减少了48.59%,模型权重大小压缩了1.64 MB,满足本研究轻量化的要求。然后在此基础上试验3采用GSConv替代标准卷积,减少冗余信息,并且参数量、计算量及模型权重大小都有小幅降低,但是模型的平均精度均值下降严重。所以,试验4引入C3Ghost取代C3模块,实现了用更少的参数生成更多的特征图,提高了模型的特征表达能力,平均精度均值提高了28.5百分点,同时证明在主干网络中引入C3Ghost模块的有效性。虽然试验4的平均精度均值已经达到98.9%,但是与原模型相比仍然有所下降,并且模型权重大小相对于移动设备的存储空间还不理想,为了减少模型对硬件条件的依赖,试验5引入VOV-GSCSP模块替代颈部的CSP结构,可以提取更丰富的语义信息,使平均精度均值达到99.0%,计算量达到1.6 G,参数量达到0.59 M,模型权重大小达到1.51 MB。通过上述消融试验的全面评估,验证了在原模型中改进的不同网络模块都表现出优异的性能。
3 結论
本研究聚焦于番茄叶片病害识别问题,通过融合轻量级GhostNet网络改进C3模块,引入GSConv和VOV-GSCSP模块,采用全局通道剪枝PAGCP算法,提出一种改进的轻量化YOLO v5n的番茄叶片病害识别方法,试验结果表明,改进的YOLO v5n模型在识别番茄叶片病害方面有更好的效果,完成了对6类常见番茄叶片病害及番茄健康叶片的识别研究。改进后的模型更加适应真实环境,特征学习能力有所增强,与YOLO v5n相比,平均精度均值只降低了0.5百分点,但参数量减少了66.67%,计算量减少了2.6 G,模型权重大小压缩了2.23 MB,验证了改进的有效性,并且该方法可以推广到其他植物叶片病害的识别问题上。
后续会收集更多复杂环境下的番茄叶片病害图像以及更多种类的病害图像丰富数据集,并采用不同数据预处理方法来提取不同环境下的图片特征,达到更好的模型泛化性能与精确度。
参考文献:
[1]李洪磊,王晓敏,郑福顺,等. 基于主成分和隶属函数分析的不同果色番茄品种引种初步评价[J]. 云南大学学报(自然科学版),2021,43(2):402-411.
[2]李君明,项朝阳,王孝宣,等. “十三五” 我国番茄产业现状及展望[J]. 中国蔬菜,2021(2):13-20.
[3]霍建勇. 中国番茄产业现状及安全防范[J]. 蔬菜,2016(6):1-4.
[4]马 宇,单玉刚,袁 杰. 基于三通道注意力网络的番茄叶部病害识别[J]. 科学技术与工程,2021,21(25):10789-10795.
[5]孟莉莎,杨贤昭,刘惠康. 基于CA-EfficientNet v2的蘑菇图像分类算法研究[J]. 激光与光电子学进展,2022,59(24):2410005.
[6]严陈慧子,田芳明,谭 峰,等. 基于改进YOLO v4的水稻病害快速检测方法[J]. 江苏农业科学,2023,51(6):187-194.
[7]武 魁,高丙朋. 改进EfficientNet v2的玉米病虫害识别与分级研究[J]. 现代电子技术,2023,46(14):68-74.
[8]张 宁,吴华瑞,韩 笑,等. 基于多尺度和注意力机制的番茄病害识别方法[J]. 浙江农业学报,2021,33(7):1329-1338.
[9]方晨晨,石繁槐. 基于改进深度残差网络的番茄病害图像识别[J]. 计算机应用,2020,40(增刊1):203-208.
[10]胡玲艳,周 婷,刘 艳,等. 基于轻量级网络自适应特征提取的番茄病害识别[J]. 江苏农业学报,2022,38(3):696-705.
[11]王哲豪,范丽丽,何 前. 基于MobileNet v2和迁移学习的番茄病害识别[J]. 江苏农业科学,2023,51(9):215-221.
[12]Bochkovskiy A,Wang C Y,Liao H Y M. YOLO v4:optimal speed and accuracy of object detection[EB/OL]. (2020-04-23)[2023-08-20]. https://arxiv.org/abs/2004.10934.
[13]Han K,Wang Y H,Tian Q,et al. GhostNet:more features from cheap operations[C]//2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattl:IEEE,2020:1577-1586.
[14]Zhang X Y,Zhou X Y,Lin M X,et al. ShuffleNet:an extremely efficient convolutional neural network for mobile devices[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City:IEEE,2018:6848-6856.
[15]Howard A G,Zhu M L,Chen B,et al. MobileNets:efficient convolutional neural networks for mobile vision applications[EB/OL]. (2017-04-17)[2023-08-20]. https://arxiv.org/pdf/1704.04861.pdf.
[16]SIfre L,Mallat S. Rigid-motion scattering for texture classification[EB/OL]. (2014-03-07)[2023-08-20]. https://arxiv.org/pdf/1403.1687.pdf.
[17]Li H L,Li J,Wei H B,et al. Slim-neck by GSConv:a better design paradigm of detector architectures for autonomous vehicles[EB/OL]. (2022-08-17)[2023-08-24]. https://arxiv.org/abs/2206.02424.
[18]Ye H C,Zhang B,Chen T,et al. Performance-aware approximation of global channel pruning for multitask CNNs[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2023,45(8):10267-10284.
[19]Howard A,Sandler M,Chen B,et al. Searching for MobileNet v3[C]//2019 IEEE/CVF International Conference on Computer Vision. Seoul:IEEE,2019:1314-1324.
[20]Tan M X,Le Q V. Efficientnet:rethinking model scaling for convolutional neural networks[EB/OL]. (2020-09-11)[2023-08-20]. https://www.researchgate.net/publication/333444574_EfficientNet_Rethinking_Model_Scaling_for_Convolutional_Neural_Networks.