首页> 中国专利> 复杂金属背景下DataMatrix条码区域定位方法

复杂金属背景下DataMatrix条码区域定位方法

摘要

本发明公开了一种复杂金属背景下DataMatrix条码区域定位方法,利用机器学习与级联检测联合的方法快速并抗干扰的识别定位DataMatrix条码区域,依次进行图像预处理、灰度直方图判决、连通域判决、局部二值模式特征判决、连通域判决、边缘直方图特征判决、连通域判决和聚类生长,能够解决生锈腐蚀、高反光、磨损污染和纹理干扰等各种复杂金属上的DataMatrix二维条码区域定位的问题。

著录项

  • 公开/公告号CN102346850A

    专利类型发明专利

  • 公开/公告日2012-02-08

    原文格式PDF

  • 申请/专利权人 西北工业大学;

    申请/专利号CN201110310325.6

  • 申请日2011-10-13

  • 分类号G06K9/46(20060101);G06K9/54(20060101);G06K9/62(20060101);

  • 代理机构61204 西北工业大学专利中心;

  • 代理人顾潮琪

  • 地址 710072 陕西省西安市友谊西路127号

  • 入库时间 2023-12-18 04:21:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-11-30

    未缴年费专利权终止 IPC(主分类):G06K9/46 授权公告日:20130814 终止日期:20151013 申请日:20111013

    专利权的终止

  • 2013-08-14

    授权

    授权

  • 2012-03-21

    实质审查的生效 IPC(主分类):G06K9/46 申请日:20111013

    实质审查的生效

  • 2012-02-08

    公开

    公开

说明书

技术领域

本发明涉及对各种复杂金属背景上的DataMatrix二维条码进行识别并定位的方 法,属于模式识别技术领域。

背景技术

直接零件标识DPM(Direct Part Marking)技术是一种可直接在产品的表面形成包括 文字、符号或图案等形式的永久标识技术,利用DPM技术在产品表面形成的一维条 码或二维条码符号,是实现产品可追溯性标识的重要技术手段,在条码符号的选择上, 考虑到产品表面面积有限、提高符号识读率等因素,目前多选用DataMatrix条码作为 产品的二维条码永久标识,这是因为DataMatrix条码编码容量大、密度高、纠错能力 强。

二维条码区域定位是指检查图像中是否存在二维条形码,并将位置定位出来,此 过程也可称为二维条形码的检测。若二维条码背景为金属零件或金属刀具,在车间流 通环境下,二维条码定位会有下列问题:1、长期恶劣环境使用下金属会有腐蚀生锈, 磨损划痕污染等问题;2、由于金属本身的形状材质各异,二维条码可能会有柱面变形, 对比度有高有低,背景粗糙,噪声污染大等问题。3、如果光照不理想的话,可能会有 高光反光,光照不均等光照问题影响识别。4、二维条码在图像中的位置任意,并且角 度任意旋转,大小不定。

目前所存在的二维条形码检测方法分为两大类:硬件检测方法和软件检测方法。 硬件检测方法基于特定的硬件平台,用半自动化的方法来定位二维条码,譬如申请号 为“200410076815”,名称为“用于定位二维条形码的方法和设备”与申请号为 “200610060244”,名称为“一种二维条码移动终端辅助定位方法”的发明专利。硬件 检测方法的优点在于输入数据精确,保证了后续解码模块的准确性。但这种检测方法 也存在着明显的缺点,设备昂贵、便携性低、适用范围窄。软件检测方法以数字图像 作为输入,使用数字图像处理的方法对图像中的二维条形码进行检测定位,譬如申请 号为“200710050434”,名称为“一种二维条码系统及其定位方法”与申请号为 “200610086966”,名称为“一种基于定为圆形的可快速定位的二维条码系统”的发明 专利。目前二维条形码的检测软件方法使用的都是非机器学习的方法,只是利用二维 码特有的格式几何形态检测数字图像中的二维条码。这些方法都只是初等方法,只适 用于印刷在纸张上的背景环境好的二维条码,难以推广到刻印在各种材料,尤其是复 杂的金属背景上的二维条码检测。

发明内容

为了克服现有技术无法应用于复杂金属背景上的二维条码检测的不足,本发明提 供一种利用机器学习与级联检测联合的方法快速并抗干扰的识别定位DataMatrix条码 区域,能够解决生锈腐蚀、高反光、磨损污染和纹理干扰等各种复杂金属上的 DataMatrix二维条码区域定位的问题。

本发明解决其技术问题所采用的技术方案包括以下步骤:

第一步,预处理图像

1.划分网格

设输入图像A的网格划分方式为p×q,宽度为w像素,高度为h像素,pixi,j代 表现图像中i列j行像素点的像素值,则定义整体网格坐标矩阵G为:

G=g00g01...g0(q-1)g10g1...g1(q-1)............g(p-1)0g(p-1)1...g(p-1)(q-1)p×q

其中,gm,n(0≤m<p,0≤n<q)代表第m行n列网格,并定义gm,n数组为: gm,n=[wmp,w(m+1)p,hnq,h(n+1)q,t],其中gm,n[0]=wmp,gm,n[1]=w(m+1)p,gm,n[2]=hnqgm,n[3]=h(n+1)q分别代表网格gm,n的横向最小值、横向最大值、纵向最小值和纵向最大 值,并且gm,n为正方形区域。gm,n[4]=attribute代表网格gm,n的属性,attribute∈{1,2,3}, 其中0代表背景网格,1代表候选目标网格,2代表目标网格。所有网格的属性初始值 都赋为1。

2.16灰度级重置各网格

对于网格gm,n,16灰度级重置算法如下:

1)首先遍历gm,n内的所有像素点,寻找最大像素值和最小像素值,分别设为Vmax与 Vmin。判断Vmax-Vmin>17,若成立则转向步骤2)继续执行;若不成立则将gm,n属 性赋为背景,令gm,n[4]=0,然后本次16灰度级重置网格gm,n结束。

2)建立一个空白的索引区间数组其中iterater[l]代表一个索引,l代表索 引区间。

3)从Vmax到Vmin等分成16区间,得到17个节点的数组其中m代表节点: {Area[m]}m=016=[Vmin,Vmin+Vmax-Vmin16,...,Vmin+16(Vmax-Vmin)16].

4)若Area[m]≤l≤Area[m+1](0≤m<16),则赋值iterater[l]=m,循环将 中的每个索引都赋上值。

5)再次遍历gm,n模块,对于pixi,j∈gm,n,重新赋像素值:pixi,j=iterater[l](pixi,j=l)。 遍历G,利用16灰度级重置算法将其中的每个网格中的所有像素值重新赋值,得 到新的重置后的图像A1

3.边缘特征提取

1)用BOM算法求取图像A1的灰度边缘:A2是16灰度级图像A1的灰度边缘图像,为灰度膨胀,Θ为灰度腐蚀,g为半径 为1的圆形结构元素。

2)对于像素点pixi,j∈A1,求取其边缘强度函数:其中 ex(i,j),ey(i,j)分别是像素点pixi,j在x与y方向上的梯度,离散表示为:

ex(i,j)=(pixi+1,j+1+2pixi+1,j+pixi+1,j-1)-(pixi-1,j+1+2pixi-1,j+pixi-1,j-1)

ey(i,j)=(pixi+1,j+1+2pixi,j+1+pixi-1,j+1)-(pixi+1,j-1+2pixi,j 1+pixi-1,j-1)

设定一个阈值T:e^(i,j)=e(i,j)e(i,j)>T0e(i,j)T,本发明取T=80。若则认为 其对应的像素点为非边缘点。

循环求取A1中所有像素点的边缘强度,将其记录在缓存区E[w×h]中。

3)对于像素点求取边缘方向函数: 循环求取A1中所有满足的像素点的边缘方向,并将其记录在 缓存区θ[w×h]中。

4)对于gm,n[4]=1的候选目标网格gm,n,求取其边缘方向累计函数Hm,n

Hm,n={Hm,n(t)|Hm,n(t)=Σ(i,j)gm,ne^(i,j)δ(θ(i,j)-t)}t=015,其中t∈[0,1,5],代表着

这16个区间,δ(θ(i,j)-t)函数为:

δ(θ(i,j)-t)=1θ(i,j)[-π2+π16t,-π2+π16(t+1)]0θ(i,j)[-π2+π16t,-π2+π16(t+1)]

循环整体网格矩阵G,得到所有候选目标网格的直方图特征集合:

HG={Hm,n|gm,n∈G&&gm,n[4]=1}。

第二步,灰度直方图判决

1.候选目标网格灰度直方图特征提取

设gm,n为图像A1中的一个候选目标网格,则gm,n的灰度直方图特征提取如下:

1)统计gm,n中所有像素点,得到一组灰度直方图记为其中p(x)代表gm,n中像素值为x的像素点的个数。然后将按照其最大值归一化,得到归 一化的灰度直方图记为

2)计算直方图平均灰度:μ=M1=Σi=015xp(x).

3)计算直方图方差:σ2=Σi=015(x-μ)2p(x).

4)计算直方图偏度:S=Σi=015(x-μ)3p(x)/(σ2)3.

5)计算直方图的熵:最后得到gm,n的灰度直方图 特征HISm,n=[μ,σ2,S,ENTROPY]。

循环整体网格矩阵G,得到所有候选目标网格的直方图特征集合:

HS={HISm,n|gm,n∈G&&gm,n[4]=1}。

2.灰度直方图判决器训练

1)采用n(30<n<60)幅生锈腐蚀、高反光、磨损污染和纹理干扰的金属背景二维条码 图像作为训练样本图像,并将这n幅训练样本图像进行划分网格和16灰度级重置 各网格算法操作,然后从这n幅训练样本图像中选取n1个这些训练样本图像的非条 码区域的网格即背景网格作为负训练样本,设为集合从这n幅训练样本 图像中选取n1个这些训练样本图像的条码区域网格作为正训练样本,设为集合 n1=80。

2)利用上述的灰度直方图特征提取算法,提取所有负训练样本集合网格与正 训练样本集合网格的灰度直方图特征,将这2n1组正负训练样本的的每组直 方图特征作为行,共2n1组直方图所以有2n1列,所以得到一个4×2n1的矩阵P1

3)设正样本对应的输出为(1,0),负样本对应的输出为(0,1),则矩阵P1对应的输出为一 个2×2n1的矩阵T1。利用matlab2008创建一个BP神经网络newff(),BP神经网络的训 练函数为“trainlm”,输入层到隐层节点的传递函数为“tansig”,隐层节点到输出 层的传递函数为“logsig”。每组输入元素的最大值和最小值为2n1×2的矩阵 min max(P1),并将最大训练次数定为1000,目标误差定为0.001,隐层节点定为7个。

4)将矩阵P1作为原始输入向量,矩阵T1作为输出向量,在matlab2008中利用BP神经 网络进行训练,得到输入层到隐层的一个7×4权值矩阵记为netIW11,一个7×1的阈 值向量记为netb11;隐层到输出层的一个2×7权值矩阵记为netIW21,一个2×1的阈 值向量记为netb21

3.灰度直方图判决

HISm,n为一个候选目标网格gm,n的灰度直方图特征,将其代入训练结果计算对应的 判决输出V-HISm,n

V-HISm,n=log sig(netIW21×tan sig(netIW11×HISm,n+netb11)+netb21)=(am,n,bm,n)。同理计算 gm,n的八邻域内所有候选目标网格的判决输出,将这些判决输出求取平均值得到 如果则候选目标网格gm,n属性不变,否则将候选目标网格gm,n设为 背景网格:gm,n[4]=0。

第三步,连通域判决

1.连通区域类圆度判决

经过灰度直方图判决后,设图像A1中候选目标网格的连通区域为x1个,连通区域 集合记为连通域Rx中的候选目标网格数目为nx(1≤nx≤p×q)个,若nx≤4,Rx为污染连通区域,将Rx从集合中删除,并将Rx中所有候选目标区域的属性赋值 为0:{gm,n[4]=0|gm,n∈Rx}。否则进行连通区域类圆度判决,过程如下:

1)对于集合中的一个连通域Rx,首先求取其质心位置(x′,y′):

x=Σgm,nRxmnx,y=Σgm,nRxnnx

2)设Rx中的候选目标网格gm,n,若gm+1,n、gm-1,n、gm,n+1与gm,n-1中至少有一个为背景区 域,则gm,n为非Rx边缘网格,将gm,n从Rx中去除;否则将其保留标记为边缘网格。 循环判断Rx中的所有候选目标网格,可得Rx的边缘网格集合,记为

3)求取质心到的最短和最长距离:

minL=min{(x-x^)2+(y-y^)2}maxL=max{(x-x^)2+(y-y^)2}gx^,y^R^x,并得到边缘到质心的距离集合: L=l|l=(x-x^)2+(y-y^)2gx^,y^R^x,.然后设圆半径r,计算边缘点到圆周上的 平均误差最小圆:Ebest=min{ΣlL|l-r|/sizeof(R^x)|minLrmaxL},代表集合大小。设Ebest对应的圆半径为rbest,对应的包络圆记为判断类圆度误差 与半径之比是否小于某个阈值:本发明中取T1=0.24。若小于 则判定为类圆的连通域,否则判定为待定区域。

4)重复步骤1)~3)的过程,将中的所有连通域进行类圆度判决,设通过判决 的连通域有x2(0≤x2≤x1)个,用集合表示。若x2≥1,转向第三步的步骤2“连 通区域边缘直方图双峰度特征判决”,否则转向第四步“局部二值特征判决”。

2.连通区域边缘直方图双峰特征判决

1)对于集合中的一个连通域Rx,计算它的整体边缘直方图: HRx={HRx(t)|HRx(t)=Σgm,nRxHm,n(t)t=0,1,2,...15};

2)求出Rx整体边缘直方图的相邻3区间加权最大值:

mainDireRx=max{0.6HRx(t)+0.4(HRx((t+15)%16)+HRx((t+17)%16))}

设所对应的区间t设为为连通域Rx的主方向。

3)旋转平移HRx,使得处于HRx的第5个直方图区间,得到旋转归一化的HRx={HRx(t)|HRx(t)=HRx((t+20-tRx)%16)},其中%为取余运算。

4)主方向移至第5个区间,由于Datamatrix码的边缘垂直特性,另一主方向被移 至13区间附近。计算连通域Rx的双峰特征值

gRx=Σt=08(4-t)2(HRx(4)-HRx(t))2+Σt=915(12-t)2(HRx(12)-HRx(t))22;

5)与步骤1)~4)过程一样,循环求取中所有连通域的双峰特征值,若标记为通过连通区域边缘直方图双峰特征判决,为候选目标区域,否则为未通过, 标记为通过连通区域边缘直方图双峰特征判决。设通过此判决的连通域个数为 x3(0≤x3≤x2)个,用集合表示。若x3≥1,转向步骤3“连通域主方向对比判 决”,否则转向第四步“局部二值特征判决”。

3.连通区域主方向对比判决

1)对于集合中的一个连通域Rx,计算它的主方向对比

cRx=max{HRx(3),HRx(4),HRx(5)}max{HRx(11),HRx(12),HRx(13)},0.56<cRx<1.8,则Rx为目标区域,将Rx中的 所有候选目标网格定义为目标网格{gm,n[4]=2|gm,n∈Rx};否则Rx为未通过连通域主 方向对比判决。

2)循环判断集合中的所有连通域,并重复上一步运算直至全部判断完。设此级 判决通过的连通域个数为x4个,用集合表示,其对应的主方向为集合对应的包络圆为集合

4.整体网格矩阵G属性判断

1)遍历整体网格矩阵G,若存在至少一个gm,n[4]=1(gm,n∈G),则转向第四步“局部二 值模式特征判决”,否则转向步骤2)。

2)若存在gm,n[4]=2(gm,n∈G),则转向第八步“聚类生长”,否则转向步骤3)。

3)提示“本图像中没有二维条码!”,并结束算法。

第四步,局部二值模式特征判决

1.候选目标网格局部二值模式特征提取

设整体网格矩阵G中的一个候选目标网格gm,n(gm,n[4]=1),其局部二值模式特征提 取过程如下:

1)在图像A1中,对于网格gm,n中的一个像素pixi,j(pixi,j∈gm,n),建立一个局部描述特 征数组并且pixi,j的8邻域像素为数组:

{Ii,j[x]}x=07={pixi,j+1,pixi+1,j+1,pixi+1,j,pixi+1,j-1,pixi,j-1,pixi-1,j-1,pixi-1,j,pixi-1,j+1}

2)给局部描述特征数组赋值:其中函数 s(x)为:s(x)=1,x00,x<0.

3)求取的泛化值vi,j

vi,j=Σx=06|tempi,j[x+1]-tempi,j[x]|+|tempi,j[7]-tempi,j[0]|

若vi,j≤2,则像素pixi,j的局部二值模式特征值为:否则lbpi,j=9。

4)与1)~3)步算法一致,求取gm,n中所有像素点的局部二值模式特征值,并统计叠 加,得到网格gm,n的局部二值模式特征LBPm,n,表示如下: LBPm,n={LBPm,n[x]|LBPm,n[x]=Σpixi,jgm,nδ(lbpi,j-x)sizeof(gm,n)}x=08,其中LBPm,n[x]为gm,n中所有像素 点局部二值模式特征值为x的频率,sizeof(gm,n)代表gm,n中像素点的数量,δ(x)函 数表示为:δ(x)=1x=00x0.

遍历整体网格矩阵G中的所有候选目标网格,和1)~4)步算法一致,得到所有 候选目标网格的局部二值模式特征集合:LBP={LBPm,n|gm,n∈G&&gm,n[4]=1}。

2.局部二值模式特征判决器训练

1)利用第二步步骤2中“灰度直方图判决器训练”所选出的n幅训练样本图像,将这 n幅训练样本图像进行上述所有步骤运算,然后选取n2=80个这些训练样本图像 的候选目标网格中的背景网格作为负训练样本,设为集合选取n2个这些 训练样本图像的条码区域网格作为正训练样本,设为集合

2)利用第四步步骤1中的候选目标网格局部二值模式特征提取算法,提取所有负训 练样本集合网格与正训练样本集合网格的局部二值模式特征,并将这 2n2组灰度直方图特征记为一个9×2n2的矩阵P2

3)设正样本对应的输出为(1,0),负样本对应的输出为(0,1),则矩阵P2对应的输出为一 个2×2n2的矩阵T2。利用matlab2008创建一个BP神经网络newff(),BP神经网络的训 练函数为“trainlm”,输入层到隐层节点的传递函数为“tansig”,隐层节点到输出层 的传递函数为“logsig”。每组输入元素的最大值和最小值为2n2×2的矩阵min max(P2), 并将最大训练次数定为1000,目标误差定为0.001,隐层节点定为20个。

4)将矩阵P2作为原始输入向量,矩阵T2作为输出向量,在matlab2008中利用BP神经 网络进行训练,得到输入层到隐层的一个20×9权值矩阵记为netIW12,一个20×1的 阈值向量记为netb12;隐层到输出层的一个2×20权值矩阵记为netIW22,一个2×1的 阈值向量记为netb22

3.局部二值模式特征判决

LBPm,n为一个候选目标网格gm,n的局部二值模式特征,将其代入训练结果计算对应 的判决输出V-LBPm,n

V-LBPm,n=logsig(netIW22×tan sig(netIW12×LBPm,n+netb12)+netb22)=(cm,n,dm,n)。同理计算 gm,n的八邻域内所有候选目标网格的判决输出,将这些判决输出求取平均值得到 如果则候选目标网格gm,n属性不变,否则将候选目标网格gm,n设 为背景网格:gm,n[4]=0。

第五步,连通域判决

1.连通区域类圆度判决

经过局部二值模式特征判决后,设候选目标网格的连通区域为y1个,连通区域集 合记为连通域Ry中的候选目标网格数目为ny(1≤ny≤p×q)个,若ny≤4,Ry为 污染连通区域,将Ry从集合中删除,并将Ry中所有候选目标区域的属性赋值为 0:{gm,n[4]=0|gm,n∈Ry}。否则进行连通区域类圆度判决,判决算法如第三步1中“连 通区域类圆度判决”一致。设通过判决的连通域有y2(0≤y2≤y1)个,用集合表示。 若y2≥1,转向第五步步骤2中“连通区域边缘直方图双峰度特征判决”,否则转向第 六步“边缘直方图特征判决”。

2.连通区域边缘直方图双峰特征判决

此步与第三步步骤2中“连通区域边缘直方图判决算法”一致,设集合通 过此判决的连通域个数为y3(0≤y3≤y2)个,用集合表示。若y3≥1,转向第五步

步骤3中“主方向对比判决”,否则转向第六步“边缘直方图判决”。

3.连通区域主方向对比判决

此步与第三步步骤3中“连通区域主方向对比判决算法”一致,将中所有 通过此级判决的连通域中所有候选目标网格定义为目标网格;否则不予理睬。设此级 判决通过的连通域个数为y4个,用集合表示,其对应的主方向为集合对 应的包络圆为集合

4.整体网格矩阵G属性判断

1)遍历整体网格矩阵G,若存在至少一个gm,n[4]=1(gm,n∈G),则转向第六步“边缘直 方图特征判决”,否则转向步骤2)。

2)若存在gm,n[4]=2(gm,n∈G),则转向第八步聚类生长,否则转向步骤3)。

3)提示“本图像中没有二维条码!”,并结束算法。

第六步,边缘直方图特征判决

1.候选目标网格边缘直方图特征提取

经过上述所有判决之后,设整体网格矩阵G中的一个候选目标网格 gm,n(gm,n[4]=1),其边缘直方图特征提取过程如下:

1)以8邻域区间联合边缘特性代替一个网格的边缘特性:

H(m,n)={H(m,n)(t)|H(m,n)(t)=Σ(m,n)I(m,n)H(m,n)(t)}t=015,其中集合I(m,n)为(m,n)模块的8邻域区 间。

2)通过相邻3区间加权法求出网格gm,n主方向区间:

mainDire(m,n)=max{0.6×H(m,n)(t)+0.4×(H(m,n)((t+15)%16)+H(m,n)((t+17)%16))}

设mainDirem,n所对应的区间t设为t2,t2为网格gm,n的主方向。

3)旋转平移使得t2处于的第5个直方图区间,得到旋转归一化的H(m,n)^={H(m,n)^(t)|H(m,n)^(t)=H(m,n)((t+20-t1)%16)}t=015,其中%为取余运算,即 为gm,n的边缘直方图特征。

遍历整体网格矩阵G中的所有候选目标网格,和1)~3)步算法一致,得到所有候选 目标网格的边缘直方图特征集合:

2边缘直方图特征判决器训练

1)利用第二步灰度直方图判决器训练所选出的选出n幅训练样本图像,并将这n幅训 练样本图像进行上述所有判决,然后选取n3个这些训练样本图像的候选目标网格 中的背景网格作为负训练样本,设为集合选取n3个这些训练样本图像的 条码区域网格作为正训练样本,设为集合

2)利用第六步步骤1中的候选目标网格边缘直方图特征提取算法,提取所有负训练 样本集合网格与正训练样本集合网格的边缘直方图特征,并将这2n3组 灰度直方图特征记为一个16×2n3的矩阵P3

3)设正样本对应的输出为(1,0),负样本对应的输出为(0,1),则矩阵P3对应的输出为一 个2×2n3的矩阵T3。利用matlab2008创建一个BP神经网络newff(),BP神经网络的训 练函数为“trainlm”,输入层到隐层节点的传递函数为“tansig”,隐层节点到输出层 的传递函数为“logsig”。每组输入元素的最大值和最小值为2n3×2的矩阵min max(P3), 并将最大训练次数定为1000,目标误差定为0.001,隐层节点定为30个。

4)将矩阵P3作为原始输入向量,矩阵T3作为输出向量,在matlab2008中利用BP神经 网络进行训练,得到输入层到隐层的一个30×16权值矩阵记为netIW13,一个30×1的 阈值向量记为netb13;隐层到输出层的一个2×30权值矩阵记为netIW23,一个2×1的 阈值向量记为netb23

3.边缘直方图特征判决

为一个候选目标网格gm,n的边缘直方图特征,将其代入训练结果计算对应的 判决输出V-EOHm,n

V-EOHm,n=logsig(netIW23×tansig(netIW13×H(m,n)^+netb13)+netb23)=(em,n,fm,n).同理计算 gm,n的八邻域内所有候选目标网格的判决输出,将这些判决输出求取平均值得到 如果则候选目标网格gm,n属性不变,否则将候选目标网格gm,n设为 背景网格:gm,n[4]=0。

第七步,连通域判决

1.连通区域类圆度判决

经过边缘直方图特征判决后,设候选目标网格的连通区域为z1个,连通区域集合 记为连通域Rz中的候选目标网格数目为nz(1≤nz≤p×q)个,若nz≤4,Rz为污 染连通区域,将Rz从集合中删除,并将Rz中所有候选目标区域的属性赋值为0: {gm,n[4]=0|gm,n∈Rz}。否则进行连通区域类圆度判决,判决算法如第三步步骤1中连 通区域类圆度判决一致。设通过判决的连通域有z2(0≤z2≤z1)个,用集合表示。 若z2≥1,转向第七步步骤2连通区域边缘直方图双峰度特征判决,否则转向第八步聚 类生长。

2.连通区域边缘直方图双峰特征判决

此步与第三步步骤2中连通区域边缘直方图判决算法一致,设集合通过此 判决的连通域个数为z3(0≤z3≤z2)个,用集合表示。若z3≥1,转向第七步步骤3 主方向对比判决,否则转向第八步聚类生长。

3.连通区域主方向对比判决

此步与第三步步骤3中连通区域主方向对比判决算法一致,将中所有通过 此级判决的连通域中所有候选目标网格定义为目标网格;否则不予理睬。设此级判决 通过的连通域个数为z4个,用集合表示,其对应的主方向为集合对应的 包络圆为集合

4.整体网格矩阵G属性判断

若存在gm,n[4]=2(gm,n∈G),则转向第八步“聚类生长”,否则提示“本图像中没有 二维条码!”,并结束算法。

第八步,聚类生长

对于第3步步骤3,第5步步骤3和第7步步骤3中通过连通域判决的与及其所对应的主方向与对应的包络圆与将这几个连通域合并,则有num=x4+y4+z4个连通域,设合并后的连通域 为集合其对应的主方向为集合对应的包络圆为集合聚类生长 的具体过程如下:

1)对于连通域为集合中的一个连通域Rx,以其对应的包络圆为基础,以长度为一次生长步伐,以方向集中的8个方向分别 生长。

2)设θ(θ∈D)方向一次生长后的包络圆为Cθ′,计算区域的16区间边缘梯 度方向直方图和计算过程与5.3.2连通域边缘直方图双峰 特征判决一致。求取欧式距离:DISθ=[Σt=015(HCRx(t)-HCθ-CRx(t))2]12.

3)DISθ′=min{DISθ}所对应的生长方向θ′设为最佳生长方向,求取区域的主方 向,设为求取区域的边缘直方图双峰特征,设为求取算法 与第三步步骤2连通域边缘直方图双峰特征判决一致。然后求取区域的主方 向对比特征,设为求取算法与第三步步骤3中“连通域主方向对比判决” 一致。如果与连通域Rx的主方向差异小于或等于1个区间,并且此区域的 双峰平均峰度值主方向对比则此次生长有效,包 络圆Cθ′为新的生长基础,转向步骤2)继续执行;否则生长结束,包络圆Cθ′为最 终Rx条码区域的包络区间。

4)重复步骤1)~3)的过程,直至集合中的连通区域全部生长完毕,则整个算 法结束。

本发明的有益效果是:本发明对于生锈腐蚀、高反光、强金属纹理干扰和磨损划 痕干扰等金属上的二维条码都有较高的定位率。码区面积与定位区域面积比在80%以 上,误定位率在10%以下。对于640*512pix输入图像,背景相对简单金属上的二维条 码图像条码定位时间控制在300毫秒以内,背景复杂的控制在700ms以内。

下面结合附图和实施例对本发明进一步说明。

附图说明

图1是复杂金属背景上Datamatrix条码定位方案总过程;

图2是连通区域判决总过程;

图3是像素的3×3邻域关系;

图4是聚类生长示意图;

图5是生锈腐蚀金属背景上二维条码定位总过程实例;

图6是高光金属背景上二维条码定位总过程实例;

图7是实例3磨损污染金属背景上二维条码定位总过程实例;

图8是纹理干扰金属背景上二维条码定位总过程实例。

图9是本专利训练样本图像。

具体实施方式

本发明处理的思路总过程如图1所示。本专利选取的金属背景上的二维条码图 像大小都为640*512pix,并且是8位bmp位图。选取的网格划分方式为25×25。

本发明选取的训练样本图像在图9中,共分为生锈腐蚀图像样本集、磨损污染 样本集、高光干扰样本集、纹理干扰样本集与其他金属背景样本集五类共49个样 本。利用这些样本进行灰度直方图判决器训练得到神经网络的权值和阈值分别为:

netIW11[7][4]={{-0.3151,-0.4885,0.8862,2.3121},

{0.8582,0.5524,-0.1810,2.6384},

{-0.5972,0.0804,-2.6160,1.3672},

{0.6454,-0.5001,0.6810,1.2940},

{2.0087,-1.2588,1.6365,3.2549},

{-1.9809,0.7957,-1.3830,1.9440},

{-0.5432,-0.1976,0.3482,2.3931}};

netb11[7]={0.6426,-4.8604,1.3401,-0.2909,-4.8625,-2.4628,-7.2560};

netIW21[2][7]={{-2.7783,0.9347,-2.7844,-0.2434,-2.5359,1.7896,1.3230}, {2.6645,1.5613,2.6828,0.7603,3.0605,-0.9568,0.0071}};

netb21[2]={1.5182,-2.9834};

利用这些样本进行局部二值模式特征训练得到神经网络的权值和阈值分别为:

netIW12[20][9]{{-0.6170,-0.3467,0.7593,-0.2712,0.8651, 0.5034,-0.6561,-0.2894,-0.5931},

{6.2995,2.8314,2.6907,3.0877,2.9534,-3.6891,-6.5901,-6.2816,4.1343},

{-0.0714,-1.9001,-0.4937,6.5905,-6.3193,-0.5119,-5.3241,-2.4313,3.7860},

{0.1928,0.4539,0.5413,0.9546,-1.1948,-0.5535,-0.3812,-0.8110,-0.3168},

{-0.4323,-0.7869,-0.8991,0.9559,-0.6570,-0.0218,-0.5348,0.2561,-0.5919},

{0.2375,1.1744,-0.7722,0.0701,-0.6701,-0.2794,0.4763,0.8016,0.6907},

{0.1015,-1.7651,-1.5890,-5.4756,-1.7811,-0.8864,-0.6750,-0.4881,-0.2721},

{-0.6856,-0.1585,0.3862,-0.2305,-0.0121,0.4997,-0.7410,0.6312,1.0244},

{-0.8497,0.9589,0.3476,0.5914,0.8593,-0.4004,-0.6429,-1.2195,0.5262},

{-0.4205,-0.1730,1.0438,1.7138,0.9458,0.8538,-0.4652,0.4363,1.4716},

{-0.8317,0.5822,0.0797,-0.8096,-0.4793,-1.1663,0.2963,-0.6217,-0.7806},

{0.0803,1.0124,0.5137,0.7087,-1.1883,-0.0448,0.5817,0.8506,0.0647},

{-0.2346,0.4782,-1.0064,-0.4772,0.0050,0.1345,1.9343,1.6257,-0.9444},

{0.6322,0.1322,4.6546,-0.3137,-2.6893,5.3287,-3.0266,-4.9926,-0.3041},

{-0.5941,-0.0632,0.8365,0.5958,1.0047,-0.6804,0.1163,-0.7899,0.3968},

{1.2046,2.6301,-1.3202,-0.0873,2.1035,3.7536,-1.8512,-2.3187,6.1514},

{1.7596,3.5984,0.7113,7.4150,3.5782,3.3232,-0.3202,0.5698,0.9940},

{-0.3461,-1.5541,-0.6275,-3.5615,-2.4417,-2.5626,-0.2599,-0.1485,0.5301},

{0.2707,-0.9905,-0.6711,-0.3330,-0.3692,0.4693,-0.2237,0.6021,1.0115},

{-0.9569,-0.6176,-1.2488,0.3147,1.8768,0.8751,0.5952,0.4645,0.5218}};

netb12[20]={2.2008,1.1453,4.6117,-1.3231,3.3877,-1.2034,2.1627,2.6771,1.4627,0.0312,2.1 650,-1.8130,-0.4764,0.3808,-2.3399,-4.0442,-5.5177,1.6658,2.5828,-2.3094};

netIW22[2][20]={{1.2432,9.1134,-5.5047,-0.4272,-0.7021,0.6141,-2.4405,-0.5836,-1.3114,-0 .2294,0.8826, 0.4035,-0.2855,6.0786,-1.1667,3.8466,6.0273,0.0103,-0.1650,-4.2136}, {0.4070,-14.2091,6.5465,-0.4711,1.2606,-0.7239,3.1623,-0.2268,2.5360,- 0.8196,0.2022,-0.8497,-3.0918,-10.1844,-1.2599,-5.2114,-6.5001,2.7271 ,1.6254,3.3732}};

netb22[2]={-2.6472,-2.2976};

利用这些样本进行边缘直方图特征训练得到神经网络的权值和阈值分别为:

netIW13[30][16]={{-0.0736,0.2601,1.2282,0.3609,-0.4553,-1.1975,0.1679,1.5524,0.5378,-0.4 162,-1.0983,-0.7512,0.6782,-1.0343,-0.9580,0.5629},

{-1.1438,-2.9848,0.6241,2.1850,0.3782,0.1812,1.7225,4.2748,1.0948,-0.8431,-1.4429,-1.33 38,-0.6446,-0.5596,-2.8660,2.0784},

{-0.2931,-2.5315,2.1839,-4.3208,2.9035,-1.9704,-0.1041,-6.1441,-0.7383,-1.1007,1.8682,2. 6147,4.2385,0.0316,6.9796,-1.1744},

{1.5130,-0.5243,-0.0408,-1.4524,1.8449,-0.8242,-0.2517,-1.2616,-0.6395,-1.5975,1.1214,-1 .0452,-0.5216,0.3862,1.7379,-1.6384},

{-0.8657,1.2463,1.0671,-1.2419,-0.7338,-0.7057,0.1014,1.4739,0.9421,0.6150,0.4097,-0.50 79,0.2319,-0.5492,-1.2478,-1.1216},

{-0.4469,-1.3009,1.3526,-3.4262,2.9972,0.0541,-0.3177,-1.5273,-1.3001,-1.5846,1.4133,1.9 745,1.9132,-0.9410,2.6586,-0.8855},

{-1.2790,1.3285,0.5732,1.0217,-0.7281,-0.1358,-0.6166,0.8008,1.5387,-0.7235,-0.9457,-0.9 864,0.3667,-0.2525,-1.6190,1.0465},

{-0.0014,-0.1741,-0.3366,-1.5988,1.7568,0.1303,0.9374,0.5999,1.0715,0.8630,-0.7938,0.89 24,1.5617,0.1506,1.8160,-0.1492},

{-0.4430,-0.7681,1.1152,0.3161,-0.9704,-0.5335,-0.1033,0.5439,0.7663,0.3790,-0.7318,-0.9 106,-0.5562,1.0448,1.3113,-1.0085},

{1.4577,-0.7252,-0.9986,0.4397,0.3055,0.9164,0.4249,1.4203,-0.2769,0.9761,0.0943,1.322 1,0.6904,0.3394,0.4674,-0.5748},

{-0.5777,-0.8331,-0.9062,-0.6977,-1.1372,-1.0094,0.2471,-0.1827,-1.0608,1.1477,0.9246,0. 3736,0.8958,-0.2330,-1.1831,-0.8166},

{-0.9281,0.2497,-0.7140,-0.3034,-0.6601,-0.4896,-1.1498,-0.9500,0.4072,0.4656,0.3013,-1. 3487,1.4538,-0.1144,1.4685,-0.3881},

{-1.2092,-0.7912,-0.5670,0.8734,-0.5204,0.1687,-0.8003,1.5790,1.8635,-1.3589,-0.6502,-0. 3291,-0.8049,-1.7373,-0.1511,0.4780},

{-1.0266,-1.1446,-1.1589,0.7568,-0.9189,-1.0376,-0.4785,1.3319,-0.1797,-0.0179,0.5318,0. 2209,-1.1121,-0.1591,-1.1382,0.6516},

{0.9336,-0.5575,-1.0744,1.1480,-0.2888,1.6254,-1.0451,1.2709,-0.8665,-0.6930,-1.2110,0.1 751,-1.1859,-1.0193,-1.1980,-1.0920},

{1.1511,-0.9374,-0.6610,0.1828,-0.0887,-0.2980,0.8455,-1.4520,1.4343,0.4838,-0.7415,-0.9 332,-0.6010,-0.0986,0.8819,-0.8587},

{0.9752,0.2877,0.7072,-0.6294,0.7407,1.2313,0.7577,-0.7762,-0.8780,-0.3135,0.2411,0.617 3,1.0899,0.8188,-0.8012,1.2437},

{0.4576,1.3638,-0.7272,4.3106,-4.4526,2.5284,1.6061,6.6231,0.2642,2.6132,-1.8590,-1.728 3,-3.5158,-0.4543,-6.8420,1.3607},

{1.7106,12.2901,-2.2533,3.4622,-5.9383,2.3186,1.5392,-1.5017,-5.8343,6.3238,1.5539,-1.1 593,-6.4843,-6.3084,-3.0877,-2.4300},

{0.1340,1.2097,-1.7293,2.3186,-4.3722,1.3950,1.1130,5.5813,2.7657,2.6440,0.9435,-0.397 7,-2.6608,-1.7675,-4.7483,-0.7864},

{-0.5447,0.3272,-0.9275,-0.9049,-0.0313,-0.8680,-0.9661,-0.9565,0.6218,-0.3429,1.0342,1. 2158,-1.1316,-1.2363,0.4997,-0.1027},

{0.4701,-0.9644,0.5088,0.9879,-1.4685,0.9054,-0.6096,3.2988,1.2556,1.0985,-1.4352,-1.40 66,-0.9310,-0.6164,-3.0248,0.5024},

{0.9535,-1.3575,-0.8247,-0.9854,0.9791,-0.9715,-0.2457,-0.7633,0.1521,-1.2810,-0.5648,-0 .5209,0.7784,-1.0380,-0.0058,0.7350},

{0.7222,-0.9026,-1.2331,1.0008,0.0789,-0.2420,-1.1695,-1.0995,0.2506,0.7529,-0.3717,-1.2 338,-0.8657,-0.3470,-0.9093,-0.7746},

{-1.2887,-3.5352,0.5355,3.0652,-1.0509,0.9233,1.5094,6.0641,2.0652,0.8563,-2.3061,-2.15 26,-1.5527,-0.8746,-3.7790,3.2897},

{-0.9093,-0.0781,1.2090,1.0791,0.6534,0.5081,-0.0028,1.0088,0.4805,-1.1797,-0.8086,1.20 40,1.2395,-0.5172,0.1278,-0.6822},

{-1.2523,-2.0325,-1.2709,4.6442,-4.9273,2.3199,0.0898,7.7600,3.7639,1.1564,-0.1910,-3.0 940,-2.4165,1.2173,-5.3914,2.9637},

{-0.2077,0.7566,-0.8514,-0.6139,-1.0677,-0.6129,-1.3326,1.1468,0.7780,1.1562,0.4760,-0.0 009,0.4444,0.7831,0.8272,1.2280},

{-0.5854,-0.1636,-0.1682,-2.8542,1.0034,-2.4972,0.4870,-3.2327,-1.8714,-1.6851,0.6983,0. 1297,2.3192,1.5243,2.6380,-0.5348},

{-1.3215,-0.8575,-0.7621,-0.5717,0.1292,0.0593,-0.4723,0.1920,1.2927,1.3192,0.3721,0.99 64,0.3107,1.1501,-1.2659,-0.5278}};

netb13[30]={{2.5504,0.1664,-0.1777,-0.0795,0.8794,-0.1832,0.4453,-1.1503,1.0951,-3.3357 ,2.8003,2.2610,0.6894,2.6520,0.8059,1.4653,-3.0432,-0.0001,-2.4379,-0.0929,2. 1441,0.1824,3.6680,4.5617,0.3355,-3.2645,0.1891,-3.1638,0.2587,-1.7864};

netIW23[2][30]={{-1.8003,-4.9011,8.3382,1.8284,-1.1428,4.6219,-2.1194,2.4337,-0.4646,0.5 278,-1.3726,-0.6989,-1.9654,-0.7831,-1.7815,0.0403,0.5228,-9.0118,-15.9740,-7.0004,-0.98 21,-3.6813,-1.0615,-1.1740,-7.8725,1.7593,-9.3978,0.5530,4.4504,0.0222},{0.5067,5.5227, -8.9438,-3.0613,1.2609,-4.3901,1.4456,-1.5482,0.2018,-0.4419,0.6373,1.0805,1.8179,0.385 5,2.2246,1.2395,-0.6419,8.6978,16.0140,6.9181,0.4016,3.3614,1.8293,1.8505,7.1044,-1.29 42,9.6712,-1.2813,-4.3931,-0.7361}};

netb23[2]={1.7664,-1.9934};

实例1:生锈腐蚀金属背景上二维条码定位

本实例所处理的图像如图5(a)所示,二维条码处在一个深度生锈腐蚀污染的金 属背景区域。

1.首先将图5(a)进行预处理,利用第二步中“预处理图像算法”,首先划分成25×25的 网格。然后为了达到光照无关化,将每个网格进行16灰度级重置,因为小范围内 可以看成是光照均匀的,所以根据每个网格的最大最小灰度范围重置完各网格后, 图像可近似认为是光照无关的。然后将最大最小灰度差小于17的网格置为背景区 域。效果如图5(b)所示,已判决背景区域在图像中用黑色区域表示。

2.灰度直方图特征是一个相对较简单的特征。它只能描述灰度的整体分布,无法描 述像素之间的关联,所以描述的精确度较低。但它是大小无关且旋转无关的,又 通过16灰度级重置各网格后可以达到光照无关,并且算法简单速度快,所以本文 选取它作为第一级判决算子。利用第二步1中“候选目标网格灰度直方图特征提 取”算法,提取出图5(b)中所有候选目标网格灰度直方图特征,利用以netIW11[7][4], netb11[7]、netIW21[2][7]与netb21[2]为权值和阈值的BP神经网络进行判决,判决算 法如第二步3中“灰度直方图判决”所示。判决结果如图5(c)所示,已判决背景区 域在图像中用黑色区域表示。

3.由于在每一级判决之后可能会存在性质良好的连通区域为码区,如果不予判断而 直接进行下一级网格判决则:1、增加运算成本,增加算法运算时间。2、可能破 坏存在的优良的目标连通区域,因为后续的判决算法很有可能将其中的目标网格 判决为背景网格。所以本专利在每级判决后增加一步“连通区域判决”,以检测可 能存在的条码区域。如5.5连通区域判决算法所示,首先需要进行类圆度检测,因 为二维条码为正方形区域,如果某个连通区域为潜在的条码区域时,首先需保证 它具有一定的类圆度。然后因为条码区域的边缘有两个主方向并且是相互垂直的, 所以也需要有一定的双峰度与较接近的主方向对比。连通域判决过程示意图如图2 所示。本实例中经过灰度直方图判决后具有两个连通区域,如图5(c)所示,其中连 通域1:未通过类圆度检测;连通域2:未通过类圆度检测。

4.局部二模式特征计算复杂度低、描述能力强、不受图片明暗程度的影响,也不受 旋转的影响,并且此特征主要描述小区域内像素与像素之间的关联,所以本文选 取局部二模式特征作为第二级判决。本发明选取的局部二值特征描述的是像素的 3×3邻域关系,如图3所示。利用第四步1中“候选目标网格局部二值模式特征提 取”算法,提取出图5(c)中所有候选目标网格局部二值模式特征,利用以 netIW12[20][9],netb12[20]、netIW22[2][20]与netb22[2]为权值和阈值的BP神经网络进 行判决,判决算法如第四步3中“局部二值模式特征判决所”示。判决结果如图 5(d)所示,已判决背景区域在图像中用黑色区域表示。

5.本实例通过实例局部二值模式特征判决后只剩下一个连通域,如图5(d)所示,此连 通域1:未通过类圆度检测。

6.灰度直方图和局部二值模式都是对图像灰度值纹理分布的一种描述,而事实上对 于二维条码图像来说,边缘信息是更重要的一种纹理,因为DM码区域就是由相 互垂直的边缘组成,所以本文选取边缘直方图作为最后一级判决。由于边缘梯度 方向直方图具有光照变化不敏感性,大小尺度无关性及具有较高的描述能力,所 以本专利选取它作为第三级判决。利用第六步1中“候选目标网格边缘直方图特 征提取”算法,提取出图5(d)中所有候选目标网格边缘直方图特征,利用以 netIW13[30][16],netb13[30]、netIW23[2][30]与netb23[2]为权值和阈值的BP神经网络 进行判决,判决算法如第六步3中“边缘直方图特征判决”所示。判决结果如图 5(e)所示,已判决背景区域在图像中用黑色区域表示。

7.本实例通过边缘直方图特征判决后有两个连通域,如图5(e)所示,连通域1: 未通过连通区域边缘直方图双峰特征判决。连 通域2:连通区域判决,将其记为目标区域, 并且其对应的主方向

8.利用第八步中的聚类生长算法,将目标区域进行8方向生长,生长示意图如4所 示,最终生长结果如图5(f)所示。

本实例最终条码区域占定位的包络区域的面积为86.5%,总运算时间为576ms, 共经过3级判决。

实例2:高光金属背景上二维条码定位

本实例处理图像为图6(a)所示,描述过程与“实例1:生锈腐蚀金属上二维条 码定位”一致,这里就不重复表述,用表格列出其关键数据:

本实例最终条码区域占定位的包络区域的面积为89.4%,总运算时间为306ms, 共经过2级判决。

实例3:磨损污染金属背景上二维条码定位

本实例处理图像为图7(a)所示,用表格列出其关键数据:

本实例最终条码区域占定位的包络区域的面积为88.7%,总运算时间为290ms, 共经过2级判决。

实例4:纹理干扰金属背景上二维条码定位

本实例处理图像为图8(a)所示,用表格列出其关键数据:

本实例最终条码区域占定位的包络区域的面积为90.6%,总运算时间为296ms, 共经过2级判决。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号