基于链码跟踪的DataMatrix二维条码快速识别

基于链码跟踪的 Data M a t r i x  二维条码快速识别
* 徐义钊1
,白瑞林
1
,余震虹1
,吉 峰
2
( 1. 江南大学 轻工过程先进控制教育部重点实验室,江苏 无锡 214122;
2. 无锡信捷电气有限公司,江苏 无锡 214072) ( * 通信作者 bairuilin@ h ot m a il . co m )
摘  要: 为实现工业现场中 Da ta M atr i x  二维条码的快速识别,提出一种基于链码跟踪、直线段提取的条码快速识 别方法。首先采用 So b e l  算子提取图像边缘; 然后基于链码跟踪方法,跟踪图像的边缘点,记录链码; 接着根据快速直 线段提取方法,将直线相似度低于阈值的线段剔除,结合线形连接
方法合并断裂线段,并使用长度判别剔除不可靠的 线段; 最后结合 Da ta  M atr i x  二维条码的特征,定位 Data M atr i x  二维条码。实际测试表明,该识别方法能够快速、准确 地定位二维条码区域,识别正确率可达 99. 39% 以上,具有实时性强、可靠性好等特点,满足工业现场要求。
关键词: 二维条码; Data M atr i x ; 链码跟踪; 直线段提取; 线形连接 中图分类号: 文献标志码: A
TP 391. 4
Quick i d e n tifi ca ti o n of Data M a t r i x t w o -d i m e n s i o n a l  b a r  code based on c h a i n code t r ac k i n g
XU Y i -z h ao 1 , B A I  Ru i -li n
1
*  , YU Zhe n -ho n g 1 , J I  F e n g
2
( 1.  Ke y Lab orat ory of Ad vance d  Proce ss Co n t ro l  for L i gh t  I ndu s t ry  ( M i n i s t ry  of Edu c a t i o n) , J i angnan Un i ve r s i t y , Wu x i  J i ang s u 214122,C h i na ;
2.  X i nj e  E l ect ro n i c  Company L i m i te d , Wu x i  J i ang s u 214072, C h i na )
Ab s tr ac t:  A  two -d i m e n s i o n a l  bar code reco g n i t i o n  m etho d based on c h a i n  code trac k i n g  and stra i g h t  li n e  se g m e n t  extra ct i o n was proposed in order to rea li ze  qu i c k  i d e n t i f i cat i o n  o f th e  Da ta  M atr i x  two -d i m e n s i o n a l  bar code in the i ndu str i a l f i e l d .  F i rst l y , th e So b e l  o pera to r was used to  extract the  edge of i m age .  Seco nd l y , the i m a ge  e dge p o i n ts  were trac ked a nd c h a i n code s were rec o rde d  based on c h a i n code trac k i n g  m et h o d .  T h i r d l y , li n e  se gme nt wh ose  stra i g h t  li n e  s i m il a r i ty  was b e l o w the t h re s h o l d  was removed w i t h  fa st stra i g h t  li n e  se gmen t e xtract i o n  m et h o d .  The frac tu re li n e  was co mb i n e d w i t h  the li n ea r co nn ect i o n me th od and the  un re li a b l e  li n e  was e xc l ud e d  by l e n gt h  d i sc r i m i n at i o n .  F i n a ll y ,  th e Da ta M atr i x  bar code  was l ocate d w i t h  th e  c h a racte r i st i cs  of the  Da ta  M atr i x  two -d i m e n s i o n a l  bar co d e .  The a pp li cat i o n  test  shows tha t  the  two - d i m e n s i o n a l  bar code area can be qu i c k l y  and acc u rate l y  l oc ate d by the reco g n i t i o n me th od w i t h th e reco g n i t i o n ra te of 99. 39% .The pro posed m e tho d i s  ready to meet  the  re qu i re m e n ts  of i ndu str i a l  f i e l d  w i t h  stron g  rea l -t i m e  a b ili ty  and h i g h re li a b ili ty .
K e y w o r d s :  two -d i m e n s i o n a l  bar co d e ;  Da ta  M atr i x ; co nn ect i o n
c h a i n  code tra c k i n g ;  stra i g h t  li n e  se gmen t  e xtra ct i o n ;  li n ea r  二维条码。珠海炬力集成电路设计有限公司的专利中提出轮 引言
随着条码技术以及二维条码识别技术的发展,二维条码
应用 日 益 广 泛。 目前应用最为广泛的二维条码有 D ata  M atr i x 、Q R Co d e 、P DF417 等。由于 Data  M a tr i x  二维条码只需 要读取资料的 20% 即可精确辨读,因此很适合应用在条码容 易受损的场所,例如印在暴露于高热、化学清洁剂、机械剥蚀 等特殊环境的零件上。
目前定位 Da ta M atr i x  二维条码仍然存在难点。如何能 够在工业环境中的流水线上快速、准确识别二维条码依旧是
一个巨大的挑战。李雅静[1]
提出了以 Data M a tr i x  二维条码
区域的面积最大值作为判断根据来定位条码[2]。Xu [3]
提出
由于条码区域的角点密度高,运用 H arr i s  角点算法检测角点。
Liu 等[4]提出外接矩形方法定位二维条码。L i u 等[5]
提出边
界跟踪方法定位二维条码。L i u  等[6]
提出采用凸包算法定位
0 廓跟踪法
[7]
,使用轮廓跟踪法搜寻 Da ta  M atr i x  条码的轮廓,
搜寻“L ”形特征边所在的直线。蔡强等[8]
专利中提出采用特 征匹配方法定位 Da ta M atr i x  条码区域,在条码图像中搜索位置探测图形来确定所述探测图形的像素坐标,该专利采用灰
度特征匹配的方法。
考虑到在工业现场中,由相机拍摄到的二维码图片带有复杂的背景以及工业流水线对实时性要求很高,本文算法针
对工业流水线上 Data M atr i x  二维条码的快速、准确识别而设计,根据 Da ta M atr i x  二维条码的特征,提出了一种基于链码跟踪、直线段提取的方法[9]。该方法通过提取图像边缘中的
直线段来定位二维条码区域。
基于链码跟踪的二维条码识别原理
1) 边缘链码跟踪。首先采用 So b e l  边缘检测提取图像边
1 收稿日期: 2012-05-13; 修回日期: 2012-06-18。 基金项目: 江苏高校优势学科建设工程资助项目( P A P D ) ; 江苏省科技成果转化项目( B A2011032) 。
点,不是链码的端点,除非该链码是闭合的。
1)如图3(a)所示,八方向上边缘点数为  1 的边缘点,即
端点,可作为链码的起始点;
2)如图3(b)所示,八方向上边缘点数为  2 的边缘点,即
链码的中间点;
③八方向上相邻边缘点数大于  2 的边缘点,即链码之间
的交叉点,可作为链码的端点。
3)如图3(c)所示,八方向上边缘点数大于  2 的边缘点,
即链码之间的交叉点,可作为链码的起始点。
图1  八方向链码
2)提取直线段。将每条链码进行分割再合并,判断当前
子链码与上一条相邻的子链码能否合并[11],合并两条子链码
存在两个条件:
①两条子链码的直线相似度大于0.9,即直线相似度的
准则为路径(上一条子链码的起点与当先子链码的终点之间
的距离)比路程(两条子链码的长度相加)。
②两条子链码之间的角度大于165°。
3)合并断裂的直线段。由于边缘提取之后的图像边缘
存在断裂现象,提取直线段后再合并相邻的直线段[12],合并
的指标为:
①线段之间的连接势能;
②直线段的直线相似度;
③线段之间的夹角。
图3  标记点的八方向点数
根据以上边缘点的分类情况,具体步骤总结如下:
1)将连接数为0 的边缘点(即孤立点)剔除。
2)选择连接数为  1 的边缘点作为起点,依据链码的原理
寻相邻的边缘点,记录前一个点与下一个点的方向码并将
前一个点置0、链码的长度,直到遇到八方向上连接数为1 或
大于2 的边缘点,该条链码停止跟踪,并选择此点作为终点。
依此类推,遍历边缘图像中所有连接数为  1 的边缘点。
3)选择连接数大于  2 的边缘点作为起点,依据链码的原
理寻相邻的边缘点,记录前一个点与下一个点的方向码并
将前一个点置0、链码的长度,直到遇到八方向上连接数大于
2 的边缘点,该条链码停止跟踪,并选择此点作为终点。依此
类推,遍历边缘图像中所有连接数大于  2 的边缘点。
4)剩下的边缘点为八方向上连接数为  2 的边缘点,剩下
的边缘点构成闭合线圈,以任意一个八方向上连接数为  2 的
边缘点作为起点记录前一个点与下一个点的方向码并将前一
个点置0、链码的长度,直到该闭合线圈跟踪结束。依此类
推,遍历边缘图像中所有的闭合线圈。
最终记录所有链码的起始坐标(x,y)、方向码d,其中d 的
取值为(0,1,2,…,7)。
2 快速定位二维条码的实现
去除干扰的边缘点
如图2 所示,边缘图像中存在一些“L”形状的边缘点,分
为三种基本情况:
1)如图2(a)所示,当角点的左边点或右边点的八个方向
上只有两个点时,将左边点或右边点删除;
2)如图2(b)所示,当角点的上边点或下边点的八个方向
上只有两个点时,将上边点或下边点删除;
3)如图2(c)所示,当角点的上、下、左、右四个点的八个
方向上大于两个点时,将此角点删除。
其他情况是这三种情况的组合。
2.1
基于链码提取直线段
在20 世纪70 年代Freeman 提出了基于链码的直线检测
方法,并给出了直线链码必须满足的三条准则。但是,上述的
准则仅适用于理想直线。因此,研究人员又不断改进,使之能
汽水热交换器
够满足实际应用。本文采用分裂再合并的方法提取直线段。
将每条链码进行分割,以6个像素为一条子链码,记录子
链码的长度。
C
i
:S,X
s
Y
s
,X
e
,Y
e
,d
1
,d模拟社区
2
,…,d
n
其中:C i为第i条链码;S为链码的长度;X s、Y s、X e、Y e均为链码威信网页板
2.3
图2
示,
saba-018
“L”。
1)两条子链码的直线相似度S i m 大于0.9,即直线相似定位Da ta M atr i x二维条码
寻Data M atr i x条码的定位图形,即“L”形边界。在图5
(c)所示的结果图中寻相邻的相差90°的两条直线段,可得
到图5(d)所示的结果图。在“L”型边的对角分别作两条平
行于“L”边的线段,向外平移直到线段上无边界点,记录两条
虚边的边界线。
以两条虚边的边界线向里延伸两个像素分别做两条直
线,判断是否为二维条码,条件为:
1)穿过的边界数是否大于一阈值,这里设为6,去掉第一
个和最后一个边界点,最小值为6。因为Da ta M atr i x二维条
码的边的长度为8个单位模块。
2)白模块与黑模块长度的差值小于一阈值。由于
二值化之后边缘会出现增长或缺失的情况,所以该阈值设为
7。
2.4
度的准则为路径槡(C i.X s-C j.X e)    + ( C i.Y s-C j.Y e )    比
路程(C
i
.S +C
j
.S)。则直线相似度公式为:
22
22
槡(C i.X s-C j.X e)    + ( C i.Y s-C j·Y e)
S i m  =
( C .S + C .S)
i j
2)两条子链码之间的角度θ大于165°。A= [C
i
.X
s
C
i
.X
e
,C
i
.Y
s
-C
i
.Y
e
],B = [C
j
.X
e
-C
j
.X
s
,C
j
.Y
e
-C
j
.Y
s
肛门充气
],则
夹角公式为:
θ= a rc co s(| A | ×| B | )
A·B
×180 /π
其中:向量A为第i条子链码的向量,向量  B 为第j 条子链码的
向量。
如果满足以上两个条件,将两条子链码合并成一条新的
直线段;否则,将上一条子链码作为单独的直线段。记录每条
直线段的起点坐标、终点坐标、方向码、角度以及直线段的长
度。
由于噪声干扰,边缘提取之后的图像边缘可能存在断裂
现象,如果直接进入到下一步,即将长度小于25 个像素的直
线段删除,很有可能将有效的直线段过滤掉,因此为了保留有
效的直线段,本文采用线形连接方法。该方法提取直线段后再
合并相邻的直线段,合并的条件为:
1)线段之间的连接势能。如图4 所示,D 为直线段l
2
的端
点E3 与线段l1 之间的距离,θ为两个线段之间的夹角。可以得
到两个线段之间的连接势能:
E
p
= α×
D
+ β×
θ图5  提取直线段效果
若满足以上两个条件,可将此区域判断为条码区域。图
6 为Data M atr i x二维条码的定位流程。
max max
其中:α、β分别为对应项的权重系数,D max  与θmax 分别表示两
条线段之间有效连接势能所对应的最大取值。所以,E p<
E
pT
( E
pT
为设定的连接势能阈值)。
2)直线段的直线相似度。直线段的直线相似度大于0.9。
线段l1 与l2 之间的直线相似度为:
‖E
4
-E
1
S i m  =‖E
2
-E
1
‖+‖E
3
-E
2
‖+‖E
4
-E
3
3)线段之间的夹角。两条子链码之间的角度大于165°,
夹角公式为:
θ= a rc co s(| E2 E1  | ×| E3 E4  | )
E
2
E
1
·E
3
E
4图6  Dat a M at r i x二维条码的定位流程
玻璃房实验测试与分析
本实验操作采用实验室自主研发640 ×480 分辨率的30
×180 /π
3
万黑白工业相机采集  1 157 张不同大小、不同极性、不同光照、
大量干扰背景的Da ta M a tr i x二维条码,在Wi nd ows7 系统的
M at l a b 2009a 平台上完成测试,电脑硬件配置为奔腾双核
CP U,主频3.  2 GH z。本文主要从三个方面测试算法的优劣程
度,即可靠性、实时性和识别率,认为满足此三个条件的算法
可应用于工业现场生产。
3.1  可靠性测试
满足以上三个条件方可将两条直线段合并。扫描每条直
线段,寻是否存在可以合并的直线段,如果存在,则将索引
号大的直线段并入到索引号小的直线段中。
将长度小于25 个像素的直线段删除,由于可识别条码的
单位模块最小为  3 个像素,最小的条码边长为10 个单位模
块,
极性反过来就需要改变腐蚀膨胀的顺序,从而需要设置极性
这一参数,这造成用户的不便。
4)具有强的背景抗干扰能力。传统识别方法采用最大
连通域方法判断条码区域,这一方法有很大的局限性,一旦拍
摄的条码较小,条码区域可能不是图片中连通域最大的区域,
造成识别失败。而本文方法依据条码的本质特征( D ata
M atr i x二维条码的边缘是“L”形状)定位条码区域,解决了背
景干扰这一问题。
实际测试表明,该识别方法能够快速、准确地定位二维条
码区域,识别正确率可达99.39%以上,具有实时性强、可靠
性好等特点,满足工业现场要求。
参考文献:
图7  不同模块大小条码识别效果
[1]李雅静.Dat a M at r i x二维条码图像识别的算法研究与实现[D].
北京: 北京交通大学, 2009.
邹沿新.Dat a M at r i x二维条形码图像预处理及识别技术研究
[D].长沙: 湖南大学, 2009.
XU  W E I.  2D barcode l oc a li zat i o n  and m ot i o n  d e b l u rr i n g  u s i n g  a
f l u tte r shut te r c a m e ra[C]/ /  2011 IEE E Workshop on App li c at i o n s
of Comp u t e r V i s i o n.  W as h i n gt o n,  DC:  IEEE Comp u t e r So c i et y,
2011: 159 - 165.
LIU AN,  DANG T I ANYUE,  HAN  D O NG,et  a l.  A h i e rarc h i c a l
framework for 2D d at a m at r i x rec o g n i t i o n [C]/ /  2010 I n te r n at i o n a l
Confe re nc e on O p t oe l e ct ro n i c s and I m age Pro c ess i n g.W as h i n gt o n,
DC: IEEE Comp u t e r Soc i et y, 2010: 20 - 23.
LIU F,LIU A,WANG  M,et a l.Rob u st and fast l oc a li zat i o n a l go-
r i t hm for d at a m at r i x  b arc o d e[C]/ /  2010 I n t e r n at i o n a l  Conference
on IEE E O p t oe l e ct ro n i c s and I m age Pro c ess i n g.W as h i n gto n,  D C:
IEEE Co mp u t e r Soc i et y, 2010: 356 - 359.
LIU ZH I, ZHENG HER O NG,C A I WEN T I NG.Re se arc h on t wo-d i-
m e n s i o n a l bar code p os i t i o n i n g approach based on convex hull a l go-
r i t hm[C]/ /  2009 I n te r n at i o n a l  Conference on IEEE D i g i t a l I m age
Pro ce ss i n g.  W as h i n gto n,DC: IEEE Co mp u te r Soc i et y, 2009:  177
- 180.
珠海炬力集成电路设计有限公司.数据矩阵码的识别方法: 中
国,200610035088. 6 [P].  2007 - 08 - 15.
福建新大陆电脑股份有限公司.Dat a M at r i x条码解码芯片及解
码方法:  中国, 201010188974. 9 [P].  2010 - 11 - 10.
刘宁钟,尤海英,孙涵.基于手机平台的Dat a M at r i x2 维条码识
别[J].中国图象图形学报, 2010, 15( 2) : 287 - 293.
3.2  实时性测试
实时性即为算法在规定时间内是否能完成给定的工作,
当然算法运算时间越短越好。算法的耗时主要集中在链码跟
踪和直线段提取两个方面。
1)链码跟踪。链码跟踪是对全局图像做的,需要遍历
640 ×480 个像素点,这是不可避免的。
2)直线段提取。即对每条链码作直线段提取。需要遍
历每条链码、分割链码以及合并链码。由于图像中的链码很
多,而且需要对每条链码做大量的工作,这造成了算法在识别
上的耗时。
[2]
[3]
[4]
识别率测试
利用文中算法对含有Da ta M atr i x条码的图片进行识别,
测试了采用30 万黑白工业相机采集  1 157 张不同大小、不同
极性、不同光照、大量干扰背景的Da ta M atr i x二维条码,共
1 157个Da ta M atr i x条码。其中,识别错误个数为7,识别率大
于99. 39%。识别错误的条码主要为Da ta M a tr i x条码区域光
照过暗。表  1 为不同二维码的单位模块宽度所占像素个数对
应二维码的识别率测试结果。理论上二维码的单位模块宽度
所占的像素个数越少越难识别。
表1  不同大小的二维码的识别率测试
3.3[5]
[6]
[7]
二维码大小( 像素
数/单位模块宽度)
[8]
拍摄数量未识别个数识别率/%
6
5
4
3
584
287
186
100
4
1
2
100. 00
98. 61
99. 46
98. 00
[9]
[10]陈玉梅,余洪山,贺攀峰.一种分层并行迭代式链码跟踪直线
提取算法[J].郑州大学学报:  工学版, 2006, 27( 2) : 94 - 97.
[11]孙涵,任明武,杨静宇.一种快速实用的直线检测算法[J].计
算机应用研究, 2006, 23( 2) : 256 - 260.
4结语

本文发布于:2024-09-23 04:20:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/219759.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:条码   直线   链码   边缘
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议