一种基于深度学习的农作物病害检测算法的制作方法

文档序号:17742567发布日期:2019-05-24 20:18阅读:450来源:国知局
一种基于深度学习的农作物病害检测算法的制作方法

本发明涉及图像分类领域,具体涉及了一种基于深度学习的农作物病害检测算法。



背景技术:

早先的图像分类主要通过传统的机器学习的方法,通常分为两个部分:基于特征提取方法和基于模板匹配的方法,这些方法都需要人为地选择特征,同时泛化性不强。随着深度学习的发展,特别是卷积神经网络在图像分类、图像检测和图像分割等方面的应用,所取得的效果是过往使用传统算法无法比拟的。农作物病害诊断对于农业生产来说是至关重要的,通过智能化的手段对病害种类进行检测能够提高农民对病害的认识以及采用相应的措施进行防治,提高农业生产。



技术实现要素:

农作物病害存在着类别间数量不平衡的问题以及个别病害间过于相似的问题,为了解决这些难题,本发明提出了一种基于深度学习的农作物病害检测算法。

为了实现以上目的,本发明提出的方法具体步骤如下:

(1)图像采集,利用摄像头对农作物叶子进行拍摄,获取相关的数据集并对图像重命名,如1.jpg,2.jpg,3.jpg,…,m.jpg等,同时标定每张图像中农作物病害种类;

(2)图像划分,将图像划分成训练集和测试集两部分,两个部分不存在相同的图像,训练集用来训练农作物病害检测模型,测试集用来评估农作物病害检测模型的性能;

(3)图像预处理,统计各类图像的数量并对数量较少的图像进行过采样,对全部图像都进行线上数据增强,包括随机灰度化、左右翻转、上下翻转、对角线翻转、随机裁剪和亮度变化;

(4)训练检测模型,将经过图像预处理后的训练集图像通过有差异性学习速率的迁移学习和以focalloss为损失函数的自适应多尺度resnet50网络,对得到的预测结果与真实标签进行对比计算分类损失,通过带动量的梯度下降算法更新模型参数;

(5)农作物病害图像检测,将测试集中的图像输入到训练好的农作物病害检测模型中,通过前向传播得到该图像的农作物病害类型。

所述步骤(4)中训练包括有差异性学习速率的迁移学习步骤、连结全局最大池化和全局平均池化的步骤、自适应多尺度图像训练的步骤、渐进式学习步骤、计算focalloss步骤和利用带动量的梯度下降算法反向传播训练模型步骤。

如图1所示,所述步骤(4)具体为:

(4.1)如图2所示,利用在imagenet数据集上训练的模型初始化检测网络的参数,同时浅层的卷积网络中使用较小的学习速率进行学习,较深层的卷积网络中使用较大的学习速率进行学习,最后的全连接层使用更大的学习速率进行学习,即采用一种差异性学习速率的迁移学习;

(4.2)如图3所示,在卷积层最后使用全局最大池化层和全局平均池化层进行连结,通过这种方式使得模型具有自适应多尺寸特性,可以输入不同尺寸的图像进行训练;

(4.3)如图4所示,采用渐进式学习方式,即在初始的几个迭代周期使用分辨率较小的图像进行训练,接下来几个迭代周期使用分辨率较大的图像进行训练,最后的几个迭代周期使用分辨率更大的图像进行训练;

(4.4)输入图像通过前向传播得到预测的类别,预测的类别与真实的类别对比计算focalloss,并通过带动量的梯度下降算法反向传播更新模型参数。

所述步骤(5)具体为:将测试集中的农作物病害图像输入到训练好的检测模型中,通过前向传播获得该图像的病害类型。

与现有技术相比,本发明的有益效果是:

本发明的方法相比其他算法使用了差异性学习速率的迁移学习提高了检测性能和泛化能力,同时连结两种全局池化层使得模型保留更多细节信息和具有尺寸自适应性,通过渐进式学习策略加快模型收敛,提高检测性能且使用focalloss缓解类别不平衡的问题,该算法对病状相近的病害具有更好的检测性能。

附图说明

图1为农作物病害检测模型示意图

图2为差异性学习速率的迁移学习示意图

图3为连结两种全局池化层示意图

图4为渐进式学习策略示意图

图5为本专利算法与传统算法的性能比较柱状图

具体实施方式

下面对本发明进行进一步说明。

本发明实施过程及实施例如下:

(1)图像采集,我们采用摄像头对农作物叶子进行拍摄获取相关数据集,每张图像中只有1片叶子,对图像进行重命名,如1.jpg,2.jpg,3.jpg,…,30000.jpg等,同时标定每张图像中农作物病害的类型,一共包括61种农作物病害;

(2)图像划分,将图像划分成训练集和测试集两部分,训练集用于训练检验模型,测试集用于评估检测模型性能,其中训练集包括25460张图像,测试集包括4540张图像;

(3)图像预处理,对训练集中的农作物病害类型进行数量统计,对其中数量少于420张的病害类型进行中心裁剪和随机裁剪等过采样的方式将其数量增加到420张。对处理好的训练集进行线上数据增强,包括随机灰度化、左右翻转、上下翻转、对角线翻转、随机裁剪和亮度变化;

(4)训练检验模型,如图1所示,对resnet50模型的前3个卷积块使用较小的学习速率,对后2个卷积块使用较大的学习速率,对最后的全连接层使用大的学习速率,同时在第5个卷积块的输出端采用全局平均池化层和全局最大池化层进行连结,使用渐进式的学习策略,最后使用focalloss作为损失函数,利用带动量的梯度下降算法训练模型;

具体实施中,动量设置为0.9,每次输进10张图像,每2546步为1个迭代周期,共设置50个迭代周期;前30个迭代周期,resnet50模型的前3个卷积块使用0.00001的学习速率进行学习,对后2个卷积块使用0.0001的学习速率进行学习,对最后的全连接层使用0.001的学习速率进行学习,在第30个迭代周期和第40个迭代周期,前面的学习速率分别降低10倍;在前30个迭代周期中输入图像的尺寸为256*256,在第31个迭代周期到第40个迭代周期输入图像的尺寸为350*350,在最后10个迭代周期中输入图像的尺寸为420*420;在focalloss函数中α设置为0.25,β设置为2;训练结束后,保存模型的参数。

(5)农作物病害图像检测,将测试集中的图像输入到训练好的农作物病害检测模型中,通过前向传播得到该图像的农作物病害类型。

本实施例最后在测试集上进行测试,图5展示了本专利的算法,即改进的resnet50与原resnet50在测试集上的测试结果,可以看到本专利的算法可以带来近2%的性能提升,同时本专利的算法具有更好的泛化性且训练时候收敛速度更快。



技术特征:

技术总结
本发明涉及一种基于深度学习的农作物病害检测算法,包括:(1)获取训练集和测试集并对训练集进行图像预处理;(2)将训练集输入到具有自适应多尺度的模型中进行训练,该模型连结了两种全局池化层,使用了有差异性学习速率的迁移学习同时使用了Focal loss为损失函数;(3)将测试集图像输入到训练好的检测模型中预测图像的病害类型。本发明的方法相比其他算法使用了差异性学习速率的迁移学习提高了检测性能和泛化能力,同时连结两种全局池化层使得模型保留更多细节信息和具有尺寸自适应性,通过渐进式学习策略加快模型收敛且使用Focal loss缓解类别不平衡的问题,该算法对病状相近的病害具有更好的检测性能。

技术研发人员:陈楚城;张灵敏;戴宪华
受保护的技术使用者:中山大学
技术研发日:2019.01.14
技术公布日:2019.05.24
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1