作物叶片病害识别系统

简介: 作物叶片病害识别系统

介绍

  • 由于植物疾病的检测在农业领域中起着重要作用,因为植物疾病是相当自然的现象。

  • 如果在这个领域不采取适当的护理措施,就会对植物产生严重影响,进而影响相关产品的质量、数量或产量。植物疾病会引起疾病的周期性爆发,导致大规模死亡。这些问题需要在初期解决,以挽救人们的生命和金钱。


  • 自动检测植物疾病是一个重要的研究课题,因为它可以在植物叶片上出现病征时在非常早期就监测到大面积的农作物,从而检测疾病的症状。


  • 农田业主和植物护理者(比如,在苗圃中)可以通过早期检测疾病获得很大的好处,以防止更糟糕的情况发生在他们的植物上,并让人类知道应该预先做什么来使其按照预期工作,以防止更糟糕的情况发生在他身上。


目的

  • 这使机器视觉能够提供基于图像的自动检验和过程控制。
  • 相比之下,视觉识别是劳动密集型的、不太准确的,只能在小范围内进行。该项目涉及使用Python设计的自我设计的图像处理算法和技术,以从叶片中分割出疾病,并使用机器学习的概念对植物叶片进行分类,以健康或感染状态。
  • 通过这种方法,植物疾病可以在初期阶段被识别出来,可以使用害虫和感染控制工具来解决害虫问题,同时最小化对人和环境的风险。


步骤

在初始步骤中,选择了所有叶样本的RGB图像。所提出系统的步骤

  • RGB图像采集;
  • 将输入图像从RGB格式转换为HSI格式;
  • 遮蔽绿色像素;
  • 去除遮蔽的绿色像素;
  • 分割组件;
  • 获取有用的片段;
  • 评估分类的特征参数;
  • 为疾病检测配置SVM。
  • 颜色转换:
    HSI(色调、饱和度、强度)颜色模型是一种流行的颜色模型,因为它基于人的感知。转换后,仅考虑HSI颜色空间的H(色调)分量,因为它为我们提供所需的信息。
  • 遮蔽绿色像素: 这是因为绿色像素代表叶片的健康区域。根据指定的阈值值遮蔽绿色像素。

分割:

通过将受感染部分与其他类似颜色的部分(如看起来像疾病的棕色叶子分支)分割出叶子的感染部分,这些部分在遮蔽图像中被考虑在内,并被过滤。所有进一步的图像处理都是在此阶段定义的感兴趣区域(ROI)上进行的。


分类:

从之前的结果中,我们分析和评估诸如叶片面积、叶片感染百分比、叶子周长等特征参数,以及所有叶片图像的SVM分类器。

安装

cd file

安装一些所需的pip包,这些包在requirements.txt文件中指定。

pip3 install -r requirements.txt
sudo python3 setup.py install


就是这样。您已准备好测试应用程序了。

数据集创建

在叶采样器目录中运行:

python3 leafdetectionALLsametype.py -i .

python3 leafdetectionALLmix.py -i .
leafdetectionALLsametype.py


原图

用于在一个相同类别的图像(例如所有图像都感染了)上运行,而leafdetectionALLmix.py 用于为叶子图像的两个类别(感染/健康)创建数据集。请注意:代码设置为仅运行在指定目录中存在的.jpg、.jpeg 和 .png 文件格式图像上。如果您希望,可以通过将其引入两个文件的第52行的条件语句中来添加更多文件格式支持。

检测结果图

#代码 运行

运行以下代码:

python3 GUIdriver.py

其中{浏览}用于选择分类器的输入图像文件。

该代码运行两个文件:

首先,main.py用于图像分割和特征提取。

其次,main.py调用classifier.py对输入图像中的叶子进行分类,以确定其是否“感染”或“健康”。

重要代码

# 企鹅1309399183
while True: 
  if  n == ord('y'or'Y'):
    
    fieldnames = ['fold num', 'imgid', 'feature1', 'feature2', 'feature3']
    
    print ('Appending to ' + str(filename)+ '...')
    
    
    try:
      log = pd.read_csv(filename)
      logfn = int(log.tail(1)['fold num'])
      foldnum = (logfn+1)%10
      L = [str(foldnum), imgid, str(Tarea), str(Infarea), str(perimeter)]
      my_df = pd.DataFrame([L])
      my_df.to_csv(filename, mode='a', index=False, header=False)     
      print ('\nFile ' + str(filename)+ ' updated!' )
        

    except IOError:
      if directory not in os.listdir():
        os.system('mkdir ' + directory)

      foldnum = 0
      L = [str(foldnum), imgid, str(Tarea), str(Infarea), str(perimeter)]

      my_df = pd.DataFrame([fieldnames, L])
      my_df.to_csv(filename, index=False, header=False)
      print ('\nFile ' + str(filename)+ ' updated!' )
      
    finally:
      import classifier
      endprogram()

      
  elif n == ord('n' or 'N') :
    print ('File not updated! \nSuccessfully terminated!')
    break
  
  else:
    print ('invalid input!')
    break
相关文章
|
11月前
|
机器学习/深度学习 人工智能 监控
基于YOLOv8的农作物叶片病害、叶片病斑精准识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目以 YOLOv8 为核心目标检测模型,融合 PyQt5 图形界面交互系统,实现了农作物叶片病害和病斑的精准识别与实时检测。无论是科研教学、农业生产监控,还是AI开发学习,本系统都具备轻量、高效、可视化、一键运行等优势。
|
安全
全息技术有哪些应用?
【6月更文挑战第27天】全息技术有哪些应用?
1178 4
|
存储 JSON Kubernetes
证书管理工具 cfssl 浅尝
证书管理工具 cfssl 浅尝
809 0
|
供应链 数据挖掘 API
解密1688详情 API 接口:获取与运用指南
1688商品详情API接口为企业提供了高效获取商品信息的途径,支持市场分析、供应链管理和个性化服务。通过注册开发者账号、了解接口规范、申请权限、构建请求、发送HTTP请求、解析响应数据等步骤,企业可以成功接入并运用API接口。然而,在使用过程中可能会遇到权限、频率限制、数据格式和性能等问题,需要采取相应的解决方案。随着1688平台的不断发展和技术的不断进步,相信未来商品详情的API接口会提供更多的功能和更优质的服务,为电商行业的创新和发展带来更多的可能性。
473 0
|
数据采集 数据可视化 测试技术
五台山风景区旅游模拟漫游系统的设计与实现_kaic
五台山风景区旅游模拟漫游系统的设计与实现_kaic
|
机器学习/深度学习 人工智能 算法
中草药识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
中草药识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
595 0
|
机器学习/深度学习
注意力机制(三)(不同注意力机制对比)
主要介绍了注意力机制的基本思想,以及注意力机制中一个常见的类型——自注意力机制。前面两篇文章为了帮助大家理解注意力机制的思想用了非常多的类比,以及联系生活实际。 然而,不管类比和联系多么恰当,这些做法多多少少都会让事物本身的特性被类比、联系后的事物所掩盖。
|
弹性计算 异构计算
阿里云gpu云服务器 A10卡 GPU计算型实例 gn7i 价格调整列表
2023年6月6日00:00阿里云官宣完成gpu云服务器 A10卡 GPU计算型实例 gn7i的价格调整,新的价格已于北京时间2023年6月6日00:00生效,生效后您购买的对应ECS产品将按照新价格计费。下面是调整之后新的价格列表。
阿里云gpu云服务器 A10卡 GPU计算型实例 gn7i 价格调整列表
|
前端开发 JavaScript Java
JavaFX学习笔记(二) 关键特性与基本概念
JavaFX学习笔记(二) 关键特性与基本概念
|
存储 安全 算法
隐私计算:可信硬件技术
隐私计算:可信硬件技术
810 0