亮度不均匀低质量图像中压印字符分割方法

2021-04-23 04:31:58闫晓燊朱思萌奚学程赵万生
计算机工程与应用 2021年8期
关键词:序列号波形图字符

闫晓燊,高 强,朱思萌,奚学程,赵万生

上海交通大学 机械与动力工程学院 机械系统与振动国家重点实验室,上海200240

压印序列号对产品质量管控、零件溯源等具有重要意义。序列号识别过程可以划分为图像预处理、字符分割和字符识别三部分。字符分割效果对字符识别准确率有较大影响[1]。

在字符分割方面,许多学者进行了相关研究:赵永猛等人[2]针对道口车身字符识别,提出了Psauvola 二值化算法及像素投影图的分割算法;段西利[3]分析了工件复杂表面的字符特点,提出了一种基于Wellner 算法的局部阈值方法;宋琦悦等人[4]针对验证码在线识别问题,提出了一种基于改进滴水算法的黏连字符分割方法;Zhou等人[5]针对纸币序列号背景复杂的特点,提出了基于混合二值化和自适应特征提取的新型字符分割方法;Qaroush等人[6]针对阿拉伯文本的分割难题,提出垂直投影与字符投影轮廓拓扑特征相结合的分割方法;Tanzila等人[7]针对罗马手写字符的识别,提出一种基于遗传算法的粘连罗马字符分割方法。

上述算法在一定程度上提高了字符分割准确率,但其本质均为基于二值化图片进行处理,且仅适用于光照均匀及工件表面质量稳定等良好工况。然而,在工业实际应用中,由于光照条件限制及工件表面反光等情况的存在,往往会产生低质量亮度分布不均匀的图像,严重影响序列号的分割识别。

针对上述问题,本文提出一种在灰度波形图上,基于分割效果评价函数的迭代闭环反馈分割方法,省去二值化过程,直接对灰度图像进行处理。采用迭代平滑滤波算法对灰度波形图进行数据清洗,并基于广义学习矢量量化算法(Generalized Learning Vector Quantization Algorithm,GLVQ)确定最优滤波权重因子,在确保字符分割准确率的同时提高滤波效率;建立分割效果评价函数,以此判断是否进一步迭代滤波和重新分割。

1 传统字符分割方法及其局限性

传统基于二值化图像的分割算法,其原理是依据目标像素点与背景像素点间的灰度差异,通过对比像素点与阈值b之间的相对关系,实现图像二值化,进而实现字符分割[8]。

阈值一般包含全局阈值和局部自适应阈值两种[9]。全局阈值,即全局采用同一阈值,如式(1)所示。该方法实现简单,适用于目标区域与背景区域灰度差异较大时的简单情况。

式中,xij为第i行第j列像素点灰度值,yij为第i行第j列像素点二值化,b为全局阈值。

局部自适应阈值,则是在邻域内按照相应算法确定该邻域内的阈值,如式(2)所示。此方法考虑了不同区域内灰度的差异性,对于单张复杂图片具有较好的处理效果。

式中,wij为邻域内的像素点,wij∈W,F(w)为邻域内阈值确定算法,b0为邻域内的局部阈值。

然而,在实际生产,如批量涡轮叶片的序列号识别中,铸造导致的不同叶片几何误差不同,使得叶片的修整量不尽相同,再加之划痕等噪点的存在,叶片表面存在不同程度的反光情况,如图1所示。

图1 现场条件下,反光表面的序列号图像

此时,传统二值化分割算法不再适用:全局阈值,阈值选定后不再改变,在图片亮度情况变化较大时,单一阈值无法实现精准分割;局部阈值,虽能在邻域范围内自适应确定阈值,但邻域范围大小的确定、自适应阈值计算方法的选择,在处理亮度变化较大的批量图片时,仍需手动调整。

2 应用于亮度不均匀低质量图像中的压印字符分割方法

为解决亮度不均匀低质量图像中压印字符分割问题,提出一种在灰度波形图上,基于分割效果评价函数的迭代闭环反馈字符分割方法。技术流程如图2所示。

图2 技术方案流程图

首先,将图像高斯滤波、灰度化,并计算得到灰度波形图;然后,结合广义学习矢量量化算法(GLVQ),确定最优滤波权重因子,在确保数据清洗质量的同时提高滤波效率。其次,依据平滑滤波后的灰度波形图波峰、波谷变化趋势,结合字符分割函数,确定分割位置。最后,通过分割效果评价函数对分割效果进行评价,若分割效果理想,则按照分割位置进行分割,否则,进一步迭代滤波和重新分割,直至分割效果理想为止。

2.1 图像预处理及灰度波形图统计

现场获取的图片中包含序列号、背景、划痕等多种元素。在字符分割之前,需要对原始图片进行灰度化及滤波消噪等预处理,并计算灰度波形图以便后续处理。将图像的像素点按式(3)进行灰度化。

式中,R、G、B为像素点颜色的三个分量,kr、kg、kb为三个分量对应的权值,c为像素点经灰度化后的灰度值。

滤波消噪包含高斯滤波、中值滤波、双边滤波等多种处理方式[10]。本文中,主要采用高斯滤波进行图像的背景噪声处理,用以提高目标区域清晰度,相关结果如图3所示。

图3 序列号图像预处理

按照式(4)对经过高斯滤波的灰度图像进行统计,得到如图4所示的初始灰度波形图。

式中,cij为第i行第j列像素点灰度值,Cj为第j列像素点灰度总值,m为像素总行数,n为像素总列数。

图4 初始灰度波形图

2.2 基于广义学习矢量量化算法的最优滤波权重因子确定

(1)加权移动平滑滤波算法

初始灰度波形图中,由于字符自身结构特征及噪声等因素影响,波形图中存在部分畸变区域,如图5所示。

图5 局部波形畸变放大图

畸变波形的存在会严重影响字符分割准确率,因此需采用加权移动平滑滤波算法对原始波形图进行数据清洗,具体如式(5)所示:

式中,C*j为平滑滤波后第j列灰度总值,p为平滑滤波邻域范围,kl为平滑滤波算子的权重因子。

(2)基于GLVQ的最优滤波权重因子确定

加权移动平滑滤波算法中邻域范围p及滤波权重因子kl的选取对滤波结果有较大影响。邻域范围p,决定了滤波过程中参与运算的元素数目[11]。当p取值过小时,单次滤波效果不显著;当p取值过大时,参数变化灵敏度降低,易导致数据失真,失去波形图原有的波峰波谷特征。结合单次滤波效果及字符分割准确率,将邻域范围p确定为5。

滤波权重因子K为含有p个元素的一维向量,即K=[k1,k2,…,kp],其元素kl表示第l个元素在滤波中所占权重[12]。适当提高新采样元素在滑动滤波中的权重,可提高系统对当前采样值的灵敏度[13];但若过度增大,则会导致波形失真。

为此,基于广义学习矢量量化算法(GLVQ),建立应用于批量灰度波形图的最优加权移动平滑滤波参数确定模型。GLVQ是一种有监督式、竞争性神经网络算法[14],可用于模式分类等领域。GLVQ 的拓扑结构如图6 所示,竞争层神经元与输入层神经元对应连接,整体连接权重构成竞争层的权重矩阵;在输出方面,竞争层神经元与输出层神经元一一对应。训练时GLVQ 通过迭代更新竞争层的权重矩阵,实现样本输入与输出的最佳匹配[15]。

图6 GLVQ神经网络的拓扑结构

为获取不同反光情况下,加权滤波时对应的最优滤波权重因子,以灰度波形图各列灰度值构成的序列CN作为GLVQ 输入,以权重因子K中ki的不同组合作为输出,进行模型建立及训练,具体步骤如下:

①获取训练样本。前期通过遍历等方式,确定不同图片各自对应的最优滤波权重因子,组建训练样本数据集。该数据集中的输入向量为C=(C1,C2,…,Cm)T,其中m为输入层神经元数目。

②网络初始化。设置训练过程的迭代次数T,同时设定初始学习速率η0和竞争层的初始权重矩阵W={W1,W2,…,Wp},其中p为竞争层神经元的数目,Wi=(wi1,wi2,…,wim)T∈W表示竞争层第i个神经元与输入层连接的权重向量。

③计算训练样本中输入向量C与竞争层权重向量Wi之间的距离di:

式中,t为迭代次数,初始值t=1,Wi(t)为第t次迭代时竞争层神经元i对应的权重向量。

④更新权重矩阵。寻找di值最小时,对应的权重向量Wmin(t),并确定该权重向量所属竞争层神经元对应的输出类别k(Wmin(t))。根据所属类别不同,按照不同规则对竞争层神经元的权重向量Wi(t+1)(i=1,2,…,p)进行更新[16],如式(7)所示:

式中,

⑤迭代条件判断。计算权重矩阵更新后网络的输出误差,若满足要求则停止迭代,否则令t=t+1 重复上述步骤。

GLVQ训练完成后,保存最终模型。在实际滤波过程中,无需再次训练,可通过该模型直接确定移动加权平滑滤波的最优权重因子。

(3)加权移动平滑滤波算法与其他算法对比

除加权移动平滑滤波之外,同样也存在其他滤波算法如滑动中值滤波与滑动平均滤波。

滑动中值滤波建立由N个采样值确定的固定长度序列,每将一个新采样值插入序列队尾,便将序列队首的采样值去除,从而始终保证序列长度为N。将序列内N个采样值的中值,作为滤波结果。滑动中值滤波可以有效消除由于偶然因素所造成的波形畸变,对于规律性渐变波形有较好的滤波效果。但是,对于非周期性快速变换的波形则无法达到理想的滤波效果。

滑动平均滤波则是将序列内N个采样值的平均值,作为滤波结果。滑动平均滤波对于周期性噪声有较好的滤波效果,但是灵敏度较低,无法对脉冲干扰引起的波形畸变进行有效滤波。

加权移动平滑滤波是对滑动平均滤波的改进,具体如式(5)所示,其通过赋予序列中不同时刻采样值不同的权重,可实现在保留原有数据特征的同时提高滤波灵敏度,从而达到滤波目的。

2.3 基于分割效果评价函数的迭代闭环反馈

(1)分割函数

在滤波后的灰度波形图上,结合分割函数g(n),基于梯度函数,从灰度波形图波峰波谷变化趋势角度出发,确定分割位置Vj,并将其存入数组V中。

式中,g(n)为字符分割函数,f(j)为平滑滤波后第j列灰度总值,f '(j)为灰度波形函数一阶导数。

(2)分割效果评价函数

采用迭代移动加权平滑滤波的方式对灰度波形图进行降噪处理。迭代次数与平滑效果密切相关。迭代次数过少,噪点清洗不完全,字符分割效果受影响;迭代次数过多,波形过拟合,同样影响分割效果,如图7 所示。因此,迭代次数的确定,对于字符的准确分割具有重要意义。

为确定最优迭代滤波次数,保证滤波效果及字符分割准确率,本文依据先验经验及序列号编排规则,设置分割效果评价函数h(n),如式(9)所示:

式中,n为分割点总个数,Vi为第i个切分位置,l为单个字符平均宽度,,q为序列号字符总数。

图7 迭代平滑滤波灰度波形图

当lim(h(n))→0 时,字符分割效果较好,可以进行分割;否则,需要进一步迭代滤波、重新分割,直至分割效果达到评价函数标准。具体如图8所示。

图8 基于分割效果评价函数的迭代反馈闭环流程图

分割效果评价函数h(n)具体主要从以下两方面对分割效果进行评价:

①分割点个数n与序列号字符总数q之间关系。只有n=q-1 时,才有可能实现准确分割。

②分割字符宽度(Vi+1-Vi)与单个字符平均宽度l间关系。利用切割宽度与平均宽度偏差的绝对值衡量分割效果,绝对值越小,分割越精确。

字符分割后,依据序列号编排先验知识,设置识别白名单,限制特定位置字符的识别范围。并对识别结果合理性进行判断,若不符合序列号编排规则,则进行进一步迭代滤波、重新分割,直至符合编排规则为止,分割位置如图9所示。

图9 字符分割位置

3 字符分割对比实验及分析

为验证本文算法的有效性及具体效果,选取垂直投影分割法、连通域分割法以及本文算法等三种不同算法,分别在贵阳×××厂现场采集数据集、GitHub 开源数据集上进行分割对比实验;同时,对比不同滤波算法的滤波效果。

3.1 字符分割实验数据集

为充分验证算法可行性,采用如下两种数据集进行字符分割实验:

(1)贵阳×××厂现场采集数据集。

(2)GitHub开源车牌识别数据集。

贵阳×××厂现场采集数据集,采用的图像采集系统,主要由HIKVISIONCCD 相机、机器视觉辅助光源、固定支架等三部分组成。字符分割测试对象为贵阳×××厂所生产的某型号涡轮叶片表面的压印序列号,具体如图3所示。分析该压印序列号,其特点如下:

(1)不同叶片序列号所在表面反光率情况差异较大。

(2)叶片零件表面存在不规则划痕等噪声。

(3)序列号均由10个字符构成,字体固定。

GitHub开源车牌识别数据集,主要应用于车牌识别算法的有效性检验,具体如图10所示。分析该数据集,其特点如下:

(1)车牌亮度变化情况较大,且清晰度较低。

图10 GitHub开源车牌识别数据集

(2)每个车牌均由7个字符构成,字体固定。

3.2 字符分割实验对比算法

基于二值化的分割方法主要包含以下两种:

(1)垂直投影分割法。

(2)连通域字符分割法。

垂直投影分割法,是在二值化图像的基础上,利用目标字符区域与背景区域之间像素信息在垂直投影方向上的差异,进行字符分割的方法[17]。其主要步骤如下:

(1)图片二值化。确定二值化阈值b,按照式(1)将图片中的像素二值化。

(2)垂直投影统计。逐列统计每一列像素信息,如式(10)所示:

式中,yij为第i行第j列二值化像素,Yj为第j列中值为1的像素点总数,m为像素总行数,n为像素总列数。

(3)字符分割。在像素列分布情况统计基础上,按照式(11)对每列像素进行分类:

式中,φ为字符列与背景列的区分判断阈值。

连通域字符分割法,同样是在二值化图像基础上,通过标记分析字符所在连通域,实现字符的分割[18]。其具体步骤如下所示:

(1)图片二值化:确定二值化阈值b,按照式(1)将图片中的像素二值化。

(2)连通域确定:

①连通域初始种子确定:遍历像素点,直至搜索到像素值为1的目标字符像素点B(x,y),则该像素点位置即为种子。赋予B(x,y)新标记label,并将种子的相邻像素位置压入栈中。

②连通域种子生长:弹出步骤①中的栈顶元素,赋予相同标记label,然后再将该栈顶元素的邻近像素压入栈中。

③重复步骤①、②,直至栈中无元素为止。

(3)重复步骤(2),直至扫描结束。

(4)按照连通域标记label的不同,将图像分割为单个字符。

3.3 字符分割实验结果分析

(1)不同分割算法准确率对比分析

在贵阳×××厂现场采集的某型号涡轮叶片压印序列号数据集和GitHub 开源车牌识别数据集上,采用垂直投影分割法、连通域分割法与基于评价函数的迭代闭环反馈字符分割方法,分别进行字符分割实验。实验对比结果如表1所示。

表1 不同分割算法准确率对比结果

从实验数据看,相较于垂直投影和连通域分割算法,本文提出的基于评价函数的迭代反馈闭环字符分割方法在批量处理亮度不均匀低质量图像中的压印字符时,能够显著提高字符分割准确率。

通过对传统算法分割失败的字符进行分析可知,垂直投影法及连通域分割法均为基于二值化图像进行处理的算法,对于亮度均匀、质量清晰图像中的字符有较好的分割效果,但在批量处理亮度不均匀低质量图像中压印字符时,难以确定最优二值化阈值,导致二值化图像中目标信息大量丢失,进而影响字符分割精度。此外,连通域算法在处理粘连字符时,无法实现有效分割,这也是影响连通域算法字符分割准确率的另一因素。

(2)不同分割算法时间复杂度对比分析

为测试不同分割算法的实时性及时间复杂度,在表2所示计算机硬件测试环境中,分别统计垂直投影分割法、连通域分割法和本文算法在处理贵阳×××厂现场采集数据的耗时情况。

表2 分割算法硬件测试环境

三种不同算法的具体用时及时间复杂度分析,如表3所示。

表3 不同分割算法运行时间及时间复杂度

在算法时间复杂度方面,垂直投影分割算法与本文算法均为平方阶O(n2),在处理现场采集单张图像时,运行时间分别为432 ms 和489 ms,实时性较好;连通域算法时间复杂度为指数阶O(2n),单张图像处理时长为1 451 ms,运算量较大,实时性较差。

(3)不同滤波算法分割准确率对比分析

本文所述的基于分割效果评价函数的迭代闭环反馈分割方法,采用加权移动平滑滤波算法进行滤波,并通过广义学习矢量量化算法(GLVQ)确定最优的滤波权重因子。为了对比加权移动平滑滤波、移动中值滤波与移动平均滤波这三种不同滤波算法,以本文所提出的字符分割算法为框架,分别用三种不同滤波算法在贵阳×××厂现场数据集及GitHub 开源数据集上进行分割实验,结果如表4所示。

表4 不同滤波算法分割准确率对比结果

实验结果表明,相比于移动中值滤波、移动均值滤波,加权移动平滑滤波能更为有效地去除灰度波形图中由于反光、划痕等因素造成的波形畸变,同时较好地保持原有数据的变化趋势,进而提高字符分割准确率。

4 结束语

针对传统基于二值化图像的字符分割算法,在批量处理亮度不均匀低质量图像中的压印字符时,存在的分割准确率较低的问题,提出在灰度波形图基础上,基于分割效果评价函数的迭代闭环反馈字符分割方法,并通过广义学习矢量量化算法(GLVQ)确定最优滤波权重因子,提高滤波效率。建立基于闭环反馈的评价函数,对分割效果进行实时评价,并以此为依据判断是否进行迭代滤波及重新分割,确保分割准确率。通过对比实验可知,该算法的字符分割识别准确率可达98.5%。可为实际生产现场、多种复杂工况下的压印序列号批量识别提供一种新的技术思路。

猜你喜欢
序列号波形图字符
交流接触器典型通断过程分析
寻找更强的字符映射管理器
由波形图领悟声音特性
浅析CH-γ方程中解的求法
用DIS数字化信息系统测量金属棒中声速的有效方法
大学物理(2021年2期)2021-01-25 03:26:18
字符代表几
一种USB接口字符液晶控制器设计
电子制作(2019年19期)2019-11-23 08:41:50
消失的殖民村庄和神秘字符
recALL
PP助手教你辨别翻新iPhone5小白不再中招