APP下载

基于PSA-YOLO网络的苹果叶片病斑检测

2022-09-14晁晓菲池敬柯张继伟王孟杰

农业机械学报 2022年8期
关键词:精确度主干病斑

晁晓菲 池敬柯 张继伟 王孟杰 陈 尧 刘 斌

(1.西北农林科技大学信息工程学院, 陕西杨凌 712100;2.西北农林科技大学水利与建筑工程学院, 陕西杨凌 712100;3.西北农林科技大学机械与电子工程学院, 陕西杨凌 712100)

0 引言

在农业自动化生产的最新进展中,深度学习常与物联网技术和无人驾驶飞行器相结合用于开发智能农业系统[1]。深度卷积神经网络(Deep convolutional neural network,DCNN)[2]与自动化机械等设备相结合,实现自动、高效的作物病害识别和检测,为作物病害的预防和识别提供更为高效且准确的技术支持[3]。目前,国内外对DCNN在农业上的应用研究包括但不限于作物病害分类[4-6]、作物与病斑分割[7-8]、作物及其病害识别与检测[9-10]等。

基于深度学习的植物病害目标检测算法主要以YOLO(You only look once)系列为核心的单阶段算法以及以RCNN(Region-CNN)为核心的双阶段算法为主[11-21]。文献[15-18]中的研究主要是替换或改良YOLO网络中的主干网络从而提高算法的检测性能,但改进后的网络仍存在对病斑区域关注程度不足、对深层特征中所包含语义信息的利用不足等缺点,影响病斑检测性能。因此在对作物病斑检测中,需要充分考虑并利用这些因素来提升YOLO网络的性能。此外,还应对YOLO网络做必要的轻量化处理以满足检测的实时性及在移动端部署时的要求。

为解决上述问题,本文以YOLOv4目标检测网络为基础,针对苹果叶片的病斑检测任务,以提升网络对苹果叶片病斑检测的精确度和速度为目标,搭建具有检测准确率高、检测速度快、小目标检出率高等特点的PSA(金字塔压缩注意力)-YOLO目标检测网络。

1 数据集构建

1.1 苹果病害叶片图像采集

实验所用苹果叶片病害数据集由人工采集,包含斑点落叶病、褐斑病、灰斑病和锈病等4种苹果叶片病害图像,其中苹果叶片斑点落叶病的图像为556幅,褐斑病图像为493幅,灰斑病图像为404幅,锈病图像为429幅,共1 892幅原始图像(JPEG格式)。图像均采用智能手机拍摄,如图1所示。大多数为自然光下田间直接采集的具有复杂背景的图像,少部分为单纯实验室背景的图像,通过缩放、填充、裁剪等操作将原始图像尺寸统一规整为256像素×256像素。从图1中可以看出苹果叶片病害图像有叶片病斑小、病斑相似度高等特点,这给病斑特征的提取及病斑的精准检测带来了一定难度。

图1 苹果患病叶片数据集图例Fig.1 Examples of apple diseased leaves dataset

1.2 数据增强与数据集划分

本文在训练前将获取的全部图像按照8∶1∶1的比例随机划分训练集、验证集与测试集。采用Mosaic方法[14]对训练集进行数据增强,如图2所示。这种数据增强方法的主要过程为,在训练集中随机选取4幅图像,并对所选的图像进行随机翻转,最终将这4幅图像拼接成1幅图像。在叶片训练数据有限且没有增加训练集图像数量的前提下,使每幅图像包含4幅不同图像的信息,能提高目标检测网络的泛化能力。

图2 Mosaic数据增强后的部分训练集图像Fig.2 Images with Mosaic augmentation in training set

2 PSA-YOLO检测算法

2.1 PSA-YOLO网络结构

本文基于YOLOv4目标检测网络进行改进,提出PSA-YOLO网络,如图3(图中CBM表示卷积-批归一化-Mish激活函数模块,BN表示批归一化)所示。首先,在CSPDarknet53主干网络中添加了Focus结构[22]和PSA机制[23],并按照“1-1-4-4-2”的型式堆叠残差块,精简网络层数。其次,将压缩合并(Squeeze and concat,SPC)模块与空间金字塔池化(Spatial pyramid pooling,SPP)[24]模块融合为空间金字塔卷积池化模块(Spatial pyramid convolution and pooling,SPCP)替代了原有的SPP模块。最后,采取K-means聚类方法和α-CIoU损失函数对训练图像进行维度分析和边界框回归,检测头部分保持不变。这些部分共同构成了PSA-YOLO网络的基本结构。

图3 PSA-YOLO结构Fig.3 Structure of PSA-YOLO

2.2 PSA-CSPDarknet特征提取网络

为使含有重要信息的通道在网络前向传播初期获得更大程度的关注,充分提取苹果叶片病斑边缘纹理底层特征提升检测的精确度,PSA-CSPDarknet网络只保留CSPDarknet53网络CSP1-1层中的残差块并在残差块前增加Focus结构和PSA模块,PSA-CSPDarknet网络结构如图4b所示。

图4 原CSP 1-1结构和改进后的结构Fig.4 Structure of original CSP 1-1 and improved structure

Focus结构在YOLOv5[22]目标检测网络中已经得到运用,代替了主干网络第一次下采样,在COCO数据集中展示了良好的检测性能。其通过张量切片操作将输入图像切分为4个相似的特征图,然后将4个特征图在通道维度上融合使空间特征在无信息损失的情况下转化为通道特征,以此来代替原网络中的第一次下采样。

PSA模块分为4部分,如图5(图中k表示卷积核尺寸,G为卷积核分组大小,FC表示全连接层)所示。首先,通过SPC模块有效地提取并整合输入特征图不同尺度的空间信息。SPC模块对输入特征图的空间维度用3、5、7、9共4种尺寸的卷积核进行分组卷积,每种尺寸卷积核所分组大小分别为2、4、8、16,来实现对特征图的分组卷积与通道压缩。然后将用SPC模块处理后的特征图使用SEWeight模块[25]学习权重,统筹局部和全局注意力,根据特征通道对分类任务的重要程度分配不同权重。Softmax将包含通道的权重归一化。通过将归一化的权重与SPC模块处理后的特征图相乘实现了注意力权重与通道之间的交互,使得特征图中对病斑检测更重要的通道分配到更高权重。

图5 金字塔压缩注意力机制结构Fig.5 Structure of PSA mechanism

为了均衡主干网络的速度和精度,以融合Focus结构和PSA模块后的CSPDarknet53为基础,重新调整残差块的数量排布,以精简网络层数,降低网络参数和计算量。分别构建了3个模型,PSA-CSPDarknet-1、PSA-CSPDarknet-2、PSA-CSPDarknet-3。其中,PSA-CSPDarknet-1将CSPDarknet53网络CSP层中残差块的数量减半,设置为“1-1-4-4-2”,受文献[26]中ResNet-18、ResNet-34网络结构启发,将PSA-CSPDarknet-2、PSA-CSPDarknet-3残差排列分别设置为“1-2-2-2-2”和“1-3-4-6-3”。

2.3 空间金字塔卷积池化模块

为进一步提取深层主干网络中空间维度的多尺度语义信息,搭建了空间金字塔卷积池化模块以替代原有空间金字塔池化模块。YOLOv4中颈部主要包含两部分,即空间金字塔池化和路径聚合网络(Path aggregation network,PANet)[27]。空间金字塔池化是一种特殊池化方法,采用步长为1、卷积核尺寸为5×5、9×9和13×13的最大池化,其与主干网络最深一层的特征图紧密集成,扩大感受野并整合多尺度空间信息。PSA-YOLO目标检测网络中,主干网络提取局部纹理和图案信息,以构建后续层所需的语义信息。然而,随着网络深度的增加,层之间的互连变得更加复杂,网络的宽度也会变得更加庞大,尤其在通过SPP模块后卷积核数量达到2 048,增加了网络的参数量和计算量。在SPP模块之前插入了SPC模块,用分组多尺度卷积后再压缩的方法使进入SPP模块的卷积核数减少一半,在加强对多尺度空间信息提取的同时,对网络计算量进行了进一步平衡。如图6所示,将SPC模块添加到SPP模块之前,将通过SPP模块后的通道数压缩为1 024,搭建起SPCP模块。在基本不影响网络中数据传播速度的前提下,提高了网络对局部特征与全局特征信息的利用效率。路径聚合网络中使用了自下而上的路径增强,缩短了多尺度特征金字塔图的高低融合路径,融合来自PSA-CSPDarknet-1中CSP4层、CSP2层和经SPCP模块输出的3种尺度的特征图信息,使较浅网络(CSP4层、CSP2层)的特征信息得到有效利用。

图6 空间金字塔卷积池化模块结构Fig.6 Structure of SPCP module

2.4 边界框损失函数

在目标检测算法的边界框回归中,很多常用的边界框损失函数都基于IoU损失演化而来,例如Generalized IoU(GIoU)[28]、Distance IoU(DIoU)和Complete IoU(CIoU)[29]。α-IoU系列损失[30]应用幂变换来概括上述基于IoU的损失。当出现IoU值低的噪声框时,α-IoU损失会自适应地提高边界框回归损失值,使在训练带有争议的预测框时,边界框损失的降低得到抑制,避免过拟合现象发生。相反,当出现IoU值高的预测框时,α-IoU损失会相对噪声框获得更低的边界框损失,进而使得网络能预测更多高IoU对象,实现在高IoU阈值的目标检测平均精度上升。在以上两种因素同时作用下,会最终使网络针对高IoU阈值的目标检测性能得到提高。

3 实验与结果分析

3.1 实验环境和评价指标

3.1.1硬件条件和超参数设置

实验环境配置参数如下:操作系统为Ubuntu 16.04 LTS,中央处理器为Intel Xeon E5-2620 v4,图形处理器为NVIDIA GTX TITAN V,显存为12 GB。训练使用PyTorch 1.2深度学习框架。

3.1.2评价指标

机器视觉国际会议中常用COCO AP(Average precise)或AR(Average recall)作为目标识别的评价标准。本文采用COCO AP@[0.5∶0.05∶0.95]作为苹果叶片病害检测准确率评价指标来综合评估模型的检测性能,即分别在IoU阈值设置以0.05的步距从0.5开始遍历至0.95,取这些阈值条件下评估所得到的平均准确率的均值。

根据检测器的IoU阈值不同,则对应召回率所对应的检测精度不同,得到不同阈值下的AP,例如当IoU阈值等于0.5时对应的AP值为AP50。当被检测的物体覆盖面积小于32像素×32像素时,其被视作小目标,对应的指标被称为APS。当被检测的物体覆盖面积大于96像素×96像素时,其被视作大目标,对应的指标被称为APL。被检测的物体面积介于两者之间,则为中等大小,其指标被称为APM。

3.2 网络训练

在训练过程中为了扩充数据集和保证损失值的稳定下降,PSA-YOLO使用了学习率的余弦退火衰减策略、边界框的非极大值抑制等YOLOv4原有的训练策略,并使用二元交叉熵损失作为类别置信度损失函数。还将数学特征更加平滑的Mish激活函数应用在整个网络中以增强目标检测器的准确性和泛化性能。批大小(Batch size)采用16,采用余弦退火衰减策略更新学习率,学习率初始值为1.0×10-4,最小值为1.0×10-5,每20轮为一个衰减周期。α-CIoU损失中α的取值为3。总训练轮数为200。

3.3 主干网络的对比实验

为实现主干网络目标检测精度和检测速度的均衡提升,以获得更高性能的目标检测网络,在原主干网络CSPDarknet53的基础上进行了模块添加实验和网络轻量化实验,以此证明不同的改进对网络性能的影响,最终比较得出最优的主干网络。实验按照2.2节所描述的方法分别在CSPDarknet53网络CSP1-1层中加入Focus结构、PSA模块,以及将主干网络的残差块分别按照“1-2-2-2-2”、“1-1-4-4-2”、“1-3-4-6-3”型式进行堆叠。最后,将不同结构的主干网络结构带入YOLOv4网络中代替原有的CSPDarknet53主干网络进行性能比较。

如表1所示,Focus结构和PSA模块的加入,使CSPDarknet53网络在无参数量提升的情况下,AP提升2.4个百分点。同时注意到,Focus结构和PSA模块的加入使网络APS提升2.9个百分点,这说明Focus结构和PSA模块的加入有利于主干网络对苹果叶片病斑特征的提取,尤其是小型病斑特征的提取。

表1 基于CSPDarknet53对主干网络的改进实验结果Tab.1 Result of improved backbone network experiment based on CSPDarknet53

PSA-CSPDarknet-1、PSA-CSPDarknet-2、PSA-CSPDarknet-3网络比加入Focus结构和PSA模块未轻量化的PSA-CSPDarknet-0网络精度都有所下降,说明网络深度的减小会对病斑检测的精确度产生不利影响。但三者的精确度都比最初的CSPDarknet53网络有所提高,这表明Focus结构和PSA模块的加入抵消了因网络深度减小而导致的精确度降低,使网络的性能得到均衡提升。同时PSA-CSPDarknet-1网络与PSA-CSPDarknet-3网络相比,有更小的参数量和更高的检测精度。PSA-CSPDarknet-2网络虽然参数量得到了明显的减小,但检测精确度受网络深度缩减影响较大,检测精确度与PSA-CSPDarknet-1网络相比仍有不足。

综合以上结果,为了使主干网络的检测精确度和速度达到均衡,最终选择PSA-CSPDarknet-1网络作为病斑检测网络的主干网络。相比CSPDarknet53,PSA-CSPDarknet-1的参数量小、浮点运算数少、运算速度快、精度高,其计算量与CSPDarknet53网络相比减少了30.4%、AP提升了1.8个百分点,具有更好的移动端部署的特点,相比表1中所对比的其他主干网络,PSA-CSPDarknet-1能更好地实现对苹果叶片病斑的实时检测。

3.4 主干网络与颈部的组合实验

为探讨SPCP模块的加入对目标检测网络训练精确度和速度的影响,设计以下消融实验。分别采用PSA-CSPDarknet-1与CSPDarknet53两种主干网络与SPP模块及SPCP模块进行组合实验,选出最优组合方式。

由表2可见,PSA-CSPDarknet-1网络与SPP模块及SPCP模块组合的结果都比CSPDarknet53与这两个模块组合的实验结果更为理想,网络参数量和运算量有所下降的同时,使网络的准确率与检测速度得到提升。其中,以PSA-CSPDarknet-1为主干网络,添加SPCP模块后,使网络在计算量没有明显提升的前提下,病斑检测的平均精确度达到48.5%。实验结果表明,当采用PSA-CSPDarknet-1主干网络且颈部中加入SPCP模块时,网络获得最优检测性能,相比于YOLOv4,AP提升2.2个百分点,速度提升13帧/s。

表2 网络颈部对比Tab.2 Ablation study of neck of network

3.5 损失函数对比实验

不同的边界框损失函数能够对网络的检测精度带来不同程度的影响。为了对比α-DIoU、DIoU、α-CIoU等3种边界框损失函数与YOLOv4所采用的CIoU边界框损失函数的性能,分别将这4种边界框损失函数与LeakyReLU及Mish激活函数进行组合实验,选出最好的激活函数与边界框损失函数的组合方案。组合实验结果如表3所示。

表3 边界框损失函数对比Tab.3 Comparisons of bounding box loss functions

实验结果表明,LeakyReLU激活函数与α-CIoU损失相配合获得了最好的检测性能,网络的AP、AP50、AP75指标比原有的CIoU边界框损失都高,这证明了α-IoU系列损失在苹果叶片病斑数据集上能够与改进后的PSA-YOLO网络相互配合提高不同IoU阈值目标的检测精确度。由于Mish激活函数无法有效提升网络的检测精确度,因此本文选用LeakyReLU的激活函数与α-CIoU边界框损失函数以获得更高的病斑检测性能。

3.6 PSA-YOLO网络综合性能对比

根据3.3~3.5节的实验结果,确定了PSA-YOLO的基本结构,主干网络:PSA-CSPDarknet-1网络,颈部:SPCP模块、PAN模块,边界框损失:α-CIoU损失。

为了验证本文所构建的PSA-YOLO网络在目标检测任务中的有效性,选取YOLOv3、YOLOv3-SPP、YOLOv4、YOLOv4-CSP网络,在其他条件和参数设置均保持一致的前提下进行对比实验。模型性能比较结果见表4。测试结果显示,当IoU阈值为0.5时,PSA-YOLO网络检测精确度(AP50)达到88.2%,同时PSA-YOLO网络对病斑检测的COCO AP@[0.5∶0.05∶0.95]为49.8%,两者与其他网络相比都为最高。从网络对于小、中、大型目标的检测平均精确度来看,PSA-YOLO网络的APS、APM、APL相比于其他网络都有明显提高,其中,对于小目标的检测精确度提升最大,APS比YOLOv4网络提升了3.9个百分点。综上所述,本文所构建的PSA-YOLO目标检测网络具有比YOLOv4更高的检测准确率和更快的检测速度。尤其在小目标的检测方面,能够胜任具有较多小目标的苹果叶片病斑检测任务。同时,从模型对单个图像的平均处理时长来看,PSA-YOLO检测速度最快,在单张NVIDIA TITAN V显卡的算力支持下,对于单幅图像的预测时间仅为0.015 s,满足病斑检测过程中对实时性的要求。

表4 苹果叶片病斑检测任务网络综合性能对比Tab.4 Comprehensive performance comparison for apple leaf lesion detection networks

图7(图中紫框为叶片,绿框为斑点落叶病,黄框为灰斑病,红框为褐斑病,蓝框为锈病)展示了PSA-YOLO网络与YOLOv4网络对苹果叶片病斑的预测结果,其中第1列和第2列图像展示了PSA-YOLO网络对苹果叶片锈病和褐斑病病斑的检测结果,由第1列图像可见,PSA-YOLO网络相对于YOLOv4减少了病斑的漏检。第2列所示图像中病斑数真实值为6个,YOLOv4网络检测出4个,PSA-YOLO检测出5个病斑,而中间偏下位置相邻的两个病斑的距离较近,两种网络都未能准确检测,这说明PSA-YOLO网络在对距离较近的目标检测方面仍有待改进。第3列图像说明PSA-YOLO网络能够较好识别在大田复杂背景下对于斑点落叶病的检测,相对于YOLOv4网络减少了对斑点落叶病病斑的漏检和误检,但由于数据集中自然损害的斑点以及非病斑噪声等因素的干扰,PSA-YOLO网络对于极小的病斑依然无法准确检测。第4列和第5列图像展示了两种网络在大田复杂背景和实验室背景下单叶片多病害病斑的识别,结果表明PSA-YOLO网络能够有效减少小型病斑的漏检率,相比于YOLOv4网络预测结果更加准确。

图7 4种不同苹果病害检测结果对比Fig.7 Comparison of four different apple diseases’ detection results

4 结束语

为提升YOLOv4网络的检测精确度和速度,尤其针对小型目标较多的苹果叶片病斑检测任务,本文以YOLOv4网络为基础,在主干网络、颈部、边界框损失函数等方面进行了对比实验。在CSPDarknet53的基础上添加了Focus结构和金字塔压缩注意力机制,并进行了轻量化处理,构建了PSA-CSPDarknet-1主干网络。其次,在颈部中使用了空间金字塔卷积池化模块,同时优选了α-CIoU损失作为目标检测网络的边界框损失函数。最终,搭建出PSA-YOLO网络。在本文构建的苹果叶片病害数据集的病斑检测任务中,当IoU阈值为0.5时,PSA-YOLO网络检测精确度(AP50)达到88.2%,检测平均精确度(COCO AP@[0.5∶0.05∶0.95])达到49.8%,检测速度达到69帧/s,尤其是对于小型病斑的检测性能相对YOLOv4有较为明显提升。因此,本文所提出的PSA-YOLO模型的检测速度快、精度高,能满足在复杂自然环境情况下对苹果树叶片病斑实时检测任务的需要。

猜你喜欢

精确度主干病斑
抓主干,简化简单句
放缩法在递推数列中的再探究
群文阅读:为孩子打好生命底色
套袋对柠檬果实外观品质的影响
数形结合
Ophiognomonia castaneae协同板栗褐缘叶枯病病原菌致病作用的研究
轻松治愈花斑癣
轻松治癒花斑癣
近似数1.8和1.80相同吗
寓美于物理力学主干知识的复习