MATLAB水果自动识别的BP神经网络方法
水果自动识别的BP神经网络方法
摘 要:针对多种水果混合的图像,对各种水果的提取和识别进行研究。利用Matlab软件进行图 像数据获取、对比度增强、去噪、二值化处理;为弥补二值化后图像中出现的断边、孔洞,借助Sobel算 子进行边缘提取以接合断边,并基于数学形态学算子填充孔洞。再标签化处理图像并提取水果的颜 色、形状、边缘特征,用200幅水果图像提取上述特征构造训练样本和测试样本,然后利用构造的样本 对BP神经网络进行训练和测试。实验结果表明,所提出的方法能够获得很高的正确识别率,能够有效 地将同一幅图像中的不同水果识别出来。
关键词:BP神经网络;水果识别;二值化;标签化;MATLAB
我国一直是水果、蔬菜生产大国,水果分拣基本上 仍由人工完成,虽然成本低廉,但劳动力大、生产效率 低,产后商品化处理技术和设备落后,用肉眼评判水果 的好坏,分级标准不一和分级精度不稳定,导致产品缺 乏市场竞争力,出廿数量少、价格低⑴。因此找到一种高 效的机械分拣方法非常必要,在我国具有十分重要的经 济价值和广阔的应用前景。
计算机图像处理及识别是计算机应用技术的一个 重要方面,在电子工业、人工智能、工;业自动化、生物医 疗工程、卫星遥感等众多领域中占有极其重要的地位四。 近年来,计算机图像处理及识别的研究在我国受到了广 涉的重视.取得了卓有成效的湃展.逐步历向实用阶段.
图像识别主要是研究用计算机代替人自动地去处 理大量的物理信息,解决人类生理器官所不能识别的问 题,或是直接帮助人识别信息从而简化劳动⑵。机械分 拣短时、高效的特点符合果蔬产品的时间特性,能及时 地分拣出高质量的水果。水果经识别后,可通过机械自 动化控制,对水果信息按目的地分类。因此,采用图像识 别技术对水果按要求分类,运用自动化机械分拣技术 也在实际的生产过程中能减少大量的人力资源,具有 短时、高效、方便的特点。
本文针对多种水果混合的图像,利用Matlab软件, 对水果的识别进行研究。根据水果与背景灰度值的差别 选取阈值,对去噪、增强对比度后的图像进行二值化处 理。分割出目标后,由于原始图像中灰度分布不均匀和光照等的影响,可能同一类水果中会出现空洞或个别边 缘处岀现断裂情况等,因此要对图像进行边缘检测。然 后标签化处理图像,区分水果,再提取不同水果的颜色、 形状、边界不规则等特征,用多幅图像训练BP神经网 络,建立水果特征库,利于快速识别水果,从而实现对水 果的正确分拣。
1水果图像的增强和分割
在计算机上,图像由像素逐点描述,每个像素点具 有一个明确的位置和色彩数值。用Matlab软件读取图 像,以矩阵的形式存放图像数据,其扫描规则是从左向 右,从上到下。为处理方便,把原始的彩色图像转换为灰 度图像,如图1(a)所示。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
采用中值滤波法对灰度图像进行去噪处理。中值滤 波是抑制噪声的非线性处理方法,本文用中值滤波法处 理3x3像素的局域图像,把9个灰度值按从小到大的顺 序排序后,以第5个(即中央)序号的灰度值作为目标像 素的灰度值。中值滤波对于滤除图像中的椒盐噪声非常 有效1七去噪后的图像如图1(b)所示。
(a)灰度图像
(b)去噪后的图像
图1水果图像的去噪和锐化
(c)锐化后的图像
为了得到更清晰的图像,再对图像进行锐化处理,采 用反锐化掩模的方法。反锐化掩模法是一种常用的图像 锐化方法。
式中/(x,y)为处理前的图像;,'(x,y)为用人为方法将/'3, /)模糊以后得到的图像;g(*,y)为锐化处理后的图像;c (O1)为比例常数,根据具体情况选定。反锐化掩模法有 效地提高了高频成分,使模糊呆板的图像变得具有清晰 感和生动感回,图1(c)是锐化后的结果。
经过去噪和对比度增强,就可以对图像目标进行提 取分割。图像阈值分割是最常用的图像分割技术,主要 利用了图像中背景与对象之间的灰度差异⑹。只要阈值 选取合适,将每个像素与之比较,进行二值化处理,就可 以很好地将对象从背景中分离出来。取阈值为0.34,图 2(a)是二值化后的结果。从图2(a)中可以发现水果中有 很多空洞,且水果的边缘处有断裂现象,所以采用边缘 提取以弥补断裂的边缘部分,然后基于数学形态学算子 对图像进行去除断边、图像填充等必要的后续处理。
利用Sobef算子日进行边缘检测。Sobel算子是一种 简单常用的微分算子,它不仅能检测边缘点,而且能进 一歩抑制噪声的影响。Sobel算子对数字图像/(%,y)的每
![](/assets/blank.gif)
![](/assets/blank.gif)
个像素考查其相邻点像素灰度的加权差冏,即并填充孔洞后的图像
图2水果图像的分割
利用Sobel算子进行边缘检测的结果如图2(b)所示, 水果的边缘清晰地显示岀来。再利用OR运算结合模糊 分割和边缘信息⑵,去除断边如图2(c)所示;利用数学 形态学“°•叫重新填充一下图像中的洞,最终处理后的图 像符合本文的要求,其效果如图2(d)所示。
2水果的特征提取
经过图像分割后,水果和背景很明显地被区分开 来,然后,需要对每种水果的特征进行提取。先对图像进 行标签化,所谓图像的标签化是指对图像中互相连通的 所有像素赋予同样的标号,而对于不同的连接成分则给 予不同的标号。经过标签化处理就能把各个连接成分进 行分离,从而可以研究它们的特征。
区域分割(标签化)最基本的方法是区域扩张法。本 文釆用8邻域法,由于是二值图像,因此差值可以定义 为“0”。为了能够看到明显的效果,程序以不同的颜色 来突出显示标签化后的图像,其效果分别如图3(a)和图 3(b)所示。
![](/assets/blank.gif)
(a)标签化图像图 (b)彩色标签化图像
图3水果图像的标签化处理
本文根据水果在图像中表现出来的特点,从面积、 周长、弧度、颜色四个方面对图像中的桔子、苹果、香蕉 进行特征提取,最后采用BP神经网络对目标进行分类 识别。
2.1面积特征
经过标签化的不同区域像素值分别为1、2、3。所以 用物体所包含的像素数量来计算面积,S对应像素值为 1的区域,当从左到右,从上到下地对图像进行扫描时, 发现像素值为1的,则计数器S就加1,整幅图像扫描 完毕,即得区域1的面积。类似地,可以求出S2和S3,只 是对应的S(n)需要除以no
2.2周长特征
计算周长只要计算出物体轮廓线上的像素数,但在 斜方向上会产生数字化图形特有的误差,故应以其2倍 的数量加以补正。当从左到右、从上到下地扫描图像时, 发现像素值为1的,且它的相邻像素值(8领域)有与它 不同的,计数器A加1,整幅图像扫描完毕,即得区域1 的周长。类似可以求出上和丄。
2.3弧度特征
弧度是在面积、周长的基础上,测量物体形状的复 杂程度的特征量。有弧度计算公式:弧度=4“(面积)/(周 长)2。通过对三种弧度的比较,可以将图中三种水果弧 度最小的香蕉识别出来。
2.4颜色特征
本文采用颜色直方图法提取水果图像颜色特征。所 谓颜色直方图是颜色信息的函数,它表示图像中具有同 颜色级别的像素的个数,其横坐标是颜色级别(各个像素 的灰度级),纵坐标是该颜色出现的频率(像素的个数)。
图像的颜色有多种表示方式,本文采用RGB颜色 模式。对于彩色图像,可分解为R、G、B三幅单色图像, 因此相应的便有三幅不同通道的直方图,每幅直方图中 的像素分布情况都代表了这一通道中的特定颜色的程 度信息。从肉眼即可分辨出苹果的红色含量要比桔子和 香蕉丰富得多,所以苹果红颜色的信息量在红、绿、蓝三种 颜色中所占的比例也应该是三者中最高的,即N心N绿: N黄的值也是最大的。所以,本文釆用N绿+N黄)的 算法来比较三种水果各自红色信息所占比例,从而将苹 果特有的特征量提取出来,达到识别苹果的目的。
经Matlab软件编程测试得图像中三种水果的特征 参数如表1所示。
由表1可以看出:
(1)香蕉是周长最长、弧度最小的水果;
表1水果的特征参数
水果种类 | 面积S | 周长£ | 弧度(radian x) | 颜色(ration) |
桔子 | 7 271 | 390 | 0.6007 | 1.2200 |
苹果 | 14 067 | 898 | 0.2192 | 0.7605 |
香蕉 | 10 006 | 465 | 0.5815 | 1.6010 |
(2)在三种水果中,苹果的R通道直方图中固定区 域(100-170像素)中像素数量与其G通道和B通道直方 图中固定区域中像素数量和的比值为三者中最大的,即 苹果的红色信息量()是最多的。利用这种计算像 素比值的方法便可以将苹果与其他两种红色信息量相 对较少的水果区分出来。
3基于BP神经网络的识别
3.1 BP神经网络简介
神经网络是由简单结构和规则复合而成的高级复 杂的非线性系统,它在不同程度和层次上模拟人脑神经 系统的信息处理、存储及检索功能,具有并行结构和并 行处理、自适应性、知识的分布存储、较强的容错性、本 质的非线性系统等特性凹。通过网络训练,可以建立数 据库信息的非线性模型,并从中提取出相应的规则,能 够实现目前基于计算机理论层次上的模式识别理论无 法完成的模式信息处理工作。基于神经网络的模式识别 法相对于其他方法来说,其优势在于:(1)它要求对问题 的了解较少;(2)它可以实现特征空间较复杂的划分;(3) 它宜用高速并行处理系统实现'5、
BP神经网络是目前应用最为广泛的一种神经网络 模型,它采用多层前向网络的反向传播算法,具有逼近 任意连续函数和非线性映射的能力''%大量应用在函数 逼近、模式识别、故障诊断、智能控制、信号处理等领域。
BP神经网络的实质是把一组样本输入、输出问题 转化为一个非线性优化问题,并通过梯度算法进行迭代 运算求解权值问题,在BP神经网络结构确定后,就可 利用输入输出样本对网络进行训练,即对网络的权值和 阈值进行学习和调整,使网络实现给定的输入输出映射 关系。其训练模型如图4所示。
3.2基于BP神经网络的水果识别
多层BP网络不仅有输入、输出节点,而且还有一层 或多层隐含节点。本系统釆用三层BP神经网络,即网 络由输入层、隐含层和输出层组成[13-15]o对于水果图例 中的桔子、苹果、香蕉三种水果,本系统需要训练网络通 过识别弧度、颜色两个特征量来区分这三种水果,所以 共需要2个输入端,3个输出端。输出端分别对应[1 0 0]、[0 1 0]、[0 0 1]師。
隐含层节点数目的选择是一个十分复杂的问题,到 目前为止,还没有用数学公式来明确表示应该怎样确定 隐含层的节点数目。事实上,节点数太少,可能训练不出 来,或者训练出的网络不强壮,不能识别以前没有看到 过的样本,容错性较差;但隐含层节点太多又会使学习 训练时间太长,误差也不一定最佳|叫。参照经验公式和 实验测试效果,这里选择有19个隐含层节点的网络。
综上所述,本文所建立的网络是一个具有2个输入 端、19个隐含节点、3个输出节点的三层BP神经网络。 其网络结构如图5所示。
![](/assets/blank.gif)
图5三层BP神经网络结构图
对于BP网络的实现,本系统用到了网络初始化指 令 init(net)、网络创建指令 newff(PR,[Sl S2 ••• SN], {TF1 TF2 • • • TFN}, BTF, BLF, PF)、网络仿真指令 sim (net, p)、网络 训练指令train(net,p,t)、竞争转换指令compet(y)。在隐含 层确定后,运用传输函数sigmoid ,把一个取值范围为无 穷大的输入变量压缩到一个取值范围有限的输出变量 中,方便得出输出层的结果。
将多组图片釆集到的桔子、香蕉和苹果各自的弧度 及颜色数据分别作为训练样本和测试样本,设定目标输 出分别为1、2、3(1表示桔子,2表示香蕉,3表示苹果)。 本实验中用200幅水果图像提取水果特征构造训练样 本和测试样本,训练样本150个,测试样本50个。经过 对BP网络的初始化、训练、仿真、竞争、转换等操作,最 终实现其对特征数据的正确识别,从而达到能够自动识 别水果的目的。
4实验结果分析
BP网络的训练性能曲线如图6所示,上面的曲线 是训练性能曲线,下面曲线是目标性能曲线,训练的目 标是达到0.001 ,性能为0.000903 996o
经150个包含桔子、苹果、香蕉三种水果的图像训
![](/assets/blank.gif)
练样本训练使BP神经网络的识别正确率达100%,且从 图6中可以看出BP神经网络收敛,说明训练成功,将此 网络保存,用来进行样本测试。
对50个测试样本经BP神经网络验证,香蕉的识别 正确率达100%,桔子和苹果的识别正确率是98%,进一 步证明了特征提取和BP神经网络识别水果的有效性, BP网络已经能够正确识别桔子、苹果、香蕉三种水果各 自的特征量并将其准确地区分出来(1表示桔子,2表示 香蕉,3表示苹果)。表2所示为水果识别率统计表,可见 水果数据库建立成功,BP网络的训练也达到了比较准 确的程度,基本上达到了水果识别的目的。
表2水果识别率统计表
水果种类 | 桔子 | 苹果 | 香蕉 |
训练识别率/% | 100 | 100 | 100 |
测试识别率/% | 98 | 98 | 100 |
训练时BP神经网络识别正确率能达到100%,但用 测试样本对BP神经网络测试时,桔子和苹果的正确率 无法达到100%,主要原因有:
- 由于采集图片时光线强弱不同,水果的阴影深浅 不同,影响了对水果的轮廓识别;
- 同种水果品质不同使颜色有差异,带红色元素较 多的桔子和带黄色元素较多的苹果放在一起时易造成 误判。
实验结果表明,基于BP神经网络的水果识别系统 具有较强的适应能力,识别效率高,是一种有效的检测 方法。利用水果自身的特征对水果图像进行分类识别是 计算机视觉技术在农业自动化四应用中的重要前提条 件。近年来,随着计算机视觉技术的发展,图像分类识别 在各行各业的应用愈加广泛。通过图像的外观特征对图 像进行分类识别,是一种及时便捷、切实有效的方法。 本系统对水果的识别正确率高,具有非常重要的经济和 实用价值,其应用前景十分广阔。
参考文献
- 曾江辉.关于我国水果的国际竞争力分析[C].中国论 文联坛,2010.
- 宁天夫.数字图像处理技术的应用与发展[J].舰船电子 工程,2009,29(1):38 -41.
- 向光蓉.基于图像识别的苹果分级研究[D].大连海事大 学学报,2003,29(3):14-41.
- 黄启明.自动分拣系统及其应用前景分析[J].物流技术, 2002,21(5):7.
- 贾永红.数字图像处理[M].武汉:武汉大学出版社、 2003.
- 白菲.基于机器视觉的柑橘水果外形识别方法研究[C]. 信息与电气工程学院,2005(11):16-31.
- 袁春兰,熊宗龙,周雪花.基于Sobel算子的图像边缘检
'°,5:°253035
(a)裁剪前 (b)裁剪后
图14圆与矩形窗口有少于8个交点的情形
(3)简化了入点和出点的判断。本算法利用封闭图形 的入点和出点在矩形窗口边界上交互出现,只需判断一 [8] 个起始点为入点或出点,然后按照逆时针顺序,根据入点 和出点交互分布的原则依次判断其他点是入点或出点。
在基于类直角坐标系的六角网格系统上,矩形窗口
进行变化,即可适用于其他图形图像的矩形窗口裁剪。
参考文献
- ROGERS C A. Packing covering[M]. Cambridge : Cambridge University Press, 1964.
- TIRUNELVELI G, GORDON R,PISTORIUS S. Comparison of square-pixel and hexagonal - pixel resolution in image processing]". Proceedings of the 2002 IEEE Canadian Conference On Electrical & Computer Engineering.
- CONDAT L,Dimitri Van De Ville,BLU T. Hexagonal versus orthogonal lattices: a new comparison using approx-imation theory [J]. ICIP: IEEE International Conference on Image Processing,2005,3 • 11_ 14.
- 刘勇奎,邹善举.六角网格上的图像算法及几何量 定义[J],计算机工程与设计,2000,21(1):61-64.
- 赵慧杰,晏俊德,刘勇奎,等.六角网格单色显示器 及图形算法研究[J].沈阳工业大学学报,1997,19(5): 66-71.
- 韩丽.基于六角网格的矩形窗口的圆裁剪算法[JL 锦州师范学院学报(自然科学版),2003,24(4):64 - 66. 孙长嵩,李丽洁,宋阳.一个基于六角网格的圆形窗口 的裁剪算法[J].交通科技与经济,2006,33(1):78-80. 付文超,罗小华,张文争,等.改进的六角网格下椭圆 绘制算法[J].暨南大学学报(自然科学与医学版).
MATLAB水果自动识别的BP神经网络方法相关推荐
- 基于matlab国内外水果自动分级方面,水果自动识别的BP神经网络方法
摘 要:针对多种水果混合的图像,对各种水果的提取和识别进行研究.利用Matlab软件进行图像数据获取.对比度增强.去噪.二值化处理:为弥补二值化后图像中出现的断边.孔洞,借助Sobel算子进行边缘提 ...
- matlab麻雀搜索算法(SSA)优化BP神经网络,权值和阈
matlab麻雀搜索算法(SSA)优化BP神经网络,权值和阈值,一个压缩包共三个文件,包括有数据和代码,放入自己的数据即可得出仿真图形 ID:296679013048817MATLAB
- BP神经网络优化 | MATLAB基于飞蛾扑火算法优化BP神经网络(MFO-BP)的预测模型(完整代码在文末)
飞蛾扑火( Moth-flame optimization algorithm,MFO) 是Seyedali Mirjalili等于2015年提出的一种新型智能优化算法.该算法具有并行优化能力强,全局 ...
- 基于matlab的电机故障诊断,基于BP神经网络的电机故障诊断的研究(MATLAB,程序)
基于BP神经网络的电机故障诊断的研究(MATLAB,程序)(课题申报表,任务书,开题报告,中期检查表,外文翻译,论文25600字,程序,答辩PPT) 摘 要 随着我国经济发展的不断提高,电气化的应用越 ...
- 【PID优化】基于matlab粒子群算法优化BP神经网络PID控制【含Matlab源码 2022期】
⛄一.粒子群算法优化BP神经网络PID控制简介 BP神经网络PID控制算法 传统PID控制器作为一种线性控制器,具备结构,容易实现的优点,其基本原理是将系统的实际输出值和期望输出值之间的偏差按照比例. ...
- matlab步进电机模糊pid和BP神经网络控制
1.内容简介 略 303-可以交流.咨询.答疑 2.内容说明 栽苗机育苗移栽是农业生产过程中的一个重要技术环节,它具有对气候的补偿作用 和使作物生育提早的综合效益,同时它可以充分利用光热资源,其经济效 ...
- 【BP数据预测】基于matlab人工鱼群算法优化BP神经网络数据预测【含Matlab源码 523期】
一.人工鱼群算法简介 1 觅食行为 指鱼循着食物多的方向游动的一种行为,人工鱼X i X_iXi在其视野内随机选择一个状态X j X_jXj,分别计算它们的目标函数值进行比较,如果发现Y j ...
- MATLAB汉字识别(GUI,bp神经网络,论文)
一.课题介绍 该课题为基于MATLAB的汉字识别,网络上基本多为数字识别,字母识别,比较少对于中文汉字的识别.该课题为基于MATLAB的BP神经网络的汉字识别,具有人机交互界面GUI. 二.基本流程 ...
- MATLAB机器学习系列-3:BP神经网络算例实现
BP神经网络 BP神经网络是前连接神经网络中的一种,BP指的是训练方法是误差反向传播Backpropagation,要求激活函数是可导的. 数据归一化 什么是归一化? 将数据映射到[0, 1]或[-1 ...
最新文章
- 未能加载类型“URLRewriter.ModuleRewriter”。 解决方法
- 两个小工具,MySQL死锁分析,新技能又Get!!!
- python 日志打印
- C语言学习记录_2019.02.02
- 应用程序环境块相关代码
- oschina下载工具
- C语言 printf 函数 - C语言零基础入门教程
- @ResponseStatus
- 前端问题求助input type=“range”问题求助
- 兼容浏览器的insertAdjacentHTML
- VC2010 编译 Media Player Classic - Home Cinema (mpc-hc)
- MikroTik RB750r2/RB750gr3 操作记录
- 高项 案例分析重点知识 风险采购合同
- serv-u 用户时间显示相差8小时_调好闹钟!4月8日凌晨,将迎来今年最大满月
- 对给定的AOV网络,产生所有的拓扑排序结果,并进行解法的动态演示
- iceberg-flink 八:累积窗口使用。(CUMULATE)
- oracle导出辅助账明细,AO2011导入国库集中支付系统3.0的辅助账
- python turtle隐藏画笔_Python turtle库的画笔控制说明
- python操作手机app超详细步骤
- 菜鸟教程java的list_Java菜鸟教程