作物叶片病害识别系统

介绍

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

  • 在这里插入图片描述

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

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

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

目的

  • 这使机器视觉能够提供基于图像的自动检验和过程控制。
  • 相比之下,视觉识别是劳动密集型的、不太准确的,只能在小范围内进行。该项目涉及使用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
基于 ResNet 的农作物病害识别系统是利用深度学习技术,结合经典的 ResNet 模型设计的一种农作物病害自动识别系统。该系统使用大量的农作物病害图像数据集进行训练,以提高识别的准确率和鲁棒性。其工作流程如下: 首先,收集和整理各种农作物病害的图像数据集,包括受影响的叶片、果实等。然后,将这些图像数据进行预处理,包括图像增强、标准化等。接着,通过剪裁和缩放等操作,将图像调整为固定大小。 接下来,使用 ResNet 模型进行训练。ResNet 是一种深度卷积神经网络,具有强大的特征提取能力和较低的网络复杂度。在训练过程中,使用已标记的图像数据作为输入,通过多层的卷积和全连接层学习提取图像的特征,并输出各类农作物病害的概率分布。 在训练完成后,该系统可以用于识别新的农作物病害图像。通过将待识别的图像输入到训练好的模型中,系统会自动提取图像特征,并计算出各个病害的预测概率。根据概率大小,系统可以自动判断图像所属的病害类别并给出相应的诊断结果。 基于 ResNet 的农作物病害识别系统具有诸多优点。首先,该系统可以针对不同类型的农作物进行病害识别,提高了农作物病害检测效果。其次,基于深度学习技术,该系统对图片特征的准确提取能力强,可以有效减少误诊率。最后,该系统可以快速地进行批量检测,提高了病害检测的效率。因此,该系统在农业生产中有着广泛的应用前景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QQ_1309399183

一角两角不嫌少

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值