摘 要:针对多种水果混合的图像,对各种水果的提取和识别进行研究。利用Matlab软件进行图像数据获取、对比度增强、去噪、二值化处理;为弥补二值化后图像中出现的断边、孔洞,借助Sobel算子进行边缘提取以接合断边,并基于数学形态学算子填充孔洞。再标签化处理图像并提取水果的颜色、形状、边缘特征,用200幅水果图像提取上述特征构造训练样本和测试样本,然后利用构造的样本对BP神经网络进行训练和测试。实验结果表明,所提出的方法能够获得很高的正确识别率,能够有效地将同一幅图像中的不同水果识别出来。
关键词:BP神经网络;水果识别;二值化;标签化;MATLAB
我国一直是水果、蔬菜生产大国,水果分拣基本上仍由人工完成,虽然成本低廉,但劳动力大、生产效率低,产后商品化处理技术和设备落后,用肉眼评判水果的好坏,分级标准不一和分级精度不稳定,导致产品缺乏市场竞争力,出口数量少、价格低[1]。因此找到一种高效的机械分拣方法非常必要,在我国具有十分重要的经济价值和广阔的应用前景。
计算机图像处理及识别是计算机应用技术的一个重要方面,在电子工业、人工智能、工业自动化、生物医疗工程、卫星遥感等众多领域中占有极其重要的地位[2]。近年来,计算机图像处理及识别的研究在我国受到了广泛的重视,取得了卓有成效的进展,逐步迈向实用阶段。 图像识别主要是研究用计算机代替人自动地去处理大量的物理信息,解决人类生理器官所不能识别的问题,或是直接帮助人识别信息从而简化劳动[3]。机械分拣短时、高效的特点符合果蔬产品的时间特性,能及时地分拣出高质量的水果。水果经识别后,可通过机械自动化控制,对水果信息按目的地分类。因此,采用图像识别技术对水果按要求分类,运用自动化机械分拣技术[4],在实际的生产过程中能减少大量的人力资源,具有短时、高效、方便的特点。
本文针对多种水果混合的图像,利用Matlab软件,对水果的识别进行研究。根据水果与背景灰度值的差别选取阈值,对去噪、增强对比度后的图像进行二值化处理。分割出目标后,由于原始图像中灰度分布不均匀和光照等的影响,可能同一类水果中会出现空洞或个别边缘处出现断裂情况等,因此要对图像进行边缘检测。然后标签化处理图像,区分水果,再提取不同水果的颜色、形状、边界不规则等特征,用多幅图像训练BP神经网络,建立水果特征库,利于快速识别水果,从而实现对水果的正确分拣。
1 水果图像的增强和分割
在计算机上,图像由像素逐点描述,每个像素点具有一个明确的位置和色彩数值。用Matlab软件读取图像,以矩阵的形式存放图像数据,其扫描规则是从左向右,从上到下。为处理方便,把原始的彩色图像转换为灰度图像,如图1(a)所示。
采用中值滤波法对灰度图像进行去噪处理。中值滤波是抑制噪声的非线性处理方法,本文用中值滤波法处理3×3像素的局域图像,把9个灰度值按从小到大的顺序排序后,以第5个(即中央)序号的灰度值作为目标像素的灰度值。中值滤波对于滤除图像中的椒盐噪声非常有效[5],去噪后的图像如图1(b)所示。
为了得到更清晰的图像,再对图像进行锐化处理,采用反锐化掩模的方法。反锐化掩模法是一种常用的图像锐化方法,其算法表达式为:
式中,f(x,y)为处理前的图像;f′(x,y)为用人为方法将f(x,y)模糊以后得到的图像;g(x,y)为锐化处理后的图像;c(c>1)为比例常数,根据具体情况选定。反锐化掩模法有效地提高了高频成分,使模糊呆板的图像变得具有清晰感和生动感[6],图1(c)是锐化后的结果。
经过去噪和对比度增强,就可以对图像目标进行提取分割。图像阈值分割是最常用的图像分割技术,主要利用了图像中背景与对象之间的灰度差异[6]。只要阈值选取合适,将每个像素与之比较,进行二值化处理,就可以很好地将对象从背景中分离出来。取阈值为0.34,图2(a)是二值化后的结果。从图2(a)中可以发现水果中有很多空洞,且水果的边缘处有断裂现象,所以采用边缘提取以弥补断裂的边缘部分,然后基于数学形态学算子对图像进行去除断边、图像填充等必要的后续处理。
利用Sobel算子[7]进行边缘检测。Sobel算子是一种简单常用的微分算子,它不仅能检测边缘点,而且能进一步抑制噪声的影响。Sobel算子对数字图像f(x,y)的每个像素考查其相邻点像素灰度的加权差[8],即
利用Sobel算子进行边缘检测的结果如图2(b)所示,水果的边缘清晰地显示出来。再利用OR运算结合模糊分割和边缘信息[9],去除断边如图2(c)所示;利用数学形态学[10,11]重新填充一下图像中的洞,最终处理后的图像符合本文的要求,其效果如图2(d)所示。
2 水果的特征提取
经过图像分割后,水果和背景很明显地被区分开来,然后需要对每种水果的特征进行提取。先对图像进行标签化,所谓图像的标签化是指对图像中互相连通的所有像素赋予同样的标号,而对于不同的连接成分则给予不同的标号。经过标签化处理就能把各个连接成分进行分离,从而可以研究它们的特征。
区域分割(标签化)最基本的方法是区域扩张法。本文采用8邻域法,由于是二值图像,因此差值可以定义为“0”。为了能够看到明显的效果,程序以不同的颜色来突出显示标签化后的图像,其效果分别如图3(a)和图3(b)所示。
本文根据水果在图像中表现出来的特点,从面积、周长、弧度、颜色四个方面对图像中的桔子、苹果、香蕉进行特征提取,最后采用BP神经网络对目标进行分类识别。
2.1 面积特征
经过标签化的不同区域像素值分别为1、2、3。所以用物体所包含的像素数量来计算面积,S1对应像素值为1的区域,当从左到右,从上到下地对图像进行扫描时,发现像素值为1的,则计数器S1就加1, 整幅图像扫描完毕,即得区域1的面积。类似地,可以求出S2和S3,只是对应的S(n)需要除以n。
2.2 周长特征
计算周长只要计算出物体轮廓线上的像素数,但在斜方向上会产生数字化图形特有的误差,故应以其2倍的数量加以补正。当从左到右、从上到下地扫描图像时,发现像素值为1的,且它的相邻像素值(8领域)有与它不同的,计数器L1加1,整幅图像扫描完毕,即得区域1的周长。类似可以求出L2和L3。
2.3 弧度特征
弧度是在面积、周长的基础上,测量物体形状的复杂程度的特征量。有弧度计算公式:弧度=4π(面积)/(周长)2。通过对三种弧度的比较,可以将图中三种水果弧度最小的香蕉识别出来。
2.4 颜色特征
本文采用颜色直方图法提取水果图像颜色特征。所谓颜色直方图是颜色信息的函数,它表示图像中具有同颜色级别的像素的个数,其横坐标是颜色级别(各个像素的灰度级),纵坐标是该颜色出现的频率(像素的个数)。
图像的颜色有多种表示方式,本文采用RGB颜色模式。对于彩色图像,可分解为R、G、B三幅单色图像,因此相应的便有三幅不同通道的直方图,每幅直方图中的像素分布情况都代表了这一通道中的特定颜色的程度信息。从肉眼即可分辨出苹果的红色含量要比桔子和香蕉丰富得多,所以苹果红颜色的信息量在红、绿、蓝三种颜色中所占的比例也应该是三者中最高的,即N红:N绿:N黄的值也是最大的。所以,本文采用N红/(N绿+N黄)的算法来比较三种水果各自红色信息所占比例,从而将苹果特有的特征量提取出来,达到识别苹果的目的。
经Matlab软件编程测试得图像中三种水果的特征参数如表1所示。
由表1可以看出:
(1)香蕉是周长最长、弧度最小的水果;
(2)在三种水果中,苹果的R 通道直方图中固定区域(100~170像素)中像素数量与其G通道和B通道直方图中固定区域中像素数量和的比值为三者中最大的,即苹果的红色信息量(ratio_x)是最多的。利用这种计算像素比值的方法便可以将苹果与其他两种红色信息量相对较少的水果区分出来。
3 基于BP神经网络的识别
3.1 BP神经网络简介
神经网络是由简单结构和规则复合而成的高级复杂的非线性系统,它在不同程度和层次上模拟人脑神经系统的信息处理、存储及检索功能,具有并行结构和并行处理、自适应性、知识的分布存储、较强的容错性、本质的非线性系统等特性[12]。通过网络训练,可以建立数据库信息的非线性模型,并从中提取出相应的规则,能够实现目前基于计算机理论层次上的模式识别理论无法完成的模式信息处理工作。基于神经网络的模式识别法相对于其他方法来说,其优势在于: (1)它要求对问题的了解较少;(2)它可以实现特征空间较复杂的划分;(3)它宜用高速并行处理系统实现[5]。
BP神经网络是目前应用最为广泛的一种神经网络模型,它采用多层前向网络的反向传播算法,具有逼近任意连续函数和非线性映射的能力[12],大量应用在函数逼近、模式识别、故障诊断、智能控制、信号处理等领域。
BP神经网络的实质是把一组样本输入、输出问题转化为一个非线性优化问题,并通过梯度算法进行迭代运算求解权值问题。在BP神经网络结构确定后,就可利用输入输出样本对网络进行训练,即对网络的权值和阈值进行学习和调整,使网络实现给定的输入输出映射关系。其训练模型如图4所示。
3.2 基于BP神经网络的水果识别
多层BP网络不仅有输入、输出节点,而且还有一层或多层隐含节点。本系统采用三层BP神经网络,即网络由输入层、隐含层和输出层组成[13-15]。对于水果图例中的桔子、苹果、香蕉三种水果,本系统需要训练网络通过识别弧度、颜色两个特征量来区分这三种水果,所以共需要2个输入端,3个输出端。输出端分别对应[1 0 0]、[0 1 0]、[0 0 1][16]。
隐含层节点数目的选择是一个十分复杂的问题,到目前为止,还没有用数学公式来明确表示应该怎样确定隐含层的节点数目。事实上,节点数太少,可能训练不出来,或者训练出的网络不强壮,不能识别以前没有看到过的样本,容错性较差;但隐含层节点太多又会使学习训练时间太长,误差也不一定最佳[17]。参照经验公式和实验测试效果,这里选择有19个隐含层节点的网络。
综上所述,本文所建立的网络是一个具有2个输入端、19个隐含节点、3个输出节点的三层BP神经网络。其网络结构如图5所示。
对于BP网络的实现,本系统用到了网络初始化指令init(net)、网络创建指令newff(PR,[S1 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.000 903 996。
经150个包含桔子、苹果、香蕉三种水果的图像训练样本训练使BP神经网络的识别正确率达100%,且从图6中可以看出BP神经网络收敛,说明训练成功,将此网络保存,用来进行样本测试。
对50个测试样本经BP神经网络验证,香蕉的识别正确率达100%,桔子和苹果的识别正确率是98%,进一步证明了特征提取和BP神经网络识别水果的有效性, BP网络已经能够正确识别桔子、苹果、香蕉三种水果各自的特征量并将其准确地区分出来(1表示桔子,2表示香蕉,3表示苹果)。表2所示为水果识别率统计表,可见水果数据库建立成功,BP网络的训练也达到了比较准确的程度,基本上达到了水果识别的目的。
训练时BP神经网络识别正确率能达到100%,但用测试样本对BP神经网络测试时,桔子和苹果的正确率无法达到100%,主要原因有:
(1)由于采集图片时光线强弱不同,水果的阴影深浅不同,影响了对水果的轮廓识别;
(2)同种水果品质不同使颜色有差异,带红色元素较多的桔子和带黄色元素较多的苹果放在一起时易造成误判。
实验结果表明,基于BP神经网络的水果识别系统具有较强的适应能力,识别效率高,是一种有效的检测方法。利用水果自身的特征对水果图像进行分类识别是计算机视觉技术在农业自动化[18]应用中的重要前提条件。近年来, 随着计算机视觉技术的发展,图像分类识别在各行各业的应用愈加广泛。通过图像的外观特征对图像进行分类识别, 是一种及时便捷、切实有效的方法。本系统对水果的识别正确率高,具有非常重要的经济和实用价值,其应用前景十分广阔。
参考文献
[1] 曾江辉. 关于我国水果的国际竞争力分析[C]. 中国论文联坛,2010.
[2] 宁天夫. 数字图像处理技术的应用与发展[J]. 舰船电子工程,2009,29(1):38-41.
[3] 向光蓉. 基于图像识别的苹果分级研究[D].大连海事大学学报,2003,29(3):14-41.
[4] 黄启明.自动分拣系统及其应用前景分析[J]. 物流技术, 2002,21(5):7.
[5] 贾永红. 数字图像处理[M]. 武汉:武汉大学出版社,2003.
[6] 白菲. 基于机器视觉的柑橘水果外形识别方法研究[C]. 信息与电气工程学院,2005(11):16-31.
[7] 袁春兰,熊宗龙,周雪花. 基于Sobel算子的图像边缘检测研究[J]. 激光与红外,2009,1(39):85-87.
[8] 黄爱民,安向京,骆力. 数字图像处理与分析基础[M]. 北京:中国水利水电出版社,2005.
[9] 孙涵璇,谢凤英,姜志国,等.基于BP神经网络的结核杆菌目标识别[J]. 中国体视学与图像分析,2010, 15(1):13-17.
[10] 王娟,周金芝. 基于Matlab的形态学图像处理研究[J]. 现代交际, 2010(4):135-136.
[11] 乔忠慧,古乐野,张超. 基于数学形态学的彩色图像边缘提取[J]. 微计算机信息,2009, 25(11-1):131-137.
[12] 张海波,董槐林,龙飞,等. 基于 BP神经网络的图像识别研究[J]. 计算机与现代化,2008(5):17-19.
[13] 董长虹. Matlab 神经网络与应用[M].北京:国防工业出版社,2007.
[14] 周开利,康耀红. 神经网络模型及其Matlab仿真程序设计[M]. 北京:清华大学出版社,2005.
[15] 闻新,周露,李翔,等. MATLAB神经网络仿真及应用[M]. 北京:科学出版社,2003.
[16] 唐晓东,徐东平. 基于Matlab神经网络的图像识别[J].计算机与数字工程,2007(8):93-94.
[17] 樊亚军,曲仕茹. 利用BP神经网络实现三维飞机目标识别[J]. 郑州大学学报,2004,25(4):56-59.
[18] 李峥. 基于计算机视觉的蔬菜颜色检测系统研究[D].长春:吉林大学,2004(6):6-11.