APP下载

基于喷点融合特征的点阵字符分割方法

2021-08-29林冬婷李柏林尹可鑫

制造业自动化 2021年8期
关键词:字符投影灰度

林冬婷,程 洋,欧 阳,李柏林,尹可鑫

(西南交通大学 机械工程学院,成都 610031)

0 引言

标签作为包装产业中评判商品是否合格的重要载体,包含着消费者应知的大量信息,如生产日期、商品成份和生产批号等。喷码机因其灵活方便的优点,被广泛应用于标签中字符的制作。喷码机通过与计算机的信息交互获取产品的生产信息,再将信息以喷点形式喷印在产品标签中[1]。为了确保产品生产的合格率,需要对产品的标签进行检测。传统的标签检测依靠人工完成,存在检测速度慢、主观性强、误检率高等缺陷。因此,迫切需要一种高效的自动检测技术。

针对点阵字符的检测,国内外学者提出了一些检测算法。文献[2~4]中利用形态学操作将单个点阵字符笔画连接起来形成连通域,再用投影法进行字符分割[5,6]。该类方法对于连通域字符的分割具有一定的有效性,对于弯曲变形的点阵字符存在误分割率高、效率低的问题。文献[7]提出了一种基于HALCON的点阵字符识别,算法结构简便,但存在字符定位不准确,识别率低的问题。文献[8~10]提出了基于滑动窗口的字符提取方法,能够克服字符变形及粘连的影响,但存在速度慢且分割准确率不高的问题。

因此,为解决点阵字符因光照不均、字符弯曲导致的字符分割准确率低的问题,本文针对多种曝光度下存在弯曲变形的点阵字符提出了一种基于喷点融合特征的SVM点阵字符分割方法。首先,利用图像的灰度特点,提出了一种自适应二值化方法,增强了图像中的目标信息;然后,利用喷点的几何先验提取喷点的跳变特征和投影特征,并级联得到融合特征;接着,建立基于SVM的字符分割模型对字符进行分割;最后,采用ANN对分割得到的字符进行识别。

1 本文方法框架

本文以某食品包装盒顶部的生产日期作为研究对象,提出了一种基于喷点融合特征的SVM点阵字符分割方法,其整体框架流程如图1所示。首先,通过自适应二值化处理,增强图像中的目标信息。然后,提取感兴趣区域,获得字符块,并对字符块中的点阵字符是否发生弯曲进行判断。若存在弯曲,则通过拆分与重组得到单行字符块;若没有弯曲,则根据水平投影直方图的波谷位置分割得到单行字符块。接着,建立基于SVM的字符分割模型,得到单个字符的分割结果。最后,通过ANN识别,得到最终的识别结果。

图1 本文框架流程图

2 结合喷点融合特征的SVM字符分割方法

光照不均和字符弯曲等因素会给字符的分割带来一定的困难[11],为克服以上干扰对字符分割的影响,本文提出了一种结合喷点融合特征的SVM字符分割方法。采用结合图像灰度信息的自适应二值化方法,增强图像中的目标信息,克服光照不均带来的影响。采用一种字符拆分与重组方法,克服字符弯曲带来的问题。

2.1 结合图像灰度信息的自适应二值化

为增强图像中的字符特征,同时去除噪点等干扰因素的影响,需对灰度图像进行适当的预处理[12]。图像的灰度均值信息反映了图像的光照强度,均值越大则表明光照程度越强,图像也越亮。因此,为增强算法的鲁棒性,首先获取图像的灰度均值Mean,然后将它应用于自适应阈值函数中,对灰度图像进行自适应二值化处理。自适应阈值函数是依据图像不同区域的亮度分布计算其局部阈值C,本文在此基础上,结合灰度均值信息,对其进行改进,如式(1)所示。自适应二值化的结果如图2(b)所示。

图2 图像的自适应二值化

其中:τ为像素灰度均值的惩罚项,设置为20。

2.2 感兴趣区域提取

为了能准确分割出单个字符,首先需要提取图像中的感兴趣字符区域。感兴趣区域的定位越准确,则包含的目标信息越完整,识别可用的特征越可靠。

利用水平投影法将二值图像进行水平投影,统计每行的白色像素点个数HP(i),如图3(b)所示。由于点阵字符存在弯曲变形,因此字符的高度在一定范围之间变化。首先通过水平投影直方图得到行字符投影的波峰波谷信息,然后依据点阵字符的高度范围先验定位出字符所在的区域,如图3(c)所示。

图3 定位字符区域

2.3 获取单行字符块

由于字符的弯曲会造成字符的分割不完整,因此,在单行字符的分割之前,需要对字符是否存在变形进行判断。判断条件为:两行字符块中间区域的波谷投影值LH>P(P为阈值)时,则字符存在弯曲变形;否则,不存在变形。对于,变形的字符,采用拆分重组的方法进行分割,如流程图4所示。单行字符块的分割结果如图5所示。

图4 单行字符块分割流程图

图5 弯曲变形字符块的分割结果

2.4 获取单个字符

传统的连通字符分割方法包括模板匹配法[13],投影法[14]和滴水算法[15]等。对于由多个喷点构成的点阵字符而言,由于不具有一般字符的连通性,因此使用单一的字符分割方法会产生误分割的情况,最终无法获取完整的字符信息。为克服点阵字符的误分割问题,本文以点阵字符中喷点的几何先验为特征,利用单个喷点的最大直径信息对单个喷点字符进行分割。

2.4.1 获取喷点的跳变特征

将二值化图像中的像素值表示为二维矩阵src966×1296,矩阵中的元素只包含0和255。其中:0表示背景,255表示目标。本文利用基于二值编码的跳变法,统计每一列黑白像素的变化。

1)定位各列喷点的位置

统计矩阵src各列元素中值为255的位置,存储到列向量An×1(j)中,An×1(j)中的元素为字符区域位置,其中n为第j列字符区域包含的像素点。

2)定位各列喷点的边界

通过跳变法定位各列喷点的边界。具体为:当Aj(k+1)-Aj(k)≠1(其中Aj(k)表示第j个列向量中第k个元素的坐标),则A(k),A(k+1)表示坐标为字符的边界位置。最终获取每列喷点的上下边界位置,并存入向量Bm×1(j)(m=2,4,6,…)中,m为每列喷点边界点个数。

3)获取各列喷点的跳变特征

根据D=Bj(p+1)−Bj(p)(p= 0,1,...,m− 1)计算每列喷点的高度,喷点的最大径向尺寸为Dmax,以喷点圆心为中心,离中心越远,则D的值越小。为克服小噪点的影响,设定每列喷点的高度阈值为T。当D

2.4.2 获取喷点的垂直投影特征

对单行字符块进行垂直投影,获取垂直投影直方图,直方图每列的高度H表示喷点所占像素个数的总和。设存储投影特征的向量为P(j)(j=0,1,…,1295),若H(j)>10,则令P(j)=1,表示该列为字符区域;否则P(j)=0,表示背景区域。最终得到点阵字符的投影特征。

2.4.3 跳变特征与投影特征的融合

跳变特征向量Cx×1(j)中包含每列喷点的跳变个数,投影特征向量P(j)中包含字符和背景的信息。将Cx×1(j)和P(j)进行级联,得到矩阵R2×1296。然后以步长step=1,依次获取R2×1296中的5列元素作为一个融合特征,最后遍历整个矩阵,得到1292个融合特征。

2.4.4 基于融合特征的SVM字符分割

支持向量机(Support Vector Machine,SVM)是一种与学习算法有关的监督学习模型,可以应用于分析数据、识别模式、分类和回归分析[16]。本文通过建立SVM二分类模型分割以获取单个字符。将喷点的融合特征作为训练数据集。类别集中包含0和1,0表示背景,1表示目标。选用径向基函数作为核函数对训练集进行训练,得到SVM的模型参数。将单行字符块的融合特征作为测试集输入训练好的SVM模型中,得到最终的分割结果,具体分割流程如图6所示。分割结果如图7所示。其中,图7(a)和图7(c)中的灰色表示字符区域,白色为背景区域,其对应的分割结果如图7(b)和图7(d)所示。

图6 SVM字符分割流程图

图7 字符分割样本图

从图7中的分割结果可以看出,使用本文分割方法分割点阵字符,能有效提取图像中的字符信息。

3 基于ANN的点阵字符识别

为获取图像中的字符信息,需要对分割得到的单个字符进行识别。常用于字符识别的方法包括ANN法[17,18]、模板匹配法[13,19]及特征匹配法[4,20]等,本文采用ANN的方法对点阵字符进行识别。为提高字符的识别效率,首先对字符进行归一化处理,归一化尺寸为30×60,使得每个字符的尺寸一致。将分割后的单个字符进行分类,建立完整的字符库。本文共有12类不同的字符,包括数字0~9,字母C和L。

ANN 模型的参数设置为:输入层的节点数为1800;输出的结果为预测字符的类别,因此将输出层的节点数设置为12;

将隐藏层层数按经验式(2)进行设置。最大迭代次数为50000次,收敛阈值为0.001,误差设为0.01。通过训练集数据训练得到ANN网络各层连接权值,并对测试集中的单个字符进行识别,结果如图8所示。

图8 识别结果

其中:n为输入层节点数,j为输出层节点数,∂为1~10间的常数,本文取8,因此,隐藏层为50。

4 实验与结果分析

4.1 实验数据

文中选用某食品包装盒顶部的生产日期图像作为实验样本,如图9(a)所示。其中,第一行喷点信息为产商号和产品生产的年月日,第二行喷点信息为时分秒以及流水号,每行均由8个数字和一个字母组成。共采集了10000张大小均为1296×966的图像作为数据集R,R包含了光照不均、字符弯曲和曝光度不同等多种干扰因素的字符图像。选取分割的每类字符各1000个作为训练集S。以Opencv3.0作为实验平台进行仿真实验。

4.2 实验结果对比与分析

4.2.1 点阵字符预处理实验结果对比

点阵字符的预处理是字符准确分割的重要前提。为去除噪声等干扰信息,采用的字符预处理方法主要有线性滤波、非线性滤波、形态学滤波以及阈值化等。本文方法采用基于灰度均值的自适应阈值算法对图像进行预处理,结果对比如图9所示。

从图9中的实验结果可以看出:Otsu采用了全局自适应阈值进行图像二值化处理,未考虑图像的灰度均值,因此无法完整保留图像中的点阵字符区域,如图9(b)所示;膨胀细化算法的二值图像产生了多余的噪点,导致不同字符粘连在一起,无法有效的分割出单个字符,如图9(c)所示;而本文算法在Otsu算法的基础上,充分考虑了图像不同曝光值下的灰度均值特性,其二值化结果不仅有效的滤除了噪声,还增强了点阵字符信息,如图9(d)所示。

率是提高字符识别准确率的重要前提。相较于上述三种字符分割算法下的ANN识别,本文分割算法分割的单个字符能有效保留点阵字符区域且不产生额外的干扰,对点阵字符的分割准确率较高,最终的ANN识别准确率明显高于其他对比算法,达到了98.97%。

5 结语

本文针对因光照不均、弯曲变形等导致的点阵字符识别率较低的问题,提出了一种基于喷点融合特征的点阵字符分割方法。首先提出结合图像灰度均值的自适应二值化算法,有效增强了图像中的点阵字符信息;然后充分考虑喷点的跳变特征与投影特征以完成基于SVM的单个字符分割建模,使字符的分割不再局限于传统分割方法中采用单一特征的瓶颈;最后采用ANN模型识别分割得到的单个字符。实验结果表明,相比于其他算法,本文提出的方法具有自适应程度高、鲁棒性强且准确率高的优点,对点阵字符的分割率和识别率分别达到了99.92%和98.97%。

猜你喜欢

字符投影灰度
采用改进导重法的拓扑结构灰度单元过滤技术
解变分不等式的一种二次投影算法
基于最大相关熵的簇稀疏仿射投影算法
字符代表几
一种USB接口字符液晶控制器设计
找投影
找投影
HBM电子称与西门子S7-200系列PLC自由口通讯
消失的殖民村庄和神秘字符
基于最大加权投影求解的彩色图像灰度化对比度保留算法