• 4.38 MB
  • 2022-04-22 11:40:41 发布

二维条码识读技术及其应用研究毕业论文.doc

  • 108页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'二维条码识读技术及其应用研究中文摘要二维条码具有密度高、信息量大、可靠性高、纠错能力强、可表示多种信息、保密防伪性好、使用成本低廉等诸多优点。近年来,二维条码识别技术与射频识别(RFID)等自动识别技术一样,在国防、海关、税务、公共安全、交通运输、邮政、医疗等许多领域获得了非常广泛的应用。论文工作深入地研究了二维条码识读技术,设计并实现了基于DSP的二维条码识读终端。论文,针对DataMatrix等二维条码识读中的图像预处理及条码定位等关键技术,提出了多个核心算法,又辅以条码识读必须的几何变换、译码和纠错等算法,形成了一套完整的二维条码识读算法,并将其应用于产品设计。论文在条码图像预处理方面的创新性工作包括:其一,提出了一种基于模糊推理的小波域图像融合规则并设计了依据该规则进行图像融合的图像增强算法,解决了实际应用中因条码图像中的某些局部的对比度极低而难以正确解码的问题;其二,提出了一种先用小波分析估计光照分布来消除光照不均的影响再用大津法进行二值化的方法,解决了工业应用中出现的由于光照不均或背景过于复杂造成图像二值化效果差而影响解码的问题。论文在条码定位方面的创新也有两点:其一,提出了基于Gabor滤波和BP神经网络的二维条码区域提取方法(GF-BPNN),解决了复杂背景下,完整准确地提取条码区域的难题;其二,提出了一种基于边缘跟踪和Radon变换相结合的DataMatrix条码定位方法,克服了利用Hough变换或Radon变换检测直线边缘实现DataMatrix条码定位难以在计算量和定位精度之间取得平衡的缺点。除了上述两方面识读算法的创新外,论文还设计并实现了一种新型的基于DSP的高速二维条码识读终端。该终端的硬件平台包括以高性能浮点DSPTMS320C6713为核心的数据处理子系统和以FPGA为控制中心的图像采集子系统,而其软件设计则基于上述创新性的条码图像预处理和条码定位算法。创新的识读算法与独自设计的硬件平台共同构成了具有自主知识产权的二维条码识读终端。工业生产现场应用实验表明,论文工作研制的二维条码识读终端能够快速准确地识读生产线上的DataMatrix、PDF417等二维条码以及Code39、Code128等一维条码,识读速度和精准度均达到国内领先和国际先进水平。关键词:二维条码、条码识读、DataMatrix、DSP 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:      目录第一章绪论..................................................................................................................11.1条码技术介绍...........................................................................................11.1.1一维条码简介.................................................................................21.1.2二维条码简介及与一维条码的区别.............................................31.2典型的二维条码码制...............................................................................41.3二维条码技术的发展和应用现状...........................................................71.3.1二维条码的标准化.........................................................................71.3.2DataMatrix的发展和应用.............................................................81.3.3PDF417的发展和应用...................................................................91.4二维条码技术与其它自动识别技术的比较.........................................101.5论文的主要内容.....................................................................................121.5.1课题的提出和意义.......................................................................121.5.2主要工作和创新点.......................................................................131.5.3论文的内容安排...........................................................................151.6本章小结.................................................................................................15第二章二维条码识读技术........................................................................................172.1二维条码图像采集.................................................................................172.1.1扫描式图像采集...........................................................................172.1.2摄像式图像采集...........................................................................182.2条码图像预处理.....................................................................................192.2.1对比度增强...................................................................................192.2.2图像去噪.......................................................................................20 2.2.3图像二值化...................................................................................202.3条码定位与解码.....................................................................................202.4二维条码识读系统.................................................................................212.4.1二维条码识读系统分类...............................................................212.4.2二维条码识读系统的主要技术指标...........................................22-2.4.3本文所设计实现的二维条码识读系统......................................222.5本章小结.................................................................................................23第三章二维条码图像预处理...................................................................................253.1图像对比度增强.....................................................................................253.1.1常用的图像对比度增强方法......................................................253.1.2基于图像融合的条码图像对比度增强......................................303.2图像去噪.................................................................................................383.3图像二值化.............................................................................................393.3.1常用的图像二值化方法..............................................................393.3.2基于小波分解和大津法的图像二值化方法..............................423.4本章小结.................................................................................................49第四章DataMatrix条码定位与解码.......................................................................514.1DataMatrix条码符号简介.....................................................................514.2DataMatrix条码区域提取.....................................................................534.2.1现有条码区域提取方法..............................................................534.2.2基于Gabor滤波和BP神经网络的条码区域提取方法...........544.3DataMatrix条码精定位.........................................................................61 4.3.1边缘检测......................................................................................624.3.2边缘跟踪和角点检测..................................................................634.3.3Radon变换及顶点坐标计算........................................................664.3.4实验结果......................................................................................684.4条码图像几何校正.................................................................................694.4.1生成坐标变换矩阵......................................................................694.4.2图像校正......................................................................................724.5DataMatrix条码译码.............................................................................744.5.1生成映射数据区的二进制位图..................................................744.5.2提取码流......................................................................................774.5.3码流纠错......................................................................................814.5.4码流译码......................................................................................884.6本章小结.................................................................................................89第五章基于DSP的嵌入式二维条码识读终端的设计与实现..............................915.1终端概述.................................................................................................91-5.2终端硬件系统设计.................................................................................935.2.1TMS320C6713简介......................................................................945.2.2硬件主要模块设计及实现...........................................................965.3终端软件系统设计...............................................................................1065.3.1图像预处理.................................................................................1085.3.2条码区域提取.............................................................................1085.3.3条码精定位.................................................................................109 5.3.4条码解码.....................................................................................1095.4本章小结...............................................................................................109第六章实验结果......................................................................................................1116.1实验环境及方法...................................................................................1116.2识读性能及与国外同类产品的比较...................................................1126.3本章小结...............................................................................................115第七章总结和展望..................................................................................................1177.1论文工作总结.......................................................................................1177.2未来工作展望.......................................................................................119参考文献....................................................................................................................121发表论文和科研情况说明........................................................................................127致谢....................................................................................................................131 第一章绪论条码技术是在计算机应用实践中形成的一种集编码、印刷、识别、数据采集和处理于一体的新兴的自动识别技术[1]。它自20世纪40年代的美国发起,70~80年代开始在国际上得到广泛应用[2][3]。因其具有输入速度快、准确度高、可靠性强等优点,条码技术己被广泛地应用在商业流通、仓储、医疗卫生、图书情报、邮政、铁路、交通运输、生产自动化管理等领域,在当今的自动识别技术中占有重要的地位[4]。在当代社会,条码技术已经深入人们日常生活的方方面面,并与EDI和集装箱技术共同成为国际贸易的三大标准贸易方式[5]。我国于70年代末到80年代初开始研究,并在部分行业完善了条码管理系统,如邮电、银行、图书馆、交通运输及各大企事业单位等。1988年我国成立了“中国物品编码中心”,并于1991年4月19日正式申请加入了国际编码组织EAN协会[6]。近年来,我国的条码事业发展迅速,条码技术在商品零售、物品追踪、控制库存、记录时间和出勤、监视生产过程、质量控制、检进检出、分类、订单输入等方面已得到了广泛的应用[7][8]。但是,随着现代的发展和高新技术的进步,信息量出现爆炸式增长,人们迫切需要用条码在有限的几何空间内表示更多的信息来满足千变万化的信息需要。我们日常见到的印刷在商品包装上的条码是普通的一维条码,这些一维条码由于受到信息容量的限制和使用时对数据库的依赖,在某些场合使用十分不方便,而且效率很低。因此人们迫切希望发明一种新的条码,除具有普通条码的优点外,同时具有信息容量大、可靠性高、保密防伪性强、易于制作、成本低等优点。于是为了满足人们的这种需求,编码专家在80年代末发明了具有高密度、大容量、可靠性高、纠错能力和安全防伪性强等特点的二维条码,拓宽了条码的应用领域[5]。1.1条码技术介绍条码分为一维条码和二维条码。一维条码是指通常所说的传统条码,包括39码 、ITF码、EAN码和UPC码等。由于受信息容量的限制,一维条码只能充当物品的代码,而不能含有更多的物品信息,所以一维条码的应用不得不依赖数据库的存在。在没有数据库和网络的情况下,一维条码的应用受到了很大的限制有时甚至变得毫无意义。另外,一维条码表示汉字和图像信息几乎是不可能的,在很多场合的应用效率很低。为了解决传统条码所存在的问题,出现了二维条码技术,并且得到了广泛的应用,国内不少公司也纷纷推广自己研制的二维码,为二维码的发展起到了重要的促进作用。二维条码除具有一维条码的优点以外,还具有密度高、信息量大、可靠性高、可表示各种文字和图像、保密防伪性强、使用成本低廉等优点[9][10]。1.1.1一维条码简介一维条码是由一组规则排列的条、空以及对应的字符组成的标记,这些条和空组成的数据表达一定的信息,并能够用特定的设备识读,转换成与计算机兼容的二进制和十进制信息[11]。一维条码只在一个方向上表达信息,一般是在水平方向,垂直方向的高度通常是为了便于阅读器的对准。通常对于每一种物品,它的编码是唯一的,对于普通的一维条码来说,还要通过数据库建立条码与商品信息的对应关系,当条码的数据传到计算机上时,由计算机上的应用程序对数据进行操作和处理。因此,普通的一维条码在使用过程中仅作为识别信息,它的意义是通过在计算机系统的数据库中提取相应的信息而实现的,由此,它对网络资源和后台数据库表现出很强的依赖。世界上约有225种以上的一维条码,每种一维条码都有自己的一套编码规格,规定每个字母(可能是文字或数字或文数字)是由几个线条(Bar)及几个空白(Space)组成,以及字母的排列。目前,国际广泛使用的条码种类有EAN、UPC码(商品条码,用于在世界范围内唯一标识一种商品,我们在超市中最常见的就是这种条码)、Code39码、Code128码、Code93码、交叉25码(在物流管理中应用较多)、Codebar码(多用于医疗、图书领域)等。其中,EAN码是当今世界上广为使用的商品条码,已成为电子数据交换(EDI)的基础;UPC码主要为美国和加拿大使用;在血库、图书馆和照像馆的业务中,Codebar码被广泛使用;Code39码和Code128码为国内企业自定义码制,可以根据需要确定条码的长度和信息,主要应用于工业生产线领域、图书管理等;Code93码与Code39码类似但密度较大,可用来替代Code39码。一维条码的应用可以提高信息录入的速度,减少差错率,但同时也具有数据容量小、只能表达字母和数字、空间利用率较低、依赖相关数据库、保密性能不高、污损后可读性差等缺点。图1-1给出了几种常见的一维码。 1.1.2二维条码简介及与一维条码的区别二维条码技术的研究是近些年来兴起的,它的兴起主要是解决传统一维条码信息容量低,纠错能力弱,在很多情况下使用受限的缺点[12]。二维条码是在二维空间上由具有特殊结构的几何图形元素按一定规律和顺序组合成的图形,巧妙地利用构成计算机内部逻辑基础的 “0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息[13]。它在水平和垂直方向上存储信息,是一种高密度编码,比普通一维条码信息容量高几十倍以上。二维条码的编码范围非常广泛,它不仅可以像一维条码那样保存英文、数字等符号信息,还可以保存中文、图片、声音、指纹、签字等多种数据类型[14]。二维条码可加密,具有很高的保密性,且纠错能力很强,当纠错等级提高时污损50%依然可以完整读出信息。二维条码可以用扫描仪扫描或用摄像头直接读取,无需像一维条码那样需要后台数据库支持,使用起来十分方便。同时它还具有条码符号形状、大小可变的特点。表1-1给出了二维条码与一维条码的比较。二维条码作为一种全新的自动识别和信息载体技术,其经济性和可靠性正被越来越多的人们所了解和认知。目前,国外先进发达国家已将此项技术广泛应用于国防、海关、税务、公共安全、交通运输等信息自动携带、传递、防伪领域[15-17]。1.2典型的二维条码码制二维条码可以分为堆叠式二维条码和矩阵式二维条码。 1.堆叠式二维条码堆叠式二维条码形态上是由多行短截的一维条码堆叠而成,其编码原理是建立在一维条码基础之上,按需要将一维条码堆积成二行或多行。它在编码设计、校验原理、识读方式等方面继承了一维条码的一些特点,识读设备与条码印刷与一维条码技术兼容。但由于行数的增加,需要对行进行判定,其译码算法与软件也不完全相同于一维条码。有代表性的堆叠式二维条码有:Code16K、Code49、PDF417等。2.矩阵式二维码矩阵式二维条码是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义[18-23]。矩阵式二维条码是建立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。具有代表性的矩阵式二维条码有:DataMatrix、MaxiCode、QRCode、汉信码等。图1-2给出了几种常见的二维条码。下面将分别予以简略介绍。(a)PDF417(b)MAXICODE(c)QRCode(d)DataMatrix(e)汉信码等。 1、DataMatrix码。DataMatrix码是一种矩阵式二维条码,由美国国际资料公司的DennisPriddy和RobertS.Cymbalski发明,其发展的构想是希望在较小的条码标签上存入更多的资料量。DataMatrix条码有两种类型即ECC000-140和ECC200。ECC000-140具有几种不同等级的卷积错误纠正功能,而ECC200则通过Reed-Solomon算法利用生成多项式计算错误纠正码,不同尺寸的ECC200符号应用不同数量的错误纠正码。现在的DataMatrix码主要以对ECC200码的研究与应用为主,ECC000-140的应用很少,所以本文中,除特殊说明外,DataMatrix码均特指ECC200码。2、MaxiCode码。MaxiCode最初又称为UPSCode,是一种有美国UPS快递公司专门为邮件系统设计的专用二维条码,后由美国自动识别协会制定了统一的符号规格,正式称为MaxiCode,也称USS-MaxiCode(UniformSymbologySpecification-MaxiCode)。MaxiCode条码是一种固定尺寸、具有高容量和纠错能力的矩阵式二维条码,共有7种模式(包括两种作废模式),可表示全部ASCII字符和扩展ASCII字符。MaxiCode符号由紧密相连的多行六边形模块和位于符号中央位置的定位图形(三个黑色同心圆)组成,每个符号由884个六边形模块组成,分33层围绕着中央定位图形,每一层最多包含30个模块。3、QRCode。QRCode是由日本Denso公司研制的一种矩阵式二维条码,它除了具有信息量大、可靠性高、可表示图像及多种文字信息、保密防伪性强等优点外,还具有能高速全方位识读、能有效表示汉字等主要特点。每个QR码符号由名义上的正方形模块构成,组成一个正方形阵列。它由编码区和包括寻像图形、分隔符、定位图形和校正图形在内的功能图形组成。符号四周有空白区包围。4、PDF417码。PDF417码是由美国SymbolTechnologies公司的美籍华人王寅君博士发明的。PDF(PortableDataFile)意思是“便携数据文件”。因为组成条码的每一个条码字符都是由4个条和4个空共17个模块构成,故称为PDF417码。PDF417码是一种多层、可变长度、具有高容量和错误纠错能力的堆叠式二维条码。其条码符号是一个多行结构,符号的四周为空白区,上下空白区之间为多行结构,每行数据符号字符数相同,行与行左右对齐直接衔接。其最小行数为3,最大行数为90。每一个PDF417符号可以表示高达1108个字节、或1850个ASCII字符或2710个数字的信息。5、汉信码。汉信码是由中国物品编码中心牵头,于2005年研发完成的我国拥有完全自主知识产权的新型二维条码,是我国“十五” 重要技术标准研究专项《二维条码新码制开发与关键技术标准研究》课题的研究成果。它是目前汉字编码效率最高的二维条码,且支持全部GB18030字符集汉字以及未来的扩展。此外,它还具有信息容量大、密度高、抗畸变、抗污损能力强等特点,达到了国际先进水平。每个汉信码符号是由正方形模块组成的一个正方形阵列构成,包括信息编码区和功能图形区,其中功能图形区包括寻像图形、寻像图形分隔区与校正图形。1.3二维条码技术的发展和应用现状二维条码作为一种高容量信息存储、传递和识别的技术,自诞生之日起就得到了世界上许多国家的关注。美国、德国、日本、墨西哥、埃及、哥伦比亚、巴林、新加坡、菲律宾、南非、加拿大等国,不仅已将二维条码技术应用于公安、外交、军事等部门对各类证件的管理,而且也将二维条码应用于海关、税务等部门对各类报表和票据的管理,商业、交通运输等部门对商品及货物运输的管理,邮政部门对邮政包裹的管理,工业生产领域对工业生产线的自动化管理等。我国对二维条码技术的研究开始于1993年。目前,二维条码技术已在我国的汽车行业自动化生产线、医疗急救服务卡、涉外专利案件收费、珠宝玉石饰品管理、高速公路收费管理及银行汇票上得到了应用。1999年3月在北京举行的全国人大第九届三次全体会议和全国政协第九届三次会议期间,在随行人员证件、记者证、旁听证上成功地应用了二维条码技术,引起了与会代表和新闻界的极大关注。而汉信码的研发成功,实现了我国自主知识产权二维条码标准零的突破,必将有力地推动二维条码在我国的应用。接下来将从二维条码的标准化,以及矩阵式和堆叠式这两种二维条码各自具有代表性的DataMatrix和PDF417的应用现状来详细介绍二维条码的发展和应用现状。1.3.1二维条码的标准化二维条码相关标准包括技术标准与应用标准两大方面。其中技术标准包括码制标准、系统一致性标准等几个方面。国际上,二维条码标准技术国际标准由国际标准化组织ISO与国际电工委员会IEC成立的第1联合委员会JTC1的第31分委员会,即自动识别与数据采集技术分委员会(ISO/IEC/JTC1/SC31)负责组织制定。目前,已完成PDF417,QRCode,MaxiCode,DataMatrix等二维条码码制标准的制定,另有AztecCode等码制标准正在研究制定中。系统一致性方面的标准已完成二维条码符号印制质量的检验(ISO/IEC15415)、二维条码识读器测试规范(ISO/IEC15426-2)。二维条码的应用标准由ISO相关应用领域标准化委员会负责组织制定,如包装标签二维条码应用标准由国际标准化组织ISO包装标准化技术委员会(TC122)负责 制定,目前已完成包装标签标准的制定。另外,国际自动识别制造商协会(AIM)、美国标准化协会(ANSI)也已完成了PDF417,QRCode,Code49,Code16K,CodeOne等码制的符号标准。我国的二维条码标准化工作起步较晚,但已取得了一定的进展。中国物品编码中心已于2003年3月制定完成了二维条码标准体系,给出了我国二维条码标准体系的总体框架,以作为规划、计划我国二维条码技术与应用标准的基础和依据,并随着我国二维条码技术的广泛应用和发展对其进行不断的更新和充实。目前,在消化国外相关技术资料的基础上,中国物品编码中心已经制定了3个二维条码的国家标准:GB/T17172-1997《四一七条码》,GB/T18284-2000《快速响应矩阵码》与《汉信码》国家标准。1.3.2DataMatrix的发展和应用DataMatrix是现有条码中信息密度最大的一种,由于DataMatrix是点阵式的符号结构,因此它可以被印刷得非常小,整个符号最小可以小到0.0002平方英寸以内,是目前一维与二维条码中尺寸最小的,非常适合在各种实体产品上或电路板的零组件上进行印刷、点阵刻印或激光刻印等。加之Data Matrix二维条码具有很强的纠错能力,因此很适合应用在条码容易受损的场所,例如印在暴露于高热、化学清洁剂、机械剥蚀等特殊环境的零件上。这一切都使得DataMatrix的应用领域非常广泛[22]。国外在DataMatrix方面投入研发较早,技术也相当成熟,就目前国外应用来看,主要应用于电子、机械等制造业的产品和生产过程中,举例如下:1、在美国的波音、麦道公司,采用DataMatrix二维条码刻在精密的机器零件上面用于识别零件信息,由于其刻印技术可以使DataMatrix条码在零件表面保留很长时间不至被损毁。2、著名的通用CPU厂商AMD和Intel公司在其开发的各系列CPU背面印制DataMatrix二维条码,采用DataMatrix条码保存芯片信息。两大显卡公司ATI和Nvidia公司的部分显示芯片(GPU)也采用了同样的技术。3、德津丰根、仙童、摩托罗拉、德州仪器等一些著名的芯片公司采用DataMatrix条码标识其芯片信息。4、通用、雪弗兰等一批著名的汽车生产公司将DataMatrix条码广泛应用其生产线上,提高产品生产率和合格率。5、著名手机生产公司,芬兰的Nokia公司在其全系列的手机及其配件(充电器、电池、耳机等)均采用DataMatrix二维条码作为产品标识。我国有关二维条码的研究和应用开始于1993年,相对一些发达国家起步较晚,大部分技术及设备目前仍是从国外引进,导致二维条码使用成本较高,实际使用范围较小,从而严重制约了二维条码在我国的广泛应用。DataMatrix二维条码作为一种全新的二维条码技术在我国还处于研究和推广状态,各种相关配套设施都还没有到位,目前的应用范围还很狭隘,仅限于在少数电子、汽车等行业的企业流水线中使用。但是,由于DataMatrix二维条码在电子产品、IT信息技术、机械和航天等领域的应用,能大大增加中国产品在国际上的竞争实力,能够帮助减少生产成本,增强产品管理水平,开拓海外市场,因此该项技术受到了国家有关部门的高度重视,目前有关部门正在制定具体实施方案,尽快在国内的一些行业进行试点及推广应用,国内的许多学者、科研人员也开始对DataMatrix进行广泛深入的研究,发表了一些有关DataMatrix的论文[21][22][23],对DataMatrix的发展前景、应用领域、编/解码以及识别方法进行了讨论和研究。由此可以看出,DataMatrix二维条码技术作为一种先进的自动识别技术,在国内发展的条件已逐步成熟,逐渐开始在实际生活和生产中得到应用,发展前景十分广阔,在中国大行其道指日可待。1.3.3PDF417的发展和应用作为成熟的条码技术,PDF417条码已经或者正在被许多政府部门、工业团体所采纳。TCIF(美国电信工业论坛)将PDF417条码作为重要电讯产品的标识标准。美国国防部在其新的军人证上采用PDF417条码作为机读标准,已经在全球700多个美军基地投入使用。1、身份识别方面的应用。AAMVA(美国机动车管理局)将PDF417条码选定为所有驾驶员和机动车管理的二维条码标准。美国亚利桑那州等二十多个州的驾驶证、美国军人证、军人医疗证等几年前就已采用了PDF417技术。此外,加拿大、新西兰、哥伦比亚、南非、埃及、菲律宾、巴林、黎巴嫩等许多国家也已在身份证或驾驶证上采用二维条码。香港97回归后,香港居民新发放的特区护照上用的就是PDF417技术。2、货运运输方面的应用。AIAG/ODETTE(北美和欧洲汽车组织)将PDF417条码选定为EDI(电子数据交换)标准。发货商将发货单据中的大量信息编成一张PDF417条码标签提交给货运商,通过扫描条码,信息立即传入货运商的计算机系统,使得整个运输过程的效率大大提高。 3、文件和表格应用。日本Seimei保险公司的每个经纪人在制作保单的同时将保单内容编成一个PDF417条码,打印在单据上,这样当他们回到办公室就可以使用二维条码阅读器扫描条码将数据录入主机,提高了数据录入的准确性和速度。墨西哥也将PDF417条码应用在报关单据与证件上,从而防止仿造及犯罪。4、资产跟踪。美国钢管公司在各地拥有不同种类的管道需要维护。为了跟踪每根管子,他们将管子的各种信息编成一个PDF417条码,制成标签后贴在管子上。当管子移走或安装时,操作员扫描条码标签,数据库信息得到及时更新。PDF417条码是目前在中国发展较好的二维条码,这是由于PDF417属于堆叠式条码,可以作为传统一维条码的替代品,PDF417已在国内的证件管理,海关、税务、银行等部门对各类报表和票据的管理,商业、交通运输等部门对商品及货物运输的管理,邮政部门对邮政包裹的管理以及图书,印刷等行业都有广泛而深入的应用[16][17]。1.4二维条码技术与其它自动识别技术的比较自动识别技术是指不使用键盘,即可将信息数据自动输入计算机、微处理器、逻辑控制器等信息系统的技术。自动识别技术是以计算机技术和通信技术的发展为基础的综合性科学技术,近几十年在全球范围内得到了迅猛发展。除了条码技术以外,常用的自动识别技术还包括:磁卡识别技术、接触式IC卡识别技术及射频识别技术等等。磁卡识别技术应用了物理学和磁力学的基本原理。磁卡使用磁条记录信息,磁条就是一层薄薄的由定向排列的铁性氧化粒子组成的材料(也称为涂料),用树脂粘合在一起并粘在诸如纸或塑料这样的非磁性基片上。其优点是数据可读写,即具有现场改变数据的能力;数据存储量能满足大多数需要,便于使用,成本低廉;还具有一定的数据安全性;能粘附于许多不同规格和形式的基材上;这些优点使之在很多领域得到广泛应用,如信用卡、银行ATM卡、机票、公共汽车票、自动售货卡、会员卡、现金卡(如电话磁卡)等。磁卡识别技术是接触式识读,它与条码有3点不同:一是其数据可作部分读写操作而条码技术只能读不能写;二是相同面积上的编码容量比一维条码大,但比二维条码小;三是对于物品逐一标示成本比条码高,而且由于接触性识读造成灵活性差,而条码技术属于非接触性识读,灵活性好。另外其抗污染和抗干扰的能力较差,使用寿命短。接触式IC卡使用存储器芯片存储信息,存储容量大;存储的数据可读写;属于接触式识读,通过电路接口读写信息;具有数据保密性和智能性;有一定的抗环境污染和抗干扰能力;使用寿命长,但成本较高。接触式IC卡应用广泛,如公共电话卡、现金卡、会员卡等等。射频识别(RadioFrequencyIdentification,RFID)技术的基本原理是电磁理论。射频系统的优点是不局限于视线,识别距离比光学系统远,射频识别卡具有可读写能力,可携带大量的数据,难以伪造和具有智能等。射频识别标签基本上是一种标签形式,将特殊的信息编码进电子标签,并将标签粘贴于需要识别或追踪的物品上,如货架、汽车、动物等。射频识别标签能够在人员、地点、物品和动物上使用,其适用领域包括物料跟踪、运载工具和货架识别等要求非接触数据采集和交换的场合,由于射频识别标签具有可读写能力,对于需要频繁改变数据内容的场合尤为适用。目前,最流行的应用是在交通运输(汽车和货箱身份验证)、路桥收费、保安(进出控制)、自动生产和动物标签等方面。其他应用包括自动存储和补充、工具识别、人员监控、包裹和行李分类、车辆监控和货架识别。其缺点是成本高,而且一般不能随意扔掉,而多数条码扫描寿命结束时即可扔掉。表1-2给出了二维条码与磁卡、IC卡和射频识别等技术的对比。作为常用的自动识别技术,这几种技术在一定程度上具有可替代性,但由于二维条码具有的一些显著优点,也使其具有较大的市场竞争力。 1.5论文的主要内容1.5.1课题的提出和意义目前在国际上,条码识读设备是读取各类条码的主要设备,随着二维条码的推广,社会对条码识读器的需求也越来越多,常见的条码识读器类型[24][25]有:1、线性CCD和线性图像式识读器(LinearImager):可阅读一维条码和线性堆叠式二维条码(如PDF417),在阅读二维条码时候需要沿条码的垂直方向扫过整个条码,可称之为“扫动式阅读”。这类产品比较便宜,有很好的性价比。2、带光栅的激光识读器:可以阅读一维条码和线性堆叠式二维条码。阅读二维条码时将光线对准条码,由光栅元件完成垂直扫描,不需要手工移动。3、摄像式识读器(ImageReader):采用摄像方式将条码图像摄取后进行分析和译码,可阅读一维条码和所有类型的二维条码,是一种高端设备。上述的三种识读器被广泛应用于条码的识读,其中前两种识读器均属于扫描式识读,被广泛应用于一维条码及堆叠式二维条码的识读,但是对于DataMatrix等矩阵式二维条码则无能为力。摄像式识读器却可以用于所有一维及二维条码的识读,但目前基于图像处理与计算机视觉的摄像式二维条码识读器处于发展阶段,产品本身有很大的局限性,且被少数国外企业垄断。具体表现在以下几个方面。(l)使用专用设备,造价高(一万元左右),且加密性受限于制造商。二维条码识读器的制造长期被个别国外厂商所垄断。尽管国内也有少数几家公司或者研究机构也研发类似的二维条码的识读设备,但是识读设备的识读率、识读速度等性能尚与国外的同类产品有很大的差距。(2)通用性差。尽管是一个图像采集器,由于各码制识读方法的专用性,不能达到一种硬件多种使用的目的。(3)识读功能有局限性。对光照不均、几何畸变、形变、散焦模糊等状况下的条码图像识读率不高。(4)使用不便。以DataMatrix条码为例,不同版本的符号(最大的144x144符号比10x10大百倍),要用不同范围的景深,而采用自动对焦装置可以实现可变景深,但会造成造价过于昂贵,可靠性降低。针对上面的问题,本文研究二维条码识读及应用技术并开发出相应产品,形成一套基于DSP的成本低廉、适应性好、性能良好的二维条码识读终端,可在同一硬件平台上快速准确地完成多种二维条码和一维条码的自动识读,达到或超过国外同类产品性能,有利于提高我国在条码方面的竞争力,推动我国乃至世界的信息化水平,提高社会管理效率和经济效益。因此对二维条码的识读技术及其应用的研究有着重要的现实意义和使用价值。1.5.2主要工作和创新点论文深入地研究了二维条码技术,设计并实现了基于DSP的二维条码识读终端。论文针对DataMatrix等二维条码识读中的图像预处理及条码定位等关键技术,提出了多个核心算法,辅以条码识读所必须的几何变换、译码和纠错等算法,形成了一套完整的二维条码自动识读算法,并将其应用于产品设计,能有效完成二维条码自动识读任务。此外,本文还设计并实现了一种新型的基于DSP的高速二维条码识读终端。该终端的硬件平台包括以高性能浮点DSPTMS320C6713为核心的数据处理子系统和以FPGA为控制中心的图像采集子系统。而识读终端的软件设计则基于上述提出的创新性的图像预处理和条码定位算法。创新的识读算法与独自设计的硬件平台共同构成了具有自主知识产权的二维条码识读终端,可以在不同环境条件下快速准确地完成Data Matrix、PDF417、Code39及Code128等多种二维条码和一维条码自动识读任务,其识读速度和精准度均达到国内领先和国际先进水平。本文创新点如下:规则进行图像融合的图像增强算法以及一种先用小波分析估计光照分布来消除光照不均的影响再用大津法进行二值化的方法:*提出了一种基于模糊推理的小波域图像融合规则并设计了依据该规则进行图像融合的图像增强算法,解决了实际应用中因条码图像中的某些局部对比度极低而难以正确解码的问题。该算法通过融合多幅条码信息互补的条码图像来增强图像,使图像信息完整清晰以利于解码。由于融合规则的设计对融合效果的好坏至关重要,本文提出了一种基于模糊推理的小波域图像融合规则。该规则保留了现有小波域图像融合规则融合图像清晰的优点,同时又引入了模糊推理,解决了图像融合中的不确定性问题,克服了现有规则存在的信息不完全和易受噪声干扰的缺点。实验结果证明,基于模糊推理的小波域图像融合规则更加有效的融合了源图像的信息,具有更好的鲁棒性,尤其在源图像受到噪声污染的情况下,其优势更加明显。*提出了一种先用小波分析估计光照分布来消除光照不均的影响再用大津法进行二值化的方法,解决了工业应用中出现的由于光照不均或背景过于复杂造成图像二值化效果差而影响解码的问题。该方法首先利用小波分解提取条码图像的低频信息估计物体表面光照的近似分布;然后用图像函数除以得到的近似光照分布函数消除光照不均的影响;最后再用大津法计算全局阈值并实现二值化。实验表明,这一方法能够有效消除光照不均的影响,取得使用全局阈值法无法达到的二值化效果,同时又可以避免采用局部阈值法可能会出现的块效应,具有较好的性能和实用性,计算量的增加也是完全可以接受的。2、在条码定位方面,本文提出了一种基于Gabor滤波和BP神经网络的DataMatrix二维条码区域提取方法(GF-BPNN)以及一种基于边缘跟踪和Radon变换相结合的DataMatrix条码精定位方法:*提出了基于Gabor滤波和BP神经网络的二维条码区域提取方法(GF-BPNN),解决了复杂背景下,完整准确地提取条码区域的难题,克服了通过版面分析来提取条码区域的方法存在的形态学结构体难以选择和虚警率比较高的缺点。GF-BPNN首先由不同尺度不同方向的Gabor滤波器对图像进行滤波提取其纹理特征;再进行特征变换,使所得特征具有尺度和旋转不变性;然后利用BP神经网络按照前述特征对像素进行分类;最后经过形态学后处理提取DataMatrix条码区域。实验结果证明,本文提出的GF-BPNN方法,可以很好地提取出复杂背景下的DataMatrix条码区域,且具有旋转不变性和尺度不变性,比前述通过版面分析提取条码区域的方法具有更高的准确性和鲁棒性。*提出了一种基于边缘跟踪和Radon变换相结合的DataMatrix条码定位方法,克服了利用Hough变换或Radon变换检测直线边缘实现DataMatrix条码定位的方法难以在计算量和定位精度之间取得平衡的缺点。该方法利用边缘跟踪检测“L”形寻边区外边缘并仅在沿“L”形寻边区顶端和右端短边缘的方向附近±22.5°的角度范围内进行Radon变换即可完成条码精定位,可大大减小计算量。实验结果证明,本文所提出的条码精定位算法能够准确定位DataMatrix条码,且计算量大大减小,克服了单纯依靠Hough变换或Radon变换进行定位时计算量过大的缺点。3、本文创新性地设计并实现了一种新型的基于DSP的高速二维条码识读终端。该终端的硬件平台包括以高性能浮点DSPTMS320C6713为核心的数据处理子系统和以FPGA为控制中心的图像采集子系统。而识读终端的软件设计则基于上述提出的创新性的图像预处理和条码定位算法。创新的识读算法与独自设计的硬件平台共同构成了具有自主知识产权的二维条码识读终端,能同时快速准确地识读DataMatrix、PDF417、Code39及Code128等多种二维条码和一维条码,其识读速度和精准度均达到国内领先和国际先进水平。* 在硬件方面,由于二维条码的识读过程中包含大量的浮点运算,所以为了保证条码识读的精度、成功率和速度,本文创新性地以德州仪器(TexasInstruments,TI)公司的TMS320C6000系列的主频仅为225MHz的浮点DSP:TMS320C6713为核心处理器。该处理器的使用保证了数据处理的精度,大大提高了条码识读成功的概率。同时由于浮点DSP进行浮点运算时的速度优势,系统所需要的芯片主频大大降低,降低了辅助电路设计生产的难度,减小了硬件开销,也削减了成本。*在软件方面,本文所开发的二维条码识读终端上运行的识读软件是基于上述提出的创新性的图像预处理和条码定位核心算法而自主开发的,并将针对多种不同码制的一维条码和二维条码的译码算法整合到一起,能同时快速准确地识读DataMatrix、PDF417、Code39及Code128等多种二维条码和一维条码。1.5.3论文的内容安排第二章概括介绍二维条码识读技术。第三章详细介绍二维条码图像预处理过程中的核心算法,包括图像对比度增强、图像去噪和图像二值化等。第四章以DataMatrix为例详细介绍条码区域提取即粗定位和精定位等条码定位过程中的核心算法以及条码的几何校正和译码过程,包括条码几何校正、条码映射数据区的二进制位图生成、码流提取、码流纠错和码流译码。第五章详细介绍了基于DSP的嵌入式二维条码识读终端的设计与实现。第六章给出了基于DSP的嵌入式二维条码识读终端的实验结果及与国外同类产品的性能比较。第七章对本文工作进行总结,并给出未来工作展望。1.6本章小结本章介绍了条码技术、二维条码与一维条码的区别、典型的二维条码码制,二维条码与其它自动识别技术的比较以及二维条码的发展状况;阐述了课题的提出和意义,进而提出了一套成本低廉、适应性好、性能良好的二维条码识读算法及相应的识读系统,该系统将摄像头采集的条码图像通过所提出的二维条码识读算法进行识读,可以在不同环境条件下快速准确地完成DataMatrix、PDF417、Code39及Code128等多种二维条码和一维条码自动识读任务,其识读速度和精准度均达到国内领先和国际先进水平。 第二章二维条码识读技术二维条码识读是通过获取载体上的图像信息,译码得到二维条码符号承载的信息的过程。识读过程可分为图像采集、图像预处理、条码定位及解码等几个主要步骤。2.1二维条码图像采集二维条码图像采集有两种方式:扫描式和摄像式。堆叠式二维条码可以采用扫描式和摄像式两种方式进行识读;而矩阵式二维条码由于其基本单元为模块(正方形、圆形、六边形等),只能采用摄像式识读方法进行识读。所以为了实现二维条码识读终端的通用性,本文主要研究摄像式识读技术,对扫描式识读方式仅进行简单介绍。2.1.1扫描式图像采集扫描式条码识读方法多用于一维条码识读。因为堆叠式二维条码可视为由多行一维条码堆叠而成,所以对于二维条码,扫描式识读可以也仅能用于堆叠式二维条码的识读。扫描式识读器逐行对堆叠式二维条码扫描,将获得的各行信息组合起来,完成堆叠式二维条码的图像采集。扫描式识读的基本原理为:由光源发出的光线经过光学系统照射到条码符号上,反射回来的光经过光学系统成像在光电转换器上,使之产生电信号,信号经过电路放大后产生一模拟电压,它与照射到条码符号上被反射回来的光强成正比,再经过滤波、整形,形成与模拟信号对应的方波信号,经译码器解释为计算机可以识别的数字信号。其基本构成如图2-1所示。扫描系统由光学系统及探测器即光电转换器件组成,完成对条码符号的光学扫描,并通过光电探测器将条码条空图案的光信号转换成电信号。信号整形部分由信号放大、滤波、波形整形组成,它的功能在于将条码的光电扫描信号处理成为标准电位的方波信号,其高低电平的宽度和条码符号的条空尺寸相对应。码字生成及译码部分则完成将信号整形部分输出的方波信号转化为对应的二进制序列,按照码制规则转换为相应码字并译码。 2.1.2摄像式图像采集摄像式识读方式是通过光学透镜将条码成像在半导体传感器上,再通过模/数转换或直接数字化得到数字图像并输出,经后续图像处理操作,包括预处理、条码定位、失真校正等,得到二维条码携带的信息并译码,最终完成二维条码图像的采集和识读工作。从长远发展的角度看,摄像式技术既能采集矩阵式二维条码图像,也能采集堆叠式二维条码和一维条码图像,采用此方式将是一个必然的趋势。所以本文主要研究摄像式识读器,后面所介绍的所有识读技术均针对摄像式识读方式。光学成像方式又有两种,分别对应不同的半导体传感器:一种是面阵CCD;另一种是CMOS。摄像式图像采集的应用中绝大多数采用技术较为成熟的CCD,少数采用了CMOS器件。CCD(电荷耦合器件)技术是一种传统的图像/数字光电耦合器件,目前已经广泛应用。其基本原理是利用光学镜头成像,将图像信息转化为时序光电信号,实现A/D转换为数字信号。CCD的优点是像质好,感光速度快,有许多高分辨率的芯片供选择。但其信号特性是模拟输出,必须加入模数转换电路,加上CCD本身要用时序和放大电路来驱动,所以硬件开销很大,电路复杂,成本很高,且价格下降的空间已经很小。CMOS(金属氧化物半导体)技术是近年发展起来的新兴技术。与CCD一样,是一种光电耦合器件,但其时序电路和A/D转换是集成在芯片上的,无需辅助电路实现。其优点是,单块芯片就能完成数字化图像的输出,硬件开销非常少,成本低。缺点是像质一般(感光像素间的漏电流比较大),感光速度较慢。但在图像采集和转换方面,CMOS可以和大规模逻辑阵列技术(FPGA)或高速嵌入式微处理器(ARM或DSP)配合使用,从而能够满足图像采集和信号传输的要求。近年来CMOS技术发展很快,图像质量与分辨率都有非常大的提高,并且性价比越来越高。目前,国际上开发的产品正在逐步采用该项技术。本文所提出的二维条码自动识读终端就选用了基于CMOS传感器的摄像头。2.2条码图像预处理二维条码主要通过各模块的黑白来表示相应信息,而摄像式获取的二维条码图像难免会出现对比度不高、噪声较大、以及光照不均等问题造成像素黑白不明产生误判,尤其在工业应用中,问题更加严重。为了解决上述问题,需要采用一些数字图像处理的手段如对比度增强、图像去噪、消除光照影响并二值化等对条码图像进行预处理以将这些问题对条码识读带来的严重影响降到最小。故二维条码图像预处理操作主要包括图像对比度增强、图像去噪和图像二值化三步。2.2.1对比度增强对比度增强是通过改变二维条码图像像素的灰度,扩展图像灰度的动态范围,使图像明暗更加分明,改善视觉效果,也有利于机器对图像亮区域和暗区域的区分和识别,直接影响到机器能否正确区分出二维条码的黑白模块从而正确识读,在一定程度上决定了识读器所能适应的应用环境。一般情况下,对比度增强主要可以通过直接灰度变换和直方图修正两大类方法来实现。直接灰度变换是一种点操作,根据原始图像中每个像素的灰度值,按照某种映射规则,将其转化为另一灰度值,来达到图像增强的目的。直接灰度变换可使图像灰度动态范围加大,扩展图像对比度,使图像清晰、特征更加明显。其关键是根据增强要求设计映射规则或称变换函数。根据变换函数的不同,常用的直接灰度变换方法包括:线性变换、分段线性变换和非线性变换等。 直方图修正方法是以概率论为基础的图像增强方法。直方图反映了图像灰度分布的统计特征,直方图修正就是以直方图作为变换的依据,使变换后的直方图成为期望的形状,来实现图像增强。直方图修正主要包括直方图均衡化和直方图规定化两种。上述两大类对比度增强方法都是建立在图像质量不是太差,黑白像素的灰度值之间存在一定差别的前提下的,大多数情况下可以奏效。但如遇到环境极其恶劣,造成局部对比度极低,使得原本黑白分明的像素在图像上无法分辨甚至毫无差别时,这两类方法就无能为力了。针对这种情况,本文提出了一种利用图像融合的方法对条码图像进行增强的方案,将在第3.1.2节中详细介绍。2.2.2图像去噪图像去噪,顾名思义,就是去除图像中的噪声。图像获取过程中产生的随机噪声是不可避免的,为了提高后续条码的识别工作的准确性,在预处理阶段进行去噪处理是必要的。噪声多体现为高频干扰,因此为了抑制噪声,最简单的便是选用线性低通滤波,但由于边缘轮廓中同样含有大量高频信息,所以在低通滤波滤除噪声的同时,也必然使边界变模糊。此时,如果再采用高通滤波锐化边缘,则之前残留的噪声也同时被加强了,去噪效果不好。而图像去噪要求既消除噪声又尽量保持图像的细节,由于此处的图像噪声主要表现为脉冲噪声,所以本文选用中值滤波去除图像噪声,可克服低通-高通滤波去噪的缺点,具体细节将在第3.2节中详细介绍。2.2.3图像二值化图像二值化,顾名思义,就是将灰度图像上的所有像素分为两类:黑像素和白像素。二维条码是通过各模块的黑白来分别代表“1”“0”信息的,要正确识读二维条码就必须正确区分像素的黑白,因此能否正确地将图像二值化,直接影响到识读正确与否。图像二值化的关键是选取区分黑白像素的灰度阈值,灰度值大于等于阈值的像素为白像素,灰度值小于阈值的像素为黑像素。但图像的光照分布往往会影响阈值的选取,尤其是光照不均的情况下,阈值选取比较困难。目前常用的阈值选取方法包括:大津法、最大熵法、最小错误概率法、迭代阈值法和局部阈值法等,第3.3.1节将会一一予以详细介绍。但大津法、最大熵法、最小错误概率法和迭代阈值法都属于全局阈值法,使用单一阈值对整幅图像进行二值化,对于光照不均或背景十分复杂的图像效果不好。而局部阈值法处理光照不均或背景十分复杂的图像时效果比全局阈值法好,但计算量大且存在块效应,效果仍不理想。故本文提出基于小波分解和大津法结合的图像二值化方法,具体将在第3.3.2节详细介绍。2.3条码定位与解码条码定位是二维条码识读中的关键一环,是进行正确解码的前提条件。简单说来,条码定位就是要在包含条码的图像中,准确找到二维条码的位置。在不同的图像中,条码的大小,位置和方向都是不同的,加之实际应用中图像背景很复杂,使得精确确定条码的位置和形态成了一件非常困难的事。二维条码定位分为两步:粗定位和精定位。粗定位就是在复杂的背景中,提取出大概的条码区域为下一步精定位做准备;而精定位则是要找到条码的精确位置以便于后续步骤中对条码进行几何校正和译码。由于各种不同码制的二维条码符号有着不同的形状特征,具有各自不同的寻像图形和定位图形,所以具体的条码定位方法也是随着码制的不同而不同的。条码的解码则是对已经确定位置的条码进行几何校正、信息提取、码流纠错、码流译码等操作最终得到二维条码中存储的信息。上述的操作只是一个通用的流程,具体的实现是与各种二维条码的编码规则密切相关的,不同码制的二维条码有不同的解码方法。具体的条码定位及解码方法都是随条码码制不同而各异的。而DataMatrix条码是一种很具有代表性的二维条码,其最大特点就是“小”,信息容量大、密度高,被广泛用于标示集成电路、药品等小件物品,在制造业的流水线生产过程中应用也很普遍,但在国内的研究和应用还比较少。所以本文就以Data Matrix为例,提出了相应的定位算法,并对其解码方法进行了介绍,详见第4章。2.4二维条码识读系统2.4.1二维条码识读系统分类二维条码识读系统可以按照识读原理、工作方式、工作距离、设备功能、设备移动性等方面分类。按识读原理分类,可分为:激光式识读系统,使用时将扫描线对准条码,由光栅部件完成扫描,可识读堆叠式二维条码;CCD/CMOS成像式识读系统,采用CCD/CMOS成像方式获取条码图像后进行图像处理和译码,可识读矩阵式和堆叠式二维条码。按工作方式分类,可分为:在线式识读系统,主要由光电扫描头、光电转换器和译码器组成,需要与计算机即时通信,通过串口、并口或USB等接口将扫描后的信息传回计算机,不能脱离计算机使用;嵌入式识读系统,以嵌入式微处理器为核心,具有数据存储、信息处理、通信传输等功能,可以脱离计算机进行条码扫描、识读、信息的采集和处理,可编程。按工作距离分类,可分为:接触式识读系统,包括卡槽式条码扫描器等;非接触式识读系统,包括CCD/CMOS识读器,激光识读器等。按设备功能分类,可分为:识读器,不具备信息管理、大容量信息存储功能的识读设备;数据采集器,除了可以识读二维条码,还具有信息存储、信息管理功能的识读设备。按设备移动性分类,可分为:固定式识读系统,其工作场合固定,不便于移动,例如工厂自动化识读设备、门禁系统的台式识读设备;便携式,较为轻便,适合在各种工作场合下使用,例如手持终端、无线型终端、无线掌上电脑等。2.4.2二维条码识读系统的主要技术指标二维条码识读系统的主要技术指标包括:1、可识读的码制通常二维条码识读系统的识读码制包括Code39、Code128等一维条码和PDF417、DataMatrix等二维条码。2、通讯接口二维条码识读系统中的通讯接口主要用于将译码后的数据输出到计算机系统,一般有以下几种:RS-232,RS-485,通用网络接口,USB2.0,红外线,蓝牙等。3、景深景深是指二维条码识读系统读取距离的范围,与能够识读的条码符号最小模块尺寸以及识读设备的光学系统有关。4、分辨率在景深范围内可识读的二维条码符号的最小模块尺寸。5、首读率识读系统对一组条码进行一次性识读,其中能够正确识读的概率。6、识读速度二维条码识读系统每秒钟能够识读条码的个数。7、其他技术指标其他技术指标涉及识读系统的工作环境、安装要求等方面的参数。如工作温度、存储温度、相对湿度、跌落规格、密封标准、环境光抗扰度等。2.4.3本文所设计实现的二维条码识读系统本文创新性地设计并实现了一种新型的基于DSP的高速二维条码识读终端。该终端的硬件平台包括以高性能浮点DSPTMS320C6713为核心的数据处理子系统和以FPGA为控制中心的图像采集子系统。而识读终端的软件设计则基于本文所提出的创新性的图像预处理和条码定位算法。创新的识读算法与独自设计的硬件平台共同构成了具有自主知识产权的二维条码识读终端,能同时快速准确地识读Data Matrix、PDF417、Code39及Code128等多种二维条码和一维条码。其最大图像分辨率为752*480,配备RS-232接口与计算机通信,景深为5~15cm,最小可分辩模块宽度可达3mil,识读速度可达每秒10次以上,最高可达每秒60次,首读率在98%以上,达到了国内领先和国际先进水平。系统具体描述将在第5章详细介绍。2.5本章小结本章概要介绍了二维条码识读技术,包括二维条码图像的采集技术、条码图像预处理技术、条码定位与解码技术等,并简要介绍了二维条码识读系统的分类和主要技术指标。最后介绍了本文所设计实现的二维条码自动识读终端的情况,具体情况见第5章。 第三章二维条码图像预处理二维条码图像预处理操作主要包括图像对比度增强、图像去噪和图像二值化三步。3.1图像对比度增强3.1.1常用的图像对比度增强方法图像对比度增强主要可以通过直接灰度变换和直方图修正两大类方法完成[26]。3.1.1.1灰度变换直接灰度变换是一种最简单、有效的对比度增强方法,它是将原图像灰度函数f(x,y)经过一个变换函数g=T[f]转换为一个新的灰度函数g(x,y)。即g(x,y)=T[f(x,y)](3-1)直接灰度变换可使图像灰度动态范围加大,扩展图像对比度,使图像清晰、特征更加明显[27]。根据变换函数的形式,灰度变换可分为:(1)线性变换。当采集到的图像整体亮度过暗或过亮,使图像灰度动态范围过小造成图像模糊不清,没有灰度层次感时,可采用一个线性单值函数,对图像灰度作线性变换,扩展其动态范围,从而有效地增强图像对比度,改善视觉效果。假设原图像灰度函数为f(x,y),灰度分布范围为[a,b],增强后的图像灰度函数为g(x,y),灰度范围为[a",b"],则(3-2)图3-1为线性变换示意图,图3-2则为变换前后对比图。 (2)分段线性变换分段线性变换是将原图像灰度分布区间[a,b]分隔成两段或多段分别进行线性变换,从而突出用户感兴趣的目标或灰度范围,相对抑制用户不感兴趣的灰度范围,使感兴趣目标的灰度细节得到增强。常用的是三段式分段线性变换,如图3-3所示。其变换式如下 式中的c,d,c",d"需要用户根据不同需要来自行确定。图3-4为分段线性变换效果对比图。 (3)非线性变换当变换函数为非线性函数时,可实现图像灰度的非线性变换。常用非线性变换为对数变换和指数变换[28]。对数变换用于扩展低灰度区,压缩高灰度区,适用于较暗或过暗的图像,其一般形式是(3-4)式中的a,b,c是用来调整变换曲线的位置和形状的参数。指数变换与对数变换相反,它压缩低灰度区,扩展高灰度区,适用于较亮或过亮的图像,其一般形式为(3-5)式中的a,b,c同样是用来调整变换曲线的位置和形状的参数。图3-5为对数变换和指数变换的示意图,图3-6则是对数变换和指数变换的效果对比图。 3.1.1.2直方图修正直方图反映图像灰度分布的统计特征,直方图修正就是以直方图作为变换的依据,使变换后的直方图成为期望的形状。直方图修正主要包括直方图均衡化和直方图规定化两种[29],最常用的是直方图均衡化,因此这里仅对直方图均衡化进行介绍。直方图均衡化也叫直方图均匀化,就是使给定图像的直方图在较大的动态范围内的分布趋于均衡,从而增大反差,使图像细节清晰达到图像增强的目的。假设图像f(x,y)的灰度范围为minmax[f,f]。首先进行直方图正规化,将其灰度范围转换到[0,1]区间,以r表示原图像的正规化灰度,则 (3-6)令s表示经过直方图均衡化之后的图像正规化灰度,则直方图均衡化就是通过灰度变换函数s=T[r],将原图像直方图改变成均匀分布的直方图。实现直方图均衡化,则意味着。再由概率论可知(3-7)从而可得(3-8)即T[r]为的累计分布函数。在数字图像中,灰度是离散的,离散化的直方图均衡化公式为(3-9)式中,k是离散灰度级数,的取值实际上是与最接近的离散灰度级。此处得到的新灰度是正规化灰度还要将其转化为非正规化灰度才能用于实际显示,即(3-10)式中的表示四舍五入取整。图3-7为直方图均衡化效果对比图。 因直方图均衡化不像直接灰度变换那样需要根据不同图像设定不同参数,适应性好且效果也比较好,所以除应用环境极其恶劣的情况外,本文采用的对比度增强技术即为直方图均衡化。3.1.2基于图像融合的条码图像对比度增强在实际应用尤其是工业应用中,有时会出现条码图像中条码区域的某些局部对比度极低,无法分辨是黑是白,从而使得条码信息丢失无法正确解码。条码载体表面的反光特性、光照的强度及光源、摄像头和条码之间的相对位置都是造成这种情况的原因。在工业应用中,条码载体的材质无法改变,摄像头的位置一般也都是固定的,解决这一问题只能通过控制补光系统改变光照条件。然而,光照条件的变化也是有一定限度的,有时无法仅通过改变光照条件而拍到一幅条码信息清晰完整的图像,此时上述图像增强方法均无法取得较好的效果。因此,本文提出利用图像融合的方法来解决这一问题,提出了一种基于模糊推理的小波域图像融合规则,并依据此规则对条码图像进行图像融合,从而增强图像。该方法首先在光源可变范围内改变光照条件得到多幅条码信息互补的条码图像,再依据一定的融合规则对这些图像进行融合,从而增强图像,使图像信息完整清晰以利于解码。其中,融合规则的设计对融合效果的好坏至关重要,本文提出了一种基于模糊推理的小波域图像融合规则。3.1.2.1小波域图像融合及其两种主要融合规则随着图像传感器的不断发展,由各种传感器可以得到大量具有不同空间、时间和光谱分辨率的图像[30][31]。按照一定的方法和规则将多幅源图像中的互补信息加以融合,从而得到包含来自不同传感器的更加丰富,更加完备的多方面的信息,将更加有利于人类理解和识别,更加有利于计算机的处理和分析,包括视频监控,航空,遥感,机器视觉和医疗影像在内的多种应用将会从中受益[32]。目前,基于小波变换的小波域图像融合是图像融合领域研究的一大热点[33]。它利用小波变换对源图像进行分解,再按照一定的融合规则对源图像在同一分辨率下的相应系数进行融合得到融合后的小波系数,然后进行小波逆变换即可得到最终的融合图像。由于小波基是正交的,而且二维小波变换是通过在图像的两个方向上分别进行一维小波变换实现的,所以相对于其他多分辨率分析方法,二维小波变换的产生的数据更加紧凑,系数间的独立性更强,而且能够提供水平、垂直和对角的方向性信息[34-38]。因此小波域图像融合可以达到比其他多分辨率分析方法更好的融合性能,使图像信息更加丰富,对事物的描述更加准确,最直观的表现就是图像细节的增加和清晰度的提高。图3-8是两幅图像进行小波域图像融合的过程框图。 然而在对小波域图像融合领域的研究中,融合规则的设计是最为重要的问题,直接影响着融合的效果。目前广泛使用的融合规则主要有两种:选择绝对值最大系数作为融合后的系数的规则和由Burt提出的选择与加权平均相结合的规则[39-43]。这两种规则可以比较好的完成图像融合的任务,但也都有其局限性:(1)选择绝对值最大的系数作为融合后的系数。该方法通过比较分解后的源图像在同一分辨率下相应系数的绝对值的大小,选择其中最大的作为融合后在相应位置的小波系数。这种方法主要思想是小波系数绝对值越大表示相应位置的灰度变化越大,其重要性程度也就越大。它在一定程度上反映了源图像对融合图像的贡献程度,计算量小,但它与源图像对融合图像贡献程度的实际分布差别较大,只考虑系数绝对值最大的图像,忽略了其他图像对融合图像的贡献,造成信息不完整。此外,由于仅有简单的选择,它对噪声很敏感,一旦所选的系数是由于噪声引起的,就会将噪声完全带入融合图像。(2)选择和加权平均相结合。该方法首先提取分解后的源图像相应系数周围局部区域的区域特征。由于小波分解后的小波系数局部区域的能量在一定程度上表现了该区域的灰度变化程度,所以就以区域能量作为选定的区域特征。由相应区域的区域特征计算源图像在此区域的匹配程度,若匹配度小于设定的阈值,则选择在该区域具有最大区域特征的系数作为融合后的小波系数。否则,根据匹配度按照给定的线性函数计算各源图像的权值,对相应系数进行加权平均得到融合后的小波系数。假设两幅图像相应区域系数的平均能量分别为和,相应系数分别为a(x,y)和b(x,y),两区域匹配度为m(x,y),匹配度阈值为T,融合后的系数为f(x,y),则:若m(x,y)小于T,则 (3-11)否则(3-12)(3-13)(3-14)这一规则在一定程度上考虑到了源图像对融合图像贡献的不确定性,但它通过人为设定的阈值强行简化了这一不确定性,简单地根据匹配度决定使用选择算子或加权平均算子。选择算子的存在同样使一部分信息被忽略,导致信息不完整和对噪声敏感;即使是相比于上一种规则新加的加权平均算子,也因为用线性函数计算权值而不能十分准确地描述源图像对融合图像的贡献程度,无法很好的解决这种不确定性问题。为了克服这两种规则的局限性,改进小波域图像融合的性能,尽可能多得将源图像中的信息融入融合图像,本文将模糊推理这一解决不确定问题的有效手段引入小波域图像融合,提出了一种基于模糊推理的小波域图像融合规则,并利用此规则对多幅条码图像进行小波域图像融合。模糊推理是一种基于模糊逻辑,能够有效的解决不确定性问题的不确定性推理方法[44][45],已经广泛应用于目标识别、图像分析、自动控制、智能信息处理和计算机科学等领域。相对于其他方法,它具有易于理解、灵活性好、包容不精确数据以及可以利用专家知识和基于自然语言等优点。本文所提出的基于模糊推理的小波域图像融合规则利用模糊推理的非线性和模糊性刻画源图像对融合图像的贡献程度的不确定性,以各源图像中对应小波系数的局部区域特征为输入进行模糊推理确定各源图像相应系数的权值,再通过对相应系数进行加权平均和小波逆变换得到最终的融合图像,从而很好地解决了图像融合中的不确定性问题,克服了利用选择绝对值最大系数和选择与加权平均相结合等现有规则进行小波域图像融合的方法中存在的信息不完全和易受噪声干扰的缺点。3.1.2.2基于模糊推理的融合规则基于模糊推理的融合规则以加权平均为基本方法,但是加权平均所用的权值却是由模糊推理得到的。首先对经过小波分解的两幅源图像进行局部区域特征的提取,对每幅图唯一的低频子带以区域方差为特征,而其他所有的高频子带均以其平均能量为区域特征,并计算两图对应区域的匹配度以及各自的归一化区域特征。设两幅图像a和b对应区域的区域特征分别为 和,其归一化区域特征分别为,匹配度为m(x,y),对应系数分别为,相应的权值为,融合后的系数为f(x,y),则此规则可描述如下:首先计算归一化区域特征:(3-15)(3-16)由于的取值范围均为[0,1],所以将三者的值域以0.1为量化间隔量化为模糊论域U,M和。对U,建立两个模糊集A={图像a的系数占优}和B={图像b的系数占优},它们各自的隶属度函数为:(3-17)(3-18)同样的,对M建立两个模糊集={二者匹配}和={二者不匹配},它们的隶属度函数分别与式(3-17)和式(3-18)具有相同的形式。对,则要建立三个模糊集={选择a(x,y)},={选择b(x,y)}和={二者加权平均},其隶属度函数分别为:(3-19)(3-20) (3-21)以上节所述选择和加权平均相结合的规则的思想作为模糊规则,采用Mamdani极小化规则,表示取最小值,表示取最大值,则这些规则可表述为:(1)如果。设此规则为R1,则:(3-22)(3-23)则总的模糊关系可以表示为(3-28)(3-29)将前面计算得到的进行模糊量化为,采用最大隶属度原则进行模糊判决。然后按下式计算图像a的权值隶属度函数 (3-30)最后对两幅图像相应系数进行加权平均得到融合后的系数:(3-35)3.1.2.3实验结果图3-9给出了两幅源图像和一幅采用本文方法融合后的图像,为比较融合图像与源图像所包含的信息量的多少,本文采用香农信息量作为客观指标列在表3-1中,从中可以看出融合图像比源图像更清晰,信息更加完整、更加丰富。令图像灰度分布为P(x),则信息量计算公式为:(3-36) 为比较本文提出的基于模糊推理的小波域图像融合规则与前述另两种现有的小波域融合规则的融合效果,图3-10给出了以图3-9(a)(b)为源图像分别利用三种融合规则得到的融合图像,其中图3-10(a)是采用选择绝对值最大的系数的规则得到的融合结果;(b)是采用选择与加权平均相结合的规则以0.5为匹配度阈值融合得到的融合结果;(c)是采用本文提出的基于模糊推理的规则融合得到的融合结果。此外,本文还对图3-10中的三幅图像分别计算与源图像之间的互信息量作为客观指标列于表3-2以比较采用三种规则得到的融合图像从源图像中获取的信息的多少,互信息量越大说明融合图像从源图像中得到的信息越多。设源图像A和B的灰度分布分别为,其与融合图像F的联合灰度分布分别为,融合图像F的灰度分布为,则融合图像与源图像之间的互信息量MI为 由图3-10和表3-2中可以看出采用本文提出的基于模糊推理的规则融合得到的融合图像比采用另外两种融合规则得到的融合图像包含更多的源图像信息。为比较三种融合规则的抗噪声性能,对图3-9(a)(b)分别人为添加泊松噪声后作为源图像分别利用三种融合规则进行图像融合,结果示于图3-11,其中图3-10(a)是采用选择绝对值最大的系数的规则得到的融合结果;(b)是采用选择与加权平均相结合的规则融合得到的融合结果;(c)是采用本文提出的基于模糊推理的规则融合得到的融合结果。表3-3则给出了图3-11中的三幅图分别以图3-10的(a)(b)(c)为参考图像所得的峰值信噪比(PSNR),作为三种融合规则抗噪声性能的客观指标。 从图3-11和表3-3中可以看出,图3-11(c)比其它两幅图像受噪声的影响小,说明采用本文提出的基于模糊推理的规则比采用另外两种融合规则的抗噪声能力强。基于模糊推理的小波域图像融合规则在保留了现有小波域图像融合规则充分利用不同分辨率不同方向的信息进行融合,融合图像清晰的优点的基础上,对现有小波域图像融合算法进行了改进,引入了模糊推理,提出了基于模糊推理的小波域图像融合规则。它利用模糊推理的非线性和模糊性对各源图像对融合图像贡献程度的不确定性进行描述和逼近,很好地解决了图像融合中的不确定性问题。它能更加有效地融合源图像中的信息形成信息更加丰富,对事物描述更加准确的新图像,并增强了噪声抑制能力,有效克服了现有小波域融合规则的信息不完整和对噪声敏感的缺点。基于模糊推理的小波域图像融合规则是一种更加有效,更加健壮的融合规则,尤其在源图像受到噪声污染的情况下,其优势更加明显,因此更加适用于恶劣条件下的二维条码图像增强。3.2图像去噪图像扫描过程中产生的随机噪声是不可避免的,为了提高后续条码识读工作的准确性,在预处理阶段进行去噪处理是必要的[46]。噪声多体现为高频干扰,因此为了抑制噪声,最简单的便是选用线性低通滤波,但由于边缘轮廓中同样含有大量高频信息,所以在低通滤波滤除噪声的同时,也必然使边界变模糊。此时,如果再采用高通滤波锐化边缘,则之前残留的噪声也同时被加强了,去噪效果不好。而图像去噪要求既消除噪声又尽量保持图像的细节,基于此目的,本文选用中值滤波去除图像噪声。中值滤波是一种有效的非线性滤波,常用于消除随机脉冲噪声[47]。其基本思想是:在图像上滑动一个含有奇数个像素的窗口,对该窗口所覆盖像素的灰度值按大小进行排序,用处在灰度序列中间的那个灰度值来代替窗口中心所对应像素的灰度。设原图像像素灰度为f(x,y),中值滤波后的像素灰度为g(x,y),滤波窗口为W,则中值滤波数学表达式为(3-40)可见,中值滤波就是让与周围像素灰度值差比较大的像素改取与周围像素值接近的值,从而可以有效消除孤立的噪声点,对滤除脉冲干扰及图像扫描噪声最为有效。且由于中值滤波对单调序列、阶跃序列以及周期序列具有不变性,所以在一定条件下,中值滤波可以克服线性低通滤波如最小均方滤波,均值滤波等带来的图像细节模糊。中值滤波的关键在于选择合适的窗口大小及窗口形状,本文中采用5?5的方形窗口。图3-12给出了中值滤波前后的效果对比图。 3.3图像二值化3.3.1常用的图像二值化方法3.3.1.1大津法二值化最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定方法,又叫大津法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标两部分[48]。背景和目标之间的类间方差越大,说明构成图像的两部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。具体处理方法是,取某个灰度值,以它为界将图像分为灰度值大小两类,分别计算这两类中的像素点数及灰度平均值。然后计算它们的类间方差,最后取所有灰度中使类间方差最大的灰度为阈值。类间方差计算公式如下:(3-41)其中分别是灰度小于i的像素和大于等于i的像素的数目,分别是它们的灰度平均值。(3-42)即二值化分割的阈值是使w(i)取得最大值时的灰度值。图3-13给出了使用大津法进行二值化的效果图。 3.3.1.2最大熵法二值化熵在图像处理中表征图像像素的平均信息量。用最大熵法求阈值就是选择一个阈值,使图像用这个阈值分割出的两部分,一阶灰度统计的信息含量最大,即熵最大。而熵最大就意味着以此阈值划分的目标区域和背景区域内各自的灰度分布具有最大的同一性,即目标和背景区别最为明显。该算法具体实现是先统计出图像的灰度直方图,使用阈值将直方图分割成两组,当目标和背景两组间的熵之和最大时的阈值即为所求阈值。运用统计学原理,如果图像中某个灰度级出现的概率是p(x),则该灰度级的熵。当阈值为T时,令,则图像中低于阈值部分的熵,而图像中高于阈值部分的熵。对每一个灰度级,分别求取,选取H最大时对应的灰度级作为图像的阈值。最大熵法对条码图像二值化效果如图3-14。 3.3.1.3最小错误概率法二值化此方法来源于Bayes最小误差分类方法。若设是特征物错分到背景的概率,是背景错分到目标类的概率,则总的误差概率。使E(T)取最小值的阈值,即为最小误差法求得的阈值。用最小误差法对条码图像二值化后的效果如图3-15。3.3.1.4迭代阈值法二值化迭代阈值法主要是根据逐步逼近的原理,在灰度特征上对阈值进行选取,具有易于理解和实现,处理效果较好的优点。其处理过程为:(1)求出图像灰度的最小值和最大值,迭代次数k设为0,并设置阈值初值为。(2)根据阈值kT将图像分为目标和背景两部分,并分别计算两部分的像素数及平均灰度(3-43) (3)求出新阈值:。(4)若,则结束;否则k=k+1,转到(2)继续迭代,这里Kmax是预先设置的最大迭代次数。(5)逐点二值化。图3-16给出了迭代阈值法二值化的效果图。3.3.1.5局部阈值法二值化局部阈值法适用于光照不均或背景非常复杂,使用单一阈值效果不好的图像。它将原始图像分成几个小的互不重叠的子图像,再对每个子图像分别求出最优分割阈值进行二值化。这种分割方法计算量大且分割后的图像在不同子图像的边界处有灰度的不连续分布,存在块效应,必须在后续操作中采用平滑技术消除灰度的不连续性。图3-17给出了局部阈值法二值化的效果图,图中有一部分由于块效应出现了错误分割。(a)原图(b)二值化后图3-17局部阈值法二值化3.3.2基于小波分解和大津法的图像二值化方法 大津法、最大熵法、最小错误概率法和迭代阈值法都属于全局阈值法,使用单一阈值对整幅图像进行二值化,对于光照不均或背景十分复杂的图像效果不好。而局部阈值法处理光照不均或背景十分复杂的图像时效果比全局阈值法好,但计算量大且存在块效应,效果仍不理想。文献[49]提出利用曲面拟合技术逼近背景以消除光照影响,但需要事先指定用于拟合的背景点。文献[50]提出利用小波分析提取图像低频部分作为阈值进行二值化以消除光照影响,但在存在大片背景的部分效果不是很好。本文借鉴文献[50]的方法,基于反射光等于入射光乘以反射系数的假设,提出一种基于小波分解和大津法的条码图像二值化方法。首先利用小波分解获得成像物体表面光照的近似分布;然后利用此近似分布消除光照不均的影响,使整幅图像近似处于均匀的光照之下;最后再用大津法对获得的均匀光照下的图像计算全局阈值并实现二值化。这一方法既可以消除光照不均的影响,又可以通过选择合适的小波函数使得物体表面光照的近似分布尽量平滑,避免了局部阈值法出现的块效应。小波分解和重构可以通过Mallat算法利用FIR滤波器反复滤波来实现,这虽然增加了一定的计算量,但由于本算法是为本文所设计和实现的基于DSP的嵌入式二维条码识读终端而设计的,而DSP的架构很适合于进行FIR滤波运算,所以这些计算量的增加对于DSP来说是完全可以接受的。所以,该方法在效果和计算量之间较好地进行了折中。3.3.2.1简单的成像模型人们日常看到的图像一般是对由场景中的物体上反射出来的光进行量度而得到的。图像代表了一个物体表面上的反射光形成的2D亮度函数,设为f(x,y)。这里f(x,y)表示图像在空间特定坐标点(x,y)位置的亮度,所以f(x,y)必然大于0且为有限值,即:(3-44)f(x,y)由两个因素决定:一是入射到可见场景上的光的量;二是场景中物体对入射光反射的比率。它们可分别用照度函数i(x,y)和反射函数r(x,y)表示。i(x,y)的值由光源决定,而r(x,y)的值则是由场景中的物体特性决定的。f(x,y)与i(x,y)和r(x,y)都成正比,所以可以认为f(x,y)是由i(x,y)和r(x,y)相乘得到的[51],即:f(x,y)=i(x,y)r(x,y)(3-45)其中01,m定义滤波器的尺度,m=0,1,…,M-1,M为整数,?表示滤波器方向与x轴的夹角,对离散化,令,N为整数,则可用n定义滤波器的方向。通过改变m和n,就可以得到一组具有不同尺度不同中心频率和方向的滤波器(,)mnGxy,从而对图像进行不同尺度不同方向的滤波,得到相应的纹理特征。对的坐标离散化就可以得到相应的离散滤波模板,其中s为区间内的整数,t为区间内的整数。则对图像I(x,y)进行的Gabor滤波定义为(4-2)GF-BPNN方法采用的滤波器组由中心频率分别为每图像宽度 个周期(即,m分别等于4,3,2,1,0,M等于5),方向分别为0°、22.5°、45°、67.5°、90°、112.5°、135°、157.5°共8个方向(即n分别等于0,1,2,3,4,5,6,7,N等于8)的总共40个滤波器组成。用这40个滤波器对图像进行滤波,则每个像素处均可得到一个40维的特征向量,向量元素Fmn即为图像经Gmn(s,t)滤波后在该像素处的值。4.2.2.3特征变换经Gabor滤波器滤波得到的特征向量F不具有尺度不变性和旋转不变性,且维数太高,无法直接用于BP神经网络进行分类。所以要对F进行降维和变换,使其具有尺度不变性和旋转不变性。首先,消除F对尺度的敏感性,生成具有尺度不变性的特征向量,同时实现降维。要实现这一目标,可对具有相同方向不同尺度的特征相加并求均值,从而消除尺度对特征的影响,得到对尺度不变的含8个元素的特征向量01234567F?[F,F,F,F,F,F,F,F],式中的iF定义如下:(4-3)接下来,要对F进行变换使其具有旋转不变性。由图4-1可知,DataMatrix条码区域内有很多相互垂直的边缘,因此条码区域内的像素经过Gabor滤波后会在两个相互垂直的方向上响应比较大而其他方向的响应会相应地小一些从而在两个相互垂直的方向上形成两个峰值。这种分布是区分该像素是否属于条码区域的重要特征。而由于旋转和各种失真的存在,使得属于不同条码区域或同一条码区域不同位置的像素的特征分布中峰值出现的角度不同,但只要属于条码区域,其双峰特性是不变的。因此只需要将由式(4-3)所得的特征向量进行循环移位,使其中的响应最大值固定在特征向量的第一个元素位置0F处,即可得到具有旋转不变性的新特征向量,设式(4-3)所得向量中的响应最大值为,则新向量中的元素"iF定义如下:(4-4)至此,图像每个像素处的纹理特征已具有尺度不变性和旋转不变性,并已降至8维。4.2.2.4BP神经网络对像素分类BP神经网络是一种被广泛应用的分类器,可实现从输入空间到输出空间的非线性映[63]。它采用最小均方(LMS)学习算法[64],经过迭代运算求解权值,将所需要的输出与实际输出间的误差逐步最小化。此输出误差还会向输入方向“反向传播”回去,以调整权值使误差减小。 BP神经网络可形成多层网络。任一层节点的输入都是前一层输出的加权和。令J层代表K层的前一层,Xk代表K层中各节点触发元素的输入,则,式中,而Nk和Nj分别是K层和J层中的节点数,Oj是J层节点j的输出,是连接J层节点j和K层节点k的权,K层节点的输出是,式中,bk是节点k的偏置。权值的学习过程则可以描述为,式中,为学习率,则为(4-5)上式中kt为节点k的期望响应,P代表K层的后一层,PN为其节点数。本文提出的GF-BPNN方法采用经过特征变换的图像Gabor纹理特征作为网络输入。输入之前要先将特征线性映射至[0,1]之间,以便于后续权值的调整和运算,并提高网络泛化能力。(4-6)式中,Fmin和Fmax分别表示向量中的最小值和最大值。网络训练由一幅背景比较复杂的参考图像经过前述特征提取所得到的特征向量作为输入,期望的输出为(4-7)对输入图像随机取点11000个,其中条码区域像素1000个,非条码区域像素10000个,训练100次。然后用训练好的网络对待处理图像进行分类,网络输出以0.5为阈值,输出大于0.5的像素为条码区域像素,否则为背景像素。图4-5给出了图像经过Gabor滤波、特征变换和BP网络分类后的结果,(a)为原图,(b)为分类结果。 4.2.2.5区域提取因神经网络分类结果不可能达到100%正确,所以经BP神经网络分类之后的结果图像还无法成为最终结果,还需要进行后处理以提取条码区域。后处理首先利用形态学的开、闭运算去除图像中孤立的小面积目标或背景,使条码区域形成一片完整的连通域,再对各区域作凸壳运算,确保目标区域的完整性,以利于区域标记。然后对区域进行标记,并利用各区域的面积、长短轴之比等几何特性,消除伪区域,得到最终的提取结果,主要流程如图4-6所示: 4.2.2.6实验结果实验中利用GF-BPNN方法对三幅包含DataMatrix二维条码的图像进行了条码区域提取,并与文献[57]提出的利用数学形态学对图像进行版面分析提取条码区域的方法进行了对比,结果如下。本文采用像素错分率r来定量描述条码区域提取效果,即以分类错误像素数incorrect除以总像素数total得到的百分比。(4-8)图4-7(a)为一幅背景复杂但条码没有旋转的图像。图4-7(b)为用GF-BPNN方法提取的条码区域;图4-7(c)为用文献[57]的方法提取的条码区域。从中可以清楚地看出,GF-BPNN方法提取的条码区域完整而没有伪区域,像素错分率为0.05%,而文献[57]的方法则出现伪区域,像素错分率为3.33%。图4-8(a)是一幅含有旋转后条码的图像。图4-8(b)为用GF-BPNN方法提取的条码区域;图4-8(c)为用文献[57]的方法提取的条码区域(结构体与前一实验中所用一致)。从中可以看出GF-BPNN方法对旋转不敏感,可提取出完整的条码区域,像素错分率为0.1%,而文献[57]提出的方法则因为结构体选择不合适而无法准确提取出完整的条码区域,且出现伪区域,像素错分率为4.95%。 图4-9(a)是一幅含有较大条码的图像。图4-9(b)为用GF-BPNN方法提取的条码区域;图4-9(c)为用文献[57]的方法提取的条码区域(结构体与前一实验中所用一致)。从中可以看出GF-BPNN方法对尺度不敏感,可提取出完整的条码区域,像素错分率为0.08%,而文献[57]提出的方法则同样因为结构体选择不合适而无法准确提取出完整的条码区域,像素错分率为1.84%。从实验结果可知,本文提出的GF-BPNN方法,可以很好地提取出复杂背景下的DataMatrix条码区域,且具有旋转不变性和尺度不变性。此方法很好地克服了文献[57]提出的基于形态学分析进行条码区域提取的方法存在的结构体难以选择和虚警率较高的缺点。而在计算量方面,本文所提出的办法与文献[57]所提出的方法相比,大概增加一倍。但这个数据是在不考虑文献[57]所提方法中不可避免的结构体选择问题的情况下得出的。文献[57]所提出的方法要取得较好的效果必须自适应地选取结构体,这需要花费大量计算量,而本文提出的方法由于采用BP神经网络对像素分类消除了很多伪区域,只需再以一个相对固定的结构体进行形态学后处理即可得到较好的结果,省略了自适应选取结构体的过程,计算量的增加是完全可以接受的。与文献[57]提出的方法相比,本文提出的GF-BPNN方法具有更高的准确性和鲁棒性,更能适应不同应用环境的需要,是一个非常有效的方法。 4.3DataMatrix条码精定位目前对DataMatrix条码进行精定位的方法主要是在可能的条码区域内进行边缘检测,然后利用Hough变换或Radon变换检测直线边缘得到“L”形寻边区的位置和旋转角度从而实现条码精定位[65-69]。尽管有些文献对Hough变换作了改进[70-72],但这种方法计算量仍然很大,且Hough变换或Radon变换精度越高则计算量越大,而变换精度太小又无法取得好的定位效果,很难在计算量和定位精度之间取得较好的平衡。本文提出一种基于边缘跟踪和Radon变换相结合的DataMatrix条码定位方法。本方法利用边缘跟踪检测“L”形寻边区外边缘并得到此边缘上的三个角点,包括“L”形寻边区的两条暗实线之间的交点和2条暗实线分别与2条铁路线的交点,即图4-2中所示的点1、2、3。然后再分别在2个暗实线与铁路线的交点处,即图4-2中的点2、3,以不同角度进行Radon变换检测铁路线外边缘所在直线,此变换仅在沿“L”形寻边区顶端和右端短边缘的方向附近?22.5°的角度范围内进行,可大大减小计算量。最后将Radon变换值最大的两条直线作为铁路线外边缘所在直线,计算两条直线的交点即可得到条码区域的最后一个顶点从而完成条码精定位。整个定位流程图如图4-10所示。4.3.1边缘检测 到目前为止,边缘检测所采取的最通用的办法是检测像素灰度值的不连续性,而这种不连续性是可以通过灰度函数的一阶或二阶导数检测出来的。利用这种手段进行边缘检测的传统检测器有很多,包括使用灰度函数一阶导数的Sobel检测器、Prewitt检测器、Roberts检测器、Canny检测器和使用灰度函数二阶导数的拉普拉斯检测器、高斯拉普拉斯(LOG)检测器、零交叉检测器等,还有很多文献提出了一些新的边缘检测方法[73][74]。综合各种检测器的效果和计算复杂度,本文采用Sobel检测器进行边缘检测。Sobel检测器使用图4-11中所示的两个掩模分别对图像进行滤波,利用每个像素周围3?3邻域内的像素值(图4-12所示)来近似图像函数在该像素处沿水平和竖直方向的一阶导数值,并按照下式计算该处梯度g:(4-9)若在位置(x,y)处的梯度g?T,则处在该位置处的像素为边缘像素,其中T为一个指定的阈值。4.3.2边缘跟踪和角点检测 得到条码边缘图像便可以进行边缘跟踪及角点检测。首先,沿水平对称轴从左至右地扫描条码边缘图像,并按扫描的先后顺序,对扫描线经过的条码边缘点进行如下操作:1.建立起始跟踪方向相反(分别为竖直向上和竖直向下)的两个边缘跟踪器,以跟踪得到“L”形寻边区外边缘和此边缘上的三个顶点。2.如果由当前边缘点出发不能跟踪“L”形寻边区,则水平向右跳至下一个边缘点进行跟踪。在这个过程中,以初始扫描线上的不同边缘点为起点进行的跟踪方法基本一致但仅有一点区别:以扫描线上遇到的第奇数个边缘点为起点形成的两个边缘跟踪器中向上的跟踪器顺时针对条码边缘进行跟踪而向下的跟踪器逆时针对条码边缘进行跟踪;以扫描线上遇到的第偶数个边缘点为起点形成的两个边缘跟踪器则完全相反,向上的跟踪器逆时针对条码边缘进行跟踪而向下的跟踪器顺时针对条码边缘进行跟踪。图4-14给出两种不同边缘点对应的跟踪方向改变示意图。这是由于一般情况下,扫描线从左至右通过某个前景区域,扫描到的边缘点一定是成对出现,第奇数个边缘点是沿扫描方向由背景点跃变到前景点形成的,而第偶数个边缘点是沿扫描方向由前景点到背景点跃变形成的。若要成功找到“L”形寻边区外边缘,则此边缘点必然是条码外边缘上的点,而“L”形寻边区外边缘上的边缘点若是第奇数个边缘点则必位于条码左侧外边缘,如图4-14左图所示;若是第偶数个边缘点则必位于条码右侧外边缘,如图4-14右图所示。要跟踪的边界呈“L”形,跟踪过程中跟踪器的跟踪方向势必要随边缘方向进行改变,因而对与不同位置的跟踪起始点(奇数边缘点或偶数边缘点),跟踪方向的改变方式必然有所不同。下面以跟踪起点是扫描线上第奇数个边缘点为例介绍边缘跟踪及角点检测方法。定义水平方向为x方向,水平向右为x轴正方向;竖直方向为y方向,竖直向上为y轴正方向;当前边缘点坐标为(x,y);朝向区域中心的方向为内方向,朝向区域边缘的为外方向。对于向上的跟踪器,就是要寻找当前边缘点上方的下一个边缘点。寻找时若当前边缘点正上方像素(x,y?1)为前景点,说明该点在条码内部,则自该像素水平向外3个像素内搜索下一边缘点,否则说明该点在条码外部,应水平向内3个像素内搜索下一边缘点。若找到下一边缘点,则将此边缘点作为当前边缘点继续跟踪,否则分两种情况处理:1、若(x,y+1)为前景点,说明所跟踪边缘并非“L”形寻边区外边缘,则跟踪结束;2、若像素(x,y+1)为背景点,说明已进入背景区域,跟踪方向顺时针旋转90度继续跟踪。如果发生第二种情况,则此时此跟踪器的跟踪方向为向右跟踪,跟踪方式与竖直向上跟踪时类似,即用(x+1,y)是前景点还是背景点来决定向内或向外搜索。若找到下一边缘点,则将此边缘点作为当前边缘点继续跟踪;若未找到边缘点且(x+ 1,y)为前景点,则跟踪结束;若再次进入背景区域则将跟踪方向顺时针旋转90度继续跟踪。跟踪器方向最多旋转2次,若旋转2次后再次发生找不到边缘点的情况,跟踪结束。跟踪器跟踪方向发生旋转处的边缘点即为角点。对于向下的跟踪器,除跟踪方向不一样,当找不到边缘点时逆时针旋转90度继续跟踪外,在跟踪方法上与向上的跟踪器完全一致。由于条码边缘由直线段组成,为了保证沿直线跟踪边缘和检测角点,本方法还以5个边缘点为一组矢量计算其边缘方向并与前一次计算的边缘方向进行比较来确定边缘点是否共线。首先,跟踪边缘得到5个连续的边缘点[P1,P2,P3,P4,P5],将由P1(X1,Y1)到55P5(X5,Y5)之间的矢量作为边缘的参考矢量。然后,继续跟踪得到下一边缘点P6(X6,Y6),将[P2,P3,P4,P5,P6]作为一组,计算由P2(X2,Y2)到P6(X6,Y6)之间的当前矢量与之间的夹角的余弦(4-10)之后,每得到一个新的边缘点,便将此边缘点与前4个边缘点作为一组,计算新的当前矢量,而将上一次跟踪得到的旧的矢量作为参考矢量,计算两个矢量之间的夹角的余弦。若所得余弦值大于2/2(45度角的余弦值),则认为新的边缘点与之前的边缘点共线,否则说明出现了角点。由于判断共线与否的夹角阈值为45度,可认为新的一组边缘点中的中间一个即第3个边缘点为角点。所以,对于角点检测而言,有两条判断标准:一是前述的因找不到边缘点而使跟踪方向旋转90度,此时当前边缘点即是角点;二是当前边缘矢量与参考矢量夹角余弦小于时,此时新的一组边缘点中的中间一个即第3个边缘点为角点。为确定“L”形寻边区外边缘及此边缘上的三个角点以及2条铁路线的大概方向,两个跟踪器需各自跟踪3条边缘线段:第一条以跟踪器起点为起点,以遇到的第一个角点为终点,其余两条均以前一条线段的终点为起点,以遇到的下一个角点为终点,并依据各条线段的起点和终点计算各线段的长度和方向矢量。跟踪器在满足跟踪结束条件或已跟踪完成3条线段时结束跟踪。假设两个跟踪器跟踪得到的边缘线段分别为line11,line12,line13和line21,line22,line23,如图4-14左图中所示。因两个跟踪器跟踪方向相反,所以若line11和line21的夹角余弦小于-0.98,则认为两条线段共线,此时合并两条线段,只要合并后的线段长度大于15即可认为合并后的线段为“L”形寻边区的一条外边缘。再在line12和line22中挑选一条相对较长且长度大于15的线段作为“L”形寻边区的另一条外边缘,假设为line12,则line22是一条铁路线与“L”形寻边区交界处的一条外短边缘(若line22相对较长且长度大于15,则line22为“L”形寻边区外边缘,line12为铁路线与“L”形寻边区交界处的外短边缘)。而line13和line23中与“L”形寻边区的外边缘相交的那一条则是另外一条铁路线与“L”形寻边区交界处的外短边缘。在这种情况下,若line11和line21合并后长度小于15或line11和line21的长度均小于15,说明寻找“L”形寻边区外边缘失败,应沿初始扫描线继续向右扫描。若line11和line21的夹角余弦大于-0.98,则认为两条线段不共线。此时若两条线段长度均大于15,则认为这两条线段就是“L”形寻边区的两条外边缘,line12和line22则分别是两条铁路线与“L”形寻边区交界处的外短边缘,否则说明寻找“L”形寻边区外边缘失败,应沿初始扫描线继续向右扫描。此外,若找到了“L” 形寻边区的两条可能的外边缘,但两条边缘的长度相差过大,长边的长度是短边的5倍以上,也可认为寻找“L”形寻边区外边缘失败,应沿初始扫描线继续向右扫描。找到符合上述一系列判断条件的“L”形寻边区的两条可能的外边缘后,即可根据这两条线段的起点和终点确定此边缘上的三个顶点的坐标了,即图4-2中的点1、2、3的坐标。4.3.3Radon变换及顶点坐标计算条码矩阵的四个顶点中的3个在上一节中找到“L”形寻边区的两条可能的外边缘后即可计算坐标。两条“L”形寻边区外边缘的交点即对应着无旋转的标准条码图像中左下角两条暗实线相交处的顶点,即图4-2中的点1。而两条“L”形寻边区外边缘各自相对于此顶点较远的端点即是标准图像中左上角和右下角的两个由铁路线和暗实线相交形成的顶点,即图4-2中的点2、3。但在进行顶点对应时要注意这三个顶点遵守右手螺旋法则,即右手置于两边缘交点处,拇指向上,四指应可自对应于标准条码图像右下角顶点的边缘端点(图4-2中的点3)经条码内部握拳达到对应于标准条码图像左上角顶点的边缘端点(图4-2中的点2)。而要确定对应于标准条码图像右上角的顶点的像素坐标,即图4-2中点4的坐标,则需要确定两条铁路线的外边缘所在的直线,两条直线的交点即为所求顶点。要确定铁路线外边缘所在的直线,本文采用Radon变换来实现。Radon变换于1917年提出[51],对图像f(x,y)的Radon变换定义为沿图4-15所示的由定义的直线l的线积分。(4-11)直线方程为(4-12)由Radon变换的线积分定义,不难想到,Radon变换可以实现Hough变换的功能,用于检测直线:计算不同位置和角度的,找出Radon变换数值最大的值,其对应的即代表图像中最长直线的位置和方向。 具体到本文的应用情况,本文使用Radon变换确定铁路线外边缘的方向。虽然在图4-16所示的边缘图上可以看出,铁路线的外边缘并不是一条完整的直线而是由共线的短线段组成,但由于Radon变换本身是通过线积分来检测直线的,直线是否连续对Radon变换没有影响。而且由图4-16还可以看出,在过铁路线外边缘与暗实线外边缘相交的顶点的不同角度的直线中,除暗实线外边缘所在直线外,铁路线外边缘所在直线上的边缘点最多,而暗实线外边缘所在直线的方向在前面的处理中已经得到,完全可以在Radon变换中避开这一角度,所以使用Radon变换来确定铁路线外边缘所在直线的方向是完全可行的。为避开暗实线外边缘所在直线,并减小计算量,本文分别以前面所得到的两条铁路线外短边缘的方向作为铁路线外边缘的初始方向,并在此方向的附近±22.5°的角度范围内,过相应铁路线与暗实线相交的顶点,即图4-2中的点2、3,作两组积分线,以条码区域宽度的一半为积分长度进行Radon变换。若图像失真严重,使得暗实线外边缘所在直线的方向落入铁路线外边缘初始方向±22.5°的角度范围内,则缩小角度范围以避开暗实线外边缘所在直线。由于每组积分直线共点,仅角度不同,设直线角度为,积分长度为l,所过顶点坐标为(X0,Y0),则Radon变换式可改写为(4-13)在变换结果中找到最大值所对应的角度,即可确定为铁路线外边缘所在直线与x轴的夹角,由此可确定铁路线外边缘所在直线。计算两条铁路线外边缘所在直线的交点,即可得到最后一个顶点的坐标。4.3.4实验结果为验证本文所提方法的效果,对图4-13(a)所示条码图像接连应用4.2.2节中所述条码区域提取算法和本节中所述的条码精定位算法进行条码定位,结果如图4-17所示。图4-17中的绿框即是条码定位结果,其四个顶点坐标(取整后)自左上角顶点起逆时针依次是(154,91),(215,47),(268,98),(208,135)。 图4-17条码定位结果实验结果证明,本文所提出的条码精定位算法能够准确地定位DataMatrix条码。由于边缘跟踪过程中基本只是些简单的扫描操作,计算量很小,后续的Radon变换又只是过定点在铁路线所在直线的初始方向附近?22.5?的角度范围内进行,有效减少了计算量,与单纯依靠Hough变换或Radon变换进行定位相比可减少近30%的计算量,在计算量和定位精度之间较好地进行了折中。4.4条码图像几何校正假设条码图像仅存在刚性变换失真,则可通过一个3?3的透射变换矩阵完成图像的几何校正。校正后的图像是以条码寻边区“L”的角点为坐标原点,以条码底边为x轴,以条码左边为y轴仅含完整条码的图像。4.4.1生成坐标变换矩阵令经前一章定位所得的条码四个顶点分别为p1,p2,p3和p4,其中对应于条码寻边区“L”的角点的顶点为p1(x1,y1),对应于条码标准图像中左上顶点的是p2(x2,y2),对应于条码标准图像中右下顶点的是p3(x3,y3),对应于条码标准图像中右上顶点的是p4(x4,y4)。根据这四个顶点即可算出一个3*3的透射变换矩阵T及其逆矩阵T?1,其中T为由原始图像坐标到校正图像坐标的正向变换矩阵,为由校正图像坐标到原始图像坐标的逆向变换矩阵。T和均可由一系列3*3的子矩阵或其逆矩阵相乘得到,这些子矩阵包括平移矩阵Trans及其逆矩阵,旋转矩阵Rotate及其逆矩阵,水平剪切矩阵Shear及其逆矩阵,缩放矩阵Scale及其逆矩阵,分别处理条码图像顶边和右边失真的透视变换矩阵Skewtop、Skewside及其逆矩阵。(4-14)(4-15) 接下来,将各子矩阵及其逆矩阵的计算方法介绍如下:平移矩阵Trans及其逆矩阵:(4-16)(4-17)旋转矩阵Rotate及其逆矩阵:(4-18)(4-19)(4-20)水平剪切矩阵Shear及其逆矩阵:令点p2(x2,y2)先后经过平移变换和旋转变换后得到的坐标为p2"(x2",y2"),则(4-21)(4-22)缩放矩阵Scale及其逆矩阵:本文不对图像进行缩放,故缩放矩阵Scale及其逆矩阵均为3*3的单位矩阵。透视变换矩阵Skewtop及其逆矩阵 :这两个矩阵用于纠正条码图像上边的透视失真。令点p2(x2,y2)、p3(x3,y3)、p4(x4,y4)经平移、旋转、水平剪切后得到的坐标为p2"(x2",y2")、p3"(x3",y3")、p4"(x4",y4"),则(4-23)(4-24)(4-25)透视变换矩阵Skewside及其逆矩阵:这两个矩阵用于纠正条码图像右边的透视失真。令点p2(x2,y2)、p3(x3,y3)、p4(x4,y4)经平移、旋转、水平剪切及顶边透视变换后得到的坐标为p2""(x2"",y2"")、p3""(x3"",y3"")、p4""(x4"",y4""),则(4-26)(4-27)(4-28)将式(4-16)~式(4-28)分别代入式(4-14)和式(4-15)即可得到坐标变换矩阵T和。4.4.2图像校正 图像校正有两种方法正向映射法和反向映射法。正向映射法是指由原图像坐标出发,通过坐标变换计算出相应校正图像坐标,并对该坐标处像素赋值;而反向映射法则是从校正图像出发通过坐标变换找到该像素在原图像中的对应像素坐标进而对该像素赋值。因为在数字图像中像素坐标值只能为整数,而由正向映射法求出的校正图像坐标值往往为小数,对坐标进行取整运算后就会导致存在未被赋值的"空"像素。为避免这种情况发生,坐标变换中一般采用逆向映射法,即由变换后的映射图像像素的坐标值,逆推出在原图像中对应的坐标值。由前述坐标变换矩阵的生成过程可知,校正后的条码图像是一个以条码寻边区“L”的角点为坐标原点,以条码底边为x轴,以条码左边为y轴仅含完整条码的正方形或长方形图像。图像的长、宽可通过对4个顶点进行正向坐标变换所得的校正图像坐标值得出。此时只需将校正图像内的像素坐标利用逆向变换矩阵通过逆向坐标变换一一找出原图像中的对应像素坐标,再通过灰度插值对校正图像像素进行赋值即可得到校正后的条码图像。令,校正图像像素坐标为(x,y),原图像中的对应像素坐标为(X0,Y0),则坐标变换过程可表示为:一般情况下,得到的原图像中的对应像素坐标(X0,Y0)是小数,无法直接从原图像中采样赋给校正图像,因此要进行灰度插值。灰度插值的方法有很多[75][76][77],常用的灰度插值方法有最邻近像素法、双线性插值法和双三次卷积法,其中双三次卷积法计算量太大,这里不再予以介绍。最邻近插值法也称零阶插值,是最简单的插值方法。其做法就是取原图像上与(X0,Y0)最为接近的像素的灰度值作为校正图像相应像素的灰度。其计算十分简单。只需对(X0,Y0)进行四舍五入取整运算得到原图像像素坐标,将该像素灰度值赋给校正图像对应像素即可。但这样做会由于取整运算带来一定的误差,不够精确,可能使校正图像出现锯齿边缘。双线性插值法是利用原图像中与(X0,Y0)最接近的4个像素点的灰度值,使用线性逼近的方法得到(X0,Y0)处的灰度赋给校正图像的相应像素。令(X0,Y0)处灰度为g(X0,Y0),,其中int表示直接舍弃小数部分的取整运算,则双线性插值法的计算公式为采用双线性插值法能够保持图像连续且精度高,但由于其具有低通滤波性质抑制高频成分,会导致图像出现模糊。但经过比较,本文仍采用双线性插值法进行像素重采样。图4-18是一幅实际拍摄的条码图像,图4-19则给出了经过几何校正后的条码图像。 4.5DataMatrix条码译码DataMatrix条码译码过程如图4-20所示,共分四步:生成条码数据区的二进制位图;提取条码码流;码流纠错;码流译码。4.5.1生成映射数据区的二进制位图要生成映射数据区的二进制位图,首先要在校正好的条码图像上生成采样网格。以一个经过校正的宽、高均为100的10?10的条码图像为例,如图4-21所示。 为确定条码的行列数及每行每列的坐标位置,在条码校正图像上作两条平行于坐标轴的扫描线s1和s2,如图4-21所示。基于条码模块尺寸均在3*3以上的假设,在条码上边缘下方2像素处做s1过(0,98)点平行于x轴,而在条码右边缘左侧2像素处做s2过(98,0)点平行于y轴,均贯穿铁路线。扫描线s1自左向右扫描顶部的铁路线,记录黑白交替的次数从而得到条码的列数,同时记录下每次交替时的横坐标位置。与之类似,扫描线s2自下向上扫描右侧铁路线,记录黑白交替的次数从而得到条码的行数,同时记录下每次交替时的纵坐标位置。利用扫描线记录的黑白交替时的横(纵)坐标位置计算出各列(行)的中心横(纵)坐标。令扫描线记录的第i次交替的横(纵)坐标为Di,则数据区第i列(行)的中心横(纵)坐标Ci为(4-35)式中int表示取整。以得到的数据区每列中心横坐标为横坐标作一组平行于y轴的平行线,再以得到的数据区每行中心纵坐标为纵坐标作一组平行于x轴的平行线。两组平行线即组成条码数据区的采样网格,在两组平行线的交点上对条码图像进行采样生成数据区的二进制位图,黑色为1,白色为0。图4-22给出了图4-21所示条码的采样网格。 需要注意的是,对于较小的条码,条码中只含有一个数据区,此数据区即映射数据区;而对于较大的条码,ECC200会利用对齐模式将大数据区分割为几个较小的数据区,此时要将这些小数据区按之间的相对位置组合起来共同组成一个大的映射数据区。例如一个32?32的条码的数据区被对齐模式分割为4个14?14的小数据区,要将这4个小数据区组合构成一个28?28的映射数据区才能进行后续处理。对齐模式与寻边区类似,也由暗实线和铁路线组成,图4-23给出了32?32的条码的对齐模式。因对齐模式处在条码数据区区域内,但并不属于映射数据区,因此按前述方法生成采样网格时应忽略对齐模式,生成与条码小数据区个数相等的小网格。图4-24给出了一个32*32的条码的采样网格。 由此网格采样,得到4个14?14的小数据区的二进制位图,要将这4个小数据区的位图按照它们之间的相对位置组合构成一个28?28的映射数据区的二进制位图才能进行后续处理。4.5.2提取码流提取码流就是按照条码模块的排列规则将条码映射数据区的位图转化为相应的二进制码流,用于后续纠错和译码。ECC200DataMatrix条码的最小单位是模块,每个模块代表1比特二进制信息;但在将模块排列组成数据矩阵时,是以字符符号为单位进行排列的。每个字符符号由8个模块从左到右,从上到下排放而成,表示一个8比特字节的二进制信息,如图4-25所示,其中每个模块表示一个二进制的数值,黑色模块表示1,白色模块表示0。由于字符符号的右上角是空缺的,如果字符符号顺序排列,那么条码将不会被完整地填充,包括条码边缘和条码的四个角都会产生空缺,这种情况也会导致条码存储空间的浪费。为避免浪费,ECC200中针对数据区边界和拐角处的字符符号规定了几种特殊的模块排列方式,如图4-26、4-27、4-28所示。此外,ECC200对于图4-26、4-27所示边界字符符号的模块排列方式,还规定了分开的两部分模块之间的相对位置[52],如表4-1所示。而对于图4-28所示4种拐角处字符符号的模块排列方式,ECC200则分别规定了其适用的条码数据区尺寸:图4-28(a)适用于数据区尺寸为 的条码;图4-28(b)适用于数据区尺寸为142,222的条码;图4-28(c)适用于数据区尺寸为6*28,14*44的条码;图4-28(d)适用于数据区尺寸为6*16,14*32的条码。 仅有这几种特殊的字符符号排列方式还不足以避免条码存储空间的浪费,ECC200还规定了一套独有的字符排列规则用于将各字符符号排列组合为工整的矩形数据区。如图4-29所示,第二个字符符号被放在最左上角的位置,其中2.1表示第二个字符符号的第一个二进制字符;字符符号被安排在45度的从左下向右上的平行斜线上,通常情况下,这个斜线是贯穿字符符号的第8个模块;完全包含在数据区内部的字符符号按照图4-25排列模块,而位于数据区边界和拐角处的字符符号则分别按照图4-26、4-27、4-28和表4-1排列模块;第一条斜线起始于第一个字符符号的第8个模块,继续贯穿2.8和3.8模块;这个斜线贯穿顶部边界,下一条斜线从最顶端的一行向右四个模块开始向左下方贯穿,字符符号按照斜线贯穿第8模块的原则按顺序排列在斜线路径上;斜线之间均相距4个模块,每条斜线位于前一条斜线的右方或下方,所有奇数斜线从左下方贯穿到右上方,所有偶数斜线从右上方贯穿到左下方;当排列路径中遇到前述的边界或转角字符符号部分,并且这个部分是在路径到达此位置前就已被标号时,忽略这一部分,排列路径只给未被标号的符号标号。例如,图4-29所示字符3和7的不包含第8模块的其他部分在排列路径到达前就已经被标号放置了,排列路径忽略这些位置。当所有符号都已经被放置标号,对字符符号放置位置的处理结束,此时排列斜线会中止于数据矩阵的右下方。对数据区尺寸为10*10,14*14,18*18,22*22的条码,右下角会有2*2的空白区域。这个区域内左上角和右下角的两个模块被定义为黑色,由图4-29可见。其他条码则不存在空白区域,如图4-30所示。 提取码流时,按照上述排列规则扫描数据区矩阵,黑色模块代表1,白色模块代表0,并按顺序组成完整的二进制码流,每8比特为一码字,便可用于后续纠错和译码。但要注意,有些较大的条码采用了交织编码的方式以抑制突发干扰,因此码流提取完成之后要解交织,将码流分为相应的Reed-Solomon块分别进行RS纠错,纠错完成后再按照原来的交织方式形成完整码流进行译码。图4-31显示了一个72×72的DataMatrix条码交织编码的方式。从图中可看出,72×72的DataMatrix码字被交织成4部分。即从码字序列中分别每隔4位抽取一个字符,并将其从新组合,使之产生新的序列。4.5.3码流纠错ECC200Data Matrix条码采用RS(Reed-Solomon)码进行检错纠错,RS码是差错控制领域中最重要,也是研究最多的码类之一[78-88]。在对付随机错误和突发错误以及两者的组合错误时,该码都有较强的纠错能力,目前被广泛地应用于深空通信、卫星通信、军用通信、移动通信和磁盘阵列等各种差错控制系统中。RS码的主要特点是:(1)具有严格的代数结构,构造简单,易于软硬件实现。(2)纠正突发错误的能力很强(一个符号中错1比特和连续错m比特,RS码都当一个符号来纠正)。(3)是极大最小距离可分码,简称MDS码。其最大可能的最小距离是校验元的个数加1,设计距离与实际距离是一致的。其纠错能力由辛格尔顿限给出上界:一个RS(n,k)码可以纠长度不超过(n-k)/2的随机错误或连续长度不超过(n-k)/2的突发错误,其中n为码流长度,k为其中信息码的长度。针对信道中出现的连续突发错误,若在常规译码算法中充分考虑到码元错误位置的相关性,则一个RS(n,k)码可以纠连续长度接近(n-k)的突发错误,当连续长度超过(n-k)/2时,译码会带来相对很小的错误概率。这样就在不增加码长和码间距离的情况下提高了码字纠错能力。在非二元BCH码中,RS码是其中较重要的一个子类,其码元符号和生成多项式的根都取自于迦罗华域GF(q),一般为域。域中的每个元素可以用m个比特符号来表示。对于一个纠正t个错误的RS(n,k)码,其参数表示如下:码长符号或比特;信息段k符号或mk比特;监督段符号或m(n-k)比特;最小码距符号或m(2t+1)比特由于RS码的最小距离是校验元的个数加1,符合线性分组码最大可能的最小距离要求。因此,RS码为极大最小距离可分码(MDS)。当RS码用来纠正突发错误时,它可以纠正的错误图样有:总长度为比特的单个突发;总长度为比特的两个突发;。。。。。。总长度为比特的i个突发。长为,纠错能力为t的RS码,其生成多项式为:(4-36)式中a为上的本原元,为生成多项式的根i=1,2,…2t。以g(x)作为生成多项式得到的码字是(n,n-2t)循环码。由于RS码中的每个码元是由m个比特位组成的,因此当信道中的突发干扰使得码字中若干个连续比特位发生错误时,仅相当于几个码元符号出现错误,所以RS码特别适合纠正突发成片的错误。RS码的译码基本原理与一般线性码的译码原理相同,即由接收到的码字R(x)求得错误图样E(x)然后将R(x)与E( x)相加,得到最可能的发送码字。与二元码不同的是,RS码的译码不仅要找出错误位置,而且还要找出对应位置的错误大小,因此RS码的译码分为3步:第1步,由接收到的码多项式R(x)求多个伴随式的值;第2步,由伴随式的值求出错误位置;第3步,求出相应的错误值,得到错误图样,完成纠错。假设错误图样的元素。若信道产生t个错误,分别位于Xi,相应的错误值为Yi,i=1,2…t,则错误图样为(4-37)伴随式的值为:(4-38)要由伴随式的值求出错误位置,首先假设一个错误位置多项式:(4-39)方程以所有的错误位置为根,求出多项式系数就得到错误位置多项式。若为错误位置,则两边乘以得。对k求和并写成矩阵形式为: (4-40)该方程组有解的充要条件是系数矩阵为满秩。实际上,只有当错误个数为t时系数矩阵为满秩;当错误个数r