基于改进深度卷积神经网络的水稻病虫害识别
2023-06-19陈浪浪张艳
陈浪浪,张艳,2
(1. 贵州大学大数据与信息工程学院,贵州贵阳 550025;2. 贵阳学院农产品无损检测中心,贵州贵阳 550005)
水稻是世界主要粮食作物之一,病虫害对水稻产量和质量有较大影响,故准确检测出病虫害有利于及时防治。 计算机及相关软硬件技术的发展推动了作物病虫害识别方法从人工检测到智能识别的发展。 相比人工识别手段,传统图像识别方法通过特征提取、特征选择和特征分类[1-3]三个过程实现作物病虫害图像的自动分类,不仅具有较高的识别准确率和较少识别时间,也节省了人力、物力。 但传统图像识别方法存在特征提取繁琐、识别时间长和泛化能力差等缺点。
近年来,深度学习技术在多个领域得到广泛应用,例如人脸识别、语音识别、行人检测等[4-7]。同时,深度学习在图像分类领域也展现出巨大潜力,基于卷积神经网络(convolutional neural network, CNN)的图像识别技术能够自动提取图像特征[8],实现图像端到端的自动分类,在农作物病虫害识别中可以取得好的识别效果。 黄双萍等[9]提出了基于深度卷积神经网络GoogLeNet 的水稻穗瘟病识别方法,在验证集上最高准确率为92%;王东方等[10]对深度残差网络SE-ResNet-101 模型进行改进,并基于迁移学习提出一种农作物病害分类模型,该模型在AIChallenger 2018农作物数据集上对多种作物病害的平均识别准确率达到98%;杨红云等[11]提出一种基于批归一化和AlexNet 网络的水稻病害识别模型,在测试集上最高识别准确率达到99.1%;王春山等[12]在残差网络(ResNet18)的基础上,通过增加多尺度特征提取模块,改变残差链接方式,并将大卷积核卷积进行分解卷积,提出了改进的多尺度残差轻量级病害识别模型,在蔬菜15 种病害图像数据集上取得了95.59%的识别准确率。 曾伟辉[13]、黄林生[14]、许景辉[15]等为了能够更准确地识别实际环境下的农作物病害,用来源于实际生产环境的农作物数据集来训练模型,提出的模型对多种农作物病害都取得了较高的识别准确率。
随着对卷积神经网络识别性能优化的深入研究,构建卷积神经网络模型的方法和思想也在不断发展。 研究表明将注意力机制、迁移学习与深度卷积神经网络结合后在测试集上的识别准确率高于单一神经网络模型。 Zhao 等将ResNet50 与SE(squeeze-and-excitation)注意力模块结合提出SE-ResNet50 模型[16],Chen 等结合MobileNetV2和CBAM(convolutional block attention module)注意力模型提出Mobile-Atten 模型[17],Malathi 等利用迁移学习方法对ResNet50 模型进行微调和改进得到新模型等,这些方法进一步拓展了神经网络的构建思路[18],为图像识别模型的优化提供了更多参考。 但以上研究提出的模型在背景信息复杂、噪声干扰严重的条件下对作物病害的识别能力差,并且将其移植到嵌入式或移动设备上实现作物病害识别时,存在参数量大、训练难、对硬件设备要求高等约束。
针对上述问题,为了实现田间复杂环境下的水稻病虫害精准识别,本文基于迁移学习和坐标注意力机制对深度卷积神经网络DenseNet121 进行改进,构建了一个水稻病虫害识别模型,可弥补传统图像识别方法和单一卷积神经网络的不足。
1 材料与方法
1.1 数据来源与预处理
所用水稻数据集是文献[19]公开发布的,获取地址为https:/ /drive. google. com/open? id =ewBesJcguriVTX8sRJseCDbXAF_T4akK。 该数据集的全部图像是在真实环境下采用不同的拍摄背景、光照条件、拍摄角度等收集,图像背景更加贴合自然环境;包括假黑粉病、白叶枯病、穗颈瘟病、胡麻斑病、纹枯病病株及褐飞虱、稻螟虫、蚜茧蜂为害株和健康植株的图片。 该水稻病虫害数据集的部分样本图像如图1 所示。
图1 水稻数据集中各类病虫害图像
由于该水稻病虫害数据集的图像数量较少,为了避免图像样本过少给神经网络模型训练带来的过拟合现象和适应深度模型训练所需大样本的要求,采用旋转、加噪声、亮暗调节和翻转4 种数据增强方法进行离线增强扩充图像样本7 倍,样本图像由原来的1426 幅增加到9982 幅,并将其按4 ∶1的比例划分为训练集和测试集。 水稻各类病虫害图像数量详细情况如表1 所示。 为了满足DenseNet121 网络的输入要求,将所有图像的尺寸调整为224×224 像素。
表1 水稻数据集病虫害种类与图像数量分布 (幅)
1.2 水稻病虫害识别模型构建
本文所构建的深度CNN 模型以DenseNet121为基础网络,融合坐标注意力(coordinate attention,CA)网络实现图像重要特征的重新标定,采用迁移学习方法训练网络加快模型收敛和缓解模型在小数据集上产生的过拟合现象。
1.2.1 模型整体架构 在众多卷积神经网络模型中,DenseNet 是图像特征提取能力强、参数量少的最佳模型之一。 坐标注意力机制可以很好地利用空间注意力和通道注意力来学习图像空间结构信息和通道间关系的重要性,提高模型对不同病虫害微小特征的提取能力。 本文基于两者构建的CA-DenseNet121 网络模型整体结构如图2 所示。
图2 CA-DenseNet121 网络
在ImageNet 上预训练DenseNet121 网络并去掉分类层,然后在预训练的网络后面加入CA 模块,使模型聚焦于水稻病区,减少复杂背景对病虫害识别的影响;随后增加一个256×1×1 的卷积层用于提取高维特征,并将注意模块输出与新增卷积层的输出在通道维度进行连接,实现浅层与深层特征的融合,避免图像信息丢失;嵌入一个CA模块提高模型的表达能力;增加一个批归一化层(batch normalization,BN),使网络收敛更快、更稳定;加入一个新的具有实际类别数量的全连接Softmax 层作为网络的新分类层。 CA -DenseNet121 结构配置如表2 所示。
表2 CA-DenseNet121 组成结构
1.2.2 DenseNet 网络 DenseNet 网络是采用前向密集连接方式将所有网络层相互连接,通过前向密集连接的方式,第k 层将得到前面所有层的特征图,并将本层的特征图输出到后面所有层。其输入与输出之间的映射关系见公式(1):
式中k 表示CNN 层数,yk是第k 层的输出特征图,Hk([y0,y1,...,yk-1])表示将0 到k-1 层的特征图进行级联后作为后面层的输入。
DenseNet 网络结构[20]如图3 所示。 Dense Block 模块由BN、Relu、1×1 卷积、BN、Relu、3×3卷积组成,用于提取图像特征,通过多个Dense Block 的堆叠使用实现从图像低层信息到高层语义信息的提取;Transition Layer 模块由BN、Relu、1×1卷积层和2×2 平均池化层组成,用于减少特征图的维数以降低模型的复杂度。
图3 DenseNet 网络结构
1.2.3 迁移学习 深度卷积神经网络需要大量标注的数据训练模型,但在一个领域收集大量标注数据是一项具有挑战性的任务。 因此,当面对相似的深度学习任务时,迁移学习[21]就成了首选方案。 神经网络中常用的迁移学习指参数迁移,即把一个已经训练好的模型的参数迁移到新模型上助其训练的方法,其目的是将源领域学习到的信息推广到目标领域。 迁移学习与全新学习的区别在于,迁移学习的模型参数在源数据集上已训练好,而全新学习的模型参数是随机初始化的,需要在目标数据集上从头开始训练。 迁移学习减少了构建CNN 模型所需的训练数据、计算资源,并加快模型收敛。 因此,利用迁移学习将在ImageNet 上预训练的DenseNet121 模型的权重参数迁移到本任务上,微调网络,并精调参数,以适应本数据集。 迁移学习流程如图4 所示。
图4 迁移学习流程框图
1.2.4 注意力机制 水稻图像都是在田间环境下采集,背景复杂,伴随许多噪声信息。 水稻病虫害特征的空间位置信息与重要特征通道信息对准确识别水稻病虫害类型具有重要作用。 注意力机制通过调整特征图中每个通道的权重,帮助模型捕获到对识别任务更有帮助的特征信息,并增强有用信息,减弱不重要信息,增强网络的特征提取能力,抑制冗余背景信息和噪声干扰,提高模型的识别性能。 坐标注意力通过坐标信息嵌入和坐标注意力图生成两个操作获得注意力特征图,从而使移动网络获取更大区域的位置信息而避免引入大的计算开销。 CA 结构[22]如图5 所示。
图5 CA 结构
图6 迁移学习模型与普通DenseNet121 模型性能对比
首先进行坐标信息嵌入。 全局平均池化见公式(2):
式中zc是第c 个通道的输出特征图,xc是第c 个通道的输入特征图,H、W 是特征图的高和宽,(i,j)是特征图上的坐标位置。 为捕捉精确的位置信息,CA 将全局池化操作分解为沿着输入特征图的水平方向和垂直方向分别进行池化操作,从而获得不同位置信息的特征图。 垂直方向和水平方向的一维特征分别见公式(3)和(4):
其次进行坐标注意力生成操作。 将公式(3)和(4)的结果分别通过公式(5)(6)(7)(8)进行计算得到输出特征图。
式中F1表示拼接操作,f∈RC/r×(H+W);r 是控制模块大小的超参数,θ 是坐标激活函数,其公式为。 然后分别经过1×1 卷积后利用Sigmoid 非线性激活函数,分别得到垂直和水平方向注意力图的权重,如式(6)(7)所示:
式中Fh、Fw表示两个1×1 卷积,σ 是Sigmoid 激活函数。 最后将输入的特征图与水平和垂直权重相乘,获得坐标注意力输出特征图,如式(8)所示:
不同于只关注通道权重的通道注意力机制,CA 模块还对空间信息进行编码,不仅可以更准确地定位感兴趣对象的位置,还能帮助整个模型更好地识别目标对象。
1.3 实验环境与参数设置
本实验是以Keras 深度学习框架和Tensorflow 为后端,在Kaggle 高性能计算平台上运行完成。 平台硬件环境:NVIDIA Tesla P100 GPU,16 G 显存。 软件环境:Python 3.8,Keras 2.4.9,Tensorflow 2.4.1。
参数设置:学习率初始设置为0.001,每经过30 个批次学习率进行衰减,衰减因子为0.1,经过各个模型的反复试验后,最终将学习率设为0.00001;批次大小设为32,训练批次数设为100次,优化算法选用自适应矩估计(adaptive moment estimation,Adam),损失函数选用交叉熵损失函数。
1.4 评价指标
为了全面衡量模型的识别性能,采用分类模型中常用的准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1-score 和模型参数量一起作为模型的评价指标。 其中,准确率、精确率、召回率、F1-score 的计算公式如下。 参数量表示CNN 模型中可预训的参数的个数,以百万(million,M)为单位,表示1×106。
式中TP(True Positive)是正确预测的正样本数量,TN(True Negative)是正确预测的负样本数量,FP(False Positive)是错误预测的正样本数量,FN(False Negative)是错误预测的负样本数量。 准确率表示正确预测的样本数在所有样本数中的占比;精确率表示正确预测的正样本数在所有预测为正样本数中的占比;召回率表示正确预测的正样本数在所有正样本数中的占比;F1-score 是根据精确率与召回率的调和平均值定义的,是综合考虑精确率与召回率的指标。
2 结果与分析
2.1 迁移学习对模型性能的影响
从图 6 看出, 基于迁移学习的 TL -DenseNet121 模型收敛更快,在训练初始时刻就得到较低的损失;在进行25 次迭代后,模型的识别准确率便接近峰值(测试集上为98.10%),而模型损失值基本降到1.5;在迭代55 次后,模型的识别准确率在98%附近振动,损失也维持在1.47 上下,不再明显下降,表明模型基本收敛。 相比之下,普通的DenseNet121 模型的准确率曲线收敛较慢,在迭代25 次时,测试集的准确率才达到70%;迭代60 次时,模型识别准确率达到74%,损失降到1.74 左右;直到迭代80 次时,模型的准确率才接近峰值(测试集上仅为82.47%),而损失值为1.62。
2 种模型在测试集上的识别结果(表3)显示,通过迁移学习方式训练的模型性能有较大提升,平均准确率提高了15.63 个百分点,精确率、召回率和F1-score 分别提高了36.70、28.64、33.04 个百分点。 由此可知,通过迁移学习方法训练的模型准确率会有不同程度的提升,同时能加快模型收敛。
表3 迁移学习模型与普通DenseNet121模型性能对比
2.2 注意力机制对模型性能的影响
为了验证添加注意力机制对模型性能是否有影响,在保持实验条件和参数设置一致的前提下,都用迁移学习方式加载预训练模型,然后进行不加注意力的DenseNet121 和加入注意力的CADenseNet121 模型的性能对比。 由表4 看出,加入坐标注意力后,模型准确率、精确率、召回率、F1-score 分别提高了0.85、0.10、0.48、0.29 个百分点。添加坐标注意力机制能快速定位病虫害位置信息并增强对病害分类有用的特征信息的权重,抑制背景噪声的干扰,增强模型的特征提取能力,提高水稻病虫害的识别准确率。
表4 融合注意力机制模型与普通DenseNet121模型的性能对比
表5 不同模型识别性能比较
2.3 模型性能分析
2.3.1 不同模型性能比较 为了验证改进模型在水稻病虫害识别任务上的有效性和优越性,在相同实验条件下,均采用迁移学习方式训练后,将本文提出的CA-DenseNet121 模型与ResNet50、DenseNet121、 InceptionV3、 Xception、 Inception-ResNetV2 模型进行比较,精确率分别提高了2.80、1.04、0.86、0.63、0.13 个百分点,准确率分别提高0.70 ~2.80 个百分点。 从模型参数量比较,CADenseNet121 模型的参数量为7.23 M,分别为ResNet50、Xception、DenseNet121、InceptionV3、InceptionResNetV2 的30.70%、34.70%、103.87%、33.18%、13.09%。 改进的模型有效平衡了模型识别精度与模型复杂度。
2.3.2 构建模型的识别效果 利用构建的CADenseNet121 模型在水稻病虫害测试集上对8 种病虫害与健康植株进行识别,结果(表6)显示,模型对白叶枯病、褐飞虱、胡麻斑病、假黑粉病、穗颈瘟病、蚜茧蜂、稻螟虫的识别效果最好,识别准确率、精确率、召回率和F1-score 都达到100%;对健康水稻的识别效果较差,但其召回率和准确率达到了100%,精确率和F1-score 也在99%以上;对纹枯病的识别效果最差,但精确率、准确率、召回率和F1-score 都高于99%。 可见该模型具有较高的识别准确率和鲁棒性。
表6 CA-DenseNet121 对水稻病虫害图像的识别结果
但是部分患纹枯病植株会被错误识别为健康植株,可能是因为神经网络模型提取的图像特征是从浅层特征(如颜色、纹理和边缘)到高层语义特征,当病株处于发病初期、病害特征不明显时,模型在底层就会提取到与健株相同的颜色、纹理或边缘等特征,最终错误识别。
3 结论
为了实现田间环境下水稻病虫害的精准识别,并弥补传统图像识别方法和单一卷积神经网络的不足,本文基于DenseNet21 网络并融合迁移学习和注意力机制提出一种水稻病虫害识别方法。 该模型利用迁移学习将在ImageNet 预训练的DenseNet21 网络参数的权重知识迁移到本任务的模型上,以缓解模型在小数据集上产生的过拟合现象;引入坐标注意力机制增强模型对病虫害识别有用的特征的关注,减弱对无用信息的关注,提高模型对病虫害微小特征的提取能力,从而降低模型的错误识别率。
(1)相比普通DenseNet21 模型,经迁移学习训练的模型识别准确率提高了15.63 个百分点。经迁移学习的模型已经学习到有用的相关通用特征,当模型参数迁移到作物病虫害识别任务模型后只需进行增量式学习,不容易对新数据过拟合,因此具有良好的泛化能力,能有效减少训练时间并提高识别准确率。
(2)引入注意力机制将模型准确率提升了0.85个百分点。 坐标注意力机制可更加准确地找到水稻病虫害发病区域以及病虫害微小特征信息,提高对病虫害识别有用的特征信息的关注,减弱对识别无用的特征信息的关注,提升了模型的特征表达能力,从而降低错误识别率。
(3)本文提出的CA-DenseNet121 模型对水稻病虫害的识别准确率达98.95%,相比单一DenseNet121 提升了1.22 个百分点,但参数量仅增加0.27 M。 该模型在田间复杂环境下的水稻病虫害识别任务上具有较高的识别准确率,并较好地平衡了模型识别性能和模型复杂度。