作物叶片病害识别系统

2024-01-15 10:28

本文主要是介绍作物叶片病害识别系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

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

  • 在这里插入图片描述

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

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

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

目的

  • 这使机器视觉能够提供基于图像的自动检验和过程控制。
  • 相比之下,视觉识别是劳动密集型的、不太准确的,只能在小范围内进行。该项目涉及使用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)%10L = [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 = 0L = [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 classifierendprogram()elif n == ord('n' or 'N') :print ('File not updated! \nSuccessfully terminated!')breakelse:print ('invalid input!')break

这篇关于作物叶片病害识别系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/608569

相关文章

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

LabVIEW焊缝视觉识别系统

随着自动化技术的发展,焊接工艺也在向智能化和自动化转型。介绍了一种基于LabVIEW开发的自动化焊接机器人视觉识别系统,用于提高焊接质量和效率,特别适用于复杂或危险环境下的操作。 项目背景 在传统焊接工艺中,焊接质量和效率受到人为操作的限制,且在危险或复杂环境中的应用存在安全风险。能自动识别焊缝位置并精确执行焊接任务的机器人系统,既可以提高生产效率,又能确保操作安全。 系统组成及

AI深度学习项目-yolo4_tiny 垃圾分类识别系统

项目概述 目标 本项目旨在开发一个高效的垃圾分类识别系统,利用深度学习技术特别是YOLOv4-tiny版本来实现垃圾的自动分类。YOLOv4-tiny作为YOLOv4的一个轻量化版本,在保证较高精度的同时,能够提供更快的检测速度,非常适合资源受限的设备或者要求实时性的应用场景。 技术栈 深度学习框架:PyTorch目标检测算法:YOLOv4-tiny编程语言:Python硬件加速:G

[数据集][目标检测]玉米病害检测数据集VOC+YOLO格式6000张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6000 标注数量(xml文件个数):6000 标注数量(txt文件个数):6000 标注类别数:4 标注类别名称:["Corn","Damaged Corn","Maize","Plaga"] 每个类别标注的框数:

YOLOv5课堂行为识别系统+GUI界面

课堂行为检测 gui/课堂行为识别系统/YOLOv5课堂行为识别/ yolov5/opencv/计算机视觉/python程序/深度学习/pytorch 数据集+标注/配置好环境程序可直接运行/带UI界面/代码+数据集/代码+数据集 [功能]图片识别/视频识别/摄像头识别 损失/准确率等数据可在tensorboard中查看 [种类]可识别hand-raising/reading/writi

番茄叶部病害-目标检测数据集(包括VOC格式、YOLO格式)

番茄叶部病害-目标检测数据集(包括VOC格式、YOLO格式) 数据集:链接:https://pan.baidu.com/s/1hZdoXcYEcJaw9spazrxGZg?pwd=tsaw 提取码:tsaw 数据集信息介绍: 共有 534 张图像和一一对应的标注文件 标注文件格式提供了两种,包括VOC格式的xml文件和YOLO格式的txt文件。 标注的对象共有以下几种: [‘To

助力航运管理数字智能化,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建江面河道运输场景下来往航行船只自动检测识别系统

在全球化浪潮的推动下,物流行业作为连接世界的桥梁,其快速发展与进化不仅重塑了国际贸易的格局,更深刻影响着全球贸易金融的进程。其中,海运作为大宗商品跨国、全球化贸易的支柱性运输方式,其重要性不言而喻。随着各国对航海运输的重视日益加深,构建世界级一流的海运队伍与港口设施已成为共同的目标。然而,传统的海运管理模式往往受限于工业化思维的束缚,缺乏数字化、智能化的技术支撑,难以适应快速变化的市场需求与竞争态

探索分析文档布局,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建大规模文档数据集DocLayNet场景下文档图像布局智能检测分析识别系统

随着数字化和信息化的快速发展,大量的文档(如合同、报告、表格、发票等)以电子形式存在,这些文档中包含了丰富的信息。然而,这些信息往往以非结构化的形式存在,难以直接被计算机程序理解和处理。文档布局分析任务的目的就是将这些非结构化的文档转换为结构化的数据,从而使得计算机能够自动地理解、分类、检索和处理这些文档中的信息。 为了推动文档布局分析技术的发展,需要一个大规模、多样性、高质量的数据集来训练和评

基于Spring Boot的文字识别系统

前端使用html+css+js,后端使用Spring Boot,数据库使用mysql,识别算法有两个,一个是使用百度OCR接口,一个是自己写一个python,用flask包装。 其中百度OCR接口可以去免费申请,然后把appid、apikey、secretKey填入application.properties即可 application.properties spring.appl

基于Open Cv的数字图像手势识别系统,Python编程实现,可以识别以下6种手势,含代码和报告

该项目的目标是设计并实现一个能够实时识别特定手势的系统。系统将使用OpenCV库来捕获视频流,并通过图像处理技术来识别特定的手势。具体来说,系统将识别以下六种手势: 挥手 - 手掌水平移动。握拳 - 手指全部弯曲成拳头。坐起 - 模拟做仰卧起坐的动作。下蹲 - 下蹲动作。站立 - 从坐姿或蹲姿站起来。推举 - 推举动作(如俯卧撑的顶点)。 技术栈 Python 作为主要编程语言。Open