鲁棒的数据降维方法研究与应用——农作物病虫害识别与应用

鲁棒的数据降维方法研究与应用——农作物病虫害识别与应用

摘要

针对农作物病虫害识别精度不高,现有硬件实用新型专利较少的问题,本研究使用四种经典网络对农作物病虫害识别模型进行hog算法特征提取、稀疏自编码器数据降维、网络搭建,选取识别效果最好的GoogleNet网络进行算法优化,验证精度为93.67%。
为增强本研究的实用性,利用Arduino单片机制作基于神经网络>卷积神经网络的农作物病害识别探测车,采集实时画面回传进行病害识别,并用MATLAB designer设计器对识别结果、拍照界面进行用户界面设计,结果显示:识别平均时间为3s,平均效率为97.2%,可为农业智能化、提高管理效率提供一定的技术思路参考。

**关键词:**特征提取;数据降维;GoogleNet;农作物病害识别探测车;

第1章项目概述

1.1项目选题背景及意义

随着智慧农业概念的兴起和发展,利用信息技术辅助农业生产,实现对农作物病虫害的智能识别和检测,保障农作物安全生产,提高农作物的质量,有着十分重要的促进作用。
病虫害是病害与虫害的共称,常常会对农业、林业、畜牧业等造成不良的影响,近年来,病虫害的识别成为了农业生产领域的热门话题。农作物病虫害是我国主要的农业灾害之一,具有种类多、影响大的特点,据联合国粮农组织的数据显示,农作物病虫害是造成全球农作物产业减产和经济损失的主要原因。农作物生产量总量8 - 10%的损失由病虫害造成。及早发现农作物的病害是保障农作物高产量、品质优质的重要因素。通常观察探测农作物的地上部分就可以判断出当前农作物病症的阶段,目前,越来越多的学者开始进行农作物病害的探测与识别,以实现精确的植物保护,从而使检测农作物病虫害成为可能。
降维在图像检索、生物信息学等都有着广泛的应用。例如提取高维农作物图像的特征,进一步对特征图像进行处理,可得到非常理想的识别效果。利用降维算法对图像的颜色、形状和纹理等特征进行提取,可以提高图像检索的查准率和查全率。随着基因芯片等新技术的产生,大量的高维生物数据应运而生,例如基因表达谱数据。降维为基因数据的处理提供了新的解决办法。
目前,在我国大部分农村地区,农务人员识别农作物病害主要依靠自身经验,不仅病害识别存在误差,而且还造成了农药滥用。受到多种因素的影响,采集到的农作物图像受光照、角度的变化不再是单纯的线性组合,传统的降维方法不能准确地表示样本的图像信息,为实现图像的快速自动识别与检索,增加降维“鲁棒性”,能保证检索系统在一定(结构,大小)的参数摄动下,维持其图像的特性。另一方面,由于农民依赖自身于在田间识别农作物病虫害,导致农业技术人员没有机会进行疾病诊断服务,进而缺乏收集和管理广泛的农作物病害数据。农业资料不健全,无法建立全面的农业生产资料监测,也无法为未来农业发展提供精细的基础数据服务。传统的植物病害检测方法,仅限于专家用肉眼观察病害的鉴定和检测。目测鉴定植物病害既繁琐又不准确,而且只能在一定范围内进行。如果采用自动检测技术,就能提供更准确、更省时的服务。只要观察植物叶片上的症状,就能自动检测出疾病,这不仅方便了检测,还节省了时间。

1.2国内外研究现状

农作物病害的精准识别是农作物病害提前防治的基础,而防范农作物病虫害问题是提升农作物产量的重要手段、同时也可以有效避免农业经济损失。目前的农作物病害的识别主要包括在田间疾病的观察、基于机器学习与图像技术的识别等。
在图像识别时,为了减少计算复杂度和存储空间,通常会利用降维方法把高维数据投影到低维子空间,以便提取有效的特征信息,因此降维方法在近几十年的机器学习中得到了广泛的研究和发展。而根据图像数据投影过程的不同,主要分为线性降维和非线性降维方法,这些降维方法在图像识别,包括物体和人脸以及语音识别等方面都得到了广泛的应用。
目前,比较常用的特征降维方法有:主成分分析,该方法是高维数据降维的一种常用方法,核心思想是将高维数据的主要特征分量提取出来,采取的主要方式是通过线性变换,将原始的数据转变成一组各维度线性无关的表示,来达到降维的目的;线性判别式分析,其核心思想是保证数据在空间中具有最佳的可分离性,将数据样本的高维空间和一个最佳鉴别矢量空间相互映射,这样就可以将一些有关分类的信息提取出来,这样不仅降低了特征空间的维数,而且在该空间中,还可以使数据样本在不同类别之间的距离最大化,相同类别之间的距离最小化;局部线性嵌入方法可以使降维后的数据较好地保持原有的流行结构,是一种非线性的降维算法;拉普拉斯特征映射,也是通过相应的映射,将数据转换成较低纬度的表示,该表示尽可能保证在原始空间中,数据之间的距离不会发生变化。
神经网络>卷积神经网络能够不依赖特定特征,在图像识别领域已经得到了广泛应用,如房若民[3]等设计了一种嵌入式农业病虫害识别防治系统,可以识别多种病虫害且识别准确率达92.6%。于小东等[4]构建了一种基于反卷积引导的vgg网络模型,能同时实现植物叶部病害种类识别与病斑分割。GonZalez-Huitrn等[5]李就好等[6]提出了一种改进FasterR-CNN模型来识别田间苦瓜叶片病虫害,改进后平均准确率为86.39%,Fuentes 和 Yoon 等人[7]使用基于区域的更快神经网络>卷积神经网络(Faster R-CNN),基于区域的完全卷积网络(R-FCN)和单发多盒检测器(SSD),以探寻最优的深度学习模型。Too 和 Yujian 等人[8]对 VGG 16、Inception V4、具有 50、101 和 152 层的 ResNet 和 DenseNet121深度神经网络>卷积神经网络进行微调和评估数据集。
当数据较少时,网络往往因训练样本不足导致过拟合,训练参数无法迁移,无法进行大规模应用,而上述基于神经网络>卷积神经网络的识别大多结合大规模的数据集来实现,这种方法的特点是方法较为单一且没有对农作物虫害、病害展开硬件应用研究,所以提高、的农作物病害模型识别准确度并大规模应用是农作物虫害、病害自动化检测与精准防治的关键。

1.3项目实施过程

(1)人员工作分配
项目小组成员全体共同参与资料收集、实验、实物制作全过程。
(2)完成情况
项目已完成数据收集整理、神经网络识别模型进行搭建、神经网络优化、用户界面设计、实物制作全过程。

1.4项目经费使用情况

本项目尚未申请任何经费,小组成员自费实施项目,项目总成本不到200元。

第2章 项目预期

2.1预期成果

本项目将对农作物常见的10叶片病害、8种常见病虫害进行识别研究,研究内容主要如下:
(1)采用AlexNet[9]、VGG-19[10]、GoogleNet[11]、ResNet-101[12]四种经典网络进行模型特征提取、数据降维、网络搭建,并对这四种网络进行训练测试。
(2)选取识别效果最好的神经网络,使用Adam、SGDM、RMSProp 共3种优化算法对识别效率最高的神经网络进行优化,进一步提高其识别速率、识别精度。
(3)结合训练、优化完成的神经网络对具体应用场景进行识别应用,利用Ardunio单片机制作基于神经网络>卷积神经网络的农作物病害识别小车,对小车的整体零件、硬件模块进行搭建,并将小车拍摄实时画面回传给识别程序。
(4)采用MATLAB 2020a的designer设计器对识别结果界面界面、拍照界面进行图形用户界面设计。
(5)对小车拍照采集的图片数据进行识别效果应用测试。

2.2项目创新点

(1)应用创新:查找国家知识产权局的专利公布公告,专利日期范围为1985.09.10—2022.04.22,基于神经网络>卷积神经网络的农作物病害识别小车的硬件新型实用专利尚未被申请,存在应用空白。
(2)程序硬件衔接方案创新:查找全网,绝大部分神经网络与硬件衔接方案依托于python语言,且想要实现MATLAB硬件设计模块外接摄像头,仅能依靠USB有线摄像头,市面上尚未有成熟的无线方案,本项目实现了无线方案,采用USB转HDMI视频采集卡、显示器作为中转连接无线蓝牙摄像头,可将实时视频画面回传给程序。
(3)成本低:查找同类可实现实时无线图传的项目,成本在400-600元不等,本项目实施虽图片画质受到相对限制,但实现方案共花费不到200元。

第3章 项目说明

3.1实


http://www.ppmy.cn/embedded/56275.html

相关文章

Gemalto SafeNet Luna HSM服务器硬件监控指标解读

在现代化的信息安全体系中,硬件安全模块(HSM)扮演着至关重要的角色,它负责保护和管理敏感的数据和密钥。Gemalto SafeNet Luna HSM作为一款高性能的硬件安全模块,广泛应用于金融、政府和企业等领域。为了确保Luna HSM的…

什么是deep supervision?

Deep supervision 是深度学习中的一种技术,通常用于改进模型训练的效果,尤其是在训练深度神经网络时。它通过在模型的多个中间层添加辅助监督信号(即额外的损失函数)来实现。这种方法有助于缓解梯度消失问题,加速收敛&…

哪吒汽车,正在等待“太乙真人”的拯救

文丨刘俊宏 在360创始人、哪吒汽车股东周鸿祎近日连续且着急的“督战”中,哪吒汽车(下简称哪吒)终究还是顶不住了。 6月26日,哪吒通过母公司合众新能源在港交所提交了IPO文件,急迫地希望成为第五家登陆港股的造车新势力…

神经网络在机器学习中的应用:手写数字识别

机器学习是人工智能的一个分支,它使计算机能够从数据中学习并做出决策或预测。神经网络作为机器学习的核心算法之一,因其强大的非线性拟合能力而广泛应用于各种领域,包括图像识别、自然语言处理和游戏等。本文将介绍如何使用神经网络对MNIST数…

网络协议 -- IP、ICMP、TCP、UDP字段解析

网络协议报文解析及工具使用介绍 1. 以太网帧格式及各字段作用 -------------------------------- | Destination MAC Address (48 bits) | -------------------------------- | Source MAC Address (48 bits) …

实践Go的命令模式

简介 现在的软件系统往往是分层设计。在业务层执行一次请求时,我们很清楚请求的上下文,包括,请求是做什么的、参数有哪些、请求的接收者是谁、返回值是怎样的。相反,基础设施层并不需要完全清楚业务上下文,它只需知道…

家政小程序的开发,带动市场快速发展,提高家政服务质量

当下生活水平逐渐提高,也增加了年轻人的工作压力,同时老龄化也在日益增加,使得大众对家政的需求日益提高,能力、服务质量高的家政人员能够有效提高大众的生活幸福指数。 但是,传统的家政服务模式存在着效率低、用户与…

江协科技51单片机学习- p21 LED点阵屏(8*8)

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

调用asyncio.to_thread后上下文依然一致吗

使用Python的asyncio时,可以把一个同步的函数放到线程池中执行从而避免这个函数阻塞asyncio自身的事件循环。比如可以把requests库的请求放进去 async def to_thread_do_request(url):return await asyncio.to_thread(requests.get, url)这个to_thread_do_request方…

【12321骚扰电话举报受理中心-短信验证安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

第二十条:与抽象类相比,优先选择接口

要定义多种实现的类型:JAVA有两种机制:接口和抽象类。这两种机制都支持为某些实例方法提供实现,但二者有个重要的区别:要实现由抽象类定义的类型,这个类必须是抽象类的子类。因为Java只允许单继承,对抽象类…

大数据------JavaWeb------JSP(完整知识点汇总)

JSP 定义 JSP(Java Server Pages),即Java服务端页面。它是一种动态的网页技术,其中可以定义HTML、CSS、JS等静态内容,还可以定义Java代码的动态内容JSP HTML Java 说白了JSP就是一个页面,它既可以写HTML标…

MYSQL substring_index

1.substring_index( 参数1,参数2 ,参数3 ) 2.group by 也可以用我们起的别名来划分,以及起别名可以不用as SELECT IF(profile LIKE %female,female,male) gender,COUNT(*) number FROM user_submitGROUP BY gender; 3.切割、截取、删除、替换 select -- 替换法 r…

uniapp中webSocket使用Https访问连接失败

环境 uniapp写微信小程序,使用webSocket连接后台spring boot通信 在开发环境中使用 ws://xxx 连接正常, 但是微信小程序需要配置https访问,webSocket需要使用 wss:// 来连接, 使用wss:// 域名 访问时,一直连接不上&a…

ffmpeg下载/配置环境/测试

一、下载 1、访问FFmpeg官方网站下载页面:FFmpeg Download Page; 2、选择适合Windows的版本(将鼠标移动到windows端)。通常,你会找到“Windows builds from gyan.dev”或者“BtbN GitHub Releases”等选项&#xff0…

SecureCRT--使用sftp上传和下载文件

原文网址:SecureCRT--使用sftp上传和下载文件_IT利刃出鞘的博客-CSDN博客 简介 本文介绍SecureCRT如何在软件内直接上传和下载文件。 SecureCRT可以用如下两种方法上传和下载文件: 自带的sftp插件服务器安装rz/sz命令 本文介绍第一种方法&#xff0…

编写高效的Java工具类:实用技巧与设计模式

编写高效的Java工具类:实用技巧与设计模式 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. 工具类的定义与作用 在软件开发中,工具…

Qt - 如何在新线程 (QThread)中使用一个进程 (QProcess)?

在Qt中,QThread 用于处理后台任务,而 QProcess 用于启动和管理外部程序。如果你想在一个新的 QThread 中使用 QProcess,你需要了解 QProcess 并不是专门为在特定线程中运行而设计的。实际上,QProcess 通常在创建它的线程&#xff…

图书|基于Springboot的图书管理系统设计与实现(源码+数据库+文档)

图书管理系统目录 目录 基于Springboot的图书管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、个人中心 2、管理员管理 3、用户管理 4、图书出版社管理 5、公告类型管理 6、所在书架管理 7、图书类型管理 8、论坛管理 9、公告信息管理 10、图书信…

Java for循环倒序输出

1.实现一个for循环的倒序输出 在Java中,要实现一个for循环的倒序输出,通常我们会使用数组或集合(如ArrayList)作为数据源,然后通过倒序遍历这个数组或集合来实现。下面,我将给出一个详细的示例&#xff0c…