896|2

20

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【玄铁杯第三届RISC-V应用创新大赛】基于CNN-LSTM深度学习网络的番茄氮含量检测系统 [复制链接]

 
基于CNN-LSTM深度学习网络的番茄氮含量检测系统
作者:anthpo
一、项目背景
氮是番茄植株生长的关键元素之一,对番茄的生长发育具有重要影响。通过检测番茄的氮含量,农业从业人员可以更好地了解植株对氮的需求,有针对性地调整施肥方案,实现施肥的科学管理,提高施肥利用率,减少肥料浪费。番茄对氮的合理利用与产量和品质直接相关,适当的氮含量有助于促进植物的生长、开花和结果,从而提高番茄的产量;同时,合理的氮含量也对番茄的口感、色泽和营养价值产生积极影响,提高产品的市场竞争力。随着农业科技的发展,精准农业成为提高农产品产量和质量的关键。为了有效监测植物生长状况,基于深度学习的番茄氮含量检测系统逐渐受到关注。因此,本项目旨在利用卷积神经网络(CNN)和长短时记忆网络(LSTM)相结合的深度学习模型,实现对番茄植株氮含量的准确检测。番茄氮含量是植物生长和发育的重要指标,直接影响着产量和品质。通过在生长过程中收集图像数据,适用于CNN的特征应该要满足局部相关性,也就是特征之间的关联主要体现在局部上,并且由局部延伸到整体,显然图像、音频都是满足这个特性的,所以目前主流的图像和音频识别模型都用CNN来做。而对于光谱序列,其实相当于一个函数图像(点)。它也是局部相关性的,所以我们用CNN来解决,当然用LSTM等RNN模型也并非不可以,但是RNN无法并行,对于这样的长序列是难以忍受的。而为了使用一维卷积,我们需要将序列转化为N×1的格式。此外,我们了解到人眼识别光谱是靠识别发射线和吸收线的,简单来看这就是差分比较大的特征,而为了识别出这类特征,我们所有的池化都是用最大池化,并且激活函数也只用relu[因为relu(x)=max(x,0)]。而LSTM作为序列学习模型,有助于捕捉氮含量随时间的动态变化。利用深度学习等现代技术,建立番茄氮含量检测系统,实现智能农业管理。这有助于提高农业生产的科学性和效益,为农民提供更精准的决策依据。通过将这两种网络结合,我们能够建立一个端到端的深度学习系统,实现对番茄氮含量的连续监测和精准预测。本研究为农业生产提供了一种先进的技术手段,有望为农业研究提供更科学、可持续的植物管理方案。
二、作品简介
该检测系统主要由两部分组成,一为构建番茄叶片氮含量深度学习CNN-LSTM检测模型,二为设计番茄叶片氮含量检测用户交互界面。为了突出在LicheePi 4A上的应用,本文在基于RISC V架构的LicheePi 4A上使用常见的两种深度学习框架(Tensorflow、Pytorch)分别训练,得到番茄氮含量检测模型,实验表明两种框架都能稳定的运行在LicheePi 4A上,并且两种模型都能够正常使用。利用现有的深度学习框架工具构建番茄叶片氮含量深度学习CNN-LSTM检测模型,针对使用近红外光谱扫描仪扫描得到的一维番茄叶片近红外光谱数据,自主设计了能够对其进行高性能检测的深度学习网络结构,该网络结构由8层一维的卷积神经网络和1层由256个长短时记忆神经单元组成的长短时记忆网络构成。检测网络设计完毕后,在LicheePi 4A上,利用框架自带的训练函数,结合实际采集得到的1000组光谱数据对该网络结构进行训练,得到带有权重的番茄叶片氮含量检测模型。之后,本研究设计了能够用于跨平台的、基于PyQt5的番茄氮含量检测系统,将上述训练得到的基于Tensorflow训练的番茄氮含量模型嵌入其中。该系统能够运行在Windows和Linux等常见平台上,并且采用轻量化的代码构建,该系统能够很方便的移植到各种嵌入式设备上使用。经检测,该模型的准确率能够达到90%以上,能够很好的满足农业生产需求,本项目训练的模型能够农业研究中设计科学、可持续的番茄生产和管理方案提供参考和支持。

三、系统框图

 

四、各部分功能说明

本章节分为两部分内容介绍,其一为在LicheePi 4A上训练CNN-LSTM模型,其二为检测系统的界面设计和模型结合。首先介绍模型的训练部分,首先在LicheePi 4A上安装好Pytorch(前面文章写过在此不再赘述),然后根据官方教程设计模型结构即可,本文设计的模型结构如下图所示。
之后,使用本文编写的py程序对网络进行训练(文件已附上),训练过程如下图所示。
训练结束后,得到的模型文件如下图所示:
其次,考虑到开发机器性能问题,且PyQt5的可跨平台属性,本文选择在Windows开发机上开发可跨平台使用的番茄光谱氮含量检测系统,之后直接无损移植到LicheePi 4A上 。开发机器的配置具体如下:CPU为Intel Core i7 13700,内存为64GB,显卡为Nvidia Tesla P4 8GB。该系统主要由:文件模块、导入光谱数据模块、光谱数据预处理模块、特征波长提取模块、氮含量检测模块组成。系统采用Python语言进行编程,并以PyQt5开发框架为基础进行用户界面设计。同时,系统设计融合了近红外光谱与深度学习技术。采用软件开发中采用常见的模块化管理方法,将每个功能集中至一个模块中,使得每个模块都包含多种功能,且模块之间相对独立。以下对各个模块进行详细说明。
  1. 文件模块
    文件模块主要功能包括:文件的打开、保存、关闭操作。进入系统主界面后,用户可以通过打开导入待处理的光谱csv文件。
  2. 导入光谱数据模块
    导入光谱数据主要功能包括:导入光谱数据、显示光谱图像、清除光谱图像、保存光谱图像。进入导入光谱数据界面后,用户可以通过打开导入待处理的光谱文件,就可以看到导入的光谱数据信息和数据对应生成的光谱图像,并根据需求在主界面菜单中,点击算法按钮进行相应操作。
  3. 光谱数据预处理模块
    数据预处理模块的主要功能包括多元散射校正、标准正态变量变换和去趋势等操作。在本系统中,主要采用了近红外常用的预处理方法,以减少原始光谱数据存在的背景干扰和光散射等影响,增加光谱数据的可分析性,并突出或增强光谱数据中的某些特征,为后续的研究和分析提供可靠的数据来源。
  4. 特征波长提取模块
    特征波长提取模块的主要功能为使用竞争性自适应重加权采样算法减少光谱数据中存在的数据冗余和无效信息,筛选出构建识别模型的关键特征信息。
  5. 番茄氮含量检测模块
    该模块主要调用训练好的番茄氮含量深度学习检测模型,对处理好的数据进行分析检测,并将结果显示出来。
    番茄光谱氮含量检测系统的基本操作介绍各个模块的操作流程及各模块中界面操作时的注意事项。该系统包含5个处理模块,其中包含的每个功能之间既可相互独立(所选每一步操作能在原数据基础上进行),又可相互联系(所选功能在上一步已处理数据上进行)。
  6. 文件模块
    用户进入系统后,可在文件下拉菜单中执行打开、保存、追加和关闭相应操作。当用户点击“打开”按钮时,会弹出如图1所示名字为“选择文件”的对话框,在对话框中选择需要进行处理的光谱数据,该数据将会显示在系统主界面右侧,如图2所示。

    图1 打开功能效果

    图2 打开成功
    点击“保存”的功能按钮时,与“打开”相类似,用户可对处理后的光谱数据进行保存,并将其保存至所选文件夹中,如图3所示:

    图3 保存功能效果
    通过选择文件对话框内点击想要导入的光谱数据后,主界面左侧上方会显示导入后的光谱图像,右侧下方是选择导入的光谱数据,可以通过上下、左右滚动条进行全部数据的查看。查看完毕后,点击<关闭>按钮,进行清除操作,清除效果如图4所示。

    图4 关闭功能界面
  7. 导入番茄光谱数据模块
    用户进入导入番茄光谱数据模块后,可进行导入、导出、显示图像、保存图像等操作。当用户点击“打开”按钮时,会弹出如图1所示名字为“选择文件”的对话框,在对话框中选择需要进行处理的光谱数据,该数据将会显示在系统主界面右侧,如图5所示。

    图5 导入光谱数据效果
    导入成功后,在模块右下方会显示当前文件中的数据内容,如图6所示。

    图6 导入成功
    点击“显示光谱图像”的功能按钮时,用户可对光谱数据进行显示操作,如图7所示。

    图7 显示光谱图像
    通过“保存光谱图像”按钮,可以将右侧显示出来的光谱图像保存为图片格式的文件进行存储,以便进行比较,保存效果如图8所示。

    图8 保存光谱图像
    通过“清除光谱图像”按钮,可以将右侧显示出来的光谱图像清除,以便进行下一次图像的显示,清除效果如图9所示。

    图9 清除光谱图像
  8. 数据预处理模块
    近红外光谱数据预处理是作为近红外光谱技术分析处理是一种常用的手段。通常,近红外光谱分析利用的是样本化学信息,而物理信息往往是分析过程中的干扰因素,对建模结果不利,应该予以消除或者降低,这就是进行光谱预处理的目标。本系统的数据预处理主要针对多元散射校正、标准正态变量变换和去趋势算法,所以本节内容主要对三种算法进行应用及具体介绍。
    1. 多元散射校正
      由于原始光谱数据扫描过程中的因仪器所在环境、人为操作和室内温度等干扰因素,原始光谱数据很大程度存在背景干扰和光程变化的影响,导致数据出现基线漂移和偏移等问题,因此需要进行数据预处理。尽可能消除光谱数据噪声和杂散光等影响,以改善和提高数据平滑度和可分析性。要执行该操作,先设置样本起始位置-结束位置,选取想要处理的样本数量范围,设置波数起始位置和结束位置,选取想要处理的波数列数范围,点击界面的“预处理算法”中的“MSC预处理”按钮,执行后,再点击“操作”中的“显示效果图片”按钮处理的光谱图像将显示在系统主界面右侧,如图10为本系统对番茄光谱数据进行多元散射校正。

      图10 多元散射校正操作界面
    2. 标准正态变量变换
      标准正态变量变换是通过消除样本形态分布不均匀造成的光散射等影响。要执行该操作,先设置样本起始位置-结束位置,选取想要处理的样本数量范围,设置波数起始位置和结束位置,选取想要处理的波数列数范围,点击界面的“预处理算法”中的“SNV预处理”按钮,执行后,再点击“操作”中的“显示效果图片”按钮处理的光谱图像将显示在系统主界面右侧,如图11为本系统对番茄光谱数据进行标准正态变量变换。

      图6 标准正态变量变换操作界面
    3. 去趋势
去趋势算法是近红外光谱常用的预处理技术之一,通过对光谱数据和去趋势线进行二项式回归,完成数据去趋势过程,可以突出光谱数据图像吸收峰的波峰波谷,使图像趋势变化更加明显,为后续波长提取提供了可靠关键特征信息。要执行该操作,先设置样本起始位置-结束位置,选取想要处理的样本数量范围,设置波数起始位置和结束位置,选取想要处理的波数列数范围,点击界面的“预处理算法”中的“DT预处理”按钮,执行后,再点击“操作”中的“显示效果图片”按钮处理的光谱图像将显示在系统主界面右侧,如图12为本系统对番茄光谱数据进行去趋势。
图12 去趋势操作界面

2.4特征波长提取模块

特征提取是从初始的一组测量数据开始,建立旨在提供信息和非冗余的派升值,将原始高维光谱数据被映射或者变换至低维空间,同时仍然保留原始数据的某些必要特征,从而很大程度上的避免维数灾难,促进后续的学习和泛化步骤。本系统主要针对竞争性自适应重加权算法进行应用,本节内容则是对竞争性自适应重加权算法特征波长提取方法进行具体介绍。
2.4.1竞争性自适应重加权采样
竞争性自适应重加权算法是一种用于模式识别和机器学习的有效算法。该算法可适用于处理复杂和非线性莫识别问题,通过利用自适应重加权采用技术选择PLS模型中的回归系数绝对值大的波长点,选择交叉验证RMSECV值最小的子集,提取出光谱数据中的关键变量信息。要执行该操作,可直接点击菜单栏的“特征波长提取”中的“CARS提取特征波长”按钮,设置该算法的MC采样次数和运行次数参数范围。执行后,提取的结果将显示在系统主界面左侧下方以及右侧区域,竞争性自适应重加权采样操作如图13所示。
图13 竞争性自适应重加权采样操作界面

2.5番茄氮含量检测模块

要执行番茄氮含量检测操作,可直接点击主界面的“番茄氮含量检测”选项卡。这里以读入前面特征提取后的数据为例,点击“读取提取后的数据”按钮,会在日志中显示读取成功,如图14所示。
图14 读入提取后的数据
点击“检测氮含量”按钮,即可调用训练好的深度学习模型对番茄光谱数据进行氮含量的检测。检测完成后,点击显示检测效果,会将识别后的效果展现在下方和右侧,如图15所示。
图15 番茄氮含量检测
点击功能区中的“保存具体结果”按钮,即可将检测后的详细结果保存为csv文件,如图16所示。
图16 番茄氮含量检测

五、作品源码

百度网盘链接:
链接已隐藏,如需查看请登录或者注册
提取码:48ie
相关目录展示:
六、视频演示(视频简介+链接)
模型训练

 
在基于RISC V架构的LicheePi 4A上使用Pytorch框架训练CNN-LSTM模型。https://www.bilibili.com/video/BV1nc41197Zy/?vd_source=97558bae3de81d79ee42b7a214ccd727
七、项目总结
本文通过建立两种不同框架的CNN-LSTM网络,训练了能够检测番茄叶片氮含量的近红外光谱检测模型,该模型准确率能够达到90%以上,能够很好的满足农业育种和栽培管理的需求,对实际生产场景有着较高的实用价值。此外,本文还设计了能够跨平台操作的用户界面,该界面基于PyQt5,能够为实际农业生产业者和相关研究人员提供较为简单实用的操作界面,通过简单的操作即可得到番茄分析的相关数据,极大的简化了相关实践和研究的过程,为番茄育种和栽培提供了有力的支持,也创新性的开拓了一条RISC V单板机在农业领域的应用道路。
在设计过程中,发表的经验和总结性博文链接汇总如下:
【玄铁杯第三届RISC-V应用创新大赛】Licheepi 4A 单板机简单开箱
【玄铁杯第三届RISC-V应用创新大赛】LicheePi 4A环境部署部分问题及解决方法
【玄铁杯第三届RISC-V应用创新大赛】首发!在LicheePi 4A 上编译安装PyQt5
 
八、其他

最新回复

楼主辛苦了,感谢楼主提供的这么好技术分享,顶起来,   详情 回复 发表于 2023-11-18 21:08
点赞 关注
 
 

回复
举报

755

帖子

5

TA的资源

纯净的硅(高级)

沙发
 

楼主辛苦了,感谢楼主提供的这么好技术分享,顶起来,

点评

谢谢你!  详情 回复 发表于 2023-11-21 16:27
 
 
 

回复

20

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
chejm 发表于 2023-11-18 21:08 楼主辛苦了,感谢楼主提供的这么好技术分享,顶起来,

谢谢!

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表