发明内容
有鉴于此,本发明提供了一种基于改进EfficientDet的荔枝病虫害检测方法,利用Mosaic数据增强技术扩充荔枝病虫害训练样本,使网络学习更加丰富的荔枝病虫害图像背景信息;将EfficientNetv1中浅层的MBConv模块替换为更新的EfficientNetv2中的Fused MBConv模块,提高网络的训练和推理速度;在骨干网络末端引入SPP空间金字塔池化结构,实现病虫害特征图不同尺度的特征融合提取;特征融合网络中将原来的横向跨层BiFPN更换为PaFPN,实现病虫害特征的跨层融合;在检测器中将原网络中使用的边界框回归损失替换为CIoU Loss,网络训练收敛更快且提升边界框的回归精度;在最后的检测结果前使用DIoU nms非极大值抑制,对冗余的预测边界框进行删除,并减少重叠目标的预测框的误删。针对荔枝病虫害的检测问题,利用深度学习的快速图像识别检测技术,使用改进EfficientDet以解决现有的深度学习图像识别技术在农作物病虫害上训练样本背景单一、易受复杂背景信息影响、实际场景检测效果低下、检测速度慢等问题。
为了实现上述目的,本发明采用如下技术方案:
一种基于改进EfficientDet的荔枝病虫害检测方法,包括以下具体步骤:
步骤1:获取原始荔枝病虫害图像并进行筛选,删除误拍和质量低下的图像;
步骤2:针对经过筛选整理后的荔枝病虫害图像进行人工数据标注生成标注文件,根据荔枝病虫害图像和标注文件构建数据集;
步骤3:根据预设批次图像数量batch_size,分批次获取数据集中的荔枝病虫害图像,将获取的荔枝病虫害图像变换为预设尺寸,再依次进行预处理增强和Mosaic增强,获得增强数据图像;预设尺寸为分辨率1024×1024;分批次获取病虫害图像,能够解决病虫害检测过程中显存不足的问题,且能够使用更好的优化策略SGD,提升模型的整体训练效果;
步骤4:将经过数据增强后的增强数据图像和对应的荔枝病虫害图像的原图像作为训练集输入模型中进行训练,获得训练后的改进EfficientDet检测模型;
步骤41:将经过数据增强后的统一尺寸增强数据图像和筛选出的荔枝病虫害图像输入到改进骨干特征提取网络进行特征提取,获得需要的五张待融合特征图;改进骨干特征提取网络EfficientNetv2-s使用Fused MBConv卷积模块和MBConv卷积模块,并在网络末端增加SPP模块;
步骤42:将提取的五张待融合特征图经过PaFPN特征融合网络进行特征融合,获得五个不同尺度的融合特征;特征融合需将五张待融合特征图同时经过两次PaFPN特征融合网络,使整个模型学习到更丰富的特征;
步骤43:将融合特征输入到检测器中,获得预测结果;检测器包括classprediction net和box prediction net两个网络,获得的预测结果包括病虫害种类和病虫害位置信息;
步骤44:根据预测结果计算损失和梯度,更新权重,对预测结果进行非极大值抑制,获得改进EfficientDet检测模型;
步骤5:将采集的待检测实际场景图像输入所述改进EfficientDet检测模型中,获得检测结果。
优选地,步骤1中,采用移动手机和/或高清摄像头采集荔枝病害病斑、虫害以及虫害留下的病斑图像,获得原始荔枝病虫害图像;由于移动手机拍摄的图像占用内存较高,但图像却并没有与其高内存相应的高质量图像,因此在保证图像分辨率和图像质量不变的情况下,对手机拍摄的图像进行内存压缩处理,加快荔枝病虫害图像的读取速度,以加快模型的整体训练速度。
优选地,步骤2中,对荔枝病虫害图像进行人工数据标注的工具采用LabelImg,模型训练使用的是VOC数据标注格式,将后缀为xml的标注文件存放于annotations文件夹。
优选地,步骤2中,将所有荔枝病虫害图像和对应的所有标注文件进行划分获得数据集,数据集包括训练集、验证集和测试集,其中训练集、验证集、测试集的划分比例为8:1:1。
优先地,步骤3中,预设尺寸为1024×1024;预处理增强中的图像操作包括镜像、90度翻转、色域变换和噪声添加等,并对原标注信息进行相应转换获得与新图像相对应的新标注信息。
优选地,步骤3中,Mosaic增强具体过程包括:
步骤31:采用像素点填充法生成预设尺寸两倍的像素矩,即分辨率为2048×2048的像素矩;
步骤32:读取到数据集中一张所述荔枝病虫害图像时,从数据集中随机选取另外三张图像,对四张图像分别进行随机的尺寸缩放、色域变换、翻转等的图像操作后,将图像操作后的四张图像按照2048×2048像素矩的四个角进行对齐摆放,对图像中重叠部分截取删除生成复合图像,再将复合图像变换为1024×1024预设尺寸的新复合图像;
步骤33:将新复合图像中包含的四张图像对应的原标注信息进行转换,生成与新复合图像相对应的新标注信息。
优选地,步骤41中,所使用的改进骨干特征提取网络EfficientNetv2-s中主要使用了两种Conv卷积模块,并在改进骨干特征提取网络EfficientNetv2-s末端添加了SPP模块,提取特征具体步骤如下:
步骤411:将增强数据图像和经过筛选的荔枝病虫害图像作为训练样本图像,对训练样本图像进行一次步长为2的卷积,再依次经过标准化和Swish激活函数,获得特征图像;
步骤412:将所述特征图像输入浅层骨干网络中,使用不同参数和重复次数的Fused MBConv卷积模块提取特征,获得第一张待融合特征图;
步骤413:将所述第一张待融合特征图输入深层骨干网络中,使用不同参数和重复次数的MBConv卷积模块进一步提取特征,获得第二张待融合特征图,并在深层骨干网络末端使用SPP模块对进一步提取的特征再进一步提取特征,获得第三张待融合特征图;
步骤414:对第三张待融合特征图进行两次下采样,依次获得第四张待融合特征图和第五张待融合特征图。
优选地,步骤42中,与原EfficientDet中的横向跨层特征融合网络BiFPN不同,经过步骤41后获得的五张待融合特征图,将被送入纵向跨层的特征融合网络PaFPN,既保留了浅层特征图的细节,也融合了深层特征图的高级语义信息,能够有效提升检测效果。经过该特征融合网络后,将获得五张不同尺度的融合特征图。
优选的,所述步骤43中检测器包括class prediction net和box prediction net两个网络;所述预测结果包括病虫害种类和病虫害位置信息。
优选地,步骤44中,计算损失包括分类回归损失Focal Loss和边界框回归损失CIoU Loss,并使用DIoU nms对预测结果进行非极大值抑制。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于改进EfficientDet的荔枝病虫害检测方法,基于EfficientDet目标检测模型进行改进,以实现实时场景下对荔枝病虫害的检测识别,本发明针对实时场景下的图像复杂背景采用Mosaic数据增强方法,使模型学习更丰富的背景信息,且提升小目标的检测效果;采用更轻量化的改进骨干特征提取网络EfficientNetv2-s,提升网络的训练速度;采用SPP模块进一步提取有用的特征信息;采用效果比BiFPN更好的纵向跨层特征融合网络PaFPN,提升模型的检测效果;采用CIoU Loss提升模型的收敛速度和回归精度,采用DIoU nms非极大值抑制,减少对重叠目标的抑制。获得改进的EfficientDet目标检测模型,提供实时性更强,准确率更高的实时场景下荔枝病虫害的检测识别方法。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种于改进EfficientDet的荔枝病虫害检测方法,其流程如图1所示,具体包括以下步骤:
S1:使用移动手机和高清摄像头在荔枝果园中拍摄荔枝病害病斑和虫害以及虫害留下的病斑,获取原始的荔枝病虫害图像后进行筛选,排除误拍和质量低下的图像;
S2:针对经过筛选整理后的荔枝病虫害图像进行人工数据标注,将所有的荔枝病虫害图像和所有标注文件进行划分,得到训练集、验证集和测试集;
S3:根据预设批次图像数量batch_size,分批次获取训练集中的荔枝病虫害图像,将获取的图像resize为统一尺寸1024×1024,再依次进行预处理增强和Mosaic增强这两种数据增强,获得增强数据图像,再送入网络;
S4:将经过数据增强后的增强数据图像和对应的荔枝病虫害图像的原图像作为训练集输入模型中进行训练,获得训练后的改进EfficientDet检测模型;
S41:将经过数据增强后的统一尺寸增强数据图像和训练集中的荔枝病虫害图像输入到改进骨干特征提取网络EfficientNetv2-s进行特征提取,最后经SPP模块后,经过下采样获得需要的五张待融合特征图;
S42:将骨干网络中提取的五张待融合特征图进行特征融合,获得五个不同尺度的融合特征,特征融合需将五张待融合特征图同时经过两次PaFPN特征融合网络,使整个模型学习到更丰富特征;
S43:将先后经过提取、融合的特征输入到检测器中,检测器包括classprediction net和box prediction net两个网络,获得预测的病虫害位置和病虫害种类信息;
S44:针对获得的病虫害位置和病虫害种类信息,计算损失和梯度,更新权重,对预测结果进行非极大值抑制,获得改进EfficientDet检测模型;
S5:对所述改进EfficientDet检测模型在病虫害图像数据集训练完毕后进行相应部署,实现实际场景下对荔枝病虫害的实时检测。
实施例1
在一个具体实施例中,S1中,为使改进的EfficientDet检测模型能够在荔枝病虫害的发病初期进行准确的检测识别,方便种植户采取针对性的预防和防治措施,所采集的荔枝病虫害数据大多为病虫害发病初期的病斑图像。为使种植户能够从远程监控并检测到荔枝病虫害,使用了高清摄像头对荔枝病虫害图像进行获取搜集;同时为使种植户在荔枝果园中工作时遇到不能确定的荔枝病虫害而能够使用手机进行检测识别,使用了多台不同型号的手机对荔枝病虫害图像进行获取搜集。通过两种不同的设备获取收集荔枝病虫害数据集,使模型在训练后更具专业性地对荔枝病虫害进行实时场景下的检测识别。由于移动手机拍摄的图像占用内较高,但图像却并没有与其高内存相应的高质量,因此在保证图像分辨率和图像质量不变的情况下,对手机拍摄的图像进行内存压缩处理,加快荔枝病虫害图像的读取速度,以加快模型的整体训练速度。
实施例2
在一个具体实施例中,S2中,对荔枝病虫害进行人工数据标注的工具为LabelImg,模型训练使用的是VOC数据标注格式,将后缀为.xml的标注文件存放于annotations文件夹。标注过程中,由于采集的荔枝病虫害数据大多为病虫害发病初期的病斑图像,图像中出现的病斑数量较少,如若出现同一图像中病斑数较多的密集型病斑,均进行逐一标注,防止模型训练后对密集型病斑出现误检。对荔枝病虫害数据集进行人工数据标注完毕后,将所有的图像和所有的标注文件进行划分,得到训练集、验证集和测试集,划分的比例为8:1:1。
实施例3
在一个具体实施例中,S3中,对荔枝病虫害数据集样本图像进行预处理和Mosaic两种方法的数据增强,使网络模型训练时学习更加丰富的病虫害目标和背景信息。其中预处理增强包括镜像、90度翻转、色域变换和添加高斯噪声,当读取到某张图像时,依次对该图像进行随机概率的水平或垂直镜像、随机的90度翻转、色域变换和高斯噪声的添加,并对原标注信息进行相应的转换,生成与新图像相对应的新标注信息;
如图2所示为使用Mosaic数据增强后的复合样本图像,其中左上角的标注框内为荔枝毛毡病;左下角的标注框内为荔枝炭疽病;右上角和右下角的标注框内为荔枝煤烟病,所使用的Mosaic数据增强方法具体为:
S31:采用像素点填充法生成统一尺寸两倍的像素矩,即分辨率为2048×2048的像素矩;
S32:当读取到训练集中某张图像时,从训练集中随机选取另外3张图像,对4张图象分别进行随机的尺寸缩放、色域变换、翻转等的图像操作后,对图像操作后的四张图像按照2048×2048像素矩的四个角进行对齐摆放,对图像中重叠部分截取删除生成复合图像,再将复合图像的图像大小调整为1024×1024的统一尺寸图像,生成新复合图像;
S33:将复合图像中4个图像对应的原标注信息进行转换,生成与新复合图像相对应的新标注信息。
为使模型在实时场景下对荔枝病虫害的检测效果更佳,使用两种不同的数据增强方法将训练集样本扩充为原来的3倍。
实施例4
在一个具体实施例中,S41中,如图3所示为本发明所使用的改进骨干特征提取网络EfficientNetv2-s,主要使用了两种Conv卷积模块,并在末端添加了SPP模块。
与原EfficientDet中的骨干网络EfficientNetv1不同的是,EfficientNetv2-s在浅层使用了Fused MBConv卷积模块。尽管MBConv使用的深度可分离卷积相较于FusedMBConv的普通卷积在理论上拥有更少的参数和计算量,但无法充分利用现有的加速器,实际应用起来并没有想象中的快,而Fused MBConv卷积模块结构简单能够更好利用移动端和服务端的加速器,更适用于荔枝病虫害的实时检测。但若将全部卷积模块替换为FusedMBConv将明显增加网络的参数量和计算量,使训练速度大幅降低,因此使用NAS搜索技术探索了两种卷积模块的最佳组合,即在网络的浅层和深层分别使用不同次数的Fused MBConv和MBConv卷积模块,这样能够更好地提取荔枝病虫害图像的局部和全局特征。
另外,骨干网络EfficientNetv2-s相较于EfficientNetv1,在Conv卷积模块中更偏向于使用较小的倍率因子,如图3、图4和图5中每个MBConv后接的数字(图5中的n即倍率因子的大小);并在每个Conv卷积模块中使用3×3的卷积核,而替换所有v1中的5×5的卷积核,这样的好处是能够减少内存的访问开销。由于3×3卷积核比5×5卷积核的感受野小,因此在骨干网络中堆叠了更多的层结构以增加感受野,实现荔枝病虫害中不同病虫害不同尺度的检测精度的提高。
如图6所示,为骨干网络末端添加的SPP模块。SPP模块全称为空间金字塔池化结构,借鉴于SPP-Net,并在YOLOv3的改进应用中效果显著。该模块实现了局部特征和全局特征的不同尺度融合,丰富了特征图的表达能力,有利于荔枝病虫害中不同目标大小差异较大的情况。
如图8所示,P0至P8为图像送入模型后在网络EfficientNetv2-s进行特征提取过程中生成的特征图,改进骨干特征提取网络EfficientNetv2-s提取特征的具体步骤包括:
S411:增强数据图像和经过筛选的荔枝病虫害图像作为训练样本图像,首先对送入模型的训练样本图像进行一次步长为2的卷积,然后经过标准化和Swish激活函数,获得特征图像;如图8中所示的P0;
S412:将特征图像输入浅层骨干网络中,如图3中改进骨干特征提取网络EfficientNetv2-s左侧部分,使用不同参数和重复次数的Fused MBConv卷积模块提取特征,如图8所示中的P1至P4为该过程获得的特征图,并取P4为第一张待融合特征图;
浅层网络中包含若干FusedMBConv卷积模块,每个模块中包含若干次卷积、标准化和激活函数。不同参数的FusedMBConv卷积模块如图4所示,图中,对于FusedMBConvn,s1/s2来说,n为该卷积模块的倍率因子,s1表示步长为1,s2表示步长为2,k1×1表示使用尺寸为1×1的卷积核,k3×3表示使用尺寸为3×3的卷积核;当倍率因子n不为1时,使用尺寸为3×3的Expand Conv2d卷积核进行卷积,其卷积核个数为输入特征图通道数的n倍,将输入特征图通道数升维至n倍,并经过标准化和Swish激活函数后,接着使用尺寸为1×1的卷积核进行降维处理,将其通道数调整至输出对应的通道数,再进行一次标准化操作;当倍率因子n为1时,则直接使用尺寸为3×3的普通Conv2d卷积核进行卷积,其卷积核个数与输入特征图通道数保持一致,特征图通道数保持不变,并经过标准化和Swish激活函数后,无需进行降维处理;当步长表示为s2时,则不存在残差边,无需对卷积后的特征图进行Dropout操作,经过步长为2的卷积后,特征图的尺寸将被缩放为原来的一半;当步长表示为s1时,则保留残差边,但注意只有在当前Fused MBConv卷积模块的输入特征图通道数与输出特征图通道数一致时,才进行Dropout操作,然后经过残差边进行特征图的相加,其中Dropout操作中的概率随着网络深度的递增在0到0.2中逐渐增加;
S413:将第一张待融合特征图输入深层骨干网络中,如图3中改进骨干特征提取网络EfficientNetv2-s右侧部分,使用不同参数和重复次数的MBConv卷积模块提取特征,获得如图8所示中的P5至P7三张特征图,并在骨干网络末端使用SPP模块对进一步提取的特征再进一步提取特征,即对P7进一步提取特征获得如图8所示中P8的特征图,并取P6和P8分别作为第二张和第三张待融合特征图;
不同参数的MBConv卷积模块如图5所示,图中,对于MBConvn,s1/s2来说,n为该卷积模块的倍率因子,s1表示步长为1,s2表示步长为2,k1×1表示使用尺寸为1×1的卷积核,k3×3表示使用尺寸为3×3的卷积核;输入到当前MBConv卷积模块的特征图首先经过深度可分离卷积,即首先使用尺寸为1×1的Expand Conv2d卷积核进行卷积,其卷积核个数为输入特征图通道数的n倍,将输入特征图通道数升维至n倍,并经过标准化和Swish激活函数后,再使用尺寸为3×3的Conv2d卷积核进行逐层卷积,然后一样进行标准化和Swish激活函数的处理,此时经过深度可分离卷积的特征图,再使用注意力机制做进一步的处理,即经过SE模块(SE模块包含在每个MBConv卷积模块中,如图5所示);
SE模块为注意力机制,其过程分为Squeeze压缩和Excitation激发两个步骤,Squeeze压缩为一个全局平均池化操作,得到当前特征图的全局特征压缩量;Excitation激发包括两个全连接层,第一个全连接层的神经元节点个数为当前MBConv卷积模块输入特征图通道数的4分之1(而非输入该SE模块的特征图通道数的4分之1,即非c×n×1/4),然后经过Swish激活函数,第二个全连接层的神经元节点个数为经过当前深度可分离卷积后的特征图通道数,即c×n,然后经过Sigmoid激活函数,得到特征图每个通道的权值,最后与输入该SE模块的特征图相乘。
经过注意力机制SE模块的特征图,需经过降维处理,即使用尺寸为1×1的卷积核进行卷积,将其通道数调整至输出对应的通道数,再进行一次标准化操作;最后,当当前MBConv卷积模块的步长表示为s2时,则不存在残差边,无需对需要输出的特征图进行Dropout操作,经过步长为2的卷积后,特征图的尺寸将被缩放为原来的一半;若当步长表示为s1时,则保留残差边,但注意只有在当前MBConv卷积模块的输入特征图通道数与输出特征图通道数一致时,才进行Dropout操作,然后经过残差边进行特征图的相加,同样,Dropout操作中的概率会随着网络深度的递增在0到0.2中逐渐增加;
在骨干特征提取网络的末端,会使用空间金字塔特征池化结构SPP模块,对特征图做进一步的池化,实现不同尺度的局部特征融合提取;SPP模块的具体操作为:在最后一卷积模块的输出端引出4个数据分支,每个分支对特征图进行不同尺度的最大池化操作,最大池化的池化核大小分别为13×13、9×9、5×5、1×1(1×1即为无处理),然后将4个分支的输出进行堆叠操作,即进行通道上的拼接得到4倍通道数的特征图,得到如图8中所示的特征图P8,并作为第三张待融合特征图;
S414:对第三张待融合特征图(即经过SPP模块后的特征图,如图8所示中的P8)进行两次下采样,依次获得第四、第五张特征图。
对于骨干特征提取网络EfficientNetv2-s,如图3和图8所示,每一层的大结构块中,都重复使用了不同次数的卷积模块。对于每一层的大结构块,步长为2的卷积模块只出现一次,且出现在当前大结构块的第一个卷积模块中。对于每一层的大结构块,每一个卷积模块的输出特征图通道数与当前大结构块的输出通道数保持一致,即当前大结构块中每一个卷积模块里的降维卷积核个数等于大结构块的输出通道数。
实施例5
在一个具体实施例中,S42中,将原EfficientDet中的特征融合网络BiFPN替换为了PaFPN。如图7所示,PaFPN为纵向跨层的特征融合网络,对于BiPaFPN和PaFPN两种特征融合网络,通过实验发现删除了横向跨层特征融合,保留了纵向跨层特征融合的PaFPN在算法性能上有所提高。同时,纵向跨层的特征融合也延续了FPN的思想:既保留了浅层特征图的细节,也融合了深层特征图的高级语义信息。因此本发明使用了PaFPN对不同层的特征图进行融合,更好地将荔枝病虫害中不同尺度目标特征进行学习和融合,以提高检测的精度。
实施例6
在一个具体实施例中,S44中,所使用的边界框回归损失为CIoU Loss,其公式如下所示:
其中,IoU表示两个矩形框的交并比,即两个矩形框交集的面积除于两个矩形框并集的面积,b、bgt分别表示预测框和真实框的中心点,ρ表示计算两个中心点间的欧式距离,c表示预测框和真实框的最小外接矩的对角线距离,wgt和hgt分别表示真实框的宽和高,w和h分别表示预测框的宽和高。
该边界框回归损失相较于传统的IoU Loss,不仅考虑到了两个矩形框的重合面积,并将它们之间的距离以及长宽比考虑到了计算当中,更全面地将两个矩形框之间的差异进行回归损失,有利于对预测框回归精度的提高,以最终实现提高荔枝病虫害检测的精度。
所使用的DIoU nms非极大值抑制中,其操作方式与普通非极大值抑制nms的操作相同,不同之处在于其IoU的计算改为DIoU,其公式为:
公式中各字符的含义与前述中边界框回归损失CIoU Loss中的一致。相较于普通非极大值抑制nms,DIoU nms非极大值抑制将框与框之间的距离考虑到了计算当中,它的使用能够更加温和地删除冗余框,尽可能地保留重叠目标的预测框,对提高荔枝病虫害中复杂背景以及实时场景下的识别精度有一定程度效果。
综上所述,本发明对EfficientDet目标检测模型进行了改进,如图8所示为本发明改进后的EfficientDet整体模型结构示意图,提升了其对荔枝病虫害检测上的性能,在提升模型训练速度、轻量化模型的同时,强化了模型的鲁棒性,使模型的检测精度更高,实现了实时场景下对荔枝病虫害的目标检测精确、快速识别。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。