2. 南京信息工程大学 计算机学院、网络空间安全学院, 南京 210044;
3. 南京信息工程大学 数字取证教育部工程研究中心, 南京 210044
2. School of Computer Science and School of Cyberspace Security, Nanjing University of Information Engineering, Nanjing 210044, China;
3. Engineering Research Centre for Digital Forensics Ministry of Education, Nanjing University of Information Engineering, Nanjing 210044, China
我国作为一个农业大国, 农业经济一直占据着重要地位. 然而, 农业病虫害一直是影响农业生产的重要原因之一[1,2] . 病虫害的爆发常常导致农作物减产, 给农民带来严重的经济损失. 为了应对这一挑战, 国家一直致力于研发和推广先进的农业技术. 但随着病害情况越来越复杂, 病害识别预防的挑战变得加剧.
当下, 病虫害的迅速准确检测对于提高农业生产率至关重要. 传统方法通常需要依赖专家, 这种方法是低效又昂贵的. 为了解决这些挑战, 植物病虫害识别的图像技术已经成为一个研究热点. 早期的研究主要依赖于经典的机器学习算法, 通过手工提取叶子图像的特征, 如向量机、最近邻、朴素贝叶斯和决策树等[3], 然而不同阶段的病虫害特征时常相同[4], 使机器学习算法的普适性降低. 而近期的研究则更加专注于深度学习中卷积神经网络(CNN)的应用, 实现图像特征的深度抽取与精确分类.
深度学习中的卷积神经网络凭借特征提取的巨大优势受到广泛关注[5,6]. 王春山等[7]在的残差网络的基础上改变残差链接方式, 进行卷积分解, 提出了一种多尺度残差轻量级病害识别模型, 在多种蔬菜病害图像数据集上取得的准确率约为95.59%; 肖小梅等[8]提出了一种改进的Alexnet模型, 在原有模型的基础上去除原有的局部响应归一化层, 并在每一个卷积后加入批归一化层, 采用了全局平均池化层对函数对模型进行优化, 准确率不低于98%; 何欣等[9]使用改进的ResNet对葡萄叶部的病害图像进行识别分类, 准确率约达到90.83%; 黄平等[10]基于多尺度特征融合的柑橘病虫害图像识别方法, 提出了VGG19-INC模型, 病虫害识别准确率为98.47%; 而在2015年推出的ResNet模型则通过引入残差连接[11]实现了更深层次的网络连接, 基于改进的ResNet等相关模型在自然环境下的植物叶片病虫害识别也取得了一些有益的探索[12–14], 但在识别的准确度、时间和模型参数量上仍有提升空间. 因此, 本文提出了一种改进的ResNet模型识别方法, 通过新加入的dropout层、激活函数、最大池化层和注意力机制来提高模型的鲁棒性、特征捕捉能力, 实现用较低的模型参数量来提高病虫害识别的准确率. 相较于蔡汉明等[15]提出的深度可分离卷积为主的神经网络模型、Tuncer等[16]提出的基于Inception架构和深度可分离卷积的混CNN方法以及黄建平等[17]提出的基于神经结构搜索的模型, 本文模型在精度与计算量上都有一定的提升, 在模型对比分析部分给出了具体比较.
1 材料与方法 1.1 实验数据本次的实验数据来自公开的Plant Village数据集, 涵盖了苹果、蓝莓、樱桃、葡萄、橘子、梨、草莓、西红柿、树莓、玉米、胡椒、土豆、大豆和南瓜共计14个物种, 26种病虫害, 共包含
1.2 数据预处理
原始植物叶片病虫害图片像素为256×256, 为了满足卷积神经网络对输入图像的要求, 将植物叶片病虫害图像的像素缩小为224×224. 为了减轻图像样本过少给深度学习网络训练带来的过拟合影响和适应深度学习模型所需的大样本的要求, 在网络模型训练的时候采用离线的方式对图像进行随机水平、垂直翻转、归一化处理添加噪声等相关数据增强的技术[18], 将原始图像从
1.3 残差网络
残差网络简称ResNet, 是一种深度神经网络架构, 被广泛用于图像识别和计算机视觉任务. 其核心思想是通过引入残差连接来解决深度神经网络训练过程中的梯度消失和梯度爆炸问题. 传统的神经网络在深度增加时容易出现性能退化, 即添加更多层次可能会导致模型的准确率下降. ResNet通过跨层的残差连接使得网络可以学习残差函数, 即网络只需学习将输入映射到目标输出的残差, 而非直接学习完整的映射. 这种设计使得网络更容易优化, 并允许构建非常深的网络[19,20], 有效地提升了模型性能.
ResNet18是ResNet[21]系列中的一个较小模型, 由4个残差块组成, 每个残差块包含2层卷积层, 主要为3×3和7×7卷积层, 规模适中, 具有较少的模型参数量, 所以本文选取ResNet18模型进行改进. 输入的图像大小为224×224, 在通过一系列卷积层等提取图像的特征的操作后, 最终由全连接层将前面提取的特征映射到输出类别的概率分布, 最后使用Softmax函数来实现分类. 其残差结构[22]如图3所示.
1.4 深度迁移学习
利用微调模型进行图像分类等任务通常需要大量标注数据进行训练. 而许多应用场景获取足够规模的标注数据是困难的. 这时, 迁移学习可以帮助解决这个问题. ResNet18是一种经典的卷积神经网络模型, 在ImageNet[23]等大规模数据集上进行了预训练. 由于这些数据集非常庞大且多样化, ResNet18能够学习到优秀的特征表示. 在许多情况下, 这些学到的特征可用于其他相关任务, 而无需重新训练整个模型. 通过采用迁移学习[24], 可以将预训练的ResNet18模型作为特征提取器, 将其前几层的权重固定, 通过调节前后不同学习率进行训练. 利用ResNet18模型在大规模数据上学习到的特征表示能力, 减少了在小规模数据集上训练模型所需的时间和计算资源, 从而提高了模型的泛化能力和性能. 因此, 本工作利用迁移学习, 将在ImageNet上预训练的残差网络模型的权重参数迁移到本任务上, 微调网络并调整参数, 以适应本数据集. 本次工作适用的迁移学习流程图如图4所示.
1.5 优化激活函数
相比于传统的神经网络激活函数如tanh和Logistic Sigmoid等双曲函数, ReLU函数有几方面的优势: ReLU函数在正无穷远处的梯度为常数1, 而不是0, 能有效解决因为输入过大或过小而导致的梯度弥散问题. 此外, ReLU函数能明显加快训练速度, 只需比较输入和0的大小, 当输入小于或者等于0时, ReLU的输出为0, 活跃度的分散性使得神经网络整体计算成本下降. 但也由此带来了缺点: 当输入非正时, 函数不会启动, 即其工作范围仅为0到正无穷大, 且ReLU函数的输出不以0为中心. ReLU函数如式(1)所示.
$ {\mathit{ReLU}}(x) = \left\{ \begin{gathered} x, \;\;x > 0 \\ 0,\;\;x \leqslant 0 \\ \end{gathered} \right. $ | (1) |
由式(1)可以看出当神经元的值大于0时, 梯度始终为1, 神经元的输出与输入呈线性关系[25], 解决了梯度弥散问题. 当神经元的值小于或等于零时, 特征无法完全获取, 神经元不输出, 容易导致神经元坏死, 因此, 采用PReLU激活函数来解决这一问题. PReLU激活函数[26]是ReLU函数的一个变体, 表达式如式(2)所示.
$ {\mathit{PReLU}}(x) = \left\{ \begin{gathered} x,\;\;\;\;x > 0 \\ ax,\;\;x \leqslant 0 \\ \end{gathered} \right. $ | (2) |
PReLU函数在ReLU激活函数的基础上增加了一个大于0修正参数a, 它将负区间的斜率作为可学习的参数, 进一步提高了模型的灵活性和适应能力.
1.6 dropout层和最大池化层在训练本文模型时, 在模型的全局平均池化层前加入dropout层与最大池化层. 其目的一是由于病虫害特征集中于图像局部, 且由于批量归一化层添加的噪声影响导致产生了大量的背景噪声干扰, 在经过随机丢弃层时即可以保留图像更显著的特征, 增强模型的鲁棒性, 并且可以降低模型的参数量. 目的二是通过最大池化层是为了进一步扩大神经元感受野, 使得网络对于图像的平移、旋转、尺度变化等具有一定的不变性, 实现了对特征图进行了二次采样, 保留图片显著的特征, 提升了模型识别的准确率和识别效率, 添加后的模型结构如图5所示.
1.7 CBAM注意力模块田间植物叶片病虫害图像往往背景复杂, 噪声信息多. 当人们扫描一张图片的时候, 会自动选择图片中感兴趣的、重要的内容, 而不会集中注意力去阅览每部分. 而农作物病虫害病斑的位置时常集中在叶片的局部, 特征明显. 为了让模型能更好地去关注图片病虫害的局部特征和细节特征, 且不破坏迁移学习的参数, 在改进后的残差网络中引入CBAM (channel attention module)注意力机制模块. CBAM模块的结构如图6所示.
在CBAM中, 通道注意力机制用于捕捉不同通道之间的关联性, 帮助网络集中注意力于最相关的特征通道上. 通过计算每个通道的全局平均池化和全局最大池化, 然后通过全连接层得到通道重要性权重, 从而实现通道注意力的调节.
另一方面, 空间注意力机制用于捕捉图像中不同位置之间的关联性, 以提取空间上重要的特征. 它通过计算每个空间位置的平均值和最大值, 然后使用全连接层来计算每个位置的重要性权重.
综合通道和空间注意力机制, CBAM能够同时学习特征通道和空间位置之间的重要关系, 从而更好地捕捉图像中的语义信息. 通过将CBAM模块集成到CNN架构中, 可以有效提高模型的性能和泛化能力, 使其在各种视觉任务中取得更好的表现.
2 实验结果与分析 2.1 实验环境参数与评价指标本实验环境为Windows 10系统, 硬件环境配置为: 处理器为 Intel(R) Core(TM) i5-11400H, 计算机内存为16 GB, 显卡为NVIDIA GeForce RTX 3050 LapTop GPU (16 GB显存), 并使用Python 3.9语言, 基于 PyTorch 1.12.0+cu113.
在模型的参数设置过程中, 学习率设置为0.001, 权重衰退设置为
$ Accuracy =\frac{TP + TN}{TP + TN + FP + FN} $ | (3) |
$ Precision =\frac{TP} {TP + FP} $ | (4) |
$ Recall = \frac{TP}{TP + FN} $ | (5) |
$ F1\text{-}score = \frac{2 \times (Precision \times Recall)} {Precision + Recall} $ | (6) |
其中, TP (true positive)表示真正例样本的数量; TN (true negative)表示真反例样本的数量; FP (false positive)表示假正例样本的数量; FN (false negative) 表示假反例样本的数量.
对于本次实验, 准确率是指模型正确分类的样本数量占总样本数量的比例, 精确率是指分类为正例中真正例样本的比例, 召回率是指真正例样本数占所有真正例样本数(包括被误分类的)的比例, F1-score是根据精确率和召回率调和平均值定义的, 能综合考量精确率和召回率. 本实验则通过这些指标来综合评量模型的性能.
2.2 迁移学习对模型性能影响为了探索迁移学习对模型性能的影响, 采用两种模型. 一种模型是基于ImageNet的迁移学习和微调学习率操作的TL-ResNet, 另一种模型并不基于迁移学习于微调操作, 两种模型在测试集的结果如表1所示.
可以看出, 通过迁移学习和微调操作的模型在测试集上准确率平均提升28.65个百分点, 精确率、召回率、F1-score分别平均提升20、29.96、33.08个百分点. 由此可知, 迁移学习对模型的各性能都有着不同程度的提升, 能加快模型的收敛.
2.3 激活函数和注意力机制对模型的影响为了探索激活函数和CBAM注意力机制对模型性能的影响, 采用两种模型. 一种模型基于迁移学习和微调学习率, 另一种是在前者基础上将模型的激活函数改变为PReLU且加入CBAM注意力机制的CA-ResNet, 测试集性能结果如表2所示.
从表2可以看出, 加入新的激活函数和注意力机制后的模型准确率、精确率、召回率和F1-score都分别提高了0.51、0.52、0.51、0.60个百分点, 改进后的模型能较好地解决由于ReLU激活函数带来的神经元坏死的问题, 并能快速地定位病虫害位置信息, 抑制了背景噪声的干扰, 增强了对病虫害分类有用信息的比重, 提高模型特征提取的能力.
2.4 dropout层与最大池化层对模型的影响为了探索在模型中加入最大池化层和dropout层对模型性能的影响, 设置两种模型. 第1种模型设置为仅基于迁移学习的残差网络, 而第2种模型是在前者的全局平均池化的前面分别加入最大池化层和dropout层的DR-ResNet. 实验参数和条件一致的前提下, 两种模型的对比如表3所示.
可以看出加入最大池化层和dropout的模型后, 在准确率、精确率、召回率、F1-score方面分别平均提升了0.26、0.44、0.14、0.30个百分点. 在改进后的模型设置合理的阈值, 并加入了最大池化层强化局部病虫害信息, 使得模型在鲁棒性、提取特征能力和泛化性都有了不同程度的提升, 各方面的性能也得到提高. 两种模型的准确度与损失值对比如图7、图8所示.
从图7、图8看出改进后的模型的稳定性、鲁棒性有了较好的提升, 不会出现较为波动的情况, 能有效地防止模型过拟合化的现象. 且从模型的收敛速度和准确度也都得到了一定的提升, 加入了dropout层与最大池化层之后, 模型能提前10个迭代次数即可收敛, 准确度能提高约0.3个百分点.
2.5 消融实验本文利用改进的ResNet残差网络对小样本农作物叶片进行了病虫害识别, 在精度与计算量提升明显, 效果显著. 因此, 为了验证本文改进方法的有效性, 综合上述的实验结果, 设置了4组消融实验, 以ResNet18为主体网络, 准确率、召回率为测试标准, 表4为本次的实验结果.
从表4可以看出, 加入激活函数与注意力机制后, 模型的准确率相较于仅利用迁移学习增加了0.51%, 加入dropout与最大池化层后, 模型的准确率相较于仅利用迁移学习增加了0.26%. 同时, 与原始的ResNet模型相比, 参数量降低了2.69M, 对小样本的农作物叶片病虫害识别具有一定的实用价值.
2.6 模型性能对比分析
为了验证改进后的模型相较于原始ResNet18的有效性和优越性, 在相同的实验环境与参数的条件下, 在Plant Village数据集上对两者的数据迭代100次进行比较观察, 两者的准确度对比折线如图9所示.
从图9可以看出, 本文模型迭代到20次就达到99.10%, 并趋于稳定. 而未改进模型迭代到约60次准确度才达到98%, 并且不够稳定. 这说明了, 改进的模型利用PReLU函数, 解决了神经元坏死的问题, 利用通道注意力机制增强模型的特征提取能力, 使得准确率波动有所平缓, 防止了过拟合化. 改进的模型提高了原始模型的收敛速度、稳定性和识别效果.
为了验证改进模型在农作物叶片病虫害识别上的有效性, 将本文模型的实验结果与文献[15–17]进行对比. 以上文献的实验数据均来自Plant Village数据集, 表5为实验结果对比.
从表5可以看出, 本文提出的ResNet+注意力机制+新激活函数+最大池化+dropout模型比文献[15–17]的模型准确率平均高出了0.14–0.89个百分点.
而为了比较本文中的模型相较于其他深度网络模型的性能, 在相同的实验条件下, 均基于采用迁移学习训练和Plant Village数据集的情况下, 将本文提出的模型与原始ResNet18、InceptionV3、ResNet34和Xception模型的各方面性能做出对比, 结果如表6所示.
可以看出本文模型在加入新激活函数、最大池化、通道注意力机制以及正则项之后, 模型的准确率相较于Xception、InceptionV3、ResNet18、ResNet34分别提高了1.01、0.68、0.59、0.05个百分点, 精确率提高了0.06–1.08个百分点. 而改进后的模型参数量仅为9.13M, 相较于基于迁移学习原始ResNet18模型参数量降低了2.66M, 使得模型在图像识别时间上得以优化. 模型能较好地平衡识别准确度与模型参数量之间的问题, 为应对多类别的病虫害识别提供了一种先进的方法.
3 结语本文针对果树叶片病害识别, 提出了一种改进的残差网络模型. 首先在原有的基于迁移学习的ResNet18模型的基础上, 将ReLU函数替换为PReLU函数, 通过在ReLU函数上增加修正单元a来避免ReLU函数神经元坏死的问题, 有效避免模型过拟合, 并减少了训练时间; 其次在全局平均池化前分别加入dropout正则项与最大池化层, 控制住模型参数量和过拟合化的同时, 也提取了局部有效病虫害信息, 增强了模型的鲁棒性与泛化能力, 实现二次特征提取; 最后在模型中嵌入CBAM注意力机制, 进一步从不同空间、通道之间自适应地调整特征的重要性, 抑制图片背景噪声的干扰, 使得模型的鲁棒性和可解释性得到增强, 提高了模型的识别准确度. 实验结果表明改进后的残差网络平均病害识别准确率达到了99.15%, 相较于只经过迁移学习的ResNet18, 识别准确率平均提升了0.59个百分点, 能够较好地解决病虫害叶片病害识别的问题.
未来, 为了实现病虫害识别的真实性, 需要去户外环境中采取更多不同质量的图像进行模拟训练, 提升模型的鲁棒性. 而为了更流畅地在边缘环境下实现图像识别, 可从低秩分解、知识蒸馏、量化、剪枝的方面进一步压缩模型, 完成在边缘环境下模型的部署.
[1] |
满中合. 果树病害发生特点及综合防治策略探究. 农业开发与装备, 2021, 27(5): 72–73. [doi: 10.3969/j.issn.1673-9205.2021.05.035]
|
[2] |
金瑛, 叶飒, 李洪磊. 基于ResNet-50深度卷积网络的果树病害智能诊断模型研究. 农业图书情报学报, 2021, 33(4): 58-67. DOI:10.13998/j.cnki.issn1002-1248.20-0670 |
[3] |
吴冀豪, 常玉祥, 汪宇玲, 等. 基于机器学习的果蔬识别研究综述. 机器人技术与应用, 2022(4): 29-31. DOI:10.3969/j.issn.1004-6437.2022.04.007 |
[4] |
赵明月, 欧阳芳, 张永生, 等. 2000–2010年我国小麦病虫害发生与为害特征分析. 生物灾害科学, 2015, 38(1): 1-6. DOI:10.3969/j.issn.2095-3704.2015.01.001 |
[5] |
赵鹏超, 戚大伟. 基于卷积神经网络和树叶纹理的树种识别研究. 森林工程, 2018, 34(1): 56-59. DOI:10.16270/j.cnki.slgc.2018.01.012 |
[6] |
汪泉, 宋文龙, 张怡卓, 等. 基于改进VGG16网络的机载高光谱针叶树种分类研究. 森林工程, 2021, 37(3): 79-87. DOI:10.3969/j.issn.1006-8023.2021.03.011 |
[7] |
王春山, 周冀, 吴华瑞, 等. 改进Multi-scale ResNet的蔬菜叶部病害识别. 农业工程学报, 2020, 36(20): 209-217. DOI:10.11975/j.issn.1002-6819.2020.20.025 |
[8] |
肖小梅, 杨红云, 易文龙, 等. 改进的Alexnet模型在水稻害虫图像识别中的应用. 科学技术与工程, 2021, 21(22): 9447-9454. DOI:10.3969/j.issn.1671-1815.2021.22.038 |
[9] |
何欣, 李书琴, 刘斌. 基于多尺度残差神经网络的葡萄叶片病害识别. 计算机工程, 2021, 47(5): 285-291, 300. DOI:10.19678/j.issn.1000-3428.0057818 |
[10] |
黄平, 闭吕庆, 莫燕斌, 等. 基于多尺度特征融合的柑橘病虫害图像识别方法. 无线电工程, 2022, 52(3): 407-416. DOI:10.3969/j.issn.1003-3106.2022.03.009 |
[11] |
郭玥秀, 杨伟, 刘琦, 等. 残差网络研究综述. 计算机应用研究, 2020, 37(5): 1292-1297. DOI:10.19734/j.issn.1001-3695.2018.12.0922 |
[12] |
刘阳, 高国琴. 采用改进的SqueezeNet模型识别多类叶片病害. 农业工程学报, 2021, 37(2): 187-195. DOI:10.11975/j.issn.1002-6819.2021.2.022 |
[13] |
曹跃腾, 朱学岩, 赵燕东, 等. 基于改进ResNet的植物叶片病虫害识别. 中国农机化学报, 2021, 42(12): 175-181. DOI:10.13733/j.jcam.issn.2095-5553.2021.12.26 |
[14] |
吴华瑞. 基于深度残差网络的番茄叶片病害识别方法. 智慧农业, 2019, 1(4): 42-49. DOI:10.12133/j.smartag.2019.1.4.201908-SA002 |
[15] |
蔡汉明, 随玉腾, 张镇, 等. 基于深度可分离卷积神经网络的农作物病害识别方法. 安徽农业科学, 2019, 47(11): 244-246, 252. DOI:10.3969/j.issn.0517-6611.2019.11.070 |
[16] |
Tuncer A. Cost-optimized hybrid convolutional neural networks for detection of plant leaf diseases. Journal of Ambient Intelligence and Humanized Computing, 2021, 12(8): 8625-8636. DOI:10.1007/s12652-021-03289-4 |
[17] |
黄建平, 陈镜旭, 李克新, 等. 基于神经结构搜索的多种植物叶片病害识别. 农业工程学报, 2020, 36(16): 166-173. DOI:10.11975/j.issn.1002-6819.2020.16.021 |
[18] |
Tsuchiya H, Fukui S, Iwahori Y, et al. A method of data augmentation for classifying road damage considering influence on classification accuracy. Procedia Computer Science, 2019, 159: 1449-1458. DOI:10.1016/j.procs.2019.09.315 |
[19] |
刘飞, 高红艳, 卫泽刚, 等. 基于Res-Net深度特征的SAR图像目标识别方法. 液晶与显示, 2021, 36(4): 624-631. DOI:10.37188/CJLCD.2020-0226 |
[20] |
柯逍, 杜明智. 多尺度特征融合与极限学习机的玉米种子检测. 中国图象图形学报, 2016, 21(1): 24-38. DOI:10.11834/jig.20160104 |
[21] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 770–778. [doi: 10.1109/CVPR.2016.90]
|
[22] |
Al Rabbani Alif M, Ahmed S, Abul Hasan M. Isolated Bangla handwritten character recognition with convolutional neural network. Proceedings of the 20th International Conference of Computer and Information Technology. Dhaka: IEEE, 2017. 1–6. [doi: 10.1109/ICCITECHN.2017.8281823]
|
[23] |
Krizhevsky A, Sutskever I, Hinton GE. ImageNet classification with deep convolutional neural networks. Communications of the ACM, 2017, 60(6): 84-90. DOI:10.1145/3065386 |
[24] |
Weiss K, Khoshgoftaar TM, Wang DD. A survey of transfer learning. Journal of Big Data, 2016, 3(1): 9. DOI:10.1186/s40537-016-0043-6 |
[25] |
Wei QJ, Wang WB. Research on image retrieval using deep convolutional neural network combining L1 regularization and PReLU activation function. IOP Conference Series: Earth and Environmental Science, 2017, 69: 012156. DOI:10.1088/1755-1315/69/1/012156 |
[26] |
刘小文, 郭大波, 李聪. 卷积神经网络中激活函数的一种改进. 测试技术学报, 2019, 33(2): 121-125. DOI:10.3969/j.issn.1671-7449.2019.02.006 |