一种基于深度学习的分割植物病害叶片方法
2023-12-14傅悦李兴春
傅悦,李兴春
(五邑大学 智能制造学部,广东 江门 529020)
随着我国农作物种植数量和产量不断突破新高,仅凭人力和工人经验来诊断植物是否患病是一项极耗时间和劳力的工作,如何准确高效地识别并分割农作物叶片病害成为亟待解决的问题.近年来,深度学习技术逐渐成熟,图像神经网络模型利用多个大小不同的卷积核对输入图像进行卷积操作来提取图像特征信息[1-2],可以有效完成图像分类任务,如VGG[2]和ResNet[3]等模型.同时,具有图像语义分割的神经网络模型也得到了迅速发展,如FCN[4]和Unet[5]网络.然而,神经网络模型识别准确率越来越高的同时也变得越来越臃肿,占用大量内存且运算时间较长.为了克服这些弊端,轻量级网络SqueezeNet[6]、MobileNet[7]等先后出现.上述模型在一定程度上满足了图像处理的要求,但是仍存在通道与通道之间的特征提取效果不佳等问题[8].
为了改善和提高现有网络模型的性能,本文提出了一种基于深度学习技术的分割植物叶片病害的方法,通过优化卷积效率[9],以满足现实植物病害的诊断的工作需求.
1 深度过参数化卷积
传统卷积层是神经网络的基本组成部分,其中卷积核是一个移动的矩形窗口,通过在目标图片上滑动并进行对应位置上的相乘相加操作最终得到图片的语义特征信息.在卷积神经网络(CNN)中常用的方式是通过堆叠多个大小不同的卷积核来获取更深层次的信息.通常而言,通过在网络中添加线性层和非线性层来增加网络深度可以提高网络的表达能力,提升网络性能.但是使用更深层次的网络结构往往会增加神经节点的计算量.为了让传统卷积层获取更多的信息,本文通过在一个传统卷积层中添加额外的深度卷积操作来增加卷积层的学习参数,其中每个输入通道都用不同的二维核进行卷积.两个卷积的组合构成了一种过参数化,称为over-parameterized 卷积层.过参数化的一个明显优势就是过参数化使用的多层复合线性操作在训练阶段之后可以折叠为紧凑的单层形式.在推理阶段时,DO-Conv 可以转化为传统的卷积操作即仅使用单层计算,因此整体网络并不会增加多余的计算量.此外,DO-Conv 不仅可以提升融合模型的性能,还可以加快CNN 的训练速度.
深度过参数化卷积的操作步骤如图1所示.其中M和N为输入向量的空间维度,Cin为输入向量的通道数,Cout为输出的通道数,dmul为深度卷积的深度乘数,符号°代表深度卷积,符号*代表普通卷积.首先,输入特征图P和深度卷积核进项深度卷积操作,生成卷积后的中间变量P′=D°P.其次,对中间变量P′进行常规卷积运算(常规卷积内核W作用于P′),生成最终结果O=W*P′.因此,深度过参数化卷积的输出公式可表示为:O=W* (D°P).
图1 深度过参数化卷积的操作步骤
2 基于DO-Conv 改进的U-net 网络
2.1 U-net 网络及添加注意力
为了获取足够大的感受野,从而更多地获取语义上下文信息[10],理想状态下在CNN 前向传播过程中逐渐下采样,得到下采样后的底层语义信息上的特征位置和全图组织之间的关系.然而,对于形状变化大的小物体,很难降低假阳性的预测.为了提高模型识别的准确性,给网络添加注意力结构是一个行之有效的方法.通过整合注意门(AGs)在一个标准U-net 模型中实现,结构如图2 所示.注意力机制是通过在编码器和解码器之间增加一个跳跃连接和一个注意门来实现的,它可以选择性地调节通过跳跃连接的信息流.注意门是一个学习计算空间注意图的卷积层,它表示特征图中不同空间位置的重要性.然后将注意力图与跳过连接的特征图相乘,有效地允许模型专注于分割任务中最相关的显著特征[11].此外,AGs 在正向传播和反向传播过程中过滤神经元的激活值.来自背景区域的梯度在后向传播时向下加权.这使得较浅层次的模型参数可以根据与给定任务相关的空间区域进行更新.从而让模型关注重点区域,忽略次要的和不相关的信息.
图2 注意力结构图
2.2 基于DO-Conv 改进的特征提取模块
针对CNN 卷积层数增加导致计算量增大的情况,本文设计了一种基于DO-Conv 改进的卷积神经网络,通过引入DO-Conv 替换传统的卷积,可以在不增加网络层数的情况下提升网络的特征提取能力.就网络卷积过程而言,整个卷积网络由多个 DO-Conv 层及最大池化层构成.此外,Batch Normalization 和Relu 函数被用来加速训练过程,提高网络的泛化能力.该网络通过对样本进行卷积、池化操作进行特征提取.DO-Conv 层是整体网络中的特征提取层,卷积操作之后传递给激活函数,得到的结果是一组特征图.
2.3 DO-Unet
本文网络结构以Attention Unet 网络模型作为基础网络框架[12],引入DO-Conv 层替换传统的卷积,整体网络框架如图3 所示,该模型由编码器和解码器两个主要部分组成.编码器由一系列卷积层和池化层组成,这些层逐渐降低输入图像的空间分辨率,同时增加特征通道的数量.解码器由一系列反卷积层和上采样层组成,这些层逐渐增加特征映射的空间分辨率,同时减少特征通道的数量.具体流程为:1)将输入的图像统一为225 ×225的彩色三通道图像;2)将输入的图像进行深度过参数卷积进行信息提取,把提取到的信息经过最大池化层过滤,从而保留重点信息,并对运算结果单独保存;3)把经过注意力计算的特征图的结果与之前保存的结果进行拼接;4)通过上采样将图像还原为原始大小;5)进行逐像素点判断,输出最终结果.
图3 基于Do-Conv的整体网络结构
3 实验结果分析
3.1 数据集
本次实验数据来自AI Challenger①https://challenger.ai/competition/pdr2018,共有18 159 张农作物叶片图像,图像分辨率均为225 ×225,训练集16 346 张,验证集1 813 张.其中农作物病害叶片9 种(靶斑病,斑枯病,红蜘蛛病,花叶病,黄化曲叶病,菌斑病,霉菌病,晚疫病,早疫病)和健康叶片1 种,合计10 个分类.
确定分割目标区域的标签所使用的第三方工具为labelme,使用锁套工具对叶片病害区域进行标注,最后将工具生成的json 文件统一转化为png 格式,最终效果如表1 所示.
表1 植物叶片和标签
3.2 实验设置
本文使用python 编程语言,利用深度学习框架pytorch 搭建神经网络,软硬件配置如下:Intel Core i7-10700k,NVIDIA 3060ti 显卡,16 Gb 内存,ubuntu18.04LTS 系统,pycharm2021.1.网络训练的学习率为1e-5,模型的batch size 为128,模型使用调参随机梯度下降优化器进行优化.
3.3 评价指标
均交并比(mIoU)计算公式如下:
式中,i为真实值,j为预测值,pij表示将i预测为j的像素个数.分子即为交集,分母即为并集.
Pixel Accuracy(PA)即像素准确率.PA 等于预测正确像素个数除以总预测像素个数.公式为:
3.4 实验结果
为了更直观地表现DO-Conv 卷积层对网络模型分割准确率的优化效果,本文使用了五类模型在相同叶片病害数据集上进行消融实验,实验结果如表2 所示.
表2 各个模型性能比较
由表2 可知,经过DO-Conv 卷积层改进后的网络模型在验证集上的mIoU 指标为0.704(原始U-net 网络在验证集上的mIoU 指标为0.659),同比增长4.5%,模型性能上的提升,验证了DO-Conv卷积的有效性.神经网络实际分割效果如图4 所示,第一行为验证集病害叶片原图,第二行中白色阴影部分为被标记出来的叶片病害的区域.
图4 神经网络分割效果图
如图5 所示,在训练过程中使用DO-Conv 卷积层的网络的准确率上升速度更快,且明显高于使用传统卷积层Conv 的准确率曲线,因此,使用DO-Conv层不仅可以提高叶片病害识别的准确率,还可以加快神经网络的训练.
图5 模型测试准确率与训练次数关系
4 结论
本文提出了一种基于DO-Conv 改进的网络模型,该方法改进了传统图像分割模型,加强了高层和底层特征抽取的正确性,同时模型的运算速度和准确率均有所提高.将该方法应用于采集到的已有的农作物叶片病害数据集上,结果表明,该方法精确度可以达到92.16%,分割重合率可以达到70.4%.通过与以往深度学习网络模型进行比较,该模型的性能得到了一定程度的提升,说明了文中提出的算法是可行的,将该算法运用到实际生活中可以提高农作物叶片检测和识别病害区域的效率和准确率,对农作物病虫害防治工作有一定积极作用.
实验有待提高之处有3 个方面:1)数据集植物叶片病害种类较少,且病害种类均为单一且典型性病害,叶片病害种类的增加势必会带来新的挑战;2)数据集标签是人为标注,其中难免会有误差,从而造成精度损失;3)网络模型仍有改进的余地,分割效果有待进一步提高.