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

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

Info

Publication number
CN102346850B
CN102346850B CN 201110310325 CN201110310325A CN102346850B CN 102346850 B CN102346850 B CN 102346850B CN 201110310325 CN201110310325 CN 201110310325 CN 201110310325 A CN201110310325 A CN 201110310325A CN 102346850 B CN102346850 B CN 102346850B
Authority
CN
China
Prior art keywords
grid
judgement
candidate target
edge
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201110310325
Other languages
English (en)
Other versions
CN102346850A (zh
Inventor
何卫平
王伟
雷蕾
李文涛
林清松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN 201110310325 priority Critical patent/CN102346850B/zh
Publication of CN102346850A publication Critical patent/CN102346850A/zh
Application granted granted Critical
Publication of CN102346850B publication Critical patent/CN102346850B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

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

Description

复杂金属背景下DataMatrix条码区域定位方法
技术领域
本发明涉及对各种复杂金属背景上的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 = g 00 g 01 . . . g 0 ( q - 1 ) g 10 g 1 . . . g 1 ( q - 1 ) . . . . . . . . . . . . g ( p - 1 ) 0 g ( p - 1 ) 1 . . . g ( p - 1 ) ( q - 1 ) p × q
其中,gm,n(0≤m<p,0≤n<q)代表第m行n列网格,并定义gm,n数组为: g m , n = [ wm p , w ( m + 1 ) p , hn q , h ( n + 1 ) q , t ] , 其中 g m , n [ 0 ] = wm p , g m , n [ 1 ] = w ( m + 1 ) p , g m , n [ 2 ] = hn q g m , 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个节点的数组
Figure BDA0000098556600000032
其中m代表节点: { Area [ m ] } m = 0 16 = [ V min , V min + V max - V min 16 , . . . , V min + 16 ( V max - V min ) 16 ] .
4)若Area[m]≤l≤Area[m+1](0≤m<16),则赋值iterater[l]=m,循环将
Figure BDA0000098556600000034
中的每个索引都赋上值。
5)再次遍历gm,n模块,对于pixi,j∈gm,n,重新赋像素值:pixi,j=iterater[l](pixi,j=l)。遍历G,利用16灰度级重置算法将其中的每个网格中的所有像素值重新赋值,得到新的重置后的图像A1
3.边缘特征提取
1)用BOM算法求取图像A1的灰度边缘:
Figure BDA0000098556600000035
A2是16灰度级图像A1的灰度边缘图像,
Figure BDA0000098556600000036
为灰度膨胀,Θ为灰度腐蚀,g为半径为1的圆形结构元素。
2)对于像素点pixi,j∈A1,求取其边缘强度函数:
Figure BDA0000098556600000037
其中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 ) > T 0 e ( i , j ) ≤ T , 本发明取T=80。若则认为其对应的像素点为非边缘点。
循环求取A1中所有像素点的边缘强度,将其记录在缓存区E[w×h]中。
3)对于像素点
Figure BDA00000985566000000310
求取边缘方向函数:循环求取A1中所有满足
Figure BDA0000098556600000041
的像素点的边缘方向,并将其记录在缓存区θ[w×h]中。
4)对于gm,n[4]=1的候选目标网格gm,n,求取其边缘方向累计函数Hm,n
H m , n = { H m , n ( t ) | H m , n ( t ) = Σ ( i , j ) ∈ g m , n e ^ ( i , j ) δ ( θ ( i , j ) - t ) } t = 0 15 , 其中t∈[0,1,5],代表着
Figure BDA0000098556600000043
这16个区间,δ(θ(i,j)-t)函数为:
δ ( θ ( i , j ) - t ) = 1 θ ( i , j ) ∈ [ - π 2 + π 16 t , - π 2 + π 16 ( t + 1 ) ] 0 θ ( i , j ) ∉ [ - π 2 + π 16 t , - π 2 + π 16 ( t + 1 ) ]
循环整体网格矩阵G,得到所有候选目标网格的直方图特征集合:
HG={Hm,n|gm,n∈G&&gm,n[4]=1}。
第二步,灰度直方图判决
1.候选目标网格灰度直方图特征提取
设gm,n为图像A1中的一个候选目标网格,则gm,n的灰度直方图特征提取如下:
1)统计gm,n中所有像素点,得到一组灰度直方图记为
Figure BDA0000098556600000045
其中p(x)代表gm,n中像素值为x的像素点的个数。然后将
Figure BDA0000098556600000046
按照其最大值归一化,得到归一化的灰度直方图记为
2)计算直方图平均灰度: μ = M 1 = Σ i = 0 15 x p ( x ) ‾ .
3)计算直方图方差: σ 2 = Σ i = 0 15 ( x - μ ) 2 p ( x ) ‾ .
4)计算直方图偏度: S = Σ i = 0 15 ( x - μ ) 3 p ( x ) ‾ / ( σ 2 ) 3 .
5)计算直方图的熵:
Figure BDA00000985566000000411
最后得到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个这些训练样本图像的非条码区域的网格即背景网格作为负训练样本,设为集合
Figure BDA0000098556600000051
从这n幅训练样本图像中选取n1个这些训练样本图像的条码区域网格作为正训练样本,设为集合
Figure BDA0000098556600000052
n1=80。
2)利用上述的灰度直方图特征提取算法,提取所有负训练样本集合网格
Figure BDA0000098556600000053
与正训练样本集合网格
Figure BDA0000098556600000054
的灰度直方图特征,将这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的八邻域内所有候选目标网格的判决输出,将这些判决输出求取平均值得到
Figure BDA0000098556600000055
如果
Figure BDA0000098556600000056
则候选目标网格gm,n属性不变,否则将候选目标网格gm,n设为背景网格:gm,n[4]=0。
第三步,连通域判决
1.连通区域类圆度判决
经过灰度直方图判决后,设图像A1中候选目标网格的连通区域为x1个,连通区域集合记为连通域Rx中的候选目标网格数目为nx(1≤nx≤p×q)个,若nx≤4,Rx为污染连通区域,将Rx
Figure BDA0000098556600000062
集合中删除,并将Rx中所有候选目标区域的属性赋值为0:{gm,n[4]=0|gm,n∈Rx}。否则进行连通区域类圆度判决,过程如下:
1)对于集合
Figure BDA0000098556600000063
中的一个连通域Rx,首先求取其质心位置(x′,y′):
x ′ = Σ g m , n ∈ R x m n x , y ′ = Σ g m , n ∈ R x n n x
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)求取质心到
Figure BDA0000098556600000067
的最短和最长距离:
min L = min { ( x ′ - x ^ ) 2 + ( y ′ - y ^ ) 2 } max L = max { ( x ′ - x ^ ) 2 + ( y ′ - y ^ ) 2 } g x ^ , y ^ ∈ R ^ x , 并得到边缘到质心的距离集合: L = l | l = ( x ′ - x ^ ) 2 + ( y ′ - y ^ ) 2 g x ^ , y ^ ∈ R ^ x , . 然后设圆半径r,计算边缘点到圆周上的平均误差最小圆: E best = min { Σ l ∈ L | l - r | / sizeof ( R ^ x ) | min L ≤ r ≤ max L } ,
Figure BDA00000985566000000611
代表
Figure BDA00000985566000000612
集合大小。设Ebest对应的圆半径为rbest,对应的包络圆记为
Figure BDA00000985566000000613
判断类圆度误差与半径之比是否小于某个阈值:本发明中取T1=0.24。若小于则判定为类圆的连通域,否则判定为待定区域。
4)重复步骤1)~3)的过程,将中的所有连通域进行类圆度判决,设通过判决的连通域有x2(0≤x2≤x1)个,用集合
Figure BDA00000985566000000616
表示。若x2≥1,转向第三步的步骤2“连通区域边缘直方图双峰度特征判决”,否则转向第四步“局部二值特征判决”。
2.连通区域边缘直方图双峰特征判决
1)对于集合中的一个连通域Rx,计算它的整体边缘直方图: H Rx = { H Rx ( t ) | H Rx ( t ) = Σ g m , n ∈ R x H m , n ( t ) t = 0,1,2 , . . . 15 } ;
2)求出Rx整体边缘直方图的相邻3区间加权最大值:
mainDire R x = max { 0.6 H R x ( t ) + 0.4 ( H R x ( ( t + 15 ) % 16 ) + H R x ( ( t + 17 ) % 16 ) ) }
Figure BDA0000098556600000074
所对应的区间t设为为连通域Rx的主方向。
3)旋转平移HRx,使得
Figure BDA0000098556600000076
处于HRx的第5个直方图区间,得到旋转归一化的
Figure BDA0000098556600000077
H ‾ Rx = { H ‾ Rx ( t ) | H ‾ Rx ( t ) = H Rx ( ( t + 20 - t R x ) % 16 ) } , 其中%为取余运算。
4)主方向
Figure BDA0000098556600000079
移至第5个区间,由于Datamatrix码的边缘垂直特性,另一主方向被移至13区间附近。计算连通域Rx的双峰特征值
Figure BDA00000985566000000710
g R x = Σ t = 0 8 ( 4 - t ) 2 ( H ‾ R x ( 4 ) - H ‾ R x ( t ) ) 2 + Σ t = 9 15 ( 12 - t ) 2 ( H ‾ R x ( 12 ) - H ‾ R x ( t ) ) 2 2 ;
5)与步骤1)~4)过程一样,循环求取
Figure BDA00000985566000000712
中所有连通域的双峰特征值,若
Figure BDA00000985566000000713
标记为通过连通区域边缘直方图双峰特征判决,为候选目标区域,否则为未通过,标记为通过连通区域边缘直方图双峰特征判决。设通过此判决的连通域个数为x3(0≤x3≤x2)个,用集合
Figure BDA00000985566000000714
表示。若x3≥1,转向步骤3“连通域主方向对比判决”,否则转向第四步“局部二值特征判决”。
3.连通区域主方向对比判决
1)对于集合
Figure BDA00000985566000000715
中的一个连通域Rx,计算它的主方向对比
Figure BDA00000985566000000716
c R x = max { H &OverBar; R x ( 3 ) , H &OverBar; R x ( 4 ) , H &OverBar; R x ( 5 ) } max { H &OverBar; R x ( 11 ) , H &OverBar; R x ( 12 ) , H &OverBar; R x ( 13 ) } , 0.56 < c R x < 1.8 , 则Rx为目标区域,将Rx中的所有候选目标网格定义为目标网格{gm,n[4]=2|gm,n∈Rx};否则Rx为未通过连通域主方向对比判决。
2)循环判断集合
Figure BDA00000985566000000719
中的所有连通域,并重复上一步运算直至全部判断完。设此级判决通过的连通域个数为x4个,用集合
Figure BDA00000985566000000720
表示,其对应的主方向为集合
Figure BDA00000985566000000721
对应的包络圆为集合
Figure BDA00000985566000000722
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),建立一个局部描述特征数组
Figure BDA0000098556600000081
并且pixi,j的8邻域像素为数组:
{ I i , j [ x ] } x = 0 7 = { pix i , j + 1 , pix i + 1 , j + 1 , pix i + 1 , j , pix i + 1 , j - 1 , pix i , j - 1 , pix i - 1 , j - 1 , pix i - 1 , j , pix i - 1 , j + 1 }
2)给局部描述特征数组
Figure BDA0000098556600000083
赋值:
Figure BDA0000098556600000084
其中函数s(x)为: s ( x ) = 1 , x &GreaterEqual; 0 0 , x < 0 .
3)求取
Figure BDA0000098556600000086
的泛化值vi,j
v i , j = &Sigma; x = 0 6 | temp i , j [ x + 1 ] - temp i , j [ x ] | + | temp i , j [ 7 ] - temp i , j [ 0 ] |
若vi,j≤2,则像素pixi,j的局部二值模式特征值为:否则lbpi,j=9。
4)与1)~3)步算法一致,求取gm,n中所有像素点的局部二值模式特征值,并统计叠加,得到网格gm,n的局部二值模式特征LBPm,n,表示如下: LBP m , n = { LBP m , n [ x ] | LBP m , n [ x ] = &Sigma; pix i , j &Element; g m , n &delta; ( lbp i , j - x ) sizeof ( g m , n ) } x = 0 8 , 其中LBPm,n[x]为gm,n中所有像素点局部二值模式特征值为x的频率,sizeof(gm,n)代表gm,n中像素点的数量,δ(x)函数表示为: &delta; ( x ) = 1 x = 0 0 x &NotEqual; 0 .
遍历整体网格矩阵G中的所有候选目标网格,和1)~4)步算法一致,得到所有候选目标网格的局部二值模式特征集合:LBP={LBPm,n|gm,n∈G&&gm,n[4]=1}。
2.局部二值模式特征判决器训练
1)利用第二步步骤2中“灰度直方图判决器训练”所选出的n幅训练样本图像,将这n幅训练样本图像进行上述所有步骤运算,然后选取n2=80个这些训练样本图像的候选目标网格中的背景网格作为负训练样本,设为集合
Figure BDA0000098556600000091
选取n2个这些训练样本图像的条码区域网格作为正训练样本,设为集合
Figure BDA0000098556600000092
2)利用第四步步骤1中的候选目标网格局部二值模式特征提取算法,提取所有负训练样本集合网格
Figure BDA0000098556600000093
与正训练样本集合网格
Figure BDA0000098556600000094
的局部二值模式特征,并将这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的八邻域内所有候选目标网格的判决输出,将这些判决输出求取平均值得到
Figure BDA0000098556600000095
如果
Figure BDA0000098556600000096
则候选目标网格gm,n属性不变,否则将候选目标网格gm,n设为背景网格:gm,n[4]=0。
第五步,连通域判决
1.连通区域类圆度判决
经过局部二值模式特征判决后,设候选目标网格的连通区域为y1个,连通区域集合记为
Figure BDA0000098556600000101
连通域Ry中的候选目标网格数目为ny(1≤ny≤p×q)个,若ny≤4,Ry为污染连通区域,将Ry
Figure BDA0000098556600000102
集合中删除,并将Ry中所有候选目标区域的属性赋值为0:{gm,n[4]=0|gm,n∈Ry}。否则进行连通区域类圆度判决,判决算法如第三步1中“连通区域类圆度判决”一致。设通过判决的连通域有y2(0≤y2≤y1)个,用集合
Figure BDA0000098556600000103
表示。若y2≥1,转向第五步步骤2中“连通区域边缘直方图双峰度特征判决”,否则转向第六步“边缘直方图特征判决”。
2.连通区域边缘直方图双峰特征判决
此步与第三步步骤2中“连通区域边缘直方图判决算法”一致,设集合通过此判决的连通域个数为y3(0≤y3≤y2)个,用集合
Figure BDA0000098556600000105
表示。若y3≥1,转向第五步
步骤3中“主方向对比判决”,否则转向第六步“边缘直方图判决”。
3.连通区域主方向对比判决
此步与第三步步骤3中“连通区域主方向对比判决算法”一致,将
Figure BDA0000098556600000106
中所有通过此级判决的连通域中所有候选目标网格定义为目标网格;否则不予理睬。设此级判决通过的连通域个数为y4个,用集合
Figure BDA0000098556600000107
表示,其对应的主方向为集合
Figure BDA0000098556600000108
对应的包络圆为集合
Figure BDA0000098556600000109
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 ) &OverBar; = { H ( m , n ) &OverBar; ( t ) | H ( m , n ) &OverBar; ( t ) = &Sigma; ( m &prime; , n &prime; ) &Element; I ( m , n ) H ( m &prime; , n &prime; ) ( t ) } t = 0 15 , 其中集合I(m,n)为(m,n)模块的8邻域区间。
2)通过相邻3区间加权法求出网格gm,n主方向区间:
mainDire ( m , n ) = max { 0.6 &times; H ( m , n ) &OverBar; ( t ) + 0.4 &times; ( H ( m , n ) &OverBar; ( ( t + 15 ) % 16 ) + H ( m , n ) &OverBar; ( ( t + 17 ) % 16 ) ) }
设mainDirem,n所对应的区间t设为t2,t2为网格gm,n的主方向。
3)旋转平移
Figure BDA0000098556600000113
使得t2处于的第5个直方图区间,得到旋转归一化的
Figure BDA0000098556600000115
H ( m , n ) ^ = { H ( m , n ) ^ ( t ) | H ( m , n ) ^ ( t ) = H ( m , n ) &OverBar; ( ( t + 20 - t 1 ) % 16 ) } t = 0 15 , 其中%为取余运算,
Figure BDA0000098556600000117
即为gm,n的边缘直方图特征。
遍历整体网格矩阵G中的所有候选目标网格,和1)~3)步算法一致,得到所有候选目标网格的边缘直方图特征集合:
Figure BDA0000098556600000118
2边缘直方图特征判决器训练
1)利用第二步灰度直方图判决器训练所选出的选出n幅训练样本图像,并将这n幅训练样本图像进行上述所有判决,然后选取n3个这些训练样本图像的候选目标网格中的背景网格作为负训练样本,设为集合
Figure BDA0000098556600000119
选取n3个这些训练样本图像的条码区域网格作为正训练样本,设为集合
Figure BDA00000985566000001110
2)利用第六步步骤1中的候选目标网格边缘直方图特征提取算法,提取所有负训练样本集合网格
Figure BDA00000985566000001111
与正训练样本集合网格
Figure BDA00000985566000001112
的边缘直方图特征,并将这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.边缘直方图特征判决
Figure BDA0000098556600000121
为一个候选目标网格gm,n的边缘直方图特征,将其代入训练结果计算对应的判决输出V-EOHm,n
V - EOH m , n = log sig ( net IW 2 3 &times; tan sig ( net IW 1 3 &times; H ( m , n ) ^ + netb 1 3 ) + netb 2 3 ) = ( e m , n , f m , n ) . 同理计算gm,n的八邻域内所有候选目标网格的判决输出,将这些判决输出求取平均值得到
Figure BDA0000098556600000123
如果
Figure BDA0000098556600000124
则候选目标网格gm,n属性不变,否则将候选目标网格gm,n设为背景网格:gm,n[4]=0。
第七步,连通域判决
1.连通区域类圆度判决
经过边缘直方图特征判决后,设候选目标网格的连通区域为z1个,连通区域集合记为连通域Rz中的候选目标网格数目为nz(1≤nz≤p×q)个,若nz≤4,Rz为污染连通区域,将Rz
Figure BDA0000098556600000126
集合中删除,并将Rz中所有候选目标区域的属性赋值为0:{gm,n[4]=0|gm,n∈Rz}。否则进行连通区域类圆度判决,判决算法如第三步步骤1中连通区域类圆度判决一致。设通过判决的连通域有z2(0≤z2≤z1)个,用集合表示。若z2≥1,转向第七步步骤2连通区域边缘直方图双峰度特征判决,否则转向第八步聚类生长。
2.连通区域边缘直方图双峰特征判决
此步与第三步步骤2中连通区域边缘直方图判决算法一致,设集合
Figure BDA0000098556600000128
通过此判决的连通域个数为z3(0≤z3≤z2)个,用集合
Figure BDA0000098556600000129
表示。若z3≥1,转向第七步步骤3主方向对比判决,否则转向第八步聚类生长。
3.连通区域主方向对比判决
此步与第三步步骤3中连通区域主方向对比判决算法一致,将
Figure BDA00000985566000001210
中所有通过此级判决的连通域中所有候选目标网格定义为目标网格;否则不予理睬。设此级判决通过的连通域个数为z4个,用集合
Figure BDA0000098556600000131
表示,其对应的主方向为集合
Figure BDA0000098556600000132
对应的包络圆为集合
Figure BDA0000098556600000133
4.整体网格矩阵G属性判断
若存在gm,n[4]=2(gm,n∈G),则转向第八步“聚类生长”,否则提示“本图像中没有二维条码!”,并结束算法。
第八步,聚类生长
对于第3步步骤3,第5步步骤3和第7步步骤3中通过连通域判决的
Figure BDA0000098556600000136
及其所对应的主方向
Figure BDA0000098556600000137
对应的包络圆
Figure BDA00000985566000001310
Figure BDA00000985566000001311
Figure BDA00000985566000001312
将这几个连通域合并,则有num=x4+y4+z4个连通域,设合并后的连通域为集合其对应的主方向为集合
Figure BDA00000985566000001314
对应的包络圆为集合
Figure BDA00000985566000001315
聚类生长的具体过程如下:
1)对于连通域为集合中的一个连通域Rx,以其对应的包络圆
Figure BDA00000985566000001317
为基础,以长度为一次生长步伐,以方向集
Figure BDA00000985566000001319
中的8个方向分别生长。
2)设θ(θ∈D)方向一次生长后的包络圆为Cθ′,计算区域
Figure BDA00000985566000001320
的16区间边缘梯度方向直方图
Figure BDA00000985566000001321
Figure BDA00000985566000001322
计算过程与5.3.2连通域边缘直方图双峰特征判决一致。求取欧式距离: DIS &theta; = [ &Sigma; t = 0 15 ( H C R x ( t ) - H C &theta; &prime; - C R x ( t ) ) 2 ] 1 2 .
3)DISθ′=min{DISθ}所对应的生长方向θ′设为最佳生长方向,求取区域
Figure BDA00000985566000001324
的主方向,设为
Figure BDA00000985566000001325
求取区域
Figure BDA00000985566000001326
的边缘直方图双峰特征,设为
Figure BDA00000985566000001327
求取算法与第三步步骤2连通域边缘直方图双峰特征判决一致。然后求取区域
Figure BDA00000985566000001328
的主方向对比特征,设为求取算法与第三步步骤3中“连通域主方向对比判决”一致。如果与连通域Rx的主方向差异小于或等于1个区间,并且此区域的双峰平均峰度值
Figure BDA00000985566000001332
主方向对比
Figure BDA00000985566000001333
则此次生长有效,包络圆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.1650,-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.4162,-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.3338,-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.5079,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.9745,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.9864,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.8924,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.9106,-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.3221,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.1751,-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.9332,-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.6173,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.7283,-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.1593,-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.3977,-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.4066,-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.2338,-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.1526,-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.2040,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.0940,-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.0009,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.9964,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.5278,-1.3726,-0.6989,-1.9654,-0.7831,-1.7815,0.0403,0.5228,-9.0118,-15.9740,-7.0004,-0.9821,-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.3855,2.2246,1.2395,-0.6419,8.6978,16.0140,6.9181,0.4016,3.3614,1.8293,1.8505,7.1044,-1.2942,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:
Figure BDA0000098556600000191
未通过类圆度检测;连通域2:
Figure BDA0000098556600000192
未通过类圆度检测。
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:
Figure BDA0000098556600000193
未通过类圆度检测。
6.灰度直方图和局部二值模式都是对图像灰度值纹理分布的一种描述,而事实上对于二维条码图像来说,边缘信息是更重要的一种纹理,因为DM码区域就是由相互垂直的边缘组成,所以本文选取边缘直方图作为最后一级判决。由于边缘梯度方向直方图具有光照变化不敏感性,大小尺度无关性及具有较高的描述能力,所以本专利选取它作为第三级判决。利用第六步1中“候选目标网格边缘直方图特征提取”算法,提取出图5(d)中所有候选目标网格边缘直方图特征,利用以netIW13[30][16],netb13[30]、netIW23[2][30]与netb23[2]为权值和阈值的BP神经网络进行判决,判决算法如第六步3中“边缘直方图特征判决”所示。判决结果如图5(e)所示,已判决背景区域在图像中用黑色区域表示。
7.本实例通过边缘直方图特征判决后有两个连通域,如图5(e)所示,连通域1:
Figure BDA0000098556600000201
Figure BDA0000098556600000203
未通过连通区域边缘直方图双峰特征判决。连通域2:
Figure BDA0000098556600000204
Figure BDA0000098556600000206
连通区域判决,将其记为目标区域,并且其对应的主方向
Figure BDA0000098556600000207
8.利用第八步中的聚类生长算法,将目标区域进行8方向生长,生长示意图如4所示,最终生长结果如图5(f)所示。
本实例最终条码区域占定位的包络区域的面积为86.5%,总运算时间为576ms,共经过3级判决。
实例2:高光金属背景上二维条码定位
本实例处理图像为图6(a)所示,描述过程与“实例1:生锈腐蚀金属上二维条码定位”一致,这里就不重复表述,用表格列出其关键数据:
Figure BDA0000098556600000208
本实例最终条码区域占定位的包络区域的面积为89.4%,总运算时间为306ms,共经过2级判决。
实例3:磨损污染金属背景上二维条码定位
本实例处理图像为图7(a)所示,用表格列出其关键数据:
Figure BDA0000098556600000211
本实例最终条码区域占定位的包络区域的面积为88.7%,总运算时间为290ms,共经过2级判决。
实例4:纹理干扰金属背景上二维条码定位
本实例处理图像为图8(a)所示,用表格列出其关键数据:
Figure BDA0000098556600000212
本实例最终条码区域占定位的包络区域的面积为90.6%,总运算时间为296ms,共经过2级判决。

Claims (1)

1.一种复杂金属背景下DataMatrix条码区域定位方法,其特征在于包括下述步骤:
第一步,预处理图像
1.划分网格
设输入图像A的网格划分方式为p×q,宽度为w像素,高度为h像素,pixi,j代表现图像中i列j行像素点的像素值,则定义整体网格坐标矩阵G为:
G = g 00 g 01 &CenterDot; &CenterDot; &CenterDot; g 0 ( q - 1 ) g 10 g 11 &CenterDot; &CenterDot; &CenterDot; g 1 ( q - 1 ) &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; g ( p - 1 ) 0 g ( p - 1 ) 1 &CenterDot; &CenterDot; &CenterDot; g ( p - 1 ) ( q - 1 ) p &times; q
其中,gm,n代表第m行n列网格,0≤m<p,0≤n<q,并定义gm,n数组为: g m , n = [ wm p , w ( m + 1 ) p , hn q , h ( n + 1 ) q , t ] , 其中 g m , n [ 0 ] = wm p , g m , n [ 1 ] = w ( m + 1 ) p , g m , n [ 2 ] = hn q
Figure FDA00003202048400016
分别代表网格gm,n的横向最小值、横向最大值、纵向最小值和纵向最大值,并且gm,n为正方形区域;gm,n[4]=t代表网格gm,n的属性,t∈{0,1,2},其中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个节点的数组
Figure FDA00003202048400018
其中m代表节点:
{ Area [ m ] } m = 0 16 = [ V min , V min + V max - V min 16 , . . . , V min + 16 ( V max - V min ) 16 ] ;
4)若Area[m]≤l≤Area[m+1],0≤m<16,则赋值iterater[l]=m,循环将
Figure FDA000032020484000110
中的每个索引都赋上值;
5)再次遍历gm,n模块,对于pixi,j∈gm,n,重新赋像素值:pixi,j=iterater[l](pixi,j=l);
遍历G,利用16灰度级重置算法将其中的每个网格中的所有像素值重新赋值,得到新的重置后的图像A1
3.边缘特征提取
1)用BOM算法求取图像A1的灰度边缘:
Figure FDA000032020484000210
A2是16灰度级图像A1的灰度边缘图像,
Figure FDA000032020484000211
为灰度膨胀,Θ为灰度腐蚀,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)
e y ( i , j ) = ( pix i + 1 , j + 1 + 2 pix i , j + 1 + pix i - 1 , j + 1 ) - ( pix i + 1 , j - 1 + 2 pix i , j - 1 + pix i - 1 , j - 1 )
设定一个阈值T: e ^ ( i , j ) = e ( i , j ) e ( i , j ) > T 0 e ( i , j ) &le; T , T=80;若 e ^ ( i , j ) = 0 , 则认为其对应的像素点为非边缘点;
循环求取A1中所有像素点的边缘强度,将其记录在缓存区E[w×h]中;
3)对于像素点
Figure FDA00003202048400024
求取边缘方向函数: &theta; ( i , j ) = arctan [ e y ( i , j ) e x ( i , j ) ] ; 循环求取A1中所有满足
Figure FDA00003202048400026
的像素点的边缘方向,并将其记录在缓存区θ[w×h]中;
4)对于gm,n[4]=1的候选目标网格gm,n,求取其边缘方向累计函数Hm,n
H m , n = { H m , n ( t ) | H m , n ( t ) = &Sigma; ( i , j ) &Element; g m , n e ^ ( i , j ) &delta; ( &theta; ( i , j ) - t ) } t = 0 15 , 其中t∈[0,15],代表着
Figure FDA00003202048400028
这16个区间,δ(θ(i,j)-t)函数为:
&delta; ( &theta; ( i , j ) - t ) = 1 &theta; ( i , j ) &Element; [ - &pi; 2 + &pi; 16 t , - &pi; 2 + &pi; 16 ( t + 1 ) ] 0 &theta; ( i , j ) &NotElement; [ - &pi; 2 + &pi; 16 t , - &pi; 2 + &pi; 16 ( t + 1 ) ]
循环整体网格矩阵G,得到所有候选目标网格的直方图特征集合:
HG={Hm,n|gm,n∈G&&gm,n[4]=1};
第二步,灰度直方图判决
1.候选目标网格灰度直方图特征提取
设gm,n为图像A1中的一个候选目标网格,则gm,n的灰度直方图特征提取如下:
1)统计gm,n中所有像素点,得到一组灰度直方图记为
Figure FDA00003202048400031
其中p(x)代表gm,n中像素值为x的像素点的个数;然后将
Figure FDA00003202048400032
按照其最大值归一化,得到归一化的灰度直方图记为
Figure FDA00003202048400033
2)计算直方图平均灰度:
3)计算直方图方差: &sigma; 2 = &Sigma; i = 0 15 ( x - &mu; ) 2 p ( x ) &OverBar; ;
4)计算直方图偏度: S = &Sigma; i = 0 15 ( x - &mu; ) 3 p ( x ) &OverBar; / ( &sigma; 2 ) 3 ;
5)计算直方图的熵:
Figure FDA00003202048400037
最后得到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个这些训练样本图像的非条码区域的网格即背景网格作为负训练样本,设为集合
Figure FDA00003202048400038
从这n幅训练样本图像中选取n1个这些训练样本图像的条码区域网格作为正训练样本,设为集合
Figure FDA00003202048400039
n1=80;
2)利用上述的灰度直方图特征提取算法,提取所有负训练样本集合网格与正训练样本集合网格
Figure FDA000032020484000311
的灰度直方图特征,将这2n1组正负训练样本的的每组直方图特征作为行,共2n1组直方图所以有2n1列,所以得到一个4×2n1的矩阵P1
3)设正样本对应的输出为(1,0),负样本对应的输出为(0,1),则矩阵P1对应的输出为一个2×2n1的矩阵T1;利用matlab2008创建一个BP神经网络newff(),BP神经网络的训练函数为trainlm,输入层到隐层节点的传递函数为tansig,隐层节点到输出层的传递函数为logsig;每组输入元素的最大值和最小值为2n1×2的矩阵minmax(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=logsig(netIW21×tansig(netIW11×HISm,n+netb11)+netb21)=(am,n,bm,n);同理计算gm,n的八邻域内所有候选目标网格的判决输出,将这些判决输出求取平均值得到
Figure FDA00003202048400041
如果
Figure FDA00003202048400042
则候选目标网格gm,n属性不变,否则将候选目标网格gm,n设为背景网格:gm,n[4]=0;
第三步,连通域判决
1.连通区域类圆度判决
经过灰度直方图判决后,设图像A1中候选目标网格的连通区域为x1个,连通区域集合记为
Figure FDA00003202048400043
连通域Rx中的候选目标网格数目为nx个,1≤nx≤p×q,若nx≤4,Rx为污染连通区域,将Rx
Figure FDA00003202048400044
集合中删除,并将Rx中所有候选目标区域的属性赋值为0:{gm,n[4]=0|gm,n∈Rx};否则进行连通区域类圆度判决,过程如下:
1)对于集合
Figure FDA00003202048400045
中的一个连通域Rx,首先求取其质心位置(x',y'):
x &prime; = &Sigma; g m , n &Element; R x m n x , y &prime; = &Sigma; g m , n &Element; R x n n x
2)设Rx中的候选目标网格gm,n,若gm+1,n、gm-1,n、gm,n+1与gm,n-1中至少有一个为背景区域,则gm,n为非Rx边缘网格,将gm,n从Rx中去除;否则将其保留标记为边缘网格;循环判断Rx中的所有候选目标网格,可得Rx的边缘网格集合,记为
Figure FDA00003202048400051
3)求取质心到的最短和最长距离:
min L = min { ( x &prime; - x ^ ) 2 + ( y &prime; - y ^ ) 2 } max L = max { ( x &prime; - x ^ ) 2 + ( y &prime; - y ^ ) 2 } g x ^ , y ^ &Element; R x ^ , 并得到边缘到质心的距离集合: L = { l | l = ( x &prime; - x ^ ) 2 + ( y &prime; - y ^ ) 2 g x ^ , y ^ &Element; R x ^ , } ; 然后设圆半径r,计算边缘点到圆周上的平均误差最小圆: E best = min { &Sigma; l &Element; L | l - r | / sizeof ( R x ^ ) | min L &le; r &le; max L } ,
Figure FDA00003202048400056
代表
Figure FDA00003202048400057
集合大小;设Ebest对应的圆半径为rbest,对应的包络圆记为
Figure FDA00003202048400058
判断类圆度误差与半径之比是否小于某个阈值:
Figure FDA00003202048400059
T1=0.24;若小于则判定为类圆的连通域,否则判定为待定区域;
4)重复步骤1)~3)的过程,将
Figure FDA000032020484000510
中的所有连通域进行类圆度判决,设通过判决的连通域有x2个,0≤x2≤x1,用集合
Figure FDA000032020484000511
表示;若x2≥1,转向第三步的步骤2,否则转向第四步;
2.连通区域边缘直方图双峰特征判决
1)对于集合中的一个连通域Rx,计算它的整体边缘直方图:
H R x = { H R x ( t ) | H R x ( t ) = &Sigma; g m , n &Element; R x H m , n ( t ) t = 0,1,2 . . . 15 } ;
2)求出Rx整体边缘直方图的相邻3区间加权最大值:
mainDire R x = max { 0.6 H R x ( t ) + 0.4 ( H R x ( ( t + 15 ) % 16 ) + H R x ( ( t + 17 ) % 16 ) ) }
所对应的区间t设为
Figure FDA000032020484000516
为连通域Rx的主方向;
3)旋转平移
Figure FDA000032020484000517
使得
Figure FDA000032020484000518
处于的第5个直方图区间,得到旋转归一化的
H &OverBar; R x = { H &OverBar; R x ( t ) | H &OverBar; R x ( t ) = H R x ( ( t + 20 - t R x ) % 16 ) } , 其中%为取余运算;
4)主方向
Figure FDA00003202048400061
移至第5个区间,由于Datamatrix码的边缘垂直特性,另一主方向被移至13区间附近;计算连通域Rx的双峰特征值
Figure FDA00003202048400062
g R x = &Sigma; t = 0 8 ( 4 - t ) 2 ( H &OverBar; R x ( 4 ) - H &OverBar; R x ( t ) ) 2 + &Sigma; t = 9 15 ( 12 - t ) 2 ( H &OverBar; R x ( 12 ) - H &OverBar; R x ( t ) ) 2 2 ;
5)与步骤1)~4)过程一样,循环求取
Figure FDA00003202048400064
中所有连通域的双峰特征值,若
Figure FDA000032020484000613
标记为通过连通区域边缘直方图双峰特征判决,为候选目标区域,否则为未通过,标记为未通过连通区域边缘直方图双峰特征判决;设通过此判决的连通域个数为x3个,0≤x3≤x2,用集合
Figure FDA00003202048400065
表示;若x3≥1,转向步骤3,否则转向第四步;
3.连通区域主方向对比判决
1)对于集合
Figure FDA00003202048400066
中的一个连通域Rx,计算它的主方向对比
Figure FDA00003202048400067
c R x = max { H &OverBar; R x ( 3 ) , H &OverBar; R x ( 4 ) , H &OverBar; R x ( 5 ) } max { H &OverBar; R x ( 11 ) , H &OverBar; R x ( 12 ) , H &OverBar; R x ( 13 ) } , 0.56 < c R x < 1.8 , 则Rx为目标区域,将Rx中的所有候选目标网格定义为目标网格{gm,n[4]=2|gm,n∈Rx};否则Rx为未通过连通域主方向对比判决;
2)循环判断集合
Figure FDA000032020484000610
中的所有连通域,并重复上一步运算直至全部判断完;设此级判决通过的连通域个数为x4个,用集合
Figure FDA000032020484000614
表示,其对应的主方向为集合
Figure FDA000032020484000611
对应的包络圆为集合
Figure FDA000032020484000612
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),建立一个局部描述特征数组
Figure FDA00003202048400071
并且pixi,j的8邻域像素为数组:
{ I i , j [ x ] } x = 0 7 = { pix i , j + 1 , pix i + 1 , j + 1 , pix i + 1 , j , pix i + 1 , j - 1 , pix i , j - 1 , pix i - 1 , j - 1 , pix i - 1 , j , pix i - 1 , j + 1 }
2)给局部描述特征数组 { temp i , j [ x ] } x = 0 7 赋值: { temp i , j [ x ] = s ( I i , j [ x ] - pix i , j ) } x = 0 7 , 其中函数s(x)为: S ( x ) = 1 , x &GreaterEqual; 0 0 , x < 0 ;
3)求取
Figure FDA00003202048400076
的泛化值vi,j
v i , j = &Sigma; x = 0 6 | temp i , j [ x + 1 ] - temp i , j [ x ] | + | temp i , j [ 7 ] - temp i , j [ 0 ] |
若vi,j≤2,则像素pixi,j的局部二值模式特征值为:
Figure FDA00003202048400078
否则lbpi,j=9;
4)与1)~3)步算法一致,求取gm,n中所有像素点的局部二值模式特征值,并统计叠加,得到网格gm,n的局部二值模式特征LBPm,n,表示如下: LBP m , n = { LBP m , n [ x ] | LBP m , n [ x ] = &Sigma; pix i , j &Element; g m , n &delta; ( lbp i , j - x ) sizeof ( g m , n ) } x = 0 8 , 其中LBPm,n[x]为gm,n中所有像素点局部二值模式特征值为x的频率,sizeof(gm,n)代表gm,n中像素点的数量,δ(x)函数表示为: &delta; ( x ) = 1 x = 0 0 x &NotEqual; 0 ;
遍历整体网格矩阵G中的所有候选目标网格,和1)~4)步算法一致,得到所有候选目标网格的局部二值模式特征集合:LBP={LBPm,n|gm,n∈G&&gm,n[4]=1};
2.局部二值模式特征判决器训练
1)利用第二步步骤2所选出的n幅训练样本图像,将这n幅训练样本图像进行上述第四步步骤1的1)~4)步的所有步骤运算,然后选取n2=80个这些训练样本图像的候选目标网格中的背景网格作为负训练样本,设为集合
Figure FDA000032020484000711
选取n2个这些训练样本图像的条码区域网格作为正训练样本,设为集合
Figure FDA000032020484000712
2)利用第四步步骤1中的候选目标网格局部二值模式特征提取算法,提取所有负训练样本集合网格
Figure FDA000032020484000713
与正训练样本集合网格
Figure FDA000032020484000714
的局部二值模式特征,并将这2n2组灰度直方图特征记为一个9×2n2的矩阵P2
3)设正样本对应的输出为(1,0),负样本对应的输出为(0,1),则矩阵P2对应的输出为一个2×2n2的矩阵T2;利用matlab2008创建一个BP神经网络newff(),BP神经网络的训练函数为trainlm,输入层到隐层节点的传递函数为tansig,隐层节点到输出层的传递函数为logsig;每组输入元素的最大值和最小值为2n2×2的矩阵minmax(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×tansig(netIW12×LBPm,n+netb12)+netb22)=(cm,n,dm,n);同理计算gm,n的八邻域内所有候选目标网格的判决输出,将这些判决输出求取平均值得到
Figure FDA00003202048400081
如果则候选目标网格gm,n属性不变,否则将候选目标网格gm,n设为背景网格:gm,n[4]=0;
第五步,连通域判决
1.连通区域类圆度判决
经过局部二值模式特征判决后,设候选目标网格的连通区域为y1个,连通区域集合记为
Figure FDA00003202048400083
连通域Ry中的候选目标网格数目为ny个,1≤ny≤p×q,若ny≤4,Ry为污染连通区域,将Ry
Figure FDA00003202048400084
集合中删除,并将Ry中所有候选目标区域的属性赋值为0:{gm,n[4]=0|gm,n∈Ry};否则进行连通区域类圆度判决,判决算法如第三步1中“连通区域类圆度判决”一致;设通过判决的连通域有y2个,0≤y2≤y1,用集合
Figure FDA00003202048400085
表示;若y2≥1,转向第五步步骤2,否则转向第六步;
2.连通区域边缘直方图双峰特征判决
此步与第三步步骤2一致,设集合
Figure FDA00003202048400091
通过此判决的连通域个数为y3个,0≤y3≤y2,用集合
Figure FDA00003202048400092
表示;若y3≥1,转向第五步步骤3,否则转向第六步;
3.连通区域主方向对比判决
此步与第三步步骤3一致,将
Figure FDA00003202048400093
中所有通过此级判决的连通域中所有候选目标网格定义为目标网格;否则不予理睬;设此级判决通过的连通域个数为y4个,用集合
Figure FDA00003202048400094
表示,其对应的主方向为集合
Figure FDA00003202048400095
对应的包络圆为集合
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 ) &OverBar; = { H ( m , n ) &OverBar; ( t ) | H ( m , n ) &OverBar; ( t ) = &Sigma; ( m &prime; , n &prime; ) &Element; I ( m , n ) H ( m &prime; , n &prime; ) ( t ) } t = 0 15 , 其中集合I(m,n)为(m,n)模块的8邻域区间;
2)通过相邻3区间加权法求出网格gm,n主方向区间:
mainDire ( m , n ) = max { 0.6 &times; H ( m , n ) &OverBar; ( t ) + 0.4 &times; ( H ( m , n ) &OverBar; ( ( t + 15 ) % 16 ) + H ( m , n ) &OverBar; ( ( t + 17 ) % 16 ) ) }
设mainDirem,n所对应的区间t设为t2,t2为网格gm,n的主方向;
3)旋转平移
Figure FDA00003202048400099
使得t2处于的第5个直方图区间,得到旋转归一化的
Figure FDA000032020484000911
H ( m , n ) ^ = { H ( m , n ) ^ ( t ) | H ( m , n ) ^ ( t ) = H ( m , n ) &OverBar; ( ( t + 20 - t 1 ) % 16 ) } t = 0 15 , 其中%为取余运算,
Figure FDA000032020484000913
即为gm,n的边缘直方图特征;
遍历整体网格矩阵G中的所有候选目标网格,和1)~3)步算法一致,得到所有候选目标网格的边缘直方图特征集合:
2边缘直方图特征判决器训练
1)利用第二步灰度直方图判决器训练所选出的选出n幅训练样本图像,并将这n幅训练样本图像进行上述第六步步骤1的1)~3)步的所有判决,然后选取n3个这些训练样本图像的候选目标网格中的背景网格作为负训练样本,设为集合
Figure FDA00003202048400102
选取n3个这些训练样本图像的条码区域网格作为正训练样本,设为集合
Figure FDA00003202048400103
2)利用第六步步骤1中的候选目标网格边缘直方图特征提取算法,提取所有负训练样本集合网格
Figure FDA00003202048400104
与正训练样本集合网格
Figure FDA00003202048400105
的边缘直方图特征,并将这2n3组灰度直方图特征记为一个16×2n3的矩阵P3
3)设正样本对应的输出为(1,0),负样本对应的输出为(0,1),则矩阵P3对应的输出为一个2×2n3的矩阵T3;利用matlab2008创建一个BP神经网络newff(),BP神经网络的训练函数为trainlm,输入层到隐层节点的传递函数为tansig,隐层节点到输出层的传递函数为logsig;每组输入元素的最大值和最小值为2n3×2的矩阵minmax(P3),并将最大训练次数定为1000,目标误差定为0.001,隐层节点定为30个;
4)将矩阵P3作为原始输入向量,矩阵T3作为输出向量,在matlab2008中利用BP神经网络进行训练,得到输入层到隐层的一个30×16权值矩阵记为netIW13,一个30×1的阈值向量记为netb13;隐层到输出层的一个2×30权值矩阵记为netIW23,一个2×1的阈值向量记为netb23
3.边缘直方图特征判决
Figure FDA00003202048400106
为一个候选目标网格gm,n的边缘直方图特征,将其代入训练结果计算对应的判决输出V-EOHm,n:
V - EOH m , n = log sig ( netIW 2 3 &times; tan sig ( netIW 1 3 &times; H ( m , n ) ^ + netb 1 3 ) + netb 2 3 ) = ( e m , n , f m , n ) ; 同理计算gm,n的八邻域内所有候选目标网格的判决输出,将这些判决输出求取平均值得到
Figure FDA00003202048400108
如果
Figure FDA00003202048400109
则候选目标网格gm,n属性不变,否则将候选目标网格gm,n设为背景网格:gm,n[4]=0;
第七步,连通域判决
1.连通区域类圆度判决
经过边缘直方图特征判决后,设候选目标网格的连通区域为z1个,连通区域集合记为
Figure FDA00003202048400111
连通域Rz中的候选目标网格数目为nz个,1≤nz≤p×q,若nz≤4,Rz为污染连通区域,将Rz
Figure FDA00003202048400112
集合中删除,并将Rz中所有候选目标区域的属性赋值为0:{gm,n[4]=0|gm,n∈Rz};否则进行连通区域类圆度判决,判决算法如第三步步骤1一致;设通过判决的连通域有z2个,0≤z2≤z1,用集合
Figure FDA00003202048400113
表示;若z2≥1,转向第七步步骤2,否则转向第八步;
2.连通区域边缘直方图双峰特征判决
此步与第三步步骤2一致,设集合
Figure FDA00003202048400114
通过此判决的连通域个数为z3个,0≤z3≤z2,用集合
Figure FDA00003202048400115
表示;若z3≥1,转向第七步步骤3,否则转向第八步;
3.连通区域主方向对比判决
此步与第三步步骤3一致,将
Figure FDA00003202048400116
中所有通过此级判决的连通域中所有候选目标网格定义为目标网格;否则不予理睬;设此级判决通过的连通域个数为z4个,用集合表示,其对应的主方向为集合
Figure FDA00003202048400118
对应的包络圆为集合
Figure FDA00003202048400119
4.整体网格矩阵G属性判断
若存在gm,n[4]=2(gm,n∈G),则转向第八步,否则提示本图像中没有二维条码,并结束算法;
第八步,聚类生长
对于第三步步骤3、第五步步骤3和第七步步骤3中通过连通域判决的
Figure FDA000032020484001110
Figure FDA000032020484001111
Figure FDA000032020484001112
及其所对应的主方向
Figure FDA000032020484001113
Figure FDA000032020484001115
对应的包络圆
Figure FDA000032020484001116
Figure FDA000032020484001117
Figure FDA000032020484001118
将这几个连通域合并,则有num=x4+y4+z4个连通域,设合并后的连通域为集合
Figure FDA000032020484001119
其对应的主方向为集合
Figure FDA000032020484001120
对应的包络圆为集合
Figure FDA000032020484001121
聚类生长的具体过程如下:
1)对于连通域为集合中的一个连通域Rx,以其对应的包络圆
Figure FDA00003202048400122
为基础,以
Figure FDA00003202048400123
长度为一次生长步伐,以方向集
Figure FDA00003202048400124
中的8个方向分别生长;
2)设θ(θ∈D)方向一次生长后的包络圆为Cθ',计算区域
Figure FDA00003202048400125
的16区间边缘梯度方向直方图
Figure FDA00003202048400126
计算过程与第三步步骤2连通域边缘直方图双峰特征判决一致;求取欧式距离:
Figure FDA00003202048400128
3)所对应的生长方向θ'设为最佳生长方向,求取区域
Figure FDA00003202048400129
的主方向,设为
Figure FDA000032020484001210
求取区域
Figure FDA000032020484001211
的边缘直方图双峰特征,设为
Figure FDA000032020484001212
求取算法与第三步步骤2一致;然后求取区域的主方向对比特征,设为
Figure FDA000032020484001214
求取算法与第三步步骤3一致;如果
Figure FDA000032020484001215
与连通域Rx的主方向
Figure FDA000032020484001216
差异小于或等于1个区间,并且此区域的双峰平均峰度值
Figure FDA000032020484001217
主方向对比
Figure FDA000032020484001218
则此次生长有效,包络圆Cθ'为新的生长基础,转向步骤2)继续执行;否则生长结束,包络圆Cθ'为最终Rx条码区域的包络区间;
4)重复步骤1)~3)的过程,直至集合
Figure FDA000032020484001219
中的连通区域全部生长完毕,则整个算法结束。
CN 201110310325 2011-10-13 2011-10-13 复杂金属背景下DataMatrix条码区域定位方法 Expired - Fee Related CN102346850B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110310325 CN102346850B (zh) 2011-10-13 2011-10-13 复杂金属背景下DataMatrix条码区域定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110310325 CN102346850B (zh) 2011-10-13 2011-10-13 复杂金属背景下DataMatrix条码区域定位方法

Publications (2)

Publication Number Publication Date
CN102346850A CN102346850A (zh) 2012-02-08
CN102346850B true CN102346850B (zh) 2013-08-14

Family

ID=45545512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110310325 Expired - Fee Related CN102346850B (zh) 2011-10-13 2011-10-13 复杂金属背景下DataMatrix条码区域定位方法

Country Status (1)

Country Link
CN (1) CN102346850B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663337B (zh) * 2012-03-16 2014-07-23 江南大学 简单工况背景下的Data Matrix二维条码快速识别方法
CN102930268B (zh) * 2012-08-31 2015-09-16 西北工业大学 一种用于污染及多视角情况下DataMatrix码的精确定位方法
CN103593695B (zh) * 2013-11-15 2016-08-10 天津大学 一种dpm二维码区域定位的方法
CN103927765B (zh) * 2014-02-21 2016-10-12 北京象开科技有限公司 用于定位图像中条码区域的方法和装置
CN104636701B (zh) * 2014-12-12 2017-09-19 浙江工业大学 一种基于图像修复的激光二维码识别方法
CN105184208B (zh) * 2015-09-02 2017-10-31 福建联迪商用设备有限公司 一种二维码初步定位方法及系统
CN106778435B (zh) * 2016-11-30 2020-04-10 上海正雅齿科科技股份有限公司 基于图像邻域结构张量方程的特征提取方法
CN108280854A (zh) * 2016-12-31 2018-07-13 长春北方化工灌装设备股份有限公司 一种工业图像的近圆形目标快速检测方法
CN107633192B (zh) * 2017-08-22 2020-05-26 电子科技大学 一种基于机器视觉的复杂背景下条形码分割与识读方法
CN107908996B (zh) * 2017-10-25 2020-12-15 福建联迪商用设备有限公司 一种提取一维条码信息的方法及终端
CN110543884B (zh) * 2018-05-29 2022-04-12 国际关系学院 一种基于图像的网络攻击组织溯源方法
CN109271823A (zh) * 2018-08-08 2019-01-25 佛山市顺德区中山大学研究院 一种自定义二维码的快速定位方法
CN108920992B (zh) * 2018-08-08 2021-02-26 长沙理工大学 一种基于深度学习的医药标签条码的定位与识别方法
CN109635612B (zh) * 2018-10-29 2021-11-02 国网江苏省电力有限公司南京供电分公司 一种基于神经网络的二维码识别方法
CN110176028B (zh) * 2019-06-05 2020-12-15 中国人民解放军国防科技大学 一种基于事件相机的异步角点检测方法
CN111753572A (zh) * 2020-05-14 2020-10-09 南京翱翔信息物理融合创新研究院有限公司 一种基于深度学习的复杂背景低质量二维条码检测方法
CN113705268B (zh) * 2021-08-30 2023-08-15 山东大学 一种二维码定位方法及系统
CN114911435B (zh) * 2022-07-18 2022-11-11 北京中宏立达科技发展有限公司 一种基于二维条码的复印管控方法及系统
CN115936037B (zh) * 2023-02-22 2023-05-30 青岛创新奇智科技集团股份有限公司 二维码的解码方法及装置
CN117197129B (zh) * 2023-11-03 2024-02-13 浙江鑫柔科技有限公司 黑化程度检测方法、装置和计算机设备
CN117475000B (zh) * 2023-12-28 2024-03-19 江苏恒力化纤股份有限公司 一种织物布边定位方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862560A (zh) * 2006-06-21 2006-11-15 北京紫光捷通科技有限公司 一种基于定位图形的可快速定位的二维条码系统
CN101093553A (zh) * 2007-07-19 2007-12-26 成都博古天博科技有限公司 一种二维码系统及其识别方法
CN102096795A (zh) * 2010-11-25 2011-06-15 西北工业大学 磨损二维条码图像识别方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100347714C (zh) * 2004-09-07 2007-11-07 佳能株式会社 用于定位二维条形码的方法和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862560A (zh) * 2006-06-21 2006-11-15 北京紫光捷通科技有限公司 一种基于定位图形的可快速定位的二维条码系统
CN101093553A (zh) * 2007-07-19 2007-12-26 成都博古天博科技有限公司 一种二维码系统及其识别方法
CN102096795A (zh) * 2010-11-25 2011-06-15 西北工业大学 磨损二维条码图像识别方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Encoding and Decoding Method of Cutting Tool Information Based on Data Matrix Symbol;LeiLei等;《2009 Third International Symposium on Intelligent Information Technology Application》;20091231;第157-160页 *
LeiLei等.Encoding and Decoding Method of Cutting Tool Information Based on Data Matrix Symbol.《2009 Third International Symposium on Intelligent Information Technology Application》.2009,第157-160页.

Also Published As

Publication number Publication date
CN102346850A (zh) 2012-02-08

Similar Documents

Publication Publication Date Title
CN102346850B (zh) 复杂金属背景下DataMatrix条码区域定位方法
CN103049763B (zh) 一种基于上下文约束的目标识别方法
CN113160192B (zh) 复杂背景下基于视觉的压雪车外观缺陷检测方法及装置
Yousaf et al. Visual analysis of asphalt pavement for detection and localization of potholes
Islam et al. Solid waste bin detection and classification using Dynamic Time Warping and MLP classifier
Xu et al. Multiple-entity based classification of airborne laser scanning data in urban areas
Abedin et al. License plate recognition system based on contour properties and deep learning model
CN103048329B (zh) 一种基于主动轮廓模型的路面裂缝检测方法
CN108830188A (zh) 基于深度学习的车辆检测方法
CN102930268B (zh) 一种用于污染及多视角情况下DataMatrix码的精确定位方法
CN110889318B (zh) 利用cnn的车道检测方法和装置
CN103218621B (zh) 一种室外视频监控中多尺度车辆的识别方法
CN104318258A (zh) 一种基于时域模糊和卡尔曼滤波器的车道线检测方法
Xu et al. Automatic recognition algorithm of traffic signs based on convolution neural network
CN103870818A (zh) 一种烟雾检测方法和装置
CN109271934A (zh) 用于交通标志识别的系统和方法
CN110008900B (zh) 一种由区域到目标的可见光遥感图像候选目标提取方法
CN104809433A (zh) 一种基于最大稳定区域和随机采样的斑马线检测方法
CN108960055A (zh) 一种基于局部线段模式特征的车道线检测方法
CN104282008A (zh) 对图像进行纹理分割的方法和装置
CN107025442A (zh) 一种基于颜色和深度信息的多模态融合手势识别方法
CN107704865A (zh) 基于结构森林边缘候选区域提取的舰船目标检测算法
CN111582004A (zh) 一种地面图像中的目标区域分割方法及装置
Abedin et al. Traffic sign recognition using hybrid features descriptor and artificial neural network classifier
Xing et al. The Improved Framework for Traffic Sign Recognition Using Guided Image Filtering

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130814

Termination date: 20151013

EXPY Termination of patent right or utility model