SMS和双向特征融合的自然背景柑橘黄龙病检测技术
2023-01-05曾伟辉陈亚飞胡根生鲍文霞
曾伟辉 陈亚飞 胡根生 鲍文霞 梁 栋
(1.安徽大学互联网学院,合肥 230039;2.科大国创软件股份有限公司中央研究院,合肥 230088;3.安徽大学农业生态大数据分析与应用技术国家地方联合工程研究中心,合肥 230601)
0 引言
柑橘是世界第一大类水果,是全球最重要的经济作物之一[1]。中国是柑橘生产和消费大国,近年来,我国柑橘产业迅速发展,柑橘的种植面积不断扩大。然而,柑橘黄龙病严重影响柑橘的产量和质量,被称为柑橘癌症。我国19个种植柑橘的省份已有11个省份遭受柑橘黄龙病的危害,受灾面积已超过种植总面积的80%[2]。因此,尽早发现受感染的病树,并采取相应的防治措施对提高柑橘产量十分重要。
柑橘黄龙病的病害特征大多是通过叶片表现出来,传统的柑橘黄龙病诊断依靠有经验的果农观察柑橘叶片进行病害判断,但这项工作不仅耗时耗力,而且容易出现人工误判。随着科学技术的飞速发展,使用新一代信息技术对柑橘黄龙病进行检测,并及时对柑橘的病害做出相应的判断和防治,提高柑橘的产量,是柑橘信息化、科学化种植的必然趋势。
目前,基于卷积神经网络的目标检测模型主要分为One-stage检测模型和Two-stage检测模型。One-stage检测模型主要包括SSD(Single shot multibox detector)[3]、RetinaNet[4]、EfficientDet[5]、YOLO(You only look once)[6]系列等,已被广泛地应用于智慧农业的植物识别、病虫害检测、水果识别等研究中[7-11]。
Two-stage检测模型主要包括Faster RCNN(Faster region with CNN)[12]、RCNN[13]、Cascade RCNN[14]等。Two-stage检测模型相较于One-stage检测模型具有更高的检测精度,因此它在农业方向的应用也十分广泛[15-16]。
在柑橘黄龙病的检测研究方面,已有不少学者进行了相应的研究工作[17-22]。但是直接应用到自然背景下的柑橘黄龙病检测技术仍然存在以下问题:自然场景中拍摄时,图像背景中存在大量的健康叶片、其他病害叶片、杂草等干扰因素,导致上述算法的检测精度不高;图像中经常出现黄龙病叶片被遮挡的现象,导致部分黄龙病叶片形状不规则,这对检测带来了挑战;柑橘黄龙病叶片尺寸变化大,极易出现小尺寸目标漏检的情况。
针对自然背景干扰的问题,本研究使用SMS、镜像翻转和旋转方法对数据集进行增广,同时将全局上下文模块(Global context block,GC-Block)[23]嵌入到骨干网络的后3个卷积层中,实现自然背景下柑橘黄龙病的检测。针对黄龙病叶片形状不规则和尺寸变化大的问题,本研究采用可变形卷积[24]和双向融合的特征金字塔网络(Two-way fusion feature pyramid networks,TFFPN)[25],实现对不规则叶片和小尺寸叶片特征的准确提取。最后,通过实验测试其对柑橘黄龙病检测的效果。
1 研究方法
1.1 数据来源及预处理
本研究数据一部分来源于科大讯飞国创软件股份有限公司举办的柑橘病虫害识别挑战赛提供的数据集,共有683幅柑橘叶片图像,其中428幅为柑橘黄龙病叶片图像,其余为柑橘健康叶片或其他柑橘病害图像,其中其他柑橘病害包括柑橘脂斑病、柑橘溃疡病、柑橘炭疽病和柑橘黑星病;另一部分来源于网络搜索到的100幅柑橘黄龙病叶片图像。由于比赛主办方要求数据集保密,所以本研究展示的实验图像全部来源于网络。最终本研究的数据集原图包含528幅图像(428幅科大讯飞比赛图像+100幅网络图像),按照比例6∶1∶3将数据集划分为训练集、验证集和测试集,其中训练集317幅图像,验证集53幅图像,测试集158幅图像。
由于柑橘病虫害识别挑战赛提供的683幅柑橘叶片图像中,有255幅图像为柑橘健康叶片或者其他柑橘病害图像,为了增加训练过程中检测目标的图像数量和多样性,本研究对其中不含柑橘黄龙病叶片的255幅图像进行了剪切混合拼接处理。剪切混合拼接是将病害图像中的部分柑橘黄龙病叶片剪切下来,再和健康的或其他病害的柑橘叶片图像拼接起来,来增加训练集图像中检测目标的数量和多样性。经过剪切混合拼接后,训练集和验证集的图像分别扩充为536幅和89幅。为了进一步增加训练数据的多样性和数量,本文对训练集和测试集进行了进一步的扩充。增广方式包括镜像翻转、顺时针旋转180°、顺时针旋转90°、顺时针旋转270°,图像增广流程图如图1所示。经过增广后,训练集共有2 680幅图像、验证集共有445幅图像,增广前后训练集、验证集和测试集的图像数量和黄龙病叶片数量如表1所示。本研究使用LabelImg对该数据集进行标注,生成.xml文件,该文件中包含柑橘黄龙病病害叶片在图像中的位置信息。
表1 增广前后的数据集
图1 图像增广流程图
1.2 柑橘黄龙病检测网络
1.2.1改进的Cascade RCNN模型
为了能实现自然背景的柑橘黄龙病准确检测,本研究提出一种改进的Cascade RCNN网络。该网络由3部分组成:骨干网络、双向融合的特征金字塔、级联检测器。改进后的Cascade RCNN结构如图2所示,图像先输入改进后的骨干网络进行特征提取,随后将Conv2输出的特征图和经过GC-Block增强后的特征图一同输入到双向融合的特征金字塔中进行特征图的多尺度融合,最后将融合后的特征图输入到级联检测器中,得到最终的检测结果。
图2 改进的Cascade RCNN结构图
图2中蓝色模块为原网络,橙色模块为改进部分。Conv1~Conv5表示骨干网络ResNetXt101[26]的5个卷积层,其中蓝色卷积层是由标准卷积组成的卷积层,橙色卷积层是由可变形卷积组成的卷积层。C0表示Conv2输出的特征图经1×1卷积后得到的特征图,C1、C2、C3表示Conv3、Conv4、Conv5输出的特征图依次输入到全局上下文模块后再经1×1卷积得到的特征图,C4、C5、C6表示单向融合后的特征图,P1、P2、P3、P4表示双向融合后的特征图。RPN为区域建议网络,ROI Align1、ROI Align2、ROI Align3为3个不同IoU阈值的感兴趣区域对齐(Region of interest align,ROI Align)[27];FC1、FC2、FC3表示3个全连接层;S1、S2和B1、B2分别表示两个阶段的分类分数和候选框;S3和B3分别表示最终的分类分数和边界框。
1.2.2骨干网络
本研究将Cascade RCNN中的骨干网络ResNet101[28]替换为ResNetXt101,ResNetXt101和ResNet101的网络结构图如表2所示,括号内是残差结构,乘号后的数字表示堆叠块数,c表示每组的卷积数。ResNetXt101与ResNet101的本质区别是ResNetXt101采用了通道分组,以Conv2为例,ResNet101是64个1×1的卷积核,而ResNetXt101是32组,每组是4个1×1的卷积核。与ResNet101相比,ResNetXt101的网络结构简明,更加模块化;需要手动调节的超参数少;具有更好的特征提取能力。
表2 ResNet101和ResNetXt101的网络结构
1.2.3可变形卷积
为了减少叶片形状不规则的影响,本研究用可变形卷积代替骨干网络的后3个卷积层中的标准卷积,根据黄龙病叶片的形状自适应改变局部采样点,增强网络对目标几何形变的建模能力。
可变形卷积的基本思想是用带有偏移的采样来代替固定位置采样,并根据学习到的偏移量,来调整可变形卷积核的大小和位置,不同位置卷积核的采样点会根据检测目标的位置和大小自适应调整,从而适应柑橘黄龙病叶片的几何形变。可变形卷积的结构如图3所示,在原始特征图中,先通过一个卷积层来计算特征图的2维偏移场,得到偏移量,然后通过双线性插值算法将带有偏移量的采样点集中到一起,使得输出特征图与输入特征图的空间分辨率一致,再将输出特征图传递给下一网络层,从而实现对形状不规则目标的特征提取。
图3 可变形卷积结构示意图
1.2.4全局上下文模块
为了减小背景对检测结果的干扰,本研究将GC-Block嵌入到骨干网络的Conv3、Conv4、Conv5中,构建有效的长距离依赖,增强骨干网络的全局上下文建模能力。GC-Block结合了非局部模块(Non-local block,NL-Block)[29]和挤压激励模块(Squeeze excitation block,SE-Block)[30]的优点,既具有NL-Block的全局上下文建模能力,又具有SE-Block轻量级的优点。
GC-Block可以抽象为3个步骤:首先通过1×1卷积和Softmax函数获取特征图的注意力权重,再通过矩阵乘法获取全局上下文特征;然后通过1×1卷积进行特征优化,从而捕获通道间的依赖,为了降低优化难度,在1×1卷积后面增加了归一化层(Layer normalization,LN)和线性整流函数(Rectified linear unit,ReLU);最后采用对应元素相加的方法将全局上下文特征聚合到每个位置的特征上,从而实现对原始特征图的增强。GC-Block结构如图4所示,其中H、W分别表示特征图的高和宽,C表示特征图的通道数,C×HW是原始特征图经过线性变换后的二维矩阵,r表示瓶颈比率。
图4 GC-Block结构图
GC-Block定义为
(1)
式中Zi——查询位置输出矩阵
xi——查询位置输入矩阵
i——查询位置索引
j——其他位置索引
xj——其他位置输入矩阵
xm——注意力位置输入矩阵
Wv1、Wv2、Wk——线性变换矩阵
Np——特征图中的位置数
m——注意力位置索引
1.2.5双向融合的特征金字塔
为了解决柑橘黄龙病叶片的小尺寸目标的漏检问题,本研究在Cascade RCNN的基础上,使用TFFPN替换原有的特征金字塔网络(Feature pyramid networks,FPN)[31]。从图5中可以看到,TFFPN与FPN不同,FPN是一个自上而下的单向融合,而TFFPN是先由上而下再由下而上的双向融合。C0表示Conv2输出的特征图经1×1卷积后得到的特征图,C1、C2、C3表示Conv3、Conv4、Conv5输出的特征图依次输入到全局上下文模块后再作1×1卷积得到的特征图,这里1×1卷积的作用是用来改变特征图的通道数。随后,再对C3进行 2倍上采样,来增大C3的分辨率,使其分辨率与C2保持一致,这样深层特征图和浅层特征图就可以通过简单地加法实现融合,得到C4,再通过相同的操作得到特征图C5、C6。然后对单向融合后的特征图作一个步长为2的3×3卷积,来降低P1的分辨率,使其分辨率与C5保持一致,随后对C5进行3×3卷积来消除上采样产生的混叠效应,然后通过简单的加法实现P1与C5的融合,再对融合后的特征图作一个 3×3 卷积得到特征图P2,同理得P3和P4。TFFPN不仅能够丰富每层特征图的位置信息,还能够保留每层特征图的语义信息,增强了模型的多尺度信息融合能力,有利于小尺寸目标的检测。
图5 TFFPN结构图
1.2.6级联检测器
级联检测器是由3个具有不同交并比(Intersection over union,IoU)的ROI Align级联组成,其中ROI Align1、ROI Align2、ROI Align3的IoU阈值是递增的,可以使每一阶段为下一阶段提供更好的正样本,从而逐渐获得更好的检测效果。
级联检测器结构如图6所示,将TFFPN得到的特征图P1、P2、P3、P4一同输入到RPN中,得到候选框,然后将候选框一同输入到ROI Align1中,再将ROI Align1输出的结果输入到全连接层FC1中,得到阶段一的分类分数S1和候选框B1。将特征图和B1一同输入到ROI Align2中,再将ROI Align2输出的结果输入到FC2中,得到阶段二的分类分数S2和候选框B2。最后将特征图和B2一同输入到ROI Align3中,再将ROI Align3输出的结果输入到FC3中,得到最终的分类分数S3和边界框B3。
图6 级联检测器结构示意图
2 结果与分析
2.1 参数设置与评价指标
柑橘黄龙病检测网络用Pytorch框架搭建,模型优化使用随机梯度下降法(Stochastic gradient descent,SGD),初始学习率为0.02,动量为0.9,权重衰减为0.000 1,迭代次数为500。
采用平均精度均值(Mean average precision,mAP)、精确率(Precision,P)、召回率(Recall,R)作为评价指标,mAP越高,说明检测效果越好。
2.2 实验结果分析
选取One-stage的SSD、RetinaNet、YOLO v3、YOLO v5s和Two-stage的Faster RCNN、Cascade RCNN与本研究方法进行对比实验。从 表3 可以看出,图像没有经过增广处理时,本文方法的mAP、P和R均高于其它方法,mAP达82.5%,与RetinaNet、YOLO v5s和Cascade RCNN(ResNetXt101)相比,mAP分别提高22.1、5.9、5.4个百分点。
为了降低柑橘其他病害叶片和健康叶片对检测结果的影响,本研究通过SMS、镜像翻转和旋转的方法对训练集和验证集进行了增广,增加了训练集和验证集图像中背景目标的数量。从表3可以看出,图像经过增广后,不同检测方法的检测精度都有所提升。
表3 不同检测算法的对比结果
从表3可以看出,本文方法mAP达到84.8%,高于其他方法。但随着可变形卷积、GC-Block和TFFPN的加入,本文方法的模型大小也略大于其他方法,达到787.4 MB,本文方法的平均测试时间相应的有所增加。本文方法的平均测试时间为0.485 s,虽然略高于其他目标检测方法,但与其他检测方法的平均测试时间仍处于同一数量级。相较表3中其他对比方法,本文方法在保证高检测精度的同时,兼顾了检测的实时性,具有较好的性能。
为了说明本文方法适用于自然背景下的柑橘黄龙病检测,本研究根据图像背景复杂度的不同,将测试集158幅图像划分成5个级别。1级:仅含一片柑橘黄龙病叶片,共17幅;2级:含有2片柑橘黄龙病叶片,共23幅;3级:含有3片柑橘黄龙病叶片,共18幅;4级:含有3片柑橘黄龙病叶片,并存在遮挡现象,共35幅;5级:含有3片以上的柑橘黄龙病叶片,并存在遮挡现象,共65幅。不同级别的mAP如图7所示。从图7可以看出,当图像背景的复杂度为5级时,本文方法相较于Cascade RCNN,mAP提高5.62个百分点。
图7 Cascade RCNN和本文方法的mAP对比
2.3 消融实验
消融实验结果如表4所示,在骨干网络为ResNetXt101的前提下,本研究利用可变形卷积增大有效感受野,使用GC-Block进行特征增强,并使用TFFPN来减少小尺寸目标的漏检,提高了模型的召回率、精确率和平均精度均值。
表4 消融实验结果
由2.2节和表3可知,对训练集和验证集进行增广后,增加了训练样本的多样性,在一定程度上提高了网络检测效果。在上述条件下,本研究分别在Cascade RCNN网络中加入可变形卷积和GC-Block,显著提高了精确率,这是因为黄龙病叶片存在形状不规则和背景复杂的问题,可变形卷积和GC-Block 可以有效抑制它们的影响。最后本研究将FPN换成了TFFPN,对召回率提升明显,这是因为TFFPN可以有效提取特征图的多尺度信息,从而降低了小尺度叶片的漏检率。可变形卷积、GC-Block和TFFPN一起作用于网络时,mAP提高3.2个百分点。
Cascade RCNN(ResNetXt101)和改进的Cascade RCNN的实际检测效果对比如图8所示。图中红框为模型预测的边框,红框上方的HLB为黄龙病的标签名,HLB后的数字为置信度,蓝圈内为Cascade RCNN漏检或误检的目标。由图8可知,Cascade RCNN(ResNetXt101)在黄龙病的检测中存在漏检和误检现象,本研究使用了可变形卷积、GC-Block和TFFPN对模型进行了改进,改进后的Cascade RCNN能够正确检测出Cascade RCNN(ResNetXt101)漏检和误检的目标,这说明改进后的网络具有更强的病害特征提取能力。
图8 检测效果对比
3 结论
(1)由于野外拍摄的柑橘黄龙病图像背景复杂,黄龙病叶片存在遮挡及形状尺寸变化大的问题,导致现有方法很难获得较高的检测精度,本研究提出了一种改进的Cascade RCNN模型用于自然场景下的柑橘黄龙病检测。该方法首先运用SMS、镜像翻转和旋转来对数据集进行了增广,增加了训练图像中的背景目标数量和多样性。其次为了增强网络对目标几何形变的建模能力,在骨干网络中使用可变形卷积来增大有效感受野,再通过GC-Block对特征图进行增强,增强骨干网络对病害叶片特征的提取能力。最后通过TFFPN实现特征图的多尺度融合,以便网络学习到多尺度信息,提升模型的检测精度。
(2)测试结果表明,该模型mAP为84.8%,相较于SSD、RetinaNet、YOLO v3、YOLO v5s、Faster RCNN、Cascade RCNN等目标检测方法提高至少3.2个百分点。本文模型可以实现自然背景下柑橘黄龙病的精准检测,对实现农业智能化、降低劳动强度具有重要意义。