基于机器视觉的植物生长状态识别研究开题报告

 2021-11-27 10:11

1. 研究目的与意义(文献综述)

一.研究目的与意义

植物在我们的生活中随处可见,花草树木点缀了我们的生活,瓜果蔬菜丰富了我们的餐桌,截止目前,国际上统计的植物种类约有37万种。然而植物病害一直是植物种植过程中的重大危害,尤其对于农作物来说。众所周知,我国是一个农业大国,农业种植从古至今一直贯穿在人们的生活中。现如今,我们每年种植的农作物数量与种类达到了相当壮观的规模,本次研究就选择了一种常见的农作物玉米为实验对象,玉米作为一种种植范围很广的农作物,在我国的种植规模十分宏大,不论是南方城市还是北方城市都可以培育出大量玉米。但是玉米种植也面临着种种问题,其中,病害是玉米生产的主要灾害,在玉米的生长过程中,可能会出现玉米锈病、玉米大斑病、玉米小斑病等等病害,这些病害对玉米的产量有着极大的影响。如果我们能在玉米出现病害时检测出病害,那么就可以及时清理病残株或是采取其他有效的应对方案,及时止损。因此,对于植物生长状态识别技术的研究显得尤为重要。

植物生长状态识别就是对植物的生长健康状态做出判断,识别植株是否病害。如今,机器视觉已经逐步进入人们的视野中,在各个领域都获得了广泛的研究和运用,农业方面也不例外,越来越多的学者尝试用深度学习的方式对植株进行病害检测,这对于植物生长状态识别技术的发展起到了着不可估量的推进作用。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

2. 研究的基本内容与方案

三.研究目标、内容、拟解决的问题

1.研究目标

运用python完成玉米生长状态辨别的程序,能够对玉米的健康或是病害状态进行分类,采用Pytorch构建神经网络对玉米图像进行深度学习。

2.研究内容

本课题的研究内容主要围绕玉米的生长状态识别这个中心内容展开,实现基于深度学习模型的玉米健康状态判断。

深度学习的思想是运用大量图像对算法进行训练,在一次次训练过程中慢慢调整算法准确率,训练得到最合适的分类器。本研究运用的深度学习框架是CNN,即卷积神经网络,其核心思想是让图像经过一些卷积层检测出图像的一定特征,每个卷积层有特定数量的通道,每个通道能检测出图像中的具体特征,这样即可让机器学习到每个分类中图像的特点,然后对测试图像进行判断。

3.研究内容

(1)如何构造深度学习框架

(2)如何选择神经网络中各层的参数

四.技术路线

基于深度学习的玉米生长状态判断:

图1 整体流程

1.深度学习平台pytorch

Pytorch诞生于2017年1月,是由Facebook人工智能研究院团队在 GitHub上开源的神经网络框架。Pytorch是torch的python版本,顾名思义它是一个以Python 优先的深度学习框架。

Pytorch处于机器学习第一大语言 Python 的生态圈之中,使得开发者能使用广大的 Python 库和软件,如 NumPy、SciPy等,为 Python 语言使用者提供了舒适的编写环境;与Tensorflow的静态计算图不同,Ptorch改进了现有的神经网络, 采用了动态计算图结构,提供了更快速地构建神经网络的方法;同时PyTorch还提供了运行在 GPU/CPU 之上、基础的张量操作库。Pytorch有许多优点,比如简洁性、高效性、易用性。但是由于Pytorch灵活性太高,网络结构图形化表示相对困难。

2.数据集获取

数据集选用的是spMohanty2016年在github上分享的PlantVillage-Dataset,该数据及中包含多种植物健康和病害的图片,本次项目挑选出该数据集中有关玉米的1406张图像,分为健康、玉米小斑病、玉米锈病和玉米大斑病4个类别进行实验研究。

3.数据集扩充

在1406张图像中,每个种类大概300张左右,而且还要分成训练集、验证集和测试集,在追求较高准确率的情况下,这些数据是远远不够的,需要对数据集进行扩充。

运用PIL库中的ImageEnhance和Image函数对图像进行对比度增强、亮度增强、水平翻转和随机方向旋转这4项变换,将生成的图像分类放入新的数据集文件夹中,加上原图后新数据集中共有7030张图像。

4.图像预处理

图像预处理主要针对玉米图像大小不一、数据形式不匹配等特点进行处理,以方便后续的深度学习过程。图像按8:1:1的比例划分为训练集、验证集和测试集,每部分都含有4个文件夹,分别放置4种玉米生长状态的图片,包括玉米健康、玉米小斑病、玉米大斑病和玉米锈病。

在预处理中,运用torchvision中的transforms将训练集中的图像随机切割成224*224、随机水平翻转、将图像转化为tensor形式后再将图像标准化。与训练集中的处理不同,在验证集和测试集中,只需将图像转化tensor形式和标准化,不必再对图像进行大小和方向上的处理。

预处理结束后后,就需要用到ImageFolder函数来加载图像文件了,ImageFolder是torchvision中的一个常用数据集类,它假定了图像数据是按类别存放于不同文件夹中的,利用该函数可以创建训练集和验证集的数据加载器,以便进行后面的深度学习操作。

5.基于CNN的生长状态分类器

卷积神经网络(CNN)是一种常用的深度学习神经网络,经常被用作图像分类领域的深度学习网络。它是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络主要有的输入层、卷积层、池化层、全连接层和输出层5种结构组成。

输入层(Input Layer)是整个神经网络的输入,让图像进入神经网络,图像一般为W*H*3的RGB图像,接着对它进行后续的处理。卷积层(Convolution Layer),通过卷积运算可以提取出图像的特征,通还能使得原始信号的某些特征增强,并且降低噪声,使用的滤波器就越多,获得的边缘和特征检测就越多。在卷积层中,对输入图像和滤波器的权重矩阵进行点积运算,并将结果作为该层的输出。这里要注意滤波器的通道数量必须具有与输入图像相同。池化层(Pooling Layer),池化层的作用在于提取重要特征,忽视较小的特征。池化层不会改变三维矩阵的深度,但是它可以缩小矩阵的大小。通过池化层,可以进一步缩小最后全连接层中节点的个数,大幅降低权重参数,减小计算成本。全连接层(Fully Connected Layer),在图像经过卷积层和池化层的处理之后,图像特征已经被完全提取出来了,但是提取完成之后,仍然需要使用全连接层来完成分类任务,全连接层相当于整个神经网络的分类器。输出层(Output Layer),同样是全连接网络层主要用于将之前的网络层提取到的特征转化为我们需要的输出形式。卷积神经网络的一般结构如下:

图2 卷积神经网络的一般结构

全连接层中激活函数一般有ReLU函数、sigmoid函数等。其中,ReLU函数的使用最为广泛。因为标准的sigmoid函数输出不具备稀疏性,需要用一些惩罚因子来训练出大部分接近零的冗余数据来,从而产生稀疏数据,因此需要进行无监督的预训练。而ReLU是线性修正,是purelin的折线版,计算值小于零时为零,否则保持原值,这是一种简单地强制将某些数据置零的方法。然而经实践证明,训练后的网络完全具备适度的稀疏性。而且训练后的可视化效果和传统方式预训练出的效果很相似,这也说明了ReLU具备引导适度稀疏的能力。因此,ReLu的使用,使得网络可以自行引入稀疏性,同时大大地提高了训练速度。

基于CNN的神经网络有很多,比如AlexNet、VGG Network、GoogLeNet等。每种架构的网络结构不尽相同,但在参数适当的情况下,每种网络在处理图像分类问题上都能有较好的效果,所以神经网络中参数的选择很重要。在训练中,可以将训练集放在构造的CNN神经网络中,让网络对训练集中的数据进行学习,抓取每个种类中图像的特征点,在一次次迭代的过程中,训练出最适合的神经网络。

6.验证与测试

用valid数据对神经网络准确率进行验证,得到验证的准确率,如果准确率过低,就改变神经网络中的参数或者是epochs的大小再次训练。当对验证集上的准确率比较满意后,保存该神经网络。

再将保存的神经网络模型运用到test上,得到测试集的准确率。根据test中巡行的结果再对网络模型进行修改,知道结果符合预期。

3. 研究计划与安排

(1)3月25日前,完善论文的调研工作,完成英文文献翻译工作。实现技术方案中图像预处理环节的算法。

(2)4月15日前,实现技术方案中基于深度学习的玉米图像分类器的算法。同时,应当完成该环节大部分的论文撰写。

(3)5月25日前,对算法进行优化。完成三次阶段性成果报告,基本完成论文撰写。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

4. 参考文献(12篇以上)

参考文献

[1]tarbell k a, reid j f. a computer vision system for characterizing corn growth and development[j]. transaction of the asae,1991,34(5): 2 245~2 255.

[2]孙红, 孙明, 王一鸣. 植物生长机器视觉无损测量研究综述[j]. 农业机械学报(10):187-191.

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。