基于迁移学习和改进残差网络的棉花叶螨为害等级识别
2023-08-22周保平叶凡恺何云龙
张 ,周保平,王 昱,冯 洁,叶凡恺,何云龙
(塔里木大学 a. 信息工程学院;b. 现代农业工程重点实验室,新疆 阿拉尔 843300)
新疆作为我国棉花的主要生产基地,产量占全国的90%。作为新疆的经济作物之首,棉花对新疆的经济发展和社会稳定发挥着至关重要的作用[1]。近年来,受气候变化的影响,新疆棉花生长过程中的病虫害发病率明显上升。棉花叶螨是棉花生长过程中危害棉花的三大主要害虫之一。棉花播种面积的不断扩大和地膜植棉等技术的推广应用,为棉花叶螨的生存和大量繁殖提供了适宜的生态环境。这就导致新疆棉花叶螨数量不断增加,危害也日趋严重[2]。目前,国内规模化的棉花种植需依赖人工跟踪棉田中棉花叶螨病害的发展趋势和危害程度,导致对棉叶螨虫害的管理存在一定的滞后性。因此,研发实时、准确、快速的检测机制对于棉花叶螨的及时发现和精准防治来说具有现实意义。
近年来,随着计算机视觉技术和图像识别技术的发展,机器学习和深度学习技术被广泛应用于农业领域[3],特别是在作物病虫害检测和分类方面,相关研究已取得很大进步[4-6],越来越多的研究人员将深度学习技术用于作物病虫害诊断[7]。吴沧海等[8]利用Matlab软件,分别使用不同算法进行柑橘始叶螨图像的边缘检测,并对比了不同算法的优劣。杨丽丽等[9]将支持向量机(SVM)算法和Adaboost算法相结合,实现了对棉花叶螨为害等级的自动检测和识别,平均识别率达88.75%。Cheng等[10]在深度学习的基础上,使用残差神经网络构建虫害识别模型,改善了复杂背景下的害虫识别率。张建华等[11]采用迁移学习方法将在大型数据集ImageNet上预训练的参数和权重迁移至改进后的VGG模型中,实现了对棉花病害叶片的分类,平均识别准确率达到89.51%。何东健等[12]针对葡萄霜霉病不同发病程度叶间特征相似度高、区分难度大的问题,提出一种基于深度残差网络的卷积神经网络识别模型。Jenifa等[13]使用卷积神经网络模型对4种棉花叶片病害进行分类,最高识别正确率达96%。Caldeira等[14]利用卷积神经网络模型GoogleNet和ResNet50识别棉花叶片病害,最高识别准确率分别达到86.6%和89.2%。Yang等[15]利用MobileNetV1模型对棉叶螨的危害等级进行检测,在测试集上的准确率达95.4%。梳理上述研究发现,基于深度学习的病虫害识别研究多以分类为主;但若仅对病虫害进行分类,难以满足在作物生长过程中精准防治和施药的要求。机器学习技术在棉花叶螨的分级识别中虽有应用,但相关方法需对图像进行背景分离和边缘检测等预处理,而且主要依靠人工提取特征和分类,难以挖掘到深层、更具代表性的特征。
不同虫害等级的棉叶螨图像相似度高,不易区分。为了精准快速地识别棉叶螨的等级,提高模型的泛化能力,本文结合迁移学习和改进的ResNet50模型,将在PlantVillage[16]数据集上预训练得到的权重参数进行迁移学习,在原ResNet50模型的不同深度嵌入注意力机制模块并引入焦点损失(focal loss)函数,使模型专注于难以分级的棉花叶螨图像,加强模型对更具区分性信息的关注,采用Dropout正则化进行优化,并与其他图像分类模型进行对比,以验证本文模型的有效性。
1 材料与方法
1.1 试验数据
1.1.1 棉叶螨危害程度分级标准
参照国家标准GB/T 15802—2011《棉花叶螨测报技术规范》[17]中的螨害等级划分标准,根据叶片病斑面积占比,将棉花叶螨为害划分为4个等级:0级,无为害;1级,叶面有零星黄色斑块;2级,红色斑块面积占棉叶总面积的1/3以下;3级,红色斑块面积占棉叶总面积的1/3及以上。
1.1.2 图像数据采集
2022年4—8月,分别于单一背景和自然环境下在新疆阿拉尔市九团棉田试验基地采集棉叶图像。采集图像时,棉叶的生长阶段主要为苗期、蕾期和花铃期。图像采集设备为索尼Alpha 6400,摄像头像素达2 420万,焦距设置为自动对焦。共采集原始样本图像2 695幅。根据棉花叶螨为害程度,将采集到的棉叶图像分为4个等级(图1),其中,0级(健康)图像521幅,1级图像684幅,2级图像680幅,3级图像810幅。分别将4种等级的棉花叶片图像放于不同的文件夹(代表不同的级别标签)中,用于棉花叶螨检测和为害等级划分的训练与测试。
1.1.3 图像数据增强
首先,对棉花叶片图像进行预处理,去除无用和重复的叶片图像。将预处理后的图像按7∶3的比例划分为训练集和测试集,通过测试集验证模型的准确度。然后,采用高斯模糊、水平翻转、弹性变换和随机旋转90°这4种方式对所有的数据样本进行增强,之后,再从随机裁剪、矩形丢弃、网格失真、网格擦除和光学畸变中随机选择一种方式进行数据增强操作(表1、图2)。数据增强后,0~3级棉叶螨叶片图像在训练集上的效果如图2所示。最后将所有试验图像的图片尺寸调整为512 pixel×512 pixel,降低像素值,去除图像的冗余信息以减少计算量,并对输入层图像进行归一化处理以提高模型收敛速度,缓解梯度消失问题。
表1 数据增强后各级棉叶图像的数量
a,原图;b,高斯模糊;c,水平翻转;d,旋转90°;e,弹性变换;f,随机裁剪;g,矩形丢弃;h,网格失真;i,网格擦除;j,光学畸变。
1.2 模型构建
1.2.1 ResNet模型
通过深层网络提取图像的高级特征可显著提高分类精度,但随着网络深度的增加,会出现梯度消失、网络退化和精度趋于饱和等问题。ResNet50模型[18]在传统卷积神经网络的基础上引入残差模块来解决网络退化等问题。残差网络的核心思想是逐层计算残差,用更简单和清晰的框架训练网络模型。与以往每层直接匹配一个给定的映射不同,残差网络是让这些层匹配一个残差映射,网络底层的误差可通过快捷连接的方式传递给下一层,随着网络收敛速度的加快,可进行更深层次的训练,以实现更高的准确率。
1.2.2 迁移学习
迁移学习(transfer learning)是将源域学到的知识迁移到目标域的一种学习方法[19]。本文使用迁移学习方法预训练模型,并将其作为特征提取网络应用在棉花叶螨病害图像数据集上,用来提取棉花受叶螨为害的特征。迁移学习减少了构建深度学习网络模型所需的训练数据量和实验平台的计算力,使得模型无须从零开始重新训练和学习。
1.2.3 焦点损失函数
焦点损失函数是针对目标检测中数据样本不平衡和挖掘困难样本等问题提出的解决方案。其核心思想是使模型更加关注难分类的样本和小数量样本,通过提高小数量样本和难分类样本的权重、降低易分类样本的权重,解决数据样本不平衡的问题[20]。焦点损失函数的表达式为
(1)
1.2.4 注意力机制
注意力机制(attention mechanism)是一种仿生物视觉机制[21-22],具有计算效率高、对图像内容理解能力强等特点,被作为核心技术广泛应用于目标识别[23]、目标检测[24]、图像识别[25]和自然语言处理[26]等领域。注意力机制由通道注意力模块[27-29]和空间注意力模块[30]2个注意力模块组成。通道注意力负责将资源分配到各卷积通道,空间注意力将原始图像中的空间信息传输到特定空间并提取关键信息,使神经网络更关注对图像分类起决定性作用的区域。通道注意力机制首先使用平均池(AvgPool)和最大池(MaxPool)聚合空间信息,并将特征的维数减少为2个1×1×C的向量(分别代表平均池化特征和最大池化特征);然后将2个特征向量分别通过具有共享权值的全连接层网络,利用元素求和方法合并输出向量,生成通道维度的权重。空间注意力机制着重于位置信息,是对通道注意力在H×W维度上的补充:首先,在通道上应用最大池和平均池生成两个H×W×1的特征图;然后,将堆叠后的特征图通过卷积层生成单通道的空间注意图,对图像中需要抑制或增强的位置进行权重分配。
1.2.5 模型整体架构
本研究选择ResNet50模型作为主干网络。ResNet50模型主要分为6个阶段(图3):Stage 0阶段主要包含3层,首先是卷积核为7×7的卷积层,卷积核个数为64,其次是归一化层和ReLu激活函数,最后是核大小为3×3、步长为2的最大池化层下采样,主要对输入图像进行预处理,提取常规特征,缩放特征尺寸;Stage 1~4阶段主要由残差块组成,用来提取高层特征信息;Stage 5,将提取的高层特征信息通过全局平均池化和全连接层生成网络预测的分类结果。
图3 ResNet50模型结构图
在ResNet50模型的基础上引入迁移学习、注意力机制和损失函数构建改进的ResNet50模型(图4)。首先,在PlantVillage数据集上进行模型预训练,并将训练参数迁移到改进的ResNet50模型中,在棉叶数据集上对参数进行微调。然后,在网络特征传递过程中引入注意力机制,引导残差网络关注螨害区域,降低自然环境下采集的图像背景区域的权重,提高网络模型对棉叶螨害识别和分级的准确性。为了弥补样本类别不平衡造成的影响,损失函数选择焦点损失函数。为了避免小量数据集出现过拟合,在全连接层后添加Dropout层,Dropout率设置为0.4,即随机丢弃40%的参数以进一步提高网络对于输入图像的稳健性。最后,通过Softmax分类器进行分类,并输出模型预测结果。
1.3 试验环境配置与参数设置
使用安装有64位Linux18.04操作系统的塔式服务器进行试验。服务器的运行内存为128 GB,配备2个Intel Silver 4210 CPU(2.2 GHz)。
在存储方面,配备512 GB固态硬盘和4 TB的机械硬盘。使用2个英伟达GeForce RTX3090 GPU(24 GB显存)进行并行计算。使用Python 3.7和Pytorch 1.5软件进行模型搭建和训练测试,运行的虚拟环境使用Anaconda 3软件进行管理。
训练过程中设置不同的超参数会影响模型的性能。本文在试验过程中多次调整超参数并对比试验结果,最终选择一组最佳超参数。试验中,所有模型的输入批尺寸(batch_size)统一设置为16,采用随机梯度下降(stochastic gradient descent, SGD)优化器。根据精度最优原则,设置3个动量梯度(0.3、0.6和0.9),权重衰减为0.000 5。在最优动量的基础上采用指数标尺选取0.01、0.001、0.000 1共3组学习率。损失函数选择焦点损失函数,以缓解样本数量不平衡的问题。每次试验训练100轮次(epochs)。在每轮次结束时进行测试并记录测试结果,在全连接层前设置Dropout层,随机丢弃的概率为0.4。
1.4 模型评价
选择准确率(precision)、召回率(recall)和F1得分(F1 score)作为模型的评价指标,用于对比试验。各指标的计算公式如下:
P=NTP/(NTP+NFP);
(2)
R=NTP/(NTP+NFN);
(3)
F=2PR/(P+R)。
(4)
式(2)~(4)中:P、R、F分别代表准确率、召回率、F1得分的值;NTP代表被模型预测为正的正样本数量;NFP代表被模型预测为负的正样本数量;NFN代表被模型预测为正的负样本数量。
2 结果与分析
2.1 模型特征提取可视化
通过模型特征可视化,可直观地观察网络模型中间卷积层的特征变化和每一层学习的棉叶螨害特征,从而进一步调整网络参数以提高模型的识别准确度。
试验中随机选取棉叶螨害特征图像进行特征提取可视化(图5)。通过观察不同卷积层的输出特征图发现,在特征提取的浅层Conv1_x,可获得受到螨害的叶片图像的轮廓和纹理等特征信息;随着卷积层的加深,在Conv2_x和Conv3_x的输出特征图中,关于视觉内容的信息逐渐减少,呈现出更多的抽象特征信息;在深层次Conv4_x和Conv5_x中,卷积层输出的特征图变得更加抽象。最终,获得目标特征的抽象提取。
图5 棉叶螨害原始图像及其特征提取的可视化
通过特征图的可视化过程可发现,特征图的可视化在网络模型重现中可用于判断并及时调整模型的误差,改进后的ResNet50模型能有效地提取图像的螨害特征。
2.2 模型优化
2.2.1 动量因子和学习率对识别性能的影响
为提高模型的识别准确率,分别设置3个梯度的动量因子(m)和学习率(α)进行对比试验。动量设置为0.3、0.6、0.9共3个梯度,通过试验选出最优动量因子。在最优动量因子的基础上,分别设置学习率为0.01、0.001、0.000 1进行对比试验,确定最优超参数(动量因子m、学习率α)。
当动量因子为0.3和0.6时,训练过程中的收敛速度缓慢(图6),且准确率和损失值曲线均出现震荡,容易导致模型跳过最优值,不利于模型准确率的提升。当动量因子为0.9时,模型在测试集和训练集上的识别准确率分别为97.8%、98.6%,均高于其他动量因子参数模型,且识别准确率高于原ResNet50模型。因此,选取m=0.9作为最优动量因子,并在此基础上设置学习率分别为0.01、0.001、0.000 1的对比试验。结果(表2)表明,当学习率为0.001时,模型训练曲线的波动幅度小,具有更快的收敛速度,在测试集上的平均识别准确率达到97.8%,高于其他模型,更适于改进ResNet50模型的学习和训练。
表2 不同学习率下模型的性能指标对比
a,m=0.3;b,m=0.6,c,m=0.9。
2.2.2 注意力机制嵌入方式对识别性能的影响
改进ResNet50模型时,在Stage 1~4有选择性地嵌入注意力机制,分别选择:1)在浅层网络Stage 1和Stage 2之间嵌入注意力机制;2)在深层网络Stage 3和Stage 4之间嵌入注意力机制;3)同时在浅层网络Stage 1、Stage 2之间和深层网络Stage 3、Stage 4之间嵌入注意力机制,相应地构建出M1、M2和M3,并与原ResNet50模型的性能进行对比。
与原ResNet50模型相比,嵌入注意力机制后,模型的识别准确率均有所提升(图7)。这主要是因为,利用注意力机制可提高对螨害区域的激活权重,降低背景等信息的干扰,使得网络能够更加精确地定位识别出对结果影响最大的螨害区域。相较于分别在浅层和深层嵌入注意力机制,在深、浅两层同时嵌入注意力机制能够加强模型对棉叶螨害的特征提取能力。这是因为,棉叶螨害的形态首先在低阶的纹理信息中呈现,浅层注意力机制过滤棉叶螨害纹理区域并用于后续判断,但由于螨害区域和叶片的茎部有重叠,浅层难以发掘和引导语义信息,在浅层特征初步过滤的基础上,深层注意力机制在高阶语义维度上进行筛选,可以迅速定位受害概率最大的棉叶区域,从而提高网络分类的精度。
图7 注意力机制在不同嵌入方式下的模型准确率对比
2.3 不同识别模型的性能对比
在相同的参数设置和试验条件下,选择卷积神经网络模型AlexNet、MobileNet、VGG16、SENet、ResNet50模型和改进的ResNet50模型进行训练和对比试验。随着训练轮次的增加,各个模型的准确率整体呈上升趋势(图8),当训练轮次达到70左右时,各模型的准确率曲线趋于稳定,改进的ResNet50、MobileNet、SENet、VGG16、ResNet50、AlexNet模型的平均识别准确率依次为97.8%、93.1%、92.4%、91.7%、88.9%和80.15%。各模型的损失值在前40轮次训练过程中下降较大,之后趋于稳定。整体来看,改进的ResNet50模型的损失值曲线平滑度优于其他模型。与其他神经网络模型相比,本文提出的改进的ResNet50模型对棉叶螨害的识别实现了较高的准确率,且损失值也低于其他模型。也就是说,改进的ResNet50模型能够更有效地检测棉叶受到不同级别螨害的细微差距,更适用于棉叶螨害的图像识别和自动分级。
对比各模型对4组(螨害等级分别为0~3级)棉叶图像的识别性能(表3)。改进的ResNet50模型对0~3级螨害棉叶图像的识别准确率分别达到了97.1%、96.2%、98.0%和98.7%,高于其他模型。召回率和F1得分的数值越高,代表模型的识别效果越好。对比召回率和F1得分可知,改进的ResNet50模型具有更好的识别性能和泛化能力。
表3 不同模型性能对比
混淆矩阵是分类问题的一种标准描述形式,也是分类模型的评价指标之一[31]。混淆矩阵的列标签代表预测类别,对应的行值总和代表类别中的所有图像数量,行标签代表预测图像的真实类别,行列交叉处数值表示该类别被预测为对应列标签的数量,对角线上的数值表示正确预测的标签数量,对角线上的颜色越深表示模型预测效果越好。
不同级别的螨害叶片存在一定的相似性,因此识别时易发生识别混淆的情况。通过各网络模型的混淆矩阵(图9)可以看出,改进的ResNet50、MobileNet、ResNet50、AlexNet、VGG16和SENet模型,正确识别出2级螨害的数量分别为97、91、84、44、84和90,将2级螨害错误识别为3级螨害的数量分别为0、3、6、14、7和3。与其他模型相比,改进的ResNet50模型针对级别相近的螨害叶片的误识率更低,能够更准确地分辨出不同等级螨害叶片间的细微差别。
图9 各模型的混淆矩阵比较
3 结论
针对人工检测棉花叶螨分级准确率低、耗时长、成本高、难以满足精准施药要求的问题,本文提出一种基于迁移学习和改进残差网络的棉叶螨害等级识别方法,通过在ResNet50模型中引入焦点损失函数、注意力机制和Dropout层,加强了对螨害特征的提取,提高了模型的收敛速度、泛化能力和识别准确率,实现了对棉叶螨害的检测和为害等级划分。
利用迁移学习在大数据集上获取预训练模型,在一定程度上加快了模型的收敛速度。通过对比不同动量因子与学习率下模型的识别结果,发现当动量因子为0.9、学习率为0.001时,改进的ResNet50模型具有最好的识别效果。在优化动量因子和学习率的基础上,识别准确率高于原ResNet50模型。
通过嵌入焦点损失函数,并在不同层次嵌入注意力机制进行对比,使网络在训练过程中加大难分级样本的权重,增强了网络特征的提取能力,使网络更加专注于重要的螨害特征,抑制其他干扰因素,识别准确率较原ResNet50模型提高。
在相同的训练参数下,本文提出的改进ResNet50模型对棉叶螨害平均分级准确率达到97.8%,高于AlexNet、 MobileNet、VGG16、SENet和ResNet50模型,验证了本文模型在棉叶螨害等级识别上的有效性。
下一步,计划采集更多不同时间段、不同光照条件下,包含叶片受污染和遮挡等复杂背景环境的棉花叶片图像,进一步丰富棉花叶螨虫害图像数据集,提高模型的性能和稳健性,并尝试建立端到端的棉花叶螨为害分级模型,进一步提高其实用价值。