您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页基于BP神经网络的实时水表自动识别系统的研究

基于BP神经网络的实时水表自动识别系统的研究

来源:抵帆知识网
基于BP神经网络的实时水表自动识别系统的研究

李云栋;孙长庆

【摘 要】为提高数字水表字符的识别率,提出一种基于数字图像处理技术与BP神经网络的水表自动识别系统;首先对采集的水表图像进行预处理以获得字符区域,然后进行二值化操作,利用连通区域提取算法分割出单个字符,最后利用训练好的BP神经网络对分割后的字符进行识别,并输出识别结果;实际运行表明自动识别系统正确率在95%以上,并且能够实时显示水表数据. 【期刊名称】《计算机测量与控制》 【年(卷),期】2013(021)005 【总页数】3页(P1330-1332)

【关键词】数字水表;字符识别;BP神经网络;连通区域提取;字符分割 【作 者】李云栋;孙长庆

【作者单位】北方工业大学信息工程学院,北京 100144;北方工业大学信息工程学院,北京 100144 【正文语种】中 文 【中图分类】TP391.41 0 引言

传统的手工抄表方式工作量大,且工作人员在处理大量数据时容易出错,因此手工抄表模式在现代化建设的过程中将逐渐被淘汰。然而当前大量存在的机械式水表无

法输出电信号,因而无法实现自动抄表。因此研究仪表的非接触式字符提取技术具有重要的工程价值。随着计算机与图像处理技术的发展,近年来基于图像处理的仪表读取技术得到广泛的关注。关于实时水表自动识别系统,在软件及硬件方面已经展开不少的工作。文章提出一种基于嵌入式系统的图像采集、识别与传输的抄表系统,详细阐述了系统的硬件基本结构和各部分的功能实现[1]。仪表识别系统中核心技术是字符识别,国内外科员人员在多个领域中对字符识别的方法进行了研究,取得了很多优秀成果,如光学字符识别[2],车牌自动识别[3],手写体字符自动识别等。

本文提出一种基于数字图像处理技术和BP神经网络的数字水表自动识别系统。针对水表显示的特点,设计了一种适合数字水表识别系统的BP神经网络,大大提高了字符识别率而且整个过程无需人工参与,为自动抄表奠定了技术基础。 1 系统框架

数字水表识别系统由三大部分组成:水表图像采集模块、水表图像处理及识别模块与水表数据输出模块。水表图像采集模块由CCD图像传感器与DSP主板组成。为减小外界光源对采集图像质量的影响,将水表和图像传感器密封在一起,同时调整好镜头的位置与角度。图像传感器的光源采用红外光源,安装在镜头附近,彻底屏蔽可见光的影响。水表图像处理及识别模块是本系统的核心部分,包括图像滤波、边缘检测、数据区定位、字符分割与识别。图像首先进行滤波预处理,然后进行二值化操作和区域定位,并采用改进的连通区域提取算法对字符进行分割,最后构建BP神经网络并对10个字符模板进行训练,利用训练好的神经网络对字符进行识别。水表数据输出模块主要功能是将识别后的水表数据在PC机或其它终端设备上显示出来。数字水表自动识别系统框图如图1所示。 图1 系统框图

在系统中,水表图像处理和识别过程较复杂,图2给出了处理过程。

2 字符提取

在进行字符识别之前,对获取的图像进行预处理是非常重要的。通过预处理,可以改善图像的质量,降低噪声,有利于特征数据的提取。针对获取的水表数据图像,系统做如下预处理工作:将获取的彩色图像转换为灰度图像。并对灰度图像进行中值滤波、边缘提取、再利用形态学滤波方法对水表的数据区进行定位。通过上述操作可以获得数据区,如图3白色区域就是水表的数字区域。 图2 水表图像处理及识别过程

图3 原始灰度图像 (a)和获取的数字区域 (b)

获得数据区域之后要从图像中这感兴趣的部分提取出来,并对每个字符进行分割,从而为字符识别创造条件。在系统中,由于数据区域特征比较明显,定位采用了投影法,获得了很好的效果,对于字符的分割,为了避免图像倾斜存在倾斜等因素影响采用一种改进的连通区域提取的方法进行字符的分割,能够快速又准确的对字符进行分割。

2.1 水表数据区域的定位

从图3中可以看出,所需要的水表数据区域一般划定为包围白色区域的最小矩形,只要获取最小矩形的左上角的坐标和右下角的坐标,就可以将水表数据区域提取出来。具体方法是:对整幅图像进行从上到下扫描,统计每一行的白色像素点数目,当第一次遇到某一行白色像素点数超过20,记录下此行,则此行就是目标矩形区域的行起始位置。同样从下至上扫描,当遇到一行中白色像素点数目大于20时,记录下行数,则此行是目标矩形的行终止位置。对整幅图像进行从左到右、从右到左扫描,分别记录下某一列中像素和大于10的列数,确定水表数据区域的列起始位置和列终止位置。确定了坐标之后就把这块区域单独显示出来,从而获得字符数据区域。如图4。

图4 定位剪切后的水表数据区域

为了测试系统对水表数据提取的适应性,选取了多幅从不同角度拍摄的图片进行处理,也取得了比较好的结果,如图5。 2.2 数据字符的分割

在进行字符分割之前,首先对提取的数字水表区域图像进行预处理,主要是对图像进行二值化和形态学滤波,这里选取最小均方误差法对图像二值化,这种方法比采用单阈值的方法适应性强。当图片受外界因素影响,灰度发生颇大的变化时,依然可以得到很好的二值化效果。二值化后的图像会带有一些较小的无用区域,这里用形态学滤波的方法滤除,获得效果比较好的图像,如图6。 图5 不同角度下提取数据区的结果 图6 滤波后的二值化图像

对于字符分割,连通区域提取算法[4]比较常用,本系统采用改进的连通区域提取算法对字符进行分割,主要思想就是:水表这5个数据构成5个连通域,定位出每个连通域行列的起始位置和终止位置,可以获得连通域的最小外接矩形,之后将每个矩形分别剪切,分割出每个字符。具体方法:首先将标记数组初始化为0,如果在扫描过程中,值为0就表示此像素点未被扫描,为X,就表示扫描过且在第X个连通域。顺序扫描二值图像,如果像素灰度值为0,扫描下一个像素,如果为1,且相邻元素的标记值都为0,则此像素为新连通域的起始点,标记为原来标志值加1。从此像素点开始扫描其所有相邻元素,并对连通域内元素进行标记,继续寻找起始点像素,这样往复将二值图像的每个连通域进行标记。如何找出连通域的最小外接矩形?连通域内每一个像素都有一个标记值,相同连通域内像素标记值是相同的,不通连通域内的标记值是不相同的。从左到右、从上到下,依次扫描每个像素的标记值,当找到第一个像素点标记值为X时,记录点像素的横坐标,从上到下、从左到右依次扫描,当找到第一个像素点标记值为X时,记录该点像素的从坐标。同理逆向扫描,就可以寻找出连通域外接最小矩形的另一个点的坐标,这

样就可以将字符分割出来。其中最后一个字符区域不是目标区域,可以不予考虑。为了方便识别,将获得的分割字符样本归一化为40×20大小,如图7。 图7 分割后字符 3 BP神经网络字符识别

字符识别常用的方法包括模板匹配法[5]、统计特征识别法、结构特征识别法以及基于神经网络的识别方法[6]等。由于系统对正确率和实时性的要求,选取神经网络识别方法。

水表数据识别中要识别的数据不是很多,从0到9一共10个数字,采集样本数据为40×20大小的图片,进行BP神经网络设计时,一般要考虑网络的层数、每层中的神经元数、初始值及学习速率。

首先由于隐含层的存在,神经网络具备了许多特性,隐含层具体取多少层合适至今为止也没有确定的规律可循,不过已经证明,三层BP神经网络能够逼近任何有理函数[7]。实际上以此可以作为设计BP神经网络的一个基本原则,同时在工程应用中,使用一个隐含层是最为普遍的,因为更多的隐含层会使得训练时间变得很长,因此很少使用。所以选择一个输入层、一个隐含层、一个输出层。

输入层神经元个数的选择一般依赖特征向量的维数,输出层神经元的个数一般取决于识别字符的数目。隐含层神经元在训练过程中能提取输入向量的特征,所以决定隐含层神经元的数目是非常重要的。但是目前隐含层神经元数目的选择还没有一个可行的计算公式。隐含层的神经元数对网络性能的影响很大,当隐含层神经元数目较少时,网络每次学习时间相对较短,但可以倒是迭代次数多、误差无法达到全局最小,网络训练精度也不高。隐含层神经元数目较大时,学习能力得到增强,但网络每次所需的学习时间相对较长,另外还可导致过度拟合。在实际问题中通常凭借经验和数值试验的方法来寻找合适的值。在这里给出一个经验公式:N=+M来确定隐含层的神经元数[7]。其中I表示输入层的神经元个数,O表示输出层神

经元的个数,M表示一个常数,0<M<10。

根据以上准则,本系统选取的是40×20大小二值化的字符图像,故选取输入层神经元数为800个,即输入为800个元素的向量,每个元素的取值范围为0或者1。由于本系统需要识别出的字符数据为10个,所以共有10个期望输出,于是输出层神经元数为10个。隐含层神经元数由经验公式可知: 具体的实验训练结果,如表1所示。

表1 隐含层神经元数目不同时BP网络训练结果隐含层的神经元数 迭代次数 训练完成所需要时间 (s)29 5 109 30 443 90 31 439 92 32 438 33 440 87 34 441 88 35 440 88 36 443 88 37 440 38 472 126 39 444 93

经进一步实验发现,选择隐含层选取32个神经元比较合适,不仅很好的完成了神经网络的训练,同时也具有较好的识别效果。

学习速率决定每一次循环训练中所产生的权值变化量。高的学习速率可能导致系统的不稳定;低的学习速率导致较长时间的训练,可能收敛很慢,不过能保证网络的误差值跳出误差表面的低谷而最终趋于最小误差。在一般情况下,倾向于选取较小的学习速率保证系统的稳定性。学习速率的取值范围一般在0.01~0.8之间[8],在这里系统选取为0.3。

通常情况下,一般的BP神经网络训练算法效率比较低,为了提高训练速度和减少震荡,通过改进,系统中运用有动量加自适应的低度下降算法,动量项的加入使得在修正权值时,考虑前时刻的梯度方向,从而使学习过程中减少震荡,增加收敛速度。有自适应的梯度下降算法能够自适应调整学习速率,增加稳定性和精度。 依照上述原则,设计好BP神经网络误差训练曲线如图8所示。 图8 水表数据识别网络训误差曲线

然后利用训练好的水表数据识别网络对分割好的字符进行识别。并将结果显示出来,

结果如图9。 图9 识别输出

通过选取500组样本图像进行测试,正确率达95%,并且每张图片的识别时间小于1s,系统工作稳定,能够满足工程要求。 4 结论

本文提出一种结合BP神经网络与数字图像处理技术的水表数字识别系统。该方法具体步骤包括水表图像的预处理、数据区域的定位与分割、特征提取、神经网络识别及显示输出,能够准确快速的将字符识别出来,大大降低了识别的出错率,并且具有良好的实时性。实际运行表明该方法是可靠的,能够提高水表识别的工作效率,获得比较满意的效果。

【相关文献】

[1]章 专,仲林国,朱志刚.基于图像采集与处理的自动抄表系统[J].电测与仪表,2004,(41):60-62.

[2]Mori S,Suen C.Y,Yamamoto K.Historical Reviw of OCR Research and Development[J].Proceedings of IEEE 1992(7):1029-1058.

[3]甘 玲,林小晶.基于连通域提取车牌字符分割算法 [J].计算机仿真,2011,(28):336-339.

[4]陈柏生.一种二值图像连通区域标记的新方法 [J].计算机工程及应用,2006,(25):46-47.

[5]张志佳,李 媛.基于灰度模板匹配的仪表字符识别研究 [A].Proceedings of the 29th Chinese Control Conference [C].2010,2987-2990.

[6]Rui X P,Song X F.A Character Recognition Algorithm Adapt to a Specific Kind of Water Meter [J].Computer Science and Information Engineering,2009,(5):632-636.

[7]杨淑莹.模式识别与智能计算 [M].北京:电子工业出版社,2008.

[8]张 铮,王艳平,等.数字图像处理与机器视觉 [M].北京:人民邮电出版社,2010.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务