版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
花卉图像特征提取与识别算法研究摘要:花卉识别在日常生活中与植物学、药学等研究领域广泛使用,但是依靠传统的识别进行人工手动选择特征分类,存在低准确率、识别时间较长和适用范围窄等诸多问题。本文聚焦于花卉图像特征提取和识别算法研究,系统分析了颜色、纹理、边缘和系数等特征的提取方法,重点探讨了深度学习在复杂场景下的优势。通过整理多品类的数据集,构建了不同算法下的花卉识别系统,输出准确率曲线、损失曲线及混淆矩阵,比较支持向量机(SVM)、K近邻(KNN)、人工神经网络(ANN)与卷积神经网络(CNN)的识别效果。本文以CNN为核心,构建了包含四层卷积的网络架构,实现从低层到高层的特征提取。实验结果表明,CNN凭借其在图像特征处理方面的优势,测试集准确率达到了90%以上,对花卉图片的整体识别效果明显优于其他算法。通过对比不同卷积层对结果的影响,显示了四层卷积模型在特征组合与分类精度上的优势:随着卷积层数增加,模型能够捕获更加细微抽象的花卉图片特征。此外,本文在设计系统的同时开发了可视化GUI界面,方面用户更好地上传和观察图像分类结果,主观解释了识别系统的实用性和鲁棒性。关键词:花卉识别;深度学习;卷积神经网络;特征提取;SVM算法RESEARCHONFEATUREEXTRACTIONANDRECOGNITIONALGORITHMSFORFLORALIMAGESAbstract:Flowerrecognitioniswidelyusedindailylifeandresearchfieldssuchasbotanyandpharmacy.However,relyingontraditionalrecognitionmethodstomanuallyselectfeatureclassificationhasseveraldrawbacks,includinglowaccuracy,longrecognitiontime,andanarrowscopeofapplication.Thispaperfocusesontheresearchofflowerimagefeatureextractionandrecognitionalgorithms,systematicallyanalyzingtheextractionmethodsofcolor,texture,edge,andcoefficientfeatures,withaparticularemphasisontheadvantagesofdeeplearningincomplexscenarios.Bycompilingmulti-categorydatasets,flowerrecognitionsystemwereconstructedunderdifferentalgorithms,outputtingaccuracycurves,losscurves,andconfusionmatrices,andcomparingtherecognitioneffectsofSupportVectorMachine(SVM),K-NearestNeighbor(KNN),ArtificialNeuralNetwork(ANN),andConvolutionalNeuralNetwork(CNN).ThispaperusesCNNasthecore,constructinganetworkarchitecturecomprisingfourconvolutionallayerstoachievefeatureextractionfromlowtohighlevels.ExperimentalresultsdemonstratethatCNN,withitsadvantagesinimagefeatureprocessing,achievesanaccuracyrateofover90%onthetestset,significantlyoutperformingotheralgorithmsintheoverallrecognitionofflowerimages.Bycomparingtheimpactofdifferentconvolutionallayersontheresults,thefour-layerconvolutionalmodelshowsadvantagesinfeaturecombinationandclassificationaccuracy:asthenumberofconvolutionallayersincreases,themodelcancapturemoresubtleandabstractfeaturesofflowerimages.Inaddition,thispaperdevelopedavisualGUIinterfacewhiledesigningthesystem,allowinguserstobetteruploadandobserveimageclassificationresults,subjectivelyexplainingthepracticalityandrobustnessoftherecognitionsystem.Keywords:Flowerrecognition;Deeplearning;Convolutionalneuralnetwork;Featureextraction;SVMalgorithm目录TOC\o"1-3"\h\u86911绪论 1272221.1研究背景及意义 180371.2国内外研究现状 2163851.2.1传统图像识别方法 280671.2.2深度学习算法 3314671.3主要研究内容 32862花卉图像特征提取和分类算法研究 4211682.1图像特征提取方法 4269242.2分类算法基础理论 574432.2.1SVM、KNN、ANN算法概述 542192.2.2CNN与其他算法的性能差异 8269703花卉识别系统设计与实现 8256373.1数据集的构建与预处理 8183023.1.1数据集的收集与标注 8139483.1.2数据集的划分 1086583.2特征提取模型设计 10277883.3卷积神经网络模型设计 1113093.3.1卷积层 11134063.3.2池化层 12210423.3.3激活函数 13293453.3.4全连接层 14280383.4系统GUI界面开发 14190524花卉识别系统展示与结果分析 15257004.1实验环境和评估指标 15307704.2各算法识别效果对比 16318994.3CNN四层卷积层输出结果对比 20166644.4实验成果展示 2227914.4.1花卉识别系统功能验证 225984.4.2实验结果分析 2334305总结与展望 2321225.1全文总结 24130075.2目标展望 2421342参考文献 2531816致谢 261绪论本章节主要讲述了研究背景和主要研究内容,侧重从人类生活需求、国内外花卉识别技术发展历程两方面进行论证。1.1研究背景及意义随着人们物质水平的不断提高,在极具科技感和未来感的日常生活中越来越关注大自然的状态,不仅在家中种植各类花草,在空闲时刻也会选择去植物园或者公园散心调整。而手机和相机获取各类图像非常方便,其中存在着各种智能软件帮助我们快速识别植物种类,因此如何快速、准确地识别花卉的种类成为了当下的研究热点。迄今为止,世界上发现的花卉类别已经有36万种,例如目前已知的玫瑰品种就有数百,每一种又分为红、粉、黄、渐变等几十种颜色,如图1-1所示。在公众认知当中,看到一种陌生的花朵也只是知道它属于某个大类,由于花卉本身的高相似度和所处环境的复杂不确定性,所以进行图像处理的工作较为繁琐,需要首先了解花卉的生长环境,再去研究花卉的整体特征,和现有样本进行比对,这种工作流程会大大降低识别的效率、精准度和鲁棒性。图1-1部分玫瑰种类示意图图片来源:/discovery但是我们看到了深度学习当下给各行各业带来的巨大发展前景,并将其引入花卉识别领域,大大降低了特征分类的工作量。深度学习是机器学习的一个分支,它类似于人脑的神经元结构,构建一个包含多层网络结构的模型,在经过训练之后能够自动提取所给数据中的特征,而且随着训练次数的增加,模型还能够达到更深维度,通常使用TensorFlow框架兼容多个平台,具有广泛适用性,在人脸识别、手势和交通识别领域都被广泛应用。其中,卷积神经网络(ConvolutionalNeuralNetwork,CNN),是深度学习算法中一种主流的网络模型,CNN通过输入的大量图像数据,逐层抽取特征,根据这些特征进行图像识别REF_Ref30400\w\h[1],一方面降低了识别的复杂度,另一方面减小了过拟合的风险。CNN最主要的三个部分是:卷积层用来提取图像中的信息,其中包含许多卷积核,在提取过程中进行卷积运算;池化层用来降低参数的量级防止过拟合;全连接层则是一张大网,链接各个部分并且得到概率最大的结果。本文整理并处理大量数据集,基于深度学习算法设计了一个花卉识别系统,构建了卷积神经网络模型进行多次训练,同时为了更好地展示不同模型之间的性能差异,详细介绍四个卷积层及四个算法的原理并验证其实验结果。在植物学领域,研究花卉图像分类这一课题既能帮助种植人员准确识别花卉种类,减少人力物力资源消耗;在生活中,又能让非专业人士在观赏中了解花卉、能准确进行分类,满足人们精神需求REF_Ref7011\w\h[2]。除此之外,还能用于生态保护,进行濒危植物与灾害状况监测,通过自动识别技术辅助生态调查,减少人工成本,具有重要的价值和使用前景。1.2国内外研究现状本章节主要阐述了花卉识别技术的国内外研究现状,介绍了从传统图片分类过渡到深度学习的相关实验结果,逐步证明后者对花卉识别的突出效果。1.2.1传统图像识别方法传统花卉识别方法主要使用图像处理技术,进行颜色分割、纹理分析、形状匹配,预处理、特征提取以及分类器分类等步骤。第一步进行图片预处理,也是最耗时的一步,需要手动将花卉主题与背景分割开来;第二步进行特征提取,使用人工设计的特征提取器提取一些花卉特征,例如常见的颜色、形状、纹理等;最后一步进行分类,常用机器学习算法基于大量的训练集去完成各种花朵的分类识别。国外ChaiY等人REF_Ref27548\w\h[3]先将图像训练集分割为前景和背景,然后从其他前景及背景区域中进行高斯混合分布,并采用SVM进行分类,此种分割方法虽然成效较好但是耗费大量时间,效率相对较低。Nilsback等人REF_Ref31911\w\h[4]构建了一个结构模型,这个模型主要包含花卉颜色、形状等基础特征,用不同特征去描绘花的特性,再将全部特征聚集,最后使用KNN算法进行分类,这种方法适用于安稳环境中的花卉识别,而在噪音干扰的情况下识别准确性不高。另一种通过分析LIRe图像特征检索库提供的几种特征提取方法的性能,构建图像特征库,设计并在花篮子系统上实现花卉图像识别,同时利用Borda算法对几种方法进行融合REF_Ref15278\w\h[5],这种新的识别方法从图像识别技术入手,有一定的识别效果和准确度,但是对于分类较多、拍摄背景复杂的花卉图片无法做到精准识别,具有局限性。吴笑鑫、赵方等REF_Ref13774\r\h[6]选取显著性检测CrabCut花卉图像分割算法,主要依靠颜色直方图描述方法进行颜色特征提取,需要人工选择色彩模型,同时分别提取花冠、花蕊特征区域,将三者特征进行融合建立识别模型。与传统的K最近邻(KNN)和BP神经网络算法相比较,多特征融合识别方法提高了花卉特征描述的准确性和识别鲁棒性,但是与此同时工作量也增多,以及对于拍摄角度随机、特征差异较小的花卉识别效果较低,需要更准确的特征描述。1.2.2深度学习算法由于花卉图片具有各种复杂特征和背景,如图1-2所示,这些因素往往和主体连接在一起,而深度学习可以将其分开,不同神经元代表不同因素,让花卉分类变得更加简单,识别精准度更高。a.待开月季b.全开月季图1-2不同时期的月季图片来源:/discovery基于人工分类与特征设计的缺陷,孙垚棋REF_Ref16158\w\h[7]结合AlexNet结构,提出了将AlexNet与SENet结合的精细图像分类网络,使得原有的网络能够根据各通道特征的重要程度来对图像特征进行筛选,突出图像中包含的重要信息,使其能够更好地适应精细图像分类任务要求,对于差异较小的花卉图像识别有着较高的精准度。文献REF_Ref7119\w\h[8]中梁迎春提出了一种基于改ResNet18网络模型来进行花卉识别的算法,通过添加空洞卷积和注意力机制,提高了模型的识别准确率,也增强了模型的泛化和拟合能力。而针对花卉形状特异、色彩丰富的高难度特征提取识别,以及背景干扰信息对识别率影响极大的图片,可以以鲜明且单一的特征为突破口。因此深度学习具有极好的特征提取以及图片识别能力,对于精细化以及背景复杂的图片有更好的处理效果。本文利用这个优点设计花卉识别系统,将从算法理论概述开始对比研究,并通过结果进行验证。1.3主要研究内容本文主要研究内容如下:提出花卉识别多种算法对比(SVM、KNN、ANN与CNN)。将图像数据集划分为测试集和训练集之后,构建并编译、训练对应的算法模型,ANN和CNN分别迭代50次之后进行结果评估,SVM和KNN则选用数学方法求解计算准确率。最终,经过实验验证,CNN模型实现了高精度的花卉分类识别,且性能指标优于其他算法。设计一个基于卷积神经网络的花卉识别系统,流程图如图1-3所示。卷积层是特征提取最重要的部分,也是一个多层次结构,因此为了探究卷积层深度对识别效果的影响,构建了四层卷积层模型,通过绘制准确率曲线、损失曲线、绘制混淆矩阵进行结果对比选择,此模型卷积层的核心⽬的是提取输⼊特征图的特征,卷积核可以提取图像中的边缘信息。实验结果表明,四层卷积有更高的维度的特征提取并予以采用,构建的识别系统精确率最好。图1-3花卉识别流程图2花卉图像特征提取和分类算法研究本章介绍了图像特征提取方法和深度学习部分算法,理论联系实际,多角度开展花卉识别相关内容研究。2.1图像特征提取方法特征提取是计算机视觉和图像处理中的概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图形特征,特征提取的结果是把像分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者区域,其中最主要的一个特性是“可重复性”,在不同图象中所提取的特征应该是相同的。用于图像模式识别的特征大致可归纳为:颜色或灰度的统计特征;纹理、边缘特征;代数特征;变换系数特征或滤波器系数特征REF_Ref548\w\h[9],而在花卉图像中,最常见的是颜色和纹理、轮廓。图像特征提取的发展历程大致分为三个,第一阶段是前面讲过的图像处理技术,进行图像滤波、图像边缘检测、图像二值化等,主要是对图像像素值进行操作,这种方法适用于大多数图像特征,但是由于花卉特殊性,特征差异过小因此提取较复杂且效果较差;第二个时期是机器学习,代表性算法包括支持向量机(SVM)、决策树(DT)及随机森林(RF)等监督式学习模型,这种方法通过对大量数据集进行训练,来学习图像特征的模式和规律,从而达到较好的分类效果。在深度学习广泛应用之前,机器学习一直是比较推崇的特征提取方法,省去了大量人力财力。最后发展到深度学习模型,主要包括卷积神经网络、递归神经网络等,虽然也是通过大量数据集进行训练,分类效果随着数据集的量增加而增加,但是深度学习特征提取能够学习一种更高层次的特征结构,从而达到对图像分析和理解。在深度学习方法中,卷积神经网络(CNN)是图像特征提取的主要方法之一。CNN的核心概念包括:卷积层、池化层、全连接层、激活函数等。其中卷积层是图像特征提取的核心部分,通过对输入图像进行卷积操作,来提取图像特征,而且卷积是一个多维的过程,它在提取颜色特征时是三个颜色通道单独进行卷积,最后将特征值相加得到特征图。本文在四种算法上分别研究图像特征提取,其中SVM和KNN需要手工提取,而AKK和CNN属于神经网络类别可机器自动提取相关特征数据,从代码和内置参数等角度分析介绍。2.2分类算法基础理论2.2.1SVM、KNN、ANN算法概述(1)支持向量机(SVM算法)作为经典的有监督的机器学习模型,被广泛应用在分类和回归分析领域。这个算法最核心的机制通过构建特征空间中的超平面实现样本划分。如图2-1所示,在将样本分为“黑”“红”两类之后,使得到这些点和超平面的距离最大化,在此基础上将各个数据分割开来,完成分类。该算法的优化目标在于构建一个分类决策界面,而且本身泛化性较强,在数据进行改变之后依旧进行此步骤,也能得到较好的分类效果。图2-1SVM分类二维示意图SVM算法简单使用步骤如图2-2所示。此算法具有良好的鲁棒性,特别是在数据量少的情况下,相对于其他机器学习算法有着更优秀的性能,但是花卉识别往往需要大量数据集训练,存在局限性。图2-2SVM算法流程图(2)K-近邻算法(K-NearestNeighbors,简称KNN)是一种非参数化机器学习算法,不依靠实例,其本质是通过计算待测样本和标注样本之间的相似度特征进行分类。它的算法本质是以小映大,即通过部分确定整体,在选定样本之后分为训练测试集和待分类样本集,从两者中找到最相似的K个样本,若未知样本在特征空间中的K个距离最近样本中大部分属于类别A,那么这个未知样本也可以归为A类。此算法分类时需要进行基础计算,具体计算步骤如图2-3所示。图2-3KNN算法计算流程图KNN算法具有低复杂性和非参数化特性,分类基于样本空间的几何关系,主要流程为:计算待测样本和训练集各样本之间的距离(常规距离采用欧氏距离或曼哈顿距离),具体计算公式如下,然后选取K个距离最近的样本,根据这些样本进行投票,将待分类样本归到票数最多的类别中。a.欧氏距离公式(2-1)b.曼哈顿距离公式(2-2)而K值的设定直接影响到模型的准确性。当K值过小就容易导致过拟合,对给定的训练集表现出良好效果,然而在未知测试集上性能显著衰减;当K值过大容易导致欠拟合,会引入许多冗余信息,无法捕捉模型特征在训练集表现就比较差。确定K值一般采用交叉验证和网络搜索两个方法,前者是通过多次训练确定,后者则是一种参数调优方法,在一定参数范围内搜索获取最合适的K值。KNN算法对特征值敏感,且工作原理简单,常适用于特征明显的手势识别、物体检测。人工神经网络(ArtificialNeuralNetwork,ANN),也简称神经网络,是一种接近生物神经结构的机器学习算法。其基本结构如图2-4所示,除了输入和输出结果之外,内部包含大量的单元,本身的层次结构还能调节神经元之间的连接权重,与数据建立起一种对应的映射关系,这种结构能够自主学习复杂的数据关系。图2-4最简单的人工神经网络模型图片来源:/weixin_43213884可以看到ANN算法是单向传输的网络结构,信号由一个神经元传递到下一个神经元,从而进项数据的处理,其实现步骤可以分为四个过程,如图。图2-5ANN算法步骤需要注意的是,在第一步调节激活函数的时候难度较大,需要去做大量的实验并且找到合适的结构,而在预测结果部分,需要其计算误差,判断训练值和预期值的差距,来调整后续参数。在调整模型权重的时候,还需要设置学习率,这个学习率是依靠前一步获得的误差设立的,需要若干次循环,并从中选择误差最小的那次,此时的学习率最利于算法形成输出结果。从以上流程可以看出ANN算法需要不断搭建去扩展到模型便捷,通过不同的搭建方法,模型能学习各种各样的数据并给出好的结果,但是可解释性不高,且非常消耗人力财力物力等,对于工作量来说是巨大的。2.2.2CNN与其他算法的性能差异CNN的核心思想是使用卷积层自动和层层递进地提取输入图像的局部特征,整个模型的训练过程包括:(1)前向传播:输入获取的数据通过网络的每一层结构,分别计算输出结果。(2)损失函数:计算输出结果与真实结果之间的差异。(3)反向传播:根据得到的损失函数计算每一层结构的梯度,并更新网络权重,以此减小误差。(4)迭代优化:多次迭代重复上述过程,但是不能次数过多容易导致过拟合,在预期范围内即可。本文提到的四种算法中,SVM与KNN属于传统机器学习算法,而ANN和CNN属于深度学习,特别是CNN在图像处理上有优势。在花卉识别当中,其层级特性可以显著学习边缘以及纹理等特征,在核心技术方面有独特优势,这种层次化特征抽象过程,使其能自适应不同花卉的视觉差异,尤其适用于形态多样的细粒度分类任务。3花卉识别系统设计与实现本章介绍了如何搭建一个完整的花卉识别系统,涉及数据集的处理、算法选择、结构设计以及GUI界面实现。3.1数据集的构建与预处理3.1.1数据集的收集与标注本次研究中下载了其中8种不同的花卉图片,分别是:balloonflower(铃铛花/桔梗)、camellia(山茶花)、daisy(雏菊),dandelion(蒲公英)、grapehyacinth(葡萄风信子)、roses(玫瑰)、sunflowers(向日葵)、tulips(郁金香),总计4059张照片,均属于已经经过清洗的公开数据,而且数据量较多便于后续训练学习。将全部图片进行格式转化,检查数据集内是否有灰度图像,如果存在将其转化为RGB格式,确保图片大小合适、画面清晰,全部的数据集如下图所示。图3-1数据集示例3.1.2数据集的划分卷积神经网络需要大量的数据集支撑。在完成数据的标注与采集之后,根据标准将其划分为三类:训练集、验证集和测试集,以实现对模型性能的系统化评估。对于这三类数据的解释,即训练集用于模型参数的迭代学习;而后使用模型处理验证集,输出结果反映了模型是否有效;最终,测试集又是一个独立的评估模块,计算模型的泛化性能指标例如分类准确率和预测误差值等。常规数据划分方法主要包括留出法(Hold-out)与交叉验证法(Cross-validation),前者进行随机多次分割把数据集区分为训练集和测试集,而后者则采用动态划分策略。本次研究使用的是交叉验证法,将原始数据随机分配为K个子集,剩下的K-1子集则用于模型训练,最后一个子集用于验证,输出结果后取平均值作为最终有效结果。优点在于能够更充分利用数据,提高识别的准确率,同时灵活性较高,根据需要调整K值去适应不同的数据集量,更加方便快捷。3.2特征提取模型设计除了上述卷积神经网络中的卷积层进行特征提取之外,本文还进行了多算法特征提取研究设计,并且分别构建花卉识别系统,它们有着不同的底层逻辑和计算方法,具体设置如下:(1)SVM算法SVM进行特征提取主要依靠数学计算,需要各种特征叠加成一个分类器,但是所提取到的特征不一定是对于训练有用的,因此需要牢记并且多次调整每一个参数。本研究在设置时默认正则化参数c=1.0,kernal核函数中默认为‘rbf’,适用于非线性数据。同时probability=True,代表启用概率估计,最后通过Pipeline封装,自动避免数据泄露,方便后续训练模型。(2)KNN算法KNN算法本身并不像神经网络那样具备特征提取能力,而是依赖于外部的计算对其进行分类,本次研究中直接将输入图像数据提取和标签,之后展示为特征向量。在模型训练阶段最重要的一个参数就是n_neighbors,它的值就是K值,设置其为默认5,这个数值是一个既能保留局部结构、又不过于敏感的中间值,以供后续模型评估和结果输出。ANN算法ANN算法并没有卷积层,主要依靠全连接层实现全局像素的线性/非线性组合来提取特征。在构建模型时,通过多个Dense层和Dropout层实现图像分类,使用较多参数,因此适用于中小数据集的识别。整体结果和CNN较为相似,其中输入层input_shape=(150,150,3),将图像展开为一维向量;第一个全连接隐藏层Dense(512,activation='relu'),包含512个神经元,每个神经元连接多个像素,提取花瓣颜色等全局特征。同样使用Relu激活函数,后续为了防止过拟合逐渐降低神经元数量;第一个正则化层Dropout(0.2),丢失比率为0.2,以此类推,在第三个全连接隐藏层神经元数量减少至128个,此过程将信息压缩的同时也实现了低层特征的整合,最后输出层对应8个类别,使用Softmax激活函数输出概率分布,。3.3卷积神经网络模型设计如图3-2所示,可以看到卷积神经网络的基本结构,相对于传统的神经网络,它的输入是一个三维的长方体矩阵,同时增加了池化层、卷积层等结构,这些差异使得其具有更高的效率和准确性。在花卉识别系统设计中,也是依据这样的架构去处理对应数据集并输出,经过对比测试,卷积神经网络各方面识别效果显著高于其他算法,因此本章将从算法对比选择和系统设计入手,构建并完善一个可方便实用的花卉识别系统。图3-2卷积神经网络基本结构图片来源:/fawubio3.3.1卷积层在图像特征提取部分已经介绍到卷积层的基本作用,同时它也是整个神经网络的核心部分,可以捕捉到图像局部以及细节的信息,最主要的计算都在卷积层中进行。每一次卷积运算提取的都是上一层特征图,这个过程将某个平面输入的数据进行比对,移动进行逐个相乘然后相加,这个平面就是卷积核,计算是在卷积核内部,而卷积层又是由许多个卷积核组成,在卷积层的作用下,能在体悟特征的同时降低噪声,因卷积核局部连接和权值共享的特性,也有效减少了网络的过拟合,式3-1为卷积层的正向传播公式REF_Ref12649\r\h[10]:(3-1)其中上标为层数,、为第l、l-1层中第j,i个特征图,表示第l-1层中第i个特征图与第l层中第j个特征图之间相关的卷积核矩阵,表示与l层中第j个特征图相关的偏置,“*”为卷积符号,f()为激活函数。正向传播决定了网络如何从输入数据逐步推导出预测结果,是非常关键的一个步骤。图3-3一次卷积示意图图片来源:/m0_71212744卷积层内部一次完整的运算如图3-3所示,input是输入的全部特征数据,标黄部分是需要进行卷积的特征,kernel是一个3X3大小的卷积核,标绿的部分是代表权重,两者卷积计算过后得到output输出,运算结果为-5。3.3.2池化层卷积层不间断的结构,在每两个卷积层之间插入一个池化层(PoolingLayer),它是深度学习神经网络中常用的一种层级结构,也称“汇聚层”,把多个特征汇聚到一个池子里,从中取出最大特征以及平均特征。池化层最主要的目的是“降维”,能够有效减小数据体的尺寸,从而降低资源消耗,也能有效防止训练模型时过拟合现象。普通池化操作常见的有最大池化(MaxPooling)和平均池化(MeanPooling),其中最大池化更为常用,一般使用尺寸为2x2的滤波器,在满特征池中对切片进行降采用,丢掉2/3的激活信息,留下最大化的特征信息。很多人会觉得池化层用处不大,认为可以弃用,但是在这次花卉识别系统中实验发现,如果卷积层数过高会导致过拟合情况,所以在构建模型时汇聚特征是必不可缺的一项。过拟合是模型过度拟合训练集而丧失泛化能力。优化方法包括:Dropout:以一定概率随机丢弃部分图像数据,概率设为0.5时网络结构显著简化。Adam优化器:结合动量与自适应学习率加速收敛,降低训练内存需求REF_Ref4080\r\h[11]。本文在构建卷积神经网络的时候使用二维卷积nn.Conv2D,方便处理图像数据,并且进行多次迭代。其中包含三个参数:kernel_size(3,3)卷积核大小;activation=()激活函数,input_shape=(150,150,3)输入图像尺寸,一层卷积设置一个即可,随着卷积层数增加,当卷积核数量从32到64、128……,Conv2D的数量也随之增加。二维卷积主要是进行平面上的计算,常用于图像识别,示意图如图3-4所示,输入图像尺寸为14x14x3(其中数字3为三个通道),与一个5x5x3的卷积核进行计算,可以得到一个10x10x32的特征图并且输出。图3-4二维卷积示意图图片来源:/qq_34840129具体的二维卷积计算公式如下,f(x,y)就即前面提到的输入图像,g(x,y)表示卷积核,二者所有乘积值相加得到图像h(x,y)。(3-2)卷积层和池化层密不可分,在本次实验中他们共同作为一个整体进行特征提取和转换,二维卷积之后要进行最大池化(MaxPooling)处理,设置池化窗口为2x2大小将输入的150x150尺寸降低为75x75,影响输出特征图的尺寸,便于后续展开识别。3.3.3激活函数激活函数(ActivationFunction)类似于神经网络中的神经元,作用在每一层数据输出和下一层数据输入中间。激活函数最重要的作用就是将神经网络非线性化,单独从这一个概念或许无法理解它的重要性,假设它不存在,整个结构中就只有线性变换,那么我们的神经元只会出现简单的一层,在此一层的基础上整个模式都被简化,无法形成复杂函数且应用于精细图像识别。常见的激活函数种类如下:sigmoid激活函数。此函数在进行运算时,通过非线性压缩将数据映射到(0-1)区间,其优势在于稳定的性能,且有利于二分类任务的参数优化。但是其具有很强的软饱和性,会导致梯度弥散现象后果严重,使模型在训练阶段出现问题,无法进行后续运算,公式如式3-3所示。(3-3)Tanh激活函数。和sigmoid函数相似,同样具有软饱和性,造成训练中梯度消失,但是收敛速度更快,可以降低迭代次数,提升网络效率。ReLu激活函数。它具有线性、非饱和的形式,因此可以一定程度上缓解梯度消失的问题,但是随着训练次数的增加,会出现硬饱和问题,致使训练停留在某一次输出阶段无法到下一阶段,这种现象被称为“神经元死亡”,其公式如式3-4所示。(3-4)但是在输入的花卉图像中,花瓣特征常常具有局部性而不是整体,例如边缘和纹理属于两个相区域,这种性质很符合ReLu激活函数的“零抑制”特性,这种特性使得它在多层神经网络中自动学习到稀疏特征,因此优先使用ReLU激活函数。在输出层也使用了softmax激活函数,相较于前面三个,它天然适配花卉分类的场景。本次研究共计八种花卉有八个神经元,softmax激活函数将其压缩到[0,1]区间,最后可以明确输出类别概率分布,方便后续混淆矩阵的可视化查看。3.3.4全连接层全连接层是结构的最后部分,通常放在最后的输出层,它收到来自卷积层和池化层处理过后的数据之后,再进行分类得到想要的结果,本质就是矩阵乘法再加上偏差,但是全连接层有全相连的特性,导致部分数据无法分开从而造成过拟合。当卷积核数量增加到512个输出多个特征图之后,本次实验中使用了Flatten()函数将多维特征图转变为一维向量,并交给全连接层整合特征信息,输出分类结果。3.4系统GUI界面开发图形用户界面(Graphicuserinterface,GUI),就是用户和计算机页面进行交互的可视化页面。在本个花卉识别系统中,除了客观的准确率曲线、损失曲线等数据的自动生成之外,最重要的就是可视化GUI界面,本次研究使用四千多个数据集,如何主观判断识别的准确性,因此必须制作一个对应的界面保证输入输出。我们常说的做一个软件,也是需要建立一个前端与后端算法连接,绝大多数用户看不懂复杂代码的情况下,我们需要建立一个简洁、美观且明了的交互界面。GUI界面一般包括“开始”“结束”、“最小化”、“输入”等按钮,也是它的核心部分方便用户在使用系统的过程中点击。在设置之前检查PyCharm配置环境,是否以已经PyQt5库,所需条件准备充分之后编写对应代码。由于研究中构建了多层卷积层和多种算法,所以每部分程序都需要一个GUI界面,具体实现过程如下:创建主窗口并设置窗口大小;添加背景图片;添加标题图片;创建“开始”、“结果”、“退出”按钮,最终页面如图3-5所示。图3-5生成的GUI界面展示4花卉识别系统展示与结果分析4.1实验环境和评估指标在深度学习中,清晰明了的实验环境是研究透明性和可靠性的保证,本次实验环境和具体参数如下表:表4-1实验环境配置类别项目说明硬件环境GPUAMDRadeon(TM)GraphicsCPUAMDRyzen55500UwithRadeonGraphics内存16GB软件环境训练参数编程语言深度学习框架EpochPython3.10TensorFlow50模型性能评估需要考虑到下列指标:准确率曲线:坐标系以训练次数为横轴,以准确率数值为纵轴,可以用来检测模型每次训练后的性能,该曲线通常为逐渐上升的样式,随着训练次数增加准确率也随之增加,但是当到达一定次数之后会出现反转,因此,依靠此曲线也能确定最佳训练次数。损失曲线:损失函数是模型优化的可视性工具,坐标系中横轴是训练轮次,纵轴则是损失函数值,该曲线通常为下降趋势,在每一次训练之后,其模型损失数值会变小,也就意味着在不算完善接近最优解。混淆矩阵:通常是一类表格,其中含有每个样本的预测值和真实值,通过计算可以得到模型的分类精度、召回率和F1得分等指标,这些指标可以更加明确地评估模型综合表现,帮助我们不断提升其错误规避能力和分类性能,基本结构如下表所示。表4-2混淆矩阵基本结构预测为正类别预测为负类别实际为正样本为正(TP)实际为正样本为负(FN)实际为负样本为正(FP)实际为负样本为负(TN)4.2各算法识别效果对比本文在设计花卉识别系统时分别使用了四种算法构建,深度学习模型CNN和ANN输出对应的准确率曲线、损失曲线、和混淆矩阵,同时测试了最终的识别系统,主观和客观协同判断对比算法效果。在绘制曲线和混淆矩阵之前,需要对数据进行处理,损失值根据迭代次数而变化,准确率则是根据epoch次数,在这里我设置了epoch值为50,因此会有50个准确率值,在每次训练之后会产生损失和准确率数据,需要部分代码将其保存为文本。本次研究中使用Keras的ImageDataGenerator和flow_from_directory两个类处理图像数据,在代码中已经安装了numpy库和matplotlib库的基础上,用他们去读取保存后的数据,进而绘制相关曲线。绘制验证和训练准确率曲线的时候,使用了plt.Plot()函数绘制折线图,plt.figure()绘制一个尺寸为8x6英寸大小的窗口,在检查模型中存在历史训练记录之后,提取训练准确率值并作图。同样,绘制loss曲线的时候,确保存在loss(训练损失)和val_loss(验证损失)之后绘制曲线,同时使用函数plt.legend()显示图例,plt.tight_layout()优化布局。model.predict()函数则使用模型对训练集进行预测,确保数据不会遗漏,并且输出预测标签和真实标签方便绘制混淆矩阵。通过上述操作之后输出检查各类结果,并且多次且随机进行图片验证,一般来讲输出准确率和验证结果都是相似的,如果在前几次就有较高的识别错误率,则这个算法的整体效果较差,反之则拥有较好的特征表现能力和鲁棒性。ANN算法输出结果如图4-1所示,其准确率最高也不到50%,对于最基础的雏菊图片也不能准确识别。a.ANN混淆矩阵b.ANN准确率曲线c.ANN损失曲线d.识别错误展示e.ANN识别正确展示图4-1ANN算法输出结果同样的数据集SVM通过数学计算得到准确率仅有47.80%,算法运行结果如图4-2所示。a.SVM混淆矩阵b.SVM识别错误展示c.SVM识别错误展示图4-2SVM算法输出结果KNN通过数学计算得到准确率较低,算法运行结果如图4-3所示。a.KNN混淆矩阵b.KNN识别正确展示c.KNN识别错误展示图4-3SVM算法输出结果最后是三个卷积层的算法运行结果,如图4-4所示。a.CNN准确率曲线b.CNN损失曲线c.CNN混淆矩阵d.CNN识别正确展示e.CNN识别正确展示f.CNN识别正确展示图4-4CNN算法输出结果各算法识别准确率和损失如下表所示,选用同样的数据集,可以看到传统的机器学习算法(KNN,SVM)的识别率明显较低,对于特征明显的图片依旧识别错误。而深度学习算法ANN的识别准确率相对较高,训练五十次后识别准确率在50%,但是对于系统来讲远远不够。最后是卷积神经网络,三层卷积层系统输出的识别准确率在90%左右,对于角度刁钻、隐藏特征的花卉图片依旧识别准确。表4-3四种算法结果算法类别训练准确率验证准确率训练损失验证损失ANN0.40.481.51.3SVM/0.478//KNN/0.273//ANN0.850.910.450.2本章重点在于花卉识别系统设计与不同算法运行结果对比,在系统阶段,主要进行了数据集的划分和卷积神经网络模型构建,介绍了它的四个部分以及各自功能;在算法结果对比模块,明显ANN识别准确率最高,分类和识别效果最为理想,因此在后续的系统中确定了以卷积神经网络为基础算法。4.3CNN四层卷积层输出结果对比卷积神经网络(CNN)通常由多个卷积层叠加构成,通过逐层提取和处理特征,让模型从低层到高层不断学习,而且随着卷积层数的增加,输出结果的精确度也会随之增加,如图3-10所示,但是层数以及训练次数过多容易导致过拟合。在模型训练时也要注意这点,建立卷积网络模型时各个层的参数都是依据经验而设定,对于不同的物体在识别过程中可能不是最优参数,导致最终输出的结果与期望值差异较大REF_Ref15654\r\h[11],或者出现过拟合和欠拟合。a.一个卷积层准确率曲线b.一个卷积层损失曲线c.一个卷积层混淆矩阵d.两个卷积层准确率曲线e.两个卷积层损失曲线f.两个卷积层混淆矩阵g.三个卷积层准确率曲线h.三个卷积层损失曲线i.三个卷积层混淆矩阵j.四个卷积层准确率曲线k.四个卷积层损失曲线l.四个卷积层混淆矩阵图4-5不同卷积层输出数据以上数据可以看出,同样的数据集和迭代次数,随着卷积层的增加准确率也在不断上升,一层卷积只有0.6的准确率,在四层卷积中训练准确率和验证准确率均在0.9。4.4实验成果展示4.4.1花卉识别系统功能验证选用四层卷积神经网络作为系统最终算法,在数据集中寻找特征难度较大的图片进行功能验证,识别结果如图3-11所示。葡萄风信子部分图片、郁金香花蕊、粉色山茶花放大图片三种均识别正确。图4-6系统功能验证4.4.2实验结果分析本研究对比了四种算法性能之后选择,并验证了卷积神经网络在花卉识别方面的显著优势,下面将从两个方面深入分析实验结果。(1)传统算法的局限性。在算法概述部分介绍了三种算法的基本概念和优劣,如果应用到花卉图片识别当中,SVM和KNN算法表现较差的主要原因是两者过度依赖人工处理数据,在给定图片的情况下不能自主学习花卉特征,因此不能单独适用于花卉识别。而另一种深度学习算法ANN存在自主学习特征能力,依旧识别准确率较低,是因为其无法准确识别多种特征,对于花卉细节,例如花蕊形态和花瓣纹理等捕捉能力不足,而且通过观察ANN算法输出的损失曲线,可以看到训练准确率和验证准确率相差较大,模型不稳定且泛化能力不足。(2)CNN独特优势。实验结果发现,卷积神经网络(CNN)在花卉识别中具有显著优势,识别率在0.9以上,主要原因有以下几个:卷积层逐层递进,能够从低级边缘特征学习到高级语意形态,从大体轮廓、颜色等学习到细小的花蕊特征,完全不局限于花朵形态,因此对于高相似的花卉,例如花朵形态蒲公英和向日葵两种,也能有很高的识别率。尽管获得了较为理想的实验成果,但是仍存在一些问题需要克服。本次研究所选用数据集图片中花朵主体占据画面70%以上,很少有背景复杂或者多种花卉在一张图的情况,在寻找数据集的时候过于理想化,因此无法判断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精.品解析:【全国区级联考】2024学年七年级下学期期末考试地理试题(解析版)
- 农业高效用水结题报告
- 报废机动车鉴定评估资质转让规定
- 2026年湖南省中考二模历史试题附答案
- 《Java程序设计基础(微课版)(第2版)》全套教学课件
- 3.5 指数与指数函数
- 一级建造师考试(机电工程管理与实务)题库含答案(2025年甘肃白银市)
- 安徽省铜陵市公共卫生监督执法技能竞赛(公共场所卫生监督)考试题及答案(2025年)
- 2026年事业单位E类《综合应用能力》冲刺模拟卷
- 2026年【危险化学品生产单位安全生产管理人员】考试技巧
- 2025年高职(生物制药技术)药物发酵工艺综合测试卷及答案
- 生猪屠宰兽医卫生检验人员考试题库(含答案)
- 2025年高考作文素材汇编
- 2025年《检验检测不确定度评定》知识考试题库及答案解析
- 2026-2031中国非PVC输液器市场调研及投资前景评估
- 吊篮施工安全专项培训
- 《车路云一体化系统 第4部分:云云数据交互规范》
- 2025-2030中国游戏MCN机构商业化模式与内容监管
- 桥式起重机安全课件
- 影像技术CT课件
- 桩机买卖协议书
评论
0/150
提交评论