本发明涉及数据增强技术领域,特别涉及一种用于农作物病害数据的增强方法。
背景技术:
农作物病害是影响农作物增产增收的重要因素,实现对作物病害类型以及病害程度的精准识别和及时预防是保证农业生产和国民经济的前提。传统的病害检测技术主要依靠植保专家的个人经验和专业的病理学分析,存在着实时性差、工作效率低下、耗费人力物力等难题。近年来,借助于人工智能的图像识别技术越来越多的被应用到农业工程领域,对作物早期的病害检测提供了极大的助力。其核心是基于深度学习以及卷积神经网络的图像识别技术,因此,图像识别的准确率将直接影响到农作物病害预防效果的好坏。
在近几年深度学习的发展中,越来越多的神经网络架构被提出,这些神经网络模型往往需要较大的训练集以保证模型的识别准确率。如何扩充一定数量和均衡分布的数据集是图像识别领域中的一个普遍问题。在缺乏可靠数据集的情况下,利用数据增强技术扩大图像识别与分类中的训练集已经成为提高模型性能所不可或缺的手段。农业病害数据集往往不易获得,因此将数据增强技术应用到农业病害识别领域是业界亟待解决的技术问题。
对健康的作物叶片进行病斑化处理可以扩充大量的病害叶片数据集,目前有以下几种深度学习方法来获取与原始健康叶片图像对应的病斑图片。如利用传统的生成对抗网络gan(generativeadversarialnetworks)进行对健康叶片图像病斑化处理,经验证,该方法无法准确还原精准的细微的病斑图案信息,转化得到的病斑图片细节模糊,图像质量不高。还可以利用成对图像进行训练的有监督的生成对抗网络模型pix2pix(像素到像素)网络,pix2pix网络模型经过训练以后可以生成高保真的目标图像,但pix2pix在训练时需要成对的图像,在农作物病害识别领域中,所谓成对即健康叶片与病斑叶片的形状大小须保持一致或极度相似,只有这样才能形成健康叶片图像与病斑叶片图像一一对应的成对关系。而这种成对的图像数据是很难获得的,导致无法很好地训练pix2pix网络模型。与上述方法不同的是循环生成对抗网络(cyclegenerativeadversarialnetworks,cyclegan),cyclegan是图像转换领域的代表之一,其最大的特点就是无需成对的图像数据就可以实现效果足够好的图片,它是一种适用于各种图像任务的通用解决方案。
但以上常见的生成对抗网络模型对健康叶片病斑化的效果存在生成病斑发散,图片真实度不够高等问题。因此基于以上网络模型的数据增强技术很难用于农业病害识别领域。
技术实现要素:
本发明的目的在于克服上述背景技术中的不足,提供一种适应于农作物病害叶片图像识别领域的数据增强方法。
为实现以上目的,采用一种用于农作物病害数据的增强方法,包括如下步骤:
获取待增强的农作物健康叶片图像;
将待增强的农作物健康叶片图像输入至训练好的生成对抗网络模型中,生成病斑叶片图像,所述生成对抗网络模型包括生成器和判别器,所述生成器的网络架构和所述判别器的网络架构中均设置有类激活图注意力模块。
进一步地,所述生成器包括依次连接的第一编码器、第一类激活图注意力模块和解码器,所述判别器包括依次连接的第二编码器、第二激活图注意力模块和分类器。
进一步地,所述第一类激活图注意力模块和第二类激活图注意力模块均包括全局平均池化层、全局最大池化层、第一全连接层、第二全连接层、第一拼接层、辅助分类器、第二拼接层和卷积层,全局平均池化层输出连接第一全连接层,全局最大池化层的输出连接第二全连接层,第一全连接层和第二全连接层的输出均连接第一拼接层,第一拼接层的输出连接辅助分类器,辅助分类器的输出与第二拼接层输入连接;
全局平均池化层和全局最大池化层的输出还分别经不同的权重值与编码器特征图相乘并作为所述第二拼接层的输入,编码器特征图为所述生成器或所述判别器中的编码器的输出结果,第二拼接层的输出与卷积层连接。
进一步地,所述第一编码器包括第一下采样层和第一残差网络,第一采样层的输出与第一残差网络的输入连接,第一残差网络的输出与所述类激活图注意力模块输入连接。
进一步地,所述解码器包括上采样层和第二残差网络,第二残差网络的输入与所述类激活图注意力模块的输出连接,第二残差网络的输出与上采样层的输入连接,上采样层的输入为所述生成器生成的图像。
进一步地,所述第二编码器包括第二下采样层,第二下采样层的输出与所述第二类激活图注意力模块的输入连接。
进一步地,所述分类器包括全连接卷积神经网络,其输入与所述第二类激活图注意力模块的输出连接、输出为所述判别器的分类结果。
进一步地,所述生成器的激活函数采用线性整流函数,所述判别器的激活函数采用泄露修正线性单元。
进一步地,所述对抗网络模型的损失函数包括对抗损失函数、循环损失函数、一致性损失函数和cam损失函数,其中:
对抗损失函数为:
其中,s为健康叶片图像构成的源域,t为病斑叶片图像构成的目标域,x为从源域或者从目标域中采样的一张图像,gs→t(x)表示将一张来自源域的图片经过生成器g转换为目标域的结果,ex~t:表示图像x来自于目标域t,ex~s表示图像x来自于源域s,dt(x)表示判别器dt对x的判别结果,dt表示目标域判别器;
循环损失函数为:
一致性损失函数为:
cam损失函数为:
lcam=x~s[log(())] x~t[log(1-n())]
其中,n是cam模块结构中的辅助分类器。
进一步地,在所述获取待增强的农作物健康叶片图像之前,还包括:
采集农作物的健康叶片图像以及病斑叶片图像,并对图像执行多角度旋转伸缩变化处理;
将处理后的图像进行尺寸大小归一化预处理,并由归一化预处理后的图像构建样本数据集,其中样本数据集包括由健康叶片图像构成的源域和由病斑叶片图像构成的目标域;
将源域划分为第一训练集和第一测试集,将目标域划分为第二训练集和第二测试集;
利用第一训练集和第二训练集对构建的生成对抗网络模型进行训练;
利用第一测试集和第二测试集,对构建的生成对抗网络模型进行测试,得到所述预先训练好的生成对抗网络模型。
与现有技术相比,本发明存在以下技术效果:本发明在构建生成对抗网络模型时,在生成器和判别器中加入了类激活图注意力模块,注意特征图帮助生成器将注意力集中在与目标区域有区别的源图像区域,使得生成对抗网络模型生成的图片形状以及纹理更加写实,适用于农作物叶片图像的数据增强。
附图说明
下面结合附图,对本发明的具体实施方式进行详细描述:
图1是一种用于农作物病害数据的增强方法的流程图;
图2是类激活图注意力模块的网络结构图;
图3是生成对抗网络模型框架图。
具体实施方式
为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。
如图1所示,本实施例公开了一种用于农作物病害数据的增强方法,包括如下步骤s1至s2:
s1、获取待增强的农作物健康叶片图像;
s2、将待增强的农作物健康叶片图像输入至训练好的生成对抗网络模型中,生成病斑叶片图像,所述生成对抗网络模型包括生成器和判别器,所述生成器的网络架构和所述判别器的网络架构中均设置有类激活图注意力模块。
需要说明的是,本实施例通过在生成器和判别器中都加入了类激活图注意力模块,使得模型生成的图片形状以及纹理更加写实。
作为进一步优选的技术方案,本实施例在上述步骤s1之前,还包括构建样本集、构建生成对抗网络模型以及模型训练,其中:
(1)构建样本集:
采集一种农作物(如苹果、葡萄和玉米等)的健康叶片图像以及某种特定病害(如炭疽病)的病斑叶片图像,为了更好地训练生成对抗网络模型,对图像样本执行多角度旋转和伸缩变化处理,得到处理后的图像;
将所有处理后的图像均归一化处理为256×256像素大小,在整个256×256像素大小的图像中,叶片的图像区域应该尽量大;
利用归一化预处理后的图像,构建样本集,其中构建好的健康叶片样本集称之为源域s,把病斑叶片样本集称之为目标域t;
源域s分为训练集strain和测试集stest,目标域也分为训练集ttrain和测试集ttest。
其中,训练集用来完成对生成对抗网络模型的训练与调整,测试集用来测试模型的生成效果,训练集中的每一张图片都会被用来训练模型,以确保泛化能力。
需要说明的是,农作物叶片高清图像一般通过电子设备比如手机的摄像头对作物叶片进行拍照,然后将获取得到的叶片高清图像进行裁剪等预处理,使其保证叶片尽量占整张图像的大半部分。并且使得图像像素调整为256×256格式。因为彩色图像是rgb格式,因此一张图像的像素点个数即特征维度为256×256×3。所述健康叶片数据集和高清病害图像数据集应均含有不少于500张的高清图片,利用样本集训练生成对抗网络模型的最终实现的目的是将一张健康的叶片图像转化为有病斑的叶片图像。
(2)构建生成对抗网络模型,包括生成器网络架构、判别器网络架构以及用于训练模型的目标损失函数;整个生成对抗网络是类似cyclegan的循环网络结构,源域s到目标域t和目标域t到源域s所使用的生成器g以及判别器d的网络架构是一样的,生成器和判别器中加入了类激活图(cam,classactivationmapping)注意力模块。
其中,生成器包括依次连接的第一编码器、第一类激活图注意力模块和解码器,判别器包括依次连接的第二编码器、第二激活图注意力模块和分类器。
其中,第一类激活图注意力模块和第二类激活图注意力模块均包括全局平均池化层、全局最大池化层、第一全连接层、第二全连接层、第一拼接层、辅助分类器、第二拼接层和卷积层,全局平均池化层输出连接第一全连接层,全局最大池化层的输出连接第二全连接层,第一全连接层和第二全连接层的输出均连接第一拼接层,第一拼接层的输出连接辅助分类器,辅助分类器的输出与第二拼接层输入连接;
全局平均池化层和全局最大池化层的输出还分别经不同的权重值与编码器特征图相乘并作为所述第二拼接层的输入,编码器特征图为所述生成器或所述判别器中的编码器的输出结果,第二拼接层的输出与卷积层连接。
其中,在生成器中:第一编码器包括第一下采样层和第一残差网络,第一采样层的输出与第一残差网络的输入连接,第一残差网络的输出与所述类激活图注意力模块输入连接。解码器包括上采样层和第二残差网络,第二残差网络的输入与所述类激活图注意力模块的输出连接,第二残差网络的输出与上采样层的输入连接,上采样层的输入为所述生成器生成的图像。
其中,在判别器中:第二编码器包括第二下采样层,第二下采样层的输出与所述第二类激活图注意力模块的输入连接;分类器包括全连接卷积神经网络,其输入与所述第二类激活图注意力模块的输出连接、输出为所述判别器的分类结果。
以下对生成器和判别器的网络结构的图像处理过程进行说明:
a)生成器的图像处理过程:
在第一编码器中利用下采样层是对输入端来自源域s的256×256×3的rgb格式图像进行下采样,通过3个卷积神经网络层将256×256×3的原始特征转化为64×64×256的特征。然后将64×64×256的特征经过4个尺寸结构相同的残差模块构成的残差网络继续提取特征,最后输出的特征维度仍然为64×64×256。
在第一类激活图注意力模块中将残差网络输出的64×64×256维度的编码器特征图输入到cam模块中,类激活图中使用了全局平均池化层以及全局最大池化层。对于64×64×256维度的编码器特征图的每一个通道,赋予一个权重。即共有256个权重,权重决定了该通道对应64×64特征的重要程度。权重和编码器特征图结合即可得到注意力图。这样就实现了编码器特征图下的注意力机制。由于有两个不同的池化层,将平均池化和最大池化层经过全连接层得到的两个1维特征向量拼接成2维向量。然后送入辅助分类器,做源域s和目标域t的分类判断。将全局平均池化以及全局最大池化得到的注意力图做拼接处理,再经过一层卷积层还原为原输入维度相同的64×64×256特征图。
在解码器中将第一类激活图注意力模块输出的64×64×256的特征作为输入,同样经过4个尺寸结构相同的残差模块提取特征,最后输出的特征维度仍然为64×64×256。然后将64×64×256的特征进行上采样,经过3个卷积层将特征还原为256×256×3的特征,即为生成器g生成的图像gs→t。
解码器和编码器同样采用是残差网络模块,与编码器不同的是,解码器中采用了自适应层实例归一化(adalin,adaptivelayer-instancenormalizationfunction)函数,它能够帮助注意力模型更好地控制形状以及纹理的变化量。
b)判别器的图像处理过程:
在第二编码器中,将256×256×3的图像作为第二编码器的输入,首先经过第二下采样层,通过6个卷积神经网络层后输出的特征维度为8×8×2048。
第二编码器输出的8×8×2048特征图作为第二类激活图注意力模块的输入,经过全局平均池化以及全局最大池化层和全连接层等处理后的最终输出特征图维度还是8×8×2048。
第二类激活图注意力模块的输出作为分类器的输入,经过一个全连接卷积神经网络层最终输出维度为8×8×1。
作为进一步优选的技术方案,所述生成器的激活函数采用线性整流函数,所述判别器的激活函数采用泄露修正线性单元。
作为进一步优选的技术方案,所述对抗网络模型的损失函数包括对抗损失函数、循环损失函数、一致性损失函数和cam损失函数,其中:
(1)对抗损失函数为:
需要说明的是,对抗损失函数的作用使得生成的图像分布接近目标域,是每一个生成对抗网络模型成功生成目标图像的关键;本实施例中对抗损失函数与原始生成对抗网络中所采用的对数损失函数不同的是,此处采用的是最小均方差损失,更有利于模型的稳定训练。
(2)循环损失函数为:
需要说明的是,模式坍塌指的是模型产生样本图像分布单一的情况,即模型趋于生成同一张被判别器分类成目标域t中的图像。将该循环损失函数函数应用到生成器中,能够有效解决生成对抗网络模型中的模式坍塌问题。
(3)一致性损失函数为:
需要说明的是,一致性损失函数保证了模型输入图片和输出图片的颜色分布是相似的。
(4)cam损失函数为:
lcam=x~s[log(())] x~t[log(1-n())]
其中,n是cam模块结构中的辅助分类器,s为健康叶片图像构成的源域,t为病斑叶片图像构成的目标域,x为从源域或者从目标域中采样的一张图像,gs→t(x)表示将一张来自源域的图片经过生成器g转换为目标域的结果ex~t:表示图像x来自于目标域t,ex~s表示图像x来自于源域s,dt(x)表示判别器dt对x的判别结果,dt表示目标域判别器。
作为进一步优选的技术方案,整个模型的最终优化目标为:
λ1lgan 2lcycle 3lidentity 4lcam
其中,λ1=1,λ2=10,λ3=10,λ4=1000。
(3)模型训练与测试:
按照上述模型的网络结构,如图3所示,分别构建源域s到目标域t的生成器gs→t和目标域t到源域s的生成器gt→s,同时分别对应两个判别器dt和ds。dt用来区分图像是生成器gs→t生成的图像还是真实目标域t中的图像,ds用来区分图像是生成器gt→s生成的图像还是真实源域s中图像。
采用pytorch深度学习框架,使用训练集strain、训练集ttrain对构建的模型进行训练,用梯度下降法优化卷积神经网络的参数,得到最终的训练好的模型训。使用测试集stest、测试集ttest测试网络模型转换的效果,经过实验,可以通过健康叶片图像生成逼真的病斑叶片图像。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种用于农作物病害数据的增强方法,其特征在于,包括:
获取待增强的农作物健康叶片图像;
将待增强的农作物健康叶片图像输入至训练好的生成对抗网络模型中,生成病斑叶片图像,所述生成对抗网络模型包括生成器和判别器,所述生成器的网络架构和所述判别器的网络架构中均设置有类激活图注意力模块。
2.如权利要求1所述的用于农作物病害数据的增强方法,其特征在于,所述生成器包括依次连接的第一编码器、第一类激活图注意力模块和解码器,所述判别器包括依次连接的第二编码器、第二激活图注意力模块和分类器。
3.如权利要求2所述的用于农作物病害数据的增强方法,其特征在于,所述第一类激活图注意力模块和第二类激活图注意力模块均包括全局平均池化层、全局最大池化层、第一全连接层、第二全连接层、第一拼接层、辅助分类器、第二拼接层和卷积层,全局平均池化层输出连接第一全连接层,全局最大池化层的输出连接第二全连接层,第一全连接层和第二全连接层的输出均连接第一拼接层,第一拼接层的输出连接辅助分类器,辅助分类器的输出与第二拼接层输入连接;
全局平均池化层和全局最大池化层的输出还分别经不同的权重值与编码器特征图相乘并作为所述第二拼接层的输入,编码器特征图为所述生成器或所述判别器中的编码器的输出结果,第二拼接层的输出与卷积层连接。
4.如权利要求2所述的用于农作物病害数据的增强方法,其特征在于,所述第一编码器包括第一下采样层和第一残差网络,第一采样层的输出与第一残差网络的输入连接,第一残差网络的输出与所述类激活图注意力模块输入连接。
5.如权利要求2所述的用于农作物病害数据的增强方法,其特征在于,所述解码器包括上采样层和第二残差网络,第二残差网络的输入与所述类激活图注意力模块的输出连接,第二残差网络的输出与上采样层的输入连接,上采样层的输入为所述生成器生成的图像。
6.如权利要求2所述的用于农作物病害数据的增强方法,其特征在于,所述第二编码器包括第二下采样层,第二下采样层的输出与所述第二类激活图注意力模块的输入连接。
7.如权利要求2所述的用于农作物病害数据的增强方法,其特征在于,所述分类器包括全连接卷积神经网络,其输入与所述第二类激活图注意力模块的输出连接、输出为所述判别器的分类结果。
8.如权利要求2所述的用于农作物病害数据的增强方法,其特征在于,所述生成器的激活函数采用线性整流函数,所述判别器的激活函数采用泄露修正线性单元。
9.如权利要求2所述的用于农作物病害数据的增强方法,其特征在于,所述对抗网络模型的损失函数包括对抗损失函数、循环损失函数、一致性损失函数和cam损失函数,其中:
对抗损失函数为:
其中,s为健康叶片图像构成的源域,t为病斑叶片图像构成的目标域,x为从源域或者从目标域中采样的一张图像,gs→t(x)表示将一张来自源域的图片经过生成器g转换为目标域的结果,ex~t:表示图像x来自于目标域t,ex~s表示图像x来自于源域s,dt(x)表示判别器dt对x的判别结果,dt表示目标域判别器;
循环损失函数为:
一致性损失函数为:
cam损失函数为:
lcam=ex~s[log(n(x))] ex~t[log(1-n(x))]
其中,n是cam模块结构中的辅助分类器。
10.如权利要求1-9任一项所述的用于农作物病害数据的增强方法,其特征在于,在所述获取待增强的农作物健康叶片图像之前,还包括:
采集农作物的健康叶片图像以及病斑叶片图像,并对图像执行多角度旋转伸缩变化处理;
将处理后的图像进行尺寸大小归一化预处理,并由归一化预处理后的图像构建样本数据集,其中样本数据集包括由健康叶片图像构成的源域和由病斑叶片图像构成的目标域;
将源域划分为第一训练集和第一测试集,将目标域划分为第二训练集和第二测试集;
利用第一训练集和第二训练集对构建的生成对抗网络模型进行训练;
利用第一测试集和第二测试集,对构建的生成对抗网络模型进行测试,得到所述预先训练好的生成对抗网络模型。
技术总结