基于GSNet的番茄叶面病害识别研究
2021-02-13冀常鹏陈浩楠
冀常鹏,陈浩楠,代 巍
(辽宁工程技术大学a.电子与信息工程学院,b.研究生院,辽宁 葫芦岛125105)
传统的农作物病害识别主要依赖于农民长期积累的经验,由于病害症状复杂多变,往往对于农业生产者的专业知识有很高要求[1]。通过人工观察来判断病害类别,主观性较强,耗时耗力。因此,使用现代信息化技术,高效准确的识别农作物病害具有重要意义,也是农业现代化的重要标志[2]。基于传统的图像处理方法需要对农作物的病害特征进行手工的病斑分割、特征提取,并自行构建分类器分类,需要消耗大量的时间进行数据预处理,且受客观条件影响较大,特征提取困难[3]。近些年,随着深度学习的飞速发展,卷积神经网络凭借其强大的特征提取能力,在图像识别[4]、目标检测[5]等领域取得诸多成功的应用,诸如人脸表情识别[6]、病理图像分类[7]、缺陷检测[8],并有学者成功将其应用到农业领域,YANG等[9]成功使用卷积神经网络对水稻病害进行识别,所提出的模型准确率达到95.48%;王美华等[10]通过对注意力机制CBAM模块进行改进,针对空间注意力与通道注意力之间的串行干扰问题,提出了一种并行连接的新型混合注意力模块,在病虫害识别方面取得较好效果,且在不同模型间具有良好的泛化性;宋余庆等[11]提出了多层次增强高效空间金字塔模型,解决网络输入图像尺寸不相同的问题,但模型结构复杂,需要构建多层融合EESP网络模型提取图像的特征信息;王春山等[12]在残差网络的基础上进行改进,提出了一种Multi-scale ResNet病害识别模型,结合多尺度特征提取模块和改变残差连接方式,并采用分解卷积核和群卷积操作,进行一定程度的模型轻量化,但实际应用中,采用多支路结构会明显增大计算资源消耗,增加网络的训练时间,降低推理效率。综上,本研究以番茄的叶面病害为例,针对深度卷积神经网络结构复杂,计算资源消耗大、且对输入图像尺寸限制性强、自适应性弱等问题,提出了一种改进的GSNet轻量化网络模型,能够有效实现番茄的叶面病害识别。
1 基于GSNet的病害识别方法
1.1 Ghost模块
深度卷积神经网络通常是由大量的卷积操作组成,这导致了大量的计算成本。在实际过程中,当输入数据X∈R(c,h,w),其中c为输入数据的通道数,h和w分别为输入数据的高和宽,任意卷积层生成n个特征图在数学上可表示为:
式中:*为卷积运算;b为偏置项;Y∈R(h’,w’,n)为卷积运算后输出的的n通道特征图;f∈R(c,k,k,n)为当前卷积层的卷积过滤器,卷积操作如图1。h’和w’分别为生成特征图的高和宽,卷积过滤器f内核尺寸为k×k。
图1 标准卷积Figure 1 Standard convolution
常规卷积层的输出特征图会包含很多的冗余,Ghost网络结构中指出,没有必要使用大量的运算资源来生成这些冗余的特征图。
Ghost模块首先采用常规卷积运算生成少量的本征特征图,即:
式中:f’∈(c,k,k,m)为常规卷积运算使用的滤波器,输出通道数m<n,然后在生成的本征特征图Y’上,利用cheap operation(廉价线性运算)运算生成本征特征图的“重影”,扩充特征信息和增加通道数,即:
式中:yi’为Y’中的第i个本征特征图;Φ为廉价线性运算;Yi,j为由yi’生成的第j个重影特征,卷积操作如图2。
图2 Ghost结构图Figure 2 Ghost structure
利用Ghost模块可以有效减少浮点运算次数FLOPs和参数量,降低模型复杂度,假设生成n通道特征图,Ghost模型缩放比例radio为s,卷积核尺寸相同为k×k,理论加速比为:
参数压缩比计算为:
由式(4)与式(5)可知,采用Ghost替换常规卷积操作,可以将网络的浮点运算次数和参数量,压缩为原本的1/s,有效降低网络模型复杂度。
1.2 空间金字塔结构
空间金字塔(spatial pyramid pooling,SPP)结构采用多尺度池化操作,针对卷积神经网络结构需要固定输入图像尺寸的问题,通过使用多个不同大小的池化框,可以将任意图像的卷积特征转化为固定大小的特征向量,避免因图像裁剪、缩放而导致的位置信息扭曲,导致识别精度的降低,使卷积神经网络适应不同比例、不同尺寸的图像输入,并且可以更有效的提取病害的多尺度特征信息,提高网络自适应性和识别准确率。
图3 为空间金字塔池化示意图,在输入图像经过卷积运算转为高维卷积特征图后,通过设定好的不同大小池化框对特征图进行池化操作,并将输出特征展平为特征向量,依次拼接,最终提取的特征向量固定为特定值,传入全连接层进行训练分类。且采用空间金字塔池化可以提取特征图的多尺度信息,提高网络性能。
图3 空间金字塔池化示意图Figure 3 Schematic diagram of spatial pyramid pooling
1.3 结构重参数化
在神经网络中,批归一化(BN层)可以有效解决梯度消失和爆炸问题,加快网络收敛,提高网络性能[17]。但同样会占用更多的运算资源。本研究结合结构重参数化思想,分割网络的训练过程与推理过程,在推理网络中将卷积运算与BN层相融合,可以进一步提高网络的推理效率,降低图像识别时间。
BN层计算为:
式中:γ为尺度因子;β为偏移因子;ε为微小正数(防止分母为0);μ为样本均值;σ2为方差。
将BN层运算带入式(1),与卷积运算进行合并:
1.4 GSNet网络模型
为了适应番茄叶面病害的识别要求,本研究搭建了一种高效的网络结构GSNet(图4)。网络结构模型包含Conv1-Conv4共4个卷积模块及2层全连接层。为了轻量化网络结构,将3×3的常规卷积层用Ghost模块[14]进行
图4 GSNet网络结构图Figure 4 GSNet network structure
将合并后的替代,减少卷积操作中生成的冗余特征图数量和浮点运算次数,在Conv1模块中,输入病害图像经过Ghost模块后,采用1×1卷积核进行二次特征提取,整合网络特征图,随后送入最大池化层(池化框大小为2×2,步长为2)进行下采样操作,并依次经过Conv2-Conv4模块,将输入图像转变为高维卷积特征图,且在Conv4模块中,Ghost步长设为2,并采用空间金字塔池化替换最大池化,在提取特征图多尺度信息的同时,固定特征向量数量(本研究中空间金字塔池化框大小分别设置为4×4,2×2和1×1,特征向量固定为21),提高网络的自适应性,解决网络对于输入图像尺寸的严格限制,降低网络参数量。最后将提取的特征向量进行展平拼接,输入到全连接层与Softmax层进行训练分类。考虑实际需要,在网络训练结束后,结合结构重参数化[16],分割网络的训练阶段和推理阶段,在推理网络中合并Ghost模块中的卷积操作和BN层,进一步节省推理过程的运算资源,提高推理效率。
2 番茄叶面病害数据集
PlantVillage网站提供了一个可供免费访问的开放式数据库,该数据库收集了14种植物健康和病害的可见光叶片图像[13],并成功应用AlexNet和GoogleNet进行植物叶面病害识别。本研究以番茄的叶面病害为研究对象,从中提取10种番茄叶面图片(图5),作为本试验所需的番茄叶面病害图片数据集。
图5 番茄病害叶片示例Figure 5 Example of tomato leaf disease
由于PlantVillage工程中的番茄叶面病害图片数据集存在样本不均衡问题,如其中数据样本最多的黄化曲叶病包含有5357张分辨率为256*256的彩色图片,而数据样本最小的花叶病仅包含373张病害图片,具体数据分布如图6。
图6 番茄病害数据分布图Figure 6 Data distribution of tomato diseases
因此,为了平衡各类别样本间的分布,增强数据的可靠性,本研究对样本数据进行预处理,通过水平翻转、镜面翻转等操作对样本数量过少的病害类别进行样本扩充,对于样本数量过多的病害类别,则随机剔除部分样本。经过预处理后,将各个类别的样本数量维持在1500张,作为最终的番茄叶面病害识别的样本数据集。
3 结果与分析
本研究基于Pytorch平台,硬件环境为Intel i7-10700F处理器,16G内存,NVIDIA GeForce RTX3060 12G独立显卡。模型训练中选择Adam作为网络训练优化器,初始学习率为0.0001,每次训练同时输入的训练样本数Batch Size设为30,网络的迭代次数Epoch设为50,采用交叉熵损失函数进行试验。同时按照7∶2∶1比例将数据集划分为训练集、验证集和测试集,训练样本数为10500。
3.1 组合模型试验
为了验证Ghost和空间金字塔池化对于网络性能的影响,在基础网络结构(Unall)上分别引入Ghost模块(Ghost),空间金字塔池化(SPP)以及两者结合(GSNet)进行试验,GSNet网络对输入端图像无固定尺寸要求,故可以直接输入未经裁剪的原始病害图像(分辨率256*256)。试验结果如图7,图7a为准确率曲线(Accuracy),图7b为损失函数曲线(Loss)。可以看出,采用Ghost模块和空间金字塔池化操作可以有效提高网络模型的准确率,并取得更低的损失,同时组合模型的效果最好。
图7 组合试验变化曲线Figure 7 Variation curve of combined test
由表1组合试验的测试集试验结果可知,Ghost模块和空间金字塔池化可以有效减少网络的浮点运算次数FLOPs和参数量Params,且与基础网络结构相比,分别嵌入SPP、Ghost和组合模块,准确率提升5.58%、5.49%和8.36%,可以提高网络对于番茄叶面病害的识别效果,验证了本研究方法的有效性。表中Time为测试集整体图像识别时间(1500张图像,单次输入图像数量为1),相比于基础网络,改进网络的图像识别时间均有所上升。
表1 组合试验对比Table 1 Comparison of combined tests
3.2 结构重参数化有效性验证
图8 为本研究所提网络结构重参数化前后,测试集识别结果的混淆矩阵,可以发现两者结果相同,病害识别准确率均为98.53%。且通过试验结果分析,在合并卷积运算和BN层前,测试集数据的识别时间为16.28s,合并卷积运算和BN层后,测试集数据的识别时间为15.15s,识别时间降低6.94%。表明采用结构重参数化后,并不会影响原有网络性能,降低识别准确率,而且通过分割训练和推理过程,可以有效提高网络推理效率,减少图像识别时间。
图8 结构重参数化混淆矩阵Figure 8 Structural reparameterized confusion matrix
3.3 不同模型之间性能比较
为了进一步验证本研究方法的有效性,在相同条件下同传统网络VGG16、ResNet50、InceptionV3以及轻量化网络EfficientNet[18]、MobileNet[19]和ShuffleNet[20]进行对比,番茄病害测试集图像识别试验的结果如表2。本研究设计的网络模型识别准确率达到98.53%,与InceptionV3相同,但InceptionV3在卷积过程中采用多尺度结构进行特征提取,降低网络推理效率,提高图像的识别时间,GSNet在保持高识别准确率的同时,识别时间更短,且相比于VGG16、ResNet50以及3种轻量化网络EfficientNet、MobileNetV3和ShuffleNet,获得最高的识别准确率和最短的识别时间,进一步验证了本研究方法的有效性。
表2 不同模型试验对比Table 2 Comparison of different model tests
4 讨论与结论
应用先进的现代信息处理技术进行农作物病害的识别预防,是农业的重要研究领域,也是农业现代化的重要标志。在农作物病害识别过程中,相比于传统图像识别技术[21],深度学习与卷积神经网络凭借其强大的特征提取能力,有效降低了图像识别技术上的操作难度,避免了人工提取过程中,对图像信息的过度预处理。同时考虑到深度学习网络所需的巨大计算资源,在本研究中设计了一种轻量化网络结构:GSNet,采用Ghost模块替换常规卷积层,并引入空间金字塔池化以解决网络对输入图像尺寸的限制,提高了网络的自适应性。本研究中并未如文献[10]与文献[11]等,通过在网络中叠加注意力机制与多尺度结构来提高病害识别准确率,避免了模型结构复杂化以及多支路结构带来的显存负担[16]。
本研究结果表明,GSNet网络取得了令人满意的结果,病害识别准确率达到98.53%,与InceptionV3网络相同,相比于VGG16、ResNet50以及3种轻量化网络,识别准确率分别提高14.53%、1.78%、2.77%、1.29%和4.33%,并取得最短的识别时间。同时通过分割网络训练阶段和推理阶段,在推理网络中合并卷积操作与BN层,能够有效减少病害图像识别时间,测试数据的识别时间由16.28s下降为15.15s,推理效率提高6.94%,能够有效进行作物的叶面病害识别工作,满足农业生产的实际需求。