基于多尺度注意力残差网络MSA-ResNet的农作物病害识别

2023-05-11 08:58刘晓梅
软件导刊 2023年4期
关键词:残差尺度注意力

张 净,李 进,刘晓梅

(1.江苏大学 电气信息工程学院,江苏 镇江 212013;2.江苏科茂信息技术有限公司,江苏 镇江 212001)

0 引言

在传统农业中,农作物病害主要依靠人工进行识别、判断,但此方式存在诸多缺陷。人工识别过于依赖主观经验,容易误判且耗时耗力,往往导致农作物病害救治不及时或者没有对症下药,农作物产量也会因此而减少,所以对农作物病害进行准确识别显得尤为重要。

随着计算机和图像处理技术的发展,传统机器学习逐渐被应用于农作物病害识别领域。邹永杰等[1]选择番茄作为研究对象,提取番茄的HOG 和LBP 特征,将其输入到支持向量机分类器中进行训练,最终得到番茄病害识别模型;王佳[2]构建香芋病害数据库,主要包含病害叶片颜色和纹理特征,并以支持向量机作为分类器,准确率达到93.00%;夏永泉等[3]结合高斯混合模型和EM 算法对小麦叶片病害进行提取,分类器为随机森林,分类特征为HSV和Tamura 纹理特征,最终结果表明,该方法的准确率高于相同环境下的支持向量机方法;Nettleton 等[4]通过对水稻稻瘟病的研究,提出M5Rules 和递归神经网络两种识别方法,分别与Yoshino 和水文模型两种预测模型进行对比,结果表明,在样本数据足够的情况下,基于机器学习的水稻稻瘟病识别方法可实现更高的准确率和更强的泛化性;Duarte-carvajalino 等[5]将多层感知器、支持向量机、随机森林等机器学习算法进行对比,自行构建马铃薯晚疫病数据集,均由无人机搭载相机所拍摄的高光谱图像组成,实验结果表明,该方式可精准识别马铃薯晚疫病的严重程度。基于传统机器学习的病害识别方法可以识别某一种农作物的特定图像特征,然后进一步判断农作物病害种类。虽然最终实现了农作物病害识别,但需人工手动提取特征,因此依旧依赖主观经验。而且传统机器学习算法对分类器较为依赖,若分类器不同,最后的识别结果可能差别较大,因此需要有经验的专业人员针对不同情况选择不同的分类器[6]。

之后深度学习技术得到了飞速发展,其中卷积神经网络(Convloution Neural Network,CNN)[7-8]在图像分类和检测上大放异彩,其能够自动提取特征,弥补了传统机器学习算法在人工提取特征过程中导致特征丢失的问题,越来越多研究人员采用卷积神经网络对农作物病害识别进行研究。叶中华等[9]采用AlexNet、DenseNet121、ResNet18、VGG16 模型在具有复杂背景的农作物数据集上进行对比实验,平均识别准确率达到90%左右;王美华等[10]对注意力模块进行改进,将通道注意力与空间注意力并行连接,并将其添加到MobileNetV2,在病虫害细粒度分类上,模型准确率达到86.50%;Fujita 等[11]基于深度卷积神经网络对7 520 张黄瓜叶片图像进行识别,准确率达到82.3%;孙俊等[12]将结合批归一化和全局池化的卷积神经网络模型进行3 次迭代,病害识别准确率可达到90%;Zhang 等[13]使用AlexNet 网络模型对柑橘溃疡病进行识别,并对网络结构进行优化,在减少网络参数数量的同时,识别率基本不变;张善文等[14]使用11 层LeNet 对1 200 张黄瓜病害图片进行训练,可达到90%以上的识别准确率。

上述研究证明了将卷积神经网络应用于病害识别领域的可行性,本文提出一种基于多尺度注意力残差网络MSA-ResNet 的多种类农作物叶片病害识别方法,针对现有方法识别准确率低、网络模型规模大等问题,在保证较高准确率的同时,减小模型的内存占用,将原始网络结构中的单尺度卷积核改进为多尺度卷积核,以提取农作物叶片病害的不同尺度特征,将部分标准卷积替换为深度可分离卷积,以减小模型规模,通过加入注意力机制,使网络训练中更关注病害的有效特征,从而提升模型识别准确率。

1 模型构建

为解决模型规模大、病害识别准确率低的问题,本文提出的MSA-ResNet 包含输入分支、轻量化多尺度残差注意力模块两部分。输入分支以小卷积核堆叠代替大卷积核,以增加网络的非线性表达,降低计算参数量;轻量化多尺度残差注意力模块采用多尺度卷积核提取多尺度特征,每个通道通过嵌入注意力机制模块减少冗余特征,利用深度可分离卷积减小模型规模,从而使模型的整体性能得到提升。

1.1 残差网络

在卷积神经网络中,浅层网络只能提取图像的浅层特征,如边缘、颜色、纹理等。因此,为了提高分类的精确度,需要加深网络层数,提取图像的深层抽象特征。但一味地增加网络深度会导致梯度爆炸或梯度消失[15],而ResNet网络[16]中残差块的设计就是为了解决网络退化和梯度问题,在增加网络深度的同时,提高网络性能。图1 是两种不同的残差块,图1(a)为普通的残差块,大多应用于层数较浅的网络,图1(b)的残差块大多应用于更深层次的网络。普通残差块分为两层,输入经过两个大小为3×3 的卷积层进行输出,右边为一个跳跃连接[17],从输入连接到输出。主干上的输出通过跳跃连接与输入相加,通过ReLu激活函数进行输出。应用于更深层网络的残差块包含3个卷积层,因而大大减少了参数数量和计算量。

1.2 注意力机制

Fig.1 Residual block structure图1 残差块结构

注意力机制用于模仿人类的视觉机制,当人类在浏览一张图片时会有选择地专注于自己感兴趣的部分,而不会在每个部分都集中注意力去阅览。

农作物病害病斑的大小、颜色和形状在不同时期均有不同,通常局部分布在叶片上。为了更好地关注叶片病害部分的位置信息和病斑的细节表现特征,在模型中增加了CBAM(Convolutional Block Attention Module)注意力 模块[18]。该模块由通道注意力模块和空间注意力模块组成,通过这两个模块可以同时关注通道信息和空间信息,能更好地捕获到病害图像中的病害特征,从而提升农作物病害识别的准确率,减少背景等无关特征对结果的影响。

CBAM 模块结构如图2所示。

Fig.2 CBAM module图2 CBAM模块

该模块首先将通道注意力模块计算得出的通道特征图与输入特征图相乘得到新的特征图,过程表达式如式(1)所示,然后将新的特征图输入到空间注意力模块得出的空间特征图与输入特征图相乘,得到具有两个维度注意力的特征图,过程表达式如式(2)所示。

式中,F为输入特征图,Mc(F)为通道注意力生成的通道注意力特征图,F′为输入特征图与通道注意力特征图相乘之后生成的新特征,Ms(F′)为空间注意力生成的空间注意力特征图,⊗为同位元素对应相乘,F′′为CBAM 模块的输出特征图。

通道注意力模块结构如图3 所示,该模块作用于特征图之间,对通道维度的信息更加关注,把特征图的每个通道都作为特征提取器。

Fig.3 Channel attention module图3 通道注意力模块

该模块分别使用平均池化与最大池化生成平均池化特征和最大池化特征,压缩输入特征图的空间维度,从而提高网络计算效率,之后两个池化特征再分别输入多层感知机(Multilayer Perceptron,MLP),将得出的结果进行加和,经过非线性激活函数生成最后的通道注意力特征图。具体计算过程如下:

式中,σ为Sigmoid 激活函数,AvgPool()为平均池化,MaxPool()为最大池化,为输入特征图经过平均池化后的特征图,为输入特征图经过最大池化后的特征图,和为两个池化特征输入到多层感知机所学习到的权重。

空间注意力模块结构如图4 所示,对通道注意力作进一步补充,更侧重于关注任务中重要特征的空间信息。

Fig.4 Spatial attention module图4 空间注意力模块

该模块将基于通道注意力模块得到的输入特征图F′分别经过最大池化和平均池化,然后进行通道拼接后得到一个高效的特征描述器。将其输入到卷积核大小为7×7和激活函数为Sigmoid 的卷积层中,得到空间注意力特征图Ms(F′)。最后F′与Ms(F′)进行对应相乘,获取最终的具有通道空间两个维度的注意力特征图。计算公式如下:

式中,f7×7为7×7卷积核的卷积运算。

1.3 基于深度可分离卷积的轻量化多尺度残差块

在ResNet 网络中的卷积层都只使用了一个大小为3×3 的卷积核对图像进行特征提取,而两个大小为1×1 的卷积核仅起到了升维或降维的作用,所以提取的特征较为单一,导致图像信息不能准确表达。农作物病害的症状多样且较为复杂,不同病斑的颜色、大小差异较大,且在叶片上的位置也不同,采用单一卷积核对农作物叶片病害特征的提取不够准确,因此采用多尺度卷积核替代原网络中3×3 的卷积核。不同大小的卷积核具有不同的感受野,尺度相对较大的卷积核能更好地提取全局特征,而较小的卷积核能提取更为局部的特征。在同一卷积层中,使用1×1、3×3和5×5共3种大小的卷积核代替原网络中单一的卷积核,可通过设定合适的步长以保证特征维度相同。通过3 个大小不同的卷积核以不同感受野提取到不同尺度特征,同时拓宽了网络宽度,以避免网络深度过深而造成的过拟合现象。改进后的残差模块结构如图5(a)所示。

在改进后的残差模块中,通过滤波器连接进行通道的堆叠,在每个卷积层后都有BN(Btach Normalization)层和ReLu 激活函数。BN 层可以通过归一化每一批次的数据,从而缓解深层网络中会出现的梯度消失问题,增强模型的非线性表达。ReLu 激活函数可以在加快网络收敛的同时,缓解梯度弥散问题。考虑到5×5 的卷积核在训练过程中所需的计算量相对较大,所以采用两个3×3 的卷积核代替[19],以达到降低参数量的目的。同时,网络的层数越深,卷积核数量随之增加,也必然会导致需要更多参数。

Fig.5 Improved multi-scale residual block图5 改进的多尺度残差块

受MobileNet[20]启发,将多尺度残差块中的部分标准卷积替换为深度可分离卷积,从而进一步减少网络参数,使网络体积进一步减小。深度可分离卷积由点卷积(Pointwise Convolution)和深度卷积(Depthwise Convolution)组成,深度卷积是对特征图的每个通道进行卷积,点卷积是对每个通道的特征进行组合。假设输入特征图大小为Df×Df×M,卷积核大小为Dk×Dk,输出通道为N,则标准卷积与深度可分离卷积计算量分别为Df×Df×M×N×Dk×Dk、Df×Df×M×Dk×Dk+Df×Df×M×N。

深度可分离卷积与标准卷积计算量比为:

在轻量化多尺度残差块的每个通道后面添加CBAM注意力机制模块,并对不同通道进行多尺度特征融合,最后通过跳跃连接恒等映射缓解在网络深层会出现的梯度弥散和梯度爆炸问题。轻量化多尺度残差注意力模块结构如图5(c)所示。

1.4 基于多尺度注意力残差网络的农作物病害识别模型MSA-ResNet

本文提出的基于轻量化多尺度特征融合与注意力机制的农作物病害识别卷积神经网络模型MSA-ResNet 结构如图6 所示,模型由3 个3×3 卷积核堆叠的输入主干、4 个Block、平均池化层、Dropout[21]和全连接层组成。其中,输入主干没有采用如ResNet 输入主干中7×7 的大尺度卷积核,而是采用3 个3×3 卷积核的堆叠卷积层对7×7 卷积层进行替换。3 个堆叠卷积层使用了更多非线性激活函数,相比于只有一个7×7 卷积核的卷积层,网络获得了更多非线性表达。另一方面,在感受野不变的情况下,减少了第一层原始信息的损失,使特征提取更加稳定,有效降低了计算的参数量,使模型具有更好的性能。Dropout 可以使某个神经元的激活值在前向传播过程中以一定概率停止工作,从而不会过分依赖于某些局部特征,使模型更具有泛化性。每个Block 由两个轻量化多尺度残差注意力模块构成。

网络的损失函数采用交叉熵损失(Crossentropy loss)函数,公式如下:

式中,N为样本总数,g(xi)为预测的输出值,yi为输入的真实值。

模型参数如表1所示。

2 实验与结果分析

2.1 数据集

本实验采用由AI Challenger 提供的农作物病害公开数据集,其中训练集包含32 768 幅图像,验证集包含4 992幅图像。整个数据集共有10 个物种、27 种病害。按照物种病害种类的严重程度划分,共分为61 类。各类别图片数量统计如图7所示。部分病害叶片示例如图8所示。

Fig.6 Network structure图 6 网络结构

Table 1 Model parameters表1 模型参数

Fig.7 Crop disease image statistical chart图7 农作物病害图像统计

Fig.8 Example of some diseased leaves图8 部分病害叶片示例

为测试模型在真实农业环境下的病害识别性能,采用PlantDoc[22]数据集,该数据集包含13 种植物和17 类病害,共2 598 幅图像。由图9 可以看出,在真实农业环境下,病害图片的背景更复杂,相比于实验室环境下的图片样本能更好地还原实际应用场景。按 8:2 的比例将数据集划分为训练集和测试集。

Fig.9 Comparison of real agricultural environment dataset and experimental dataset图9 真实农业环境数据集与实验数据集对比

2.2 数据预处理

通过图7 发现,44、45 类样本图片数量较少,因此删除第44 类、第45 类。由于数据集图像尺寸大小不一,将图像尺寸归一化为224×224 像素,以便于模型可以更好地训练,并基于此,使用数据增强的方法扩充样本数量,以防止模型过拟合,提高模型的鲁棒性。本文在网络模型训练中使用以下方法:①亮度变化,随机提高亮度或随机降低亮度;②随机翻转,图像可以任何方式从左到右或上下翻转;③对比度变化,随机提高对比度或降低对比度;④随机旋转,以图像为中心顺时针旋转随机角度。图像预处理示例如图10所示。

2.3 实验环境及参数设置

本文的实验环境为Ubuntu18.04 系统,硬件配置为:处理器为Intel Xeon E5-2680 v2,计算机内存为32GB,显卡为 NVIDIA GeForce RTX 2080Ti(11GB 显存),并使用Python 3.8 编程语言,CUDA11.0,基于深度学习框架Py-Toch1.8.0进行模型的实现。

模型训练超参数如下:批大小设置为64,采用Adam 优化算法[23],Dropout rate 设置为0.5,初始学习率为0.001,权重衰减参数为1e-4,采用余弦学习率衰减策略,学习率变化过程最小值为1e-5,迭代轮次为60次。

Fig.10 Image pre-processing example图10 图像预处理示例

2.4 结果分析

2.4.1 消融实验

为验证本文改进方法的有效性,设置4 组消融实验。实验结果如表2 所示,可以看出,改进后的输入主干使模型准确率提升了0.72%,同时并没有对模型参数量有很大影响;在加入轻量化多尺度残差块后,模型准确率提升了1.17%,实验结果表明,多尺度卷积可有效提升模型准确率,同时深度可分离卷积减少了网络参数,网络模型占用的内存大大减小;在多尺度残差块中的各通道加入CBAM注意力机制模块,准确率提升了1.34%,表明该模块可有效减小冗余特征权重,进一步提升网络模型的准确率。虽然加入CBAM 后模型要稍大,但改进后模型的准确率有较大提升,与改进前相比,模型规模约为ResNet50的1/3。

Table 2 Ablation experiment表2 消融实验

2.4.2 不同模型对比实验

为验证MSA-ResNet 网络性能,与其他深度网络模型进行比较,结果如表3所示。

Table 3 Comparison experiments of different models表3 不同模型对比实验

通过表3 可以看出,改进后网络模型的准确率达到89.93%,明显高 于VGG16[24]、InceptionV3[25]、Mobile-NetV2[26]、ResNet50 和DenseNet121[27],准确率分别提升了5.77%、4.12%、4.5%、3.23%和3.75%,表明MSA-ResNet 在病害识别上具有更高的准确率。

采用不同模型对单张病害图像进行多次识别测试,最后取平均识别时间作为实验结果,如表4 所示。从实验结果看,MSA-ResNet 模型大小为30.5MB,远小于除MobileNet V2 外的网络模型,比MobileNet V2 大13.4MB;识别单张病害图像的平均时间为0.935s,优于其他模型,分别比 VGG16、InceptionV3、ResNet50 与 DenseNet121 快0.736s、0.307s、0.363s 和0.342s,仅比MobileNet V2 稍慢。MobileNet V2 得益于其本身架构规模小,但其准确率比MSA-ResNet 低4.5%。

因此,本文提出的MSA-ResNet 模型在识别准确率上有较大提升,同时模型占用空间较小,平均识别时间较短,取得了更好的平衡,体现了模型的优异性能。

2.4.3 真实农业环境数据集对比实验

在真实农业环境的对比实验中,各模型训练集先选用AI Challenger,测试集则选取PlantDoc 中与AI Challenger 有相同病害类别的图片样本。不同模型在PlantDoc 数据集下对比实验结果如表5所示。

Table 5 Comparative experiment results of different models in the PlantDoc dataset表5 不同模型在PlantDoc数据集下对比实验结果

从表5 可以看出,各个网络模型的准确率都很低,其中本文提出的MSA-ResNet 的准确率仅为18.31%,表现最好。将训练集更换为PlantDoc 数据集,整体准确率有较大提升,但相比于实验环境下的数据集,准确率依然很低。由此可知,相比于实验环境下图片样本的单一背景,在真实农业环境下图片的背景更为复杂,从而造成识别准确率低。当网络模型在AI Challenger 数据集上训练完成后,将其作为预训练权重,再采用PlantDoc 数据集进行训练,整体准确率得到大幅提升。MSA-ResNet 的准确率达到52.83%,性能表现最优,表明相比于其他模型,本文模型在真实环境下更具有实用性。

将采用AI Challenger 与真实农业环境下PlantDoc 数据集的模型表现进行对比,结果如表6所示。

Table 6 Model performance on different datasets表6 不同数据集下的模型性能表现

由表6 可以看出,模型大小和对单张图像的识别时间都相同,但因为两个数据集的图像样本背景不同,所以在准确率上相差较大。两个数据集的测试集在模型上的准确率曲线如图11所示。

Fig.11 Accuracy curves of different datasets图11 不同数据集准确率曲线

观察图11 可以发现,得益于PlantDoc 数据集训练时采用预训练权重策略,因此相较于AI Challenger 数据集,其准确率能更快达到峰值,大约在第45 次迭代轮次达到峰值,而AI Challenger 数据集约在第58 次迭代轮次才达到峰值。但AI Challenger 数据集的准确率曲线波动幅度小,更为平缓,这是因其样本数量多,且病害特征在图像中较为明显,因而易于训练。而真实农业环境下的PlantDoc 数据集样本量比AI Challenger 数据集要少得多,并且其样本背景复杂,病害特征不明显,不利于模型训练,所以其准确率曲线波动相对较大。

3 结语

为了提高病害识别率,同时实现网络的轻量化,本文提出一种基于多尺度注意力残差网络MSA-ResNet 的农作物叶片病害识别方法。通过多尺度卷积核代替单一尺度卷积核,拓宽了网络宽度,并提取农作物叶片病害不同尺度的细节特征信息。同时,通过使用多个小卷积核的叠加代替大卷积核,深度可分离卷积代替部分标准卷积,减少了网络训练参数,使网络模型更加轻量化。此外,采用注意力机制模块,让网络在训练中更加关注有效特征,提升网络模型的鲁棒性。本文模型在农作物病害数据集AI Challenger 上最高达到89.93%的准确率,且模型大小仅为30.5MB。在真实环境的PlantDoc 数据集下,本文模型的性能表现最优,准确率达到52.83%。实验结果表明,与其他卷积神经网络模型相比,本文构建的农作物病害识别网络模型在准确分类农作物病害方面效果提升较为明显,具有较强的泛化性。

由于本文采用的自然环境数据集样本量较少,且种类涵盖范围有限,无法包含各个种类的农作物病害,因此在下一步研究中,将进一步完善数据集,通过实地拍摄、网络搜集等方法扩大数据集规模,提升数据集质量。同时,本文模型尚有不足之处,仍具有改进空间,后续将继续研究缩减网络模型大小及加快识别速度的方法,进一步提升模型性能,并且将网络模型部署于移动端和嵌入式设备中,以实现对农作物病害的实时识别。

猜你喜欢
残差尺度注意力
基于双向GRU与残差拟合的车辆跟驰建模
让注意力“飞”回来
基于残差学习的自适应无人机目标跟踪算法
财产的五大尺度和五重应对
基于递归残差网络的图像超分辨率重建
“扬眼”APP:让注意力“变现”
宇宙的尺度
平稳自相关过程的残差累积和控制图
9
室外雕塑的尺度