一种基于病虫害识别的神经网络模型训练方法
文献发布时间:2023-06-19 11:14:36
技术领域
本发明涉及图像识别领域,尤其涉及一种基于病虫害识别的神经网络模型训练方法。
背景技术
在柑橘产业中,病虫害的存在严重制约了其产业规模的发展。病虫害不仅会造成果实品质的下降,还会给果农带来严重的经济损失。由于柑橘果树的病虫害的种类繁多以及相关技术人员的缺乏,对于柑橘果园的病虫害的防治监控带来一定的困难。若有技术通过监控摄像头自动对果园果树生长情况进行监控,并对病虫害类别进行自动识别,向果农预警,则可以有效地在果树发病早期进行防治,满足果农地病虫害防治需求。
柑橘病虫害种类繁多,现有技术对于柑橘病虫害的识别种类不够全面,对于一些不常见的病虫害也无法得到很好的识别,较难满足病虫害防治需求。
现有的柑橘病虫害识别多是基于农技人员的主观经验来进行判断,对相关技术人员的依赖性较大,会消耗大量的人力和时间;现有将一些机器学习算法用于柑橘病虫害识别的应用,比如支持向量机(svm)和BP神经网络,但是最终的识别结果精度有限,效果不佳。
现有的病虫害识别技术一般局限于特定场景,抗干扰能力较弱,可能会对果园外场景的物体得到误识别的结果。
发明内容
本发明提供的一种基于病虫害识别的神经网络模型训练方法,旨在解决现有技术中病虫害识别种类较少且局限于特定场景并且抗干扰能力较弱的问题。
为实现上述目的,本发明采用以下技术方案:
本发明的一种基于病虫害识别的神经网络模型训练方法,包括以下步骤:
获取病虫害数据集和干扰数据集,所述病虫害数据集用于表示有标记的有病虫害的果叶图片,所述干扰数据集用于表示有标记的有病虫害的非果园背景的图片;
根据目标检测算法识别所述果叶图片,得到训练好的神经网络模型。
获取有标记的有病虫害的果叶图片和有标记的有病虫害的非果园背景的图片,根据上述图片加入到目标检测算法中,得到训练好的神经网络模型,这样得到的病虫害识别神经网络模型抗干扰能力强。
作为优选,获取病虫害数据集和干扰数据集,包括:
获取各类病虫害的果叶图片和非果园背景的干扰图片;
对所述各类病虫害的果叶图片进行病虫害标记,对所述非果园背景的干扰图片添加任意病虫害图标并进行病虫害标记;
获得病虫害数据集和干扰数据集,所述病虫害数据集用于表示有标记的有病虫害的果叶图片,所述干扰数据集用于表示有标记的有病虫害的非果园背景的图片。
作为优选,根据目标检测算法识别所述病虫害数据集和所述干扰数据集,得到训练好的神经网络模型,之前包括:
获取待识别的输入图片,并将所述输入图片均匀划分成多个单元;
对VGG-16深度网络新增卷积层以获得不同尺度的卷积层;
根据Faster R-CNN算法的anchor理念,在每个单元设置尺度不同长宽比不同的先验框;
根据所述有标记的有病虫害的果叶图片对所述先验框进行分类,得到先验框分类误差。
作为优选,根据目标检测算法识别所述病虫害数据集和所述干扰数据集,得到训练好的神经网络模型,包括:
将所述有标记的有病虫害的果叶图片输入至所述神经网络模型;
将所述先验框分类误差作为损失函数,利用反向传播算法,对所述神经网络模型的权重进行迭代调整,使得损失函数的值下降,当迭代次数达到设定的阈值后,得到训练好的神经网络模型。
一种基于病虫害识别的神经网络模型训练装置,包括:
获取模块:用于获取病虫害数据集和干扰数据集;
构建模块:用于根据ssd目标检测算法构建神经网络模型。
训练模块:用于根据目标检测算法识别所述病虫害数据集和所述干扰数据集,得到训练好的神经网络模型。
作为优选,所述获取模块具体包括:
第一获取单元:用于获取各类病虫害的果叶图片和非果园背景的干扰图片;
标记单元:用于对所述各类病虫害的果叶图片进行病虫害标记,对所述非果园背景的干扰图片添加任意病虫害图标并进行病虫害标记;
获得单元:用于获得病虫害数据集和干扰数据集,所述病虫害数据集用于表示有标记的有病虫害的果叶图片,所述干扰数据集用于表示有标记的有病虫害的非果园背景的图片。
作为优选,所述构建模块具体包括:
划分单元:用于获取待识别的输入图片,并将所述输入图片均匀划分成多个单元;
卷积单元:用于对VGG-16深度网络新增卷积层以获得不同尺度的卷积层;
设置单元:用于根据Faster R-CNN算法的anchor理念,在每个单元设置尺度不同长宽比不同的先验框;
分类单元:用于根据所述有标记的有病虫害的果叶图片对所述先验框进行分类,得到先验框分类误差。
作为优选,所述训练模块包括:
输入单元:用于将所述有标记的有病虫害的果叶图片输入至所述神经网络模型;
优化单元:用于将所述先验框分类误差作为损失函数,利用反向传播算法,对所述神经网络模型的权重进行迭代调整,使得损失函数的值下降,当迭代次数达到设定的阈值后,得到训练好的神经网络模型。
一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如上述中任一项所述的一种基于病虫害识别的神经网络模型训练方法。
一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述中任一项所述的一种基于病虫害识别的神经网络模型训练方法。
本发明具有如下有益效果:
本技术中采用的病虫害种类多达19类,类别精确到果类病虫害和叶类病虫害,使得检测的病虫害种类更加全面,并且加入抗干扰数据集,使得训练好的神经网络模型识别误差更小,并且能够适应于大部分场景,识别更全面。
附图说明
图1是本发明实施例实现一种基于病虫害识别的神经网络模型训练方法第一流程图;
图2是本发明实施例实现一种基于病虫害识别的神经网络模型训练方法第二流程图;
图3是本发明实施例实现一种基于病虫害识别的神经网络模型训练方法第三流程图;
图4是本发明实施例实现一种基于病虫害识别的神经网络模型训练方法第四流程图;
图5是本发明实施例实现一种基于病虫害识别的神经网络模型训练方法具体实施流程图。
图6是本发明实施例实现一种基于病虫害识别的神经网络模型训练装置示意图;
图7是本发明实施例实现一种基于病虫害识别的神经网络模型训练装置的获取模块示意图;
图8是本发明实施例实现一种基于病虫害识别的神经网络模型训练装置的处理模块示意图;
图9是本发明实施例实现一种基于病虫害识别的神经网络模型训练装置的输出模块示意图;
图10是本发明实施例实现一种基于病虫害识别的神经网络模型训练装置的具体实施流程图;
图11是本发明实施例实现一种基于病虫害识别的神经网络模型训练装置的一种电子设备示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,一种基于病虫害识别的神经网络模型训练方法,包括以下步骤:
S110、获取病虫害数据集和干扰数据集;
S120、根据目标检测算法识别所述病虫害数据集和所述干扰数据集,得到训练好的神经网络模型。
获取有标记的有病虫害的果叶图片和有标记的有病虫害的非果园背景的图片,根据上述图片加入到目标检测算法中,得到训练好的神经网络模型,并且采用的病虫害种类多达19类,类别精确到果类病虫害和叶类病虫害,使得检测的病虫害种类更加全面,并且加入抗干扰数据集,使得训练好的神经网络模型识别误差更小,并且能够适应于大部分场景,识别更全面。
实施例2
如图2所示,一种基于病虫害识别的神经网络模型训练方法,包括:
S210、获取各类病虫害的果叶图片和非果园背景的干扰图片;
S220、对所述各类病虫害的果叶图片进行病虫害标记,对所述非果园背景的干扰图片添加任意病虫害图标并进行病虫害标记;
S230、获得病虫害数据集和干扰数据集,所述病虫害数据集用于表示有标记的有病虫害的果叶图片,所述干扰数据集用于表示有标记的有病虫害的非果园背景的图片;
S240、根据目标检测算法识别所述病虫害数据集和所述干扰数据集,得到训练好的神经网络模型。
由实施例2可知,本技术采用的病虫害种类多达19类,类别精确到果类病虫害和叶类病虫害,加入非果园背景的干扰图片并加以标记,所以又采用了数据增强技术,对样本进行旋转多个角度,增加样本量,使得到的数据集更加全面。
实施例3
如图3所示,一种基于病虫害识别的神经网络模型训练方法,包括:
S310、获取待识别的输入图片,并将所述输入图片均匀划分成多个单元;
S320、对VGG-16深度网络新增卷积层以获得不同尺度的卷积层;
S330、根据Faster R-CNN算法的anchor理念,在每个单元设置尺度不同长宽比不同的先验框;
S340、根据所述有标记的有病虫害的果叶图片对所述先验框进行分类,得到先验框分类误差;
S350、根据目标检测算法识别所述病虫害数据集和所述干扰数据集,得到训练好的神经网络模型。
实施例3中,构建神经网络模型,这种方法首先是给图片均匀划分成多个单元;由于对于神经网络每增加一层卷积层就会增加一个图片的压缩的特征图,所以ssd方法基于这个原理,对VGG-16深度网络新增多个卷积层以增加多个不同尺度的特征图;接着借鉴Faster R-CNN的anchor理念,对每个单元设置尺度不同,长宽比不同的先验框,预测的标标注框(bbox)就是以这些先验框为基础;接着根据真实的标注框对先验框进行分类回归训练最终的模型。在前沿的目标检测算法中,相比于R-CNN算法更加简单方便,相比于YOLO算法精度更高,所以只要样本良好,样本量足够,训练足够时间,该模型的精度是可以保证的。
实施例4
如图4所示,一种基于病虫害识别的神经网络模型训练方法,包括:
S410、对所述各类病虫害的果叶图片进行病虫害标记,对所述非果园背景的干扰图片添加任意病虫害图标并进行病虫害标记;
S420、获得病虫害数据集和干扰数据集,所述病虫害数据集用于表示有标记的有病虫害的果叶图片,所述干扰数据集用于表示有标记的有病虫害的非果园背景的图片;
S430、将所述有标记的有病虫害的果叶图片输入至所述神经网络模型;
S440、将所述先验框分类误差作为损失函数,利用反向传播算法,对所述神经网络模型的权重进行迭代调整,使得损失函数的值下降,当迭代次数达到设定的阈值后,得到训练好的神经网络模型。
实施例4中,将有标记的有病虫害的果叶图片分类后,加入已经构建好的神经网络模型,用以验证神经网络模型的识别精度并优化。
实施例5
如图5所示,一种具体的实施方式可为:
S510、数据集准备;
通过网络和手机拍照获得柑橘果叶的各种病虫害的图片,并用相关软件对图片进行病虫害人工标记。
S520、无关场景的干扰图片数据集准备;
无关场景由于没有病虫害的果叶存在,即图片无标记,而ssd算法无法将无标记的图片作为训练集训练,所以手动为无关场景图片添加病虫害图标,使其有所标记,这样经过模型训练之后,模型能够学习到标记之外的场景是无关场景,就不会误识别了,由于无关场景的干扰图片制作麻烦,所以数据量有限,所以又采用了数据增强技术,对样本进行旋转多个角度,增加样本量。
S530、训练模型;
将果园病虫害数据集和无关场景干扰数据集放在一起作为总数据集,对总数据集进行划分成训练集和验证集,将训练集放入ssd算法模型中进行训练,得到最终的模型,模型运行的框架是pytorch框架,ssd算法相对于R-CNN算法更加简单,相对于YOLO算法精度更高,该模型的优点有以下几点:将干扰数据作为训练数据加入训练集,训练得到的模型的抗干扰能力更强,出现误分类的概率明显降低;利用ssd前沿算法,使得模型的精度得以保证。
S540、验证模型。
用验证集验证得到的模型精度,对于精度的输出是全方面的,主要体现在以下两个方面:第一,采用下图的标准,输出每个类别的各个标准的精度输出将待识别的柑橘果叶图片输入到训练好的神经网络模型中进行识别,得到的结果为标记出待识别的柑橘果叶图片中有病虫害果叶的位置,并获得该病虫害的种类,由结果可知,整体模型精度达到0.89,针对每个类别,大部分类别的精度都达到了0.8和0.9,甚至有两个类别的精度为1,少部分的类别精度较低,可能是样本量少训练不够。
表1、标准说明
得到对应结果如下:
实施例6
如图6所示,一种基于病虫害识别的神经网络模型训练装置,包括:
获取模块10:用于获取病虫害数据集和干扰数据集;
构建模块20:用于根据ssd目标检测算法构建神经网络模型;
训练模块30:用于根据目标检测算法识别所述病虫害数据集和所述干扰数据集,得到训练好的神经网络模型。
上述装置的一种实施方式可为:获取模块10获取病虫害数据集和干扰数据集,构建模块20根据ssd目标检测算法构建神经网络模型,训练模块30根据目标检测算法识别所述病虫害数据集和所述干扰数据集,得到训练好的神经网络模型。
实施例7
如图7所示,一种基于病虫害识别的神经网络模型训练装置的获取模块10包括:
第一获取单元12:用于获取各类病虫害的果叶图片和非果园背景的干扰图片;
标记单元14:用于对所述各类病虫害的果叶图片进行病虫害标记,对所述非果园背景的干扰图片添加任意病虫害图标并进行病虫害标记;
获得单元16:用于获得病虫害数据集和干扰数据集,所述病虫害数据集用于表示有标记的有病虫害的果叶图片,所述干扰数据集用于表示有标记的有病虫害的非果园背景的图片。
上述装置的获取模块10的一种实施方式可为:第一获取单元12获取类病虫害的果叶图片和非果园背景的干扰图片,在标记单元14标记病虫害标记,获得单元16获得病虫害数据集和干扰数据集。
实施例8
如图8所示,一种基于病虫害识别的神经网络模型训练装置的构建模块20包括:
划分单元22:用于获取待识别的输入图片,并将所述输入图片均匀划分成多个单元;
卷积单元24:用于对VGG-16深度网络新增卷积层,获得不同尺度的卷积层;
设置单元26:用于根据Faster R-CNN算法的anchor理念,在每个单元设置尺度不同长宽比不同的先验框;
分类单元28:用于根据所述有标记的有病虫害的果叶图片对所述先验框进行分类,得到先验框分类误差。
上述装置的构建模块20的一种实施方式可为:划分单元22将所述输入图片均匀划分成多个单元,卷积单元24获得不同尺度的卷积层,设置单元26对上述单元设置成先验框,分类单元28对先验框进行分类,得到先验框分类误差。
实施例9
如图9所示,一种基于病虫害识别的神经网络模型训练装置的训练模块30包括:
输入单元32:用于将所述有标记的有病虫害的果叶图片输入至所述神经网络模型;
优化单元34:用于将所述先验框分类误差作为损失函数,利用反向传播算法,对所述神经网络模型的权重进行迭代调整,使得损失函数的值下降,当迭代次数达到设定的阈值后,得到训练好的神经网络模型。
上述装置的训练模块30的一种实施方式可为:输入单元32将所述有标记的有病虫害的果叶图片输入至所述神经网络模型,以优化单元优化神经网络模型。
实施例10
如图10所示,一种具体的实施装置可为:
S510、数据集准备;
通过网络和手机拍照获得柑橘果叶的各种病虫害的图片,并用相关软件对图片进行病虫害人工标记。
S520、无关场景的干扰图片数据集准备;
无关场景由于没有病虫害的果叶存在,即图片无标记,而ssd算法无法将无标记的图片作为训练集训练,所以手动为无关场景图片添加病虫害图标,使其有所标记,这样经过模型训练之后,模型能够学习到标记之外的场景是无关场景,就不会误识别了,由于无关场景的干扰图片制作麻烦,所以数据量有限,所以又采用了数据增强技术,对样本进行旋转多个角度,增加样本量。
S530、训练模型;
将果园病虫害数据集和无关场景干扰数据集放在一起作为总数据集,对总数据集进行划分成训练集和验证集,将训练集放入ssd算法模型中进行训练,得到最终的模型,模型运行的框架是pytorch框架,ssd算法相对于R-CNN算法更加简单,相对于YOLO算法精度更高,该模型的优点有以下几点:将干扰数据作为训练数据加入训练集,训练得到的模型的抗干扰能力更强,出现误分类的概率明显降低;利用ssd前沿算法,使得模型的精度得以保证。
S540、验证模型。
用验证集验证得到的模型精度,对于精度的输出是全方面的,主要体现在以下两个方面:第一,采用下图的标准,输出每个类别的各个标准的精度输出将待识别的柑橘果叶图片输入到训练好的神经网络模型中进行识别,得到的结果为标记出待识别的柑橘果叶图片中有病虫害果叶的位置,并获得该病虫害的种类,由结果可知,整体模型精度达到0.89,针对每个类别,大部分类别的精度都达到了0.8和0.9,甚至有两个类别的精度为1,少部分的类别精度较低,可能是样本量少训练不够。
实施例11
如图11所示,一种电子设备,包括存储器1101和处理器1102,所述存储器1101用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1102执行以实现上述的一种基于病虫害识别的神经网络模型训练方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述的一种基于病虫害识别的神经网络模型训练方法。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器1101中,并由处理器1102执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机设备中的执行过程。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,存储器1101、处理器1102。本领域技术人员可以理解,本实施例仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
处理器1102可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器1102、数字信号处理器1102(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgRAM503mableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器1102可以是微处理器1102或者该处理器1102也可以是任何常规的处理器1102等。
存储器1101可以是计算机设备的内部存储单元,例如计算机设备的硬盘或内存。存储器1101也可以是计算机设备的外部存储设备,例如计算机设备上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器1101还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器1101用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器1101还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的具体实施例,但本发明的技术特征并不局限于此,任何本领域的技术人员在本发明的领域内,所作的变化或修饰皆涵盖在本发明的专利范围之中。
- 一种基于病虫害识别的神经网络模型训练方法
- 一种基于双眼融合的虹膜识别神经网络模型训练方法