CN101882210A - 矩阵式二维条码解码芯片及其解码方法 - Google Patents
矩阵式二维条码解码芯片及其解码方法 Download PDFInfo
- Publication number
- CN101882210A CN101882210A CN2010101890483A CN201010189048A CN101882210A CN 101882210 A CN101882210 A CN 101882210A CN 2010101890483 A CN2010101890483 A CN 2010101890483A CN 201010189048 A CN201010189048 A CN 201010189048A CN 101882210 A CN101882210 A CN 101882210A
- Authority
- CN
- China
- Prior art keywords
- module
- bar code
- parameter
- matrix
- dimensional barcode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1456—Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1473—Methods for optical code recognition the method including quality enhancement steps error correction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种矩阵式二维条码解码芯片,包括数据存储器、至少两个矩阵式二维条码识别模块以及主控逻辑模块。数据存储器用于存储条码图像。至少两个矩阵式二维条码识别模块用于对数据存储器内存储的条码图像进行并行处理。主控逻辑模块用于控制至少两个矩阵式二维条码识别模块的工作状态,使至少两个矩阵式二维条码识别模块依次调用数据存储器中的条码图像。本发明还提供一种通过矩阵式二维条码解码方法。本发明的矩阵式二维条码解码芯片以及矩阵式二维条码解码方法能保证矩阵式二维条码解码过程快速、顺利地进行。
Description
【技术领域】
本发明涉及条码识别技术领域,特别地,涉及一种矩阵式二维条码解码芯片及其解码方法。
【背景技术】
条码技术是在计算机技术与信息技术基础上发展起来的一门集编码、印刷、识别、数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴起的“物联网”应用中发挥重大的作用。
目前被广泛使用的条码包括一维条码及二维条码。一维条码又称线形条码是由平行排列的多个“条”和“空”单元组成,条形码信息靠条和空的不同宽度和位置来表达。一维条码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,因此信息容量及空间利用率较低,并且在条码污损后即无法识别。
二维条码是由按一定规律在二维方向上分布的黑白相间的特定几何图形组成,其可以在二维方向上表达信息,因此信息容量及空间利用率较低,并具有一定的校验功能。二维条码可以分为堆叠式二维条码和矩阵式二维条码。堆叠式二维条码是由多行短截的一维条码堆叠而成,代表性的堆叠式二维条码包括PDF417、Code 49、Code 16K等。矩阵式二维条码是由按预定规则分布于矩阵中的黑、白模块组成,代表性的矩阵式二维条码包括QR码、Data Matrix码、Maxi Code、Aztec Code、汉信码等。二维条码除具备一维条码也具有的优点外,同时还具有信息容量大、密度高、具有纠错功能、可表示各种多媒体信息以及多种文字信息、保密防伪性强、解码可靠性高的特点。
在矩阵式二维条码进行解码的过程中,通常是利用摄影设备对条码进行拍摄,以获取条码图像,然后对条码图像进行去燥、灰度提取、二值化、码字提取、译码等处理方法。
如图1所示,重庆大学提出的中国专利申请第CN200910103378.3号,其公开了一种基于现场可编程门阵列的QR二维条码识别方法及系统,该QR二维条码识别方法包括以下步骤:自适应亮度均衡化;二值化;条码图像定位;条码图像矫正;从背景中提取条码符号信息;根据符号信息进行译码。如图2所示,该专利还公开了一种基于FPGA的矩阵式二维条码识别系统的硬件结构。该系统采用处理器解码方式,通过将NIOS CPU嵌入FPGA芯片内部,与用户自定义逻辑结合构成一个基于FPGA的片上系统。该系统采用NIOS II处理器的自定义模块用硬件实现部分复杂算法,以便于在软件程序中调用,还利用C2H工具直接将一些软件程序进行硬件化,以提高系统性能。
然而,上述现有技术的QR二维条码识别方法中,在对条码图像进行自适应亮度均衡化和二值化处理过程时,是针对每一个像素点进行自适应亮度均衡化和二值化处理,因此要对每一个像素点的灰度进行调节,并与阈值灰度进行比对,数据计算量很大,降低了系统的处理速度。
而且由于该系统是在不知晓条码特征信息(即条码的相关参数,包括条码方向、条码区域尺寸和条码版本、条码畸变系数等信息)的情况下进行二值化处理,可能会造成模块错误,即在二值化过程中,由于噪声、畸变等因素的影响,出现模块的深浅状态和设计状态发生倒置的情况,这大大降低条码的识别能力,增加了条码识别的误码率。尤其在条码版本较高,所含模块数量较多的情况下,或者是条码图像分辨率低,曝光质量不佳的情况下,这种方法较难对矩阵式二维条码进行识别。
另外,在上述现有技术的矩阵式二维条码识别系统中,用于识别解码的主体仍然是NIOS II处理器,该系统通过处理器调用程序存储器中的解码程序,对条码图像进行处理来实现识别解码。该系统的问题在于:一、处理速度慢,该系统需要在微处理器中写入实现解码算法的一系列程序,单个处理器只能同时针对一种特定类型的条码格式进行解码处理,处理器在一个时钟周期只能处理一个操作,软件处理也决定了解码流程的单流程特性,较难实现对条码图像的流水线作业和并行处理,处理速度较慢;二、使用成本高,由于解码算法较为复杂,因此需要使用高端的处理器(如32位处理器)实现以上算法,需要NIOS II处理器以及硬件加速电路相配合,这样会造成系统成本高昂;三、系统复杂,集成难度大,功耗高,不易于便携应用。
因此,针对现有技术存在的以上不足,亟需提供一种矩阵式二维条码解码芯片及其解码方法,使得能保证解码过程快速、顺利地进行。
【发明内容】
针对现有技术存在的处理速度慢、错误发生机率较大等不足,本发明提供一种矩阵式二维条码解码芯片及其解码方法,能保证矩阵式二维条码解码过程快速、顺利地进行。
本发明提供一种矩阵式二维条码解码芯片,包括数据存储器、至少两个矩阵式二维条码识别模块以及主控逻辑模块。数据存储器用于存储条码图像。至少两个矩阵式二维条码识别模块用于对数据存储器内存储的条码图像进行并行处理。主控逻辑模块用于控制至少两个矩阵式二维条码识别模块的工作状态,使至少两个矩阵式二维条码识别模块依次调用数据存储器中的条码图像。
本发明还提供一种矩阵式二维条码解码方法,包括以下步骤:a.获取条码图像;b.搜索探测图形,获取条码参数;c.获取版本参数,根据版本参数获取模块参数;d.搜索校正特征,获取校正特征的像素坐标;e.根据该条码参数、该模块参数和该校正特征的像素坐标,计算该校正特征的模块坐标;f.根据该校正特征的像素坐标和模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系;g.根据该映射关系计算模块灰度值;h.对模块灰度值进行二值化处理;i.根据所述二值化处理结果提取码字;j.对码字进行译码处理。
本发明另提供一种矩阵式二维条码解码方法,包括以下步骤:a.获取条码图像;b.搜索特征图形,获取条码参数和特征图形的像素坐标;c.获取版本参数,根据版本参数获取模块参数;d.根据该条码参数、该模块参数和该特征图形的像素坐标,计算该特征图形的模块坐标;e.根据该特征图形的像素坐标和模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系;f.根据该映射关系计算模块灰度值;g.对模块灰度值进行二值化处理;h.根据所述二值化处理结果提取码字;i.对码字进行译码处理。
本发明又提供一种矩阵式二维条码解码方法,包括以下步骤:a.获取条码图像;b.在预定区域内,提取符合预定长度的多个黑白边界线段;c.基于多个黑白边界线段构建多个直线;d.根据平行线特性对多个直线进行分组并形成行平行线组及列平行线组;e.根据矩阵式二维条码的特性,通过对行平行线组及列平行线组构建的网格进行判断来确认是否存在矩阵式二维条码,获取条码参数;f.搜索校正特征,获取校正特征的像素坐标,识别矩阵式二维条码的类型;g.获取版本参数,根据版本参数获取模块参数;h.根据条码参数、模块参数和校正特征的像素坐标,计算校正特征的模块坐标;i.根据校正特征的像素坐标和校正特征的模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系;j.根据映射关系计算模块灰度值;k.对模块灰度值进行二值化处理;l.根据二值化处理的结果提取码字;m.对码字进行译码处理。
本发明的矩阵式二维条码解码方法,通过搜索校正特征,获取校正特征的像素灰度坐标与模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系,然后根据该映射关系计算模块灰度值,对模块灰度值进行二值化,进而还原矩阵式二维条码所对应的条码符号图形。与现有技术相比,本发明的矩阵式二维条码解码方法是在知晓条码特征信息,并根据条码特征信息对条码图像进行校正后进行的二值化处理,因此降低了噪声、畸变等因素对二值化过程的影响,减少了模块错误的出现,大大增加了条码的识别能力,提升了条码识别的解码成功率。
本发明的矩阵式二维条码解码芯片采用硬件流水线结构,通过硬件逻辑实现对条码图像的识别解码,由于硬件流水线结构适于对条码图像进行流水线作业和并行处理,因此处理速度很快。
相对于现有技术的处理器解码技术而言,本发明的矩阵式二维条码解码芯片采用全硬件结构,无需处理器参与解码,芯片结构相对于处理器而言结构更为简化、面积更小、功耗更低、成本更低、易于集成,容易实现便携应用。可以方便地与物联网技术相结合,为条码技术的应用提供了更为广阔的发展空间。
【附图说明】
图1是现有技术的一种矩阵式二维条码识别方法的流程图。
图2是图1所示的矩阵式二维条码识别方法的硬件结构图。
图3是各种矩阵式二维条码的条码符号图形示意图。
图4至图8是各种矩阵式二维条码的条码符号图形的功能示意图。
图9是本发明的矩阵式二维条码解码芯片的硬件逻辑架构的示意框图。
图10是根据本发明的矩阵式二维条码识别模块的解码方法的处理流程图。
图11是根据本发明的矩阵式二维条码识别模块的第一实施方式的结构示意图。
图12是根据本发明的矩阵式二维条码识别模块的第一实施方式中校正特征获取单元的第一种校正点获取结构的示意图。
图13是根据本发明的矩阵式二维条码识别模块的第一实施方式中模块信息处理单元的结构示意图。
图14是根据本发明的矩阵式二维条码识别模块的第一实施方式中模块信息处理单元的转换原理示意图。
图15是根据本发明的矩阵式二维条码识别模块的第二实施方式的结构示意图。
图16是根据本发明的矩阵式二维条码识别模块的第二实施方式中校正特征获取单元的第二种校正点获取结构的示意图。
【具体实施方式】
有关本发明的特征及技术内容,请参考以下的详细说明与附图,附图仅提供参考与说明,并非用来对本发明加以限制。
为使本领域技术人员更易于理解本发明的技术内容,提供以下条码术语的参考与说明,其中部分条码术语是根据中华人民共和国国家标准GB/T12905-2000而来,并非用于对本发明加以限制。
条码符号:某种条码定义的表示信息的条、空组合形式或模块的组合形式。
码字:码字表示源数据向条码符号转换的中间值。一种符号的码字数决定了该条码符号的所有符号的数量。
数据码字:数据码字表示数据符号的值。
纠错码字:纠错码字表示纠错符号的值。
模块:矩阵式二维条码中的一个最小独立单元,代表一位二进制数据。
功能图形:矩阵式二维条码符号中用于符号定位与特征识别的特定图形。功能图形包括探测图形、定位图形、校正图形等。
探测图形:矩阵式二维条码符号图形中,用于在条码图像中进行符号定位的特殊图形,也称位置探测图形。
定位图形:矩阵式二维条码符号图形中,用于确定符号中模块的像素坐标的图形。
校正图形:矩阵式二维条码符号图形中,用于确定符号位置的一个固定的参照图形。在条码图像有一定程度畸变或污损的情况下,可以通过校正图形对条码图像中模块的像素坐标进行校正。
编码区域:矩阵式二维条码符号图形中,未被功能图形占据,用于对数据和纠错码字进行编码,表示数据符号和纠错符号的区域。
版本:用于表示矩阵式二维条码符号规格的序列,反映了符号尺寸、符号中的模块数量和符号中的模块的排列方式。
版本信息:矩阵式二维条码符号图形中,用于确定矩阵式二维条码符号版本号的功能图形。
格式:用于表示矩阵式二维条码符号所使用的纠错等级以及掩模图形。
格式信息:矩阵式二维条码符号图形中,用于确定矩阵式二维条码符号所使用的纠错等级以及掩模图形信息的功能图形。
掩模图形:在编码区域内用掩模图形对位图进行异或处理,其目的是使符号中深色与浅色模块的比例均衡,并减少影响条码图像处理的图形出现。
二值化条码图像:用整体阈值或局部阈值对灰度条码图像进行处理,从而得到的深浅两色的条码图像。
阈值:分割两个检验等级的边界值,其值本身是上面等级的下限值。
模块错误:在二值化条码图像中,深浅状态和设计状态发生倒置的模块。
像素:光敏阵列(如CCD或CMOS器件)上的单个光敏单元在条码图像上所对应的单位,一个像素通常被视为条码图像的最小的完整单位。数码条码图像的储存方式一般以像素(Pixel)为单位,每个像素是数码条码图像里面积最小的单位。
图3是各种矩阵式二维条码的条码符号图形示意图。图4至图8是各种矩阵式二维条码的条码符号图形的功能示意图。为使本领域技术人员更易于理解本发明的技术内容,以下结合图3、图4对矩阵式二维条码进行简单说明。
图3列举了QR码、Date Matrix码、Maxi Code、Aztec Code、汉信码这5种矩阵式二维条码。如图3所示,矩阵式二维条码的符号在结构形体及元素排列上与代数矩阵具有相似的特征。矩阵式二维条码的符号结构的共同特征是是由特定的符号功能图形及分布在矩阵元素位置上表示数据信息的图形模块(例如是正方形、圆、正多边形等图形模块)构成。用深色模块单元表示二进制的“1”,用浅色模块单元表示二进制的“0”(当然,作为一种约定,也可用深色模块单元表示二进制的“0”,用浅色模块单元表示二进制的“1”)。数据码字流通过分布在矩阵元素位置上的单元模块的不同组合来表示。大多数矩阵式二维条码的符号字符由8个模块按特定规律排列构成。每一种矩阵式二维条码符号都有独特的功能图形,用于符号标识,确定符号的位置、模块参数及对符号模块的校正等。
如图4至图8所示,矩阵式二维条码符号图形的外围是空白区,空白区是环绕在符号图形四周的区域,其反射率与浅色模块相同,便于对条码符号图形的特征搜索。矩阵式二维条码符号图形的共同特征是包括功能图形和编码区两大部分。其中,功能图形包括用于探测条码位置和识别条码类型的位置探测图形,以及用于校正或定位符号模块位置的校正图形、定位图形或指向图形。编码区包括符号信息(条码符号信息包括表示模块排列方式和模块数量的版本信息以及表示纠错等级、纠错位、掩模图形等的格式信息)以及数据码字和纠错码字区。
图4是QR码的符号图形的功能示意图。QR码的功能图形包括位置探测图形、位置探测图形分隔符、校正图形、定位图形。编码区包括表示符号信息的版本信息和格式信息区,以及数据码字和纠错码字区。
图5是Maxi Code的符号图形的功能示意图。Maxi Code的功能图形包括位置探测图形和指向图形。由于Maxi Code的符号信息是唯一固定的,即模块排列方式、模块数量、纠错等级只有一种,因此Maxi Code的编码区没有表示符号信息的区域,只包括数据码字和纠错码字区。
图6是Data Matrix码的符号图形的功能示意图。Data Matrix码也称数据矩阵码,包括两种类型:ECC000-140和ECC200。ECC000-140采用卷积码纠错,而ECC200则使用Reed-Solomon算法纠错。目前Data Matrix码的研究与应用主要以ECC200为主,ECC000-140应用很少。Data Matrix码的功能图形包括位置探测图形和校正图形。编码区包括表示符号信息的版本信息和格式信息区,以及数据码字和纠错码字区。ECC200Data Matrix码的符号编码不采用掩模图形,其纠错与模块排列方式关联,因此ECC200DataMatrix码的编码区没有表示符号信息的区域,只包括数据码字和纠错码字区。
图7是Aztec Code的符号图形的功能示意图。Aztec Code的功能图形包括位置探测图形、指向图形、校正图形(坐标方格)、。编码区包括表示符号信息的模块信息以及数据区。Aztec Code包括尺寸较小的紧凑型AztecCode和尺寸较大的Aztec Code两类。紧凑型Aztec Code中没有校正图形。校正图形在Aztec Code中为模块的精确分布提供坐标参考。位置探测图形为图7中牛眼状图像。模块信息包括了整个条码的模块层数、模块位数以及纠错等级。
图8是汉信码的符号图形的功能示意图。汉信码的功能图形包括位置探测图形、位置探测图形分隔符、校正图形、辅助校正图形。编码区包括表示符号信息的功能信息区,以及数据码字和纠错码字区的数据区。
图9是本发明的矩阵式二维条码解码芯片的硬件逻辑架构的示意框图。在本实施例中,矩阵式二维条码解码芯片可全部由硬件逻辑实现,并集成于一个集成芯片内。该矩阵式二维条码解码芯片包括数据存储器603、主控逻辑模块602、寄存器组605、外部接口606以及至少一矩阵式二维条码识别模块601。寄存器组605将数据存储器603、主控逻辑模块602以及矩阵式二维条码识别模块601与外部隔离。数据存储器603用于存储条码图像或图像片段。其中,矩阵式二维条码识别模块601包括不同矩阵式二维条码识别规则的识别模块中的至少一种,这些识别子模块包括但不限于QR码识别模块6011、Date Matrix码识别模块6012、Maxi Code识别模块6013、Aztec Code识别模块6014、汉信码识别模块6015等。
该矩阵式二维条码解码芯片中进一步包括图像传感阵列604及曝光控制模块607,曝光控制模块607通过I2C总线控制图像传感阵列604,以控制图像传感阵列604的工作状态。另外,图像传感阵列604的亮度信息可以传给曝光控制模块607,曝光控制模块607根据所获取的亮度信息可将相应控制逻辑放置到寄存器组605,主控逻辑模块602从寄存器组605获取该控制逻辑,并根据该控制逻辑控制矩阵式二维条码识别模块601的工作,如开启或关闭其工作状态。
主控逻辑模块602对应于所需的控制状态具有相应的控制逻辑,可以通过触发与主控逻辑模块602电连接的开关来选取所需的控制状态,如开启矩阵式二维条码识别模块601,从数据存储器603获取条码图像,并将其传输至矩阵式二维条码识别模块601等等。另外,主控逻辑模块602也可提供数据传输通道,如可将数据存储器603中存储的条码图像可通过主控逻辑模块602传输到矩阵式二维条码识别模块601,并控制矩阵式二维条码识别模块601的工作状态。该主控逻辑模块602不具备运算功能,但可根据一定条件触发相应事件,具体可利用已知的状态机实现。针对条码图像的各种运算过程完全由矩阵式二维条码识别模块实现,而主控逻辑模块或状态机602协调控制作用。
在本实施例中,矩阵式二维条码识别模块601中的QR码识别模块6011、Date Matrix码识别模块6012、Maxi Code识别模块6013、Aztec Code识别模块6014、汉信码识别模块6015可在主控逻辑模块602的控制下依次调用数据存储器603中的条码图像或图像片段。当条码图像或满足识别条件的图像片段传输到数据存储器603之后,数据存储器603会发送此状态到主控逻辑模块602。主控逻辑模块602接到此状态后,会控制矩阵式二维条码识别模块601中的某个识别模块去调用数据存储器603中的条码图像或图像片段,例如是QR码识别模块6011。QR码识别模块6011调用完毕该条码图像或图像片段后,开始对该条码图像或图像片段进行识别或处理。此时,主控逻辑模块602控制另一个识别模块调用数据存储器603中的条码图像或图像片段,例如是Date Matrix码识别模块6012。由于进行条码识别的时间相比调用条码图像或图像片段的时间要长很多,因此QR码识别模块6011与Date Matrix码识别模块6012可以同时对该条码图像或图像片段进行并行识别或处理。Date Matrix码识别模块6012调用完条码图像或图像片段后,主控逻辑模块602则可控制另一个识别模块继续调用该条码图像或图像片段,例如是Maxi Code识别模块6013。
若QR码识别模块6011、Date Matrix码识别模块6012及Maxi Code识别模块6013中的一个正确识别出条码信息,则由主控逻辑模块602控制其他识别模块停止识别动作。在识别的过程中,若继续向数据存储器603传输后续条码图像或图像片段,则在条码运算逻辑QR码识别模块6011、DateMatrix码识别模块6012及Maxi Code识别模块6013对前一条码图像或图像片段识别或处理完毕后,由主控逻辑模块602控制QR码识别模块6011、Date Matrix码识别模块6012及Maxi Code识别模块6013进一步调用数据存储器603中接收的后续条码图像或图像片段,进行识别或处理。
在优选实施例,若QR码识别模块6011、Date Matrix码识别模块6012及Maxi Code识别模块6013中的一识别模块在上次条码图像的识别中正确识别出条码信息,则对后续条码图像进行识别时,主控逻辑模块602会控制该识别模块优先调用条码图像。
通过上述架构,可以根据矩阵式二维条码识别模块601的处理进度充分实现资源的调配,进一步加快条码图像并行处理架构的运行速度。
以下对本发明的矩阵式二维条码识别模块的解码方法进行详细描述,图10是根据本发明的矩阵式二维条码识别模块的解码方法的处理流程图。
如图10所示,在步骤901,在条码图像上进行特征搜索,以确定功能图形的像素坐标,根据功能图形的像素坐标和模块尺寸比,计算条码参数,条码参数包括条码区域、条码方向和/或条码模块尺寸、模块坐标等。在本发明的一种实施方式中,此步骤可以通过模板匹配检测功能图形,主要是位置探测图形或校正图形的方式实现。在本发明的另一种实施方式中,此步骤也可以通过比例检测的方式实现,该方式包括通过扫描方式检测条码图像中的深浅模块边界点,将深浅模块边界点之间的间距关系与位置探测图形或校正图形的模块尺寸比例相比较,根据比较结果确定特征图形在条码图像上的像素坐标。另外,本发明还提供一种通过行列线检测实现对矩阵式二维条码的识别的实施方式,该方法包括以下步骤:首先在条码图像的预定区域内,提取符合预定长度的多个黑白边界线段;然后基于提取到的多个黑白边界线段构建多个直线;再根据平行线特性对多个直线进行分组并形成行平行线组及列平行线组;最后根据矩阵式二维条码的特性,通过对行平行线组及列平行线组构建的网格进行判断来识别矩阵式二维条码的类型,并获取行平行线组及列平行线组构建的网格的特征图形的像素坐标,根据特征图形的像素坐标获取条码参数。
在步骤902,根据检测到的功能图形的像素坐标和条码参数,在条码图像上提取版本信息和格式信息,对版本信息和格式信息进行解码以获取版本/格式参数,例如包括版本号、纠错等级和/或掩模图形等。在某些情况下,条码图像上版本信息和格式信息区域会被污损而导致无法读取数据时,可以根据条码类型对条码的格式、版本进行预估。其中格式包括掩模图形和/或纠错等级。例如,通过将各个版本、掩模图形和/或纠错等级的可能进行排列组合来对版本和格式预估。例如将QR码的1~40个版本和L、M、Q、H四个纠错等级以及掩模图形进行排列组合,根据预估的格式、版本对条码图像进行后续处理。
在步骤903,在条码图像上搜索特征图形,例如包括条码图像的转角点、位置探测图形、校正图形、定位图形、动态特征模板、划线特征模板等,根据特征图形获取校正特征,例如包括校正点的像素坐标和灰度值。
在步骤904,根据版本参数确定模块参数,根据校正特征、模块参数和条码参数计算校正特征所对应的模块坐标,根据校正特征的像素坐标和模块坐标计算校正参数,该校正参数反映了条码图像的像素点与条码模块之间的映射关系,根据模块参数和校正参数计算各个模块所对应的像素点,根据各个模块所对应的像素点的坐标和灰度值计算各个模块所对应的灰度值,构造模块图。
在步骤905,对模块图进行二值化处理以提取位图。
在步骤906,根据步骤902得到的掩模图形对位图进行去掩模计算,例如是异或(XOR)计算,解除掩模并恢复表示数据码字和纠错码字的位流。如果该条码符号编码时没有使用掩模图形,则此步骤可省略。
在步骤907,根据矩阵式二维条码的排列规则进行位流提取并转换为数据码字和纠错码字。
在步骤908,根据步骤902得到的版本号和纠错等级,重新将数据码字和纠错码字按块排列,进行错误检测和纠错计算,纠正删除错误和未知错误,直到版本号和纠错等级所规定的最大纠错容量,然后重新组配数据块序列,还原表示矩阵式二维条码信息的数据位流。
在步骤909,根据还原的数据位流进行译码,以获得矩阵式二维条码信息。
以下对本发明的矩阵式二维条码识别模块进行详细描述,图11是根据本发明的矩阵式二维条码识别模块的第一实施方式的结构示意图。
如图11所示,数据存储器11存储条码图像,矩阵式二维条码识别模块10对数据存储器11存储条码图像进行识别解码。矩阵式二维条码识别模块10包括控制逻辑单元100、特征搜索单元101、条码参数获取单元102、版本/格式参数获取单元103、校正特征获取单元104、模块信息处理单元105、二值化单元106、码字提取单元107以及纠错译码单元108。
控制逻辑单元100用于控制特征搜索单元101、条码参数获取单元102、版本/格式参数获取单元103、校正特征获取单元104、模块信息处理单元105、二值化单元106、码字提取单元107以及纠错译码单元108的工作状态和处理流程。控制逻辑单元100采用有限状态机(Finite State Machine)形式进行控制。有限状态机又称有限状态自动机或简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的状态逻辑。控制逻辑单元100可以用可编程逻辑设备、可编程逻辑控制器、逻辑门和触发器来构造。优选的实施方式中,控制逻辑单元100包括寄存器、确定状态转移的组合逻辑以及确定状态控制模块输出的组合逻辑。寄存器用于存储状态变量。
特征搜索单元101通过在条码图像中搜索特征图形来确定特征图形在条码图像上的像素坐标。特征图形包括但不限于条码的功能图形,例如位置探测图形、校正图形、定位图形等。优选的实施方式中,位置特征搜索单元101采用模板匹配的方式搜索位置探测图形,其根据位置探测图形的模块尺寸比生成位置探测图形检测模板,将位置探测图形检测模板相对条码图像进行平移并进行灰度匹配,以确定位置探测图形检测模板与条码图像的最佳匹配位置,并根据最佳匹配位置确定条码图像中位置探测图形的中心点和/或边缘点的像素坐标。在本发明的另一种实施方式中,特征搜索单元101也可以通过比例检测的方式来确定特征图形在条码图像上的像素坐标,该方式包括通过扫描方式检测条码图像中的深浅模块边界点,将深浅模块边界点之间的间距关系与位置探测图形或校正图形的模块尺寸比例相比较,根据比较结果确定特征图形在条码图像上的像素坐标。另外,本发明还提供一种通过行列线检测实现对矩阵式二维条码的识别的实施方式,在该实施方法中,特征搜索单元101首先在条码图像的预定区域内,提取符合预定长度的多个黑白边界线段,然后基于提取到的多个黑白边界线段构建多个直线,再根据平行线特性对多个直线进行分组并形成行平行线组及列平行线组,最后根据矩阵式二维条码的特性,通过对行平行线组及列平行线组构建的网格进行判断来识别矩阵式二维条码的类型,并获取行平行线组及列平行线组构建的网格的特征图形的像素坐标。
条码参数获取单元102根据特征搜索单元101所检测的功能图形的像素坐标来计算条码参数,例如条码方向、条码区域等,更进一步的,条码参数获取单元102根据功能图形的像素坐标和模块尺寸比还可以进一步条码区域的范围和粗略计算条码模块的尺寸,即条码模块尺寸与像素宽度的比值,根据条码区域的范围和条码模块尺寸还可以进一步估算模块坐标。
版本/格式参数获取单元103根据特征搜索单元101所检测的功能图形的像素坐标和条码参数,在条码图像上提取版本信息和格式信息,对版本信息和格式信息进行解码以获取版本/格式参数。由于编码区的版本信息、格式信息是临近位置检测图形设置的,版本/格式参数获取单元103根据位置检测图形的像素坐标和条码方向、条码模块尺寸,可以搜索获得版本信息、格式信息区域,进行二值化计算和纠错译码后即可获取版本/格式参数,例如版本号、纠错等级和掩模图形等。
在某些情况下,条码图像上版本信息和格式信息区域会被污损而导致无法读取数据。版本/格式参数获取单元103可以根据条码类型对条码的格式、版本进行预估。其中格式包括掩模图形及纠错等级。例如,通过将各个版本、掩模图形及纠错等级的可能进行排列组合来对版本和格式预估。根据预估的格式、版本对条码图像进行后续处理。
校正特征获取单元104通过在条码图像上搜索特征位置,例如包括条码图像的转角点、位置探测图形、校正图形、定位图形、动态模板等,根据特征位置获取校正特征,例如包括校正点的像素坐标和/或模块坐标以及灰度值。校正特征获取单元包括多种实施方式,并非限定于根据校正图形获取校正特征。
图12是根据本发明的矩阵式二维条码识别模块的第一实施方式中校正特征获取单元的第一种校正点获取结构的示意图。如图12所示,校正特征获取单元104包括校正图形搜索单元1041和校正点获取单元1042。与特征搜索单元101类似,校正图形搜索单元1041参考校正图形的模块尺寸比和条码参数,根据校正图形的模块尺寸比生成校正图形检测模板,将校正图形检测模板相对条码图像进行平移并进行灰度匹配。校正点获取单元1042对匹配结果进行相似度计算处理,以确定校正图形检测模板与条码图像的最佳匹配位置,根据最佳匹配位置确定条码图像中校正图形的中心点和/或边缘点的像素坐标以及灰度值。
模块信息处理单元105根据版本参数确定模块参数,根据校正特征、模块参数和条码参数计算校正特征所对应的模块坐标,根据校正特征的像素坐标和模块坐标计算校正参数,该校正参数反映了条码图像的像素点与条码模块之间的映射关系,根据模块参数和校正参数计算各个模块所对应的像素点,根据各个模块所对应的像素点的坐标和灰度值计算各个模块所对应的灰度值,构造模块图。
图13是根据本发明的矩阵式二维条码识别模块的第一实施方式中模块信息处理单元的结构示意图。模块信息处理单元105包括模块参数计算单元1051、校正特征模块坐标计算单元1052、校正参数计算单元1053、模块像素点计算单元1054以及模块灰度值计算单元1055。模块参数计算单元1051根据版本参数,例如是版本号,通过查表或函数计算的方式获取与版本参数相对应的模块行数、列数和模块数量。校正特征模块坐标计算单元1052根据校正特征获取单元104提供的校正特征的像素坐标,结合条码参数计算获得像素坐标在条码区域中的相对位置,根据相对位置结合模块参数计算获得校正特征的模块坐标。校正参数计算单元1053根据校正特征的像素坐标和模块坐标计算获得校正参数,该校正参数反映了条码图像的像素点与条码模块之间的映射关系。模块像素点计算单元1054根据模块参数和校正参数计算各个模块所对应的像素点。模块与像素点之间的映射计算可以通过多种方式实现,包括透视变换、二次多项式、三次多项式、三角网格、小波变换或上述计算方式的结合等。模块像素点计算单元1054可以通过模块坐标计算对应的像素点的坐标,也可以通过像素坐标计算对应的模块的坐标。本发明对上述计算过程及其所采取的计算手段并不加以限定。模块灰度值计算单元1055根据各个模块所对应的像素点的坐标和灰度值计算各个模块所对应的灰度值,以构造模块图。模块的灰度值计算可以通过多种方式实现,包括统计计算、插值计算、均值计算、加权计算或上述计算方式的结合等,本发明对上述计算过程及其所采取的计算手段并不加以限定。
为便于本领域技术人员理解本发明的模块信息处理单元的处理过程,本发明举例一种计算方法对本发明的模块信息处理单元的转换原理进行说明,但是,该计算方法不应理解为对本发明的模块信息处理单元的限制。
图14是根据本发明的矩阵式二维条码识别模块的第一实施方式中模块信息处理单元的转换原理示意图。模块81与像素区域82之间具有映射关系,变形区域821对应于模块81在像素区域82上的映射范围。模块81的中心点W在像素区域82所对应的映射点为W′。由图14可知,模块81所对应的像素点包括A-P的16个像素点,围绕映射点W′的像素点为A、B、C、D4个像素点。中心变形区域822对应于模块81的中心区域在像素区域82上的映射范围。对于矩阵条码而言,模块的中心区域所反映的模块值最准确。优选的实施方式中,可以通过A、B、C、D4个像素点的灰度值来计算与映射点W′相对应的模块中心点W的灰度值。当然,也可以通过像素区域82所对应的所有像素点来计算模块81的灰度值。即,模块81的灰度值可以通过与其对应的若干个像素点的灰度值计算得出。
二值化单元106接收模块信息处理单元105计算获得的模块灰度值,根据阈值对模块图进行二值化处理以提取位图。阈值的获取方式包括预设阈值、整体阈值获取、局部阈值获取等多种方式
码字提取单元107根据版本/格式参数获取单元103得到的掩模图形对位图进行去掩模计算,例如是异或(XOR)计算,解除掩模并恢复表示数据码字和纠错码字的位流,根据矩阵式二维条码的排列规则进行位流提取并转换为码字。在某些情况下,条码在编码生成时没有采用掩模图形进行处理,码字提取单元107可以根据位图直接提取表示数据码字和纠错码字的位流并转换为数据码字和纠错码字。
纠错译码单元108根据版本/格式参数获取单元103得到的版本号和纠错等级,重新将数据码字和纠错码字按块排列,进行错误检测和纠错计算,纠正删除错误和未知错误,直到版本号和纠错等级所规定的最大纠错容量,然后重新组配数据块序列,还原表示矩阵式二维条码信息的数据位流,根据还原的数据位流进行译码,以获得矩阵式二维条码信息。
图15是根据本发明的矩阵式二维条码识别模块的第二实施方式的结构示意图。与本发明的矩阵式二维条码识别模块的第一实施方式的不同之处在于,矩阵式二维条码识别模块20的结构作了以下改进,其通过特征搜索单元201实现对功能图形和/或校正特征的搜索,取消了校正特征获取单元。
与本发明的第一实施方式相类似,特征搜索单元201通过在条码图像中搜索特征图形来确定特征图形在条码图像上的像素坐标。特征图形例如是位置探测图形。通过调整模板匹配的模块尺寸比和/或模块坐标,特征搜索单元101还可以对其他特征图形进行搜索,例如校正图形。特征搜索单元201按照校正图形的模块尺寸比生成校正图形检测模板,将校正图形检测模板相对条码图像进行平移并进行灰度匹配。校正点获取单元1042对匹配结果进行相似度计算处理,以确定校正图形检测模板与条码图像的最佳匹配位置,根据最佳匹配位置确定条码图像中校正图形的中心点和/或边缘点的像素坐标以及灰度值。
特征图形包括但不限于条码的功能图形,例如位置探测图形、校正图形、定位图形等。为使本领域技术人员易于理解本发明,下面对功能图形之外的特征图形的表现形式作举例说明。矩阵式二维条码属于矩阵式二维条码的一种,其条码符号图形具有矩阵式二维条码的代数矩阵特征,条码符号可以视为是由若干个深浅不同的矩形模块组成。通过选取条码图像区域中相对于相邻模块图形比较容易区分的标志性较好的矩形模块图形的集合,可以形成动态特征模板。另外还可以通过搜索条码图像上位于同一行或列上的相互间隔的两个同色模块(深色模块或浅色模块),形成划线特征模板。
特征搜索单元201按照动态特征模板或划线特征模板的模块坐标所对应的模块尺寸比生成动态特征模板或划线特征模板的检测模板,将动态特征模板或划线特征模板的检测模板相对条码图像进行平移并进行灰度匹配。对匹配结果进行相似度计算处理,以确定动态特征模板或划线特征模板的检测模板与条码图像的最佳匹配位置,根据最佳匹配位置确定条码图像中动态特征模板或划线特征模板的中心点和/或边缘点的像素坐标以及灰度值。
模块信息处理单元205直接接收特征搜索单元201所提供的特征图形的像素坐标作为校正特征进行处理,校正特征例如是条码图像中位置探测图形的中心点和边缘点的像素坐标,校正图形的中心点和边缘点的像素坐标,定位图形的像素坐标,或者是动态特征模板或划线特征模板的中心点的像素坐标等。
图16是根据本发明的矩阵式二维条码识别模块的第二实施方式中模块信息处理单元的结构示意图。与本发明的矩阵式二维条码识别模块的第一实施方式的不同之处在于,校正特征模块坐标计算单元2052连接特征搜索单元201,并根据条码参数和模块参数计算单元2051提供的模块参数计算获得特征图形的模块坐标。校正参数计算单元2053根据特征图形的像素坐标和模块坐标计算获得校正参数,该校正参数反映了条码图像的像素点与条码模块之间的映射关系。模块像素点计算单元2054根据模块参数和校正参数计算各个模块所对应的像素点。模块与像素点之间的映射计算可以通过多种方式实现,包括透视变换、二次多项式、三次多项式、三角网格、小波变换或上述计算方式的结合等。模块灰度值计算单元2055根据各个模块所对应的像素点的坐标和灰度值计算各个模块所对应的灰度值,以构造模块图。
本发明的矩阵式二维条码解码方法,通过搜索校正特征,获取校正特征的像素灰度坐标与模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系,然后根据该映射关系计算模块灰度值,对模块灰度值进行二值化,进而还原矩阵式二维条码所对应的条码符号图形。与现有技术相比,本发明的矩阵式二维条码解码方法是在知晓条码特征信息,并根据条码特征信息对条码图像进行校正后进行的二值化处理,因此降低了噪声、畸变等因素对二值化过程的影响,减少了模块错误的出现,大大增加了条码的识别能力,提升了条码识别的解码成功率。
本发明的矩阵式二维条码识别模块采用硬件流水线结构,通过硬件逻辑实现对条码图像的识别解码,由于硬件流水线结构适于对条码图像进行流水线作业和并行处理,因此处理速度很快。
相对于现有技术的处理器解码技术而言,本发明的矩阵式二维条码识别模块采用全硬件结构,无需处理器参与解码,芯片结构相对于处理器而言结构更为简化、面积更小、功耗更低、成本更低、易于集成,容易实现便携应用。可以方便地与物联网技术相结合,为条码技术的应用提供了更为广阔的发展空间。
以上参照附图说明了本发明的各种优选实施例,但是只要不背离本发明的实质和范围,本领域的技术人员可以对其进行各种形式上的修改和变更,都属于本发明的保护范围。
Claims (17)
1.一种矩阵式二维条码解码芯片,其特征在于:包括
数据存储器,用于存储条码图像;
至少两个矩阵式二维条码识别模块,用于对所述数据存储器内存储的所述条码图像进行并行处理;
主控逻辑模块,用于控制所述至少两个所述矩阵式二维条码识别模块的工作状态,使所述至少两个所述矩阵式二维条码识别模块依次调用所述数据存储器中的所述条码图像。
2.根据权利要求1所述的矩阵式二维条码解码芯片,其特征在于,所述矩阵式二维条码识别模块包括:
特征搜索单元,在条码图像中搜索特征图形来确定所述特征图形的像素坐标;
条码参数获取单元,根据所述特征图形的像素坐标来获取条码参数;
版本/格式参数获取单元,获取条码的版本参数和/或格式参数;
校正特征获取单元,在所述条码图像上搜索特征位置,根据所述特征位置获取校正特征;
模块信息处理单元,根据所述版本参数、所述条码参数和所述校正特征,计算模块所对应的灰度值;
二值化单元,对所述模块进行二值化处理;
码字提取单元,根据二值化处理的所述模块提取码字;
纠错译码单元,对所述码字进行译码处理。
3.根据权利要求2所述的矩阵式二维条码解码芯片,其特征在于,所述特征搜索单元根据所述特征图形的模块尺寸比生成特征图形检测模板,将所述特征图形检测模板相对所述条码图像进行平移并进行灰度匹配,以确定所述特征图形检测模板与所述条码图像的最佳匹配位置,并根据所述最佳匹配位置确定所述条码图像中所述特征图形的像素坐标。
4.根据权利要求2所述的矩阵式二维条码解码芯片,其特征在于,所述特征搜索单元通过扫描方式检测所述条码图像中的深浅模块边界点,将所述深浅模块边界点之间的间距关系与所述特征图形的模块尺寸比例相比较,根据比较结果确定所述条码图像中所述特征图形的像素坐标。
5.根据权利要求2所述的矩阵式二维条码解码芯片,其特征在于,所述特征搜索单元在所述条码图像的预定区域内,提取符合预定长度的多个黑白边界线段,然后基于提取到的所述多个黑白边界线段构建多个直线,再根据平行线特性对所述多个直线进行分组并形成行平行线组及列平行线组,最后根据矩阵式二维条码的特性,通过对所述行平行线组及列平行线组构建的网格进行判断来识别矩阵式二维条码的类型,并获取所述行平行线组及列平行线组构建的网格的所述特征图形的像素坐标。
6.根据权利要求2所述的矩阵式二维条码解码芯片,其特征在于,所述版本/格式参数获取单元根据所述特征图形的像素坐标和所述条码参数,在所述条码图像上提取版本信息和格式信息,对所述版本信息和所述格式信息进行解码以获取所述版本/格式参数。
7.根据权利要求2所述的矩阵式二维条码解码芯片,其特征在于,所述版本/格式参数获取单元根据矩阵式二维条码的格式、版本进行预估以获取所述版本参数和/或格式参数。
8.根据权利要求2所述的矩阵式二维条码解码芯片,其特征在于,所述模块信息处理单元包括模块参数计算单元、校正特征模块坐标计算单元、校正参数计算单元、模块像素点计算单元以及模块灰度值计算单元,所述模块参数计算单元根据所述版本参数获取模块参数,所述校正特征模块坐标计算单元根据所述条码参数、所述模块参数和所述特征图形的像素坐标,计算所述特征图形的模块坐标,所述校正参数计算单元根据所述特征图形的像素坐标和所述特征图形的模块坐标,计算所述条码图像的像素坐标与模块坐标之间的映射关系,所述模块像素点计算单元根据所述映射关系计算各个模块所对应的像素坐标,所述模块灰度值计算单元根据所述各个模块所对应的像素坐标计算所述各个模块的灰度值。
9.根据权利要求1所述的矩阵式二维条码解码芯片,其特征在于,所述矩阵式二维条码识别模块包括:
特征搜索单元,在条码图像中搜索特征图形来确定所述特征图形的像素坐标;
条码参数获取单元,根据所述特征图形的像素坐标来获取条码参数;
版本/格式参数获取单元,获取条码的版本参数和/或格式参数;
模块信息处理单元,根据所述版本参数、所述条码参数和所述特征图形的像素坐标,计算模块所对应的灰度值;
二值化单元,对所述模块进行二值化处理;
码字提取单元,根据二值化处理的所述模块提取码字;
纠错译码单元,对所述码字进行译码处理。
10.根据权利要求9所述的矩阵式二维条码解码芯片,其特征在于,所述特征搜索单元,在所述条码图像中搜索第一特征图形来确定所述第一特征图形的像素坐标,所述条码参数获取单元根据所述第一特征图形的像素坐标来获取所述条码参数。
11.根据权利要求10所述的矩阵式二维条码解码芯片,其特征在于,所述特征搜索单元,在所述条码图像中搜索第二特征图形来确定所述第二特征图形的像素坐标,所述模块信息处理单元根据所述版本参数、所述条码参数和所述第二特征图形的像素坐标,计算所述模块所对应的灰度值。
12.根据权利要求1所述的矩阵式二维条码解码芯片,其特征在于:所述至少两个矩阵式二维条码识别模块为对应于不同识别规则的识别模块。
13.一种矩阵式二维条码解码方法,其特征在于,包括以下步骤:
a.获取条码图像;
b.搜索探测图形,获取条码参数;
c.获取版本参数,根据所述版本参数获取模块参数;
d.搜索校正特征,获取校正特征的像素坐标;
e.根据所述条码参数、所述模块参数和所述校正特征的像素坐标,计算所述校正特征的模块坐标;
f.根据所述校正特征的像素坐标和所述校正特征的模块坐标,计算所述条码图像的像素坐标与模块坐标之间的映射关系;
g.根据所述映射关系计算模块灰度值;
h.对所述模块灰度值进行二值化处理;
i.根据所述二值化处理的结果提取码字;
j.对所述码字进行译码处理。
14.一种矩阵式二维条码解码方法,其特征在于,包括以下步骤:
a.获取条码图像;
b.搜索特征图形,获取条码参数和特征图形的像素坐标;
c.获取版本参数,根据所述版本参数获取模块参数;
d.根据所述条码参数、所述模块参数和所述特征图形的像素坐标,计算所述特征图形的模块坐标;
e.根据所述特征图形的像素坐标和所述特征图形的模块坐标,计算所述条码图像的像素坐标与模块坐标之间的映射关系;
f.根据所述映射关系计算模块灰度值;
g.对所述模块灰度值进行二值化处理;
h.根据所述二值化处理结果提取码字;
i.对所述码字进行译码处理。
15.根据权利要求14所述的矩阵式二维条码解码方法,其特征在于,步骤b还进一步包括搜索第一特征图形,获取所述条码参数;搜索第二特征图形,获取所述第二特征图形的像素坐标。
16.根据权利要求14所述的矩阵式二维条码解码方法,其特征在于,该方法还包括根据所述条码参数、所述模块参数和所述特征图形的像素坐标,计算所述第二特征图形的模块坐标;根据所述第二特征图形的像素坐标和所述第二特征图形的模块坐标,计算所述条码图像的像素坐标与模块坐标之间的映射关系。
17.一种矩阵式二维条码解码方法,其特征在于,包括以下步骤:
a.获取条码图像;
b.在所述条码图像的预定区域内,提取符合预定长度的多个黑白边界线段;
c.基于所述多个黑白边界线段构建多个直线;
d.根据平行线特性对所述多个直线进行分组并形成行平行线组及列平行线组;
e.根据矩阵式二维条码的特性,通过对所述行平行线组及列平行线组构建的网格进行判断来识别矩阵式二维条码的类型;
f.获取行平行线组及列平行线组构建的网格的特征图形的像素坐标,根据所述特征图形的像素坐标获取条码参数;
h.获取版本参数,根据所述版本参数获取模块参数;
g.搜索校正特征,获取校正特征的像素坐标;
i.根据所述条码参数、所述模块参数和所述校正特征的像素坐标,计算所述校正特征的模块坐标;
j.根据所述校正特征的像素坐标和所述校正特征的模块坐标,计算所述条码图像的像素坐标与模块坐标之间的映射关系;
k.根据所述映射关系计算模块灰度值;
l.对所述模块灰度值进行二值化处理;
m.根据所述二值化处理的结果提取码字;
n.对所述码字进行译码处理。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101890483A CN101882210B (zh) | 2010-06-01 | 2010-06-01 | 矩阵式二维条码解码芯片及其解码方法 |
EP11168063A EP2393038A1 (en) | 2010-06-01 | 2011-05-30 | Matrix-type two-dimensional barcode decoding chip and decoding method thereof |
US13/149,836 US8550351B2 (en) | 2010-06-01 | 2011-05-31 | Matrix type two-dimensional barcode decoding chip and decoding method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101890483A CN101882210B (zh) | 2010-06-01 | 2010-06-01 | 矩阵式二维条码解码芯片及其解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101882210A true CN101882210A (zh) | 2010-11-10 |
CN101882210B CN101882210B (zh) | 2012-06-27 |
Family
ID=43054222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101890483A Active CN101882210B (zh) | 2010-06-01 | 2010-06-01 | 矩阵式二维条码解码芯片及其解码方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8550351B2 (zh) |
EP (1) | EP2393038A1 (zh) |
CN (1) | CN101882210B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218592A (zh) * | 2012-01-21 | 2013-07-24 | 深圳迈瑞生物医疗电子股份有限公司 | 在样本分析仪中进行条码识别的方法和对应样本分析仪 |
WO2013166995A1 (zh) * | 2012-05-11 | 2013-11-14 | 深圳市天朗时代科技有限公司 | 一种矩阵式二维码的解码方法 |
CN105009146A (zh) * | 2012-06-26 | 2015-10-28 | 艾克尼特有限公司 | 提供机器可读数据矩阵代码的图像掩码 |
CN106462786A (zh) * | 2014-05-14 | 2017-02-22 | 共同印刷株式会社 | 二维码、二维码的分析系统以及二维码的制作系统 |
CN107045616A (zh) * | 2017-01-09 | 2017-08-15 | 东软集团股份有限公司 | 扫描引擎的扫描方法及扫描装置 |
CN109598161A (zh) * | 2018-08-20 | 2019-04-09 | 天津字节跳动科技有限公司 | 识别二维码的方法、装置、终端设备及存储介质 |
CN109934041A (zh) * | 2019-03-26 | 2019-06-25 | 杭州网易再顾科技有限公司 | 信息处理方法、信息处理系统、介质和计算设备 |
CN110751003A (zh) * | 2019-09-24 | 2020-02-04 | 上海掌门科技有限公司 | 一种获取二维码的目标数据信息的方法与设备 |
CN111489313A (zh) * | 2020-04-13 | 2020-08-04 | 湖南国科微电子股份有限公司 | 一种cfa图像去马赛克方法及装置 |
CN111797647A (zh) * | 2020-07-08 | 2020-10-20 | 北京京东振世信息技术有限公司 | 条码解码方法和装置 |
CN113557529A (zh) * | 2019-03-12 | 2021-10-26 | 微软技术许可有限责任公司 | 混合二维条码阅读器 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908125B (zh) * | 2010-06-01 | 2014-07-02 | 福建新大陆电脑股份有限公司 | Qr码条码解码芯片及其解码方法 |
WO2012164686A1 (ja) * | 2011-05-31 | 2012-12-06 | 楽天株式会社 | 画像処理装置、画像処理方法、プログラム及び記録媒体 |
US20130153662A1 (en) * | 2011-12-19 | 2013-06-20 | MindTree Limited | Barcode Photo-image Processing System |
CN102880892B (zh) * | 2012-08-30 | 2015-04-22 | 天津芯硕精密机械有限公司 | 无掩膜光刻机曝光中实时添加条形码的方法 |
WO2014052667A1 (en) * | 2012-09-26 | 2014-04-03 | Smart Pj's Llc | Machine recognizable code for use on fabric |
CN104781833B (zh) * | 2012-11-13 | 2018-07-03 | 共同印刷株式会社 | 二维码 |
US8931697B2 (en) * | 2012-11-30 | 2015-01-13 | Eastman Kodak Company | System for detecting reorigination of barcodes |
CN103279776B (zh) * | 2013-05-06 | 2016-06-22 | 中山大学 | 一种适用于二维条码解码芯片的芯片架构 |
EP2806378B1 (en) * | 2013-05-21 | 2015-07-08 | Thomson Licensing | Method, apparatus and storage medium for two-dimensional data storage |
US9270386B2 (en) * | 2013-06-24 | 2016-02-23 | Intel Corporation | Error detecting and correcting structured light patterns |
CN104517109B (zh) * | 2013-09-29 | 2018-03-06 | 北大方正集团有限公司 | 一种qr码图像的校正方法及系统 |
CN104517092B (zh) * | 2013-09-29 | 2018-04-03 | 北大方正集团有限公司 | 一种qr码校正图形的检测方法及系统 |
CN104517089B (zh) * | 2013-09-29 | 2017-09-26 | 北大方正集团有限公司 | 一种二维码解码系统及其方法 |
JP5984863B2 (ja) * | 2014-01-29 | 2016-09-06 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置 |
USD757094S1 (en) * | 2014-04-29 | 2016-05-24 | Tencent Technology (Shenzhen) Company Limited | Display screen portion with animated graphical user interface |
CN105069394B (zh) * | 2015-07-23 | 2017-10-10 | 福建联迪商用设备有限公司 | 二维码加权平均灰度法解码方法及系统 |
CN106529633B (zh) | 2015-09-10 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 二维码的生成方法、解码方法以及装置 |
US10685317B2 (en) * | 2015-09-22 | 2020-06-16 | United States Postal Service | Trackable postage |
EP3166048A1 (en) * | 2015-11-06 | 2017-05-10 | ams AG | Optical reader device, tag for use on a disposable or replaceable component, optical data validation system and method for optical data validation |
US9396422B1 (en) * | 2015-11-19 | 2016-07-19 | Xerox Corporation | Methods and systems for localizing aztec codes |
KR101893520B1 (ko) * | 2016-12-19 | 2018-08-30 | 한국전자통신연구원 | 2차원 바코드 생성 장치, 2차원 바코드 정보 추출 장치 및 2차원 바코드 생성 방법 |
US10956696B2 (en) | 2019-05-31 | 2021-03-23 | Advanced New Technologies Co., Ltd. | Two-dimensional code identification and positioning |
CN112052702B (zh) * | 2020-08-10 | 2023-12-19 | 北京智通云联科技有限公司 | 一种识别二维码的方法和装置 |
CN112541369B (zh) * | 2020-12-14 | 2022-08-05 | 合肥高维数据技术有限公司 | 一种信息码识别方法及系统 |
CN112862045B (zh) * | 2021-01-15 | 2024-03-15 | 中钞印制技术研究院有限公司 | 一种加密图形结构、编码方法及装置、识别方法及装置 |
WO2022166619A1 (zh) * | 2021-02-07 | 2022-08-11 | 华为技术有限公司 | 二维码识别方法及相关装置 |
KR20220151484A (ko) * | 2021-05-06 | 2022-11-15 | 삼성전자주식회사 | 확장된 대역폭에서 자원들을 재사용하기 위한 장치 및 방법 |
CN115759145B (zh) * | 2022-11-14 | 2023-05-23 | 东集技术股份有限公司 | 条码识别方法、装置、存储介质及计算机设备 |
CN116776909B (zh) * | 2023-08-28 | 2023-11-03 | 四川星点网络技术有限公司 | 一种瓶盖二维码溯源系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010054646A1 (en) * | 2000-05-24 | 2001-12-27 | Nisca Corporation | Apparatus and method for reading bar code printed card, and bar code recording media card |
CN1648931A (zh) * | 2004-01-20 | 2005-08-03 | 深圳市朗科科技有限公司 | 一种条码解码装置及方法 |
US20050199721A1 (en) * | 2004-03-15 | 2005-09-15 | Zhiguo Chang | 2D coding and decoding barcode and its method thereof |
CN101616323A (zh) * | 2008-06-27 | 2009-12-30 | 国际商业机器公司 | 对视频编码数据流进行解码的系统和方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020044689A1 (en) * | 1992-10-02 | 2002-04-18 | Alex Roustaei | Apparatus and method for global and local feature extraction from digital images |
US5726435A (en) * | 1994-03-14 | 1998-03-10 | Nippondenso Co., Ltd. | Optically readable two-dimensional code and method and apparatus using the same |
WO1997049060A1 (en) * | 1996-06-21 | 1997-12-24 | Norand Corporation | Too long code reader performing coded image decoding |
US6685095B2 (en) * | 1998-05-05 | 2004-02-03 | Symagery Microsystems, Inc. | Apparatus and method for decoding damaged optical codes |
DE10123406A1 (de) * | 2001-05-15 | 2002-11-21 | Sick Ag | Verfahren zum Erfassen von zweidimensionalen Codes |
US7086596B2 (en) * | 2003-01-09 | 2006-08-08 | Hand Held Products, Inc. | Decoder board for an optical reader utilizing a plurality of imaging formats |
JP4301775B2 (ja) * | 2002-07-18 | 2009-07-22 | シャープ株式会社 | 2次元コード読み取り装置,2次元コード読み取り方法,2次元コード読み取りプログラム及び該プログラムの記録媒体 |
US7204417B2 (en) * | 2004-11-03 | 2007-04-17 | The Code Corporation | Graphical code reader that is configured for efficient decoder management |
US7546950B2 (en) * | 2006-03-28 | 2009-06-16 | Seiko Epson Corporation | Method and apparatus for locating and decoding a two-dimensional machine-readable symbol |
US7984854B2 (en) * | 2006-07-17 | 2011-07-26 | Cognex Corporation | Method and apparatus for multiplexed symbol decoding |
US7946491B2 (en) * | 2006-08-03 | 2011-05-24 | Nokia Corporation | Method, apparatus, and computer program product for providing a camera barcode reader |
US7886978B2 (en) * | 2007-09-20 | 2011-02-15 | Microsoft Corporation | Techniques for decoding images of barcodes |
EP2248068B1 (en) * | 2008-01-29 | 2014-04-30 | Veritec, Inc. | Two-dimensional symbol and method for reading same |
-
2010
- 2010-06-01 CN CN2010101890483A patent/CN101882210B/zh active Active
-
2011
- 2011-05-30 EP EP11168063A patent/EP2393038A1/en not_active Withdrawn
- 2011-05-31 US US13/149,836 patent/US8550351B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010054646A1 (en) * | 2000-05-24 | 2001-12-27 | Nisca Corporation | Apparatus and method for reading bar code printed card, and bar code recording media card |
CN1648931A (zh) * | 2004-01-20 | 2005-08-03 | 深圳市朗科科技有限公司 | 一种条码解码装置及方法 |
US20050199721A1 (en) * | 2004-03-15 | 2005-09-15 | Zhiguo Chang | 2D coding and decoding barcode and its method thereof |
CN101616323A (zh) * | 2008-06-27 | 2009-12-30 | 国际商业机器公司 | 对视频编码数据流进行解码的系统和方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218592A (zh) * | 2012-01-21 | 2013-07-24 | 深圳迈瑞生物医疗电子股份有限公司 | 在样本分析仪中进行条码识别的方法和对应样本分析仪 |
CN103218592B (zh) * | 2012-01-21 | 2016-02-03 | 深圳迈瑞生物医疗电子股份有限公司 | 在样本分析仪中进行条码识别的方法和对应样本分析仪 |
WO2013166995A1 (zh) * | 2012-05-11 | 2013-11-14 | 深圳市天朗时代科技有限公司 | 一种矩阵式二维码的解码方法 |
US9665759B2 (en) | 2012-05-11 | 2017-05-30 | Shenzhen Mpr Technology Co., Ltd | Decoding method for matrix two-dimensional code |
CN105009146A (zh) * | 2012-06-26 | 2015-10-28 | 艾克尼特有限公司 | 提供机器可读数据矩阵代码的图像掩码 |
CN106462786A (zh) * | 2014-05-14 | 2017-02-22 | 共同印刷株式会社 | 二维码、二维码的分析系统以及二维码的制作系统 |
CN107045616B (zh) * | 2017-01-09 | 2020-03-17 | 东软集团股份有限公司 | 扫描引擎的扫描方法及扫描装置 |
CN107045616A (zh) * | 2017-01-09 | 2017-08-15 | 东软集团股份有限公司 | 扫描引擎的扫描方法及扫描装置 |
CN109598161B (zh) * | 2018-08-20 | 2022-02-22 | 天津字节跳动科技有限公司 | 识别二维码的方法、装置、终端设备及存储介质 |
CN109598161A (zh) * | 2018-08-20 | 2019-04-09 | 天津字节跳动科技有限公司 | 识别二维码的方法、装置、终端设备及存储介质 |
CN113557529A (zh) * | 2019-03-12 | 2021-10-26 | 微软技术许可有限责任公司 | 混合二维条码阅读器 |
CN113557529B (zh) * | 2019-03-12 | 2024-05-24 | 微软技术许可有限责任公司 | 混合二维条码阅读器 |
CN109934041B (zh) * | 2019-03-26 | 2021-12-17 | 杭州网易再顾科技有限公司 | 信息处理方法、信息处理系统、介质和计算设备 |
CN109934041A (zh) * | 2019-03-26 | 2019-06-25 | 杭州网易再顾科技有限公司 | 信息处理方法、信息处理系统、介质和计算设备 |
CN110751003A (zh) * | 2019-09-24 | 2020-02-04 | 上海掌门科技有限公司 | 一种获取二维码的目标数据信息的方法与设备 |
CN110751003B (zh) * | 2019-09-24 | 2023-05-05 | 上海掌门科技有限公司 | 一种获取二维码的目标数据信息的方法与设备 |
CN111489313A (zh) * | 2020-04-13 | 2020-08-04 | 湖南国科微电子股份有限公司 | 一种cfa图像去马赛克方法及装置 |
CN111489313B (zh) * | 2020-04-13 | 2023-10-31 | 湖南国科微电子股份有限公司 | 一种cfa图像去马赛克方法及装置 |
CN111797647A (zh) * | 2020-07-08 | 2020-10-20 | 北京京东振世信息技术有限公司 | 条码解码方法和装置 |
CN111797647B (zh) * | 2020-07-08 | 2023-11-03 | 北京京东振世信息技术有限公司 | 条码解码方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101882210B (zh) | 2012-06-27 |
US20110290878A1 (en) | 2011-12-01 |
EP2393038A1 (en) | 2011-12-07 |
US8550351B2 (en) | 2013-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101882210B (zh) | 矩阵式二维条码解码芯片及其解码方法 | |
CN101882207B (zh) | Data Matrix码条码解码芯片及其解码方法 | |
CN101908125B (zh) | Qr码条码解码芯片及其解码方法 | |
CN101908128B (zh) | Aztec Code条码解码芯片及其解码方法 | |
CN112036292B (zh) | 基于神经网络的文字识别方法、装置及可读存储介质 | |
CN110516577B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN107111782B (zh) | 神经网络结构及其方法 | |
CN110929477B (zh) | 关键词变体的确定方法和装置 | |
CN105787897A (zh) | 一种模糊二维码图像的处理方法及装置 | |
CN101840496A (zh) | 一维条码解码芯片 | |
CN101923632B (zh) | Maxi Code条码解码芯片及其解码方法 | |
CA3045391C (en) | Method for detection and recognition of long-range high-density visual markers | |
CN101833641A (zh) | 条码解码芯片 | |
CN201946008U (zh) | 矩阵式二维条码解码芯片 | |
CN112819848A (zh) | 抠图方法、抠图装置和电子设备 | |
CN101882211B (zh) | 汉信码条码解码芯片及其解码方法 | |
CN101908126B (zh) | Pdf417条码解码芯片 | |
CN201965627U (zh) | Aztec Code条码解码芯片 | |
CN110348023A (zh) | 一种中文文本分词的方法、装置、存储介质及电子设备 | |
CN201936319U (zh) | Qr码条码解码芯片 | |
CN201946009U (zh) | 汉信码条码解码芯片 | |
CN201936317U (zh) | Data Matrix码条码解码芯片 | |
CN113468906B (zh) | 图形码提取模型构建方法、识别方法、装置、设备和介质 | |
CN201927029U (zh) | Maxi Code条码解码芯片 | |
CN109871910B (zh) | 一种手写字符识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 350015 No. 1 Rujiangxi Road, Mawei District, Fuzhou City, Fujian Province Patentee after: New Continent Digital Technology Co., Ltd. Address before: 350015 New Continental Science Park No. 1 Rujiangxi Road, Mawei District, Fuzhou City, Fujian Province Patentee before: Fujian Newland Computer Co., Ltd. |