CN112446225B - 光学代码的模块尺寸的确定 - Google Patents
光学代码的模块尺寸的确定 Download PDFInfo
- Publication number
- CN112446225B CN112446225B CN202010842304.8A CN202010842304A CN112446225B CN 112446225 B CN112446225 B CN 112446225B CN 202010842304 A CN202010842304 A CN 202010842304A CN 112446225 B CN112446225 B CN 112446225B
- Authority
- CN
- China
- Prior art keywords
- module size
- code
- module
- optical code
- gray value
- 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.)
- Active
Links
- 230000003287 optical effect Effects 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000011156 evaluation Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 2
- 230000007704 transition Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 5
- 230000002902 bimodal effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000001454 recorded image Methods 0.000 description 2
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- 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/1452—Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
-
- 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
-
- 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/1413—1D 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/10544—Methods 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
- G06K7/10821—Methods 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 further details of bar or optical code scanning devices
- G06K7/1098—Methods 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 further details of bar or optical code scanning devices the scanning arrangement having a modular construction
-
- 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
-
- 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/146—Methods for optical code recognition the method including quality enhancement steps
-
- 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
- G06K2007/10504—Data fields affixed to objects or articles
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Artificial Intelligence (AREA)
- Toxicology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
- Facsimile Image Signal Circuits (AREA)
- Character Input (AREA)
Abstract
本申请涉及光学代码的模块尺寸的确定。给出了一种用于确定光学代码(20)的模块尺寸的方法,在该方法中记录带有光学代码(20)的图像数据,并根据图像数据确定亮度分布,特别是灰度值直方图。在此,根据亮度分布来确定模块尺寸。
Description
本发明涉及光学代码的模块尺寸的确定以及读码器。
读码器由超市收银台、自动包裹识别、邮件分拣、机场行李处理和其他物流应用所熟知。在扫码器中,借助旋转反射镜或多面反射镜轮将读取光束横向引导穿过代码。基于相机的读码器借助图像传感器记录其上有代码的对象的图像,并且图像分析软件从这些图像中提取代码信息。基于相机的读码器可以轻松地应对一维条形码以外的其他代码类型,这些其他代码类型与矩阵码一样也被构造成二维的并提供更多信息。
在重要的应用组中,携带代码的对象被输送经过读码器。在此,扫码器检测分别被依次引导到其读取区域中的代码。可替代地,在基于相机的读码器中,线扫描相机连续且逐行地通过相对运动读入具有代码信息的对象图像。通过二维图像传感器有规律地记录图像数据,这些图像数据根据记录频率和输送速度或多或少重叠。为了使对象可以以任意取向布置在传送带上,通常在读取隧道上设置多个读码器,以便从多个或所有侧面记录对象。
光学代码的特征参数是模块尺寸。模块是代码中最小的元素,并且代码元素或字符由一个或更多个模块组成。模块尺寸是衡量模块范围的度量,并且用每模块像素(ppm)表示。因此,条形码中的条具有对应于一倍或多倍模块尺寸的宽度,类似地,这也适用于二维码中暗场或亮场的两个维度。大的模块尺寸意味着代码高分辨率地记录在图像数据或灰度值曲线中。因此,模块尺寸越小,解码的难度就越大,特别是当模块尺寸达到两个ppm甚至更小的范围时。
如果解码器早在开始时就能知道良好的估计,特别是在模块尺寸较小的情况下,将是有利的。随后,可以采取措施来读取分辨率差的代码。示例是所谓的超分辨率。这指的是将多个低分辨率的图像合成一个高分辨率的图像的方法。相反,对于在模块尺寸大的情况下以高分辨率检测到的代码,也许可以省去复杂的解码方法。
但事实上,在传统的方法中,只有在解码成功后才会知道模块尺寸。然后才清楚代码包含哪些字符,然后基于图像数据中代码的总尺寸,可以非常准确地计算出模块尺寸。例如,在条形码时,基于这些字符来确定起始图案和终止图案之间的模块总数,并将以像素为单位的代码范围除以该总数。因此,模块尺寸是解码的结果,而不是对解码的支持。
原则上,模块尺寸不过是记录的灰度值曲线的两个边缘之间的最小间距。这种边缘,即亮代码元素和暗代码元素之间的过渡,可以通过灰度值曲线的导数中的极值找到。然而,结果敏感地取决于如何精确地定位边缘位置。特别是在模块尺寸非常小的情况下,这一点变得困难,因为边缘位置最初只是离散的,因此不是以亚像素精度存在。此外,边缘位置容易受到噪声的影响。甚至原则上,纯基于边缘的方法是二值化方法,通过该二值化方法将原始的灰度值信息从有规律的8位甚至更多位减少到只有1位,并且这种信息损失也限制了确定模块尺寸的可能精度。
此外,在读码区域还已知的是,生成图像数据的灰度值直方图。然而,这被完全用于不同的目的,例如用于获得或模拟更均匀的照明或用于确定合适的二值化阈值。
因此,本发明的任务在于提出一种用于确定模块尺寸的改进的可能方案。
该任务通过用于确定光学代码的模块尺寸的方法以及读码器得以实现。光学代码可以是条形码,但是也可以是根据各种已知标准之一的二维码。生成图像数据,该图像数据包含代码,并且优选至少被粗略地分割,因此特定于代码区域。图像数据通常是用基于相机的读码器的图像传感器来记录,但术语图像数据中也包括条形码扫描器的强度曲线。从图像数据中生成强度分布或亮度分布。这通常是可能的亮度值的相对频率的函数,特别是以离散形式的灰度值直方图。因此,亮度分布可以通过在X轴上绘制可能的亮度或强度来表示,例如8位时,灰度值的范围是从0(表示黑色)到255(表示白色),并在Y轴上绘制相关的相对频率。在灰度值直方图中,灰度值是所谓的Bin,在其中对具有相应亮度值的像素进行计数。
本发明基于这一基本思路,即根据亮度分布确定模块尺寸。这是一种间接的方法,其中不测量代码的间距或代码中边缘之间的间距。而是利用了这一事实,即模块尺寸(特别是在模块尺寸较小的情况下)会影响图像数据中会出现哪些灰度值或灰度值是如何分布的,这在亮度分布中进行了研究。模块尺寸的确定可以比较粗略,只能测试模块尺寸是否在某一等级。然而,优选地是,实际上获得数值。
本发明的优点在于,可以实现简单且快速地计算出模块尺寸,这可以在图像处理链的很早阶段进行,特别是不需要成功解码。同时,在亚像素范围内也实现了高精度,例如,从2.0ppm直到0.6ppm的条形码,从2.5ppm到1.5ppm的二维码。这些都是现在可以解码的ppm范围,例如用超分辨率方法来解码的ppm范围。该方法也不是基于位置可靠的、高精度的边缘检测,并且使用来自表面的图像信息,而不仅仅是局部的图像信息。因此,对局部干扰或噪音有明显更强的鲁棒性。
优选地,模块尺寸根据亮度分布的中间范围来确定,而没有最亮区域和最暗区域。对于高分辨率的代码的图像数据,通常的期望是亮度分布应该是双模态(bimodal)的,其中亮代码区域应有侧峰值(seitlicher Peak),暗代码区域应有第二侧峰值。通常,这被用来对图像数据进行二值化,即把每个像素分类为亮或暗。在本实施方式中,亮度分布现在恰好被限于没有最清晰的亮像素和暗像素的过渡区域。因此,兴趣在于中间值,这些中间值通常从属于(untergehen)或分配给亮或暗两个等级中的一个。对于具有大模块尺寸的高分辨率记录的代码,该过渡区域几乎是平的。本发明已经认识到,对于小的模块尺寸,在过渡区域中形成或多或少额外的纤化(zerfasern)峰,根据纤化峰的特性可以重建模块尺寸。
在图像数据中,优选找出光学代码的边缘,并且仅通过边缘附近的图像数据形成亮度分布。因此,不是根据代码的图像数据的所有像素来确定亮度分布(原则上也可以),而是选择某些像素,即在边缘区域的某些像素。这并不需要对边缘进行特别位置可靠的定位,或者甚至是对边缘进行亚像素精度的定位,因为即使来自稍大环境的一些像素对亮度分布有贡献,在确定模块尺寸过程中最多会引起适度的误差。例如,如引言中所提到的,边缘可以被定位为灰度值曲线的导数的极值,那里的像素以及具有一定最大间距的像素可以用来确定亮度分布。由于对边缘周围环境的限制,较大的纯暗区域或纯亮区域不包括在亮度分布中,根据前段的讨论,这对根据本发明对模块尺寸进行估计贡献不大。对边缘的周围环境的考虑消除了定义阈值的需要,这些阈值被视为亮度分布边缘处的亮或暗,和被视为两者之间的灰度值的主要相关的过渡范围。
优选地,亮度分布特定于频率超过噪声阈值的有效区域。由此,消除了由于噪声影响而只暗示相应灰度值的某一频率且实际上根本不包含任何与确定模块尺寸有关的信息的亮度分布的区域。优选地,下面的标准和评估涉及有效区域,而不是整个亮度分布,即使在下面没有再特别提及。
优选地,模块尺寸根据亮度分布的宽度、积分和/或最大值来确定。利用这些特征,以易于确定和处理的变量来确定亮度分布的范围和特征,优选亮和暗之间的过渡区域的范围和特征。宽度对应于亮度分布中出现的最小灰度值和最大灰度值之间的差。亮度分布的积分和最大值用简单的方式描述了亮度分布的方法。优选地,根据高于噪声阈值的亮度分布的有效区域计算出宽度和积分,因此,与零稍有差异的频率不会使结果失真。根据以上变量可以计算出对模块尺寸的估计。例如,假设至少对于小的模块尺寸,模块尺寸与亮度分布的宽度,特别是亮度分布的有效区域的宽度呈线性关系,就已经取得了良好的结果。使用这种方法,只需要将宽度乘以比例因子就可以确定模块尺寸。
优选地,模块尺寸根据亮度分布的积分和宽度的商来确定。这特别容易计算,同时也被证明是计算模块尺寸的特别合适的基础。
优选地,该商用缩放函数映射到模块尺寸,特别是以每模块像素为单位。缩放函数一方面用于换算为所需的单位ppm,另一方面用于适应应用条件,在该应用条件下记录代码。例如,可以根据已经读取的、模块大小已知或者解码之后模块大小一定的代码进行校准或教导。为了简化起见,只使用一个缩放因子作为缩放函数,因为在特别感兴趣的、高达约2.5ppm的模块尺寸范围内,这足以获得良好的结果。
优选地,亮度分布在亮度分布的中心和两侧用不同的加权因子重新缩放。为此,例如,将加权函数与亮度分布逐点相乘,或进行数学上等效的重新缩放。正如已经常提到的那样,亮度分布的侧向区域是由于代码的平坦区域的亮暗像素所致,而模块尺寸则是根据侧向区域之间的过渡区域的灰度值来估计的。因此,通过加权因子人为地调整亮度分布并从而使某些部分权重较高或较低,这可能是有意义的。如果确定了亮度分布的积分,则优选在此之前进行重新缩放。
优选地,亮度分布的中心相对于两侧升高。因此,亮度分布在侧向上以小于1的权重重新缩放,在中心则以大于1的权重重新缩放。通过这种方式,使亮度分布的中间区域获得影响。如果亮度分布已经只基于边缘的周围环境,那么通过新的加权来进一步增强忽略亮区域和暗区域的期望效果。
优选地,亮度分布分为左侧、中心和右侧三部分,并对三部分分别使用加权因子进行重新缩放。这是对亮度分布的侧面进行不同于其中心的加权的一种特殊且简单的实现。优选地,平均分成三部分。优选地,左右两侧的加权因子彼此相等。
优选地,在确定模块尺寸后读取光学代码。因此,确定模块尺寸是图像处理中用于读取代码的早期步骤,并且不能依靠解码的结果。为了在解码后确定模块尺寸,如引言所述,也可以使用不基于亮度分布的非常精确的常规的可替代方法。
相反,优选使用基于模块尺寸选择的和/或由模块尺寸参数化的解码方法来读取代码。因此,模块尺寸是参数,该参数在解码过程中可以使用,并可能已经用于代码区域的精细分段。首先通过事先知道模块尺寸,可以支持、简化、加速、改进解码或者甚至使解码成为可能。示例是超分辨率,即从几组较低分辨率的图像数据中生成较高分辨率的图像数据。模块尺寸可以指示哪些代码需要超级分辨率。此外,模块尺寸也是超分辨率算法的非常有用的参数。另一个示例是认识到,由于模块尺寸太小,现有的解码方法根本无法实现解码。目前,条形码的实际极限是0.6ppm。直接根据模块尺寸将代码分类为不可读,而不用费尽心思让各种复杂的解码方法失败,这节省了资源。
优选地,将所确定的模块尺寸与极限值进行比较,以便根据模块尺寸超过或低于极限值来使用解码方法或解码方法的模块。在一定程度上,这是根据前述的离散考虑,其中不使用模块尺寸的数值,而是仅根据开关的类型比较模块尺寸属于哪一类,优选属于小的模块尺寸和大的模块尺寸类型中的一类。这两类之间的界线优选在1~3ppm的范围内,甚至更优选在1.5~2.5ppm之间。特别合适的极限值是条形码为2ppm,二维码为2.5ppm。例如,对于小的模块尺寸,采用超分辨率算法。此外,通常有多个解码器尝试读取代码,并且各个解码器的组成可以完全或部分取决于模块尺寸是否超过极限值。可以设想的是,并不是整个解码过程,而只是某些模块受到影响,根据模块尺寸低于或高于极限值,对这些模块进行不同的参数化或者完全使用或不使用。
根据本发明的用于读取光学代码的读码器具有用于记录带有代码的图像数据的图像传感器。可以是扫码器的光接收器、用于检测代码行的线扫描传感器、或者是通过组合图像行(Bildzeile)的平面代码图像、或矩阵传感器。也可以设想多个相机头,其图像被组合。用于读取代码的解码方法在控制和评估单元中实施,该控制和评估单元本身可以是条形码扫描器或基于相机的读码器的一部分,也可以作为控制设备连接在其上。在解码过程中,优选作为实际读取之前的早期步骤,控制和评估单元使用根据本发明的方法在所阐述的变型之一中确定模块尺寸。
控制和评估单元负责确定模块尺寸的部分可以设计成嵌入式系统。还可以设想的是,在图像传感器上,例如在相机头中,有FPGA,该FPGA利用根据本发明的方法分析所记录的图像作为很早的处理步骤,以便确定模块尺寸。如果相机只检测图像块,即读取区域的其中仅包含完全无法读取的代码片段的部分区域,那么这也将发挥作用。只有在组合了多个相机头的图像块(图像拼接)或多个依次记录的图像后,才会进行解码,而此时模块尺寸可能早已知晓,例如可以在拼接时考虑使用。
附图说明
下面还将示例性地基于实施方式并参考附图对本发明的其他特征和优点进行更详细的阐述。在附图中:
图1示出了示例性安装在传送带上方的读码器的示意性三维概览图,带有待读取的代码的对象在该传送带上被输送;
图2示出了灰度值曲线的示例;
图3示出了根据图2的灰度值曲线的导数的示图,以找出边缘;
图4示出了具有大的模块尺寸的代码的灰度值直方图的示例;
图5示出了具有小的模块尺寸的代码的灰度值直方图的示例;
图6示出了高于噪声阈值的灰度值直方图的有效区域的示图,说明了有效区域的积分和宽度;
图7示出了用于根据灰度值直方图来确定模块尺寸的示例性算法的流程图;以及
图8a-8e示出了不同模块尺寸的灰度值直方图的示例性示图。
图1示出了在优选的应用情况下安装在传送带12上方的光电读码器10,该传送带将对象14输送通过读码器10的检测区域18,如箭头16所示。对象14在其外表面上携带代码区域,该代码区域由读码器10检测和评估。这些代码区域只有在它们安装在上侧或至少从上方可见时才能被读码器10识别。因此,不同于图1中的示图,为了读取大致安装在侧面或下面的代码22可以从不同的方向安装多个读码器10,以便能够从所有方向实现所谓的全方位读取。在实践中,通常采用读取隧道的形式将多个读码器10布置成读取系统。在实践中,将读码器10固定应用在传送带上是非常普遍的。然而,本发明首先涉及读码器10本身或在其中实现的用于解码代码的方法,或者甚至更具体地说,涉及解码代码的预处理步骤,因此该示例不应被限制性地理解。
读码器10用图像传感器24检测被输送的对象14和代码区域的图像数据,这些图像数据由控制和评估单元26借助图像评估和解码方法进一步处理。对本发明而言,特定的成像方法并不重要,因此读码器10可以根据本身已知的任何原理来构造。例如,借助线形图像传感器或扫描方法一次只能检测一行,其中在后一种情况下,简单的光接收器(如光电二极管)作为图像传感器24就足够了。可以直接尝试从图像行中读取代码,或者控制和评估单元26将在传送运动过程中检测的行结合成图像数据。通过矩阵式图像传感器,已经可以在一次记录中检测到更大的区域,其中在这里也可以将输送方向和横向于输送方向的照片合并起来。多个照片依次和/或由多个读码器10拍摄,例如,这些读码器的检测区域18只共同覆盖传送带12的整个宽度,其中每个读码器10实际仅拍摄整个图像的一个图像块,这些图像块通过图像处理(拼接)合并。还可以设想的是,仅在各个图像块内进行碎片化解码,然后将代码碎片合并在一起。
读码器10的主要任务是,识别代码区域并读出安装在那里的代码。作为子步骤,优选尽可能早地在处理链中并且在实际读取代码之前,根据各代码20的所记录的图像的亮度分布或灰度值直方图来确定模块尺寸。下面将基于图2至图8e对此进行详细说明。
读码器10通过接口28输出信息,如读取的代码或图像数据。还可以设想的是,控制和评估单元26并非布置在实际的读码器10中,即图1中所示的相机中,而是作为单独的控制设备连接到一个或更多个读码器10上。然后,接口28还用作内部和外部控制装置与评估装置之间的连接。实际上,控制和评估功能可以以任何方式分布在内部和外部组件上,其中外部组件也可以通过网络或云连接。在这里,对此不作进一步的区分,并且控制和评估单元26被视为读码器10的一部分,而不管实际的实施如何。
图2以通过代码20的图像行的灰度值曲线的形式示出了代码20的图像数据的示例。这种灰度值曲线形成了借助图像传感器24获得的原始数据。灰度值曲线的示例并不是实际的限制。光学代码由两种模态的区域组成,通常是黑白颜色,有时是结构或压痕,但无论如何,代码信息都可以通过灰度图检测到。将灰度值曲线理解为条形码扫描仪的扫描、线形图像传感器的图像行还是通过代码20的平面图像绘制的线,对于理解本发明不重要。
以条形码为例来进行进一步的描述,但对于二维码,根据本发明的用于确定模块尺寸的方法也以类似方式发挥作用。在条形码的情况下,灰度值曲线不应被记录成特别平行于条纹。如果模块尺寸应以绝对长度单位来确定,则还必须知道灰度值曲线是以何种角度运行通过代码。然而,对于解码来说感兴趣的尺寸是在与解码器所接收的图像数据完全相同的图像数据中(包括代码20中相应的偏斜位置),多少个像素表示一个模块(ppm,pixelper module每模块像素)。
原则上,在图2中已经描绘出所需要的模块尺寸。高灰度值和低灰度值处各自的平顶(Plateaus)与代码的字符相对应,因此可以测量平顶的宽度,并将模块尺寸拟合为最小长度,通过单倍和多倍最小长度可以从中重建宽度。但这样做太容易出错了,尤其是众多的平顶根本无法识别,更无法可靠地测量其宽度。
图3示出了根据图2的灰度值曲线的导数。在这里,代码的边缘,即亮代码元素和暗代码元素之间的过渡(反之亦然),以极值出现。不同于图2中的平顶,相邻极值之间的间距原则上可以用来确定模块尺寸,正如引言中所讨论的那样。这里的问题在于,边缘位置是有噪声的,并且即使没有噪声充其量也最多只能以一个像素的精度确定模块尺寸,而不能以亚像素的精度确定。然而,在这些限制下仅相对粗略地确定的边缘位置对于待阐述的、根据本发明的用于确定模块尺寸的方法来说也将是有用的。
因此,根据本发明,模块尺寸不是根据灰度值曲线或其导数确定的,而是根据通过灰度值的直方图的间接方法确定的,或更一般地选择亮度分布。
图4示出了条形码的示例性灰度值直方图,该条形码以模块尺寸为2.58ppm的良好分辨率进行记录。右上侧的小插图示出了真实的图像部分,以用于说明。灰度值直方图是通过在X轴上将可能的灰度值绘制为Bin来创建的,在这种情况下,0-255对应于8位图像数据。对于代码的所考虑的图像数据的每个像素,对应于该像素的灰度值的Bin加1。优选地,不在灰度值直方图中考虑代码的空白区。最后,还可以通过除以有用像素的总数来进行归一化,以确保所有Bin的总和等于1。灰度值直方图是亮度分布的离散化,因此在本说明书中也使用了更通用的术语亮度分布。
如果模块尺寸足够,则灰度值直方图是双模的,具有分别用于暗代码元素和亮代码元素的明显的左峰和右峰,并且在左峰和右峰之间是平坦的区域。
图5示出了条形码的另一个示例性的灰度值直方图,但该条形码以模块尺寸为0.93ppm的较差的分辨率记录。同样,右上侧的小插图示出了真实的图像部分,以进行说明,该图像部分还让人明白为什么读取这样的代码需要特别注意。该灰度值直方图与模块尺寸至少为2ppm的、以良好的分辨率记录的代码的灰度值直方图有明显的不同。随着模块尺寸减小,双模态会越来越丧失。由于过低的分辨率模糊所致,在中等灰度值处形成越来越强的峰值。
这说明了本发明的基本思想:亮度分布,特别是作为灰度值直方图获得的亮度分布,允许得出模块尺寸的结论。这是涉及模块尺寸是大还是小的定性说明,这两类之间的界限例如是2ppm,但也可以估计模块尺寸的具体数值。图4和图5又以条形码为例。由于分辨率(根据本发明,最终根据该分辨率来确定模块尺寸)过低所造成的模糊效果(Verschmierungseffekt)在二维代码中也会出现,因此条形码的示例不应限制性地理解。
正如图4和图5所阐述的那样,小模块尺寸和大模块尺寸之间的区别体现在中间灰度值的峰值的不同特征上。因此,如果特别考虑灰度值直方图的中间区域或过渡区域,则模块尺寸的区分度就会提高。
因此,如果从一开始就尽可能只从对应于过渡区域的像素中获得灰度值直方图,则是特别有利的。特别地,通过以下方式实现,即灰度值直方图不是由代码的图像的所有像素构成,而是只由边缘附近的像素构成。在边缘那里,由于采样不足或分辨率太低,可以特别清晰地测量出模糊效果。
基于图3早已阐明,边缘位置例如是如何根据灰度值曲线的导数来进行估计的。灰度值直方图由这些边缘位置处的像素和相应的像素环境形成。为了将灰度值直方图限制在边缘的周围,边缘位置只精确到一个像素并不重要,因为无论如何灰度值直方图中都没有考虑亚像素范围。由于噪声效应而引起的任何边缘位置错误也可以容忍,因为边缘位置错误只会导致像素时不时地被错误地包含在内或排除在外。在任何情况下,都比无差别地将所有像素包含在内要好得多。
这样的边缘相关的灰度值直方图在图6中示出。然而,应该补充的是,仅从边缘附近的像素来考虑灰度值直方图是特别有利的,并且可以特别准确地确定模块尺寸。然而,模块尺寸也可以根据简单的灰度值直方图来估计,这些灰度值直方图考虑了代码或代码区域的图像的所有像素。
为了根据边缘相关的灰度值直方图确定模块尺寸,或者可替代地根据完整的灰度值直方图确定模块尺寸,灰度值直方图用特征参数来描述。为了避免单个噪声事件扭曲评估,优选只考虑灰度值直方图的一个有效区域。这只包括超过噪声阈值的那些Bin,被指定为对Bin有用的像素的最少数量或最小百分比。
图6中箭头所示的宽度已被证明是特征参数。因此,宽度是灰度值直方图中出现的最大灰度值和最小灰度值的差。另一个对计算模块尺寸有用的特征参数是灰度值直方图的面积或积分,它可以通过对Bin求和得到。归一化的直方图的面积当然是1,因此只有在灰度值直方图没有归一化或在用噪声阈值确定有效区域之前归一化时,或者如下面所阐述的那样在重新缩放子区域时,积分才有实际贡献。其他可以设想的特征参数是主最大值的高度、次最大值的数量或主最大值的高度与第一个次最大值的高度之比。
可以设想的模块尺寸的具体的计算规则包括:形成积分与宽度的商,并使用缩放因子将该测量值映射到以ppm为单位的模块尺寸上。例如,缩放因子可以通过在校准或示教过程中读取代码来获得,这些代码的模块尺寸随后被非常准确地确定,然后与后面的计算规则相反,将现在已知的模块尺寸与积分和宽度的商进行比较。
图7示出了用于根据灰度值直方图来确定模块尺寸的示例性算法的流程图。在这个算法中,设置了几个非常具体的步骤,这些步骤可以理解为有利的实施方式并且并不限制其他描述的通用性。
在步骤S1中,获得初始数据,即代码的图像数据,例如一个或更多个灰度值曲线形式的图像数据,如图2所述。
在步骤S2中,确定代码中的边缘位置。为此,例如采用灰度值曲线的导数,如图3所述。只有像素而不是亚像素精确度的确定以及由于噪声而引起的任何位置误差都不妨碍对模块尺寸的估计。
在步骤S3中,通过根据可能的灰度值提供Bin并将相应的计数器设置为初始状态0,来初始化灰度值直方图。
在步骤S4中,确定所有边缘位置及其附近的像素(例如前i个像素和后j个像素)的灰度值。
在步骤S5中,将属于在步骤S4中确定的灰度值的Bin分别增加1。步骤S4和S5分开只是为了说明目的,在实践中,依次检查所有边缘位置和每个边缘位置的附近的像素,并且针对每个相关像素直接将Bin计数到该像素的对应的灰度值。作为步骤S2、S4和S5之后的基于边缘的灰度值直方图的可替代方案,也可以在来自步骤S1的初始数据的所有像素上形成灰度值直方图,在这种情况下模块尺寸的估计可能变得不那么准确。
在步骤S6中,对灰度值直方图进行归一化,使得所有Bin的总和取值为1。归一化因子对应于对灰度值直方图有用的像素的数量或尚未归一化的灰度值直方图的总和。归一化是完全可选的,并且可以不进行归一化处理,而使用步骤S10中引入的缩放因子F进行映射。
在步骤S7中,通过只考虑具有高于噪声阈值的最小频率的Bin,将灰度值直方图限于所谓的有效区域。噪声阈值可以是一个常数,也可以是一个分数,如所有频率之和的千分率,并消除异常值。将宽度B计算成有效区域的最大Bin和最小的Bin之间的差值。
随后的步骤S8是完全可选的,并且是对灰度值直方图进行整体可选的重新缩放的示例,通过该步骤再次增强用于确定模块尺寸的某些表征特性。在该具体的实施中,有效区域被分成三个同等大小的子区域。左右两部分的Bin乘以边权重(Seitengewicht),中间部分的Bin乘以中心权重(Zentralgewicht)。可替代地,当然也可以使用分辨率更精细的加权函数。优选地,无论如何具体设计的重新缩放用于相对地衰减侧向区域并相对地突出中心区域。这是因为,如图5所述,对确定模块尺寸来说特别感兴趣灰色值的中间过渡区域,以这种方式再次强调了这一点。
在步骤S9中,将有效区域的Bin相加,从而确定有效区域的积分或面积A。
在步骤S10中,形成面积A和宽度B的商。这已经是对模块尺寸的期望估计了,但还是用错了单位。因此,模块尺寸计算为F*A/B,即引入了缩放因子F,该缩放因子将测量变量从灰度值直方图缩放到以ppm为单位的模块尺寸。缩放因子f是事先凭经验确定或教导的。
图8a-8e示出了不同模块尺寸的灰度值直方图的示例,每一个都约束为如图6所说明的边缘附近。各自的实际模块尺寸可以用图7所阐述的方法以较小的误差重建。具体地,在图8a中,实际的模块尺寸为0.8ppm,而估计的模块尺寸为0.79ppm;在图8b中,实际的模块尺寸为1.0ppm,而估计的模块尺寸为1.06ppm;在图8c中,实际的模块尺寸为1.2ppm,而估计模块尺寸为1.23ppm;在图8d中,实际的模块尺寸为1.4ppm,而估计的模块尺寸为1.19ppm;在图8e中,实际的模块尺寸为1.5ppm,而估计的模块尺寸为1.68ppm。
在具有从真实应用中记录的代码的700多个图像的数据集中,估计的模块尺寸的平均误差达0.15。随着模块尺寸的增加,计算的准确性会降低。一个主要的原因是,缩放因子F实际上是缩放函数,随着模块尺寸的增加,例如,大于两个ppm,该缩放函数应该被衰减。原则上,缩放函数可以如同缩放因子一样,根据经验确定或教导。然而,在实践中,这并不是绝对必要的,因为对于小的模块尺寸来说,用恒定的缩放因子F能成功地进行良好的估计,这些小的模块尺寸代表了更关键的情况,因此,模块尺寸增加时的估计误差通常是可以接受的。
Claims (17)
1.一种用于在读取光学代码前确定光学代码(20)的模块尺寸的方法,在该方法中记录带有所述光学代码(20)的图像数据,并根据所述图像数据确定亮度分布,
其中,
根据所述亮度分布来确定所述模块尺寸,即根据可能的亮度值的相对频率的函数来确定所述模块尺寸;
其中,模块是代码中最小的元素,并且代码元素或字符由一个或更多个模块组成,以及所述模块尺寸是衡量模块范围的度量。
2.根据权利要求1所述的方法,其中,根据所述亮度分布的中间区域来确定所述模块尺寸。
3.根据权利要求1或2所述的方法,其中,在所述图像数据中找出所述光学代码(20)的边缘,并且仅通过边缘附近的图像数据形成所述亮度分布。
4.根据权利要求1-2中任一项所述的方法,其中,所述亮度分布特定于频率超过噪声阈值的有效区域。
5.根据权利要求1-2中任一项所述的方法,其中,根据所述亮度分布的宽度(B)、积分(A)和/或最大值确定所述模块尺寸。
6.根据权利要求5所述的方法,其中,根据所述亮度分布的积分(A)与宽度(B)的商确定所述模块尺寸。
7.根据权利要求6所述的方法,其中,使用缩放函数(F)将所述商映射到所述模块尺寸。
8.根据权利要求1-2和6-7中任一项所述的方法,其中,在所述亮度分布的中心和两侧用不同的加权因子重新缩放所述亮度分布。
9.根据权利要求8所述的方法,其中,所述亮度分布的中心相对于两侧升高。
10.根据权利要求1-2、6-7和9中任一项所述的方法,其中,所述亮度分布分为左侧、中心和右侧三部分,并且其中,对所述三部分分别使用加权因子进行重新缩放。
11.根据权利要求1-2、6-7和9中任一项所述的方法,其中,在确定所述模块尺寸之后读取所述光学代码(20)。
12.根据权利要求11所述的方法,其中,使用基于所述模块尺寸选择的和/或通过所述模块尺寸参数化的解码方法来读取所述光学代码(20)。
13.根据权利要求1-2、6-7、9和12中任一项所述的方法,其中,将所确定的模块尺寸与极限值进行比较,以根据所述模块尺寸超过或低于所述极限值来使用解码方法或解码方法的模块。
14.根据权利要求1-2、6-7和9和12中任一项所述的方法,其中,所述亮度分布是灰度值直方图。
15.根据权利要求7所述的方法,其中,以每模块像素为单位进行映射。
16.根据权利要求13所述的方法,其中,所述极限值位于1-3个每模块像素的模块尺寸范围内。
17.一种用于读取光学代码(20)的读码器(10),所述读码器具有图像传感器(24)和控制和评估单元(26),所述图像传感器用于检测带有所述光学代码(20)的图像数据,所述控制和评估单元被设计用于使用解码方法读取所述光学代码(20),
其中,
所述控制和评估单元(26)被设计用于使用根据权利要求1-16中任一项所述的方法来确定所述光学代码(20)的模块尺寸。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19195509.5A EP3789906B1 (de) | 2019-09-05 | 2019-09-05 | Bestimmen der modulgrösse eines optischen codes |
EP19195509.5 | 2019-09-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112446225A CN112446225A (zh) | 2021-03-05 |
CN112446225B true CN112446225B (zh) | 2024-05-10 |
Family
ID=67956451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010842304.8A Active CN112446225B (zh) | 2019-09-05 | 2020-08-20 | 光学代码的模块尺寸的确定 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11182578B2 (zh) |
EP (1) | EP3789906B1 (zh) |
JP (1) | JP7062722B2 (zh) |
KR (1) | KR102419540B1 (zh) |
CN (1) | CN112446225B (zh) |
DK (1) | DK3789906T3 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4202758A1 (de) * | 2021-12-21 | 2023-06-28 | Sick Ag | Codeleser und verfahren zum lesen eines optischen codes |
DE102022000147A1 (de) * | 2022-01-17 | 2022-03-24 | Daimler Ag | Elektrischer Energiespeicher für ein Kraftfahrzeug sowie Verfahren zum Herstellen eines solchen elektrischen Energiespeichers |
EP4287066B1 (de) | 2022-05-31 | 2024-05-15 | Sick Ag | Bestimmen der modulgrösse eines optischen codes |
CN117574931B (zh) * | 2024-01-15 | 2024-04-30 | 北京航空航天大学杭州创新研究院 | 基于3d结构的一维条形码信息生成方法和激光解码设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05128292A (ja) * | 1991-10-31 | 1993-05-25 | Olympus Optical Co Ltd | 結像倍率認識装置及びそれを用いたバーコード読取装置 |
JP2013045149A (ja) * | 2011-08-22 | 2013-03-04 | Denso Wave Inc | 情報コード読み取り装置 |
CN109255271A (zh) * | 2017-07-12 | 2019-01-22 | 西克股份公司 | 用于读取光码的光电代码阅读器和方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5053609A (en) * | 1988-05-05 | 1991-10-01 | International Data Matrix, Inc. | Dynamically variable machine readable binary code and method for reading and producing thereof |
US5378883A (en) * | 1991-07-19 | 1995-01-03 | Omniplanar Inc. | Omnidirectional wide range hand held bar code reader |
US5818023A (en) * | 1996-03-05 | 1998-10-06 | Metanetics Corporation | Portable ID card verification apparatus |
US7751629B2 (en) * | 2004-11-05 | 2010-07-06 | Colorzip Media, Inc. | Method and apparatus for decoding mixed code |
US7213761B2 (en) * | 2005-03-23 | 2007-05-08 | Microscan Systems Incorporated | Apparatus and process for two-stage decoding of high-density optical symbols |
US8950673B2 (en) * | 2007-08-30 | 2015-02-10 | Symbol Technologies, Inc. | Imaging system for reading target with multiple symbols |
CN101908125B (zh) * | 2010-06-01 | 2014-07-02 | 福建新大陆电脑股份有限公司 | Qr码条码解码芯片及其解码方法 |
KR101427715B1 (ko) * | 2012-12-31 | 2014-08-07 | 아주대학교산학협력단 | 큐알 코드 인식 장치 및 방법 |
US10599902B2 (en) * | 2014-10-09 | 2020-03-24 | Cognex Corporation | Methods and apparatus for decoding under-resolved symbols |
US9785817B2 (en) * | 2015-05-29 | 2017-10-10 | Datalogic Usa, Inc. | Region of interest location and selective image compression |
US10607047B2 (en) * | 2017-12-06 | 2020-03-31 | Cognex Corporation | Local tone mapping for symbol reading |
US11600018B2 (en) * | 2019-10-25 | 2023-03-07 | Cognex Corporation | Boundary estimation systems and methods |
-
2019
- 2019-09-05 EP EP19195509.5A patent/EP3789906B1/de active Active
- 2019-09-05 DK DK19195509.5T patent/DK3789906T3/da active
-
2020
- 2020-07-06 JP JP2020116092A patent/JP7062722B2/ja active Active
- 2020-07-29 KR KR1020200094519A patent/KR102419540B1/ko active IP Right Grant
- 2020-08-20 CN CN202010842304.8A patent/CN112446225B/zh active Active
- 2020-09-02 US US17/009,962 patent/US11182578B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05128292A (ja) * | 1991-10-31 | 1993-05-25 | Olympus Optical Co Ltd | 結像倍率認識装置及びそれを用いたバーコード読取装置 |
JP2013045149A (ja) * | 2011-08-22 | 2013-03-04 | Denso Wave Inc | 情報コード読み取り装置 |
CN109255271A (zh) * | 2017-07-12 | 2019-01-22 | 西克股份公司 | 用于读取光码的光电代码阅读器和方法 |
Also Published As
Publication number | Publication date |
---|---|
DK3789906T3 (da) | 2021-08-23 |
EP3789906B1 (de) | 2021-07-07 |
JP2021039734A (ja) | 2021-03-11 |
US11182578B2 (en) | 2021-11-23 |
CN112446225A (zh) | 2021-03-05 |
KR102419540B1 (ko) | 2022-07-08 |
US20210073499A1 (en) | 2021-03-11 |
KR20210029086A (ko) | 2021-03-15 |
EP3789906A1 (de) | 2021-03-10 |
JP7062722B2 (ja) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112446225B (zh) | 光学代码的模块尺寸的确定 | |
US8139117B2 (en) | Image quality analysis with test pattern | |
CN108629775B (zh) | 一种热态高速线材表面图像处理方法 | |
US5373147A (en) | Apparatus and method for detecting line segment direction | |
US5504319A (en) | Method and system for bar code acquisition | |
US10699091B2 (en) | Region of interest location and selective image compression | |
CN111179243A (zh) | 一种基于计算机视觉的小尺寸芯片裂纹检测方法及系统 | |
EP1269394B1 (en) | Improved method for image binarization | |
US9008426B2 (en) | Generating an image presegmented into regions of interest and regions of no interest | |
US6687421B1 (en) | Skew detection of text in a noisy digitized image | |
CN113538491B (zh) | 一种基于自适应阈值的边缘识别方法、系统及存储介质 | |
US7333656B2 (en) | Image processing method and image processing apparatus | |
CN112699697B (zh) | 读码器和用于读取光学代码的方法 | |
CN115019160B (zh) | 一种工厂仓库入库货物图像质量的控制方法 | |
US10109045B2 (en) | Defect inspection apparatus for inspecting sheet-like inspection object, computer-implemented method for inspecting sheet-like inspection object, and defect inspection system for inspecting sheet-like inspection object | |
US6577775B1 (en) | Methods and apparatuses for normalizing the intensity of an image | |
JP2017521011A (ja) | シンボルの光学的検出方法 | |
CN114529555A (zh) | 一种基于图像识别的烟箱高效进出库检测方法 | |
JP2004513410A (ja) | 画像内のオブジェクトの発見 | |
US20230370724A1 (en) | Recording and brightness adjustment of an image | |
US20230386068A1 (en) | Determining the Module Size of an Optical Code | |
KR102502523B1 (ko) | 바코드 추출 장치 및 방법 | |
CN117454915A (zh) | 光学代码的读取 | |
JP2023092458A (ja) | コードリーダ及び光学コード読み取り方法 | |
CN117218672A (zh) | 一种基于深度学习的病案文字识别方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |