基于halcon的组合条码识别.docx
- 文档编号:5410883
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:26
- 大小:2.28MB
基于halcon的组合条码识别.docx
《基于halcon的组合条码识别.docx》由会员分享,可在线阅读,更多相关《基于halcon的组合条码识别.docx(26页珍藏版)》请在冰豆网上搜索。
基于halcon的组合条码识别
华侨大学厦门工学院
本科生毕业设计(论文)
题目:
基于HALCON的组合条码识别
姓名:
学号:
系别:
电子信息工程
专业:
通信工程
年级:
2011级
指导教师:
2015年月日
独创性声明
本毕业设计(论文)是我个人在导师指导下完成的。
文中引用他人研究成果的部分已在标注中说明;其他同志对本设计(论文)的启发和贡献均已在谢辞中体现;其它内容及成果为本人独立完成。
特此声明。
论文作者签名:
日期:
关于论文使用授权的说明
本人完全了解华侨大学厦门工学院有关保留、使用学位论文的规定,即:
学院有权保留送交论文的印刷本、复印件和电子版本,允许论文被查阅和借阅;学院可以公布论文的全部或部分内容,可以采用影印、缩印、数字化或其他复制手段保存论文。
保密的论文在解密后应遵守此规定。
论文作者签名:
指导教师签名:
日期:
基于HALCON的组合条码识别
摘要
随着现代工业自动化技术的高速发展,国内外的不少工厂实现了生产过程自动化管理。
其中,关于机器视觉在生产自动化中的作用日益突出。
条码组合的识别是机器视觉在生产自动化一个优势的体现。
对于生产和物流传送流水线上产品的条码检测和识别,由于运行速度快,条码品种多,距离变化不一等原因,传统的LED条码扫描方法技术已经显得无能为力。
条码是一种数据载体,它在信息传输过程中起着重要的作用。
一旦识别和检测出现了问题,那物品的信息通讯则可能被中断,给企业等带来大量的损失。
本文主要研究利用HALCON作为机器视觉软件开发平台,对条形码组合图像的识别,主要包括组合条码识别基础编程和编程原理,对不同类型、尺寸、方向的条码组合进行识别,并识别出条码的字符串,为工业上条码组合的识别检测系统奠定基础,调高工业识别效率。
关键词:
机器视觉;条码识别;HALCON
CombinationofbarcodeidentificationbasedonHALCON
Abstract
Withtherapiddevelopmentofmodernindustrialautomationtechnologymanyfactoriesathomeandabroadtorealizeautomationofproductionprocessmanagement.Amongthem,theroleofmachinevisioninproductionautomationintheincreasinglyprominent.Barcodecombinationisreflectedintheproductionmachinevisionanadvantage.Fortheproductionandlogisticstransmissionlineontheproductbarcodedetectionandrecognition,therunningspeed,barcodevariety,distancedoesnotchangeandotherreasons,thetraditionalmethodofLEDbarcodescanningtechnologyhasbecomeincapableofaction.Barcodeisadatacarrier;itplaysanimportantroleintheprocessofinformationtransmission.Onceidentifyanddetectofproblems,communicationofinformationthatmaybeinterrupted,bringalotoflosstotheenterprise.
ThispapermainlystudiestheuseofmachinevisionsoftwareHALCONasthedevelopmentplatform,thebarcodeidentificationcombinedimage,includingthecombinationofbarcoderecognitionbasedprogrammingandprogrammingprinciple,ofdifferenttypes,size,directionofthebarcodeidentification,andidentifythebarcodecharacterstring,tolaythefoundationfortheidentificationofbarcodedetectionsystemindustry,adjustmenthighefficiencyindustrialidentification.
KeyWords:
Machinevision;Barcoderecognition;HALCON
绪论
1.1研究背景
随着现代化科学技术的高速发展,机器视觉越来越被时代所需求。
机器视觉又称为计算机视觉,顾名思义,就像是计算机的眼睛一样,是用计算机来模拟人或者再现与人类视觉有关的某些智能行为的技术,从客观事物的图像中提取信息进行处理,并加以理解,最终用于实际检测。
它是涉及神经生物学、心理物理学、人工智能、图像处理、模式识别等多个领域的交叉科学,而且具有可扩展性好,检测速度快,检测精度高等优点。
正如视觉是人类在自然环境与社会环境生存不可或少的重要感知器官,机器视觉技术也是信息技术中一门不可缺少的技术,因此它成为计算机学科中不可或缺的一门学科。
本文是基于HALCON软件的机器视觉研究。
该软件是由德国MVtec公司开发的一整套较为完善的标准式的机器视觉算法包,具有应用广泛的机器视觉集成开发环境。
它节省了产品的成本,缩短了软件的开发周期----HALCON灵活的架构便于机器视觉,图像分析应用和医学图像的快速发展。
HALCON所提供的卓越的性能,为并全面地支持多核平台、SSE2和AVX,以及GPU加速打下基础。
同时,它有着功能全面的视觉处理库,提供了几乎所有的最先进和最新的技术算法和算子的函数库,主要包括识别、匹配、测量、blob分析、形态学和立体视觉等。
HALCON支持Windows,Linux和MacOSX操作环境。
整个函数库可以用C,C++,C#,VisualBasic.NET和Delphi等多种日常常用的编程语言访问。
HALCON为了保证硬件的独立性,为大量的图像获取设备提供接口。
它为百余种图像采集卡和工业相机提供接口,包括GenlCam,GigE和IIDC1394。
HALCON的体系、数据结构、外触发机制是高效率的、开放式的。
高效率是指HALCON中提供的函数的执行时间非常短,而且能够在其界面HDevelop中直观的看到函数的执行时间。
在许多复杂的机器视觉任务中,依然能够非常迅速、高效的完成。
所以它的应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测等。
1.2研究意义
条码技术是信息数据自动识别、输入的重要方法和手段,现在已经应用到了商业、工业、交通运输业、邮电通讯业、物流、医疗卫生等国民经济各行各业。
具有输入速度快、准确度高、成本低、可靠性好等优点。
在工业发达国家,条码作为一种及时、准确、可靠、经济的数据输入手段已普及应用,成为商品独有的世界通用的“身份证”。
传统的条码读码器是通过光电二极管(LED)或激光扫描阅读装置,将条码字符的条空图形变换成相应的电信号,经整形后和译码算法处理,然后获得条码字符的信息,送入计算机进行处理。
对于物流传送带上或生产流水线的物体条码识别,传统的扫描器识别方法受印制材料、条码印刷技术以及条码本身运动角度和速度的影响,基本上无法快速识别。
如果一个空间出现多个条码组合甚至出现不同类型的条码,传统的扫描识别器就不可能同时对多种条码进行识别和处理,从而无论对于什么行业用途的条码识别效率和效益都是大大的损失。
而利用HALCON的机器视觉是可以在没有人类干预的情况下使用计算机来处理和分析图像信息并给出结论。
它可以使用与计算机相联的摄像机来摄取图像,然后将图像转换成机器可以读取的形式,软件程序被用来处理这个数字化的图像,以取得需要的信息,同时,它也可以将用其他拍摄装备拍摄下来的图像用软件程序将图像中的条码组合识别出来。
HALCON软件不但可以成功的识别同一张图像中出现的一维码和二维码,而且还能同时识别多个一维码和二维码。
极大的提高了识别效率,为各行各业的新型条码识别奠定了基础。
1.3研究内容
1、HALCON的使用方法
2、HALCON条码识别程序编写
3、HALCON程序的编程原理
4、采用摄像装备对条码组合图像的采集
5、运行HALCON完成相关条码识别方案
6、分析程序运行后的结果
1.4论文组织
论文首先介绍条码组合的基础知识概念,对条码技术的发展与分类进行简单介绍。
然后介绍当今世界条码识别的两种不同技术手段和原理,并将两种技术手段进行对比。
最后介绍基于HALCON软件的条码组合识别系统的硬软与程序构成。
并对程序进行仿真和结果显示。
并对部分的源代码进行解释。
第2章条码组合识别知识概述
2.1条码技术的发展
条码技术诞生于20世纪40年代,但得到实际应用和迅速发展还是在近20年间。
欧美、日本等国家已经开始很普遍应用条码技术,并且还开始在世界各地迅速普及推广,其应用的领域还在不断扩大。
在我国,条码技术的研究开始于20世纪中后期,当时主要做法是跟世界上先进的条码技术进行学习和模仿。
而伴随着计算机技术开始在我国的发展和普及,条码技术开始在我国仓储、邮电、图书管理以及生产过程的自动化控制等领域得到初级应用。
从90年代中国物品编码中心代表中国加入国际物品编码协会(EAN)以来,中国商品条码系统的成员数量飞速增多,条码技术开始在各领域不断深入,目前,条码技术已广泛应用于我国众多的领域。
条码技术是在计算机领域、通信技术领域和光电技术的基础上兴起发展起来的一门综合科学技术,是多项技术产业相结合出来的产物,当今世界应用最为广泛的一种自动识别技术[1][2]。
条码技术包括符号技术、编码技术、印制技术、识读技术以及检测技术[3]。
在自动识别技术中,条码技术具有以下特点[4]:
(1)简单。
扫描的操作方式简单,而且条码符号的制作方式简便。
(2)信息采集的速度快。
录入方式可以采用传统计算机的键盘录入或者是条码扫描设录入,无论哪种方式,录入速度都非常快。
(3)可靠性高。
无论哪种方式对条码录入数据的可靠性都很高,错误率也很低。
(4)实用、灵活。
条码符号不仅仅可以单一的使用,还可以与其它相关的设备紧密联系,从而实现更多的功能。
(5)自由性大。
条码标签的位置与识别装置的自由度大。
(6)系统所涉及的符号制作成本和识别设备的成本都价格低廉。
2.2条码技术的分类
条码按照不同的编码规则、不同的分类方法可以分成很多种。
正常条码可分为一维条码和二维条码两种。
一维条码就是平常我们说的传统条码。
一维条码按应用又可分为物流条码和商品条码。
目前使用的频率较高的一维码制有:
EAN、EAN128码、UPC、交插25码和39码。
其中UPC码和EAN码是商品条码。
EAN128码、交插25码和39码是物流条码。
由于条码的信息容量比较小,商品上的条码也仅仅能容纳几位或几十位阿拉伯数字或字母,因此一维条码的使用就大大受到了限制[5]。
所以为了满足人们进一步的需求,在除具备一维条码的优点外,又发明了具有可靠性高、信息容量大、防伪保密性强等优点的二维条码。
通用的二维条码如:
Datamatrix二维条码,Maxicode二维条码,QRCode,Code49,Code16K,Codeone等,除了这些常见的二维条码之外,还有一些企业和机构发明的未完全公开的二维条码。
图2-1为常见的几种条码结构。
图2-1常见条码结构
2.3条码识别技术手段
2.3.1传统条码识读技术
传统的条形码识别读取技术是利用光电转换的原理识读条码的,光电扫描器是最主要的一个硬件设备。
传统一维条形码数据的采集和光电信号的转换都是由光电扫描器来完成。
光电扫描器利用光学系统来读取条形码的符号,再由光电转换器将条码的字符的条空图形转变成相应的电信号,然后通过电路系统对该电信号进行整形和放大,最后以二进制脉冲信号的形式输出给译码器。
译码部分由计算机方面的软硬件组成,它的功能是对得到的二进制脉冲信号进行译码,经整形和译码算法处理,最终获得条码字符信息,送入计算机进行处理[6]。
图2-2为传统的商品条码手持识读装置。
图2-3为光电条码识别的系统框图。
图2-2手持式商品条码识读仪
扫描系统信号整形译码至计算机
图2-3光电条码识别框图
在条码译码的设备方面,发展前期的一维码阅读器全部都是光电扫描装置。
因为它成本低而且自动识别率能够满足基本的录入要求,所以在传统阶段应用领域中处于主导的地位。
其中美国讯宝公司所提供的光电扫描器在一维条码识别市场中一直长期占据领先地位,是全球第一提供商。
尽管光电条码识别技术非常成熟,在市场上的应用也非常广泛,但是,对于物流传送带或生产流水线上的物品条码识别,这种传统的扫描器识别方法需要人工手动操作,且识读速度很慢。
同时,受条码印制材料、印刷技术以及条码本身的运动角度和速度的影响,基本上无法保证识别准确率,最重要的一个缺陷就是传统光电扫描无法扫描出二维条码,使用的范围及对象大大的受到了限制。
2.3.2基于机器视觉的条码识别技术
随着数字图像处理技术的发展,二维条码开始出现,以及在一些特殊应用场合,比如处理污损的条码的需要,机器视觉图像式的条码识别技术应运而生,它在识读有问题条码方面图像式识读器具有更强的优势。
(1)系统框架
基于机器视觉的条码检测技术是利用视觉图像采集系统直接采集图像的。
高速的摄像机所得到的条码图像是必须先进行图像预处理的。
条码识读的准确性是受图像处理结果质量的好坏影响的。
处理后的条码图像通过识读、译码、纠错处理将图像信息转化为条码所代表的数字信息。
最后再把译码的结果显示输出。
这样就减少了条码图像采集质量以及识读位置、条码污损等因素的影响,有效的提高条码识读的准确率。
系统框图如图2-4所示:
图2-4条码识别系统框图
(2)图像预处理
用摄像机拍摄的流水线上的条码组合图像,由于受到了光源、图像采集传输等不同因素的影响,不可避免的会存在噪声成分,如果要正确识别条码特征信息,就必须对图像进行预处理,包括灰度变换、图像二值化、几何校正等[7]。
灰度变换是图像增强的重要手段,它可使图像动态范围加大,使图像对比度扩展,图像更加清晰,特征更加明显。
HALCON软件将256色位图转换成灰度图。
运用点处理法中的灰度处理为实现数字图像的阈值变换提供前提条件。
要将256色位图转变为灰度图,首先必须计算每种颜色对应的灰度值。
灰度与RGB颜色的对应关系如下:
Y—0.299R+0.578G+0.114B
这样,按照上式可以方便地将256色调色板转换成灰度调色板[8]。
条码是由一组排列规则的条、空组成的标记。
条码识别是以二值图像为基础的。
条与空黑白分明,颜色对比强烈。
图像f(x,y)经过二值化的处理后可得到二值图像g(x,y)由下式表示:
g(x,y)=
(1)
如何确定分割阈值T是图像二值化过程中的关键。
尽管二值化算法很多,但是由于物体反光、流水线上实际环境光照不均匀等原因,图像噪声干扰较大,其灰度直方图分布不呈现双峰性,如果使用全局阈值二值化的话容易将条形码的条、空信息分割错误,效果很不理想。
因此使用哪种算法还是需要认真考虑的。
我们发现采用大津阈值法可以去除图像背景噪声干扰,实现二值化。
利用大津阈值方法选取局部阈值时,会先将灰度直方图上面像素点为零的灰度级排除,从而就不需要在整个的灰度级上计算组内方差和组间方差,从而大大减少计算量。
由于,
组内方差:
w2=
12
2+
1
22
(2)
组间方差:
B2=
1
2(M1-M2)(3)
对于给定图像,
w2+
B2=常数,当组内方差最小时,组间方差最大。
所以只需要计算所有以候选阈值点为门限分组时的组间方差,找出使组间方差最大的点
,
就是最佳阈值点[9]。
由上所诉,当以最小组内方差与最大组间方差作为最佳阈值标准,且能够保证选定区域同时包含背景点与目标点时,无论灰度直方图上的零点在什么地方,都可将它从候选阈值当中排除,只计算以直方图上不为零的点为门限分组时的组间方差就可找到最佳阈值点。
当对条码图像进行局部阈值选择时,考察的像素点不多,而且颜色也很单一,在局部域灰度直方图上大部分灰度级上像素点数为零,因此使用这种改进后的算法可以节约极大的计算量。
结果如图2-5、2-6、2-7所示:
图2-5原图
图2-6全局二值化结果图
图2-7大津阈值法二值化结果图
CCD相机采集的条码图像受流水线扫描过程中各种误差的影响,经常发生变形、倾斜。
因此,要对变形的条码图像采用矩阵处理进行几何校正。
相应地,对夹杂噪声的条码图像必须进行滤波处理,使图像既可保持边缘信息又能很好地消除噪声[10]。
我们常采用矩阵处理来对图像进行几何变换,即,变换后的点集矩阵=变换矩阵T变换前的点集矩阵。
假设2D图像的变换的矩阵为T,
T=
T就可分成四个子矩阵。
其中子矩阵可使图像实现镜像、比例、错切和旋转变换。
T列矩阵可以实现图像透视变换
。
行矩阵可以实现图像平移变换。
元素
可以使图像实现全比例缩放[11]。
图2-8所示为条码的旋转校正,旋转角度是沿顺时针旋转6度。
图2-8条码图像几何校正
(3)条码识读与译码过程
经过图像预处理得到的条码二值图像,利用计算机译码识读。
传统的识读方法是通过记录每个条或空所含像素的个数来确定实际的空或条的宽度。
这种方法对条码图像质量的要求往往非常高,必须做到实际测量值和标准值不能有丝毫偏差,否则就不能准确译码。
因此我们可采用相似边距离测量法[12]。
通过测量空条宽度,来计算相似边距离,再通过查表来找到相对应的条码字符,从而完成译码。
就以EAN-13条码为例,因为它左、右侧数据符排列规则的不同,所以,要想准确译码,就必须先判定译码方向。
通常判定条码的方向,是根据条码起始符位置和终止符位置来确定的。
但EAN-13的起始符和终止符具表现形式相同,所以单凭这个并不能来准确的确定方向。
通过观察编码规则我们发现,EAN-13码的左侧数据符可以是A或B两种排列(奇排列或偶排列),右侧数据符均为C排列(偶排列)。
且左侧第一个数据符始终都是A排列。
因此通过判断第一个符是奇排列方式还是偶排列方式,就可以确定译码方向。
对应流程图如图2-9所示。
NN
YY
N
N
Y
Y
图2-9译码流程图
经过这样的方式步骤来识别读取条码字符,结合各种条码的编码特点,设计条码码制数据库,即可实现不同码制条码的识读。
同时,在一定程度上消除了测量误差对条码识读结果的影响。
基于机器视觉的条码自动识读技术比传统的光电识别具有更高的适用性。
受条码图像质量的影响小,识别精度高,随着硬件价格的急速下降和数字图像处理算法的不断突破和完善,将会具有很好的应用价值。
第3章条码组合识别系统
3.1硬件构成
条码识别机器视觉系统由软硬件共同来支持。
一般包括条码探测、条码图像采集系统、条码图像处理系统、显示和智能决策模块等。
一个典型的工业条码机器视觉应用系统包括:
光源、镜头、相机、图像处理软件、主控制器、监视器、通讯/输入输出单元等。
具体流程是:
首先采用相机拍取被测条码的图像信号,之后通过A/D转变成数字信号后传送给专用的条码图像处理系统,然后根据像素分布、颜色和亮度等信息,进行各种运算,并抽取目标特征,最后再根据预先设计好的判别准则输出判断结果,从而控制驱动执机执行相应处理[13]。
图3-1是条码识读的视觉测试系统的简易构成。
图3-1视觉测试硬件构成
3.2一维码部分
3.2.1算子解析
(1)create/clear_bar_code_model()算子
作为读取条形码的第1步,该算子创建一个解析条形码的通用模型。
(2)set_bar_code_param()算子
set_bar_code_param(BarCodeHandle,’check_char’,’absent’):
是否验证校验位。
Code39,Codabar,2/5Industrial,2/5Interleaved等都有一个校验位,如图3-2,该算子用来设置是否验证校验位。
‘absent’:
不检查校验和,不验证条码的正确性。
‘present’:
检查检验和,验证条码的正确性。
图3-2校验位
(3)find_bar_code()算子
寻找条形码,是HALCON一维条码识别的核心算子。
典型的应用如:
find_bar_code(Image,SymbolRegions,BarCodeHandle,’Code128’,DecodedataStrings)。
参数Image是待处理图像,解码结果存储于DecodedataStrings字符串数组中。
如图3-3所示:
图3-3导入待处理的图像
3.2.2程序仿真
图3-4一维码识别程序编辑
如图3-4所示,将一维码的识别程序编写入HALCON软件的编辑器中。
图3-5一维条码识别图
图3-6一维条码识别图
图3-7一维条码识别图
如图3-5、3-6、3-7所示,程序将带有不同一维码图片当中的一维码用有色方框标识出来,并在图片的左上角显示出条码的码字。
3.3二维码
3.3.1算子解析
(1)create_data_code_2d_modle(‘QRCode’,[],[],DataCodeHandle)
二维码的创建开头的算子。
(2)set_data_code_2d_param(DataCodeHandle,‘default_parameters’,‘enhanced_recognition’)
设置选定参数的二维数据模型。
(3)find_data_code_2d(Image,SymboIXLDs,DataCodeHandle,[],[],ResultHandles,DecodedDataStrings)
检测和读取二维代码符号,也支持读取二维数据模型的序列。
3.3.2程序仿真
图3-8二维码识别程序编辑
如图3-8所示,将二维码的识别程序编写入HALCON软件的编辑器中。
图3-9识别正常模式的二维码
图3-10识别较为模糊的二维码
图3-11识别光线较暗的二维码
图3-12识别光线较光的二维码
如图3-9所示,程序能对正常的二维码进行识别,并用有色框将二维码标识出来,同时能显示出码字。
不仅如此,在二维码拍摄模糊(图3-10),或者光线过暗(图3-11),光线过光(图3-12)情况下,程序都能准确识别出二维码,说明HALCON软件识别二维码受图片的质量影响较小。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 halcon 组合 条码 识别
![提示](https://static.bdocx.com/images/bang_tan.gif)