WO2013044875A1 - 线性条码识别方法和系统 - Google Patents

线性条码识别方法和系统 Download PDF

Info

Publication number
WO2013044875A1
WO2013044875A1 PCT/CN2012/082511 CN2012082511W WO2013044875A1 WO 2013044875 A1 WO2013044875 A1 WO 2013044875A1 CN 2012082511 W CN2012082511 W CN 2012082511W WO 2013044875 A1 WO2013044875 A1 WO 2013044875A1
Authority
WO
WIPO (PCT)
Prior art keywords
barcode
feature vector
pixel
boundary
reference feature
Prior art date
Application number
PCT/CN2012/082511
Other languages
English (en)
French (fr)
Inventor
陈凌
Original Assignee
Chen Ling
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chen Ling filed Critical Chen Ling
Publication of WO2013044875A1 publication Critical patent/WO2013044875A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (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 Analysis (AREA)

Abstract

本发明公开了一种线性条码识别系统和方法,所述方法包括:获取图像;在所述图像中进行条码检测;在所述图像中进行条码定位以确定条码的边界;估计所述图像的模糊度;根据所述模糊度从若干基准特征矢量集中选择对应的一个基准特征矢量集,每一个基准特征矢量集对应一个模糊度并包括若干基准特征矢量;基于所述条码的边界从图像中提取所述条码的所有观测条码数据符对应的一组测试特征矢量;以及,利用所述测试特征矢量组和选择的基准特征矢量集解码得到所述条码的条码值。针对不同的模糊度设定了不同的基准特征矢量集,这样可以在图像模糊的情况下仍能实现对条码的正确解码。

Description

线性条码识别方法和系统
【技术领域】 本发明涉及线性条码 (linear barcode)识别领域, 尤其涉及一种线性条码识 别方法和系统。
【背景技术】 线性条码也常被称为一维条码(1 D barcode) , 其是将宽度不等的多个黑 条和空白, 按照一定的编码规则排列, 用以表达一组信息的图形标识符。 目 前在工业和民用领域应用得非常广泛。 常见的线性条码包括统一商品码 (Universal Product Code, 简称 UPC 码)、 欧洲商品编码 ( European Article Number, 简称 EAN码) 、 日本商品编码 (Japanese Article Number, 简称 JAN 码)、 Code 25、 Code 39, Code 128等等。
常用的条码扫描设备通常由光源 (比如激光)、 光学透镜、 感光器件 (例如 CCD, CMOS等) 、 解码逻辑电路和 I/O接口等组件构成。 简单来讲, 所述光 源投射光至条码上, 从条码处反射的光透过所述光学透镜进入感光器件表面, 经过光电转换、 模数转换等一系列处理后形成条码的数字图像, 然后解码逻辑 电路对摄取的图像进行分析和解码。
目前的条码扫描设备一般都是专用的条码扫描设备, 比如商场内的与零售 系统连接的条码扫描器、 图书馆内的与图书管理系统连接的条码扫描器或医院 内的与电脑系统连接的条码扫描器, 其可以采集到高质量的条码图像, 这样可 以较为容易的实现条码的解码。
随着移动互联网的使用,基于图像 CCD(Charge Coupled Device)传感器的 条码扫描应用和服务在移动电话或其他移动装置开始崭露头角。 基于条码扫描 的移动应用, 比如比较购物、 价格比较和移动商务, 在移动互联网使用者中正 变得流行。这些应用的一个特别方案是: 一旦照相手机的 CCD图像传感器采集 的条码图像被解码, 条码值对应的相关信息将通过无线网络从远端服务器被提 取。 所述相关信息包括但不限于, 产品名称, 产品描述, 销售者信息, 客户评 价, 价格等等。 然而, 作为这些应用成功和普遍推广的关键的条码扫描技术面 临着巨大的挑战, 比如由于照相手机的硬件限制和不受强制的应用环境而导致 的图像质量较低。
由于一些挑战的问题, 比如失焦模糊和有限的处理能力, 很多基于条码扫 描的移动应用对于定焦镜头的照相手机都是不可用的, 而这类定焦镜头的手机 占有当前移动手机市场的很大一部分。 在大多数的照相手机在实现一维条码扫 描或在专用扫描仪上提高模糊度耐受力仍然具有理论和技术上的挑战。
因此, 有必要开发出一种可以从视频图像中识别线性条码的新方案来克服 上述问题。
【发明内容】 本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳 实施例。 在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省 略以避免使本部分、 说明书摘要和发明名称的目的模糊, 而这种简化或省略不 能用于限制本发明的范围。
本发明要解决的技术问题之一在于提供一种线性条码识别方法, 其可以识 别模糊图像中的条码。
本发明要解决的技术问题之二在于提供一种线性条码识别装置, 其可以识 别模糊图像中的条码。
为了解决上述问题, 根据本发明的一个方面, 本发明提供了一种线性条码 识别方法, 其包括: 获取图像; 在所述图像中进行条码检测; 在所述图像中进 行条码定位以确定条码的边界; 估计所述图像的模糊度; 根据估计的模糊度从 若干基准特征矢量集中选择对应的一个基准特征矢量集, 每一个基准特征矢量 集对应一个模糊度并包括若干基准特征矢量; 基于所述条码的边界从图像中提 取所述条码的所有观测条码数据符对应的一组测试特征矢量; 以及, 利用提取 的测试特征矢量组和选择的基准特征矢量集解码得到所述条码的条码值。
根据本发明的另一方面, 本发明提出一种线性条码识别系统, 其包括: 摄 像模块, 用于获取图像; 条码检测模块, 用于在所述图像中进行条码检测; 条 码定位模块, 用于在所述图像中进行条码定位以确定所述条码的边界; 模糊度 估计模块, 用于估计所述图像的模糊度; 条码解码模块, 用于根据估计的模糊 度从若干基准特征矢量集中选择对应的一个基准特征矢量集, 基于所述条码的 边界从图像中提取所述条码的所有观测条码数据符对应的一组测试特征矢量, 以及, 利用提取的测试特征矢量组和选择的基准特征矢量集解码得到所述条码 的条码值, 其中每一个基准特征矢量集对应一个模糊度并包括若干基准特征矢 与现有技术相比, 在本发明中针对不同的模糊度设定了不同的基准特征矢 量集, 根据图像的模糊度来选定对应的基准特征矢量集, 随后利用提取的所述 条码的所有条码数据符对应的测试特征矢量和选择的基准特征矢量集进行解码 以得到所述条码的条码值, 这样可以在图像模糊的情况下仍能实现对条码的正 确解码。
关于本发明的其他目的, 特征以及优点, 下面将结合附图在具体实施方式 中详细描述。
【附图说明】 结合参考附图及接下来的详细描述, 本发明将更容易理解, 其中同样的附 图标记对应同样的结构部件, 其中:
图 1为本发明中的线性条码识别方法在一个实施例中的流程示意图; 图 2a和 2b分别示出了两个条码的示例;
图 3为本发明中的条码检测方法在一个实施例中的流程示意图;
图 4为本发明中在进行条码检测时的条形区域搜索方法在一个实施例中的 流程示意图;
图 5示出了在条形区域搜索时图像中的查找区域和停止区域的相对位置关 系;
图 6为本发明中的条码定位方法在一个实施例中的流程示意图;
图 7示出了在边界点搜索时图像中的搜索区域的位置的示例;
图 8为本发明中在进行条码定位时的边界点搜索方法在一个实施例中的流 程示意图;
图 9示出了灰度图像中的一行像素点的灰度值曲线示例;
图 10为本发明中的模糊度估计方法在一个实施例中的流程示意图; 图 1 1如图 2b所示的一列穿过一个条形区域的像素点的灰度值曲线示例; 图 12为本发明中的条码解码方法在一个实施例中的流程示意图; 图 13为本发明中在进行条码解码时的测试特征矢量提取方法在一个实施例 中的流程示意图;
图 14示出了 EAN-13条码的结构示例;
图 15为本发明中在进行条码解码时的条码值获取方法在一个实施例中的流 程示意图;
图 16为本发明中的解码验证方法在一个实施例中的流程示意图; 图 17为本发明中的线性条码识别系统在一个实施例中的结构示意图; 图 18为本发明中的条码检测模块在一个实施例中的结构示意图; 图 19为本发明中的条码定位模块在一个实施例中的结构示意图; 和 图 20为本发明中的条码解码模块在一个实施例中的结构示意图。
【具体实施方式】 本发明的详细描述主要通过程序、 步骤、 逻辑块、 过程或其他象征性的描 述来呈现, 其直接或间接地模拟本发明中的技术方案的运作。 所属领域内的技 术人员使用此处的这些描述和陈述向所属领域内的其他技术人员有效的介绍他 们的工作本质。
此处所称的"一个实施例"或"实施例 "是指与所述实施例相关的特定特征、 结 构或特性至少可包含于本发明至少一个实现方式中。 在本说明书中不同地方出 现的"在一个实施例中"并非必须都指同一个实施例,也不必须是与其他实施例互 相排斥的单独或选择实施例。 此外, 表示一个或多个实施例的方法、 流程图或 功能框图中的模块顺序并非固定的指代任何特定顺序, 也不构成对本发明的限 制。
本发明提出利用图像分析和模式识别 (pattern recognition ) 理论对视频图 像中的线性条形码(linear barcodes)进行自动识别的方法及系统。 该方法及系 统能够有效解决模糊图像中条码的侦测、 定位和识别的问题, 从而使得采用定 焦镜头的摄像头模组作为视频图像采集设备的计算机系统也能具备条码识别能 力, 降低了对距离控制的要求和对摄像头模组硬件配置的要求。
图 1 为本发明中的线性条码识别方法 1在一个实施例中的流程示意图。 如 图 1所示, 所述线性条码识别方法 1包括如下步骤。
步骤 100, 摄像头获取连续的视频图像。
所述摄像头可以是采用定焦镜头 (fixed-focus lens), 当然也可以采用变焦镜 步骤 200, 对所述视频图像进行预处理得到固定尺寸的灰度图像。
所述预处理可以包括裁剪、 尺寸变换以及彩色图像转灰度图图像等操作。 步骤 300, 在灰度图像中进行条码检测, 如果检测到条码, 则进入下一步 骤, 否则, 返回步骤 200继续条码识别。
步骤 400, 在灰度图像中定位条码的左右边界, 如果定位到左右边界, 则 进入下一步骤, 否则返回步骤 200继续条码识别。
步骤 500, 估计灰度图像的模糊度, 如果估计成功, 则进入下一步骤, 否 则返回步骤 200继续条码识别。
步骤 600, 根据所述模糊度和所述条码的左右边界对灰度图像中的条码进 行解码得到所述条码的条码值, 如果解码成功, 则进入下一步骤, 否则返回步 骤 200继续条码识别。
步骤 700, 确定所述条码的条码值是否可信, 如果可信, 则输出所述条码 的条码值并结束本流程, 否则返回步骤 200继续条码识别。
步骤 500和步骤 400的顺寻是可以互换的。 在一个实施例中, 所述线性条 码识别方法 1也可以不包括如步骤 700的解码验证的步骤, 而是在步骤 600解 码成功后直接结束本流程。
下面将结合具体实例分别对条码检测 (步骤 300)、 条码定位 (步骤 400)、 模 糊度估计 (步骤 500)、 条码解码 (步骤 600)以及解码验证 (步骤 700)详细介绍。
条码检测
图 3为本发明中的条码检测方法 300(对应于所述线性条码识别方法 1 的步 骤 300)在一个实施例中的流程示意图。 如图 3所示, 所述条码检测方法 300包 括以下步骤。
步骤 310, 在图像中搜索至少两个条形区域, 并确定每个条形区域的端点。 如果未搜索到至少两个条形区域, 则判定所述图像中不包含有条码, 如果搜索 到了至少两个条形区域, 则进入下一个步骤。
如图 2a所示,其示出了一个条码示例,其包括有多个大致平行的条形区域, 每个条形区域包括有位于两端的端点, 条码区域外是背景区域。
图 4为一种条形区域搜索方法在一个实施例中的流程示意图。下面结合图 4 来示例性的详细介绍如何在图像中搜索条形区域并确定所述条形区域的端点。 步骤 31 1, 在图像中设定查找区域和停止区域。
如图 5所示, 所述查找区域的范围小于等于所述停止区域, 所述停止区域 的范围大于等于所述查找区域而小于等于图像。 所述查找区域可以是整个图像, 也可以是在图像中事先选定的一定宽和高的矩形区域。 所述图像边界可以为预 处理后的灰度图像的边界。
在一个特别的示例中, 所述查找区域等于所述停止区域, 也等于所述图像, 这样就相当于未设置查找区域和停止区域, 直接在整个图像上进行查找或搜索。 换句话说, 在此种情况下, 相当于未设置查找区域和停止区域。 类似的, 在所 述停止区域等于所述图像时, 相当于未设置停止区域。
查找区域和停止区域可以根据具体条码识别应用的背景或者系统硬件的处 理能力等因素来确定。 比如在一些应用中, 条码所在的大致位置是确定的, 则 查找区域只需要将该大致位置包含在内即可。 再比如在一些应用中, 由于硬件 设备处理能力有限, 无法对整幅图像进行全图像搜索, 则可以设定在图像的一 个固定区域作为查找区域。
步骤 312, 在所述查找区域内选定一行像素点。
在一个实施例中, 可以选定所述查找区域的任意一行像素点, 比如所述查 找区域的中间一个像素点或第一行像素点。
步骤 313, 在选定的一行像素点中选定一个黑色像素点作为初始黑色像素 点并记录该初始黑色像素点的坐标。
在一个实施例中, 黑色像素点的判定可以是比较选定的像素点和临近像素 点的灰度差异, 当灰度差异达到预先设定的一个灰度差异门限值时即可认定该 像素点是一个黑色像素点, 否则认为是背景像素点 (或称为白色像素点), 继续选 定另一个像素点, 记录选定的黑色像素点的坐标。 在另一个实施例中, 也可以 直接将像素点的灰度值与一个灰度阈值进行比较, 在其灰度值小于所述灰度阈 值时被确定为黑色像素点。
如果在选定的一行像素点中没有找到黑色像素点, 则在查找区域内另选一 行像素点重复步骤 313, 直到找到一个黑色像素点或在查找区域内查找完所有 行像素。
步骤 314, 从初始黑色像素点开始搜索其它黑色像素点, 直到不能找到连 续的黑色像素点, 记录搜索到的黑色像素的坐标。 在一个实施例中, 所述黑色像素点的搜索过程包括: 将所述初始黑色像素 点记录为当前黑色像素点; 从当前黑色像素点的上方或下方的三个像素点中找 到灰度值最小的一个; 确定该找到的像素点是否为黑色像素点; 和如果该找到 的像素点为黑色像素点, 那么将该找到的像素点作为所述当前黑色像素点以继 续搜索下一黑色像素点。 如果搜索到的黑色像素点在停止区域之内, 则可以继 续搜索, 如果在停止区域之外, 则停止搜索, 这样可以节省计算量。
可以通过将找到的像素点的灰度值与预定灰度阈值进行比较来确定找到的 像素点是否为黑色像素点, 也可以通过比较找到的像素点与上一个黑色像素点 的灰度值差异与预定灰度差异阈值进行比较来确定找到的像素点是否为黑色像 素点。
如果在步骤 314中查找失败, 则在查找区域内另选一行像素点重复上述步 骤 313和 314, 直到找到端点或者在查找区域内查找完毕而未找到端点。
步骤 315, 将找到的黑色像素点的坐标进行曲线拟合得到第一曲线, 基于 该曲线确定是否找到了一个找到了一个条形区域, 假如找到了一个条形区域, 则将所找到的最外侧的黑色像素点作为找到的条形区域的端点。
在一个实施例中, 将所记录的黑色像素点 (包括初始黑色像素点、 其他记录 的黑色像素点)的坐标进行曲线拟合 (curve fitting)得到第一曲线, 之后基于该第 一曲线确定找到了条形区域。
具体的, 统计该第一曲线在各黑色像素点附近的曲率 (curvature) 以及各 黑色像素点到该第一曲线的距离。 如果所述第一曲率小于事先规定的第一曲率 门限值而且所有的距离不超过事先规定的第一距离门限值, 则认为该黑色区域 是一个条形区域; 否则认为该黑色区域不是一个条形区域。
在利用上述方法在图像中搜索一个条形区域, 之后可以采用相同的方法在 搜索到的条形区域的临近区域中再搜索一定数量的其它条形区域, 并确定它们 的端点。
步骤 320, 基于搜索到的各个条形区域的端点确定各个条形区域是否属于 一个条码, 如果搜索到的各个条形区域属于同一个条码, 则可以判定所述图像 中包含有条码, 否则判定所述图像中不包含条码。 需要指明的是, 所述图像中 不包括条码包括两种情况, 一种是真的不包括条码, 另一种是包括两个或多个 条码。 对于包括两个或多个条码的情况, 在本发明中被视为不包括条码。 在一个实施例子中, 计算搜索到的各条形区域的方向的差异; 将搜索到的 各条形区域的同侧的端点的坐标进行曲线拟合得到一第二曲线; 基于各条形区 域的方向的差异和 /或所述第二曲线确定各个条形区域是否属于一个条码。
具体的, 统计该第二曲线在这些同侧端点附近的曲率以及这些同侧端点到 该第二曲线的距离; 如果该曲率小于事先规定的第二曲率门限值, 各条形区域 方向上的差异不超过事先规定的第二角度门限值, 各条形区域的同侧的端点和 利用该侧端点拟合的第二曲线之间的距离不超过事先规定的第二距离门限值。
如果在图像中未检测到条码, 则认为条码检测失败。
需要说明的是, 图 3只是示出了所述线性条码识别方法 1 中的条码检测步 骤 300的一个实施例, 在其他实施例中, 还可以采用其他条码检测方法。 此外, 所述条码检测方法 300也并不局限于所述线性条码识别方法 10, 其还可以应用 于其他条码识别的应用中。
条码定位
图 6为本发明中的条码定位方法 400(对应于所述线性条码识别方法 1 的步 骤 400 )在一个实施例中的流程示意图。如图 6所示, 所述条码定位方法 400包 括以下步骤。
步骤 410, 在图像中搜索至少两个左边界点和至少两个右边界点。
在一个实施例中, 为降低计算量, 可以在图像中设定搜索区域, 该搜索区 域可以根据需要设定, 在默认的情况下可以等于整个图像区域, 条码的定位是 在搜索区域内进行的搜索的。 所述图像可以为预处理后的灰度图像。
在条码检测方法 400 中, 已经在图像中检测到了条码并且可以在图像中检 测到了至少两个条形区域及其端点。 如图 7所示, 其示出了进行条码定位的图 像、 检测出的一个条形区域的条形端点 1 1 和 12、 检测出的另一个条形区域的 条形端点 21和 22, 根据条形区域的同侧端点 1 1和 21拟合而成的拟合直线 1, 根据条形区域的同侧端点 12和 22拟合而成的拟合直线 2。 可以看出, 条码的 左右边界应该是位于拟合直线 1和 2之间的。
在一个优选的实施例中, 可以将搜索区域设定在拟合直线 1和 2之间, 比 如搜索区域是一个横向放置的矩形区域, 其顶部不超过位于上端的拟合直线 1 的最低值, 其底部不低于位于下端的拟合直线 2 的最高值, 其左右两端则是在 图像的左右边界附近。 图 8为一种条码的边界点搜索方法在一个实施例中的流程示意图。 下面参 照图 8示例性的详细介绍如何在图像中搜索一个边界点。
步骤 41 1, 从搜索区域中选取一行像素点, 将预定像素宽度的滑动窗口从 该行像素点的第一端开始朝向第二端逐像素进行移动, 所述第一端可以是左端 和右端中的一个, 第二端是左端和右端中的另一个。
步骤 412, 根据在每个移动位置的滑动窗口的左侧像素点和右侧像素点的 灰度值差异找到第一边界区域。
每移动到一个新的位置, 就会比较滑动窗口左右两侧像素点灰度值的差异, 当该差异超过预定灰度值差异门限值时, 即认为边界点已经位于滑动窗口之内, 此时该滑动窗口所在的区域就是第一边界区域。
请参图 9所示, 其示出了搜索区域内单行像素点的灰度值曲线、 虚线框表 示的滑动窗口和条码的一个左边界点, 纵坐标轴表示像素点的灰度值, 横坐标 轴表示像素点在该行像素点中的位置。
步骤 41 1和 412可以统称为边界点的粗略查找。
步骤 413, 通过计算第一边界区域内的相邻像素点的灰度值差异在所述第 一边界区域内找到多个连续的平坦像素点和跟随所述连续的平坦像素点的多个 连续的变动像素点。
对于第一边界区域内的每一像素点, 在该像素点的靠近第二端的一侧选取 预定数量的像素点, 统计选取的这些像素点的左端点和右端点的灰度值差异, 如果这个灰度值差异达到最大值, 记录其对应的第一边界区域内的该像素点的 位置。 在该记录像素点的靠近第二端的一侧选取一定数量的连续像素点作为平 坦像素点, 在此记录像素点的靠近第一端的一侧选取一定数量的连续像素点作 为变动像素。
步骤 414, 根据所述平坦像素点拟合第一直线, 根据所述变动像素点拟合 第二直线。
将所述平坦像素点在灰度图像中的横坐标作为横坐标, 将它们的灰度值作 为纵坐标, 进行线性拟合得到第二直线。 将所述变动像素在灰度图像中的横坐 标作为横坐标, 将它们的灰度值作为纵坐标, 进行线性拟合得到第二直线。
步骤 415, 计算第一直线和第二直线的交点, 将该交点的横坐标作为该行 像素点的第一边界点的横坐标, 该行像素点的纵坐标为第一边界点的纵坐标。 如图 9所示, 所述第一直线类似于左边界点的右侧的像素灰度线, 所述第 二直线类似于左边界点的左侧的像素灰度线, 两条像素灰度线交汇处即为边界 像素点。
这样就找到了一个第一边界点。 步骤 413、 414和 415可以统称为边界点 的精确定位查找。 同样的, 采用相同的方法可以找到其它第一边界点。 同理, 可以将滑动窗口从第二端向第一端逐像素滑动就可以在搜索区域内搜索一定数 量的第二边界点。
需要注意的是, 如果选取的一行像素的第一端为左端, 即从所述搜索区域 的左边界开始搜索, 则第一边界点为左边界点, 第二边界点为右边界点, 如果 选取的一行像素的第一端为右端, 即从所述搜索区域的右边界开始搜索, 则第 一边界点为右边界点, 第二边界点为左边界。
步骤 420, 分别基于搜索到的左右边界点确定条码的左右边界。
在一个实施例中, 将搜索到的左边界点 (同侧边界点)拟合成一条曲线, 该曲 线在搜索到的左边界点附近的曲率需要小于一个预定曲率门限值; 根据搜索到 的左边界点到所述曲线的距离判断是否有非法左边界点, 如果搜索到的一个左 边界点到所述曲线的距离大于预定距离门限, 则认为该边界点为非法边界点; 如果有, 则去除非法左边界点, 并对剩余的左边界点再次拟合成一条曲线, 并 基于该曲线确定左边界。
同样的, 可以采用同样的操作来实现基于搜索到的右边界点得到条码的右 边界。
如果在图像中未确定到条码的左右边界, 则认为条码定位失败。
需要说明的是, 图 6只是示出了所述线性条码识别方法 1 中的条码检测步 骤 400的一个实施例, 在其他实施例中, 还可以采用其他条码定位方法。 此外, 所述条码定位方法 400也并不局限于所述线性条码识别方法 1, 其还可以应用 于其他条码识别的应用中。
模糊度估计
图 2a示出了一张清晰的条码图像, 图 2b示出了一张模糊的条码图像, 图 中示出了图像的边界, 条码的左边界和右边界, 条形区域及其端点、 背景区域。 为了对所述模糊图像中的条码进行解码, 需要估计图像的模糊度。
在一个实施例中, 可以基于条码的条形区域与背景区域之间的过度区域的 宽度来确定所述模糊度。 如图 2a所示, 所述条形区域为黑色区域, 所述背景区 域为白色, 在模糊前, 所述条形区域和所述背景区域的边缘比较陡峭, 在模糊 之后, 所述条形区域和所述背景区域的边缘变得比较平缓, 形成一个过渡区域。 如图 1 1所示, 其示出了如图 2b所示的一列穿过一个条形区域的像素点的灰度 值曲线, d1线的左侧为背景区域, d2线的右侧为条形区域, d1和 d2之间形成 过渡区域, 过渡区域的宽度可以反映图像的模糊度, 过渡区域的宽度越宽, 图 像的模糊度越高, 过渡区的宽度越窄, 图像的模糊度越低。
图 10为本发明中的模糊度估计方法 500(对应于所述线性条码识别方法 1 的步骤 500)在一个实施例中的流程示意图。如图 10所示,所述模糊度估计方法 500包括以下步骤。
步骤 510, 统计条形区域和背景区域之间的过度区域附近的像素点的灰度 值。
在一个实施例中, 步骤 300中已经进行的条码检测已经检测到了多个条形 区域及其端点, 如图 2a所示, 那么可以选定一个条形区域, 在该条形区域的端 点附近沿条形区域的方向统计条形区域和背景区域之间的过度区域附近的像素 点的灰度值。 在另一个实施例中, 步骤 300 中已经检测到了条码的左右边界, 如图 2b所示, 那么可以选定一个边界点, 在该边界点附近沿垂直于条形区域的 方向统计条形区域和背景区域之间的过度区域附近的像素点的灰度值。
步骤 520, 利用统计到的像素点的灰度值统计相邻像素点的灰度值差异。 步骤 530, 将统计的相邻像素点的灰度值差异与预定灰度值差异门限值进 行对比来判定所述过渡区域和所述背景区域的第一过度边界以及所述过渡区域 与所述条形区域的第二过度边界。 如图 1 1 所示, d1 线可以表示所述过渡区域 和所述背景区域的第一过度边界, d2可以表示所述过渡区域与所述条形区域的 第二过度边界。 很明显, 所述过渡区域中的相邻像素点的灰度值差异比较大, 而所述背景区域和所述条形区域中的相邻像素点的灰度值差异比较小。
步骤 540, 计算所述过度区域的两个过度边界之间的宽度, 并基于所述宽 度确定所述图像的模糊度。
可以基于计算得到的一个位置的条形区域和背景区域之间的过渡区域的宽 度确定所述图像的模糊度。 然而, 因为图像中存在的各种噪声等因素, 通过一 个位置的条形区域和背景区域之间的过渡区域的宽度确定所述图像的模糊度的 可信度较低, 因此可以多采集几个位置 (多个左右边界点附近或多个条形区域的 端点附近)的条形区域和背景区域之间的过渡区域的宽度以对图像模糊度进行综 合判定。
在一个实施例中, 可以根据多个位置的条形区域和背景区域之间的过渡区 域的宽度来综合判定的图像的模糊度, 具体包括如下步骤: 统计所有过渡区域 的宽度的均值, 统计所有过渡区域的宽度的方差; 如果方差值不超过预定方差 门限值, 则取均值为整幅图像的模糊度; 如果方差值超过预定方差门限值, 则 找出与均值差异最大的过渡区域的宽度并将其剔除; 如果所余下的过渡区域的 宽度的数量仍然大于等于预定的数量门限值, 则回到上面第一步重新处理, 否 则图像的模糊度估计失败。
条码解码
图 12为本发明中的条码解码方法 600(对应于所述线性条码识别方法 1 的 步骤 600)在一个实施例中的流程示意图。如图 12所示, 所述条码解码方法 600 包括以下步骤。
步骤 610,根据估计得到的图像的模糊度从若干基准特征矢量集 (Reference feature vector set)中选择对应的一个基准特征矢量集, 每一个基准特征矢量集 对应一个模糊度并包括若干基准特征矢量。
所述估计得到的图像的模糊度可以根据图 10所示的模糊度估计方法获得, 也可以根据其他模糊度估计方法获得。
由于图像的模糊会导致每一个像素点的灰度值向其四周发散, 模糊度越高 发散的范围越大。 如图 2b所示, 在条码图像出现模糊时, 相邻两个条码数据符 的灰度信息就会产生互相影响, 模糊度越高, 影响越深。 换句话说, 模糊度不 同, 图像中的条码数据符的灰度信息就会发生变化。 为了实现对不同模糊度图 像的解码, 有必要针对不同的模糊度建立对应的基准特征矢量集。
为每个模糊度预先建立一个基准特征矢量集, 每个基准特征矢量集包括有 若干个基准特征矢量。 所述模糊度可以根据需要自定义, 举例来说, 以图 10所 示的模糊度为过度区域的宽度为例, 所述模糊度的单位可以是单个条码数据符 宽度 s的 1/m, m为正整数, 也就是说, 0-s*1 /m为一个模糊度范围, s*1 /m至 s*2/m为下一个模糊度范围, s*2/m至 s*3/m为下一个模糊度范围, 以此类推。
在一个实施例中, 基于条码类型所定义的一个标准条码数据符和一个模糊 度生成对应该模糊度的一个基准特征矢量, 这样形成的所有基准特征矢量可以 组成了一个基准特征矢量集。 通过同样的方式, 还可以形成对应其它模糊度范 围的基准特征矢量集。
在另一个实施例中, 基于条码类型所定义的两个或更多个标准条码数据符 和一个模糊度生成对应该模糊度的一个基准特征矢量, 这样形成的所有基准特 征矢量可以组成了一个基准特征矢量集。 通过同样的方式, 还可以形成对应其 它模糊度的基准特征矢量集。
步骤 620, 基于条码的边界信息从图像中提取条码的所有观测条码数据符 ( Observation symbol character ) 对应的一组测试特征矢量 ( test feature vector)
图 13为一种基于条码的边界信息从图像中提取条码的所有观测条码数据符 对应的一组测试特征矢量的方法在一个实施例中的流程示意图。 如图 13所示, 所述测试特征矢量组提取方法包括如下步骤。
步骤 621, 根据估计得到的模糊度和条码的边界信息确定测试范围。
所述条码的边界信息可以是根据图 6所示的条码定位方法定位得到条码的 左右边界, 也可以是其他条码定位方法得到的条码的左右边界。
在得到了图像的模糊度和条码的边界信息后, 由于测定的误差以及条码在 灰度图像中出现的旋转(rotation)、倾斜(tilt)等几何失真(geometric distortion) 等因素的影响, 解码的范围并不局限于当前测定的图像模糊度和条码边界, 而 是以测定的图像模糊度和条码边界为基础, 预先设定一个测试范围, 从而有效 处理测定的误差, 以及省去对图像几何失真的精确估计和补偿。
步骤 622, 在测试范围内依次确定所述条码的合法位置。
在测试范围内可以确定所述条码的多个合法位置, 可以每次确定所述条码 的一个合法位置, 所述合法位置是指符合规则的可能的位置。 如果在其中的一 个合法位置提取的观测条码数据符的测试特征矢量组未完成最终的条码解码, 那么会在测试范围内再次确定所述条码的一个合法位置, 直到解码成功或测试 范围内的没有剩余的合法位置。
步骤 623, 基于确定的所述条码的合法位置确定所述条码的各个观测条码 数据符的位置。
步骤 624, 根据所述条码的各个观测条码数据符的位置从图像中提取灰度 信息, 并基于提取的灰度信息生成所述测试特征矢量组, 所述测试特征矢量组 由多个测试特征向量组成。 在一个实施例中, 根据所述条码的一个或多个观测 条码数据符生成一个对应的测试特征向量, 基于所述条码的所有观测条码数据 付生成的所有测试特征向量形成一组测试特征向量。
图 14示出了 EAN-13条码 (European Article Number-13 barcode)的结构示 例。 如图 14所示, EAN-13 条码是由起始符 (guard pattern on the left) , 6 个左侧数据符 (symbol characters on the left) , 中间分隔符 (centre guard pattern) , 6个右侧数据符(symbol characters on the right),以及终止符(guard pattern on the right)构成。起始符由 3个模块 ( module)构成, 固定为 " 101 ", 表示 "条空条" (bar, space , bar) ; 6个左侧数据符由 42个模块构成, 由 条码字符集 A子集(number set A)或 B子集定义, 每个数据符各占 7个模块; 中间分隔符由 5个模块构成, 固定为 "01010", 表示 "空条空条空" ; 6个右 侧数据符由 42个模块构成, 由条码字符集 C子集定义,每个数据符各占 7个模 块; 终止符由 3个模块构成, 固定为 " 101 ", 表示 "条空条", 每个模块的宽 度固定。
针对 EAN-13条码的结构, 需要提取 6个左侧数据符和 6个右侧数据符的 灰度信息, 然后利用提取的灰度信息生成一组测试特征矢量。为此, 如步骤 530 所述的, 可以先基于确定的所述条码的合法位置确定所述条码的 12个观测条码 数据符的位置。 随后, 如步骤 540所述的, 可以根据所述条码的 12个观测条码 数据符的位置从图像中提取对应的灰度信息, 并基于提取的灰度信息生成 12个 条码数据符对应的测试特征矢量, 12个条码数据符对应的测试特征矢量组成了 所述测试特征矢量组。 此处以 EAN条码为例, 但是其原则和处理方式可以适用 于其他 1维条码, 比如 Code 25, Code 39, Code 128等等。
步骤 630, 利用提取的测试特征矢量组和选择的基准特征矢量集解码得到 所述条码的条码值。
图 15示出了利用提取的测试特征矢量组和选择的基准特征矢量集解码得到 所述条码的条码值的方法在一个实施例中的流程示意图。 如图 15所示, 所述方 法包括如下操作。
步骤 631, 将所述测试特征矢量组和所述测试特征矢量组在选定的基准特 征矢量集中对应的若干基准特征矢量组进行相似度比较, 所述基准特征矢量组 是选定的基准特征矢量集中的部分基准特征矢量的组合。
事实上, 所述测试特征矢量组必定是对应所述基准特征矢量集中的基准特 征矢量的所有合法组合中的一种, 所述合法是指符合条码类型所定义的规则。 在一个优选的实施例中, 可以利用动态规划的方式来确定所述测试特征矢量组 在选定的基准特征矢量集中对应的若干基准特征矢量组, 这样可以大大节省计 在一个实施例中, 计算所述测试特征矢量组中的每个测试特征矢量和对应 的基准特征矢量组中的对应基准特征矢量的单相似度, 基于所述测试特征矢量 组中的测试特征矢量和所述基准特征矢量组中的基准特征矢量的单相似度来确 定所述测试特征矢量组和所述基准特征矢量组的总相似度。 比如, 所述总相似 度等于对应组内的测试特征矢量和基准特征矢量的单相似度的总和或平均相似 度。
步骤 632, 确定和所述测试特征矢量组总相似度最高的基准特征矢量组。 步骤 633, 根据总相似度最高的基准特征矢量组确定所述条码的条码值。 这样就找到了条码的各个条码数据符表示的数值, 实现了图像中的条码的解码。
一般各种线性条码制式都存在一定的验证机制, 比如在数据符中引入校验 数据, 此时可以根据得到的所述条码的条码值进行校验, 如果通过, 则解码成 功, 否则解码失败。 不失一般性, 以 EAN-13 条码为例, 其最后一位数据符是 用于奇偶校验的。
解码验证
经过所述条码解码方法 600后解码得到的所述条码的条码值, 虽然通过了 校验, 但由于图像比较模糊, 还是可能存在误解码, 所以还可以对解码后的条 码值进行进一步的验证, 也就是, 确定所述条码的条码值是否可信。
在一个实施例中, 可以根据条码解码过程中产生的最高总相似度以及该最 高总相似度对应的基准特征矢量组中的各基准特征矢量与各测试特征矢量的单 相似度判定解码产生的条码值是否可信。 如果可信则将解码得到的条码值作为 所述线性条码识别方法 1 的最终输出, 从而达到降低虚警率(false alarm ratio) 的同时保证条码的检测率的目的。
图 16为本发明中的解码验证方法 700(对应于所述线性条码识别方法 1 的 步骤 700)在一个实施例中的流程示意图。如图 16所示, 所述解码验证方法 700 包括以下步骤。
步骤 701, 输入相似度记录, 此处的相似度包括总相似度和单相似度。 在进行解码验证前, 需要获得条码解码过程中获得最高总相似度以及该最 高总相似度对应的基准特征矢量组中的各基准特征矢量与各测试特征矢量的单 相似度。 预先设定针对总相似度的三个门限值: 第一相似度门限值 (门限值 1 ), 第二相似度门限值 (门限值 2)和第三相似度门限值 (门限值 3), 其中第一相似度 门限值最高, 第二相似度门限值次之, 第三相似度门限值最小, 预先设定针对 单个相似度的两个门限值:第四相似度门限值 (门限值 4)和第五相似度门限值 (门 限值 5), 第四相似度门限大于第五相似度门限。
步骤 702, 判断获得的总相似度 (即最高总相似度)是否大于门限值 1, 如果 是, 则进入步骤 703认为解码得到的条码值可信, 结束所述线性条码识别方法 1 的识别流程。 否则, 则进入步骤 704。
步骤 704, 判断获得的总相似度是否大于门限值 2, 如果是, 则进入步骤 705, 否则进入步骤 706。
步骤 705, 判断最小单相似度是否大于门限值 4, 如果是, 则进入步骤 703 认为解码得到的条码值可信, 否则进入步骤 707。
步骤 706, 判断总相似度是否大于门限值 3, 如果是, 则进入步骤 707, 否 则进入步骤 708认为解码得到的条码值不可信。
步骤 707, 判断小最小单相似度是否大于门限值 5, 如果是, 则进入步骤 709, 否则进入步骤 708认为解码得到的条码值不可信。
步骤 709, 查找已有解码得到的相同的条码值, 随后在步骤 710判断解码 为相同条码值的次数是否大于次数门限值 6, 如果是, 则进入步骤 703, 否则进 入步骤 708。
在步骤 708认为解码得到的条码值不可信后, 在步骤 71 1保留该条码值, 返回步骤 200继续进行条码识别, 在解码得到所述条码的另一个条码值后, 继 续进行解码验证。
在经过上述条码验证后, 降低虚警率 (false alarm ratio), 同时保证了条码的 检测率。
需要注意的是, 图 16示出的解码验证方法 700是一种较佳的实施方式,在 其他实施方式中, 还可以进行一些改动。 比如, 不设置步骤 706, 而直接将步 骤 704的否分支引导至步骤 708。 再比如, 只设置两个总相似度门限值和一个 单相似度门限值, 也就是说, 删除步骤 706和 707。
本发明中的线性条码识别方案也可以实现为一种系统, 图 17为本发明中的 线性条码识别系统 2在一个实施例中的结构示意图。如图 17所示, 所述线性条 码识别系统 2包括摄像模块 10、 图像预处理模块 20、 条码检测模块 30、 条码 定位模块 40、 模糊度估计模块 50、 条码解码模块 60和解码验证模块 70。
所述摄像模块 10获取连续的视频图像。 所述图像预处理模块 20对所述视 频图像进行预处理得到固定尺寸的灰度图像。所述条码检测模块 30用于在灰度 图像中进行条码检测。所述条码定位模块 40用于在灰度图像中定位条码的左右 边界。 所述模糊度估计模块 50用于估计所述图像的模糊度。 所述条码解码模块 60 根据估计的模糊度从若干基准特征矢量集中选择对应的一个基准特征矢量 集, 基于所述条码的边界从图像中提取所述条码的所有观测条码数据符对应的 一组测试特征矢量, 以及利用提取的测试特征矢量和选择的基准特征矢量集解 码得到所述条码的条码值, 其中每一个基准特征矢量集对应一个模糊度并包括 若干基准特征矢量。 所述解码验证模块 70确定所述解码模块 60解码得到的所 述条码的条码值是否可信, 即进行进一步的解码验证。
图 18为本发明中的条码检测模块 30在一个实施例中的结构示意图。 如图 18所示, 所述条码检测模块 30包括条形区域探测单元 31和条码探测单元 32。
所述条形区域探测单元 31在图像中搜索至少两个条形区域, 并确定每个条 形区域的端点。所述条码探测单元 32基于搜索到的各个条形区域的端点确定搜 索到的各个条形区域是否属于一个条码。
在一个实施例中, 所述条形区域探测单元 31在图像中搜索一个条形区域的 过程包括: 在图像中设定查找区域和停止区域; 在所述查找区域内选定一行像 素点; 在选定的一行像素点中选定一个黑色像素点作为初始黑色像素点并记录 该初始黑色像素点的坐标; 从初始黑色像素点开始依次搜索其它黑色像素点, 直到不能找到连续的黑色像素点, 记录搜索到的黑色像素的坐标; 将所记录的 黑色像素点的坐标进行曲线拟合得到第一曲线; 基于该曲线确定是否找到了一 个找到了一个条形区域, 并将所记录的最外侧的黑色像素点作为找到的条形区 域的端点。
所述黑色像素点搜索过程包括: 将所述初始黑色像素点记录为当前黑色像 素点; 从当前黑色像素点的上方或下方的三个像素点中找到灰度值最小的一个; 确定该找到的像素点是否为黑色像素点; 如果该找到的像素点为黑色像素点, 那么将该找到的像素点作为所述当前黑色像素点以继续搜索下一黑色像素点。
优选的, 所述条形区域探测单元 31统计该第一曲线在各黑色像素点附近的 曲率以及各黑色像素点到该第一曲线的距离; 如果所述曲率小于第一曲率门限 值且所有的距离不超过第一距离门限值, 则认为该黑色区域是一个条形区域, 否则认为该黑色区域不是一个条形区域。
所述条码探测单元 32计算搜索到的各条形区域的方向的差异; 将搜索到的 各条形区域的同侧的端点的坐标进行曲线拟合得到第二曲线; 基于各条形区域 的方向的差异和 /或所述第二曲线确定搜索到的各个条形区域是否属于一个条 码。优选的,所述条码探测单元 32统计该第二曲线在这些同侧端点附近的曲率, 以及统计这些同侧端点到该第二曲线的距离; 如果该曲率小于一个第二曲率门 限值, 各条形区域的方向的差异不超过一个第二角度门限值, 各条形区域的同 侧的端点和利用该侧端点拟合的第二曲线之间的距离不超过一个第二距离门限 值, 则认定各个条形区域属于一个条码, 否则认定各个条形区域不属于一个条 码。
图 19为本发明中的条码定位模块 40在一个实施例中的结构示意图。 如图 19所示, 所述条码定位模块 40包括边界点搜索单元 41 和边界确定单元 42。 所述边界点搜索单元 41在图像中搜索至少两个左边界点和至少两个右边界点。 所述边界确定单元 42分别基于搜索到的左右边界点确定条码的左右边界。
在一个实施例中, 在图像中设定搜索区域, 所述边界点搜索单元 41在所述 搜索区域内进行搜索边界点。
所述边界点搜索单元 41搜索到一个边界点的过程包括: 从搜索区域中选取 一行像素点, 将预定像素宽度的滑动窗口从该行像素点的第一端开始朝向第二 端逐像素进行移动, 所述第一端可以是左端和右端中的一个, 第二端是左端和 右端中的另一个; 根据在每个移动位置的滑动窗口的左侧像素和右侧像素的灰 度值差异找到第一边界区域; 在所述第一边界区域内找到多个平坦像素和多个 跟随所述平坦像素的变动像素; 根据所述平坦像素拟合第一直线, 根据所述变 动像素拟合第二直线; 计算第一直线和第二直线的交点, 并将所述交点的横坐 标作为该行像素的一个第一边界点的横坐标。 其中如果所述选取行像素的第一 端是左端, 那么第一边界点就是左边界点, 如果所述选取行像素的第二端是右 端, 那么第一边界点就是右边界点。
所述边界确定单元 42将搜索到的同侧边界点拟合成一条曲线; 根据搜索到 的同侧边界点到其拟合的曲线的距离判断是否有非法边界点, 如果一个同侧边 界点到其拟合的曲线的距离大于预定距离门限, 则认为该同侧边界点为非法边 界点; 如果有, 则去除非法边界点, 并对剩余的同侧边界点再次拟合成一条曲 线, 并根据该曲线确定边界。
在一个实施例中, 所述模糊度估计模块 50统计条形区域和背景区域之间的 过度区域附近的像素点的灰度值, 利用统计到的像素点的灰度值统计相邻像素 点的灰度值差异, 将统计的相邻像素点的灰度值差异与预定灰度值差异门限值 进行对比来判定所述过渡区域和所述背景区域的第一过度边界以及所述过渡区 域与所述条形区域的第二过度边界, 计算所述过度区域的两个过度边界之间的 宽度, 以及基于所述过度区域的宽度确定所述模糊度。
图 20为本发明中的条码解码模块 60在一个实施例中的结构示意图。 如图 20所示, 所述条码解码装置 60包括基准特征矢量集选定单元 61、 测试特征矢 量提取单元 62和解码单元 63。
所述基准特征矢量集选定单元 61根据所述模糊度从若干基准特征矢量集中 选择对应的一个基准特征矢量集, 每一个基准特征矢量集对应一个模糊度范围 并包括若干基准特征矢量。所述测试特征矢量提取单元 62从图像中提取条码的 观测条码数据符对应的一组测试特征矢量。所述解码单元 63利用提取的测试特 征矢量组和选择的基准特征矢量集解码得到所述条码的条码值。
在一个实施例中, 基于条码类型所定义的一个或若干个标准条码数据符和 一个模糊度生成对应该模糊度的基准特征矢量集中的一个基准特征矢量。
在一个实施例中, 所述测试特征矢量提取单元 62根据所述条码的边界确定 所述条码的各个观测条码数据符的位置, 根据所述条码的各个观测条码数据符 的位置从图像中提取灰度信息, 并基于提取的灰度信息生成所述测试特征矢量 组, 所述测试特征矢量组由多个测试特征矢量组成。
在一个实施例中, 所述解码单元 63将测试特征矢量组和其在选择的基准特 征矢量集中对应的若干基准特征矢量组进行相似度比较, 确定和所述测试特征 矢量组总相似度最高的基准特征矢量组, 根据总相似度最高的基准特征矢量组 确定所述条码的条码值,
所述测试特征矢量组为所述条码的所有条码数据符对应的测试特征矢量的 组合, 所述基准特征矢量组是选定的基准特征矢量集中的若干基准特征矢量的 组合, 基于所述测试特征矢量组中的测试特征矢量和所述基准特征矢量组中的 基准特征矢量的单相似度来确定所述测试特征矢量组和所述基准特征矢量组的 总相似度。
所述解码验证模块 70根据最高总相似度以及总相似度最高的基准特征矢量 组中的各基准特征矢量与各测试特征矢量的单相似度判定解码得到的所述条码 的条码值是否可信。
具体的, 所述解码验证模块 70在所述最高总相似度大于第一相似度门限值 时, 则认为解码得到的所述条码的条码值可信; 在所述最高总相似度小于第一 相似度门限值大于第二相似度门限值且最小单相似度大于第四相似度门限值 时, 则认为解码得到的所述条码的条码值可信; 在所述最高总相似度小于第三 相似度门限值时, 则认为解码得到的所述条码的条码值不可信; 在所述最高总 相似度大于第三相似度门限值小于第二相似度门限值且最小单相似度小于第五 相似度门限值时, 则认为解码得到的所述条码的条码值不可信; 在所述最高总 相似度小于第一相似度门限值大于第二相似度门限值且最小单相似度小于第四 相似度门限值大于第五相似度门限值时, 或在所述最高总相似度小于第二相似 度门限值大于第三相似度门限值且最小单相似度大于第五相似度门限值时, 确 定解码为相同条码值的次数是否大于次数门限, 如果是, 则认为解码得到的所 述条码的条码值可信, 否则, 则认为解码得到的所述条码的条码值不可信; 在 确定所述条码的条码值不可信时, 保存解码得到的所述条码的条码值。
关于各个模块的更为详细介绍也可参考前文方法部分的相应章节, 此处不 再赘述。 比如, 关于条码检测模块 30的更为详细介绍也可参考前文方法部分的 条码检测的章节。
上文对本发明进行了足够详细的具有一定特殊性的描述。 所属领域内的普 通技术人员应该理解, 实施例中的描述仅仅是示例性的, 在不偏离本发明的真 实精神和范围的前提下做出所有改变都应该属于本发明的保护范围。 本发明所 要求保护的范围是由所述的权利要求书进行限定的, 而不是由实施例中的上述 描述来限定的。

Claims

权利要求书
1、 一种线性条码识别方法, 其特征在于, 其包括:
获取图像;
在所述图像中进行条码检测;
在所述图像中进行条码定位以确定条码的边界;
估计所述图像的模糊度;
根据估计的模糊度从若干基准特征矢量集中选择对应的一个基准特征矢量 集, 每一个基准特征矢量集对应一个模糊度并包括若干基准特征矢量;
基于所述条码的边界从图像中提取所述条码的所有观测条码数据符对应的 一组测试特征矢量; 和
利用提取的测试特征矢量组和选择的基准特征矢量集解码得到所述条码的 条码值。
2、 根据权利要求 1所述的线性条码识别方法, 其特征在于, 在所述图像中 进行条码检测包括:
在图像中搜索至少两个条形区域, 并确定每个条形区域的端点; 和 基于搜索到的各个条形区域的端点确定搜索到的各个条形区域是否属于一 个条码, 如果搜索到的各个条形区域属于一个条码, 则判定所述图像中包含有 条码。
3、 根据权利要求 2所述的线性条码识别方法, 其特征在于, 所述在图像中 搜索至少两个条形区域, 并确定每个条形区域的端点包括:
选定一行像素点;
在选定的一行像素点中选定一个黑色像素点作为初始黑色像素点并记录该 初始黑色像素点的坐标;
从初始黑色像素点开始依次搜索其它黑色像素点, 直到不能找到连续的黑 色像素点, 记录搜索到的黑色像素的坐标;
将所记录的黑色像素点的坐标进行曲线拟合得到一曲线; 和
基于该曲线确定是否找到了一个找到了一个条形区域, 并将所记录的最外 侧的黑色像素点作为找到的条形区域的端点。
4、 根据权利要求 3所述的线性条码识别方法, 其特征在于, 所述从初始黑 色像素点开始依次搜索其它黑色像素点, 直到不能找到连续的黑色像素点包括: 将所述初始黑色像素点记录为当前黑色像素点;
从当前黑色像素点的上方或下方的三个像素点中找到灰度值最小的一个; 确定该找到的像素点是否为黑色像素点; 和
如果该找到的像素点为黑色像素点, 那么将该找到的像素点作为所述当前 黑色像素点以继续搜索下一黑色像素点。
5、 根据权利要求 1所述的线性条码识别方法, 其特征在于, 在所述图像中 进行条码定位以确定所述条码的边界包括:
在图像中搜索至少两个左边界点和至少两个右边界点; 和
分别基于搜索到的左右边界点确定条码的左右边界。
6、 根据权利要求 5所述的线性条码识别方法, 其特征在于, 所述在图像中 搜索至少两个左边界点和至少两个右边界点包括:
选取一行像素点;
将预定像素宽度的滑动窗口从该行像素点的第一端开始朝向第二端逐像素 进行移动;
根据在每个移动位置的滑动窗口的左侧像素点和右侧像素点的灰度值差异 找到第一边界区域;
通过计算第一边界区域内的相邻像素点的灰度值差异在所述第一边界区域 内找到多个连续的平坦像素点和跟随所述平坦像素点的多个连续的变动像素 点;
根据所述平坦像素点拟合第一直线, 根据所述变动像素点拟合第二直线; 计算第一直线和第二直线的交点, 并将所述交点的横坐标作为该行像素点 的一个第一边界点的横坐标,
其中如果所述选取行像素的第一端是左端, 那么第一边界点就是左边界点, 如果所述选取行像素的第二端是右端, 那么第一边界点就是右边界点。
7、 根据权利要求 1所述的线性条码识别方法, 其特征在于, 估计所述图像 的模糊度包括:
统计条形区域和背景区域之间的过度区域附近的像素点的灰度值; 利用统计到的像素点的灰度值统计相邻像素点的灰度值差异;
将统计的相邻像素点的灰度值差异与预定灰度值差异门限值进行对比来判 定所述过渡区域和所述背景区域的第一过度边界以及所述过渡区域与所述条形 区域的第二过度边界;
计算所述过度区域的两个过度边界之间的宽度; 和
基于所述过度区域的宽度确定所述模糊度。
8、 根据权利要求 1所述的线性条码识别方法, 其特征在于, 基于条码类型 所定义的一个或若干个标准条码数据符和一个模糊度生成对应该模糊度的基准 特征矢量集中的一个基准特征矢量。
9、 根据权利要求 1所述的线性条码识别方法, 其特征在于, 所述基于所述 条码的边界从图像中提取所述条码的所有观测条码数据符对应的一组测试特征 矢量包括:
根据所述条码的边界确定所述条码的各个观测条码数据符的位置; 根据所述条码的各个观测条码数据符的位置从图像中提取灰度信息, 并基 于提取的灰度信息生成所述测试特征矢量组, 所述测试特征矢量组由多个测试 特征矢量组成。
1 0、 根据权利要求 9所述的线性条码识别方法, 其特征在于, 所述根据所 述条码的边界确定所述条码的各个观测条码数据符的位置还包括:
根据所述模糊度和所述条码的边界确定测试范围;
在测试范围内依次确定所述条码的合法位置; 和
基于确定的所述条码的合法位置确定所述条码的各个观测条码数据符的位 置。
1 1、 根据权利要求 1 所述的线性条码识别方法, 其特征在于, 所述利用提 取的测试特征矢量组和选择的基准特征矢量集解码得到所述条码的条码值包 括:
将测试特征矢量组和其在选择的基准特征矢量集中对应的若干基准特征矢 量组进行相似度比较, 所述基准特征矢量组是选定的基准特征矢量集中的若干 基准特征矢量的组合;
确定和所述测试特征矢量组总相似度最高的基准特征矢量组; 和
根据总相似度最高的基准特征矢量组确定所述条码的条码值。
12、 根据权利要求 1 1所述的线性条码识别方法, 其特征在于, 基于所述测 试特征矢量组中的测试特征矢量和所述基准特征矢量组中的基准特征矢量的单 相似度来确定所述测试特征矢量组和所述基准特征矢量组的总相似度。
13、根据权利要求 12所述的线性条码识别方法,其特征在于,其还包括有: 根据最高总相似度以及总相似度最高的基准特征矢量组中的各基准特征矢 量与各测试特征矢量的单相似度判定解码得到的所述条码的条码值是否可信。
14、 根据权利要求 13所述的线性条码识别方法, 其特征在于, 根据最高总 相似度以及总相似度最高的基准特征矢量组中的各基准特征矢量与各测试特征 矢量的单相似度判定解码得到的所述条码的条码值是否可信包括:
在所述最高总相似度大于第一相似度门限值时, 则认为解码得到的所述条 码的条码值可信;
在所述最高总相似度小于第一相似度门限值大于第二相似度门限值且最小 单相似度大于第四相似度门限值时, 则认为解码得到的所述条码的条码值可信。
15、 根据权利要求 14所述的线性条码识别方法, 其特征在于, 所述根据最 高总相似度以及总相似度最高的基准特征矢量组中的各基准特征矢量与各测试 特征矢量的单相似度判定解码得到的所述条码的条码值是否可信还包括:
在所述最高总相似度小于第三相似度门限值时, 则认为解码得到的所述条 码的条码值不可信;
在所述最高总相似度大于第三相似度门限值小于第二相似度门限值且最小 单相似度小于第五相似度门限值时, 则认为解码得到的所述条码的条码值不可 信;
在所述最高总相似度小于第一相似度门限值大于第二相似度门限值且最小 单相似度小于第四相似度门限值大于第五相似度门限值时, 或在所述最高总相 似度小于第二相似度门限值大于第三相似度门限值且最小单相似度大于第五相 似度门限值时, 确定解码为相同条码值的次数是否大于次数门限, 如果是, 则 认为解码得到的所述条码的条码值可信, 否则, 则认为解码得到的所述条码的 条码值不可信;
在确定所述条码的条码值不可信时, 保存解码得到的所述条码的条码值。
1 6、 一种线性条码识别系统, 其特征在于, 其包括:
摄像模块, 用于获取图像;
条码检测模块, 用于在所述图像中进行条码检测;
条码定位模块, 用于在所述图像中进行条码定位以确定所述条码的边界; 模糊度估计模块, 用于估计所述图像的模糊度;
条码解码模块, 用于根据估计的模糊度从若干基准特征矢量集中选择对应 的一个基准特征矢量集, 基于所述条码的边界从图像中提取所述条码的所有观 测条码数据符对应的一组测试特征矢量, 以及利用提取的测试特征矢量组和选 择的基准特征矢量集解码得到所述条码的条码值, 其中每一个基准特征矢量集 对应一个模糊度并包括若干基准特征矢量。
1 7、 根据权利要求 1 6所述的线性条码识别系统, 其特征在于, 所述条码检 测模块包括条形区域探测单元和条码探测单元, 所述条形区域探测单元在图像 中搜索至少两个条形区域, 并确定每个条形区域的端点; 所述条码探测单元基 于搜索到的各个条形区域的端点确定搜索到的各个条形区域是否属于一个条 码, 如果搜索到的各个条形区域属于一个条码, 则判定所述图像中包含有条码, 所述条形区域探测单元在图像中搜索一个条形区域的过程包括: 选定一行 像素点; 在选定的一行像素点中选定一个黑色像素点作为初始黑色像素点并记 录该初始黑色像素点的坐标; 从初始黑色像素点开始依次搜索其它黑色像素点, 直到不能找到连续的黑色像素点, 记录搜索到的黑色像素的坐标; 将所记录的 黑色像素点的坐标进行曲线拟合得到一曲线; 以及, 基于该曲线确定是否找到 了一个找到了一个条形区域, 并将所记录的最外侧的黑色像素点作为找到的条 形区域的端点。
18、 根据权利要求 1 6所述的线性条码识别系统, 其特征在于, 所述条码定 位模块包括边界点搜索单元和边界确定单元, 所述边界点搜索单元在图像中搜 索至少两个左边界点和至少两个右边界点; 所述边界确定单元分别基于搜索到 的左右边界点确定条码的左右边界,
所述边界点搜索单元搜索到一个边界点的过程包括: 选取一行像素点; 将 预定像素宽度的滑动窗口从该行像素点的第一端开始朝向第二端逐像素进行移 动; 根据在每个移动位置的滑动窗口的左侧像素和右侧像素的灰度值差异找到 第一边界区域; 在所述第一边界区域内找到多个平坦像素和多个跟随所述平坦 像素的变动像素; 根据所述平坦像素拟合第一直线, 根据所述变动像素拟合第 二直线; 计算第一直线和第二直线的交点, 并将所述交点的横坐标作为该行像 素的一个第一边界点的横坐标, 其中如果所述选取行像素的第一端是左端, 那 么第一边界点就是左边界点, 如果所述选取行像素的第二端是右端, 那么第一 边界点就是右边界点。
19、 根据权利要求 1 6所述的线性条码识别系统, 其特征在于, 所述模糊度 估计模块统计条形区域和背景区域之间的过度区域附近的像素点的灰度值, 利 用统计到的像素点的灰度值统计相邻像素点的灰度值差异, 将统计的相邻像素 点的灰度值差异与预定灰度值差异门限值进行对比来判定所述过渡区域和所述 背景区域的第一过度边界以及所述过渡区域与所述条形区域的第二过度边界, 计算所述过度区域的两个过度边界之间的宽度, 以及基于所述过度区域的宽度 确定所述模糊度。
20、 根据权利要求 1 6所述的线性条码识别系统, 其特征在于, 基于条码类 型所定义的一个或若干个标准条码数据符和一个模糊度生成对应模糊度的基准 特征矢量集的一个基准特征矢量。
21、 根据权利要求 1 6所述的线性条码识别系统, 其特征在于, 所述条码解 码模块将测试特征矢量组和其在选择的基准特征矢量集中对应的若干基准特征 矢量组进行相似度比较, 所述测试特征矢量组为所述条码的所有条码数据符对 应的测试特征矢量的组合, 所述基准特征矢量组是选定的基准特征矢量集中的 若干基准特征矢量的组合, 确定和所述测试特征矢量组总相似度最高的基准特 征矢量组, 根据总相似度最高的基准特征矢量组确定所述条码的条码值,
其中基于所述测试特征矢量组中的测试特征矢量和所述基准特征矢量组中 的基准特征矢量的单相似度来确定所述测试特征矢量组和所述基准特征矢量组 的总相似度。
22、 根据权利要求 21所述的线性条码识别系统, 其特征在于, 其还包括解 码验证模块,
所述解码验证模块根据最高总相似度以及总相似度最高的基准特征矢量组 中的各基准特征矢量与各测试特征矢量的单相似度判定解码得到的所述条码的 条码值是否可信。
PCT/CN2012/082511 2011-09-30 2012-09-29 线性条码识别方法和系统 WO2013044875A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110291479.5A CN103034831B (zh) 2011-09-30 2011-09-30 线性条码识别方法和系统
CN201110291479.5 2011-09-30

Publications (1)

Publication Number Publication Date
WO2013044875A1 true WO2013044875A1 (zh) 2013-04-04

Family

ID=47994289

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/082511 WO2013044875A1 (zh) 2011-09-30 2012-09-29 线性条码识别方法和系统

Country Status (2)

Country Link
CN (1) CN103034831B (zh)
WO (1) WO2013044875A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484639A (zh) * 2014-12-30 2015-04-01 北京慧眼智行科技有限公司 一种解码方法及解码系统
CN112950540A (zh) * 2021-02-01 2021-06-11 联宝(合肥)电子科技有限公司 一种条码识别方法及设备
CN112990192A (zh) * 2021-02-04 2021-06-18 西安理工大学 一种数字水准仪的条码标尺图像定位和识别检测方法
CN113129305A (zh) * 2021-05-18 2021-07-16 浙江大华技术股份有限公司 丝锭状态的确定方法、装置、存储介质及电子装置
CN116385742A (zh) * 2023-03-20 2023-07-04 北京兆讯恒达技术有限公司 一种低质量条码图像信号提取方法和装置
CN116958124A (zh) * 2023-09-12 2023-10-27 地立(苏州)智能装备有限公司 一种自动包装机异常监测系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239909B (zh) * 2014-08-11 2018-03-16 北京捷通华声语音技术有限公司 一种图像的识别方法和装置
CN104361312B (zh) * 2014-10-16 2017-11-14 北京捷通华声语音技术有限公司 一种对图像进行字符识别的方法和装置
JP6607122B2 (ja) * 2016-03-30 2019-11-20 ブラザー工業株式会社 画像解析装置
CN106874818B (zh) 2016-08-30 2019-11-22 阿里巴巴集团控股有限公司 一种数字对象唯一标识符doi识别方法与装置
CN108073848B (zh) * 2016-11-07 2021-03-12 斑马智行网络(香港)有限公司 一种条码识别方法、设备和装置
CN108073847B (zh) * 2016-11-07 2021-09-07 斑马智行网络(香港)有限公司 对条码进行定位的方法、设备和装置
CN109948393B (zh) * 2019-03-22 2022-04-26 凌云光技术股份有限公司 一种一维条码的定位方法及装置
CN110659529B (zh) * 2019-09-03 2023-06-02 珠海市杰理科技股份有限公司 条形码识别方法、装置、计算机设备和存储介质
CN111476050B (zh) * 2020-04-02 2023-10-10 北京致胜宏达科技有限公司 一种条码识别方法、装置、电子设备及存储介质
CN111476054B (zh) * 2020-05-07 2022-03-08 浙江华睿科技股份有限公司 解码方法及电子设备
CN113139399B (zh) * 2021-05-13 2024-04-12 阳光电源股份有限公司 一种图像线框识别方法及服务器
CN114549423A (zh) * 2022-01-26 2022-05-27 环旭电子股份有限公司 一种标签完整度自适应检测方法及系统
CN116842977B (zh) * 2023-08-31 2023-11-17 中科微至科技股份有限公司 条形码识别方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412196A (en) * 1994-04-01 1995-05-02 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code images using multi-order feature vectors
CN100375104C (zh) * 2004-04-16 2008-03-12 广州市瀚迪科技开发有限公司 一种一维条码解码方法
CN100458827C (zh) * 2002-12-17 2009-02-04 夏普株式会社 条形码识别装置
CN101901328A (zh) * 2009-05-29 2010-12-01 株式会社东芝 条形码处理装置及条形码处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412196A (en) * 1994-04-01 1995-05-02 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code images using multi-order feature vectors
CN100458827C (zh) * 2002-12-17 2009-02-04 夏普株式会社 条形码识别装置
CN100375104C (zh) * 2004-04-16 2008-03-12 广州市瀚迪科技开发有限公司 一种一维条码解码方法
CN101901328A (zh) * 2009-05-29 2010-12-01 株式会社东芝 条形码处理装置及条形码处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CAO, LIJUAN ET AL.: "Application of subpixel in one dimensional barcode", INFORMATION & COMMUNICATIONS, June 2011 (2011-06-01), pages 71 - 72 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484639A (zh) * 2014-12-30 2015-04-01 北京慧眼智行科技有限公司 一种解码方法及解码系统
CN112950540A (zh) * 2021-02-01 2021-06-11 联宝(合肥)电子科技有限公司 一种条码识别方法及设备
CN112950540B (zh) * 2021-02-01 2022-04-15 联宝(合肥)电子科技有限公司 一种条码识别方法及设备
CN112990192A (zh) * 2021-02-04 2021-06-18 西安理工大学 一种数字水准仪的条码标尺图像定位和识别检测方法
CN112990192B (zh) * 2021-02-04 2024-02-02 西安理工大学 一种数字水准仪的条码标尺图像定位和识别检测方法
CN113129305A (zh) * 2021-05-18 2021-07-16 浙江大华技术股份有限公司 丝锭状态的确定方法、装置、存储介质及电子装置
CN116385742A (zh) * 2023-03-20 2023-07-04 北京兆讯恒达技术有限公司 一种低质量条码图像信号提取方法和装置
CN116385742B (zh) * 2023-03-20 2024-04-12 北京兆讯恒达技术有限公司 一种低质量条码图像信号提取方法和装置
CN116958124A (zh) * 2023-09-12 2023-10-27 地立(苏州)智能装备有限公司 一种自动包装机异常监测系统
CN116958124B (zh) * 2023-09-12 2023-12-26 地立(苏州)智能装备有限公司 一种自动包装机异常监测系统

Also Published As

Publication number Publication date
CN103034831A (zh) 2013-04-10
CN103034831B (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
WO2013044875A1 (zh) 线性条码识别方法和系统
US7172124B2 (en) Camera-based barcode recognition
Gallo et al. Reading 1D barcodes with mobile phones using deformable templates
US8439260B2 (en) Real-time barcode recognition using general cameras
Liu et al. Recognition of QR Code with mobile phones
US8774453B2 (en) Method and arrangement for retrieving information comprised in a barcode
JP4301775B2 (ja) 2次元コード読み取り装置,2次元コード読み取り方法,2次元コード読み取りプログラム及び該プログラムの記録媒体
US8240571B2 (en) Barcode image recognition system and associated method for hand-held device
US7380718B2 (en) Method for reading out symbol information and device for reading out symbol information
US7636483B2 (en) Code type determining method and code boundary detecting method
JP4911340B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
JP5334042B2 (ja) 文字列認識方法及び文字列認識装置
US7273177B2 (en) Camera-based barcode recognition
EP2921997A1 (en) Two-dimensional code
JPH1063772A (ja) データマトリックスシンボルを有する機械読取り可能なシンボルを探し、デコードするための方法及び装置
US20190102590A1 (en) System and method for detecting optical codes with damaged or incomplete finder patterns
CN103336938A (zh) 一种基于一维条形码图像的识别方法
US20190349572A1 (en) Image processing apparatus, image processing method, and program
CN110765795A (zh) 二维码识别方法、装置及电子设备
CN103034830B (zh) 条码解码方法及装置
KR100726473B1 (ko) 이미지 분별 장치 및 그 방법
JP4163406B2 (ja) バーコード認識装置
JP5121685B2 (ja) バーコード読取装置、バーコード読取プログラム、バーコード読取方法
Liang et al. Real time recognition of 2D bar codes in complex image conditions
Yin et al. A multi-stage strategy to perspective rectification for mobile phone camera-based document images

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12835012

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC

122 Ep: pct application non-entry in european phase

Ref document number: 12835012

Country of ref document: EP

Kind code of ref document: A1