您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于神经网络的水果识别
水果识别一、水果识别算法设计:从水果图像可以看出,仅从水果的主要颜色就可以把它们区分开。于是我们先提取出主要颜色,然后用BP神经网络进行分类。设计步骤如下:1)用K-均值方法对每幅图像进行聚类。然后提取出水果的主要颜色。2)把每幅图像水果主要颜色的R、G、B三个分量分别作为水果的三个特征,把它们作为神经网络的输入。3)把一部分提取出的水果特征作为训练样本训练BP网络。4)读取未知类别的水果图像,然后用K-均值聚类,提取主要颜色,把主要颜色的R、G、B三个分量输入到训练好的神经网络,即可对水果进行分类。二、实验1、特征提取用k-均值方法对水果图像分类,要分的类别数依赖于图像颜色复杂度,从图像可直观看出三种水果的主要颜色有较大的区别,因此,我们把图像聚成两类,然后提取出主要颜色。以下是一幅桃子图像聚类的结果原始图像聚类结果把所有水果主要颜色的R、G、B三个分量以及每个水果所属类别存放到一个数据文件里(我们存放在characters.mat里),以提供给训练及测试神经网络用。2、训练神经网络首先我们选择比较常用的BP网络。网络为两层,其中第一层的传递函数为tan-sigoid,在输出层使用线性传递函数(purelin)。由于我们要得到的是三个目标,所以输出层使用3个神经元,而第一层的神经元需要有试验确定,在这个实验中,通过反复试验,我们发现第一层使用6个神经元最为合适,这个时候误差能够达到最好,分类效果也比较理想。神经网络训练过程中,我们从characters.mat文件中读取所有水果的特征和水果所属类别,作为样本。其中一半的样本用于训练,训练最大循环次数为100,然后用所有的样本进行测试。由于每次的初始化是随机的,因此,我们可以反复训练,然后记录训练结果比较的网络。训练过程发现,网络识别率很容易达到100%,以下是我们训练过程中识别率为100%时,神经网络的收敛图。最后的误差可达610。010203040506070809010010-610-510-410-310-210-1100101100EpochsTraining-BluePerformanceis3.09984e-006,Goalis0三、方法比较1、提取两个主颜色上面的方法中,我们只提取一个主颜色作为水果特征,如果我们提取两个组颜色作为水果特征,结果会不会更好呢?我们先对图像聚成两类,然后分割出水果,对分割出的水果再聚两类,提取出两个颜色作为特征。然后训练网络。我们发现这种情况下识别率仍然为100%,但收敛速度很快,最后误差可达1210下图是其收敛过程。不过这种情况下,结果很依赖于神经网络初始值的选择,初始值不好,结果会比较差。010203040506070809010010-1210-1010-810-610-410-2100100EpochsTraining-BluePerformanceis1.86217e-012,Goalis02、加入粗糙度特征从水果图可以直观看出,从颜色上很容易把苹果分开,但是个别桃子和桔子有较大的相似度,然而,可以发现桔子表面比桃子表面光滑,于是,我们可以想到加入纹理特征(这里指粗糙度),来更好的区分桃子和桔子。粗糙度的计算用如下公式:(,,)(,)(,)(,)(,)(,)(,)(,)(,)gijdfijfidjfijfidjfijfijdfijfijd计算所有的g(i,j,d)(本文中d=3),然后计算平均值,作为粗糙度特征,于是我们用一个颜色和一个粗糙度作为水果特征,然后训练神经网络。从结果种情况下识别率仍然为100%,但收敛速度最快,最后误差可达1710下图是其收敛过程。不过这种情况下,结果还是比较依赖于神经网络初始值的选择,初始值不好,结果会比较差。总的来说,这是效果最好的。051015202530354010-1810-1610-1410-1210-1010-810-610-410-210040EpochsTraining-BluePerformanceis6.37405e-018,Goalis0三种情况比较:特征情况识别率收敛速度对网络初始值的倚赖程度一个主颜色100%一般较小两个主颜色100%较快很大颜色和粗糙度100%最快较大(综合效果最好)程序文件:fruitrecognize.m水果识别主程序fruitrecognize.fig水果识别界面characters1.mat一个颜色是的所有水果特征characters2.mat一个颜色是的所有水果特征characters3.mat一个颜色特征和粗糙度特征bpnet1.matbpne1t.emf以一个颜色作为特征时训练的网络和误差图。bpnet2.matbpnet2.emf以两个颜色作为特征时训练的网络和误差图。bpnet3.matbpne3t.emf颜色和粗糙度作为特征时训练的网络和误差图。在matlab下运行fruitrecognize.m即可进入水果识别界面。
本文标题:基于神经网络的水果识别
链接地址:https://www.777doc.com/doc-2576119 .html