病虫害识别-面向农作物叶片病害鲁棒性识别的深度卷积神经网络研究

创新点:

  1. 针对实际环境识别精度不高的问题,提出使用一种高阶残差卷积神经网络方法(High-Order Residual and Parameter-Sharing Feedback Convolutional Neutral Network, HORPSF),实现高精度和强鲁棒性的识别。
  2. 针对农作物病害图像复杂、病斑区域小、病斑与北京对比度小从而容易产生两者混淆等特点儿严重影响识别效果,导致鲁棒性不高的问题,提出一种基于自注意力的卷积神经网络(Self-Attention Convolution Neural Network, SACNN)
  3. 针对鲁棒性弱的问题,提出一种告诫残差和参数共享反馈的卷积神经网络模型(High-Order Residual and Parameter-Sharing Feedback Convolutional Neutral Network, HORPSF)

目前的农作物病害图像识别方法类别:

  1. 基于手工设计特征的
  2. 基于深度特征学习的:
  • 深度学习模型来提取特种:使用的公开数据集:PlantVillage数据集/基于简单背景的农作物病害识别。没有其他因素影响,图像清晰,病斑明显。

文章中的方法

加参数共享的是为了->提高识别鲁棒性实现监督精度和鲁棒性两方面的识别性能

自注意力->在前两种方法上,将自注意力机制引入农作物病害识别研究中来:实际环境中强,但是加入高斯和椒盐两种噪声干扰时,不如上一个强

定义高阶残差网络 HOResNet学习丰富细致的特征,从而识别率更高。自然环境采集的AEX-CD9214数据集。

国内外现状

农作物病害识别方法主要有: 田间症状观察:原始、存在主观误判 基于化学和分子生物学的病害检测:需要昂贵的仪器和实验平台 基于光谱技术的检测:需要光谱仪、对环境的参数变化名改,缺乏病害种类的特异性 基于可见光图像的识别:主要针对于这个

对病害做出有效诊断和防治

手工设计特征

能够描述图像类编的相关特征(入颜色、形状纹理等)一般分为图像预处理、特征表示、分类识别等步骤基于手工设计特征的农作物病害图像识别方法流程图

  • 优点 进行了大量研究,取得了较好的识别效果,基于选择的分类器不同而分为不同的方法
  • 缺点 1.费力 2.存在主观因素
  • 例证
  1. 支持向量机(Support Vector Machine,SVM)模型广泛使用
  2. 利用神经网络模型进行分类识别 =Sanyal等人选用神经网络对==水稻两种病害叶片和健康叶片==实现分类识别,实验结果表明其识别率可以达到89.26%
  3. 使用贝叶斯分类器识别 赵玉霞等人利用朴素贝叶斯分类器的统计学习方法对==五种玉米病斑图==进行分类识别 唐朝霞等人通过遗传算法进行特征优选之后,采用贝叶斯分类器识别==玉米病==害图像,使得识别准确率得到了提高 Phadikar等人利用贝叶斯和SVM分类器对==水稻叶褐斑病和叶瘟病==两种病害进行分类。 结果显示,相比SVM分类器,贝叶斯分类器的识别精度高,识别速度快。
  4. 使用随机森林方法识别
  5. 其他分类模型研究, 许良凤等人针对单分类器识别的局限性,面向具有复杂性的玉米叶部病害,提出了一种基于自适应加权的多分类器融合==玉米叶部==病害识别方法

基于深度特征学习的农作物病害识别研究

深度卷积神经功能网络基于深度特征学习的图像识别方法,与传统相比:==可以获取图像的全局/上下文特征==。 只需要迭代学习就可以找到合适的分类特征

  • 多层感知机
  • 卷积神经网络

大多针对的是PlantVillage/简单的图像识别,需要对复杂条件下进行进一步研究

基于高阶残差的卷积神经网络的农作物病害识别

我国是世界上农作物病害发生较为严重的国家之一,病害分布广、突发性强、防空难度大

  1. 柯圣财等人针对传统图像特征表达能力差和适应性不强等问题,引入一个包含5个卷积层、3个采样层和1个全连接层的卷积神经网络提取图像深层特征,以增强图像特征区分性和表达能力。
  2. 残差网络:==2015年由何凯明提出==,其中最主要的就是==残差学习==

原始的卷积神经网络,当网络层加深的时候,会出现精度不变,但是误差增大的情况。因此,为了让网络层数加深,而误差不变大,假如==加入恒等映射则会保持参数量、精度和误差都不会收到影响==。从而让卷积层只学习细微的特征。相当于只在恒等式的右边加入一个趋近于0的函数,使得加入卷积层对于恒等映射的影响不大 即使得:H(x) = f(x) + x。其中F(x)为残差函数,是卷积层需要学习的残差,也是需要关注的细微特征。 ==何凯明的残差函数思想使得网络层数可以很深,但是不会出现梯度消失的现象,深度网络的性能更优==

  • Cheng等人使用ResNet实现复杂农田背景下的害虫的准确识别. ResNet101精度最该
  • Artzai等人通过在ResNet50的基础上,用两个连续的33的卷积层代替ResNet50中的第一个77的卷积层,后面都接的是3*3的最大池化层,从而提取更好的细粒视觉特则恶化功能。 0.78 -》0.87 ==以上都是基于ResNet进行预训练模型的迁移学习,或者只该卷积核的尺度。==

结构图:

定义了:高阶残差模块,如上图。圆圈⭕️表达是和操作层,将多个输入做和运算,将这种级联操作定义为高阶残差模块(HOR)

3个卷积层:CONV1\2\3 输出分别为X1\2\3 X1和X3的通道数相同,可以将X1和X3级联起来,结果为整个残差子网络的总输出

借助了残差学习的思想,卷积层学习的是残差函数 假如 H(x) = F(x) + X1 = X1 + X3,则残差函数F(x) = H(x) - X1 = X3。 整个网络中实现了将经过CONV!卷积的底层特征和经过CONV1\2\3三个卷积层卷积到的高级细节特征一起提取出来,传递到下面的网络结构中继续进行提取 == 总结:该模块可以利用网络中底层特征的斜街描述和高层特征的全局表达,为农作物病害表现提供丰富细致的特征表达== (在PlantVillage/AES-CD9214(自建)上模拟验证)

  1. 残差模块必要性验证 测试中间带/不带卷积层的区别(传统是不带的)-> 带了卷积层更好

  2. 卷积层层数的选择 列出在残差模块3/4中间插入3-6层卷积成 -> 5层效果最好 卷积层数增加导致模型参数增大,因此对于训练数据量较少的时候,参数过多容易过拟合

  3. 参数详情 选择11/3 3两种卷积核 ==避免训练样本不足导致的过拟合问题:选择更深的网络设计策略来设计通道的每一层,在每一层上均使用小通道==

  4. 方法实现细节 使用Softmax作为目标函数 ==优化算法==:Adam最优化算法,学习率2*10^-3, epoch = 120 ==PlantVillage==:有关农业的问答论坛,数据集基于该论坛建成 ==AES-CD9214==:做着在依然环境下,6种原始病害图像共2240张

对比方法

采用CNN、FB(带反馈的军机神经网络)、HOResNet作为对照


基于高阶残差和参数共享反馈的卷积神经网络农作物病害识别方法

(a)图像中出现了人手,给识别带来干扰;(b)图像中水沟,杂草等背景影响主体病害图像;(c)图像中固定桩的出现给图像带来了识别干扰:(d)光照不足影响图像质量和识别准确率:(e)光照过强,使得图像主体曝光白化;(f)杂草遮挡病害部位;(g)塑料薄膜出现导致背景复杂:(h)水珠、污溃使得图像病斑变形

==引入了高阶残差模块提高了准确率==

他人的方法:

  1. 构建一个两路对称且权值共享的深度卷积神经网络来增强目标的可识别性,来解决目标跟踪过程中遮挡、光照变化等问题的鲁棒性
  2. 一种通过稳定性训练提高深度网络鲁棒性的方法,该方法,对输入图像具有小扰动的图像进行训练,保持模型保持恒定,具有更高的鲁棒性,在噪声数据集上进行测试时测试准确率更高
  3. 一种多级卷积神经网络提取多尺度特征,提高图像识别的鲁棒性。
  4. 提出一种深度对准网络(解决面部图像的头部姿势大的变化),使用整个面部图像在所有阶段
  5. ==在卷积神经网络中引入反馈回路,证明了反馈网络有助于更好地捕捉具有复杂背景和多个物件的图像中预期目标的视觉注意力,而且反馈网络具有一定水平的选择性,可以自上而下推理过程中提供非相关抑制,允许模型聚焦于提高类置信度的最显著图像区域==

作者的方法: 将反馈网络引入上文的高阶残差网络中

结构图:

级联机制:链接了前三个残差模块的输出=》提高模型的识别率

  • 参数共享反馈子网络:

在HORPSF方法中定义了一个新的参数共享反馈子网络 将卷积层重新加载,加载之后进行两次卷积,再将卷积结果返回到前面的浅层,重复加载后作为输出传递到后面的网络层模型中=》将网络中深层卷积层的特征反馈至浅层卷积层,进行再一次的精细过滤调整,进一步压制背景噪声

  • 网络参数:

对比方法:

  1. SVM(RBF)方法: 对叶片特征进行提取之后使用基于径向基核函数RBF的SVM分类器来对提取到的叶片特征进行分类。其中SVM使用的是libsvm来实现的,而特征提取使用的LEAR的方法实现的gist特征提取
  2. LeafSnap NN 使用LEAR的方法提取gist特征之后,使用神经网络对提取到的叶片的gist特征进行分类识别
  3. HCF SVM(RBF) 对某表中(文献96中的表1)列出来的手工设计的特征进行提取之后使用基于RBF的SVM分类器进行分类。
  4. HCF-ScaleRobust SVM(RBF) 对HCF特征中去除叶轮廓长度、面积和骨架长度的其他手工特征进行提取,并使用基于RBF的SVM分类器进行分类
  5. Combine线性SVM方法中特征提取包括一个卷积神经网络ConvNet提取的特征、HCF-ScaleRobust特征。其中ConvNet是一个包括5个卷积层、3个最大池化层和2个全链接层的神经网络系统,用来提取叶片集的特征。HCF-ScaleRobust特征是手工设计的特征,包括:紧性(面积/周长2)、坚固性(凸面面积/面积)、周长、骨架长度/周长、以及椰香酥强度特征(包括墙堵住、最大值、范围、均值、中植、标准偏差、峰度、偏度)等。
  6. SIFT线性SVM方法: 通过提取SIFT特征,使用基于稀疏编码的线性空间金字塔匹配SPM核的简单现实性SVM分类方法的分类识别

==本文的方法==: 采用CNN\PSF\HOR\HORPSF四种方法进行对比实验

基于自注意力的卷积神经网络农作物病害图像识别研究

深度学习里的注意力机制,源于人脑的注意力机制。只使用一个很小的感受野来处理图像需要特别关注的区域,使得高维的图像处理计算难度降低。深度卷积神经网络本身就自带注意力的功能。激活的维度正好就是显著性区域。 自注意力机制是注意力机制的一种特殊情况,将自注意力机制引入到卷积神经网络中,更好的对农作物病斑区域重点关注。

图中框标出的是病斑区域,可见大部分病斑区域小,与背景对比度小,容易混渚病斑和背景,从而会给识别带来挑战。

网络架构

Self-Attention Convolutional Neural Network, SACNN 基于自注意力的卷积神经网络

其中普通举行是基本网络Base-Net, 中间的位自注意力模块(Self-Attention,SA)

  • Base-Net 3个残差模块、1个最大池化层、3个卷积层、1个全局平均池化层、一个Softmax层,如下图

其中

  1. 第一个卷积层和第三个卷积层都是33卷积核,中间为11
  2. 第一个步长伟2,将输入尺寸减小
  3. 整个网络只用了11和33规格的卷积核,使得参数量大大减少,页避免了图像及过小而产生个过拟合
  4. 使用更深的网络设计策略,每一层使用的都是小通道,最小数为8,最大数为128
  5. 使用3个连续的残差模块,提高网路识别性能,抑制过拟合,==解决对于样本数量不足的训练问题==
  • 自注意力网络:

⨂表示的是矩阵乘法操作:⊕表示的是求和操作,其上方的μ表示SA(x)需要乘以系数μ之后再进行求和操作;卷积层虚线引向的框中列出的是三个卷积层的相应参数,其中c为输入的通道数,ratio表示通道设置比例,可取1/2,1/8,1/10,1/16等。 将基本网络卷积层输出的特征映射In(X)输入到自注意力网络时,首先并行经过卷积层Conv1、Conv2、Conv3卷积,其输出分别为L(x)、M(x)、N(x)。自注意力网络中的卷积层参数如图5.4所示,其中Convl和Conv2通道数为c*ratio,这里c为输入In(x)的通道数,ratio是一个比例系数,可以取1/2、1/4、1/6、1/8、1/10、1/16等,具体取值需要通过实验测试来确定最佳值。

后续再对合理性进行验证

对比方法:

基于SACNN的农作物病害图像识别系统 AES-CDR(Crop Disease Recognition, CDR)

AES-CDR系统可以实现6种病害类别和非病害类别之间的分类识别

总结

  1. 针对实际环境识别精度不高,设计并实现了高阶残差网络------==高阶残差卷积神经网络方法==(High-Order Residual Convolutional Neural Network HOResNet)
  2. 针对实际环境下识别鲁棒性弱的问题,设计并实现了==参数共享反馈网络==------(High-Order Residual and Parameter Sharing Feedback Convolutional Neural Network, HORPSF)
  3. 针对农作物病害图像背景复杂,病斑区域小、病斑与北京对比度小从而造成两者混淆等特点,导致识别鲁棒性不高的问题,提出了==一种基于自注意力的卷积神经网络==(Self-Attention Convolutional Neural Network, SACNN)
相关推荐
杜杜的man3 分钟前
【go从零单排】迭代器(Iterators)
开发语言·算法·golang
小沈熬夜秃头中୧⍤⃝19 分钟前
【贪心算法】No.1---贪心算法(1)
算法·贪心算法
木向1 小时前
leetcode92:反转链表||
数据结构·c++·算法·leetcode·链表
阿阿越1 小时前
算法每日练 -- 双指针篇(持续更新中)
数据结构·c++·算法
skaiuijing1 小时前
Sparrow系列拓展篇:对调度层进行抽象并引入IPC机制信号量
c语言·算法·操作系统·调度算法·操作系统内核
Star Patrick1 小时前
算法训练(leetcode)二刷第十九天 | *39. 组合总和、*40. 组合总和 II、*131. 分割回文串
python·算法·leetcode
武子康3 小时前
大数据-214 数据挖掘 机器学习理论 - KMeans Python 实现 算法验证 sklearn n_clusters labels
大数据·人工智能·python·深度学习·算法·机器学习·数据挖掘
pianmian18 小时前
python数据结构基础(7)
数据结构·算法
好奇龙猫10 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
sp_fyf_202410 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘