基于破坏与重建学习的植物病虫害细粒度分类方法

2022-03-14 02:19万家乐李俊丽
电视技术 2022年2期
关键词:细粒度残差分类

万家乐,李俊丽

(昆明理工大学 信息与自动化学院,云南 昆明 650206)

0 引 言

目前,我国在玫瑰花种植、产品加工等方面已经积累了非常成熟的技术。但在玫瑰培育过程中,由于受到生态环境及其他一些因素的影响,玫瑰作物容易出现各类病害,其中以黑星病、白粉病、锈病为主。在国内,玫瑰花病虫害的鉴别方式与途径基本依靠花卉养殖专家和农业部门的判别。近年来,随着病虫害专家知识库的不断完善,种植户可以上网搜寻相关资料,得到一些防治建议。

文献[1]利用支持向量机方法对葡萄叶片病害进行检测和分类,首先利用K-means聚类分割找到病变区域,其次提取颜色和纹理特征,最后利用分类技术检测叶病的类型,准确率达88.89%。文献[2]建立一种鉴定茶树病害的方法,分析图像提取有效特征,利用支持向量机(Support Vector Machine,SVM)进行识别,寻找到最适合疾病的匹配特征,识别出疾病,准确率达到90%。文献[3]以番茄叶片为实验对象,采用深度学习提取叶片表面病害特征,选择以ResNet50模型作为主干网络,将网络的激活函数(ReLu)替换为Leaky-ReLu激活函数来实现对叶片病害的识别,训练准确率达到98.3%。余小东等人[4]提出一种基于残差网络(ResNet)的CDCNNv2算法,保留ResNet50模型的卷积层权重,实现农作物病虫害严重程度等级的划分,训练时间长,且鲁棒性较差。

通过对以上方法的研究和分析,本文提出一种改进破坏与重建学习方法的叶部病虫害检测器,将有效通道注意力机制(Effective Channel Attention,ECA)模块嵌入到RepVGG[5]轻量型网络中,并将改进后的RepVGG网络作为模型的主干网络,得到一个新的玫瑰叶部病虫害图像分类模型ER-DCL,在加快网络收敛速度的同时,提升模型的分类准确率。模型的算法流程如图1所示。

图1 ER-DCL算法流程图

1 算法模型及实现

传统的细粒度分类方法通常依赖大量的人工标记信息来实现细粒度图像分类。解决上述问题的一种思路是,在细粒度图像中同时利用局部信息和全局信息。现有的细粒度图像分类方法可以根据细粒度图像所使用的局部信息分为3类:

(1)基于强监督的细粒度图像分类模型,依赖于手动注释信息,如边界框方法[6];

(2)基于弱监督的细粒度图像分类模型,依赖类别标签(Labels)[7];

(3)多属性细粒度图像分类,即使用多属性文本信息又使用类别标签来实现,其复杂性介于方法(1)和(2)[8-9]。考虑到病虫害数据集的问题,基于弱监督的细粒度分类是发展趋势。当涉及到叶片病虫害的多个属性识别时,多属性细粒度图像分类要比其他两种方式更加准确和有效,能够极大地减少人力的浪费。

1.1 破坏学习

在细粒度图像分类过程中,图像的局部信息比全局信息更重要。这是因为,在一般情况下,不同细粒度类别可以具有相同的全局结构,并且只在特定的局部细节上有所不同。“破坏学习”是将输入的原始图像数据分割为较多的小区域,然后通过区域混淆机制(Region Confusion Mechanism,RCM)将其随机洗牌,目的是使模型更容易找到判别区域和学习判别特征。通过引入对抗性损失来抑制破坏学习产生的噪声,避免对网络学习产生影响。

假设初始图象为I,破坏图像为φ(I),其对应的多个标签为 ℓ(细粒度类别)。这3个部分被组合成(I,φ(I), ℓ)来训练模型。所以,分类网络将输入图像映射到概率分布向量为C(I,φcls),其中φcls表示分类网络中的所有可学习参数。因此,分类网络的损失函数为:

式中:τ是图像训练集的集合。由于全局结构被破坏,为了识别这些随机打乱的图像,分类网络必须寻找有区别的区域,然后学习类之间的细微差异。

1.1.1 RepVGG分类网络

考虑到本文对病虫害的识别需要在速度与精度之间达到较好的平衡,因此使用RepVGG作为模型的主干网络。RepVGG网络架构如图2所示。

图2中,A表示原始的ResNet网络,该网络包含Conv1*1的残差结构和Identity的残差结构,这些残差结构解决了深度网络中的梯度消失问题,使得网络更加利于收敛。

图2 RepVGG网络架构

B表示RepVGG网络的训练阶段。RepVGG和ResNet两个网络在训练阶段主要有以下差异。

(1)RepVGG网络在训练时,网络中的残差块并没有跨层。

(2)整个网络包含2种残差结构,一种为残差结构仅包含Conv1*1残差分支,另一种不仅包含Conv1*1残差结构,而且包含Identity残差结构。这样的网络结构中的残差结构具有多个分支,给网络增加了多条梯度流动的路径。因此,训练一个这样的网络,类似于训练了多个网络,并将多个网络融合在一个网络中。

(3)模型的初始阶段使用了简单的残差结构,随着模型的加深,使用了复杂的残差结构,这样不仅能够在网络的深层获得更鲁棒的特征表示,而且可以更好地处理网络深层的梯度消失问题。

C表示的是推理阶段的RepVGG网络,采用结构重参数化方式,将1×1卷积和Identity分支转变为简单的3×3卷积和ReLU激活函数堆叠的方式,易于模型的推理和加速。

采用RepVGG作为模型的主干网络的主要优势包括:

(1)Conv3×3卷积结构在GPU中运行速度快;

(2)推理阶段将模型转为单分支结构,能更好地提升内存利用率,从而提升模型的推理速度。

1.1.2 有效通道注意力机制(ECA)

有学者提出了SE-ResNet[10]网络,其核心思想是使深度学习网络能够学习通道间的依赖关系,并且该网络证明了将注意力机制与残差神经网络相结合,可以在分类上取得很好的效果。但是通过对SE-Net结构的分析发现,采用先激发部分两层数量不相同的全连接层,先降维再升维,最后经过Sigmoid激活后得到每个通道的权值,与原始特征图相乘后作为下一层网络的输入的方法有一定的局限性。通过全连接层降维来降低模型的复杂性,破坏了权值和通道之间的直接联系,这样就导致了网络在特定数据下的效果很好,但通用性较差,并且额外增加了大量的参数,影响模型的速度。王[11]等人经过对残差网络的研究认为,避免降维对于学习通道注意力很重要,适当的跨通道交互不仅可以保持性能,还能显著降低模型的复杂度。

因此,本文将一种没有降维的局部跨通道交互策略的ECA模块嵌入RepVGG轻型网络结构中,如图3所示。

图3 引入ECA模块的RepVGG

通过内核大小为k的快速一维卷积来捕获跨通道交互信息,并且生成权重通道,通过这种方式避免降维后带来的预测精度的降低。k是由输入特征图通道维数自适应选得,具体公式为:

式中:C为输入特征图通道数,|t|Odd表示最邻近t的奇数,b和γ为经验参数,在本文中,经过多次试验,设定b=2,γ=1。显然,通过映射函数ψ,高维通道具有更大范围的相互作用,而低维通道使用非线性映射进行更短范围的相互作用。通道内的输入ECA模块的输出可以表示为:

式中:GAP为全局平均池化,σ为sigmoid激活函数。

1.2 对抗性学习

试验表明,使用RCM机制破坏后的图像,不能总是为细粒度分类带来有用信息。混淆局部区域时,RCM会造成一种独特的噪声视觉模式。在这种模式下,学习特征对分类任务有负面影响。为解决这一问题,破坏与重建学习从生成性对抗网络的思想出发,提出了对抗性损失Ladv来防止过拟合RCM引起的噪声模式进入特征空间。

式中:I为原始图像,φ(I)为破坏后的图像,给每张图片贴上标签向量d∈{0,1}2,表示图像是否被破坏过。如果Ladv达到最小,就达到了去除特征域中噪声视觉模式的目的。Lcls和Ladv共同促进破坏学习,增强了具有判别性的局部细节,并且过滤掉不相关的特征。

1.3 重建学习

考虑到病虫害识别与鸟类图像识别[12]具有相似的局部相关性,选择使用相同的区域构建损失和区域对齐网络,测量图像中不同区域的位置精度,并通过端到端的训练引导分类网络对区域间的语义关联进行建模。如式(5)所示,Mσ(i,j)[φ(I)]在I中预测区域为Rσ(i,j),Mi,j(I,i,j)在I中预测区域为R(i,j)。而这两个预测Mσ(i,j)[φ(I)]和Mi,j(I,i,j)的真实结果都是(i,j)。所以,计算出的区域对齐损失Lloc表达式为:

1.4 破坏与重建学习

在改进的DCL框架中,分类损失、对抗性损失及区域对齐损失以端到端的方式进行训练,网络可以利用精细的局部细节和良好的建模对象相关性进行细粒度识别。破坏学习主要有助于区分有效性区域的学习,重建学习有助于根据区域之间的语义相关性重新排列学习的局部细节。因此,ER-DCL能够基于从区分区域提取的结构中良好的细节特征生成多样而复杂的视觉表示。改进后的ER-DCL模型的损失函数L由三部分组成。

经过多次试验,本文设置α=β=1,对于非刚性物体识别任务,不同区域之间的相关性对于目标的深入理解非常重要,因此设置γ=1。

2 试验条件与结果分析

2.1 试验数据

2.1.1 试验数据集

本文试验采用由“AI Challenger 2018”提供的农作物病虫害公开数据集中3种病虫害类别共5 383幅图像,并且将从云南省昆明市斗南花卉交易市场采集的1 086张玫瑰叶部病虫害图像作为独立的测试数据集。

2.1.2 图像预处理

细粒度病虫害的识别与拍摄环境有很大的关系,如光照、角度等,图像的质量对识别精度的影响非常大。为了使模型具有更好的泛化能力,采用Open CV视觉库,对图像进行随机旋转(30°、60°)、镜面翻转、随机亮度增减等操作来实现对数据集的扩增,预处理方式为输入图像后进行随机5种方式的数据增强,最后将图像统一到512×512像素。

2.2 试验条件

试验平台使用的操作系统为Ubuntu1804,处理器为Intel Xeon Gold 6248R @3.00 GHz,运行内存64 GB,配备NVIDIA Tesla V100 32GB GPU。使用Python3.7与Pytorch1.6.0,图像预处理采用OpenCV 3.2.0视觉库,同时使用cuda10.2与cudnn8.6.5深度神经网络加速库和Tensorboard可视化工具。

2.3 参数设置

本试验在PyCharm IDE上利用Python语言编写。总批次epoch为200轮,每一轮训练选取的样本数量为32,初始学习率为0.001,使用Adam优化器,初始学习率为0.001,动量因子为0.9,学习率调整策略为每经过60个epoch学习率减少为之前的0.1倍,学习率最低为0.000 001,经多次测试得出,在迭代所有批次的前提下,将batch_size设置为32可以达到最高精度。

2.4 性能比较

试验结果如表1所示,提出的ER-DCL方法比其他细粒度图像分类方法更适合于病虫害识别。在相同参数设置下,采用改进后的RepVGG网络进行特征提取时,本模型在独立测试集的准确率高 达96.74%。

从表1可以看出,在相同的试验条件下,本文以ECA-RepVGG作为特征提取网络时,在测试集上的分类准确率达到96.74%,相较于RepVGG,准确率提高了近4.64%,这说明本文模型的特征提取能力优于试验中的其他网络。尽管本文模型的收敛时间不是最优的,但是在提升准确率的同时,收敛时间并没有增加很多。

表1 病虫害图像分类对比试验结果

为了测试所提出的改进后的RepVGG分类网络的确切效果,在选取的公开数据集上进行了分类网络测试试验,分类网络对比试验结果如表2所示。

表2 分类网络对比试验结果

从表2可以看出,在相同的试验条件下,本文以ECA-RepVGG作为分类网络时,引入ECA模块后的RepVGG网络能够更好地适用于破坏与重建方法。

3 结 语

本文提出了一种将ECA模块嵌入RepVGG轻量型网络并作为破坏与重建的主干网络的细粒度分类方法,应用于病虫害图像识别。ECA机制通过局部跨通道交互可以对不同通道的特征图根据其分类特征的重要程度赋予一定的权重,使网络能够更进一步提取到类别可区分性更明显的特征。DCL中的破坏学习提高了识别的难度,引导网络学习病虫害专家知识进行细粒度识别,而重构学习可以建立对象各部分之间的语义关联,并且不需要任何的监督方式,可以在一个阶段内进行端到端的训练。试验结果表明,该方法在自建数据集的效果高于其他细粒度分类方法,并且本方法具有较低的计算成本。因此,本文提出的ER-DCL是一种有效的细粒度分类方法,在实际应用和科学研究中都具有进一步的研究价值,能够在病虫害识别方面成为一个能够完成部署预警和预防的工具。

猜你喜欢
细粒度残差分类
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
分类算一算
基于残差学习的自适应无人机目标跟踪算法
基于SVM多分类的超分辨图像细粒度分类方法
基于深度卷积的残差三生网络研究与应用
分类讨论求坐标
基于型号装备?角色的IETM访问控制研究
基于web粒度可配的编辑锁设计