版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于机器学习的花卉识别系统设计摘要中国是花卉种植大国,种类资源丰富,栽培历史悠久,花卉相关从业人员众多。其中,花卉分类是植物学研究领域和花卉业生产中极其重要的基础性工作,从而花卉分类学是一项具有长远意义的基础性研究,但是其分类过程需花费大量的人力、物力和财力。随着手机设备等成像技术的发展,人们对花卉图像进行收集、认识和区分,奠定了花卉智能分类识别的基础。卷积神经网络特别是善于在复杂数据结构中提取有用特征。正是这种丰富的特征表达能力使得卷积神经网络在图象识别与分类、目标检测与定位、人机对局、无人驾驶等范围应用广泛。本文基于机器学习,利用卷积神经网络自动学习的特点,使用Sequential来搭建CNN,搭建了用于识别花卉的CNN模型和轻量级卷积神经网络MobileNet模型,通过训练数据的学习,针对收集的五类花卉的图像,共四千多张图片进行图像处理和特征提取,使得模型能够学习不同种类花卉的特征,其验证集达到80%以上的准确率,进而识别花卉种类,有效地解决花卉识别分类这一问题。关键词:机器学习,卷积神经网络,TensorFlow,图像识别,花卉识别目录TOC\o"1-4"\h\z\u第1章绪论 11.1研究背景及意义 11.2国内外研究现状 11.3论文组织结构 2第2章机器学习概述 32.1机器学习理论 32.2卷积神经网络 32.2.1卷积神经网络概述 32.2.2卷积层 52.2.3全连接层 52.2.4池化层 62.3本章小结 6第3章TensorFlow实验平台的搭建 73.1TensorFlow工作原理 73.1.1核心组件 73.1.2低阶API 83.1.3高阶API 93.2TensorFlow框架环境配置 93.3本章小结 10第4章基于机器学习的花卉识别的设计 114.1数据处理 114.1.1数据读取 114.1.2数据划分 124.2配置网络 124.3构建模型 134.1.1CNN模型 134.1.2MobileNet模型 144.4模型评估 164.5模型预测 184.6本章小结 22第5章总结与展望 245.1总结 245.2展望 24参考文献 27第1章绪论研究背景与意义如今,随着人工智能的快速发展,机器学习结合识别图像技术已广泛应用到日常生活的各个方面,比如检测物体、识别图像以及跟踪定位等。图像识别就是指利用计算机提取图像的某些特性进行理解和分析,以识别各种不同模式的目标和对象的技术。近年来,由于图像识别技术的快速发展,不少领域都开始尝试使用图像识别技术,借助计算机高速的计算能力来解决一些日常生活中比较困难、繁琐和危险的问题,减少人们的工作量。在花卉农业领域,常常需要对一些花卉品种进行分类识别处理,但需要在专业技术人员的指导下才能顺利进行分类工作,大量人力、物力、财力资源被耗费,而且效率很低,极大的限制了花卉农业的发展。因此本文研究基于机器学习的花卉识别,利用卷积神经网络的特征,使用Sequential来搭建CNN,搭建了用于识别花卉的CNN模型和轻量级卷积神经网络MobileNet模型,通过对大量数据进行训练和学习,进行图像处理和特征提取,使得模型能够学习不同种类花卉之间的特征,进而识别花卉,有效地解决识别花卉这一难题。国内外研究现状近年来,机器学习和计算机视觉技术得到了快速的发展,图像识别应用在日常生活中变得到处可见,比如小区门口的车牌号识别,支付软件中的人脸识别等。因为花卉识别具有较高的应用价值和实际意义,所以吸引了国内外很多科研工作者投身研究。国外很多高校很早就已经开始了对花卉识别的研究和实验,柯逍[1]和李绍滋等研究者提出一种以RGB为基础的图像分割的方法,利用多个特征相互融合的方法进行图像检索,识别花卉图像。牛津大学的Nilsback[2]和Zisserman等人为了便于对花卉图像的研究,搜集整理了花卉图像数据集OxfordFlower17和OxfordFlower102。如今,这两个花卉图像数据集已被广泛地应用在了花卉图像处理的研究中。每年的ICCV(国际计算机视觉大会)、CVPR(EEE国际计算机视觉与模式识别会议)、ECCV(欧洲计算机视觉国际会议)等著名国际性学术会议上,都会有一些关于图像分割、物体识别的研究成果出现。而国内花卉识别的相关研究相对国外起步较晚,虽然研究的时间短,但是也取得了很大的突破。如中科院旗下的植物研究所使用收集到的260万多幅大数据量的图片和弱监督学习方法,开发的拍照识花可以识别上千种花卉,并且有很高的准确度。国内外现有的广泛应用的花卉识别技术大多都是通过聚类、超像素等方式来进行花卉图像的分割,通过提取花卉图像的表层特征如颜色形状信息来识别分类,这种方法虽然简单,但是效果却不尽如人意。最近几年,得益于机器学习快速发展,取得了不错的成绩。使用卷积神经网络模型提取花卉图像更能代表图象特征来识别分类,识别效果比传统特征方法更好,稳定性更高。论文组织结构本文分为五个部分。第1章为绪论,主要介绍了花卉分类的背景知识和国内外研究现状,以及花卉识别的意义。第2章为基础理论,主要介绍了机器学习大概念以及机器学习的算法卷积神经网络(CNN)概述以及基本网络结构。第3章为TensorFlow实验平台的搭建,简要介绍了实现卷积神经网络的TensorFlow框架以及工作原理。第4章为基于机器学习的花卉识别,用的是机器学习的算法卷积神经网络CNN,本章首先对数据进行读取划分,然后使用的Sequential来搭建CNN,搭建了用于识别花卉的CNN模型和轻量级卷积神经网络MobileNet模型,对其进行训练和调用发现MobileNet模型更好。选择MobileNet模型测试准确率。用设计好的UI界面选择一张图片上传然后点击开始预测就会用训练好的模型进行预测,把预测结果输出在界面上。第5章为总结与展望本章主要总结了基于卷积神经网络的花卉识别的工作,并对花卉识别进行了展望。第2章机器学习概述2.1机器学习理论机器学习是人工智能核心,是使计算机具有智能的根本途径。机器学习是从有限的观测数据中学习出具有一般规律,并可以将总结出来的规律推广应用到没有观测模本上。机器学习可以粗略的分为三个要素:模型、学习准则、优化算法。大部分的机器学习都可以看做这三个基本要素的不同组合。相同的模型也可以有不同的学习算法。机器学习包括有监督学习和无监督学习,分类属于有监督学习。我们可以把一个标记好特征以及标签的东西看做一个样本。一组样本构成的集合成为数据集(DataSet),一般把数据集分为两部分:训练集和测试集。训练集(TrainingSet)中的样本是来训练模型的,也叫训练样本(TrainingSample),而测试集中的样本是用来检验模型好坏的也叫测试样本(TestSample)。机器学习算法中包含了神经网络、线性回归、KNN、SVM和聚类在内的多种算法,这些算法相当于一般普通算法的升级版。2.2卷积神经网络2.21卷积神经网络概述卷积神经网络是用在计算机视觉,这是人工智能的一个分支,计算机视觉就是在告诉你们计算机如何理解图像,比如现在的人脸识别自动驾驶包括美图秀秀还有抖音尬舞机都是用的计算机视觉来开发的。卷积神经网络不光可以来处理图像还可以来处理音频,文本这种消息只要数据可以变成图像格式都可以来处理。卷积神经网络(ConvolutionalNeuralNetwork,CNN或ConvNet)是一种具有局部连接、权重共享等特性的深层前馈神经网络。目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉叠加而成的前馈神经网络。卷积神经网络有三个结构上的特征:局部连接、权重共享以及汇聚。这些特征使得卷积神经网络拥有一定程度上的平移、缩笑和旋转不变性。和前馈神经网络相比,卷积神经网络的参数更少。卷积神经网络与其他神经网络模型最大的区别是卷积神经网络在神经网络的输入层前面连接了卷积层,这样卷积层就变成了卷积神经网络的数据输入层。卷积神经网络的基本网络结构可以分为四个部分:输入层,卷积层,全连接层和输出层。下面介绍各个网络部分:输入层:卷积输入层可以直接作用于原始输入数据,对于输入是图像来说输入数据是图像的像素值。卷积层:卷积神经网络的卷积层,也叫做特征提取层,包括二个部分。第一部分是真正的卷积层,主要作用是提取输入数据特征。每一个不同的卷积核提取输入数据的特征都不相同,卷积层的卷积核数量越多,就能提取越多输入数据的特征。第二部分是pooling层,也叫下采样层,主要目的是在保留有用信息的基础上减少数据处理量,加快训练网络的速度。通常情况下,卷积神经网络至少包含二层卷积层(这里把真正的卷积层和下采样层统称为卷积层),即卷积层,pooling层,卷积层,pooling层。卷积层数越多,在前一层卷积层基础上能够提取更加抽象的特征。全连接层:可以包含多个全连接层,实际上就是多层感知机的隐含层部分通常情况下后面层的神经节点都和前一层的每一个神经节点连接,同一层的神经元节点之间是没有连接的。每一层的神经元节点分别通过连接线上的权值进行前向传播,加权组合得到下一层神经元节点的输入。采用softmax全连接,得到的激活值即卷积神经网络提取到的图片特征。输出层:输出层神经节点的数目是根据具体应用任务来设定的。如果是分类任务,卷积神经网络输出层通常是一个分类器。卷积神经网络(CNN)目前已经普遍应用在计算机视觉领域,并且已经取得了不错的效果。目前的CNN研究总结来看分为两个方向:一是对训练好的复杂模型进行压缩得到小模型;二是直接设计小模型并进行训练。MobileNet属于后者是Google在2017年提出的一种小巧而高效的CNN模型。2.22卷积层卷积层主要负责将神经网络中的每一部分经过更加深入的研究,从而抽象出更高层次的特征。在传统神经网络中每个神经元都要与图片上每个像素相连接,这样的话就会造成权重的数量巨大造成网络难以训练。而在含有卷积层的的神经网络中每个神经元的权重个数都时卷积核的大小,这样就相当于没有神经元只与对应图片部分的像素相连接。这样就减少了权重的数量。同时我们可以设置卷积操作的步长。卷积层会对输入的数据进行特征提取,然后会对数据中隐含的关联性进行抽象,从而抽象出更高层次的特征,这样的作用在花卉识别中可以得到很好的利用,对于卷积层而言,有两个优点,一个是局部连接,局部连接就是每一个神经元都要与需要识别的花卉图片的像素点进行连接,这样的话,如果每一个3×3的卷积核只与图像的3×3区域进行连接的话,最终的结果就是900万个链接,这样我们可以根据卷积层的这个有点来分析花卉的局部特征。卷积层的另一个优点是权值共享,如果像以上所说的,训练一个3×3的卷积核,提取图像中的某一个特征,这样它在图片的其他区域甚至其他地方都有这个能力,这样的话可以提取的特征也就越多2.23全连接层池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起全连接层在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池到将学到的“分布式特征表示”映射到样本标记空间的作用。
当来到了全连接层之后,可以理解为一个简单的多分类神经网络(如:BP神经网络),通过softmax函数得到最终的输出。整个模型训练完毕。两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部。也就是跟传统的神经网络神经元的连接方式是一样的。通俗讲你是一只小蜜蜂,你的任务是找花蜜。你的视野还比较窄,只能看到很小一片区域。当你找到朵花的花蜜之后,你不知道你找到的是不是全部的花蜜,所以你们全部的小蜜蜂开了个会,把所有采到的花蜜都拿出来分享了。全连接层就是这个花蜜大会~全连接层的组成如下:图2.1二层全连接层结构2.24池化层池化层夹在连续的卷积层中间,用于压缩数据和参数的量,缩小矩阵的尺寸,减小过拟合。简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像。池化层具体操作与卷积层的操作基本相同,只不过池化层的卷积核为只取对应位置的最大值(最大池化)、平均值(平均池化),使用最大值操作的池化层并且不经过反向传播的修改加快计算的速度也可以防止过拟合是使用池化层的优点。2.3本章小结本章主要介绍了机器学习相关的理论还有卷积神经网络概述还有卷积神经网络的基本网络结构输入层,卷积层,全连接层和输出层。第3章TensorFlow实验平台的搭建3.1TensorFlow工作原理TensorFlow是一个使用数据流图(dataflowgraphs),用于数值计算的开源软件库。3.11核心组件核心组件(coreruntime)包括:分发中心(distributedmaster)、执行器(dataflowexecutor/workerservice)、内核应用(kernelimplementation)和最底端的设备层(devicelayer)/网络层(networkinglayer)。图3.1TensorFlow的代码结构分发中心从输入的数据流图中裁取子图(subgraph),把子图划分为操作片段并启动执行器。分发中心处置数据流图的时候会进行优化,比如公共子表达式消去(commonsubexpressionelimination)、常量折叠(constantfolding)等等。执行器负责图操作在进程和设备中的运行、收发其它执行器的结果。分布式TensorFlow拥有参数器(parameterserver)来汇总和更新其它执行器返给他的模型参数。负责比较单一的图操作,包括数学计算、数组操作、控制流和状态管理操作的是内核应用。单进程版本的TensorFlow没有分发中心和执行器,而是使用特殊的会话应用(Sessionimplementation)来联系本地装备。3.12低阶api张量(tf.Tensor)在TensorFlow程序中,所有的数据都是通过张量的形式来表示的。张量是TensorFlow的核心数据单位,本质上张量是一个任意维度的数组。可用的张量类型包括常数、变量、张量占位符和稀疏张量。张量的属性值主要有三个:名字(name)、维度(shape)和类型(type)。变量(tf.Variable)是能够通过操作改变所取值的特殊张量。必须先进行初始化后变量才可使用,低阶API中定义的变量必须明确初始化,高阶API例如Keras会自动对变量进行初始化。用户也可以自行定义变量集合。数据流图是用于定义计算结构的。在TensorFlow中,数据流图本质上是一组链接在一起的函数,每个函数都会将其输出传递给0个、1个或多个位于这个级联链上的其他函数。Z1(0)ZZ1(0)Z0(0)Z1(1)ZZ1(1)Z0(1)Z0Z0(2)图3.2依赖例子一般地,像Z0(0)与Z1(0)这种直接连接,称为直接依赖,而像Z0(0)与Z0(2)这种称为间接依赖。即Z0(1)直接依赖于Z0(0)和Z1(0),而Z0(2)间接依赖依赖于Z0(0)与Z1(0)。TensorFlow在数据流编程下运行,具体地,使用数据流图(tf.Graph)表示计算指令间的依赖关系,随后依据图创建会话(tf.Session)并运行图的各个部分。tf.Graph包含了图结构与图集合两类相关信息,其中图结构包含图的节点(tf.Operation)和边缘(张量)对象,表示各个操作组合在一起的方式,类似于汇编代码但是但不详细规定它们的使用方式;构建数据流图的时候会将节点和边缘对象加入图中不会触发计算按钮,图像构建完成后会将计算部分分流给会话实现计算这一步。会话拥有物理资源,tf.Session.run是运行节点对象和评估张量的主要方式。3.13高阶apiKerasKeras是一个支持TensorFlow、Thenao和Microsoft-CNTK的第三方高阶神经网络API。Keras以TensorFlow的PythonAPI为基础提供了神经网络、尤其是深度网络的构筑模块,并将神经网络开发、训练、测试的各项操作进行封装以提升可扩展性和简化使用难度。在TensorFlow下可以直接导出Keras模块使用。使用TensorFlow.keras可以运行所有兼容Keras的代码并且不会损失速度。3.2TensorFlow框架环境配置TensorFlow可以运行在多个平台,包括Linux平台、Windows平台、MacOs平台,其精简版TensorFlowLite甚至可以运行在移动设备平台。本文的神经神经网络训练框架运行在windows系统上。在开发环境配置工具上可以通用。安装TensorFlow的方法很多。TensorFlow框架以Python语言开发为主,所以需要安装Python环境。Python是高效的解释型脚本语言,大多的科学计算和数学模型仿真都以Python为开发语言。Python在科学计算上有相当多的拓展包可供使用,如numpy等。为了更加方便地管理Python运行环境,可以使用Anaconda来进行相关管理。Anaconda是功能丰富,扩展包完备的Python环境管理工具,可以在一个设备上建立多个独立的Python运行环境,并且切换简单,从而满足开发环境不同需求。3.3本章小结成功搭建了TensorFlow实验平台,简要介绍了实现卷积神经网络的TensorFlow框架以及工作原理。第4章基于机器学习的花卉识别4.1数据处理4.11数据读取数据的来源是kaggle的一个花卉分类竞赛,这个数据集包含四千三百二十六朵花卉包含五种花卉雏菊七百六十九张,蒲公英一千零五十五张,玫瑰七百八十四张,向日葵七百三十四张,郁金香九百八十四张。读取数据集绘制柱形图运行结果如图4.1所示图4.1各种花卉数量的柱形图4.12数据划分由于本文用到的花卉数据集还没有定义标准分割的形式,首先将利用subsplit函数将数据集分割为三部分,用于训练的占80%,用于验证的0、用于测试占20%。读取源数据集的文件夹,生成划分好的文件夹,分为trian、val、test三个文件夹进行按照训练:验证:测试=8:0:2比例划分,进行数据图片的复制。该部分用到了分类遍历将数据集中的花卉切分到训练集和测试集中。图4.2划分结果4.2配置网络Keras快速构建神经网络模型Keras中主要有三类模型:Sequentialmodel,Functionalmodel,Subclassmodel图4.3模型分类SequenctialAPI:顺序模型是从头到尾的线性不分叉的结构。使用方法:单个输入、输出构建简单模型。FunctionAPI:是构建Keras模型最流行的方法。它允许多个输入、多个输出、分支和层共享。Subclassmodel:模型子类化是为需要完全控制模型、层和训练过程的高级开发人员设计的。需要创建一个定义模型的自定义类,而且可能不需要它来执行日常任务。但是,如果你是一个有实验需求的研究人员,那么模型子类化可能是最好的选择,因为它会给你所有你需要的灵活性。4.3构建模型4.31CNN模型图4.4图形识别的CNN模型如图4.4所示,可以看出最左边的船的图像就是输入层,计算机理解为输入若干个矩阵,这点和DNN基本相同。接着是卷积层(ConvolutionLayer),这个是CNN特有的,我们后面专门来讲。卷积层的激活函数使用的是ReLU。在卷积层后面是池化层(Poolinglayer),这个也是CNN特有的,池化层是没有激活函数的。卷积层+池化层的组合可以在隐藏层出现很多次,图4.4中出现两次。而实际上这个出现的次数是根据模型本身的需要来的。当然也可以灵活使用卷积层+卷积层,或者卷积层+卷积层+池化层的组合,这些组合在构建模型的时候没有限制要求。但是最常见的CNN都是若干卷积层+池化层的组合,如图4.4的CNN结构。在若干卷积层+池化层后面是全连接层(FullyConnectedLayer,简称FC),在输出层是使用了Softmax激活函数来做图像识别的分类。3.32MobileNet模型表4-1MobileNet网络结构Type/StrideFilterShapeInputSizeConv/s23×3×3×32224×224×3Convdw/s13×3×32dw112×112×32Conv/s11×1×32×64112×112×32Convdw/s23×3×64dw112×112×64Conv/s11×1×64×12856×56×64Convdw/s13×3×128dw56×56×128Conv/s21×1×128×12856×56×128Convdw/s23×3×128dw56×56×128Conv/s11×1×128×25628×28×128Convdw/s13×3×256dw28×28×256Conv/s11×1×256×25628×28×256Convdw/s23×3×256dw28×28×256Conv/s11×1×256×51214×14×256Convdw/s1Conv/s13×3×512dw1×1×512×51214×14×51214×14×512Conv/s23×3×512dw14×14×512Conv/s11×1×1024×10247×7×512Convdw/s23×3×1024dw7×7×1024Conv/s11×1×1024×10247×7×1024AvgPoll/s1Pool7×77×7×1024FC/s11024×10001×1×1024Softmax/s1Classifier1×1×1000表4-2.MobileNet网络的计算与参数分布TypeMult-AddsParametersConv1×194.86%74.59%Convdw1×13.06%1.06%Conv3×31.19%0.02%FullyConnected0.18%24.33%MobileNet是一个轻量化的神经网络模型,所谓的轻量化就是可以在一般的家用pc和手机上运行起来的模型。MobileNet核心是采用了可分解的depthwiseseparableconvolution,MobileNet不仅可以降低使用模型的计算复杂度,而且可以大大降低使用模型的大小。用.summary()函数可以显示出完整的使用模型架构。本文是用了两个模型CNN模型和MobileNet模型进行对比学习,CNN模型架构如图4.6所示MobileNet模型架构如图4.7所示,图4.6CNN模型架构图4.7MobileNet模型架构4.4模型评估图4.8花卉列表实现花卉识别系统中的数据集包含四千三百二十六朵花卉包含五种花卉雏菊七百六十九张,如图4.8所示蒲公英一千零五十五张,玫瑰七百八十四张,向日葵七百三十四张,郁金香九百八十四张。因为前面没有划分验证集,未提供验证集这种情况,validation_split用于按一定比例从训练集中取出一部分作为验证集。当卷积神经网络网络构建完成后,就可以开始进行训练了。卷积神经网络CNN模型经过训练,花费的时长为24分钟左右经过五次的迭代,最后训练集损失trainloss为0.2854,训练集精确度为0.9239,验证集损失为0.5475,验证集精确度为0.671875。五次迭代的训练和验证精度/损失的学习曲线如图4.9所示;经过10次的迭代的话,最后训练集损失trainloss为0.2014,训练集精确度为0.9700,验证集损失为0.4098,验证集精确度为0.8877。十次迭代的训练和验证精度/损失的学习曲线如图4.10所示根据图4.9图4.10开始训练模型后,训练集和验证集的评估指标随着训练epoch的变化,对比CNN模型中的五次迭代精度略高于十次迭代,损失低于十次迭代的,采用CNN模型五次迭代的准确率更好一点。图4.9CNN模型迭代五次训练和验证精度/损失的学习曲线图4.10CNN模型迭代十次训练和验证精度/损失的学习曲线MobileNet模型经过训练,花费的时长也为24分钟左右经过十次的迭代,最后训练集损失为0.0455,训练集精确度为0.9912,验证集损失为0.4098,验证集精确度为0.8877。十次迭代的训练和验证精度/损失的学习曲线如图4.12所示;经过五次迭代,最后训练集损失为0.1231,训练集精确度为0.9687,验证集损失为0.3590,验证集精确度为0.8796。五次迭代的训练和验证精度/损失的学习曲线如图4.11所示;经过十次迭代,最后训练集损失为0.0222,训练集精确度为0.9969,验证集损失为0.4747,验证集精确度为0.8808。十五次迭代的训练和验证精度/损失的学习曲线如图4.13所示;根据图4.11、图4.12、图4.13开始训练模型后,训练集和验证集的评估指标随着训练epoch的变化对比MobileNet模型十次迭代的结果优于五次迭代十次迭代的。图4.11MobileNet模型迭代五次训练和验证精度/损失的学习曲线图4.12MobileNet模型迭代十次的训练和验证精度/损失的学习曲线图4.13MobileNet模型迭代十五次的训练和验证精度/损失的学习曲线开始训练模型后,训练集和验证集的评估指标随着训练epoch的变化。从图中可以看到,验证集的精度高略低于训练集的精度。使用测试集来评估模型可以进一步验证模型的泛化能力。根据两个模型输出训练和验证精度/损失的学习曲线比对MobileNet模型的精度更高一些损失率低。所以测试我进行测试MobileNet模型的识别的准确率。论文里设计的MobileNet模型在训练环节对于花卉的识别分类的验证集准确率大概在88%左右。图4.14MobileNet模型测试结果4.5模型预测通过界面设计显示出来。界面设计能够使花卉识别的结果直观的表达出来,训练效果可以清晰的通过花卉识别的主页面得到测试与验证,所以界面设计是花卉识别必不可少的一部分。本文设计的花卉识别系统的主界面比较简单。该花卉识别界面,点击加载测试样本界面将访问电脑的文件,从本文用到的数据集中选取任意花卉照片再点击识别花卉。输出界面的主要作用在于反馈识别出来的花卉信息给到用户,将花卉照片输入到后台后,经过模型的测试,从而将获取的花卉信息显示到前端,如图4.14-4.18所示。在识别过程中测试了一百种张花卉图像,只有十一张花卉识别错误。说明本次设计的最终结果较为成功,能够实现预期的目标,实现花卉的分类识别。图4.15UI界面图4.13加载测试样本后图4.14蒲公英测试结果图4.15雏菊测试结果图4.16郁金香测试结果图4.17向日葵测试结果图4.18玫瑰测试结果图4.19将向日葵识别成雏菊图4.20把蒲公英识别成雏菊4.6本章小结本章主要基于机器学习的花卉识别课题进行了研究测试,用的是机器学习的算法卷积神经网络CNN,本章首先对数据进行读取划分,然后使用的Sequential来搭建CNN,搭建了用于识别花卉的CNN模型和轻量级卷积神经网络MobileNet模型,对其进行训练和调用发现MobileNet模型更好。选择MobileNet模型测试准确率。用设计好的UI界面选择一张图片上传然后点击开始预测就会用训练好的模型进行预测,把预测结果输出在界面上能够比较准确地识别出图片属于五种花卉中的哪一种,花卉识别的结果是准确的。说明本次设计的最终结果较为成功,能够实现预期的目标,实现花卉的分类识别。第5章总结与展望5.1总结花卉识别是利用图像处理技术对花卉进行分割与分类处理的过程。花卉识别在农业生产中具有较重要的意义,它能够减轻花卉从业人员的工作压力工作负担,提高花卉识别效率。自从卷积神经网络被提出以来,机器学习在图像识别与分类、目标检测与定位等方面发展突飞猛进,甚至在人机对局方面发挥了重要作用。标准的卷积神经网络是一种特殊的前馈神经网络模型,通常具有比较深的结构,一般由输入层、卷积层、池化层、全连接层以及输出层组成。(1)简要介绍了花卉识别在国内外各个领域的研究进展及应用成果,研究的背景和意义,国内外现状还有本文的论文结构。(2)分析了机器学习核心基础知识和研究了卷积神经网络结构,为后面的研究提供理论基础。(3)详细描述了TensorFlow框架的基本原理,成功完成TensorFlow实验开发环境的搭建,为后面的研究提供工程基础。(4)成功实现了基于TensorFlow的卷积神经网络模型,通过对比CNN模型和MobileNet模型精度/损失的学习曲线,选择了合适的迭代次数,最后选用了MoblieNet模型在flower数据集上迭代十次解决花卉识别问题,测试准确率,实现花卉识别的目标。5.2展望本文在基于深度学习的花卉图像分类识别方面做了相关工作,面对花卉图像分类识别存在的一些分类难题,结合机器学习的知识,提出了其中的一些相关算法,组成模型去解决相关分类难点,但是模型和算法也都可以进一步改善,实现更加准确的花卉分类识别。由于花卉存在类间相似性和类内差异性,其分类具有较大挑战性,这就更加需要关注花卉部分微小的差异,从而就需要一个数量更大,涵盖更广的带标注的花卉图像数据集,来进一步提高花卉图像数据集的分类精度。参考文献柯遥,陈小芬,李绍滋.基于多特征融合的花丼图像检索[J].计算机科学,2010,37(11):282-286.M.E.Nilsback,A.Zisserman.Avisualvocabularyforflowerclassification[C].ComputerVi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖北轻工职业技术学院高职单招笔试职业适应性测验试题库含答案解析2套试卷
- 2026年温州科技职业学院高职单招笔试化学试题库含答案解析2套试卷
- 2026年海南工商职业学院高职单招笔试物理试题库含答案解析2套试卷
- 2026年浙江特殊教育职业学院高职单招笔试数学试题库含答案解析3套试卷
- 2026年泉州经贸职业技术学院高职单招笔试化学试题库含答案解析2套试卷
- 2026年河南经贸职业学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2026年河南住院医师-河南住院医师超声医学科历年参考题库含答案解析
- 2026年河北工程技术学院高职单招笔试语文试题库含答案解析3套试卷
- 2026年沈阳职业技术学院高职单招笔试综合素质试题库含答案解析3套试卷
- 2026年江西枫林涉外经贸职业学院高职单招笔试职业适应性测验试题库含答案解析3套试卷
- 公司抵质押品管理制度
- 电子电工产业概论 课件全套 陈芳芳 学习领域1-5 产业基本概况 - 职业岗位
- 《机械制造工艺基础(第八版)》 课件 0绪论
- 简易项目合作协议书模板
- 六年级说明文阅读题共6篇
- 新疆乌鲁木齐市第四中学2024-2025学年高二地理上学期期末考试试题
- TCHAS 10-4-14-2021 中国医院质量安全管理 第4-14部分:医疗管理应急管理
- 服饰品配件设计概论
- 变压器生产工艺设计
- GB/T 16623-2022压配式实心轮胎技术规范
- JJG 875-2019数字压力计
评论
0/150
提交评论