技术领域
[0001] 本
发明属于图像增强技术领域,具体涉及一种含有亮斑干扰的铭牌文字识别处理方法,其主要包含降噪、亮斑分割、区域重建三大基本步骤。
背景技术
[0002] 铭牌又称标牌,一般固定在产品上,向用户提供厂家信息、品牌信息、设备参数等内容。铭牌的自动检测识别代替人工检测,可以克服人工检测的低效率与可靠性差等
缺陷,从而使在线检测工作规范化和智能化。铭牌识别的第一步就是利用智能采集终端在实际环境中获取铭牌图像,而这些设备可能工作在光线较暗的
位置,或是直接存放在阴暗的库房内,巡检人员可以开启采集终端的
闪光灯来拍摄铭牌。由于工业铭牌要求适应各种恶劣的工业环境(高温、长期户外存放等),因此大多数铭牌都由金属制成。金属材料一般对光线的变化较为敏感,开启闪光灯后会导致铭牌图像存在亮斑区域,亮斑的存在会对铭牌图像的后续处理、识别过程带来严重干扰。
[0003] 实际采集到的铭牌图像通常包含较多噪声,因此有必要对原始图像进行降噪。在
空域中,常见的滤波方法有均值滤波、中值滤波、Wiener维纳滤波等。均值滤波的主要思想为邻域平均法,即用几个
像素灰度的平均值来代替每个像素的灰度,它能有效抑制加性噪声,但容易引起图像模糊。Wiener维纳滤波是使原始图像和其恢复图像之间的均方误差最小的复原方法,对于去除高斯噪声效果明显。中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波
信号处理技术,首先确定一个以某个像素为中心点的邻域,一般为方形邻域,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,中值滤波对于去除椒盐噪声效果最好。
[0004] 对含亮斑铭牌图像进行处理首先需要分割出亮斑区域。含亮斑铭牌图像的灰度值可以大致分为三个子集,即字符区域(包括图案)、背景区域和亮斑区域,且三者并无明显的界限。经典的图像
阈值分割方法有OTSU方法、
迭代法等。其中,OTSU方法又被称为最大类间方法法,它是一种基于全局的二值化
算法,根据图像的灰度特性,将图像分为前景和背景两个部分。当取最佳阈值时,两部分之间的差别应该是最大的,在OTSU算法中所采用的衡量差别的标准就是较为常见的最大类间方差。前景和背景之间的类间方差如果越大,就说明构成图像的两个部分之间的差别越大,此时就意味着错分概率最小。由于亮斑铭牌图像包含了较多低灰度值的字符,如果直接使用传统的OTSU方法进行分割,将导致得到的阈值偏低,分割效果不佳。
发明内容
[0005] 为克服上述
现有技术存在的缺陷,本发明提出了一种可行性高、效果明显的基于迭代分割的含有亮斑干扰的铭牌文字识别处理方法。
[0006] 本发明采用的技术方案是:
[0007] 一种含有亮斑干扰的铭牌文字识别处理方法,其按如下步骤:
[0008] (1)对采集的包含亮斑的铭牌图像进行中值滤波降噪;
[0009] (2)对图像进行阈值分割以及中值滤波;
[0010] (3)将图像进行区域重建。
[0011] 优选的,步骤(1)图像降噪。由于实际采集的铭牌图像包含大量噪声点,因此,首先需要对原图像进行全局的平滑去噪。设原始灰度铭牌图像为I(i,j),(i,j)是该图像上任意一个像素点的坐标,1≤i≤h,1≤j≤w,w和h分别为图像的宽和高,建立大小为N×N的矩形窗口W,对I(i,j)进行中值滤波,
[0012] 其输出为If(i,j),If(i,j)的计算方式如下:
[0013] If(i,j)=med{I(i-k,j-l),(k,l∈W)} (1)
[0014] 式(1)中,med函数用于求取矩形窗口内所有像素值的中位数,k和l是窗口W中元素的位置序号。
[0015] 步骤(2)亮斑分割。If(i,j)中的像素主要由字符区域G1、背景区域G2、亮斑区域G3三个子集组成,且灰度值的大小关系大致为:G3>G2>G1。
图像分割的目的是尽可能精确地提取出G3,从而有利于后续消除亮斑,达到图像增强的目的。
[0016] 1)设置最大迭代次数Nmax(Nmax≥2),初始化实际迭代次数Nnum=0。
[0017] 2)使用OTSU方法对If(i,j)进行全局阈值分割,输出图像为Ib(i,j)。为了提高计算效率,考虑到实际铭牌图像中G3明显分布在灰度直方图的右侧区域,因此使用OTSU方法搜索最佳阈值时只从 之间进行搜索,假设这一步获得的阈值为T1。同时,令Nnum=Nnum+1,(即分割的次数增加1次)。
[0018] 3)在图像Ib(i,j)中,除了亮斑区域全为白色,还可能存在其他孤立的白点,使用公式(1)对Ib(i,j)进行中值滤波,从而去除大部分孤立的白点,输出为Ib2(i,j)。
[0019] 4)遍历Ib2(i,j)中的白色区域,假设一共包含M个白点,将所有点的横坐标放在集合Xk中,所有的纵坐标放到集合Yk中,k=1,2,...,M。在Ib2(i,j)中截取一个矩形区域S,S的左上
角顶点为(x1,y1),右下角顶点为(x2,y2),则:
[0020] x1=min{Xk,k=1,2,...,M} (2)
[0021] y1=min{Yk,k=1,2,...,M} (3)
[0022] x2=max{Xk,k=1,2,...,M} (4)
[0023] y2=max{Yk,k=1,2,...,M} (5)
[0024] 式(2)-(5)中,min函数和max函数分别表示取最小值和最大值,则S的宽和高分别为(y2-y1)和(x2-x1)。
[0025] 5)使用OTSU方法仅对S进行阈值分割,输出图像为Is(i,j)。如步骤2)中一样,使用OTSU方法选取最佳阈值时只从 之间进行搜索,假设这一步获得的阈值为T2。同时,令Nnum=Nnum+1,(即分割的次数增加1次)。
[0026] 6)与步骤3)类似,对Is(i,j)进行中值滤波,从而消除大部分孤立的白点,假设输出为Is2(i,j)。
[0027] 7)条件判决:
[0028] A.步骤5)中的Nnum是否等于Nmax;
[0029] B.T2是否不大于T1;
[0030] 若A满足,B不满足,结束分割,令T=T2,Iout=Is2;
[0031] 若A不满足,B满足,结束分割,令T=T1,Iout=Ib2;
[0032] 若A和B同时满足,结束分割,令T=T1,Iout=Ib2;
[0033] 若A和B都不满足,令T1=T2且Ib2(i,j)=Is2(i,j),返回步骤4)继续执行。
[0034] 其中,T表示亮斑分割最终的阈值,Iout表示最终的亮斑分割结果图像。
[0035] 步骤(3)区域重建。在If(i,j)上分割出亮斑区域后,需要对该区域内的像素重新赋值,从而实现消除亮斑、平滑背景。
[0036] 1)初始化阈值Th=30,Th的选取无需太精确,只要能从If(i,j)中分隔出G1区域即可。
[0037] 2)采用从左往右
逐行扫描方式的方式遍历Iout,将Iout中所有的白色区域看成由大量或长或短的
水平直线构成。
[0038] 假设位于第i行的某条直线L,L的起始点和终止点分别为(i,j1)和(i,j2),则:
[0039]
[0040]
[0041] 其中,searchfront(i,j1,L,Th)函数表示在If(i,j)中,沿着直线L,从(i,j1)位置开始向前搜索到第一个大于Th且在Iout中对应位置为黑的像素值;searchback(i,j2,L,Th)函数表示沿着直线L,从(i,j2)位置开始向后搜索到第一个大于Th且在Iout中对应位置为黑的像素值。之所以对If(i,j1)If(i,j2)分段取值是考虑到Iout中的黑色点既可能是背景点,也可能是字符所在点,而重建的过程需要的只是背景信息。
[0042] 式(6)中,If(i,j1-1)表示起始点If(i,j1)的前一个像素,该式首先判断If(i,j1-1)的灰度值是否超过Th,若是,表明If(i,j1-1)在非字符区域内,此时直接将If(i,j1-1)的灰度值赋给If(i,j1);若否,表明If(i,j1-1)在字符区域内,此时使用searchfront(i,j1,L,Th)函数寻找合适的像素为If(i,j1)赋值,该函数表示在If(i,j)中,沿着直线L,从(i,j1)位置开始向前搜索到第一个大于Th且在Iout中对应位置为黑的像素值;
[0043] 式(7)中,If(i,j2+1)表示终止点If(i,j2)的后一个像素,该式首先判断If(i,j2+1)的灰度值是否超过Th,若是,表明If(i,j2+1)在非字符区域内,此时直接将If(i,j2+1)的灰度值赋给If(i,j2);若否,表明If(i,j2+1)在字符区域内,此时使用searchback(i,j2,L,Th)函数寻找合适的像素为If(i,j2)赋值,该函数表示在If(i,j)中,沿着直线L,从(i,j2)位置开始向后搜索到第一个大于Th且在Iout中对应位置为黑的像素值。
[0044] 而点(i,j1)和(i,j2)之间的像素值可以通过公式(8)进行重建:
[0045]
[0046] 式(8)中,k=1,2,...,j2-j1-1,表示L上待插入像素的序号。
[0047] 3)重复步骤2),直至i=h。
[0048] 本发明首先对采集的原始灰度铭牌图像进行中值滤波降噪,有效地减小了噪声的干扰;然后使用改良的OTSU方法先对全图进行阈值分割,以及中值滤波去除孤立的白点,在此图像上截取白色区域的外接矩形,接下来直接在矩形内进行OTSU阈值分割和中值滤波,如此反复,矩形框不断变小以及分割阈值不断变大,直至达到最大迭代次数或得到的阈值不再增长;在区域重建时,将亮斑分割图像的白色区域看作大量长短不一的水平直线组成,在直线头部和尾部附近的背景信息的
基础上,排除掉字符信息的干扰,使用一个线性公式依次向直线的各个位置赋新值,从而实现重建过程。
附图说明
[0049] 图1是本发明亮斑分割的流程示意图。
[0050] 图2是本发明区域重建的流程示意图。
[0051] 图3是使用本发明对某实际铭牌图像进行处理的逐步输出。
[0052] 图4是该铭牌图像经处理前后的灰度直方图。
[0053] 图5是使用商业识别引擎ABBYY对该铭牌
图像处理前后的识别效果。
具体实施方式
[0054] 下面结合具体
实施例来对本发明进行进一步说明,但并不将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了
权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。
[0055] 参照图1-2,本实施例一种基于迭代分割的含有亮斑干扰的铭牌文字识别处理方法,其具体步骤如下:
[0056] (1)图像降噪。由于实际采集的铭牌图像包含大量噪声点,因此,首先需要对原图像进行全局的平滑去噪。设原始灰度铭牌图像为I(i,j),1≤i≤h,1≤j≤w,w和h分别为图像的宽和高,建立大小为N×N的矩形窗口W,对I(i,j)进行中值滤波,其输出为If(i,j),If(i,j)的计算方式如下:
[0057] If(i,j)=med{I(i-k,j-l),(k,l∈W)} (1)
[0058] 式(1)中,med函数用于求取矩形窗口内所有像素值的中位数,k和l是窗口W中元素的位置序号。
[0059] (2)亮斑分割。If(i,j)中的像素主要由字符区域G1、背景区域G2、亮斑区域G3三个子集组成,且灰度值的大小关系大致为:G3>G2>G1。图像分割的目的是尽可能精确地提取出G3,从而有利于后续消除亮斑,达到图像增强的目的。
[0060] 1)设置最大迭代次数Nmax(Nmax≥2),初始化实际迭代次数Nnum=0。
[0061] 2)使用OTSU方法对If(i,j)进行全局阈值分割,输出图像为Ib(i,j)。为了提高计算效率,考虑到实际铭牌图像中G3明显分布在灰度直方图的右侧区域,因此使用OTSU方法搜索最佳阈值时只从 之间进行搜索,假设这一步获得的阈值为T1。同时,令Nnum=Nnum+1。
[0062] 3)在图像Ib(i,j)中,除了亮斑区域全为白色,还可能存在其他孤立的白点,使用公式(1)对Ib(i,j)进行中值滤波,从而去除大部分孤立的白点,输出为Ib2(i,j)。
[0063] 4)遍历Ib2(i,j)中的白色区域,假设一共包含M个白点,将所有点的横坐标放在集合Xk中,所有的纵坐标放到集合Yk中,k=1,2,...,M。在Ib2(i,j)中截取一个矩形区域S,S的左上角顶点为(x1,y1),右下角顶点为(x2,y2),则:
[0064] x1=min{Xk,k=1,2,...,M} (2)
[0065] y1=min{Yk,k=1,2,...,M} (3)
[0066] x2=max{Xk,k=1,2,...,M} (4)
[0067] y2=max{Yk,k=1,2,...,M} (5)
[0068] 式(2)-(5)中,min函数和max函数分别表示取最小值和最大值,则S的宽和高分别为(y2-y1)和(x2-x1)。
[0069] 5)使用OTSU方法仅对S进行阈值分割,输出图像为Is(i,j)。如步骤2)中一样,使用OTSU方法搜索最佳阈值时只从 之间进行搜索,假设这一步获得的阈值为T2。同时,令Nnum=Nnum+1。
[0070] 6)与步骤3)类似,对Is(i,j)进行中值滤波,从而消除大部分孤立的白点,假设输出为Is2(i,j)。
[0071] 7)条件判决:
[0072] A.Nnum是否等于Nmax;
[0073] B.T2是否不大于T1;
[0074] 若A满足,B不满足,结束分割,令T=T2,Iout=Is2;
[0075] 若A不满足,B满足,结束分割,令T=T1,Iout=Ib2;
[0076] 若A和B同时满足,结束分割,令T=T1,Iout=Ib2;
[0077] 若A和B都不满足,令T1=T2且Ib2(i,j)=Is2(i,j),返回步骤4)继续执行。
[0078] 其中,T表示亮斑分割最终的阈值,Iout表示最终的亮斑分割结果图像。
[0079] (3)区域重建。在If(i,j)上分割出亮斑区域后,需要对该区域内的像素重新赋值,从而实现消除亮斑和平滑背景的效果。
[0080] 1)初始化阈值Th=30,Th的选取无需太精确,只要能从If(i,j)中分隔出G1区域即可。
[0081] 2)采用从左往右逐行扫描方式的方式遍历Iout,将Iout中所有的白色区域看成由大量或长或短的水平直线构成。
[0082] 假设位于第i行的某条直线L,L的起始点和终止点分别为(i,j1)和(i,j2),则:
[0083]
[0084]
[0085] 其中,searchfront(i,j1,L,Th)函数表示在If(i,j)中,沿着直线L,从(i,j1)位置开始向前搜索到第一个大于Th且在Iout中对应位置为黑的像素值;searchback(i,j2,L,Th)函数表示沿着直线L,从(i,j2)位置开始向后搜索到第一个大于Th且在Iout中对应位置为黑的像素值。之所以对If(i,j1)If(i,j2)分段取值是考虑到Iout中的黑色点既可能是背景点,也可能是字符所在点,而重建的过程需要的只是背景信息。
[0086] 而点(i,j1)和(i,j2)之间的像素值可以通过公式(8)进行重建:
[0087]
[0088] 式(8)中,k=1,2,...,j2-j1-1,表示L上待插入像素的序号。
[0089] 3)重复步骤2),直至i=h。
[0090] 本发明首先对采集的原始灰度铭牌图像进行中值滤波降噪,有效地减小了噪声的干扰;然后使用改良的OTSU方法先对全图进行阈值分割,以及中值滤波去除孤立的白点,在此图像上截取白色区域的外接矩形,接下来直接在矩形内进行OTSU阈值分割和中值滤波,如此反复,矩形框不断变小以及分割阈值不断变大,直至达到最大迭代次数或得到的阈值不再增长;在区域重建时,将亮斑分割图像的白色区域看作大量长短不一的水平直线组成,在直线头部和尾部附近的背景信息的基础上,排除掉字符信息的干扰,使用一个线性公式依次向直线的各个位置赋新值,从而实现重建过程。
[0091] 图3是应用本发明技术方案对某实际采集的铭牌图像进行处理的逐步效果。经中值去噪后,图像的
质量明显得到改善;进行三次迭代分割以后,分割的阈值不再增大,此时停止迭代,可以看出,分割的效果越来越精确,不断向亮斑区域逼近;最后是区域重建的效果,通过肉眼可以看出,重建后的图像较好地消除了亮斑,背景区域变得平滑,增强效果明显。
[0092] 从图4可以看出,原图的灰度直方图在右侧区域有一个“尖峰”,对应于亮斑区域,预处理之后,这部分的灰度值整体向左移动,反映在图像上就是亮斑得到消除。
[0093] 图5是将预处理前后的图像输入到商业OCR引擎ABBYY中得到的输出结果。预处理前,识别率较低,只能正确识别出靠近图像中央的几个字符(“技术”、“业委”、“八年三月”);而处理之后,识别率明显提高了将近一倍,证明了本算法的有效性。图像在处理前后,靠近左右两侧的字符都未能识别成功,这与原始图像的质量有关,即该区域字符与背景的反差不够明显,难以正确分割。
[0094] 本发明一种基于迭代分割的含亮斑铭牌图像预处理方法,包括图像降噪、亮斑分割和区域重建三个基本步骤。通过智能采集终端获取到包含局部亮斑的铭牌图像后,对灰度图像进行中值滤波去噪;使用改良的OTSU方法先对全图进行阈值分割,再使用中值滤波去除孤立的白点,在此图像上截取白色区域的外接矩形,然后直接在矩形框内进行OTSU阈值分割和中值滤波,如此反复,直至达到最大迭代次数或得到的阈值不再增长;在区域重建阶段,将亮斑分割图像的白色区域看作大量长短不一的水平直线组成,在直线头部和尾部附近的背景信息的基础上,排除掉字符信息的干扰,使用一个线性公式依次向直线的各个位置赋新值。经预处理后的铭牌图像较好地去除了亮斑,图像质量得到明显增强,使用ABBYY进行识别时获得了更高的字符识别率。