APP下载

基于Halcon的食品生产日期针孔光学字符检测

2017-06-20鹿武先

软件导刊 2017年4期
关键词:机器视觉BP神经网络

鹿武先

摘要:光学字符识别是自动化生产的重要组成部分。针孔字符的特殊性使得字符识别难度加大,鉴于此,在对字符提取后采用闵可夫斯基加减法进行膨胀,解决了针孔字符不连接的问题。基于BP神经网络对字符进行特征提取,由于生产日期是多分类问题,采用Softmax分类器进行分类。经验证,该系统对针孔字符的正确识别率达95%以上。光学字符识别包含两个任务:将图像中的单个字符分割出来并对分割得到的字符进行分类,以酸奶生产日期为例进行探讨。

关键词:BP神经网络;图像分析;机器视觉

中图分类号:TP319

文献标识码: A

文章编号: 16727800(2017)004016803

0引言 在酸奶生产过程中,对其盒子顶端的字符进行检测与识别是不可缺少的一道工序,酸奶盒子顶端的字符包含酸奶生产日期等信息,此字符不仅关系着酸奶生产日期的准确性,也关系着酸奶生产下一道工序的选择。酸奶生产日期也是大众选购酸奶的重要标准之一,因此酸奶生产日期的检测至关重要。一般的字符识别多为连续字符识别,如车牌识别[13],其使用的训练样本多数有限,学习样本也有限,很难满足酸奶生产日期的识别。针孔光学字符识别是将膨胀处理过后的字符进行识别,由于处理后的字符存在差异,因此需要对多种字符进行训练和识别[46]。1基于Halcon的针孔光学字符识别系统 基于Halcon的针孔光学字符识别系统包含获取图像、图像预处理、字符分割、特征提取以及字符分类5部分,如图1所示。获取图像指通过工业照相机拍摄到的图像,图像预处理指将工業照相机拍摄到的图像进行滤波、边缘增强等处理,以克服噪音对图像的干扰;字符分割指通过适当的阈值进行阈值分割提取图像中的连通区域,然后使用闵可夫斯基加法将同一个字符分离部分连接起来;特征提取指利用BP神经网络对光学字符进行特征提取;字符分类指使用Softmax分类器进行分类。2针孔光学字符识别2.1图像预处理 在图像采集过程中,由于噪声、光照以及设备本身原因,获取到的图像带有一定的噪声,因而在进一步处理之前会对图像进行滤波处理。图像噪声来源主要分为两个部分:系统内部和系统外部。外部干扰主要是由电磁波的形式进入系统而引起的干扰,可以采用防电磁干扰措施来减少此类噪声,比如使用屏蔽电磁干扰的传输线。内部噪声是由CCD图像传感器和工作平台机械震动引起的噪声。这些噪声是不可避免的,为了获取高质量的图像,一般会对图像进行滤波,以便提高检测的准确性。本文所使用图片的噪声主要是由CCD图像传感器造成的,图片中存在一定程度的椒盐噪声。为了减少这种影响,先对图片进行高斯平滑处理,抑制图像噪声和干扰脉冲,然后使用拉普拉斯算子对图像进行边缘处理,使其边缘轮廓检测质量得到提高,同时也为下文图像分割做准备。高斯拉普拉斯处理前的图像如图2所示,高斯拉普拉斯处理后的图像如图3所示。

2.2字符分割 阈值分割是最简单的分割算法,其算法被定义为:其中,gmin是阈值的下限,gmax是阈值的上限,r,c是图像的坐标,fr,c是符合条件的像素点。阈值分割是将图像中灰度值处于一定范围内的所有点输出到区域S中。通常情况下使用gmin=0或者阈值的上限设置为gmax=2b-1。当光照能保持恒定时,阈值的上限和下限均可以在系统中设置为固定值。固定阈值仅仅在图像的前景和背景灰度值不变时效果很好,但是这种情况发生的频率比期望要低得多,例如,当光照发生改变时灰度值就会发生改变。即使光照可以保持恒定,相似物体间的不同灰度值分布也会使固定阈值分割法得到的结果不理想。因此,本文采用动态阈值法。通过观察可以发现字符明显比背景亮,可以将亮的当作字符,暗的当作背景。将高斯滤波处理的结果作为背景灰度的估计,然后将原图像和其局部背景进行比较。对前景较亮物体的动态阈值分割处理如下:其中,fr,c表示输入图像,gr,c表示平滑后的图像,gdiff表示设定的前景和背景的差值。动态阈值分割后的图像如图4所示。

从图4可以发现,此时的字符仍然是针孔状字符。为了提高字符识别率,需要对字符进行膨胀操作,使针孔字符变成连续的字符。本文采用闵可夫斯基加法对图形进行膨胀操作,其结构元半径为16。膨胀后的字符如图5所示,可以看出字符中的针孔已经相互连接。

从图5中不难发现,除了字符和字母外还有分类器无法识别的字符“:”。为了去掉字符“:”,先将字符分成不同的连通区,连通区较大的就是需要选取的字符区域,连通区小的是时间分隔符“:”。根据字符大小选取字符高度为235,字符宽度为145。处理效果如图6所示,根据面积大小很好地去除了“:”。

2.3字符识别目前,常用的字符识别方法有模板匹配算法和人工神经网络算法。模板匹配算法实现流程是:首先将彩色图像转化为二值图像并且将二值图像的大小缩放为字符数据库中模板字符的大小,接着将缩放后的图像与数据库中的图像进行匹配,将最佳的匹配当作结果。神经网络识别字符的方法分为两种:一种方法是先提取待识别字符特征,然后用提取到的特征来训练分类器;另一种方法是利用神经网络的特点,将待处理的的图像直接输入到网络中,由网络自动提取字符特征并识别字符,本文设计使用的正是这种方法。BP算法主要用于训练BP神经网络的阈值和权值,其学习过程分为正向传播和误差反向传播两部分。当正向传播时,输入的信号由输入层经过隐含层单元传向输出层,输出层产生输出信号,如果输出信号不是期望输出则进入误差信号反向传播过程;在误差反向传播过程中,误差信号由输出端开始逐层向输入层传播,根据误差反馈调节网络的权值,同过不断修正权值使得输出层的输出信号更接近期望值。BP神经网络一般使用Softmax分类器进行分类,Sofmax分类器的代价函数如下:

3实验结果 本实验通过HALCON平台进行仿真,对BP网络进行训练。设置学习率为0.05,动量系数为0.90,最大训练次数为50 000次。BP网络训练、测试过程中的残差变化如图7所示,可以发现神经网络训练前两百次残差收敛较快,200次之后收敛速度放慢,1 000次后残差开始收敛。

最终结果如图8所示,经过训练42 400后正确率达99%左右,完全符合检测生产日期的要求。

4结语 光学字符识别中每一个过程都有很多方法,每种方法都有各自的使用用范围,当具体到某一个实际工程时,不是每一种理论都可以在实践中实现,能够实现的方法也需要比较选择[7]。测试结果表明,本设计有如下优点:①实现了自适应阈值法分割字符,使得本设计适用范围增大;②实现了对英文字母和数字的整体训练,有一定的实用价值;③通过所建立的BP神经网络模型而得到的实际值和期望值已极为接近。

参考文献:

[1]郭荣艳,胡雪惠.BP神经网络在车牌识别中的应用研究[J].计算机仿真,2010(9):299302.

[2]王伟,马永强,彭强.SVM多分类器在车牌识字符别中的应用[J].计算机工程与设计,2011(9):31663169.

[3]姜莉莉,蒋潇,陈昕怡,等.OpenCV在车牌识别中的应用[J].软件2014(3):4547.

[4]危雨轩.鲁棒的字符识别算法研究[D].北京:北京邮电大学,2013.

[5]何西麟.基于深度学习的手写体字符识别研究与实现[D].广州:中山大学,2015.

[6]贺强.字符识别的相关算法研究[D].镇江:江苏大学,2010.

[7]杨勇,谢刚生.基于BP神经网络的手写数字识别[J].东华大学学报:自然科学,2003,26(4):383386.

(责任编辑:孙娟)

猜你喜欢

机器视觉BP神经网络
大场景三维激光扫描仪在研究生实践教学培养中的应用