一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种马铃薯早晚疫病叶片病害识别方法

2022-06-29 23:45:01 来源:中国专利 TAG:


1.本发明涉及病害识别技术领域,尤其涉及一种马铃薯早晚疫病叶片病害识别方法。


背景技术:

2.马铃薯主粮化已成为我国第四次主粮革命的新趋势,马铃薯是仅次于小麦、水稻和玉米的世界第四大粮食作物,我国马铃薯具有良好的产业基础。马铃薯产量受诸多因素影响,一般认为,马铃薯病害是影响马铃薯产量和品质的主要因素,据估计,由于作物病虫害,世界作物每年减产11%-30%。晚疫病和早疫病是真菌性疾病。
3.诊断病害的方法很多,其中一个经典直接的方法是人眼视觉估计。传统的作物病害诊断技术依赖于农民的经验,这是最不确定和不可靠的。与传统的作物病害诊断技术相比,一些具有挑战性、昂贵且耗时,需要高度专业的操作方法被提出,使用光谱仪来诊断作物叶片是否健康和受感染,另一种方法是使用聚合酶链反应
5.提取叶子的dna,分析dna的关键片段来判断作物叶片是否健康或被感染。随着人工智能推动精准农业的快速发展,通过人工智能(ai)、机器学习(ml)和计算机视觉(cv)技术的最新进展使作物叶片病害自动检测技术得以发展,这些技术时效性强,且效率高,无需人工干预,能够准确地检测作物叶片病害。人工智能技术在农业领域的应用
6.,将过去农民面临的诸多问题使用新式的方法解决,对问题的强大适用性使得解决复合问题变得容易,应对环境影响、生产力、粮食安全和持续性等农业生产的各种挑战具有重要意义。
4.在自然条件下病害识别中,传统的计算机视觉特征提取也是一项关键技术,通过hsv颜色空间提取颜色、纹理、形状特征结合svm、rf和ann进行病害识别,然而,由于实际条件下叶片病斑的多样性和复杂性,且特征容易受到光照条件的影响,尤其是颜色特征非常不稳定,这使得这种方法的识别效果较差。相比传统学习方法,卷积神经网络快速发展,新式模型层出不穷,在特征提取方面具有更强的表达能力,vgg19、alexnet、squeezenet、inceptionv3、faster r-cnn、resnet50在病害图像检测和分类中取得了较好的效果。divyansh tiwari等人提出了一种模型,该模型使用预先训练好的vgg19模型,在相同的数据集下比较了knn、svm、neural network、logistics regression等分类器的性能,使用迁移学习的概念利用vgg16、vgg19、inceptionv3对这些目标结果进行微调,识别准确率为97%,超出测试数据集的8%。王东方等人提出一种农作物病害分类模型tl-se-resnext-101,对深度残差网络模型se-resnext-101进行改进,利用迁移学习技术与数据增强技术加速模型收敛,降低模型对某系属性依赖,平均准确率达到47.37%,杨森等人提出利用迁移学习技术对faster r-cnn模型训练并标出斑块区域,由k-均值聚类算法对建立的颜色特征和sift特征聚类,并传入svm训练出病害识别模型,平均识别准确率为90.83%。
5.通过对上述研究分析,虽然上述研究在病害图像分类方面取得了良好的进展。但相关研究还仅仅停留在特定区域的探索阶段,难以适应目前精准农业高要求与高标准,主要是因为他们大多只考虑特定场景数据集的准确性,并且它们忽视了神经网络模型在实际
生产中需要考虑模型参数存储规模的应用环境,阻碍了cnn在资源范围广泛的有限平台上的部署训练。另一个问题是,大多数方法没有评估它们在看不见的图像上的性能,因为数据集已经很小。当对看不见的数据进行测试时,任何模型的版本都可以标记为良好。具体包括马铃薯叶片病害的错误识别、马铃薯品种和环境因素。此外,使用经典神经网络模型或者使用two-stage模型在对数据集训练时,由于其模型参数量大,或由于需要先计算region proposal,而导致反向传播计算缓慢,且开发成本太高,维护和扩展困难。


技术实现要素:

6.本发明的目的在于提供一种马铃薯早晚疫病叶片病害识别方法,从而解决现有技术中存在的前述问题。
7.为了实现上述目的,本发明采用的技术方案如下:
8.一种马铃薯早晚疫病叶片病害识别方法,基于卷积神经网络,包括以下步骤:
9.s1,获取不同条件下马铃薯早、晚疫病叶片以及健康叶片的影像材料,并将影像材料中的图片进行标注后作为初始数据集;
10.s2,对初始数据集中的图片进行数据增强预处理,获得增强后的数据集;
11.s3,将增强后的数据集划分为训练、验证和测试集,采用训练集训练yolo v5模型,并采用验证和测试集评估训练后的yolo v5模型,具体包括:
12.s31,对训练集中的数据重新进行数据增强处理,包括但不限于缩放、旋转、宽度偏移、高度偏移、剪切范围、缩放范围、水平翻转、亮度和通道偏移,以及最接近的填充模式,增强训练集的多样性;
13.s32,采用yolo v5模型对训练集进行训练,其中,全局损失函数使用bce loss,优化器使用sgd;
14.s33,训练完成后,采用验证和测试集对训练后的yolo v5模型进行评估,采用的评估系数包括查准率p
p
、查全率r
p
、f1-scoref1
p
、平均准确度a(p
p
)以及平均精度m(ap)中的至少一种;
15.s4,采用训练完成后的yolo v5模型对马铃薯叶片进行早晚疫病识别过程。
16.优选的,步骤s1中对图片进行标注的方法具体是:使用labelme工具将健康和早晚疫病感染的叶片分别标注为yolov5 pytorch格式和xml格式。
17.优选的,步骤s2中对初始数据集中的图片进行数据增强预处理具体包括:采用像素尺度转换、旋转变换、宽度移动范围变换、高度移动范围变换、剪切变换、随机缩放、翻转以及通道移动转换中的至少一种。
18.优选的,步骤s3中采用的yolov5模型采用了actnn激活压缩,具体原理如下:
19.在第l层神经网络的每个训练迭代中,前向传播f
(l)
包含n维特征映射h
(l-1)
与模型参数θ
(l)
,所示反向传播g
(l)
对l层的h
(l)
求梯度,如式(1)所示:
20.h
(l)
=f
(l)
(h
(l-1)
;θ
(l)
)
ꢀꢀ
(1)
21.然后携带上下文c(),得到计算梯度,并用sgd更新参数,采用全精度fp32训练,如下式所示:
[0022][0023][0024]
将式(2)中表示的上下文c()、θ
(l)
、分别使用随机化的量化策略,计算出的有损梯度是原梯度的一个无偏估计,如下式(4)所示,即
[0025][0026]

[0027]
优选的,基于actnn激活压缩运行原理,actnn定义了l1至l5压缩程度依次提高的可选压缩参数,其中l1与l2使用4bit per-group quantization进行压缩,但l1允许使用32bit量化,且只处理卷积层;l3至l5分别在2bit下使用fine-grained-mixed-precision、swapping、defragmentation压缩。
[0028]
优选的,步骤s32中的训练过程具体包括:
[0029]
全局损失函数使用bce loss,优化器使用sgd,batch size为128,输入图像尺寸为384*384,学习率初始化为0.0042,最终为0.15,动量参数为0.845,重量衰减设置为0.00056,并使用预热参数5.0,其他参数保持默认,进行1000个epochs预训练,得到初始训练模型;
[0030]
采用验证集对初始训练模型进行精度评估,若不符合预期精度需求,则对初始训练模型进行微调,将early stopping机制参数设置为50,执行300个epochs,再次进行精度评估;
[0031]
重复微调训练多次后,直到精度评估符合预期,停止训练过程,获得训练后的yolo v5模型。
[0032]
优选的,评估系数的具体计算方法具体包括:
[0033][0034][0035][0036]
[0037]

[0038]
本发明的有益效果是:
[0039]
本发明提供了一种马铃薯早晚疫病叶片病害识别方法,该方法开发了一个用于马铃薯叶片病害检测的激活参数压缩深度学习模型。在第一级,使用yolo v5图像识别技术从马铃薯叶片图像中对马铃薯早疫病和晚疫病进行分类,在第二个层级,将模型压缩技术actnn与yolo v5进行结合,开发了一种新的激活参数压缩训练检测模型,用于在设备内存不足时实现对马铃薯病害的分类。提出的九种数据增强技术结合深度学习技术在马铃薯叶片病害数据集上的准确率达到99.75%,引入的模型压缩技术actnn比其他方法更简单,更有效率,精度损失在0.65%以内,影响训练耗时仅为3%,节省了大量的计算成本和时间。
附图说明
[0040]
图1是实施例1中采用的yolo v5神经网络结构图;
[0041]
图2是实施例1中采用的actnn压缩与解压缩过程示意图;
[0042]
图3是实施例1中提供的数据集图像示例:(a)早疫病,(b)健康和(c)晚疫病;
[0043]
图4是实施例1中提供的训练过程中模型评估曲线:(a)验证集损失,(b)训练集损失,(c)验证集查准率,(d)验证集m(ap)@0.5;
具体实施方式
[0044]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
[0045]
实施例1
[0046]
本实施例提供了一种马铃薯早晚疫病叶片病害识别方法,基于卷积神经网络,包括以下步骤:
[0047]
s1,获取不同条件下马铃薯早、晚疫病叶片以及健康叶片的影像材料,并将影像材料中的图片进行标注后作为初始数据集;
[0048]
s2,对初始数据集中的图片进行数据增强预处理,获得增强后的数据集;
[0049]
s3,将增强后的数据集划分为训练、验证和测试集,采用训练集训练yolo v5模型,并采用验证和测试集评估训练后的yolo v5模型,具体包括:
[0050]
s31,对训练集中的数据重新进行数据增强处理,包括但不限于缩放、旋转、宽度偏移、高度偏移、剪切范围、缩放范围、水平翻转、亮度和通道偏移,以及最接近的填充模式,增强训练集的多样性;
[0051]
s32,采用yolo v5模型对训练集进行训练,其中,全局损失函数使用bce loss,优化器使用sgd;
[0052]
s33,训练完成后,采用验证和测试集对训练后的yolo v5模型进行评估,采用的评估系数包括查准率p
p
、查全率r
p
、f1-scoref1
p
、平均准确度a(p
p
)以及平均精度m(ap)中的至少一种;
[0053]
s4,采用训练完成后的yolo v5模型对马铃薯叶片进行早晚疫病识别过程。
[0054]
对于数据集的选择,现有的文献中,多是采用plant village数据集。plant village数据集是在特定的地理和环境因素下从特定区域开发的。由于形状、品种和环境因素等多种因素的变化,世界不同地区的马铃薯病害存在差异。为验证该数据集的准确性,从plant village中选择1000片早疫病叶片(early blight)、1000片晚疫病叶片(late blight)和152张健康叶片(healthy)图像对yolo v5m模型从零开始训练,训练后的数据集采用本实施例中的pbd-im数据集进行测试,从而测试准确性。测试结果表1所示,
[0055][0056]
由此可见,选用plant village数据集作为训练集准确性不高,因此在本实施例中,数据集中的图像采集的马铃薯图片采用的是内蒙古自治区呼伦贝尔市岭东南地区,并重点关注呼伦贝尔市岭东南地区的马铃薯品种:冀张薯12号、希森6号、华颂7号。这些马铃薯成排种植,彼此间隔0.9米。这些作物的种子是通过挖掘深度为2-2.6米、宽度为1.6米的土壤坑来培育的。我们拍摄了不同条件下的图像和视频,即早上、晚上、中午、阴天、晴天、雨天等,并将拍摄后的图片进行标注。本实施例中对图片进行标注的方法具体是:使用labelme工具将健康和早晚疫病感染的叶片分别标注为yolov5 pytorch格式和xml格式,示例叶片如图3所示。
[0057]
本实施例中,步骤s2中对初始数据集中的图片进行数据增强预处理具体包括:采用像素尺度转换、旋转变换、宽度移动范围变换、高度移动范围变换、剪切变换、随机缩放、翻转以及通道移动转换中的至少一种,其中,尺度转换,为每个像素值都使用参数值(1-255)从0到1的范围。使用旋转变换指的是将图像旋转到一个特定的角度,本实施例中采用了25度来旋转图像。使用宽度移动范围变换,图像可以随机地向右或向左移动,选择了0.1的宽度移动参数值;高度移动范围参数垂直移动,范围值为0.1。
[0058]
剪切变换的过程是以图像的一个轴为固定轴,然后将另一个轴拉伸到一个特定的角度,称为剪切角。轴拉伸到一个被称为剪切角的特定角度;本实施例中的剪切变换过程应用了0.2的剪切角。
[0059]
缩放范围参数被应用于执行随机缩放变换(zoom_transform);》1.0意味着放大图像,《1.0被用于放大图像;因此,采用0.2缩放范围来放大图像。翻转采用水平翻转。亮度变换(brightness_transform),0.0意味着没有亮度,1.0意味着最大亮度,我们采用了0.5-1.0的亮度范围;在通道移动转换(channel_transform_range)中,从指定范围内选择一个随机值来移动通道值;本实施例中应用了0.05的通道移动范围,而填充(fill_nearest)模式是临近像素填充的。
[0060]
经过上述数据增强后,获得数据集中的图像如表2所示,并将其划分为训练集、验证集和测试集,训练、验证和测试数据集分别分为80%、10%和10%。
[0061]
表2
[0062][0063]
在进行训练时,本实施例中所采用的试验环境为:本实验的操作平台为nettrix x640 g30 ai服务器,操作系统环境为ubuntu 20.04,cpu为2块intel(r)xeon(r)gold 6226r cpu@2.90ghz,gpu为两台n-vidia geforce rtx 3090、256g内存、7.5t固态驱动器。训练环境由anaconda3创建,环境配置为python 3.7.10、pytorch 1.9.1与torch vision 0.10.1人工神经网络库。同时,采用cuda 11.1深度神经网络加速库。
[0064]
训练参数设置:采用图1所示yolo v5模型对pbd-im数据集训练(本文yolo v5模型均指使用yolo v5m模型),全局损失函数使用bce loss,优化器使用sgd,batch size为128,输入图像尺寸为384*384,学习率初始化为0.0042,最终为0.15,动量参数为0.845,重量衰减设置为0.00056,并使用预热参数5.0保证模型对数据具有一定的先验知识。其他参数保持默认,进行1000个epochs预训练。取得初始训练模型之后,发现模型的性能与我们的预测有一定的距离,因此,我们对模型再一次进行微调,early stopping机制参数设置为50。此外,我们对模型进行五次微调训练,每次执行300个epochs,并以最高精度记录结果。
[0065]
本实施例中,步骤s3中采用的yolov5模型采用了actnn激活压缩,具体原理如下:
[0066]
在第l层神经网络的每个训练迭代中,前向传播f
(l)
包含n维特征映射h
(l-1)
与模型参数θ
(l)
,所示反向传播g
(l)
对l层的h
(l)
求梯度,如式(1)所示:
[0067]h(l)
=f
(l)
(h
(l-1)
;θ
(l)
)
ꢀꢀ
(1)
[0068]
然后携带上下文c(),得到计算梯度,并用sgd更新参数,采用全精度fp32训练,如下式所示:
[0069][0070][0071]
将式(2)中表示的上下文c()、θ
(l)
、分别使用随机化的量化策略,计算出的有损梯度是原梯度的一个无偏估计,如下式(4)所示,即
[0072][0073]

[0074]
为了更好地利用硬件特性,actnn在运行时动态调整混合精度量化策略,根据不同层之间的异构特性,压缩算法将更重要的激活结果保留更多的bit,而那些对模型精度影响
小的激活结果则使用高于限制级别的压缩算法处理,平均每个激活结果分配2bit,保持精度的同时,可使模型激活参数可进一步减小。如图2所示,actnn定义了l1至l5压缩程度依次提高的可选压缩参数,其中l1与l2使用4bit per-group quantization进行压缩,但l1允许使用32bit量化,且只处理卷积层;l3至l5分别在2bit下使用fine-grained-mixed-precision、swapping、defragmentation压缩,它们作用于所有层的激活结果,具体处理的效果取决于你使用actnn模块处理原始模型的比例,处理过程只在训练中进行,检测过程不在涉及。此外,式(5)所示,l1至l5使用的压缩算法是前一个压缩级别的叠加,在训练过程中,相同的硬件条件下,压缩级别越高,反向传播时对激活结果解压缩的时间就越长,则训练速度越慢,从调节参数与数据角度讲,增大batchsize与使用高分辨率图像都会增加ca(compression activation)与dca(decompression activation)的时间,减缓模型收敛时间。
[0075][0076]
本实施例中的评估系数的计算方法具体包括:
[0077][0078][0079][0080][0081]

[0082]
其中,公式(6)、(7)中的t(p
blight
)、f(p
blight
)和f(n
blight
)分别指正确检验框、错误检框和漏检框数量,f1b为综合考虑查准率与查全率的指标,通常情况下查准率和查全率相互约制,而采用查准率和查全率权重相同的f1b可以更均衡地反应模型的性能,a(pb)值为pr曲线面积,能准确反应单个类别的性能。公式(10)中的q指检测类别总数,本实施例中的检测类别为3,m(ap)是a(pb)值在所有类别下的均值,通常作为反映系统在全部相关类别上性能的指标,m(ap)在使用iou阈值的基础上更能反应所指类别的平均精度,m(ap)@0.5作为模型查准率与查全率结合性质反应模型整体的确定性标准,其可定义为衡量模型综合性能的重要指标。
[0083]
为了判断对数据集进行增强处理的效果,本实施例中进行了三组试验,第一组不对数据集进行数据增强方法,第二组采用五种数据增强方法,第三组采用九种数据增强方法,如表4所示:
[0084]
表4
[0085][0086][0087]
由此可见,试验组1仅使用一种数据增强技术,准确率为97.56%;试验组2使用了五种数据增强技术,获得了98.39%的准确率。试验组3使用九种数据增强技术获得99.75%的准确率。然后对它证实了,随着我们使用更多的数据增强技术来增加训练样本,准确性也会提高。
[0088]
表5
[0089][0090]
然后,采用多个指标对数据集增强效果进行进一步的比对,采用两组试验,在第一组实验中,本文将表四第三组数据增强技术应用于pbd-im数据集的训练集。在第二个实验中,我们在不使用数据增强技术的情况下进行了训练。结果显示如表5所示:实验结果显示,所提出的方法对马铃薯早疫病、健康和晚疫病的准确率分别达到99.38%、99.58%和99.88%。表5与图4显示了完整的训练、验证和每个epoch的损失值与准确率,显示了所提出的数据增强方法与yolo v5模型在pbd-im数据集上的整体表现,该方法使用了应用于训练集的数据增强技术。结果显示所提出的方法在pbd-im数据集上使用数据增强技术取得了出
色的识别率。
[0091]
此外,本技术为了评估所提出的actnn方法在yolo v5模型的性能,进行了三组实验。由于每组试验开启的actnn压缩级别、batch_size与image_size不同,如果采用一致的训练epoch,模型将不会得到较好的收敛,因此此处试验不限制epoch,其他设置按照实施例中训练参数进行设定,保证每组试验模型均收敛到较好状态。在三组试验中,本文将表四第三组数据增强技术应用于三组模型试验中,各组首先保证不使用actnn进行训练,训练过程中只改变batch size与图片尺寸,待gpu内存不足时开启actnn,压缩级别每一项测试三次,所有组的结果如表6所示。
[0092]
表6
[0093][0094][0095]
从表6中可知,在使用actnn的三组模型测试中,模型的精度均达到了较高水平,未出现精度的大幅下降,并且batch_size为64时,模型具有最佳分类精确率。此外,较小batch_size对应精度略小的原因是由于每次迭代训练样本过低造成的,同样训练次数的较
大batch size可以使模型精度得到修复,使模型快速收敛。yolo v5m、yolo v5l与yolo v5x的模型参数量依次增大,当三者试验组改变训练参数而出现内存不足时,actnn对模型参数的压缩能控制模型正常进行训练,同时,使用最高压缩级别l5进行模型压缩对比于最低压缩级别l1,对模型精度影响控制在0.65%以内,时间影响限制在3%以内,对比未压缩的yolo v5模型,精度几乎没有损失。此外,较高的模型参数压缩级别会带来额外的计算耗时,但对模型精度没有影响。所以,应根据实际情况,合理选择actnn的压缩级别。
[0096]
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
[0097]
本研究公开了一种马铃薯早晚疫病叶片病害识别方法,该方法提出了一种快速、直观的one-stage深度学习马铃薯早晚疫病叶片病害识别模型da-actnn-yolov5,用于马铃薯叶片病害的分类。本文首先利用yolo v5图像识别技术从马铃薯叶片图像中对马铃薯早疫病和晚疫病进行分类,然后在第二级将模型压缩技术actnn与yolo v5进行结合,开发了一种新的激活参数压缩训练检测模型,用于在设备内存不足时实现对马铃薯早疫病和晚疫病的分类。同时考虑了环境因素对马铃薯叶片病害的影响。提出的数据增强、参数压缩与yolo v5方法在从内蒙古自治区呼伦贝尔市岭东南地区采集的马铃薯叶图像上表现得非常好。
[0098]
在pbd-im数据集进行了实验研究,并进行了数据增强和模型参数压缩,对所提出的数据增强方法的性能进行了评估,其中所提出的方法优于未使用数据增强的方法;而在开启actnn对模型参数压缩的方法优于较小batch_size的方法。该方法在pbd-im数据集上进行了验证,在有和没有数据增强的情况下,在pbd-im数据集上实现了99.75%的m(ap)@0.5、高精度、召回率和f1分数,此外,采用actnn能够有效维持高batch_size与图片尺寸下的模型精度,精度损失在0.65%以内,对训练耗时仅提高3%。对于yolo v5它的参数数量较少,结构简单,可做灵活选择,提出的数据增强方法较为系统全面,扩展性较强,引入的模型压缩技术actnn比其他方法更简单,更有效率,节省了大量的计算成本和时间。
[0099]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献