APP下载

断裂粘连激光印刷数字串识别算法

2020-04-28伍世虔赵昊坤

机械设计与制造 2020年4期
关键词:条码字符像素点

饶 刚,姜 燕,伍世虔,赵昊坤

(武汉科技大学机械自动化学院机械传动与制造工程湖北省重点实验室,湖北 武汉 430000)

1 引言

目前常见的数字串分割识别,分为印刷体数字识别和手写体数字识别两大类,其中印刷体数字又分为传统数字印刷和以喷墨、激光为代表的,可变数字印刷[1]。相对于印品质量较高的传统印刷,激光印刷数字串由于存在断点、时有粘连、字符粗细不一、数字边缘较为粗糙等问题,在实际应用中,能正确地对激光印刷数字进行切分并可靠地对其进行识别的算法,是保证激光印刷数字识别率的关键因素。

2 系统结构及检测原理

检测系统由摄像采集系统,光学照明系统和图像识别系统组成。识别系统对图像进行预处理、数字串分割、数字串识别和数字串识别结果校验。

3 图像预处理

图像预处理主要包括图像的二值化和数字串提取[2]。

3.1 图像自适应二值化

由于产品数量较大,图像会受环境光线、采集设备参数等因素影响,图像的灰度值会出现不同的灰度值集合。因此采用动态阈值处理法Otsu’s方法[3],算法原理如下:

设图像直方图范围为[0,L],L为图像中最大灰度级数,每级灰度值i对应的像素点个数为ni,故图像总像素点个数为:

每个灰度级所占图像像素比例为:

由上述式(1)~式(2)推导可得:

用灰度级t将字符与背景分离,灰度级1~t为背景像素,灰度级t+1~L-1为字符像素,则背景像素所占比例为:

字符像素所占比例为:

背景像素灰度平均值(ωA)和字符像素灰度平均值(ωB)分别为:

图像总灰度像素平均值(ω0)为:

阈值处理后的最大类间方差(σ2)为:

最优阈值是使类间方差(σ2)达到最大值时的t。图像处理结果,如图1所示。

图1 图像二值化Fig.1 Image Binarization

3.2 数字串提取

对上述二值化处理后的区域采用统计法,0代表背景,1代表图元边界,对水平方向灰度等级为1的像素点数量进行统计,去除像素点低于平均值的行后提取像素点数量最多区域后对此区域进行竖直方向像素统计,去除像素点低于平均值的列后提取得像素点最多区域(视间隔小于10列的为同一区域)即为目标数字串所在区域,水平竖直方向统计结果,如图2所示。记录最终区域高度ah为字符高度值,为避免边界信息损失,对该区域边界进行适当放大。

图2 图像水平及竖直方向投影图Fig.2 Image Level and Vertical Direction Projection

4 断裂字符拼合算法

4.1 数字串滤波去噪

数字图像的采样及传输在经过传感器或传输通道时经常受到噪声的干扰,膨胀算法会放大噪声。故在膨胀前采用中值滤波消除孤立噪声点,使边缘保持良好[4]。滤波窗口大小为(3×3),中值滤波器的定义如下:

4.2 数字串断点去除

为消除数字由于印刷质量引起的断点,采用了对数字串进行适当膨胀的方法。膨胀是将与图元接触的背景点合并到图元中,使图像中的图元“变粗”的操作,A被B膨胀,定义为:

式中:φ—空集;Bˆ—结构元,即A被B膨胀是由所有结构元的原点位置组成的集合。

采用膨胀结构元如下:

膨胀处理很好的消除数字串中的断点,完成了数字串分割前处理,数字串处理前后,如图3所示。

5 粘连字符提取算法

粘连字符提取算法对粘连数字串进行分割,提取单个字符,之后对字符进行归一化处理。

5.1 字符分割算法

由于数字串中部分数字粘连,故采用轮廓极值分析法,得到合理的字符分割点,从而对数字串进行分割。通过追踪搜索得到上下轮廓特征,如图4所示。

图3 数字串膨胀处理实验对比图Fig.3 Experimental Comparison Diagram of Digital Series Expansion Treatment

图4 图像上下轮廓特征图Fig.4 Top and Bottom Convex Feature Graph

图像上轮廓函数为fT(x)其中X=(x1,x2,…,xn)T,对于X*∈R,如果存在某个ε>0,使所有与X*的距离小于ε的Xa∈X(Xa∈均满足不等式(fX)a≥(fX*),则称X*为f(Tx)在R上的局部极小点,fT(X*)为局部极小值[7]。由此得上轮廓局部最小值向量为 XT=(XT1,XT2,… ,XTm)。

同理得到下轮廓局部最大值向量为 XB=(XB1,XB2,… ,XBm)。

对于 XTi∈XT,若:∃XBj∈XB,且 XBj∈[XTi-5,XTi+5]且

对 XT进行遍历后,若 Dy=[D1,D2,…,D13]则数字串分割成功,否则数字串分割失败。

5.2 字符归一化

切分后的字符大小不一,且由于外包装加工误差,部分数字轻微倾斜,因此采用最近邻域插值法将图像进行归一化处理,将图像加工为尺寸统一的标准图像,保证了所有字符的最大宽度均为W、最大高度统一为H,从而较小由于字符大小不一引起的字符识别误差,提高识别的准确性[5]。

6 字符识别算法

6.1 数字轮廓平滑处理

为获得较为平滑的字符轮廓,便于后期识别,采取开运算对字符进行处理。开运算采取同一结构元素对目标图元先进行腐蚀后进行膨胀,除去所有不能包含结构元素的部分,用来消除小颗粒噪声、在纤细点处分离物体、平滑图元轮廓的同时并不明显改变其面积。

开运算的定义为[6]:

6.2 轮廓突变点提取算法

采用一种轮廓斜率突变检测算法,对数字进行识别。算法对投影轮廓相邻两点之间的斜率进行计算,判断斜率是否产生突变,并记录斜率突变次数,作为字符识别特征,计算时去除急剧变化的首尾两端。

底轮廓相邻两点之间斜率:

当B(i)>0.15*H时,记做斜率发生了一次突变,记录突变次数为bp。

右轮廓相邻两点之间斜率:

为了提高识别的精度,将左轮廓分为上下两部分。

计算图像左上轮廓相邻两点之间的斜率:

计算图像左下轮廓相邻两点之间的斜率:

设置斜率阈值为 0.3*W,R(i),L1(i),L2(i)中任意一个值大于 0.3*W 时记做斜率发生了一次突变,分别记录 R(i),L1(i),L2(i)中的轮廓突变点数量为 rp、lup、ldp。

6.3 识别特征选取

采用提取数值特征法对字符进行区分。为准确的对数字进行分类识别,本系统选择6个几何和拓扑特征来构造数据库中数字原型,从而区分字符,所选特征如下:

1、cd={1、2、3}:连通域数量。

2、wd=max{Right(i)-Left(i)}/H:3/4字符高度内最大宽度与

字符总高度比值。

3、bp={0,≥1}:底轮廓突变点数量。

4、rp={0,≥1}:右轮廓突变点数量。

5、lup={0,≥1}:左上廓突变点数量。

6、ldp={0,≥1,2}:左下廓突变点数量。

6.4 字符分类识别算法

将扫描分割后所得字符si与数据库中的数字原型Si进行匹配从而进行字符识别。

其中 Sj=(f1j,f2j,…,fmj)j={1,2,…,k}

m≤6(fmj为上述6项特征之一)

如果∀fpj∈Sj∃fcj∈sj且 p={1,2,…,m},c={1,2,…,8},则 fpj⊆fcj,即字符sj与原型Sj相匹配。其中fpj和fcj为上述6项特性之一。

如果对于数字串C=(s1,s2,…,s12)若存在一个原型集合P=(S1,S2,…,Sk)对于∀sj∈C∃Sj∈P 则数字串识别成功。

其中本算法数字原型矢量如下:

S0={cd=2,bp=0,rp=0,lbp=0};S1={cd=1,wd<0.35};

S3={cd=1,lup≥1,ldp≥1};S4={cd=2,bp≥1};

S5={cd=1,ldp≥1,lup≥1};S6={cd=2,rp≥1};

S7={cd=1,bp≥1};S8={cd=3};S9={cd=2,lbp≥1}。

7 算法实验结果与分析

由于网银盾的激光数字序列号与包装盒上条码序列号相匹配,故对条码进行识别,若两者识别结果一致,则数字识别成功且网银盾包装正确,否则网银盾包装有误或者序列号识别有误,网银盾需要重新返厂处理。

7.1 条码识别检测

经检测,网银盾使用的条形码格式为Code 128C码,其编码方式如下图。起始码、编码区和校验码中每个符号由3根黑条和3根白条组成,每个符号长度为11且包含两位数字,终止码由4根黑条3根白条组成长度为13[8]。由此推得网银盾条码结构为:

式中:S、E—起始、终止码;T—校验码;A—字符编码。

图5 Code 128C码编码格式图Fig.5 Code 128C Code Coding Format

条码前处理方法和前述方式相似,Otsu’s算法对图像进行二值化后提取条码区域,最后中值滤波去噪。由于包装运输过程中变形以及条码粘贴误差导致条码可能出现倾斜,对此我们采用平均值法和归一化法,消除由于倾斜带来的检测误差。

首先对黑白条码宽度进行逐行统计,去除黑白条码总数不为55的统计结果,从而消除条码倾斜带来的统计误差,统计得到:

对结果求均值以减小统计误差:

计算条码单位长度:

由此得到条码实际编码为:

最后对条码进行校验:

若T*=T则条码识别成功。

若通过上述识别得到结果[A1,A2,A3,A4,A5,A6]=(s1,s2,…,s1)2则该网银盾合格,校验通过,否则网银盾包装有误或者序列号识别有误。

7.2 实验结果分析

本实验采用的样本及实验系统,如图6所示。对100个网银盾共1200个字符100个条码进行识别,对每个网银盾识别的序列号[s1,s2,…,s12]和包装盒上扫描得出的条码号[A1,A2,A3,A4,A5,A6]进行对比,号码一致则判断为正确,否则判断为加工包装错误或序列号识别有误,设置声音报警器,提示当前的网银盾需要重新校验,同时对网银盾号码是否连续进行检验,若号码不连续则识别出错或生产线出错,系统报警。实验得算法识别准确率达到99%,唯一一个网银盾识别出错是由于加工后带上了少许金属粉尘挡住数字9导致识别无效,擦掉粉尘后识别正确,即在没有污渍的情况下,本算法对网银盾的识别准确率可达到100%,算法平均识别时间为0.15s。最后进行错误产品校验实验,将产品与包装盒进行错误装配后,系统有效的检查出错误并报警。

图6 实验样本及实验系统图Fig.6 Experimental Sample and Experimental System Diagram

8 结论

(1)提出了一种对激光印刷数字串进行切分识别的算法,相对于已有的数字识别方法,该算法对印刷质量较差的激光数字提出了一种新的膨胀消除断点后用极值法进行分割的方法,在识别方面采用6个几何和拓扑特征来构造数据库中数字原型,通过对比数字串分割结果与数字原型,从而区分字符,对字符进行识别。(2)实验结果证明算法识别准确率高,速度快,并具有一定的实时性,对激光断裂粘连字符具有很好的识别能力,并且可识别轻微倾斜字符。算法对12位数字串的识别准确率高达99%,平均识别时间为0.15s。(3)该算法可应用于宋体、舒体、隶书、长仿宋体等激光印刷数字的识别。对系统进行进一步的改进,即可应用于激光打印生产线的在线监测[10],以及产品出厂前产品与包装的一致性校验。

猜你喜欢

条码字符像素点
热线互动
基于局部相似性的特征匹配筛选算法
浅析影响商品条码质量的主要因素
日杂商品条码质量现状研究
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
HBM电子称与西门子S7-200系列PLC自由口通讯
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密