基于改进YOLOv5s的日光温室黄瓜霜霉病孢子囊检测计数方法*

2023-06-05 01:32李明丁智欢赵靖暄陈思铭李文勇杨信廷
中国农机化学报 2023年5期
关键词:孢子囊霜霉病孢子

李明,丁智欢,赵靖暄,陈思铭,李文勇,杨信廷

(1. 广西大学计算机与电子信息学院,南宁市,530004; 2. 北京市农林科学院信息技术研究中心/国家农业信息化工程技术研究中心/农产品质量安全追溯技术及应用国家工程研究中心/中国气象局—农业农村部都市农业气象服务中心,北京市,100097)

0 引言

黄瓜霜霉病由古巴假霜霉菌(Pseudoperonosporacubensis)侵染引起,是导致黄瓜减产甚至绝收的三大病害之一[1-2]。在温室内,温暖湿润的环境极利于黄瓜霜霉病孢子囊的繁衍,而病原孢子囊的数量与病害的发生和流行密不可分,所以监测黄瓜霜霉病的孢子囊数量显得尤为重要[3]。传统的孢子囊数量统计主要通过显微镜下的人工目测方法,由于捕捉到的孢子囊数量巨大,导致这种方法操作时间长、速度慢、成本高、人工劳动量大,不能及时地反映病害发生程度,容易造成病情延误。

随着计算机视觉技术的发展,国内外学者在病原的检测方面取得了一定的进展[4-5]。齐龙等[6]利用模糊C均值算法确定阈值的Canny算子对稻瘟病孢子显微图像进行边缘检测,再根据二值化后的孢子图像形态特征进行分类,孢子检测的平均准确率达到98.5%。王震等[7]提出一种基于梯度方向直方图特征(HOG特征)的加性交叉核支持向量机(IKSVM)的稻瘟病孢子检测方法,检测率可达98.2%。上述研究都是基于传统的机器视觉方法,需先对孢子的图像特征进行提取,过程较繁琐。

随着深度学习的不断发展,基于深度学习的孢子检测方法得到关注。Liang等[8]在U-Net网络中增加金字塔池化模块以提取不同池化尺寸的特征,以对小麦白粉病孢子图像进行分割,改进后的U-Net网络分割率达到91.4%。雷雨等[9]基于小麦条锈病夏孢子的形态特征,将原始用于CenterNet训练的目标长宽改进为目标的椭圆框长短轴长度和角度,并使用长短轴映射矩形来计算椭圆框热图的高斯核半径,以减少孢子的漏检率,识别精确率达到98.77%。Zhang等[10]使用Faster R-CNN对扫描电子显微镜下获得的5种不同曲霉孢子进行分类识别,识别准确率达到85%。

目前使用深度学习方法检测卵菌孢子的研究较少,所检测的孢子多为实验室培育,孢子图像采集于干净的载玻片或血细胞计数板;而孢子采集设备多放于野外或温室内,所采集的图像中孢子分布密集、粘连堆叠并有杂质干扰,因此上述方法如果直接用于孢子捕捉设备采集的孢子图像的检测,效果可能不佳。

YOLO系列算法是一种兼顾速度和精度的单阶段检测算法,已被广泛应用于农业相关领域[11-13]。黄少华等[14]使用注意力机制和空间金字塔池化模块改进YOLOv5网络,实现了茶叶杂质的检测。苏斐等[15]使用轻量级网络MobilenetV1替换YOLOv3算法的主干特征提取网络,实现了对绿熟期番茄的实时检测。Shi等[16]削减YOLO算法的通道数和层数,提出了一种轻量级可用于移动设备的芒果检测模型。张兆国等[17]使用MobileNetV3和轻量级注意力机制改进YOLOv4网络,实现了复杂环境下收获过程中马铃薯的检测。上述研究可知,YOLO系列算法具有良好的灵活性,可以改进某些部分以满足特定检测需求。

本文面向孢子捕捉设备的研发需求,针对所采集到的黄瓜霜霉病孢子囊图像中孢子囊密集、粘连、背景复杂的特点,对YOLOv5s网络进行如下改进:加入注意力机制的Ghost卷积替代CSP结构;改进特征融合网络并添加更细粒度的网络;赋予预测头不同权重并用DIoU_NMS代替NMS。通过与YOLOv3、SSD、Faster RCNN和原YOLOv5s网络的对比,评估模型的性能。

1 孢子囊捕捉设备与数据集

1.1 黄瓜霜霉病孢子囊自动捕捉设备

本文使用课题组自研的孢子囊捕捉设备对黄瓜霜霉病孢子囊进行捕捉,试验地点为北京市小汤山国家精准农业研究示范基地。捕捉设备的拍照箱中的显微镜可自动对焦,以对孢子囊进行拍摄,设备自上而下分别是太阳能板、抽风装置、拍照箱,设备及拍照箱内部结构如图1所示。

(a) 孢子囊捕捉设备

(b) 拍照箱

设备工作原理如下:抽风装置以10 L/min的速度将空气抽入设备,并在12 V低压排风扇的工作下将空气送入进风口。进风口正下方有2.5 cm宽的粘性胶带,缠绕在两个滚轮上,由步进电机驱动的滚轮可以在单片机控制下精准滚动25 cm,将进风口处的胶带传输到显微镜下方。该显微镜为研究级数字显微镜,配备了可调节电源以满足拍摄时对稳定光源的需求。单片机设定每隔1 h驱动电机1次,并对传入显微镜下的条带进行拍照,然后通过移动网络传输图片至服务器,实现无线远程监测。

1.2 黄瓜霜霉病孢子囊数据集

本文使用孢子囊捕捉设备采集的黄瓜霜霉病孢子图像有以下特点:密集,霜霉病病原往往在一个较短的时间内大量繁殖,导致图像中的孢子囊分布密集,如图2(a)所示;粘连堆叠,由于数量过多,孢子囊在粘附过程中往往出现粘连、叠加的情况,如图2(b)所示;背景复杂,设备鼓风过程中容易将空气中的灰尘等杂质吸入,或是孢子囊破裂,其中的细胞物质散落,使得图像背景变得复杂,如图2(c)所示。

(a) 密集

(b) 粘连堆叠

(c) 背景复杂

本文选取了服务器中的500张黄瓜霜霉病孢子囊图片,并通过上下反转、水平镜像、亮度变化和随机对比度等数据增强方法将数据集扩充到2 000张。接着,使用LabelImg软件对所有图像进行标注,生成对应的XML文件,形成最终的数据集。最后,将数据集按照8∶2的比例划分为训练集和验证集。

2 YOLOv5算法与改进

2.1 YOLOv5检测算法

YOLOv5检测算法由主干层、颈部层和输出层组成。其中,主干层包含了Focus、CBS(Convolution、Batch Normalization和Silu)、CSP(Cross Stage Partial)[18]和SPP(Spatial Pyramid Pooling)[19]等模块。Focus模块将输入的图像进行切片,并在通道维度上再拼接,以减少运算参数,提高训练速度[20-21]。CBS模块是YOLOv5网络的基本卷积模块,它依次对输入的数据进行卷积、批归一化和激活函数的操作。CSP模块由CBS和残差结构组成,输入的数据首先通过CBS进行特征提取,再与原始数据拼接,以增强网络的特征学习能力。SPP将不同大小的特征图转换成相同大小并进行拼接,提高了网络的感受野,使得网络能够对不同大小的目标进行检测。

颈部层是由FPN网络(Feature Pyramid Network)和PAN网络(Path Aggregation Network)构成的特征融合网络[22-23]。FPN网络通过自顶向下进行上采样,将底层特征图与高层特征图融合,使得底层特征图包含更强的语义信息,提高网络对目标的感知能力。PAN网络则通过自底向上进行下采样,将高层特征图与低层特征图进行融合,使得顶层特征包含更强的位置信息,增强网络的空间分辨率[24-25]。特征融合网络通过将不同层级的网络进行融合,提高了网络对输入数据的表达能力。

输出层为3个不同大小的YOLO预测头,用于接收颈部层的输出特征图并生成YOLOv5算法的输出。

2.2 YOLOv5s算法的改进

YOLOv5s算法不同版本的区别仅在于网络的深度和宽度,本文针对孢子囊自动捕捉设备的研发需要和数据集中孢子囊密集、粘连和背景复杂的特点,对YOLOv5s算法进行如下改进。

1) 使用加入CBAM注意力机制的Ghost模块替代CSP模块,以提高模型计算速度并抑制图片的杂质等背景信息。

2) 修改特征融合网络的连接方式并使用更细粒度的网络,以输出更高分辨率的特征图对密集、粘连的目标孢子囊进行检测。

3) 对不同检测头输出的损失值赋予不同的权重,以引导网络训练,并使用DIoU_NMS非极大值抑制方法代替原来的NMS方法,提高检测性能。

改进后的YOLOv5s模型如图3所示。

图3 改进的YOLOv5s结构

2.2.1 加入CBAM注意力机制的Ghost模块

Ghost卷积是Han等[26]提出的一种轻量化的卷积模块,它能用较少的参数产生丰富的特征图。Ghost卷积将卷积过程分为两部分,首先使用普通卷积来生成部分主干卷积,然后再对主干卷积使用低计算量线性运算以生成Ghost卷积,主干卷积与Ghost卷积拼接即得到完整的输出特征图。Han指出Ghost卷积可以让卷积的理论体积和理论计算量都缩小为原来的1/s(s表示输出特征图数量与线性运算特征图数量的比值)。

注意力机制是一种模仿人类视觉的机制,目的是将计算资源分配给更重要的任务,并解决信息超载的问题。在图像检测任务中引入注意力机制,有利于聚焦于目标区域,抑制背景信息。Woo等[27]提出的CBAM注意力机制是一种轻量级的注意力机制,可以灵活的嵌入任何卷积块,它由通道注意力模块CAM(Channel Attention Module)和空间注意力模块SAM(Spatial Attention Moduel)组成。

CAM首先对输入特征图分别进行最大池化和平均池化,压缩冗余空间,生成两个不同空间上的1×1×C大小的特征图,然后送入一个共享权重的神经网络,对特征图进行先压缩再扩充处理,并保持通道数C不变,接着对两个特征图进行相加操作并送入sigmoid函数生成最终的通道注意力特征图。CAM计算公式如式(1)所示。

(1)

式中:MC——通道注意力特征图;

σ——sigmod函数;

W0、W1——共享感知机;

SAM主要关注特征图像在空间维度上的信息,为了适应不同位置之间的重要性差异,SAM学习每个空间位置的权重,并通过自适应缩放空间来实现特征图像的调整。SAM以CAM的输出为输入,依次通过最大池化层和平均池化层来对信息进行聚合,然后将这个特征图的深度进行扩展,最终通过7×7的标准卷积将其降维为一个通道,生成最终的空间注意力特征图。

SAM计算公式如式(2)所示。

(2)

式中:MS——空间注意力特征图;

f7×7——7×7卷积。

本文使用加入CBAM注意力机制的Ghost卷积模块CAGhost替换原始网络中的CSP模块。如图4所示,CAGhost模块由第一个Ghost模块开始,分为两个分支。其中一个分支经过深度可分离卷积,另一个分支经过深度可分离卷积、CBAM模块和Ghost模块,最后这两个分支的输出进行相加得到输出。CAGhost模块可以在保证产生丰富特征图的同时,减少计算量和参数量。另外,加入的CBAM注意力模块可以帮助抑制背景特征,提高模型的性能。

图4 CAGhost结构

2.2.2 特征融合网络的改进

YOLOv5s算法设计了3个不同层次的特征图的输出,目的是检测复杂数据集中不同大小的目标。但显微镜下拍摄的黄瓜霜霉病孢子囊图像像素低于50×50,为COCO数据集所定义的中小尺寸目标[28]。因此删除了用于大目标物体检测的C3与检测头之间的分支,并额外增加了一个C1分支与检测头进行连接,如图5所示。

图5 改进的特征融合网络

C1输出的特征图来源于浅层的卷积网络,包含丰富的目标位置信息,有利于对小目标物体的检测。YOLO算法将图像分为网格进行目标的预测,而黄瓜霜霉病孢子显微图像存在密集、粘连、体积小的情况,这代表相同网格下需要检测的目标变多,挑战了YOLO算法的极限[29-30],而C1分支的特征图拥有更高的分辨率,能划分为更细粒度的网格,有利于对重叠、粘连目标的检测。

2.2.3 损失函数与极大值抑制方法的改进

如图3所示,改进后的YOLOv5s共有3个不同大小尺度的预测结果:YOLOHead1、YOLOHead2、YOLOHead3,其输出的特征图大小分别为160×160、80×80、40×40,这表示一张图像被等分为160×160、80×80、40×40个预测网格,每个网格都会根据设定的锚框对目标进行检测。据统计,数据集中孢子囊的大小大多为10~50像素,因此增大YOLOHead1和YOLOHead2的损失权重,能够引导网络的训练,提高网络对小目标孢子囊的检测精度,为此赋予3个检测头不同的损失权重,损失函数如式(3)所示。

(3)

式中:Lobj——总损失值;

为避免多个检测结果重叠的情况,目标检测算法往往需要对产生的预测框进行NMS(非极大值抑制)处理,但NMS会将重叠度超过一定阈值的低置信度预测框删除,而在孢子囊数据集中,孢子囊会大量产生密集、堆叠的情况,因此NMS不适合用于本数据集。DIoU(Distance-Intersection over Un-ion)[31]是一种兼顾重叠度和中心点坐标的IoU计算方式,它将两个预测框的中心点距离纳入考虑,并将两个中心点距离远的预测框判断为不同的物体并保留它们,这有利于密集、粘连目标的预测。使用DIoU为评分标准的非极大值抑制DIoU_NMS计算方式如式(4)所示。

(4)

式中:Si——预测框得分;

b、bgt——预测框与真实框的中心点坐标;

ε——设定的阈值;

ρ——欧几里得距离;

c——两预测框中心点距离。

2.3 目标检测评价指标

目标检测的评价指标主要为准确率(Precision,P),召回率(Recall,R),平均准确率(Average Precision,AP),计算公式如下。

(5)

(6)

(7)

式中:TP——检测正确识别孢子囊的数量;

FP——将背景杂质识别为孢子囊的数量;

FN——将孢子囊识别为杂质的数量;

r——当前准确率下的召回率值;

AP——准确率对召回率的积分,AP值越大即可认为算法的检测性能越好。

3 试验结果与分析

3.1 训练环境与结果

本试验在WIN10系统下,采用Pytorch1.7.1为深度学习框架,CUDA版本为11.1.0。GPU为RTX3080,显存为11 G,CPU为Intel Core I7-10700K,主机内存为32 G。本文使用预训练的权重进行迁移学习训练,使用SGD(Stochastic Gradient Descent)优化器对权重进行优化,初始学习率设为0.001,权重衰减系数为0.001,动量因子为0.937,批大小为8,共迭代200轮。

训练结果如图6所示,在前15次迭代中,模型的损失值快速下降,在约50次迭代后模型损失值趋于稳定,并最终收敛于0.097附近,证明模型训练结束并达到较优的训练结果。与原始YOLOv5s相比,改进后的YOLOv5s算法收敛速度更快且损失值更低。

图6 训练结果

3.2 检测试验对比

改进前与改进后的YOLOv5s算法检测结果对比如图7所示。由图7可以看出,对于密集区域的9个目标孢子囊检测,原始的YOLOv5s漏检了其中的2个,而改进后的YOLOv5s算法检测出了所有目标;对于粘连区域,原始的YOLOv5s算法将粘连的2个孢子囊错误地检测为1个或漏检,改进后的YOLOv5s算法则检测出了粘连的目标;对于背景复杂区域,原始的YOLOv5s算法将2个形状与孢子囊相似的黑色杂质错误地检测为目标,而改进后的YOLOv5s算法则没有出现这种情况。

图7 密集、粘连和背景复杂区域检测结果对比

整张图片的检测结果对比如图8所示。图片中孢子囊的数量为534,YOLOv5s检测出了346个孢子囊,改进后的YOLOv5s检测出了484个孢子囊。原始的YOLOv5s算法漏检很大一部分孢子囊,漏检的孢子囊大部分处于密集、粘连和图像模糊处。改进后的YOLOv5s算法拥有更细粒度的检测网格和更好的特征提取能力,对于密集、粘连和低像素区域的孢子囊仍能有较好的检测效果,从而能高效地检测出目标。

(a) YOLOv5s

(b) 改进的YOLOv5s

3.3 消融试验

为了验证改进策略的有效性,通过控制变量法定量地进行对比研究,结果如表1所示。

表1 消融试验结果Tab. 1 Results of ablation experiments

由表1可知,CAGhost卷积使网络精准率提高了0.32%,召回率提高了2.67%,平均精度提高了1.41%,速率提高了10.4帧/s,这表明Ghost卷积在产生丰富特征的同时降低了模型的参数和计算量,CBAM注意力模块有助于抑制背景,提取关键信息;特征融合网络的改进对精度的提升最多,在CAGhost的基础上,使网络精准率提高了0.69%,召回率提高了2.82%,平均精度提高了2.95%,这表明特征融合网络连接方式的修改和细粒度的网格对小目标检测的提升最大,但因为浅层的网络卷积核数量较多,也增加了一定的计算量,使得速度有所下降;loss函数的改进使平均精度提升了0.52%。以上的消融试验证明了本文改进策略的有效性。

3.4 不同检测网络对比

本文选用Faster RCNN、YOLOv3、SSD、YOLOv5s网络与改进的YOLOv5s网络进行对比,结果如表2所示。由表2可以看出,二阶段网络Faster RCNN在检测精度上表现最佳,但其检测速度远远低于一阶段网络,无法应用于嵌入式设备。在其他3种一阶段网络中,YOLOv3算法的检测精度略高于SSD算法,但其检测速率低于SSD算法。YOLOv5s算法是YOLOv3算法的改进版,其检测精度和FPS分别达到86.3%和58.3帧/s,检测精度与速度均优于YOLOv3算法,取得了良好的检测性能。本文提出的改进的YOLOv5s算法检测精度和FPS分别达到91.18%和65.4帧/s,比原始的YOLOv5s算法高4.88%和7.1帧/s,同时也是一阶段网络中检测精度和速度最高的。

4 结论

1) 针对孢子囊捕捉设备捕捉的黄瓜霜霉病孢子囊图像存在的密集、粘连和背景复杂的问题,提出了一种改进的YOLOv5s算法,改进方法如下:加入CBAM注意力机制的Ghost卷积替代CSP结构,在保证网络提取能力的同时,提高了速度;改进了特征融合网络,使用更细粒度的网格对密集、粘连的小目标进行检测;改进了损失函数,对不同的输出特征图赋予不同权重,并使用DIoU_NMS替代NMS。

2) 改进后的YOLOv5s检测精度和FPS分别为91.18%和65.4帧/s,比原始的YOLOv5s算法高4.88%和7.1帧/s。改进后的YOLOv5s算法能准确检测出密集、粘连和背景复杂区域的孢子,检测效果明显优于原始的YOLOv5s算法。与常见的一阶段检测算法相比,本文所提出的算法取得了良好的检测精度和检测速度。相较于Faster RCNN二阶段检测算法,本文的算法的检测精度略低,但是检测速度远高于Faster RCNN。

猜你喜欢
孢子囊霜霉病孢子
不用药 两招搞定黄瓜霜霉病
不结球白菜霜霉病菌株生物学特性及致病力研究
多种杀菌剂对蚕豆霜霉病田间防治效果比较
蕨类植物孢子囊的结构、功能和演化*
黄瓜霜霉病发病症状及其防治技术
温湿度与光照对葡萄霜霉病菌孢子囊萌发及存活的影响
鲫鱼黏孢子虫病的诊断与防治
制作孢子印
无所不在的小孢子
中华水韭孢子囊发育研究