矩阵式二维条码解码芯片及其解码方法

文档序号:6603425阅读:349来源:国知局
专利名称:矩阵式二维条码解码芯片及其解码方法
矩阵式二维条码解码芯片及其解码方法
技术领域
本发明涉及条码识别技术领域,特别地,涉及一种矩阵式二维条码解码芯片及其 解码方法。
背景技术
条码技术是在计算机技术与信息技术基础上发展起来的一门集编码、印刷、识别、 数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优 点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴 起的“物联网”应用中发挥重大的作用。目前被广泛使用的条码包括一维条码及二维条码。一维条码又称线形条码是由平 行排列的多个“条”和“空”单元组成,条形码信息靠条和空的不同宽度和位置来表达。一 维条码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,因 此信息容量及空间利用率较低,并且在条码污损后即无法识别。二维条码是由按一定规律在二维方向上分布的黑白相间的特定几何图形组成,其 可以在二维方向上表达信息,因此信息容量及空间利用率较低,并具有一定的校验功能。二 维条码可以分为堆叠式二维条码和矩阵式二维条码。堆叠式二维条码是由多行短截的一 维条码堆叠而成,代表性的堆叠式二维条码包括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.对模块灰度值进行二值化处理;1.根据二值化处理的结果提取 码字;m.对码字进行译码处理。本发明的矩阵式二维条码解码方法,通过搜索校正特征,获取校正特征的像素灰 度坐标与模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系,然后根据该映 射关系计算模块灰度值,对模块灰度值进行二值化,进而还原矩阵式二维条码所对应的条 码符号图形。与现有技术相比,本发明的矩阵式二维条码解码方法是在知晓条码特征信息, 并根据条码特征信息对条码图像进行校正后进行的二值化处理,因此降低了噪声、畸变等 因素对二值化过程的影响,减少了模块错误的出现,大大增加了条码的识别能力,提升了条 码识别的解码成功率。本发明的矩阵式二维条码解码芯片采用硬件流水线结构,通过硬件逻辑实现对条 码图像的识别解码,由于硬件流水线结构适于对条码图像进行流水线作业和并行处理,因 此处理速度很快。相对于现有技术的处理器解码技术而言,本发明的矩阵式二维条码解码芯片采用 全硬件结构,无需处理器参与解码,芯片结构相对于处理器而言结构更为简化、面积更小、 功耗更低、成本更低、易于集成,容易实现便携应用。可以方便地与物联网技术相结合,为条 码技术的应用提供了更为广阔的发展空间。

图1是现有技术的一种矩阵式二维条码识别方法的流程图。图2是图1所示的矩阵式二维条码识别方法的硬件结构图。图3是各种矩阵式二维条码的条码符号图形示意图。图4至图8是各种矩阵式二维条码的条码符号图形的功能示意图。图9是本发明的矩阵式二维条码解码芯片的硬件逻辑架构的示意框图。图10是根据本发明的矩阵式二维条码识别模块的解码方法的处理流程图。图11是根据本发明的矩阵式二维条码识别模块的第一实施方式的结构示意图。图12是根据本发明的矩阵式二维条码识别模块的第一实施方式中校正特征获取 单元的第一种校正点获取结构的示意图。图13是根据本发明的矩阵式二维条码识别模块的第一实施方式中模块信息处理 单元的结构示意图。图14是根据本发明的矩阵式二维条码识别模块的第一实施方式中模块信息处理 单元的转换原理示意图。图15是根据本发明的矩阵式二维条码识别模块的第二实施方式的结构示意图。
图16是根据本发明的矩阵式二维条码识别模块的第二实施方式中校正特征获取 单元的第二种校正点获取结构的示意图。
具体实施方式有关本发明的特征及技术内容,请参考以下的详细说明与附图,附图仅提供参考 与说明,并非用来对本发明加以限制。为使本领域技术人员更易于理解本发明的技术内容,提供以下条码术语的参考与 说明,其中部分条码术语是根据中华人民共和国国家标准GB/T12905-2000而来,并非用于 对本发明加以限制。条码符号某种条码定义的表示信息的条、空组合形式或模块的组合形式。码字码字表示源数据向条码符号转换的中间值。一种符号的码字数决定了该条 码符号的所有符号的数量。数据码字数据码字表示数据符号的值。纠错码字纠错码字表示纠错符号的值。模块矩阵式二维条码中的一个最小独立单元,代表一位二进制数据。功能图形矩阵式二维条码符号中用于符号定位与特征识别的特定图形。功能图 形包括探测图形、定位图形、校正图形等。探测图形矩阵式二维条码符号图形中,用于在条码图像中进行符号定位的特殊 图形,也称位置探测图形。定位图形矩阵式二维条码符号图形中,用于确定符号中模块的像素坐标的图形。校正图形矩阵式二维条码符号图形中,用于确定符号位置的一个固定的参照图 形。在条码图像有一定程度畸变或污损的情况下,可以通过校正图形对条码图像中模块的 像素坐标进行校正。编码区域矩阵式二维条码符号图形中,未被功能图形占据,用于对数据和纠错码 字进行编码,表示数据符号和纠错符号的区域。版本用于表示矩阵式二维条码符号规格的序列,反映了符号尺寸、符号中的模块 数量和符号中的模块的排列方式。版本信息矩阵式二维条码符号图形中,用于确定矩阵式二维条码符号版本号的 功能图形。格式用于表示矩阵式二维条码符号所使用的纠错等级以及掩模图形。格式信息矩阵式二维条码符号图形中,用于确定矩阵式二维条码符号所使用的 纠错等级以及掩模图形信息的功能图形。掩模图形在编码区域内用掩模图形对位图进行异或处理,其目的是使符号中深 色与浅色模块的比例均衡,并减少影响条码图像处理的图形出现。二值化条码图像用整体阈值或局部阈值对灰度条码图像进行处理,从而得到的 深浅两色的条码图像。阈值分割两个检验等级的边界值,其值本身是上面等级的下限值。模块错误在二值化条码图像中,深浅状态和设计状态发生倒置的模块。像素光敏阵列(如CXD或CMOS器件)上的单个光敏单元在条码图像上所对应的
8单位,一个像素通常被视为条码图像的最小的完整单位。数码条码图像的储存方式一般以 像素(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也可以通过比例检测的 方式来确定特征图形在条码图像上的像素坐标,该方式包括通过扫描方式检测条码图像中
12的深浅模块边界点,将深浅模块边界点之间的间距关系与位置探测图形或校正图形的模块 尺寸比例相比较,根据比较结果确定特征图形在条码图像上的像素坐标。另外,本发明还提 供一种通过行列线检测实现对矩阵式二维条码的识别的实施方式,在该实施方法中,特征 搜索单元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所对应的映射点 为r。由图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根据各个模块所对应的像素点的坐标和灰度值计算各个模块所对应的灰 度值,以构造模块图。本发明的矩阵式二维条码解码方法,通过搜索校正特征,获取校正特征的像素灰 度坐标与模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系,然后根据该映 射关系计算模块灰度值,对模块灰度值进行二值化,进而还原矩阵式二维条码所对应的条 码符号图形。与现有技术相比,本发明的矩阵式二维条码解码方法是在知晓条码特征信息, 并根据条码特征信息对条码图像进行校正后进行的二值化处理,因此降低了噪声、畸变等 因素对二值化过程的影响,减少了模块错误的出现,大大增加了条码的识别能力,提升了条 码识别的解码成功率。本发明的矩阵式二维条码识别模块采用硬件流水线结构,通过硬件逻辑实现对条 码图像的识别解码,由于硬件流水线结构适于对条码图像进行流水线作业和并行处理,因 此处理速度很快。相对于现有技术的处理器解码技术而言,本发明的矩阵式二维条码识别模块采用 全硬件结构,无需处理器参与解码,芯片结构相对于处理器而言结构更为简化、面积更小、 功耗更低、成本更低、易于集成,容易实现便携应用。可以方便地与物联网技术相结合,为条 码技术的应用提供了更为广阔的发展空间。以上参照

了本发明的各种优选实施例,但是只要不背离本发明的实质和 范围,本领域的技术人员可以对其进行各种形式上的修改和变更,都属于本发明的保护范围。
权利要求
一种矩阵式二维条码解码芯片,其特征在于包括数据存储器,用于存储条码图像;至少两个矩阵式二维条码识别模块,用于对所述数据存储器内存储的所述条码图像进行并行处理;主控逻辑模块,用于控制所述至少两个所述矩阵式二维条码识别模块的工作状态,使所述至少两个所述矩阵式二维条码识别模块依次调用所述数据存储器中的所述条码图像。
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.根据所述映射关系计算模块灰度值; 1.对所述模块灰度值进行二值化处理; m.根据所述二值化处理的结果提取码字; η.对所述码字进行译码处理。
全文摘要
本发明提供一种矩阵式二维条码解码芯片,包括数据存储器、至少两个矩阵式二维条码识别模块以及主控逻辑模块。数据存储器用于存储条码图像。至少两个矩阵式二维条码识别模块用于对数据存储器内存储的条码图像进行并行处理。主控逻辑模块用于控制至少两个矩阵式二维条码识别模块的工作状态,使至少两个矩阵式二维条码识别模块依次调用数据存储器中的条码图像。本发明还提供一种通过矩阵式二维条码解码方法。本发明的矩阵式二维条码解码芯片以及矩阵式二维条码解码方法能保证矩阵式二维条码解码过程快速、顺利地进行。
文档编号G06K7/10GK101882210SQ201010189048
公开日2010年11月10日 申请日期2010年6月1日 优先权日2010年6月1日
发明者孙亚力, 杨韬, 郭栋, 陈文传 申请人:福建新大陆电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1