(word完整版)条形码识别技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.条码技术概述
条码技术是在计算机的应用实践中产生和发展起来的一种自动识别技术,条码应用技术就是应用条码系统进行的信息处理技术。

条码技术的研究始于20世纪中期,是继计算机技术应用和发展应运而生的.随着70年代微处理器的问世,标志着“信息化社会”的到来,它要求人们对社会上各个领域的信息、数据实施正确、有效、及时的采集、传递和管理。

因此如何代替人的视觉、人的手工操作、或者在复杂的环境中正确、迅速地获取信息并加以识别,成为人们普遍关心和有关人员精心研究的课题。

条码技术具有以下几个方面的优点:
1、可靠准确. 有资料可查键盘输入平均每300个字符一个错误,而条码输入平均每15000个字符一个错误.如果加上校验位出错率是千万分之一。

2、数据输入速度快。

与键盘输入相比较,用条形码扫描读入电脑的速度大约是键盘输入的100倍,并且能够实现“即时数据输入”,一个每分钟打90个字的打字员1.6秒可输入12个字符或字符串,而使用条码,做同样的工作只需0。

3秒,速度提高了5倍。

3、经济便宜. 与其它自动化识别技术相比较,推广应用条码技术,所需费用较低。

4、灵活、实用。

条码符号作为一种识别手段可以单独使用,也可以和有关设备组成识别系统实现自动化识别,还可和其他控制设备联系起来实现整个系统的自动化管理。

同时,在没有自动识别设备时,也可实现手工键盘输入。

5、自由度大。

识别装置与条码标签相对位置的自由度要比OCR大得多。

条码通常只在一维方向上表达信息,而同一条码上所表示的信息完全相同并且连续,这样即使是标签有部分缺欠,仍可以从正常部分输入正确的信息。

6、设备简单。

条码符号识别设备的结构简单,操作容易,无需专门训练。

7、易于制作,可印刷,称作为“可印刷的计算机语言”。

条码标签易于制作,对印刷技术设备和材料无特殊要求。

正因为条码具有上述迅速,准确,廉价,使用方便,适应性强等优点,克服了其他输入方法的不足,所以他在各个行业中的发展可谓突飞猛进,最初应用于物流管理,最引人注目的是pos系统,它使商店的定货管理,盘点,库存管理,库存查询,验货管理,收款等各项工作得到极大地提高。

目前已经应用到计算机自动化的各个领域,包括质量跟踪,仓储管理,物资管理,票证管理,人流物流管理,图书文献检索,医疗卫生,邮电系统,安全检查等领域.
2.一维条码简介
条码由一组规则排列的条,空及相应的字符组成。

条码的信息靠条和空的不同宽度不同位置来传递的,信息量的大小事由条码的宽度和印刷的精度来决定的,条码越宽,包容的条和空越多,传递的信息量也越大,条码印刷的精度越高单位长度内可以容纳的条空也越多,传递的信息量也越大。

这种用条空组成的数据编码很容易供机器识读,而且很容易已成二进制和十进制的数.
世界上约有225种以上的一维条码,每种一维条码都有自己的一套编码规格,规定每个字母(可能是文字或数字或文数字)是由几个线条(Bar)及几个空白(Space)组成,以及字母的排列。

目前使用频率最高的几种一维条码码制有:EAN、UPC、三九码、交插二五码和EAN128码。

其中UPC条码主要用于北美地区。

EAN条码是国际通用符号体系,它们是一种定长、无含义的条码,主要用于商品标识。

EAN128码是由国际物品编码协会和美国统一代码委员会联合开发、共同采用的一种特定的条码符号,它是一种连续型、非定长有含义的高密度代码,用以表示生产日期、批号、数量、规格、保质期、收货地等更多的商品信息.另有一些码制主要是适应于某种特殊场合,如库德巴码用于血库、图书馆、包裹等的跟踪管理;二五码用于包装、运输和国际航空系统为机票进行顺序编号。

还有类似三九码的九三码,它的密度较高,可代替三九码。

以上所说的都是一维条码,就是常说的传统条码。

本文主要研究其中的EAN13码.
条码可分为一维条码(One Dimensional Barcode,1D)和二维码(Two Dimensional Code,2D)两大类,目前在商品上的应用仍以一维条码为主,故一维条码又被称为商品条码,二维码则是另一种渐受重视的条码,其功能较一维条码强,应用范围
更加广泛.
2.1 一维条码符号的结构
通常任何一个完整的条码是由两侧空白区、起始符、数据字符、校验符、终止符组成,以一维条码而言,其排列方式通常如表2—1所示:
图2—1 条码符号
1、空白区
位于条码两侧无任何符号及资讯的白色区域,主要用来提示扫瞄器准备扫瞄。

2、起始符
指条码符号的第一位字码,用来标识一个条码符号的开始,扫瞄器确认此字码存在后开始处理扫瞄脉冲。

3、数据符
位于起始字符后面的字码,用来标识一个条码符号的具体数值,允许双向扫瞄。

4、校验符
用来判定此次阅读是否有效的字码,通常是一种算术运算的结果,扫瞄器读入条码进行解码时,先对读入各字码进行运算,如运算结果与检查码相同,则判定此次阅读有效。

2.2 EAN码简述
EAN码的全名为欧洲商品条码(European Article Number),源于公元1977年,由欧洲十二个工业国家所共同发展出来的一种条码。

目前已成为一种国际性的条码系统。

EAN条码系统的管理是由国际商品条码总会(International Article Numbering Association)负责各会员国的国家代表号码之分配与授权,再由各会员国的商品条码专责机构,对其国内的制造商、批发商、零售商等授予厂商代表号码。

目前已有30多个国家加盟EAN.
EAN码由前缀码、厂商识别码、商品项目代码和校验码组成。

前缀码是国际EAN组织标识各会员组织的代码,我国为690、691和692;厂商代码是EAN编码组织在EAN分配的前缀码的基础上分配给厂商的代码;商品项目代码由厂商自行编码;校验码为了校验代码的正确性.在编制商品项目代码时,厂商必须遵守商品编码的基本原则:对同一商品项目的商品必须编制相同的商品项目代码;对不同的商品项目必须编制不同的商品项目代码。

保证商品项目与其标识代码一一对应,即一个商品项目只有一个代码,一个代码只标识一个商品项目。

另外,图书和期刊作为特殊的商品也采用了EAN—13表示ISBN和ISSN。

前缀977被用于期刊号ISSN图书号ISBN 用978为前缀,我国被分配使用7开头的ISBN号,因此我国出版社出版的图书上的条码全部为9787开头。

EAN码具有以下特性:
1。

只能储存数字。

2。

可双向扫描处理,即条码可由左至右或由右至左扫描.
3.必须有一检查码,以防读取资料的错误情形发生,位于EAN码中的最右边处。

4。

具有左护线、中线及右护线,以分隔条码上的不同部分与截取适当的安全空间来处理。

5。

条码长度一定,较欠缺弹性,但经由适当的管道,可使其通用于世界各国.
6.依结构的不同,可区分为:
EAN—13码:由13个数字组成,为EAN的标准编码型式。

EAN- 8码:由8个数字组成,属EAN的简易编码型式.
2.3 EAN-13码符号的特征
(1)条码符号的整体形状为矩形.由一系列互相平行的条和空组成,四周都留有空白区。

(2)条空分别由1-4个同一宽度的的深或浅颜色的模块组成。

深色模块用“1”表示,浅色模块用“0”表示。

(3)在条码符号中,表示数字的每个条码字符仅由两个条和两个空组成,共7个模块。

(4)除了表示数字的条码字符外,还有一些辅助条码字符,用作表示起始、终止的分界符和平分条码符号的中间分隔符。

(5)条码符号可设计成既可供固定式扫描器全向扫描,又可用手持扫描设备识读的形式.
(6)条码符号的大小可在放大系数的两个极限值所决定的尺寸之间变化,以适应不同印刷工艺的需求及用户对印刷面积的要求.
(7)对一个特定大小的条码符号所规定的尺寸称为名义尺寸,放大系数的范围0.8-2。

0。

(8)供人识别的字符规定采用OCR—B字符.
2.4 EAN-13的编码规则
EAN-13的编码是由二进制表示的.它的数据符、起始符、终止符、中间分隔符编码见表1。

表1 EAN-13编码
6010111100001011010000
7011101100010011000100
8011011100010011001000
9000101100101111110100
起始符101
中间分隔
1010

终止符101
左侧数据符有奇偶性,它的奇偶排列取决于前置符,所谓前置符是国别识别码的第一位,该位以消影的形式隐含在左侧六位字符的奇偶性排列中,这是国际物品编码标准版的突出特点。

前置符与左侧六位字符的奇偶排列组合方式的对应关系见表2,实际上由表2这种编码规定可看出,与这种组合方式是一一对应固定不变的。

例如:中国的国别识别码为“690”,因此它的前置符为“6”,左侧数据符的奇偶排列为“OEEEOO”[3],“E"表示偶字符,“O”表示奇字符。

表2 左侧数据符奇偶排列结合方式
前置符左侧数据符奇、偶排列前置符左侧数据符奇、偶排列
0OOOOOO5OEEOOE
1OOEOEE6OEEEOO
2OOEEOE7OEOEOE
3OOEEEO8OEOEEO
4OEOOEE9OEEOEO
2.5 EAN-13条形码的校验方法
校验码的主要作用是防止条形码标志因印刷质量低劣或包装运输中引起标志破损而造成扫描设备误读信息.作为确保商品条形码识别正确性的必要手段,条形码用户在标志设计完成后,
代码的正确与否直接关系到用户的自身利益.对代码的验证,校验码的计算是标志商品质量检验的重要内容之一,应该谨慎严格,需确定代码无误后才可用于产品包装上。

下面是EAN-13条形码的校验码验算方法,步骤如下[3]:
(1)以未知校验位为第1位,由右至左将各位数据顺序排队(包括校验码);
(2)由第2位开始,求出偶数位数据之和,然后将和乘以3,得积;
(3)由第3位开始,求出奇数位数据之和,得;
(4)将和相加得和;
(5)用除以10,求得余数,并以10为模,取余数的补码,即得校验位数据值;
(6)比较第1位的数据值与C的大小,若相等,则译码正确,否则进行纠错处理。

例如,设EAN-13码中数字码为6901038100578(其中校验码值为8),该条码字符校验过程为:,,=+ =82,
除以10的余数为2,故,译码正确。

3 EAN—13条形码的生成
条形码的生成方法如下[3]:
(1)由根据表3产生和~ 匹配的字母码,该字母码有6个字母组成,字母限于A 和B。

表3 映射表
0AAAAAA5ABBAAB
1AABABB6ABBBAA
2AABBAB7ABABAB
3AABBBA8ABABBA
4ABAABB9ABBABA
(2)将~和产生的字母码按位进行搭配,来产生一个数字—-字母匹配对。

并通过查表4生成条形码的第一数据部分。

表4 数字--字母映射表
数字—字母匹配
数字-字母匹配对二进制信息
二进制信息

0A00011010B0100111
0C11100101A0011001
1B01100111C1100110
2A00100112B0011011
2C11011003A0111101
3B01000013C1000010
4A01000114B0011101
4C10111005A0110001
5B01110015C1001110
6A01011116B0000101
6C10100007A0111011
7B00100017C1000100
8A01101118B0001001
8C10010009A0001011
9B00101119C1110100(3)将~ 和C进行搭配,并通过查表4生成条形码的第二数据部分。

(4)按照两部分数据绘制条形码:1对应黑线,0对应白线。

例如,假设一个条形码的数据码为:6901038100578。

=6,对应的字母码为ABBBAA,~和产生的字母码按位进行搭配结果为9A、0B、1B、0B、3A、8A,查表4得第一部分数据的编码分别为0001011、0100111、0110011、0100111、0111101、0110111;~ 和C进行搭配结果为1C、0C、0C、5C、7C、8C,查表4得第二部分数据的编码分别为1100110、1110010、1110010、1001110、1000100、1001000。

4 条形码识别
4。

1条码识别的基本原理
EAN-13是一种(7, 2)码,即每个字符的总宽度为7个模块宽,交替由两个条和两个空组成,而每个条空的宽度不超过4个模块,如图4所示。

图4 EAN—13条码宽度的定义
图4中表示当前字符中四个相邻条、空的宽度,是一个字符的宽度,满足:,为整数;且。

用表示当前字符单位模块的宽度,则。

令,.由
的值可以得到编码。

例如:若,且条码的排列为条—空—条—空,则可知当前字符的编码为1000100,是右侧偶字符7.,且条码的排列为空—条—空—条,则可知当前字符的编码为0001011,是左侧偶字符9.
由于条码印刷和图像采集设备的限制,在图像采集时边缘部分还存在着半像素问题,实际扫描后得到的图像会出现一定程度的边缘模糊,尤其当条码密度较大,条空间距较小时边缘模糊更为明显。

边缘出现模糊时,将导致寻找条空边缘时产生一定偏差,当这个偏差超过半个模块宽度时,便会出现误码。

如果再考虑到流通过程中磨损、水渍浸泡等因素引起的图像缺陷,在这种情况下如果用边缘检测的方法确定条空序列会大大降低条码的识别率。

本文采用的方法为:以起始模块的中心为起始中心、一个单位模块宽度为间距来检测条空序列。

4。

2 条形码扫描方向的判别
为了能够正确地解译条形码,在解译条形码符号所表示的数据之前,需要先进行条形码扫描方向的判别,EAN—13的起始字符和终止字符的编码结构都是“101”,只能通过它进行码制的判别(对于多种条码识
别的时候,其它码制的条码起始字符和终止字符都不是“101"),但是不能通过起始字符和终止字符来判别它的扫描方向。

由EAN-13码的编码结构可知,它的右侧字符为全偶,而左侧字符的奇偶顺序由前置符决定,没有全偶的,从而可以利用此原理来确定EAN-13码的扫描方向。

如果扫描到的前6个字符为全偶,即为反向扫描,否则为正向扫描。

4。

3条形码字符的判别方法
从上述条码识别原理知,它的逻辑值可以通过和单位模块比较判别。

这种方法对于印刷质量很好、没有缺陷的条码很适用,但是对于条码印刷质量存在缺陷,则不能正确地解译.因此本文提出了一种解决此类问题的较好方法,即相似边距离测量方法。

图5条码字符宽度示图
相似边距离就是相邻条和空的宽度之和,如图5中的,定义的归一化值和如下:
表5列出了正向译码时EAN-13条码字符值与归一化值的对应关系,表6列出了反向译码时EAN-13条码字符值与归一化值的对应关系,其中“E"表示偶字符,“O”表示奇字符。

表5 EAN-13条码字符值与归一化值的对应关系(正向译码)
2345
2O6EO O4E3
3E9O2或O8E1或E7O5
4O9E2或E8O1或O7E5
5E6O0E4O3
表6 EAN—13条码字符值与归一化值的对应关系(反向译码)
2345
2E6O0E4O3
3O9E2或E8O1或O7E5
4E9O2或O8E1或E7O5
5O6E0O4E3
表7和表8分别为正向译码和反向译码时EAN—13条码编码与归一化值的对应关系.表7 EAN-13条码编码与归一化值的对应关系(正向译码)
字符值
左奇
字符
编码
左偶
字符
编码
右偶
字符
编码
0 1 2 30001101
0011001
0010011
0111101
(5,3)
(4,4)
(3,3)
(5,5)
(2,4)
(3,5)
(2,2)
(4,4)
(3,3)
0100111
0110011
0011011
0100001
(2,3)
(3,4)
(4,3)
(2,5)
(5,4)
(4,5)
(5,2)
(3,4)
(4,3)
1110010
1100110
1101100
1000010
(5,3)
(4,4)
(3,3)
(5,5)
(2,4)
(3,5)
(2,2)
(4,4)
(3,3)
4 5 6 7 8 9
0100011
0110001
0101111
0111011
0110111
0001011
(4,2)0011101
0111001
0000101
0010001
0001001
0010111
(3,2)1011100
1001110
1010000
1000100
1001000
1110100
(4,2)表8 EAN-13条码字符值与归一化值的对应关系(反向译码)
字符值
左奇
字符
编码
左偶
字符
编码
右偶
字符
编码
0 1 2 3 4 5 61011000
1001100
1100100
1011110
1100010
1000110
1111010
(2,3)
(3,4)
(4,3)
(2,5)
(5,4)
(4,5)
(2,2)
(3,4)
(4,3)
(3,2)
1110010
1100110
1101100
1000010
1001110
1001110
1010000
(5,3)
(4,4)
(3,3)
(5,5)
(2,4)
(3,5)
(2,2)
(4,4)
(3,3)
(4,2)
0100111
0110011
0011011
0100001
0011101
0111001
0000101
(2,3)
(3,4)
(4,3)
(2,5)
(5,4)
(4,5)
(5,2)
(3,4)
(4,3)
(3,2)
7 8 9
1101110
1110110
1101000
1000100
1001000
1110100
0010001
0001001
0010111
由表5~8可以看出,条形码编码和归一化值在多数情况下呈现一一对应的关系,只要确定了归一化值就
能确定字符值,但是有四种情况例外。

以正向译码为例,在表6中,左侧奇字符和右侧偶字符1, 7归一化值均为44,左侧奇字符和右侧偶字符2, 8归一化值均为33,左侧偶字符1, 7归一化值均为34,左侧偶字符2, 8归一化值均为43,这几种情况可以根据字符的条空宽度进一步判别.表9为1728字符标准条空宽度值,其中字符上有“-”的对应条,否则对应空。

表9 1728字符标准条空宽度值
字符值

奇字符
编码
条空
宽度值
左偶
字符编码
条空
宽度值
右偶
字符编码
条空
宽度值
1
001100101100111100110
2
001001100110111101100
7
011101100100011000100
8
011011100010011001000
根据表9中各字符条空宽度的特点可知:①对于左侧奇字符、右侧偶字符1和7,可通过比较与来判别,若〉,则为字符1,反之为7;②对于左侧奇字符、右侧偶字符2和8,可通过比较与来判别,若> ,则为字符8,反之为2;③对于左侧偶字符1和7,可通过比较与
来判别,若〉,则为字符7,反之为1;④对于左侧偶字符2和8,可通过比较与来判别,若〉,则为字符2,反之为8。

采用相似边距离归一化的条码识别方法,当条码质量存在缺陷使得实际测量值和条码应该具有的理论值有较大偏差时,仍能正确解译。

例如对于左侧奇字符“0”进行译码,该字符的四个元素宽度的理论值应该是
,但是由于印刷等原因的影响,实际上测量值是。

如果只根据元素宽度的测量值进行译码,那么这四个元素的宽度测
量值四舍五入取整后分别为3、3、1、1,从而造成译码错误。

若采取相似边距离归一化的条码识别方法进行译码,此时
,由表7知字符编码为左侧奇字符
“0"。

可见利用相似边距离归一化的条码识别方法判别字符值,可以得到比较满意的效果。

4。

4纠错处理
采用相似边距离归一化的译码方法能够在一定程度上消除条、空误差对译码识别的影响。

当系统误差特别是条码印刷误差较大导致
、 改变时,译码将出错.因此译码软件应具有一定的纠错能力,以减少
条空宽度值不精确的影响,提高条码识别率[1]。

纠错主要从以下两方面进行:
(1)如果条码字符的 或 在临界位置,当条或空的宽度有误差时,就会导致


整数值增1或减1.如果

中只有一个发生错误,则引起该字符的奇偶性、字符值的改变,如果

都出错,则引起该字符值的改变,但奇偶性未变。

实际情况中第一种现象出现的概率比第二种
情况大得多,因此本文主要对第一种情况进行纠错。

由表1和表2可知,右侧字符为全偶字符排列,左侧字符有10种奇偶排列,这11种排列构成有效的排列集合,把所译的字符串奇偶排列与有效的奇偶排列对比,判断是否为排列集合成员.若是,所译的字符串不作任何处理;若不是,所译码出错,并找出 或 哪
个处在临界值,修改它的归一化整数值,这样可实现纠错。

(2)当字符数据为2、8、1、7时,由于条码宽度不精确导致误码,即2判成8、1判成7,或反之.分析这种误码相对于校验位的差值有一定规律,因此可利用此规律进行纠错.由EAN-13校验方法知:当偶数位上有2错译成8或1错译成7时,计算得到的实译值与校验值差-8或2,反之8错译成2或7错译成1时,计算得到的实译值与校验值差8或-2;当奇数位上有2错译成8或1错译成7时,计算得到的实译值与校验值差—6或4,反之,8错译成2或7错译成1时,计算得到的实译值与校验值差6或-4;当然别的字符译错也可能出现这些差值,但几率很小,可以不予考虑.这样若程序校验没通过,可加一个判断,根据差值判断其属于上述哪种情况,找出出错的字符并纠正。

图像式条码识别系统框图
条码图像采集
图 像 预处理
二值 化
边缘确定
条码识 读
结 果显 示。

相关文档
最新文档