CN113177423A - 光学代码的读取 - Google Patents
光学代码的读取 Download PDFInfo
- Publication number
- CN113177423A CN113177423A CN202110103384.XA CN202110103384A CN113177423A CN 113177423 A CN113177423 A CN 113177423A CN 202110103384 A CN202110103384 A CN 202110103384A CN 113177423 A CN113177423 A CN 113177423A
- Authority
- CN
- China
- Prior art keywords
- code
- sampling
- sampling pattern
- shift
- image data
- 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.)
- Pending
Links
- 230000003287 optical effect Effects 0.000 title claims abstract description 11
- 238000005070 sampling Methods 0.000 claims abstract description 120
- 238000000034 method Methods 0.000 claims abstract description 32
- 239000011159 matrix material Substances 0.000 claims description 19
- 238000011156 evaluation Methods 0.000 claims description 9
- 238000002360 preparation method Methods 0.000 claims 2
- 230000006978 adaptation Effects 0.000 description 8
- 238000012937 correction Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 229920000114 Corrugated plastic Polymers 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011888 foil Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 229920003023 plastic Polymers 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
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/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
-
- 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
- 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/10712—Fixed beam scanning
- G06K7/10722—Photodetector array or CCD scanning
-
- 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/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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Toxicology (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Character Input (AREA)
Abstract
本申请涉及光学代码的读取。提供了一种用于读取由于代码(12)的不均匀背景而引起失真的光学代码(12)的方法,其中,记录具有代码(12)的图像数据、在图像数据中找到具有代码(12)的区域并从中读取代码(12)的代码内容。在此,从图案采样点处的图像数据中读取代码(12),这些采样点排列在与失真相对应的采样图案中。
Description
本发明涉及根据权利要求1或14的主题的用于读取由于代码的不均匀背景而引起失真的光学代码方法和读码设备,该光学代码特别是2D代码。
读码器由超市收银台、自动包裹识别、邮件分拣、机场行李处理和从其他物流应用所熟知。在扫码器中,借助旋转反射镜或多面反射镜轮将读取光束横向引导穿过代码。基于相机的读码器借助图像传感器记录其上有代码的对象的图像,并且图像分析软件从这些图像中提取代码信息。基于相机的读码器也可以轻松应对一维条形码以外的其他代码类型,这些其他代码类型与矩阵代码一样也被构造成二维的并且提供更多信息。
在一组重要的应用中,携带代码的对象被传送经过读码器。在此,扫码器检测分别被依次引导到其读取区域中的代码。可替代地,在基于相机的读码器中,线扫描相机连读且逐行地通过相对运动读入具有代码信息的对象图像。通过二维图像传感器有规律地记录图像数据,这些图像数据根据记录频率和传送速度或多或少地重叠。为了使对象可以以任意取向布置在传送器上,通常在读取通道上设置多个读码器,以从多个或所有侧面记录对象。还已知的是,组合多个读码器的读取场,以例如覆盖更宽的传送带。
代码只能一遍又一遍地被失真地记录。为此,一个原因在于布置在不平坦的表面上。这可能导致扭曲、隆起和最终完全偶然的几何失真。这个问题的出现与如何产生代码的方式(无论是通过印刷、压印代码标记、粘贴代码标签还是其他方式)无关。
目前,纠错机制内置于各种2D代码规范中。然而,这些纠错机制的设计方式无法检测到复杂的变形,而是隐含地假设不平坦的表面最多具有轻微的影响。然而,在一些应用中,而且不仅仅是在特殊情况下,这种隐藏的前提条件无法得到满足。一个典型的示例是软包装(例如,塑料套)上的代码。于是,预先设定的机制(例如,Reed-Solomon纠错)很快就达到其极限,并且从一定程度的变形开始就不再能读取2D代码。
在现有技术中部分地尝试了在实际的代码读取之前对所记录的代码图像去失真。然而,这不涉及具体的代码及其背景(Untergrund),而是涉及例如读码器的成像误差的校正或记录视角的变换。US 7 878 402 B2或EP 2 843 616 A1描述了一种对应的视角转换。然而,在此再次适用这样的假设,即代码本身是均匀的,而且仅是从一个倾斜的视角记录的。因此,代码内的个别几何失真会继续导致读取误差。US 8 235 296 B2涉及将代码写到弯曲的表面上的补充课题。然而,为此要三维地检测表面,这意味着极大的成本。此外,这仅在某些规则的几何形状(如,圆柱体)的情况下起作用,而且根本不适用于不断变化的变形,如背景柔软的情况。
另一种传统方法在于,在整体上检测待读取的代码的几何结构,例如基于凸面包络线。在失真较小的并且尤其是规则的一些情况下,这是一种方案,但是例如在将起皱的塑料套作为背景的情况下,整体几何形状仅包含过少的信息,并且读取代码仍然失败。
因此,本发明的任务在于提供一种用于读取失真的光学代码的改进的方法。
该任务通过根据权利要求1或14的用于读取由于代码的不均匀背景而引起失真的光学代码的方法和读码设备得以实现。代码因扭曲、隆起或其他几何性质引起其不平坦的、弯曲的或变形的背景而失真,因此一开始很难被读取或根本不能被读取。特别地,光学代码是根据各种已知标准之一的二维代码。产生包含代码的图像数据,并且优选地至少粗略地分割这些图像数据,并从而根据代码区域进行分割。通常利用基于相机的读码器的图像传感器来记录图像数据,其中原则上扫码器也可以逐行地检测强度轮廓并以这种方式产生图像数据。用本身已知的解码方法来读取代码。
本发明基于以下基本思想,在实际读取代码之前根据采样点产生与代码的背景的变形适配的采样图案(Abtastmuster)或采样栅格。随后,这些采样点处的图像数据被用于读取代码。因此,采样图案不是规则的栅格,而是至少和代码本身一样是同样近似失真的。
本发明的优点在于,采样图案反映变形并由此进行补偿。即使在变形较强且不规则的情况下仍可以读取代码,因此提高了读取速率。当然存在限制,例如当代码被折叠成遮盖了整个区域时。该过程在各种代码类型的情况下起作用。因此,即使在高要求的应用(如,箔包装)中也实现了高的读取速率。
优选地,在未知不均匀基底的曲率的情况下确定采样图案。除了图像数据之外,没有其他信息可供使用,特别是没有三维轮廓测量。待校正的几何形状事先是未知的,并且在该方法期间也无法被确定。更确切地说,采样图案局部地与失真的代码适配。
优选地,根据取景器模型(Finder Pattern)确定代码的模块大小和/或所需采样图案的大小。取景器模型是2D代码的、具有特殊图案的一部分,在该特殊图案处识别出2D代码及其特定属性。因此,从代码规范中已知取景器模型具有哪些代码元素或模块,并且因此可以推断出具体待记录的代码中的模块大小。通过外推到检测的代码区域,还可以进一步推导出采样图案总计须包括多少采样点来覆盖代码。对于QR码,为此额外地提供了取景器模型之间的距离,对于Data Matrix代码,提供了在此从两侧完全框住代码的取景器模型的长度。
优选地,采样图案针对代码的每个模块均具有一个采样点。应存在至少一个采样点,否则一些模块根本无法得到表示。但反过来,一个采样点也足够了,因为每个模块除了其2D位置之外其本身仅携带由具代表性的定位采样点就能完全检测的明暗信息。因此,针对每个模块,采样图案的每个模块具有至少一个采样点就足够了,采样图案具有刚好一个采样点甚至是最佳的、仍然完整的配置,而无需不必要的努力。
优选地,采样图案从取景器模型开始以迭代的方式增大,直至该采样图案覆盖代码为止。可以可靠地定位取景器模型。然后,从这个最开始的小的采样图案开始,通过逐步增大(“栅格生长(Grid Growing)”)来构建整个采样图案。
优选地,最开始针对取景器模型确定采样图案的采样点,特别地仍然以与平坦背景相对应的规则排列来确定采样点。对于取景器模型而言,由于其特殊的结构,已知其包含哪些模块。因此,在此可以非常可靠地设定和适配采样图案的起点。例如,QR码的取景器模型包括由彼此交错地布置的矩形组成的7×7个模块。因此,可以以由7×7个采样点组成的采样图案开始。在初始化中,优选地首先使用规则的采样图案,因为关于失真的信息事先是未知的。
优选地,使采样点分别移向由它们代表的模块的中心。在代码不失真、均匀的情况下,利用规则的采样图案可以很容易地通过常规的居中来实现,其中采样点之间的距离根据所估计的模块大小保持恒定。为了适配不均匀的背景,采样点被单独移位。以补偿相应的局部失真。中心绝对不必是模块的精确的几何重心,只需要可靠地避开模块之间的边缘,以便采样点能检测到代表该模块的亮度值即可。
优选地,计算代码的梯度图像和幅度图像,以根据幅度图像确定相应的采样点是否处于局部极值处,并且从梯度图像中确定仍需要移位的方向。具体地,可以确定针对幅度的一个图像,并且相应地可以确定针对在X方向和Y方向上的梯度的一个图像。因此,梯度(其是矢量)被分解为其方向和其量值。在本文中,图像是梯度的任何表示的术语。对于代码区域的图像数据,执行唯一一次这种梯度计算就足够了,结果随后可用于所有迭代和所有采样点。如果幅度指示局部极值,换句话说,如果幅度至少接近零,则采样点被认为在其模块中足够居中。这是采样点离模块之间的边缘足够远并且因此可以说位于模块的亮区域或暗区域的中间这一事实的数学表达。梯度图像指示了当幅度条件尚未满足时局部极值所在的方向。
优选地,尝试以小于模块尺寸的步长进行移位,直至达到局部极值为止,该移位会导致移出模块,或者尝试最大数值的步长,特别是其中如果不能找到局部极值,则不使相应的采样点移位。在此,通过迭代法找寻局部极值。将步长大小选择得小一些,这样就不会在另一个模块中找到错误的局部极值,否则,这特别可能在有多个相邻的亮模块或暗模块的情况下发生。如果移位超过了所估计的模块大小,则中断移位。随后优选地,不以目前为止已确定的移位进行进一步处理,因为该移位可能不代表任何有意义的结果,而是这个采样点目前根本不移位。
有利地,对各个采样点移位到局部极值的移位矩阵进行平滑处理,特别地利用高斯滤波器来进行平滑处理。因此,确定各个采样点的移位并将其写入到移位矩阵中。正如刚才阐述的,对于一些采样点未找到合适的移位,因此这些采样点保持在其初始位置。这样,通过对移位矩阵进行平滑处理,不仅使找到的移位经受一定程度的相互补偿,而且还使保持其初始位置的那些采样点通过其相邻的采样点得到适配。
优选地,以迭代的方式确定新的移位矩阵,该新的位移矩阵具有采样点到局部极值的移位并相应地应用于采样图案,直到进一步的移位矩阵不再引起超过容限阈值的移位,或者直到达到最大迭代次数。重复移位直到该方法收敛并且不再实现任何改进。作为预防措施,应在一定数量的步骤之后预先设定中断条件,这意味着还应包括其他外部预先设定的条件,例如可用的最大计算时间到期。
优选地,以迭代方式使采样图案在至少一个边缘处以附加的采样点增大,直到该采样图案覆盖代码和/或达到预先设定的大小为止。优选地,每次迭代,采样图案均分别增长一列和/或一行。可以设想的是,一次添加多个行或多个列,但是在局部曲率变化很大的情况下适配性会变差。在采样图案以这种方式增长之后,优选地对添加的采样点、所有采样点或中间集合,例如从事先已存在的采样图案的添加的采样点和其相邻采样点,进行所述的适配,以便它们在其相应的模块中居中。如果代码被覆盖,则增长并且因此用于产生适配的采样图案的方法终止。这特别地是通过根据代码区域的大小和所估计的模块大小来估计采样图案的所需大小来确定的。
如果在这里介绍的多个步骤一起实施,则应注意涉及多重嵌套迭代。较上层的迭代以小的采样图案开始,优选地以取景器模型开始,并且使该采样图案在代码区域上连续增长。对于相应的适配,以多重迭代的方式确定并应用移位矩阵。在移位矩阵的确定期间可以添加第三迭代层,利用该第三迭代层尝试将相应的采样点逐步地移位到其模块的中心,并且因此获得移位矩阵中的单独条目。
优选地,从另一个取景器模型开始确定另一个采样图案。当然这仅在例如QR码的代码类型中是可行的,其中预先设定了多个取景器模型。可替代地,对于其他代码类型,也可以尝试从不是取景器模型的区域使采样图案增长,但是该区域的模块在更早的读取尝试中或通过图像处理可以清楚地检测到。如果由于某种原因,首先使用的取景器模型不是一个良好的初始点,则由此仍可以执行额外的读取尝试。
根据本发明的方法可以以类似的方式进一步改进并同时显示出类似的优点。这些有利的特征是示例性的、但并非在从属于独立权利要求的从属权利要求中穷尽地描述。
附图说明
下面还基于实施例并参考所附附图示例性地进一步阐述本发明的其他特征和优点。在附图中:
图1示出了读码器的示意图;
图2示出了示例性2D代码的图示,该2D代码具有与其失真适配的采样图案;
图3示出了适配的采样图案如何以迭代的方式从取景器模型开始在整个代码上增长的流程图;
图4示出了根据图3的各个迭代内适配采样图案的流程图;
图5示出了代码区域的幅度图像和梯度图像的示例图;
图6示出了对图5中各个代码模块的放大图;以及
图7示出了根据图3的流程的不同的迭代之后增长的采样图案的示例图。
图1示出了用于读取纯示例性示出的代码12的光电读码器10。读码器10利用图像传感器14检测具有代码12的图像数据,这些图像数据由控制和评估单元16借助于图像评估和解码方法进一步处理。具体的成像方法对于本发明来说并不重要,因此读码器10可以根据本身已知的任何原理来构造和使用。可以用单个图像记录代码12。在读码器10和代码12之间有相对运动的情况下,也可以设想一次仅检测一行,无论是借助于线形图像传感器还是扫描方法,其中在后一种情况下,简单的光接收器(例如,光电二极管)足以作为图像传感器14。随后,将这些行组合成一个图像。在一个优选的应用情况下,通过将读码器装配在传送带上来产生相对运动,该传送带将携带代码12的对象传送经过读码器10的读取区域。
控制和评估单元16的图像处理的目标是识别代码区域并读出布置在该代码区域上的代码12。本发明涉及从采样点产生采样图案的子步骤,该采样图案适配于由于与均匀的背景有偏差而产生的代码12的失真。稍后将参照图2至图7进一步阐述产生这种采样图案的方法。实际的代码读取,作为根据采样图案的采样点处的图像数据进行解码,这种解码本身是已知的,并且将不作进一步阐述。然而,除了一般的纠错方法之外,这些已知的解码方法不能处理代码12的失真。
读码器10经由接口18输出信息,例如读取的代码或图像数据。还可以设想的是,控制和评估单元16不被布置在实际的读码器10中,而是作为单独的控制器连接到一个或更多个读码器10。于是,接口18还用作内部与外部的控制和评估之间的连接。控制和评估单元16实际上可以以任何方式分布在内部模块和外部模块上,其中也可以经由网络或云连接外部模块。这一切在这里不作进一步区分,并且控制和评估单元16被视为读码器10的一部分,而不管具体的实施方案如何。
相应示出的代码12的示例是QR码。然而,本发明不限于此,而是也可应用于其他2D代码,例如Data Matrix码、Maxi码或Aztec码。QR码在某种程度上甚至要求特别高,这是因为它们不具有像Data Matrix码那样的框架取景器模型(umrahmendes Finder-Pattern),Data Matrix码已经允许得出关于变形的某些结论。原则上,以根据本发明的方式也可以读取条形码。然而,条形码本来就对这里讨论的失真是更有容忍度的,因为在代码中找到一条与所有代码模块相交的读取线就足够了。
图2示出了现在要描述的用于从采样点找到与代码12的变形适配的采样图案的方法的结果的示例。采样图案遵循曲率和变形,优选地在每个代码模块的中心各安排恰好一个采样点。显然,该采样图案对应于在柔性基底上的规则的栅格,该栅格被置于代码12上并且紧随着(anschmiegen)该代码的不平坦性。
图3和图4示出了实现这一结果的示例性流程。利用该流程,以一个小区域开始,从图像数据迭代地且局部地以一种自组织的、结构性的增长方式来产生采样图案。在此,图4是详细地执行图3中的流程的一个子步骤的部分。图5至图7进一步说明了流程。
最开始,在步骤S1中检测具有代码12的图像数据。该输入数据例如作为图像数据与在预处理中识别出的代码区(ROI,Region of Interest,关注区)的四个角点一起被传送。同样地,可以预先设定所寻求的采样图案的行数和列数。可替代地,确定这些参数本身。
在步骤S2中,计算代码区的梯度图像和幅度图像。为此,图5示出了一个示例。从左上方以顺时针方向展示了代码区的初始图像、幅度图像、X方向上的梯度图像和Y方向上的梯度图像。
在步骤S3中,产生小的初始采样图案。优选地,该初始采样图案涉及取景器模型的区域。对于附图中所示的示例性代码12,取景器模型是在角处依次布置的三个矩形。对于QR码,取景器模型由7×7个代码模块组成,因此7×7个采样点的采样图案是合适的。由于在取景器模型的区域中不存在关于代码12的曲率的信息,因此初始的采样图案仍然是规则的。此外,取景器模型的大小也允许估计模块的大小。如果在步骤S1中未对采样图案预先设定所需的列数和行数,则可以根据模块大小和取景器模型之间的距离来确定。
现在在步骤S4中,使目前为止获得的采样图案,即暂时的初始采样图案,与代码12的曲率适配。这个步骤在图4中再次详细示出。显然,适配的目标是使采样点分别居中地排列在由它们所代表的模块中。在代码均匀的情况下,利用规则的栅格可以针对所有采样点同时实现。在变形的基底上的代码12的情况下,采样图案通过单独的移位与曲率适配。
首先,在步骤S41中,初始化移位矩阵,该移位矩阵包含待适配的采样点的相应移位。最开始,值是零,因为仍未确定移位量。
下一个步骤是针对采样图案的多个采样点,优选所有采样点进行的,但仅代表性地针对一个采样点进行描述。在步骤S42中,检验相应的采样点是否已经居中。为此,一个有利的标准是检验幅度图像中的相关值。如果幅度假设值为零或非常接近零,则采样点处于亮度的局部极值处。对此,重要的是所有采样点分别代表一个模块,并且其间没有边缘,不太需要数学上精确的几何适配。因此,如果在幅度图像中彼此相邻的多个点的值为零,则如果选择这样的移位,该移位会导致这些点中的一个点不构成代码模块的精确中心,则结果也不受影响。
对于尚未充分居中的采样点,在步骤S43中确定朝向局部极值或这些采样点的代码模块的中心的方向的移位。这在图6中示出。在图6中示出了图5中所示的幅度图像和梯度图像的放大局部以相同的排列方式显示在所考虑的代码模块的附近。亮的圆形点表示采样点的当前位置,亮的矩形点表示目标位置处于局部极值处。移位的方向从相关的梯度图像中得出,因此采样点跟随亮度的最大升高或降低。有意将移位的单个步长选择得很小,以便使采样点不离开代码模块。
在步骤S44中,检查采样点是否会由于目前为止的移位而离开代码模块。如果多个亮的代码模块或暗的代码模块彼此相邻,则这尤其可能由于多个小的步长而发生。无论如何都不会移位到具有互补亮度的相邻的代码模块中,因为那是与梯度方向相反的方向。如果离开了代码模块,则对于该采样点而言,对局部极值的寻找被视为失败,并且优选地,该采样点完全不移位,而是保持在其初始位置,因为目前为止的移位表明情况恶化而不是改善。否则,在步骤S42中继续寻找局部极值,在此首先检查上一次移位是否已经达到该局部极值,否则就利用步骤S43尝试另一个小的移位步骤。
如果步骤S42至S44针对所有采样点的循环终止,则移位矩阵被值占据,在寻找失败之后这些值将采样点的一部分移位到局部极值,而其余部分完全不移位。在步骤S45中,对移位矩阵进行平滑处理,特别是用高斯滤波器进行平滑处理。这不仅实现了整体上更均匀的栅格,而且还确保不能单独地确定合适移位的采样点也能根据它们的邻近关系(Nachbarschaft)一起移位。
在移位矩阵的移位被应用于目前为止的采样图案之后,现在在步骤S46中检查是否产生任何超过最小阈值的明显移位。如果不再是这种情况并且采样点不再移动,则假设收敛,并且在步骤S47中终止适配。否则,以迭代的方式在步骤S41中重复移位。作为可替代的中断标准,可以预先设定最大迭代次数,包括仅一次迭代。
回到图3,适配步骤S4在此结束。现在,在步骤S5中,检查适配的采样图案是否已经覆盖了代码。采样图案的所要求的大小已在步骤S1中预先设定,或者根据估计来确定,例如模块大小或取景器模型本身的位置和距离。如果没有覆盖代码,则在步骤S6中以迭代的方式扩展采样图案,并且从步骤S4开始对整个采样图案、新添加的采样点或者新添加的采样点和一些较旧的采样点,特别是来自扩展的附近的采样点,分别重复适配。
图7示出了根据步骤S6采样图案如何随着迭代而增长。左上方示出了初始情况,其中采样图案仅包括取景器模型。在第一次或第二次迭代之后,在右上方和左中部分别添加一行和一列。例如,扩展最开始是通过在估计的模块大小的距离处添加采样点来实现的。现在,从目前为止的采样图案可以得出附加的估计依据。例如,新的采样点以与其已经适配的相邻采样点的距离相同的距离添加,或者根据相关的行或列的行方向或列方向上的平均值添加。对曲率的适配仅在随后执行的步骤S4中进行。
在图7的右中部,还示出了作为任意选取的处理阶段的第七次迭代。底部最后展示了完整的采样图案。这对应于图2。
现在,在步骤S7中,使用适配的采样图案的采样点处的图像数据尝试读取代码12。在成功的情况下,目标实现。否则,可以尝试另外的解码器。在QR码具有多个取景器模型的情况下,整个方法可以利用另一个取景器模型进行重复。这种额外的尝试在强烈变形的情况下特别有用,以再次提高读取速率。
其他2D代码类型使用其他取景器模型。对于Data Matrix码,L图案可以从一个边缘或两个边缘开始增长。Maxi码或者Aztec码分别具有一个中心取景器模型,该中心取景器模型可以用作初始点。如果如同在这些示例中一样,仅存在一个取景器模型,则仍然可以设想形成采样图案的多次尝试。为此,将另一个区(不是取景器模型)用作起始区,特别是已经可靠地识别出代码模块的区,不管是从先前的读取尝试还是因为代码12在该区中很大程度上是均匀的。
还应指出,在适配采样图案之前,也可以在最开始就进行第一次读取尝试。在此,代码12有可能被读取,特别是如果具体待处理的代码12仅略微失真或者根本没失真。
Claims (14)
1.一种用于读取由于代码(12)的不均匀背景而引起失真的光学代码(12)的方法,所述代码特别是2D代码,其中,记录具有所述代码(12)的图像数据、在所述图像数据中找到具有所述代码(12)的区域并从中读取所述代码(12)的代码内容,
其特征在于,
从图案采样点处的图像数据中读取所述代码(12),这些采样点被排列在与所述失真相对应的采样图案中。
2.根据权利要求1所述的方法,其中,在所述不均匀背景的曲率未知的情况下确定所述采样图案。
3.根据权利要求1或2所述的方法,其中,根据取景器模型确定所述代码(12)的模块大小和/或所需的采样图案的大小。
4.根据前述权利要求中任一项所述的方法,其中,所述采样图案对于所述代码(12)的每个模块均具有一个采样点。
5.根据前述权利要求中任一项所述的方法,其中,从取景器模型开始以迭代的方式增大所述采样图案,直至所述采样图案覆盖所述代码(12)为止。
6.根据前述权利要求中任一项所述的方法,其中,最初针对所述取景器模型来确定所述采样图案的采样点,特别地仍然以与平坦的背景相对应的规则排列来确定。
7.根据前述权利要求中任一项所述的方法,其中,使所述采样点分别移位到由所述采样点代表的模块的中心。
8.根据权利要求7所述的方法,其中,计算所述代码(12)的梯度图像和幅度图像,以根据所述幅度图像确定相应的采样点是否处于局部极值处,并且根据所述梯度图像确定仍然需要移位的方向。
9.根据权利要求7或8所述的方法,其中,尝试以小于所述模块大小的步长进行移位,直至达到局部极值为止,所述移位导致从所述模块移出,或者尝试最大数值的步长,其中特别地,如果不能找到局部极值,则不使相应的采样点进行移位。
10.根据权利要求7至9中任一项所述的方法,其中,对各个采样点到局部极值的移位的移位矩阵进行平滑处理,特别地利用高斯滤波器进行平滑处理。
11.根据权利要求7至10中任一项所述的方法,其中,以迭代的方式确定具有采样点到局部极值的移位的新的移位矩阵,并分别将所述新的移位矩阵应用于所述采样图案,直到进一步的移位矩阵不再引起超过容限阈值的移位,或者直到达到最大迭代次数。
12.根据前述权利要求中任一项所述的方法,其中,以迭代的方式在至少一个边缘处用附加的采样点增大所述采样图案,直至所述采样图案覆盖所述代码(12)和/或达到预先设定的大小。
13.根据前述权利要求中任一项所述的方法,其中,从另一个取景器模型开始确定另一个采样图案。
14.一种用于读取由于代码(12)的不均匀背景而引起失真的光学代码(12)的读码设备(10),所述光学代码特别是2D代码,其中所述读码设备(10)具有:图像传感器(14),其用于记录具有所述代码(12)的图像数据;以及控制和评估单元(16),其被配置用于在所述图像数据中找到具有所述代码(12)的区域并从中读取所述代码(12)的代码内容,
其特征在于,
所述控制和评估单元(16)进一步被配置用于从采样点处的图像数据中读取所述代码(12),这些采样点被排列在与所述失真相对应的采样图案中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20153885.7A EP3855342B1 (de) | 2020-01-27 | 2020-01-27 | Lesen von optischen codes |
EP20153885.7 | 2020-01-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113177423A true CN113177423A (zh) | 2021-07-27 |
Family
ID=69326432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110103384.XA Pending CN113177423A (zh) | 2020-01-27 | 2021-01-26 | 光学代码的读取 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11250228B2 (zh) |
EP (1) | EP3855342B1 (zh) |
JP (1) | JP7191995B2 (zh) |
KR (1) | KR102576619B1 (zh) |
CN (1) | CN113177423A (zh) |
DK (1) | DK3855342T3 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362053A (ja) * | 2003-06-02 | 2004-12-24 | Hitachi Information Technology Co Ltd | 二次元コード読取装置 |
CN103858136A (zh) * | 2011-08-16 | 2014-06-11 | 行动先驱公司 | 光读取代码准备装置 |
CN109255276A (zh) * | 2017-07-13 | 2019-01-22 | 西克股份公司 | 用于读取光学代码的方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9507098D0 (en) * | 1995-04-06 | 1995-05-31 | Rolls Royce Plc | Process and apparatus for reading a dot matrix code marking of an article |
JP3458737B2 (ja) * | 1998-11-27 | 2003-10-20 | 株式会社デンソー | 2次元コードの読取方法及び記録媒体 |
US6814291B1 (en) * | 2003-12-15 | 2004-11-09 | Pitney Bowes Inc. | Robust barcode reader |
US7878402B2 (en) | 2005-12-20 | 2011-02-01 | Cognex Technology And Investment Corporation | Decoding distorted symbols |
JP2007206738A (ja) * | 2006-01-30 | 2007-08-16 | Kyocera Corp | 撮像装置およびその方法 |
JP5132900B2 (ja) | 2006-06-28 | 2013-01-30 | 株式会社キーエンス | レーザ加工条件設定装置、レーザ加工装置、レーザ加工条件設定方法、レーザ加工条件設定プログラム |
JP4951735B2 (ja) * | 2007-11-26 | 2012-06-13 | 株式会社デンソーウェーブ | 光学情報読取装置 |
JP2009295113A (ja) * | 2008-06-09 | 2009-12-17 | Olympus Corp | バーコード読み取り装置及びその読み取りデータ処理方法 |
EP2843616A1 (de) | 2013-08-29 | 2015-03-04 | Sick Ag | Optoelektronische Vorrichtung und Verfahren zur Aufnahme entzerrter Bilder |
CN105069394B (zh) * | 2015-07-23 | 2017-10-10 | 福建联迪商用设备有限公司 | 二维码加权平均灰度法解码方法及系统 |
US10249030B2 (en) * | 2015-10-30 | 2019-04-02 | Hand Held Products, Inc. | Image transformation for indicia reading |
-
2020
- 2020-01-27 DK DK20153885.7T patent/DK3855342T3/da active
- 2020-01-27 EP EP20153885.7A patent/EP3855342B1/de active Active
-
2021
- 2021-01-25 KR KR1020210010456A patent/KR102576619B1/ko active IP Right Grant
- 2021-01-25 JP JP2021009431A patent/JP7191995B2/ja active Active
- 2021-01-26 US US17/158,296 patent/US11250228B2/en active Active
- 2021-01-26 CN CN202110103384.XA patent/CN113177423A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362053A (ja) * | 2003-06-02 | 2004-12-24 | Hitachi Information Technology Co Ltd | 二次元コード読取装置 |
CN103858136A (zh) * | 2011-08-16 | 2014-06-11 | 行动先驱公司 | 光读取代码准备装置 |
CN109255276A (zh) * | 2017-07-13 | 2019-01-22 | 西克股份公司 | 用于读取光学代码的方法 |
Non-Patent Citations (1)
Title |
---|
KAZUYA NAKAMURA等: "Agent-based two-dimensional barcode decoding robust against non-uniform geometric distortion", 《2015 7TH INTERNATIONAL CONFERENCE OF SOFT COMPUTING AND PATTERN RECOGNITION (SOCPAR)》, 15 November 2015 (2015-11-15), pages 181 - 186, XP032911784, DOI: 10.1109/SOCPAR.2015.7492804 * |
Also Published As
Publication number | Publication date |
---|---|
EP3855342B1 (de) | 2021-12-15 |
US11250228B2 (en) | 2022-02-15 |
DK3855342T3 (da) | 2022-02-07 |
JP2021118005A (ja) | 2021-08-10 |
KR20210096012A (ko) | 2021-08-04 |
JP7191995B2 (ja) | 2022-12-19 |
KR102576619B1 (ko) | 2023-09-07 |
EP3855342A1 (de) | 2021-07-28 |
US20210232786A1 (en) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0669593B1 (en) | Two-dimensional code recognition method | |
US5319181A (en) | Method and apparatus for decoding two-dimensional bar code using CCD/CMD camera | |
US5446271A (en) | Omnidirectional scanning method and apparatus | |
US6758399B1 (en) | Distortion correction method in optical code reading | |
JP4911340B2 (ja) | 二次元コード検出システムおよび二次元コード検出プログラム | |
US20060175414A1 (en) | Method for reading out symbol information and device for reading out symbol information | |
US5635697A (en) | Method and apparatus for decoding two-dimensional bar code | |
US8867857B2 (en) | Method for restoration of blurred barcode images | |
EP1619604B1 (en) | Code type determining method and code boundary detecting method | |
US6064763A (en) | Time-efficient method of analyzing imaged input data to locate two-dimensional machine-readable symbols or other linear images therein | |
US6047893A (en) | Method of locating an object-applied optical code | |
US7991244B2 (en) | Variable skew correction system and method | |
EP0961218A1 (en) | Method of binarization in an optical character recognition system | |
US9070033B2 (en) | Stack barcode reader and stack barcode reading method | |
US11188727B1 (en) | Efficient parallel barcode subpixel alignment | |
EP1033864B1 (en) | Document-inclination detector | |
EP0797810B1 (en) | Barcode decoding | |
CN113177423A (zh) | 光学代码的读取 | |
JP4652201B2 (ja) | バーコードシンボル情報読取方法及びバーコードシンボル情報読取装置 | |
US6000618A (en) | Method of reading an object-applied bar code | |
US8393542B2 (en) | Method and apparatus for reading stacked bar code information | |
EP1544783B1 (en) | Robust barcode reader | |
CN110543798A (zh) | 二维码的识别方法及装置 | |
WO1996009597A1 (en) | Method and apparatus for detecting and adaptively decoding bar code symbols in continuous images | |
EP0493105A2 (en) | Data processing method and apparatus |
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 |