前言:
眼前看官们对“条形码识别算法”都比较注意,小伙伴们都想要剖析一些“条形码识别算法”的相关文章。那么小编同时在网上网罗了一些有关“条形码识别算法””的相关资讯,希望大家能喜欢,我们快快来学习一下吧!将物品信息和运输信息人工输入电脑,由计算机和条码打印机将这些信息用条码表达出来,或预先在表单上打印条码,附于物品包装箱及相关单证上,可用识读器读出来。这就是条码自动识读技术。
条码阅读器工作时,发射激光束,因条码黑白反差较大,光敏检测部件可以识别不同的条纹,然后转换成计算机可以理解的代码,就像从键盘上输入的一样。对应的信息管理系统就可以根据物品代码检索物品的相关信息了。
从20世纪60年代到21世纪,常见的大概有二十多种条码制。
1 条码历史
二十世纪二十年代威斯汀豪斯(Westinghouse)实验室的约翰·科芒德(John Kermode)想对邮政单据实现自动分检,他的想法是在信封上做条码标记,条码中的信息是收信人的地址,就象今天的邮政编码。他的设计方案非常的简单(注:这种方法称为模块比较法),即一个“条”表示数字“1”,二个“条”表示数字“2”,以次类推。然后,他又发明了由基本的元件组成的条码识读设备:一个扫描器(能够发射光并接收反射光);一个测定反射信号条和空的方法,即边缘定位线圈;和使用测定结果的方法,即译码器。
科芒德的扫描器利用当时新发明的光电池来收集反射光。“空”反射回来的是强信号,“条”反射回来的是弱信号。与当今高速度的电子元器件应用不同的是,科芒德利用磁性线圈来测定“条”和“空”。就象一个小孩将电线与电池连接再绕在一颗钉子上来夹纸。科芒德用一个带铁芯的线圈在接收到“空”的信号的时候吸引一个开关,在接收到“条”的信号的时候,释放开关并接通电路。因此,最早的条码阅读器噪音很大。开关由一系列的继电器控制,“开”和“关”由打印在信封上“条”的数量决定。通过这种方法,条码符号直接对信件进行分检。
最早被打上条形码的产品是箭牌口香糖。
1970年Iterface Mechanisms公司开发出“二维码”之后,才有了价格适于销售的二维矩阵条码的打印和识读设备。那时二维矩阵条形码用于报社排版过程的自动化。二维矩阵条形码印在纸带上,由今天的一维CCD扫描器扫描识读。CCD发出的光照在纸带上,每个光电池对准纸带的不同区域。每个光电池根据纸带上印刷条码与否输出不同的图案,组合产生一个高密度信息图案。用这种方法可在相同大小的空间打印上一个单一的字符,作为早期科芒德码之中的一个单一的条。定时信息也包括在内,所以整个过程是合理的。当第一个系统进入市场后,包括打印和识读设备在内的全套设备大约要5000美元。
2 一维条码
一维条码由条码和数字组成,条码由机器识读,而数字则可以供人识读;
13位数字:国家+厂家+商品规格+防错误=69+5位+5位+1位;
EAN13:空白区+起始符+左侧数据符+中间分隔符+右侧数据符+校验符+终止符+右侧空白区;
一维条码所携带的信息有限,更多的信息只能依赖商品数据库的支持。
3 二维码
二维码Two-dimensional Bar Code指在一维条码的基础上扩展出另一维具有可读性的条码,是在二维方向上都信息的条码,也就是能够在横向和纵向两个方位同时表示信息。
二维码可容纳约500个汉字信息,可以使用激光或CCD阅读器识读;二维条码的种类很多,不同的机构开发出的二维条码具有不同的结构以及编写、读取方法。
由于受信息容量的限制,一维条码仅仅是对“物品”的标识,而不是对“物品”的描述。故一维条码的使用,不得不依赖数据库的存在。在没有数据库和不便联网的地方,一维条码的使用受到了较大的限制,有时甚至变得毫无意义。
二维条码正是为了解一维条码无法解决的问题而产生的。因为它具有高密度、高可靠性等特点,所以可以用它表示数据文件(包括汉字文件)、图像等。二维条码是大容量、高可靠性信息实现存储、携带并自动识读的最理想的方法。
二维条码(2-dimensional barcode) 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。
一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条码没有的“定位点”和“容错机制”。容错机制在即使没有辨识到全部的条码、或是说条码有污损时,也可以正确地还原条码上的信息。
二维条码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。
3.1 二维条码可以分为以下两类
堆叠式/行排式二维条码 (又称堆积式或层排式),其编码原理是建立在一维条码基础之上,按需要堆积成二行或多行,形态上是由多行短截的一维条码堆叠而成。它在编码设计、校验原理、识读方式等方面继承了一维条码的一些特点,识读设备与条码印刷与一维条码技术兼容。但由于行数的增加,需要对行进行判定,其译码算法与软件也不完全相同于一维条码。有代表性的行排式二维条码有:Code 16K、Code 49.PDF417等。
矩阵式二维码 (又称棋盘式二维条码)以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1”, 用“空”表示二进制“0”,由“点”和“空”的排列组成代码。它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。矩阵式二维条码是建立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。具有代表性的矩阵式二维条码有:Code One、Maxi Code、QR Code、 Data Matrix等。在目 前几十种二维要码中,常用的码制有:PDF417二维条码,Datamatrix二维条码, Maxicode二维条码,QR Code,Code 49,Code 16K,Code one,等,除了这些常见的二维条码之外,还有Vericode条码、CP条码、Codablock F条码、田字码、 Ultracode条码,Aztec条码。
3.2 二维码编码过程
I 数据分析:确定编码的字符类型,按相应的字符集转换成符号字符; 选择纠错等级,在规格一定的条件下,纠错等级越高其真实数据的容量越小。
II 数据编码:将数据字符转换为位流,每8位一个码字,整体构成一个数据的码字序列。其实知道这个数据码字序列就知道了二维码的数据内容。
III 纠错编码:按需要将上面的码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个新的序列。在二维码规格和纠错等级确定的情况下,其实它所能容纳的码字总数和纠错码字数也就确定了,比如:版本10,纠错等级时H时,总共能容纳346个码字,其中224个纠错码字。就是说二维码区域中大约1/3的码字时冗余的。对于这224个纠错码字,它能够纠正112个替代错误(如黑白颠倒)或者224个据读错误(无法读到或者无法译码),这样纠错容量为:112/346=32.4%
IV 构造最终数据信息:在规格确定的条件下,将上面产生的序列按次序放如分块中按规定把数据分块,然后对每一块进行计算,得出相应的纠错码字区块,把纠错码字区块 按顺序构成一个序列,添加到原先的数据码字序列后面。如:D1, D12, D23, D35, D2, D13, D24, D36, … D11, D22, D33, D45, D34, D46, E1, E23,E45, E67, E2, E24, E46, E68,…
V 构造矩阵:在构造矩阵之前,我们先来了解一个普通二维码的基本结构。
位置探测图形、位置探测图形分隔符、定位图形:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;
校正图形:规格确定,校正图形的数量和位置也就确定了;
格式信息:表示改二维码的纠错级别,分为L、M、Q、H;
版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21×21(版本1),到177×177(版本40),每一版本符号比前一版本 每边增加4个模块。
数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。
了解了二维码的基本结构后,将探测图形、分隔符、定位图形、校正图形和码字模块放入矩阵中,并把上面的完整序列填充到相应规格的二维码矩阵的区域中。
VI 掩膜:将掩摸图形用于符号的编码区域,使得二维码图形中的深色和浅色(黑色和白色)区域能够比率最优的分布。
VII 格式和版本信息:生成格式和版本信息放入相应区域内。版本7-40都包含了版本信息,没有版本信息的全为0。二维码上两个位置包含了版本信息,它们是冗余的。版本信息共18位,6X3的矩阵,其中6位时数据为,如版本号8,数据位的信息时 001000,后面的12位是纠错位。
4 复合码
复合码=一维码+二维码。
由两个很靠近的条码符号组成,并包含互相关联的数据。通常其中一个是线性符号而另一个是堆叠或阵列符号。
应用于目标物的生命期内在不同点需要不同的信息的情况下,或者受到空间限制的情况下。
目前,其主流的应用是UCC.EAN复合条码,其主要满足如医药行业等需要同时包含产品标识及附加信息(如批次号、有效期)的应用场合。这些符号由一个标准的UCC.EAN系统类的一维码(如EAN-13或UPC-A或UCC.EAN 128)与一个二维堆叠码组成。
5 应用
条码应用范围也涉及到各个领域和行业,其中包括物流、仓储,图书馆,银行,pos收银系统,医疗卫生、零售商品、服装、食品服务以及高科技电子产品等等,而目 前仍然会在每天都在一些新增加的项目上持续的用到条码应用领域。
在物流业,物流中的货物分类,库位的分配,库位的查询,进出库信息,进出库盘点,产品查询等,如果是用人力去做这些事,不仅浪费时间、人力物力财力等,还常常伴随着非常大的出错率,给大多数商家乃至整个物流业的自身发展都带来了颇多的困扰,所以可以说,没有条码的物流过程将会是多么的杂乱无章,其后果往往不堪设想。而条码技术对物流业的优势也是显而易见的,既能精确管理,又功能实用。对于大部分的现代化仓库管理的需求都能满足。操作方便简单,维护亦不需费心,仓库的管理员经过简单的培训都能快速上岗进行操作。而且还能大大减少居高不下的人为出错率。把种类繁琐的工作瞬间化烦为易,查询货物的时候特别方便,不需再耗费很多的人力去翻查种类繁多的出进货单据,只需在电脑上轻轻一扫,所需的货物型号、经销商、进出货日期,经办人等具体详细资料都即可显示出来,并且可以打印出来。而且这部分数据还可以备份,不会因为死机或者电脑中病毒而担心数据的丢失。不失为人性化管理系统。
6 优势
条形码是迄今为止最经济、实用的一种自动识别技术。条形码技术具有以下几个方面的优点
输入速度快:与键盘输入相比,条形码输入的速度是键盘输入的5倍,并且能实现“即时数据输入”。
可靠性高:键盘 输入数据出错率为三百分之一,利用光学字符识别技术出错率 为万分之一,而采用条形码技术误码率低于百万分之一。
采集信息量大:利用传统的一维条形码一次可采集几十位字符的信息,二维条形码更可以携带数千个字符的信息,并有一定的自动纠错能力。
灵活实用:条形码标识既可以作为一种识别手段单独使用,也可以和有关 识别设备 组成一个系统实现自动化识别,还可以和其他控制设备联接起来实现自动化管理。
另外,条形码标签易于制作,对设备和材料没有特殊 要求,识别设备操作 容易,不需要特殊培训,且设备也相对便宜。
7 条码制作软件
Bartender、Label view、label matrix、Codesoft等属于专业条形码生成与打印软件,集条码生成、标签制作、批量打印于一体,可打印固定与可变数据并支持调用数据库(如.dbf,.xls,.mdb等)文件直接打印;CorelDRAW、Photoshop、Illustrator属于专业的画图设计软件,另外Label mx可以导出条码为矢量图片(.emf 和.wmf)和CorelDRAW、Photoshop、Illustrator 交互使用。
8 条码技术
8.1 符号技术:包括条码标识的设计与印刷;
8.2 识别技术:主要由条码扫描和译码两部分组成
8.3 扫描:是利用光束扫描条码符号,将光信号转变以电信号,这部分功能由扫描器完成;射频读写器是一种可读、可写入射频识别标签的仪器;
8.4 译码:是将扫描器获得的电信号按一定的规则翻译成相应的数据代码,然后输入计算机(或存储器),这个过程由译码器完成;
8.5 条码应用系统设计:由条码、识读设备、电子计算机和通信系统组成;
码制的选择
物品编码
条码标识的设计(条码编码器或软件)
条码标识的印刷(条码打印机)
条码标识的检验
条码标识的识读
8.6 条码印刷的载体:可以是普通白纸、瓦楞纸、铜版纸、不十胶标签、纸板、木制品、布带(缎带)、塑料制品和金属制品;金属条码一般利用激光打标机进行激光蚀刻,比传统的化学蚀刻技术工艺简单;也有陶瓷条码、隐形条码、银色条码;
商品条码:以直接向消费者销售的商品为对象,以单个商品为单位使用的条形码;一般应用于POS系统、补充订货系统;
物流条码:以物流过程为对象、以集合包装商品为单位使用的条码;一般应用于出入库管理、运输保管等;
-End-
标签: #条形码识别算法