复杂背景下的点阵字符识别研究

2021-09-15 11:20吴慧莹范晏君
计算机应用与软件 2021年9期
关键词:字符识别字符矩形

吴慧莹 陈 明 范晏君 黄 帅

(广西师范大学计算机科学与信息工程学院 广西 桂林 541004)

0 引 言

食品包装上的生产日期、保质期和生产批次是保证食品安全的重要信息,食品厂家将这些信息以点阵字符的形式打印在包装表面。目前,食品包装行业一般采用喷墨技术对食品进行生产信息标注。但该技术在喷码机振动不稳定、喷墨不均匀和油墨不足等情况下,容易产生字符倾斜、字符残缺和字符模糊等问题。为避免这些问题对产品流通和销售产生影响,需要对点阵字符进行检测和识别。

传统检测过程通常依赖人工完成,不仅检测效率低、准确度不可靠,而且需要耗费大量的人力资源,增加了生产成本。因此,研究一种高效准确的自动化检测识别方法来代替人工检测,不仅有利于提高企业的生产效益,还有利于保证食品的安全。

1 相关工作

通常,研究人员将字符识别算法分为字符定位、字符分割和字符识别三个部分。字符定位和分割用于定位和分割字符所在的区域,字符识别用于对分割好的字符区域进行识别,只有当三个部分都发挥最好的性能时,字符识别算法才能获得最优的识别效果。字符分割常用的方法有垂直投影法、连通域法等[1-3],这类方法对于连续字符具有较好的分割效果。然而,由于点阵字符的不连续性,直接采取上述方法难以准确分割。针对字符识别而言,目前主要有基于模板匹配的识别方法、基于机器学习的识别方法和基于深度学习的识别方法三类。钱俞好等[4]提出了一种基于MATLAB图像积分的改进模板匹配算法,首先对图像进行积分处理再进行模板匹配,不仅减少了内存开销,而且大大加快了检测速度,但该方法存在个别字符识别不理想的情况。针对点阵字符不连续的问题,Vandana等[5]利用数学形态学对其进行处理,能较好地分割点阵字符区域,在LED点阵字符上具有较好的识别结果,但该方法在字符分割时未考虑到字符粘连的情况。Ohyama等[6]提出了角点检测和MQDF(Modified quadratic discriminant function)分类器结合的点阵字符识别方法,但在应用于运动模糊图像时,其鲁棒性还需进一步改进。南阳等[7]提出了一种基于深度学习的方法,使用Arimoto熵对图像进行阈值化,然后使用卷积神经网络隐式地提取字符特征,能够较为完整地保留字符信息,该方法对于字符背景单一的图像具有较好的识别效果,但不合适样本数量少且复杂的图像集。张国云等[8]提出了一种改进的BP网络,使用该网络对车牌字符进行识别具有较强的抗干扰能力和识别效果,对本文具有一定参考价值。

本文主要研究如何快速准确地识别牛奶盒包装顶部的生产日期,这部分信息由喷墨技术产生的点阵字符组成,存在背景复杂、字符不连续和不相关字符干扰等问题。面对此类问题,文献[1-8]存在一定的局限性,不能达到较好的识别效果。因此,本文提出了一种基于改进的连通域分割与BP神经网络相结合的字符识别方法。该方法首先对图像进行预处理,减少噪声干扰,然后通过数学形态学与特征筛选定位点阵字符区域,接着对字符区域进行基于连通域最小外接矩形等间距分割,最后将分割后的字符送入到BP神经网络进行识别。在定位与分割过程中,该方法能有效排除干扰区域,准确快速分割粘连字符,提高了字符识别结果的准确性,与传统方法相比其适应性更强。

2 方法设计

本文以牛奶包装盒顶部的点阵字符图像作为目标研究对象。点阵字符识别的研究工作主要分为以下四个部分:(1) 预处理用于去除图像噪声、光照不均匀等客观因素的干扰,增强图像信息;(2) 字符定位用于获取感兴趣字符所在的区域,排除其他字符、圆形图案和粗线条等的干扰;(3) 字符分割用于去除因膨胀操作造成的点阵字符间粘连问题,分割出单个字符;(4) 字符识别用于识别分割字符所表示的信息。

2.1 预处理

在灰度图像中,目标和背景之间有着较大的边缘差异,故利用这一点对两者进行分离。首先,将采集到的图像转化为灰度图像;其次,利用Canny算子对灰度图像进行边缘检测,Canny算子能够有效地平滑图像、滤除噪声,且具有很强的鲁棒性。预处理后的图像如图1所示。

图1 预处理图像

2.2 字符定位

为了定位图像中的点阵字符区域,本文采用数学形态学与连通域分析组合的方式对预处理图像进行定位,选取行列位置信息和面积大小作为定位特征。经过预处理之后,图像中依旧存在大量非目标区域,观察图1,可发现点阵字符与噪点、中文字符、粗线条等干扰区域的面积差异不明显,不能直接使用面积特征。膨胀操作可扩大图像的边缘,填充黑洞,使得面积特征差异化明显。因此本文采用矩形结构元素对预处理图像进行膨胀。设定矩形结构元素大小为220×5,满足点阵字符区域在水平方向能连接成一个连通域,并使其连通面积尽可能大,同时在垂直方向上避免上下两行字符粘连形成一个连通域。膨胀操作后的图像如图2所示;将其填充为矩形区域,方便统计图像的行列特征值和面积特征值,填充后的区域如图3所示;其行列特征和面积特征如图4和图5所示。

图2 膨胀图像

图3 填充图像

图4 连通域行列坐标特征

图5 连通域面积值特征

对数学形态学和连通域分析处理后的图像进行特征筛选的具体步骤如下:

(1) 根据多次实验结果,设定行列坐标阈值为(C1,C2)和(R1,R2),面积阈值为S1。填充图像的点阵字符行列坐标值应在(C1,C2)和(R1,R2)范围内,其面积应大于S1,而干扰区域面积应小于S1。

(2) 计算特征值。计算填充图像所有连通域的行列特征值和面积特征值,若特征值在设定阈值内,则输出该连通域,否则将其滤除。

(3) 定位。特征筛选的结果如图6所示,将其与预处理图像取交集,获得点阵字符图像,如图7所示。

图6 筛选结果

图7 点阵字符

数学形态学与连通域分析组合的方法可有效地去除噪声和其他非点阵字符干扰,快速准确地定位到点阵字符区域。

在生产过程中,喷墨机喷墨角度或产品位置易发生变化,导致点阵字符倾斜,如图8所示。

图8 倾斜字符图像

针对这种情况,本文采用二阶矩[9]与双线性插值法[10]对图像进行倾斜校正。点阵字符区域的倾斜角度φ计算如下:

φ=-0.5atan2(2M11,M02-M20)

(1)

式中:M11、M02、M20是筛选结果图像的二阶矩。

再根据仿射变换原理,求出倾斜校正矩阵,矩阵计算过程如下:

(1) 定义齐次变换矩阵M为:

(2)

(2) 利用字符倾斜角φ计算旋转变换矩阵R:

(3)

(3) 选取字符区域的中心点(Px,Py)作为固定点,对矩阵M进行平移变换,将固定点移动到全局坐标系的原点上,然后进行旋转变换,最后将固定点平移至其原始位置,得到变换矩阵Y:

(4)

将得到的变换矩阵应用于仿射变换中,采用双线性插值法计算校正后像素点的灰度值。校正结果如图9所示。

图9 校正结果

2.3 字符分割

接下来对定位得到的点阵字符进行分割。传统的连通域分割采用Two-Pass算法[11]对图像进行两遍扫描,按照行或者列的方式遍历像素。第一遍扫描对图像中像素值相等且位置相邻的前景像素点进行标记,同一个连通域的像素点可能会有一个或者多个不同的标记,记录像素点之间的相等关系;第二遍扫描就是将具有相等关系的不同标记像素点赋予相同的标记值并将其合并得到完整的连通域,从而实现连通域分割。该方法适用于不粘连且连续的字符,而本文的点阵字符具有不连续性。针对传统连通域方法的局限性,本文提出了基于改进的连通域分割方法。该方法在传统连通分割的基础上,对连通域最小外接矩形进行二次等间距分割。点阵字符分割流程如图10所示。

图10 点阵字符分割流程

分割具体步骤如下:

1) 初次分割。对定位后的点阵字符进行膨胀操作,得到连续的粘连字符。采用传统的连通域分割方法对其进行初次分割,分割后的连通域由不同的颜色标记,如图11所示。

图11 初次分割

2) 交集操作。将初次分割结果与定位后的点阵字符做图像交集操作,结果如图12所示。交集结果按水平方向排序,第四个连通域包含“9”和“0”两个字符,第五个连通域包含“6”“3”“0”三个字符。

图12 交集结果

3) 矩形计算。设定一个大小为width1×height1的矩形,作为分割标准。找到并生成交集结果中每个连通域对应的最小外接矩形,如图13所示,记录生成矩形的大小,用width2×height2表示。

图13 连通域最小外接矩形

4) 二次等间距分割。依次判断最小外接矩形的宽高是否大于标准矩形,如果大于,则按照标准矩形宽高将最小外接矩形划分为几个大小近似的矩形,仅当最小外接矩形的大小至少是标准矩形的1.5倍时,才会进行等间隔分割。如果最小外接矩形宽高小于标准矩形,则保持该矩形输出不变。

5) 单个字符获取。等间距分割后的图像如图14所示。将其与定位后的点阵字符图像进行交集操作,即可得到单个字符图像,如图15所示。

图14 等间距分割矩形

图15 单个字符分割图像

2.4 字符识别

本文方法采用BP神经网络进行字符识别。BP神经网络[12]是一种多层前馈神经网络,由输入层、隐藏层和输出层组成,如图16所示。图中:w0表示输入层到隐藏层的权重,w1表示隐藏层到输出层的权重,N、M、P分别表示输入层、隐藏层和输出层的神经元个数。BP神经网络的工作过程主要分为两个阶段:第一个阶段信号正向传播,从输入层经过隐藏层,最后到达输出层;第二个阶段误差反向传播,误差从输出层通过隐藏层向输入层反向传递,并依次调节各层之间的权重。

图16 BP神经网络

对于训练数据样本Xq,经过隐藏层激活函数作用后输出hjq为:

(5)

(6)

(7)

正向传播完成后,得到的预测值y′与真实值y之间存在误差,选用误差平方和表示:

(8)

采用梯度下降法,并通过正向传播和反向误差传播不断更新各层之间的权重,将误差降低到最小,权值修正为:

(9)

式中:ΔW(l)表示第l次训练的权重;α、η分别表示动量系数和比例系数。

3 实 验

3.1 实验平台和数据

本文针对牛奶盒顶部的点阵字符,提出了一种基于改进的连通域分割与BP神经网络相结合的字符识别方法。为了验证该方法的性能,本文在VS2015实验平台上联合Halcon视觉库对其进行仿真实验。

为了验证本文算法在图像背景复杂、字符粘连和字符倾斜等情况下的性能,本文采集了150幅牛奶盒外包装顶部图像作为数据集。其中,随机选取80幅作为训练图像,70幅作为测试图像。每幅图像共22或23个字符,其内容为生产日期、生产时间、生产流水号和产品序号,由数字“0-9”,字符“A”“C”和特殊字符“:”组成,一共13个类别。

3.2 分类器训练

BP神经网络离线训练分类器过程如下:

1) 训练集准备。通过采用本文提出的字符分割方法对80幅训练图像进行处理,得到单个字符图像,建立对应的字符标签,生成字符训练文件。

2) 由于本文采用BP神经网络对字符进行识别,因此需要对网络中各层的神经元个数进行设定。在输入层,本文将字符图像统一到8×10的大小进行输入,因此输入层共包含80个神经元。在隐藏层,神经元的个数一般为输入层的两倍,经本文实验验证得将其设置为180个时的效果最好。在输出层,字符类别决定了神经元的个数,因此输出层包含13个神经元。

3.3 粘连字符分割对比

为了进一步验证本文字符分割算法对粘连字符的有效性,实验一共测试了70幅点阵字符图像,与传统分割方法进行对比。例如,针对表1中点阵字符的粘连样式,文献[1]采用垂直投影法对其进行处理,在字符间存在空隙的情况下,垂直投影为零,则可以分割字符,但在字符粘连的情况下,垂直投影不为零,则无法进行分割。文献[2]提出一种改进的垂直投影法,该方法根据字符固定宽度对其进行二次分割,有效提高了分割准确度。文献[3]采用连通域方法对其进行分割,首先对不同的连通域进行标记,然后根据其坐标信息对字符进行分割,但该方法无法区分同一个连通域的多个字符,即无法分割粘连字符。而本文方法在连通域分割的基础上进行了二次分割,可以有效地分割同一行的相邻粘连字符和不同行的粘连字符,如表1所示。

表1 不同粘连类型分割结果

本文采用分割准确性来评估所提出的字符分割方法,如式(10)所示。实验结果如图17所示,本文算法的分割准确性达到了98.64%,明显优于其他三种方法,具有更好的分割效果,可以应用于实际牛奶生产日期字符的分割。

图17 不同方法间的分割准确性比较

(10)

3.4 点阵字符识别准确率比较

为了验证本文方法的有效性,本文测试了70幅图像与文献[13-15]的方法进行对比,并且采用式(11)对BP神经网络的字符识别准确性进行评估,实验结果如图18所示。

图18 不同方法识别准确率比较

(11)

文献[13]提出的基于模板匹配与SVM的点阵字符识别方法,考虑到了字符的离散性质且通过两次识别操作保证了识别结果的准确性。文献[14]结合网格统计方法和投影密度法来提取特征向量,然后利用SVM来识别点阵字符。文献[15]提出了基于卷积神经网络的点阵字符识别方法,保留了字符的原始特征。上述方法在字符分割阶段未考虑字符的粘连性,而本文提出的基于改进的连通域分割与BP神经网络结合的字符识别方法,综合考虑了图像背景的复杂性和点阵字符经形态学处理后的粘连情况,能准确快速地定位和分割字符,从而有效地提高了字符识别准确率。

4 结 语

目前大多数字符识别方法主要针对字符背景单一、字符清晰和字符连续等情况,没有考虑到点阵字符的不连续性、图像背景复杂性及字符的粘连性等问题。针对上述问题,本文提出的基于改进连通域分割与BP神经网络结合的点阵字符识别方法通过数学形态学定位点阵字符区域,有效地去除了干扰区域,然后基于连通域的最小外接矩形对粘连字符进行二次分割,得到较为完整的单个字符。与传统分割方法相比,本文字符分割方法的准确性提高了7百分点以上。最后将分割好的单个字符输入到BP神经网络进行识别,识别准确率达到了98.03%,每幅图像识别平均耗时大约为220 ms,可快速地对点阵字符进行识别。

猜你喜欢
字符识别字符矩形
矩形面积的特殊求法
正则表达式快速入门
字符代表几
图片轻松变身ASCⅡ艺术画
从矩形内一点说起
融合字符及字符排列特征的铭牌识别方法
一种基于OpenCV的车牌识别方法
巧用矩形一性质,妙解一类题
基于MATLAB的图片中字符的分割与识别
视频监视系统中字符叠加技术的应用