APP下载

基于改进YOLOv4的葡萄叶片病害检测

2022-11-02雷建云叶莎夏梦郑禄邹金林

关键词:尺度注意力卷积

雷建云,叶莎,夏梦,郑禄,邹金林

(中南民族大学 计算机科学学院&湖北省制造企业智能管理工程技术研究中心,武汉 430074)

我国是世界最大的鲜食葡萄生产国和消费国.葡萄在生长过程中,容易受到气候和环境等因素的影响,在果实、茎、叶片等部位出现各种病害,从而影响葡萄的正常生长,导致葡萄的品质和产量下降.传统的凭借经验和病理知识的人工确诊方式,周期长且耗费人力[1].近年来,研究人员开始使用计算机视觉技术对植物病虫害进行精准且高效的检测[2-3],为快速准确识别葡萄病害提供了新的解决思路,同时对于葡萄病害防治、监测、自动喷药等后续工作具有重要研究意义.

植物病害研究主要分为传统人工特征提取和深度学习两种方法.魏丽冉等[4]首先对病害叶片进行预处理,然后使用Lab彩色空间模型进行叶片分割并提取特征,最后使用基于核函数的支持向量机多分类方法对4种病害进行检测,最高识别准确率可达89.50%.JAISAKTHI等[5]使用全局阈值法提取葡萄叶片病害部位,然后通过支持向量机对葡萄叶片图像进行分类,在测试图像上获得93.04%的准确率.以上传统方法需要人工进行病害特征的提取,存在效率低、抗干扰能力弱、普适性差等问题,导致实际农业生产中推广严重受限.随着深度学习技术的发展,卷积神经网络取代传统人工特征提取的方式来进行特征提取,具有更强大的特征表达能力,对植物病害识别的精度和效率都有显著提升.THET等[6]将VGG16网络[7]中的最后两个全连接层改为全局平均池化层,提高VGG16对葡萄叶片病害的分类精度到98.40%.刘阗宇等[8]首先用多角度建议区域Faster-RCNN[9]检测图像中的葡萄叶片,在此基础上检测叶片区域病害,对6种常见葡萄病害平均mAP为66.47%并极大地缩短检测时间.JIANG等[10]通过引入Inception模块和Rainbow级联在SSD模型[11]中对苹果叶片病害进行检测,在ALDD数据集上检测精度为78.80%.对国内外研究分析发现,基于深度学习的植物病害检测方法比传统人工特征提取方法步骤更加简单并且高效,鲁棒性更好.目前对于植物病害分类的识别率达到一定的成效,但是对于植物病害分类和病斑同时检测效果还有待提升.

为进一步提高葡萄病害识别效果,同时实现对病斑区域的精确定位,本文提出一种以YOLOv4模型[12]为基础的葡萄叶片病害检测模型.该模型首先使用多尺度特征提取网络模块,为后续预测网络获取更丰富的特征信息.同时,针对深层网络具有较强语义信息的特点,引入注意力机制,对图像特征信息进行不同的权重分配,从而有效地提高模型的检测效果.

1 YOLOv4模型

YOLOv4是ALEXEY Bochkovskiy等提出的一种端到端的目标检测算法,其网络结构主要由输入端、主干网络、颈部和头部4个部分组成,具体结构如图1所示.图中Conv表示卷积层,BN表示批量正则化,Concat表示将特征图的通道进行拼接,DownSampling表示下采样操作.图1(b)的CBM模块表示使用批量正则化BN和Mish激活函数的卷积层,图1(c)的CBL模块表示使用批量正则化BN和Leaky Relu激活函数的卷积层.图1(d)的Res_unit模块表示残差结构.图1(e)的CSPn结构表示由n个残差结构组成的跨阶段连接部分,图1(f)的SPP模块表示空间金字塔池化结构.

图1 YOLOv4总体结构Fig.1 YOLOv4 overall structure

YOLOv4输入端图像的大小为608×608,使用Mosaic数据增强和自对抗训练(Self-Adversarial Training,SAT)方式,提升网络的泛化性能.Mosaic数据增强对4张图片进行随机缩放、随机裁剪和随机排布,拼接成一张图片,能够增加样本数,并且减轻GPU压力.自对抗训练也是一种数据增强的方式,它能够增加网络的鲁棒性,其包括两个阶段,第一个阶段中,神经网络更改原始图像;第二阶段中,训练神经网络以正常方式在修改后的图像上执行目标检测任务.

主干网络采用CSPDarknet53取代YOLOv3[13]中的Darknet53结构,CSP模块将基础层的特征映射划分为两部分,再通过跨阶段层次结构合并,能够在轻量化的同时保持准确性、降低计算瓶颈、减低内存成本.同时使用Mish激活函数,稳定网络梯度流,提高性能.

颈部网络采用空间金字塔池化SPP模块和路径聚合网络PANet[14]的结构.SPP模块对特征层进行1×1、5×5、9×9和13×13四种尺度的最大池化操作,使卷积神经网络的输入不受固定大小的限制,增加感受野,有效分离重要的上下文特征,同时不降低网络的运行速度.PANet可以充分利用浅层特征,对不同主干层进行特征融合,进一步提升特征提取能力和检测性能.YOLOv4将原PANet中的特征层的addtion操作,修改为concatenation操作,以提高预测的准确性.

头部网络与YOLOv3保持一致,沿用多尺度预测的方式,输出3个不同大小的Feature Map,实现对大目标、中目标和小目标的检测.YOLOv4使用CIOU损失作为预测框回归回归误差,置信度误差和分类误差采用交叉熵损失,充分考虑边界框宽高比的尺度信息.

2 改进的YOLOv4算法

2.1 多尺度特征提取网络

图像特征提取效果影响目标检测的结果.获取准确的图像特征信息,得到更多图像属性[15],是精确识别目标区域和位置的关键.葡萄叶片病害存在较小的病斑区域,这些小目标的覆盖区域小,其分辨率低,图像模糊,携带的信息少,位置缺少多样性,特征(亮度、边缘信息等)比较浅,表达能力弱[16].为提高主干网络的特征提取能力,本文借鉴了EPSANet[17],引入PSA模块,构建多尺度特征提取网络.原主干网络中的Res unit由一个1×1卷积和一个3×3卷积组成,本文使用PSA模块替换3×3卷积,得到改进的Res unit_PSA模块,形成最终的CSPn_PSA模块,其结构如图2所示.

图2 CSPn_PSA模块Fig.2 CSPn_PSA module

PSA模块主要通过以下4个步骤实现.首先,利用SPC模块对输入通道进行划分,得到每个通道特征图上的空间信息进行多尺度特征提取.其次,利用SEWeight模块提取不同尺度特征图的通道注意力,得到不同通道方向的注意力向量.第三,利用Softmax对多尺度通道注意力向量进行特征重新校准,得到新的多尺度通道交互之后的注意力权重.最后,对重新校准的权重和相应的特征图进行点乘操作,输出得到一个多尺度特征信息注意力加权之后的特征图.其结构如图3所示.

图3 PSA模块Fig.3 PSA module

在PSA模块中实现多尺度特征提取的关键是SPC模块.SPC模块采用多分支的方法提取输入特征图的空间信息,每个支路的输入通道维数为C.在输入维度上获取更加丰富的位置信息的同时能够在多个尺度上进行并行处理.这样就可以得到单一类型内核的特征映射.同时,在金字塔结构中使用多尺度卷积核可以产生不同的空间分辨率和深度.通过压缩输入张量的通道维数,可以有效地提取每个通道特征图上不同尺度的空间信息.最后,每一个不同尺度的特征图Fi拥有相同的通道维度C′,其中C′由输入通道维数C等分为S份.对于每个分支,可以独立学习多尺度空间信息,并以局部方式建立跨通道交互.为了在不增加计算量的情况下处理不同核尺度下的输入张量,将分组卷积应用于卷积核.多尺度内核大小和组大小之间的关系可以用式(1)表述.

式中,K表示卷积核大小,G表示组大小.最后,可以得到多尺度特征图生成函数:

式中,第i个特征核大小ki=2×(i+1)+1.整个多尺度预处理特征图F可以通过拼接的方式得到:

通过从多尺度预处理特征图中提取通道注意力权重信息,得到不同尺度的注意力权重向量.注意力权重向量可以表示为:

式中,Zi是注意力权重.SEWeight模块用于从不同比例的输入特征图中获取注意力权重.通过以上操作,PSA模块可以融合不同尺度的上下文信息,并为高层次特征图提供更好的像素注意力.为了实现注意力信息交互,在不破坏原始通道注意力向量的情况下融合交叉维度向量,整个多尺度通道注意力向量Z可以通过级联方式获得:

式中,⊕是拼接操作符,Zi是Fi来自的注意力值.空间尺度使用软注意力进行跨通道的自适应选择,软分配权重表述为:

Softmax用于获得多尺度通道的重校准权重atti,其中包含所有空间上的位置信息和通道注意力权重.至此,实现了本地和全局通道注意力之间的交互.随后,对特征重校准的通道注意力进行拼接,得到完整的通道注意力向量:

式中,atti表示注意力交互后的多尺度注意力权重.将atti与Fi相乘可得到多尺度通道注意力权重的特征图Yi,计算公式如下:

式中,☉表示通道乘法.使用特征拼接的方式能够完整的维护特征信息,比求和的方式更加有效.因此,使用拼接的方式得到最终的优化输出为:

2.2 颈部注意力机制嵌入

注意力机制通过对信息特征进行相关与不相关的抉择建立动态权重参数,以加强关键信息弱化无用信息,从而加大深度学习算法效率同时也改进了 传 统 深 度 学 习 的 一 些 缺 陷[18].Coordinate Attention[19]是一种灵活高效的注意力机制,不仅能够获取跨通道的信息,还能获取位置信息,在不引入大量计算开销的前提下,帮助模型更加精准地定位和识别感兴趣的目标.CA模块通过坐标信息嵌入和坐标注意力生成两个阶段完成特征信息权重分配,其结构图如图4所示.

图4 CA模块Fig.4 CA module

首先,为了促使注意力模块能够捕捉具有精确位置信息的长程空间交互,坐标信息嵌入阶段将全局池化分解为一对一维特征编码操作.对输入X,先使用尺寸(H,1)和(1,W)的池化核沿着水平坐标方向和竖直坐标方向对每个通道进行编码.因此,高度为h的第c个通道的输出表述如下:

类似,宽度为w的第c个通道的输出表述如下:

上述2种变换分别沿水平和竖直两个空间方向聚合特征,得到一对方向感知的注意力图.这两种变换使得注意力模块沿着一个空间方向捕捉长程依赖,并沿着另一个空间方向保存精确的位置信息,这有助于网络更准确地定位感兴趣的对象.

坐标注意力生成阶段将第一阶段得到的XAvg Pool和YAvg Pool张量进行特征融合操作,并且使用一个共享的1×1卷积进行F1变换操作:

其中,[…]表示沿空间维度的特征融合操作,δ为非线性激活函数,f h∈RC/r×(H+W)为在水平方向和垂直方向进行空间信息编码的中间特征映射.然后沿着空间维度将f分成f h∈RC/r×H和f w=RC/r×W两个独立的张量.最后,利用两个1×1的卷积变换操作Fh和Fw将fh和fw的通道数变为一致:

式中,σ是sigmoid激活函数.通过使用适当的比率r来减少f的通道数,扩展输出gh,gw并作为注意力权重.最后,得到CA模块的输出Y:

在深度神经网络中,卷积层特征具有层次性.浅层卷积层主要提取图像的基本特征,几何信息表征能力强.深层卷积层提取的是图像的高阶特征,有较强的语义信息,适合融入注意力机制进行调整.因此,本文在不显著增加模型参数量和复杂度的原则上,将CA模块添加到YOLOv4的颈部网络中,具体结构如图5所示.

图5 CA模块嵌入颈部网络Fig.5 The CA module is embedded in the neck network

2.3 网络结构设计

本文算法是基于YOLOv4算法之上,经过主干网络和颈部网络优化之后,得到改进的YOLOv4-PSA-CA算 法,结 构 如 图6所 示.将 图 像(608×608)输入到改进的主干网络中,其中CSPn_PSA模块实现多尺度特征提取;随后,将主干网络输出的特征图输入到添加CA模块的颈部网络中,最后进入头部检测器中进行检测,得到最终的输出结果.

图6 YOLOv4-PSA-CA总体结构Fig.6 YOLOv4-PSA-CAoverall structure

3 实验与分析

3.1 数据集

本文所用数据集来源PlantVillage(www.PlantVillage.org)中葡萄叶片的数据集和自建数据集.自建数据集为葡萄果园自拍摄图像,图像采集工作于2021年5月在湖南省益阳市葡萄果园完成.病害图像采集过程中,综合考虑天气、光照强度影响,分别在早、中、晚不同光照强度和不同拍摄角度拍摄图像,共收集叶片霜霉病图像517张.为均衡数据样本,将霜霉病图像扩充至1017张,包括噪声添加、亮度增强等数据增强方法.扩充后数据集共计4656张图像,其中包括霜霉病1017张,黑腐病1180张,轮斑病1383张,褐斑病1076张.4种病害样本如图7所示.

图7 4种病害样本图像Fig.7 Four images of disease samples

3.2 实验环境及参数

本实验模型训练使用硬件平台为Intel(R)Xeon(R)CPU E5-2630 v4@2.20GHz,显卡为NVIDIA GeForce GTX1060.软件使用Ubuntu20.04的操作系统,Python 3.7,Pytorch 1.7.0深度学习框架.模型训练过程中,数据集按照8∶2的比例进行划分,选择Adam优化器对网络参数进行优化,学习率的初始值为0.001,学习动量为0.949,Batchsize设为16,迭代次数500次,采用Mosaic数据增强技巧和Dropblock正则化方式.

3.3 评价指标

本文采用准确率(Precision,P)、召回率(Recall,R)、平均准确率均值(Mean Average Precision,mAP)和浮点计算数(Float point Operations,FLOPs)4项性能指标验证网络的有效性.其中P、R的计算公式为:

式(16)(17)中,TP表示预测正确的正样本数,FP表示预测错误的正样本数,FN表示预测错误的负样本数.

平均准确率均值mAP是指所有类别的平均准确率AP的平均值.计算公式如下.

浮点计算数FLOPs在卷积神经网络中常用来衡量模型的计算复杂度.对于卷积层,其计算公式为:

式中,H表示输入特征图的高度,W表示出入特征图的宽度,Ci表示输入特征图的通道维数,K表示卷积核大小,Co表示输出特征图的通道维数.

对于全连接层,其计算公式为:

式中,I表示输出维数,O表示输出维数.

3.4 实验结果与分析

3.4.1 不同改进策略性能对比

为了验证对算法同时添加PSA模块和CA模块更有利于算法精度的提升,本文设置了一组消融实验,对比分析了4种模型的性能:(1)原YOLOv4模型;(2)仅融合PSA模块的YOLOv4-PSA模型;(3)仅添加CA模块的YOLOv4-CA模型;(4)同时添加PSA模块和CA模块的YOLOv4-PSA-CA模型.在相同实验条件下,在葡萄数据集上训练以上4个模型进行结果比较,相关结果如表1所示.本文提出的YOLOv4-PSA-CA比 原YOLOv4模 型mAP值 提 升4.04%,霜霉病、黑腐病、轮斑病和褐斑病的准确率分别提升5.20%、5.65%、4.14%、6.41%,相对于YOLOv4-PSA模型和YOLOv4-CA模型提升效果更明显.以上4种模型对黑腐病和霜霉病的检测精度均高于轮斑病和褐斑病,主要原因在于黑腐病和霜霉病病斑区域大小形状规则,利于模型的检测.

表1 不同改进策略对性能的影响Tab.1 The impact of different improvement strategies on performance

为验证改进模型在葡萄叶片病害识别上的优势,4种病害各选取一张测试图像进行实验,检测结果如图8所示.根据对比可以发现,图8(a)中原YOLOv4模型对于小病斑检测中存在较多的漏检,并且在病斑密集区域目标框的面积过大,单个病斑的区分度低.图8(b)中YOLOv4-PSA模型和图8(c)中YOLOv4-CA模型比原YOLOv4模型检测效果都有一定提升.图8(c)中YOLOv4-PSA-CA模型在融合PSA模块和CA注意力机制后,对于葡萄叶片病斑检测的漏检率明显降低,并且病斑的区域定位更加精确.同时在自然环境中能够同时对不同叶片的病斑进行检测,图像边缘区域的病斑也有较好的检测效果.

图8 YOLOv4及其改进模型检测效果可视化对比Fig.8 Visual comparison of detection effects of YOLOv4 and its improved model

3.4.2 不同目标检测模型性能对比

为了验证改进后的模型与常用的目标检测模型的效果,分别对Faster-RCNN模型,YOLOv3模型,YOLOv4模型和YOLOv4-PSA-CA模型使用相同的训练参数和数据集进行训练,得到实验结果如表2所示.

表2 不同模型检测结果比较Tab.2 Comparison of detection results of different models

本文提出的YOLOv4-PSA-CA模型进行葡萄叶片病害检测时准确率P和mAP比原YOLOv4模型分别提升了5.35%,4.04%.Faster-RCNN模型中的区域建议网络利用卷积层提取到的特征生成目标候选框,但是这些特征具有深层低分辨率的特点,忽略了目标的细节信息,从而不能较好地生成小目标的候选区域;YOLOv3模型引入特征金字塔网络生成3个不同大小的特征图,来实现多尺度预测,有利于提高对小目标的检测效果,所以YOLOv3整体检测精度高于Faster-RCNN模型.YOLOv4-PSA-CA模型相对于Faster RCNN,YOLOv3模型,在准确率、mAP值等方面,都有不同程度的提升.由于PSA模块引入分组卷积能够减少模型计算量,同时CA模块不会显著增加模型计算量,且YOLOv4-PSA-CA模型中PSA模块远大于CA模块,所以本文提出的模型FLOPs值比YOLOv4模型有所降低.综上所述,本文提出的YOLOv4-PSA-CA模型具有更优秀的性能.

4 结语

本文以葡萄叶片常见的霜霉病、黑腐病、轮斑病、褐斑病4种病害为研究对象,针对病害病斑小、检测效果差的问题,提出了基于改进YOLOv4的葡萄叶片病害检测算法.该算法首先构建了对多尺度金字塔特征提取网络,在原主干网络中引入PSA模块以获取更加丰富的特征信息.其次,将CA模块嵌入颈部网络中,对深层图像特征进行不同权重分配,获取通道信息和位置信息,提高模型的识别效果.本文提出的YOLOv4-PSA-CA算法相比原YOLOv4模型,mAP值提升了4.04%,在自然环境和简单环境中都具有较好的检测效果.葡萄病害不仅发生在叶片部位,还会发生在葡萄茎部和果实等部位,由于本文使用的实验数据有限,因此在今后将扩大图像数据集,建立更加丰富、图像环境更加复杂的葡萄病害数据集.

猜你喜欢

尺度注意力卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
财产的五大尺度和五重应对
如何培养一年级学生的注意力
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
A Beautiful Way Of Looking At Things
宇宙的尺度
9