CN109255276B - 用于读取光学代码的方法 - Google Patents

用于读取光学代码的方法 Download PDF

Info

Publication number
CN109255276B
CN109255276B CN201810637531.XA CN201810637531A CN109255276B CN 109255276 B CN109255276 B CN 109255276B CN 201810637531 A CN201810637531 A CN 201810637531A CN 109255276 B CN109255276 B CN 109255276B
Authority
CN
China
Prior art keywords
code
location
correction
read
codeword
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
Application number
CN201810637531.XA
Other languages
English (en)
Other versions
CN109255276A (zh
Inventor
帕斯卡尔·舒勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sick AG
Original Assignee
Sick AG
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 Sick AG filed Critical Sick AG
Publication of CN109255276A publication Critical patent/CN109255276A/zh
Application granted granted Critical
Publication of CN109255276B publication Critical patent/CN109255276B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06K7/1473Methods for optical code recognition the method including quality enhancement steps error correction
    • 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
    • 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/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

提出了用于读取光学代码(20)的方法,该光学代码具有多个代码字,其中捕获具有光学代码(20)的图像数据并进行评估,以便读出代码字,并且其中通过测试方法确定是否正确读取了代码。在这种情况下,在预校正中,在代码(20)的至少一个位置处的代码字由该位置已知的代码字替换,并且在预校正之后实施测试方法。

Description

用于读取光学代码的方法
本发明涉及用于读取光学代码的方法。
代码阅读器由于超市收银台而被知道用于自动包裹识别、邮件分类、机场行李处理和其它物流应用。在代码扫描仪中,借助旋转镜或多棱镜轮引导读取光束横向穿过代码。基于相机的代码阅读器通过图像传感器捕获其上有代码的对象的图像,并且图像分析软件从这些图像中提取代码信息。
在重要的应用组中,携带代码的对象经过读码器进行输送。在这种情况下,扫描的代码阅读器检测被分别依次引导到其读取区域中的代码。可替代地,在基于相机的代码阅读器中,行扫描相机(Zeilenkamera)通过相对移动连续且逐行地读入具有代码信息的对象图像。通过二维图像传感器有规律地捕获图像数据,这些图像数据根据捕获频率和输送速度或多或少重叠。为了使对象可以在任何方向上布置在传送带上,通常在读取通道上设置多个代码阅读器,以便从多个侧面或所有侧面捕获对象。扫描的代码阅读器也检测漫反射(Remission)并从而最终检测可以组合成对象图像的图像行,即使为此实际上优选图像传感器。在这种对象图像中可以识别代码区域并将一维或二维代码读取出来。
对于代码阅读器或读取通道而言,高的读取率是最重要的质量标准之一。读取错误迫使进行繁琐的错误排除,如重新手动扫描或重新分类。
为了避免读取错误,为特别用于诸如数据矩阵(DataMatrix)、QR、Aztec、Maxicode、点代码的二维代码或诸如PDF417和MicroPDF的堆叠式代码的传统解码器配备了里德-所罗门校正(Reed-Solomon-Korrektur),该校正能够校正一定数量的错误。这些错误的原因可能在于代码本身的质量、不利的阅读情况(如在引起反射的薄膜下),并且最后也可能在于例如在灰度值的二值化中或者在不准确计算的扫描位置时产生的评估错误。
在里德-所罗门代码的代码字序列中,除了具有真实的代码信息的数据字外还设置了校正代码字,其中需要一个用于定位错误位置,第二个用于校正错误的值。校正代码字的数量由代码类型的规格来指定。因此,这限制了最多可校正的错误的数量。校正能力分别取决于代码的符号大小,并且在诸如QR和PDF417的一些代码类型中也取决于所使用的错误等级。在此这种情况下,该错误等级在编码过程中由代码的生产者确定。
因此,如果代码字序列中存在的错误比可以借助里德-所罗门来校正的错误多或者超出了校正能力,则可以不再读取代码,并且解码器别无选择,只能返回失败(NoRead)或更确切地说是返回里德-所罗门错误。
二值化已被认为是读取错误的可能原因。在现有技术中,存在被称为弱位算法(Weak-Bit-Algorithmus)的方法,即在里德-所罗门校正之前进行修改,企图超过里德-所罗门能力。与此同时,在暴风法(Brute-Force-Verfahren)中识别扫描点,这些扫描点的灰度值接近二值化阈值,因此在这些扫描点上有问题的是,是否可以在模块的极性方面正确地将模块进行分类。然后,将分级为临界的这样的模块的二值化结果进行彻底置换,并且每次置换时使用里德-所罗门校正分别重新进行解码尝试。目的在于通过系统化尝试来找到正确的组合,在该组合中可以读取代码,而不会超过里德-所罗门校正能力。
这种措施由于盲目的置换而对运行时间至关重要。此外,由于很大程度上随机的尝试,至少在符号大小极小时,特别是在被错误地识别为代码区域的结构(Textur)时,也有可能产生误读(Misreads)。在任何情况下,只可以校正二值化错误,而不可以校正其它的读取错误则,其原因早在评估前就在存于代码检测中了,例如,由于代码之上的薄膜的反射而对数据区域中造成的破坏。
因此,在现有技术中没有超过里德-所罗门校正的能力的令人满意的可行方式。
因此,本发明的任务在于,提出用于读取光学代码的更加可靠和稳健的方法。
该任务通过根据以下所述的用于读取光学代码的方法和相应的代码阅读器得以解决。首先,以其中一种已知的方式捕获光学代码的图像数据并优选通过预处理从中找到代码区域,该代码区域例如根据对比度划分图像数据。然后,读出代码字。该代码除了实际的数据以外还包含其它测试信息。使用诸如具有校验和(Checksumme)或校正数据字的这些附加的信息,以便通过测试方法确定是否正确读取了代码。该测试方法可以与代码的读取联系上,或者解码和测试是一体的方法。
本发明基于这一基本思想,即执行预校正,其中在代码的至少一个位置处替换代码字,更确定地说是用已知属于该位置的代码字来替换。这基于对已知代码字的先验知识。在当前读取的代码中已知的代码字是否实际上位于该位置,最初在预校正中只是一个假设。用已知的代码字进行替换可以在对其来说代码字是已知的一个位置、多个位置或者甚至在所有位置处进行。也可以设想在位置和位置已知的代码字方面尝试组合。但这会影响运行时间,此外,正确读取的概率还取决于对位置处的某已知代码字的先验知识有多确定,从而优选地使得对位置处的一个已知代码字仅分别有一个候选并且无论如何只有几个候选。
在通过替换至少一个代码字进行预校正之后,通过测试方法确定现在是否正确读取了代码或是否可以正确读取代码。这可以是对该代码的第一次读取尝试,其中位置处的先前未知的读取结果从一开始就用已知的代码字替换。它只能是诸如根据校验和对通过预校正修改的以前的读取结果的检验,而不会重新解码。优选地,测试方法包括重复的读取尝试。那么,这就涉及特别相关的情况,即尽管用已知的代码字来替换但其它位置处仍然存在错误,这些错误然后可以在随后的读取尝试中被校正,因为这时通过替换测试方法的校正能力足够了。
本发明的优点在于可以进一步提高读取速率。由于预校正,尽管有破坏或缺陷,但仍可以读取至少一些代码,否则由于超过了校正能力,即使具有错误校正的读取方法也会失败。与通过彻底置换可能的代码字的常见的暴风法不同,没有严重的运行时间损失。因为优选只进行唯一的预校正,并且无论如何只需要可控的实验次数。误读的风险仍然很低。这取决于关于已知代码的先验知识有多确定。优选地,该先验知识从先前读取的代码的历史记录中获得,然后得以经验证明。置信水平可以在应用中通过代码字在它们可以被视为已知之前必须以何种方式重复出现的要求来设定。此外,测试方法还识别出,是否整体上可靠地将代码识别出来了。
优选地,只有在先前没有根据测试方法将代码读取出来时,才实施预校正。因此,首先存在没有预校正的读取尝试。如果通过这种方式可以根据测试方法正确地读取代码,则该读取过程结束。否则,实施预校正,然后再次检查修改的读取结果或基于预校正的结果进行新的读取尝试。
优选地,测试方法校正读取错误。因此,不只是检查所读取的代码的正确性,而是使用冗余信息或校正代码字来校正没有读取的或读取错误的代码字。预校正扩展了测试方法的校正方法,即当测试方法单独不可能再提供保证时,至少在某些情况下仍然能够实现校正。因此,预校正有助于超过测试方法的校正能力。
优选地,测试方法具有里德-所罗门错误校正。当然,读取方法的错误校正也必须得到所使用的代码类型的支持。同时,里德-所罗门错误校正广泛应用于很多常见的代码类型,其中有一些在开头就提及了。这种应用也有其原因,因为里德-所罗门可靠且稳健。通过预校正甚至增加了解码具有很强的破坏或缺陷的代码的可能性,其中就连里德-所罗门校正能力也不再足够。但本发明除了利用用于校正代码字的抽象能力外不使用里德-所罗门的特定特征,故不限于此,只要使用用于待读取的代码的其它校正方法即可。
优选地,对于测试方法必须校正在预校正中替换的位置处已知的代码字这种情况,该位置已知的代码字不再被认为是已知的。因此,不再信任关于该位置处已知代码的先验知识。这在对已知代码字的可靠性提出了特别高的要求的实施方式中是有意义的。如果对预校正没有提出条件,即已知的代码字至少在过去必须始终并且在每个代码中在其位置处都出现,则尽管通过测试方法进行校正,但也可以将已知的代码字进一步用于后续的读取过程。
优选地,已知的代码字及其位置从读取的代码的历史记录中示教。因此,读取多个代码,优选在同一应用中连续读取多个代码,并且这形成了读取的代码的历史记录,从该历史记录中获得已知的代码字的结论。作为从历史记录中示教的可替代方案,也可以设想以其他方式预先给定或参数化已知的代码字。因此,可以已知应用中的部分代码字总是或至少暂时携带与制造商缩写或批号相同的信息。可以设想将代码的读取与数据库系统进行比较,以便比较待读取的代码的这种固定的组成部分并使其保持最新状态。
优选地,如果代码字在历史记录中在位置处出现至少一次,则将该代码字视为对于该位置是已知的。从中产生的代码字池(Fundus an
Figure GDA0003040079200000051
)用于预校正,这些代码字在相应的位置处早已出现过一次。这种条件很弱,因此,预校正使用不属于其位置的代码字来替换是非常可能的。测试方法形成针对这种错误替换的已知代码字的过滤。
更优选地,如果代码字在历史记录中在位置处出现至少n次,则将该代码字视为对于该位置是已知的。根据n相较于总体的历史记录有多大,相应更有可能的是,在相应位置处待替换的代码字实际上是当前的代码中的已知的代码字。
优选地,如果代码字在历史记录中在位置处重复至少n次,则将该代码字视为对于该位置是已知的。在更严格的标准中,代码字必须重复,即不中断地连续读取n次。随着对已知代码字的要求越来越高,预校正使得能够读取正确的代码内容的可能性也随之升高。但为此预校正可用的可能性也更小,特别是在代码字在历史记录中仅很少重复或根本不重复n次的情况下。
优选地,如果先前在位置处直接读取了具有代码字的另一代码,则将该代码字视为对于该位置是已知的。因此,在这里会考虑直接的历史记录并要求直接在当前读取尝试之前在已知代码字的位置处不读取别的东西,更确切地说是特别地结合已提到的至少针对先前直接读取的代码的标准,优选地结合连续针对n个先前直接读取的代码的标准。
优选地,仅在一个代码字在至少一个位置处已知时才实施预校正。只要通过从历史记录或从其他来源的示教没有位置有已知的代码字,就不进行预校正。优选地,必须完成示教阶段,即必须满足针对具有所需频率或不间断重复特别是直到当前读取尝试的先前已经读取的代码字的标准之一。如果在应用中代码没有重复的部分,则有可能的是,本身可能的预校正长时间不用或根本就不用。它在这样的应用中也几乎不可能带来利润。如果代码字在某个时候被读取过一次,则可以用最弱的标准(即,代码字早已已知)非常快速顺利地结束示教阶段,但先验知识如此薄弱,使得当代码强烈变化时几乎不能期望提高读取速率。因此,优选地,应考虑到应用中出现的代码来选择针对已知代码字的标准。
附图说明
下面将根据实施方式并参照附图对本发明的特征和优点进行更详细的阐述。图中示出:
图1是在传送带上方示例性安装代码阅读器的示意性三维概览图,在该传送带上输送具有待读取的代码的对象;
图2是具有重复的代码段的几个被读取的代码的示例图示;
图3是用于解释可以如何找到重复的代码段的表格图示;
图4是通过重复已知的代码字及其相关的代码内容的表格图示;以及
图5是根据通过重复已知的代码字,通过随后成功的读取尝试对先前不可读的代码进行预校正的表格图示。
图1示出了安装在传送带12上方的光电代码阅读器10,如箭头16所示,该传送带将对象14输送通过代码阅读器10的检测区域18。对象14在其外表面上携带代码区域20,该代码区域由代码阅读器10检测并进行评估。这些代码区域20只有在它们安装在上侧或至少从上方可见时才可以被代码阅读器10识别。因此,不同于图1中的图示,为了读取比方说在侧面或下面安装的代码22可以从不同方向安装多个代码阅读器10,以便能够从所有方向实现所谓的全方位读取。在实践中,多个代码阅读器10到读取系统的布置通常实现为读取通道。代码阅读器10在传送带上的这种固定应用在实践中是非常普遍的。然而,本发明涉及代码的读取或代码阅读器10本身,因此该示例应不被限制性地理解。
代码阅读器10使用光接收器24检测所输送的对象14和代码区域20的图像数据,该图像数据由评估单元26通过图像评估和解码方法进一步处理。对本发明而言重要的不是具体的成像方法,从而使得可以根据任何已知的原理构造代码阅读器10。例如,无论是通过行形图像传感器还是扫描方法,每次仅检测一行,并且评估单元将在输送运动过程中检测到的行组合成图像数据。使用矩阵形图像传感器早已可以在捕获中检测到更大的区域,其中在这里也既可以在输送方向上也可以在横向于输送方向的方向上对照片进行组合。代码阅读器10经由接口28输出诸如所读取的代码或图像数据的信息。
下面参考图2至图5对通过预校正来改进解码方法进行了阐述,代码阅读器10通过该解码方法读取代码。优选地,这在评估单元26中进行。但也可以设想经由接口28输出图像数据或中间结果并将至少一部分解码转移到上级系统,诸如控制计算机、网络或云。将图像数据进行预处理以进行划分和找出代码区域20以及解码本身被假定为已知的并且未进行描述。此外,以使用里德-所罗门校正来读取代码为例对本发明进行阐述。在这种情况下,涉及的不是具体的里德-所罗门方法,而是其可以校正达到一定数量的错误的代码字的能力。也可以设想其它测试方法或校正方法,只要待读取的代码类型支持它们即可。在一些实施方式中,如果测试方法不能校正错误,而仅验证所读取的代码内容,也就足够了。
图2示出了几个被读取的代码(这里是代码长度为45的数据矩阵代码)的示例图示。代码的这种序列也被称为历史记录(Historie)。在许多实际应用中,所读取的代码并不完全不同,而是总是存在反复出现的部分。示例是具有代码的类似商品,诸如香烟盒、系统内代码中所包含的制造商码标识、仅最后加上的序列号等等。
图2中所示的代码来自图像序列A和一小时后捕获的图像序列B。显然,在读取代码的应用中存在重复的字符,这些重复的字符在这里分成两个块:010871848116971121和<1d>240FA062838.03。同时,在这里示出了被解码的字符,而不是从中获得字符的代码字。如果用“?”标记改变的字符,则所有读取的代码可以以这种形式呈现:
010871848116971121?????????????<1d>240FA062838.03
在这种情况下,相比于13个可变字符,18+15个固定字符形成大多数。
根据本发明的预校正利用了有关重复的代码字和相应的字符的先验知识。这些代码字被假定为其位置已知以用于进一步操作。
在优选的实施方式中,继续传统的读取操作,直到对代码进行读取尝试时出现读取错误。在该代码中,太多代码字有缺陷或受到其它干扰,因此,里德-所罗门校正的能力不够。然后,在至少一个位置处用已知的代码字来替换待读取的代码的代码字,或者在某处或优选地,使得预校正有针对性地在至此为止的解码结果不同于已知代码字的位置处也能发挥一些作用。接着,重新通过里德-所罗门校正进行读取尝试。如果预校正已通过其位置处已知的代码字使用了正确的代码字,则里德-所罗门校正的校正能力现在有可能足以读取整个代码。否则,可以通过用其它或更多相应位置已知的代码字替换来进行其他的尝试。
可替代地,根本不用首先尝试使用里德-所罗门校正来读取整个代码。从一开始就分别用该位置已知的代码字来替换一些位置或所有位置。在上面的示例中,必须还将相对较少的对应于“?”的代码字进行解码,并且显然,超过里德-所罗门校正的能力是不太可能的。优选地,只有当代码中已知的代码字有相应较高的可能性位于其相应的位置处并且关于这个事实的先验知识也相应可靠时,应优选选择这种方式。
因此,根据这两种处理方式,预校正可以确保了里德-所罗门校正的另外不可读的代码可以被再次访问,并从而提高读取率。
图3示出了表格图示,根据该表格图示对用于学习重复的代码段的学习阶段进行描述,以便为相应的位置找出已知的代码字。
在这种情况下,目的是找出在目前的应用情况下是否出现了重复的数据代码字序列。如果是这种情况,则在其相应位置处的重复的代码字被示教为已知的,并用于预校正。
图3中的表格示出了符号大小为14x14且数据代码字长度为8的数据矩阵代码类型的示例。在变量CW_重复(CW_repetition)中为数据代码字的八个位置CW1…CW8存储了先前已知的代码字。不重复的位置用特殊标记(在这里用为-1)表示。如果在示教阶段结束时这样的标仍记保持不变,则这对应于上面的“?”。在此这种情况下应注意,在上面“?”情况下解码的字符不变,但CW_重复包含代码字。这可以最终相互转换,但不是同一个。一个代码字可以代表两个字符(例如:CW5=197对应于两个字符“67”),相反,两个代码字可以代表一个日文汉字字符。因此,解码的字符中的位置也不一定与在实施例中的且关于CW_重复的位置所涉及的代码字的那些位置相同。
在图3中的表格的最上一行中记入了CW_重复先前的值(旧的)。第二行示出了对此进行比较的当前读取的代码。第三行中是通过当前的代码修改的CW_重复的值(新的)。
对于示例性当前读取的第二行的代码,在位置CW1..CW5以及CW8处分别读取的代码字与根据第一行的CW_重复的至此为止重复的代码字一致,因此,这些代码字会被接收到第三行中。在位置CW6处产生了偏差,因此这里现在为不重复的代码字设置标记-1。在位置CW7处至此为止没有重复,因此也这样接管了。
例如,用第一次成功读取的代码来初始化CW_重复。在学习阶段期间,优选已经使用了里德-所罗门校正,而不使用预校正,因为还没有示教过已知的代码字。由于只有成功读取的代码才用于示教,因此使用哪种具体的读取方法来获取信息最终也不重要。
在一定数量的成功读取的代码(利用其来修改CW_重复的)后,示教完成。该数量是方法的参数,其反映了对相应的位置已知的代码字所需的信任,并且也可能受条件限制,诸如必须读取一定数量的代码,其中CW_重复不再改变。
所描述的方法要求在整个示教期间必须重复位置处的代码字,以便视为已知的。也可以设想其它标准。例如,CW_重复也可以是每个位置多个代码字的字段,并且会计数在示教期间这些代码字出现的频率,特别是连续地接连出现的频率。当代码字总是会在其位置上被找到时,那么代码字不仅被视为已知的,而且还被视为超过某一定数量或频率。在这种情况下,每个位置只有最频繁的代码字可以被示教为已知的。但是也可以设想将多个最频繁出现的代码字用于具有不同假设的预校正的多次尝试,其中已知代码字的候选被一一尝试。显然,在这样较弱的标准下,对关于已知代码字的先验知识的信任较低,并且在多次预校正尝试中,对运行时间也有影响。为此,更多考虑其中可以应用该方法的应用。
示教阶段完成后,在变量CW_重复中识别,根据给定的标准在本应用情况中是否存在至少一个重复的数据代码字。如果是这种情况,则可以接着在操作阶段或评估阶段中使用预校正。
另外,不一定非得示教已知的代码字。相应的先验知识也可以以其它方式来获得,例诸如通过参数化或与其中使用了代码阅读器10的上级系统的数据库进行通信来获得。
作为起点,图4示出了变量CW_重复的示例性值用于预校正及其解码。原则上可以与常规操作并行运行的示教方法现已完成,因此,对CW_重复所要求的标准得以满足。优选地,该系统包括标志,通过该标志表明应使用CW_重复且不再将其示教。
图5是具有预校正的读取尝试的表格图示。在示教后的时刻,诸如数据代码字长度、符号大小和代码类型的通用的代码信息是已知的。可以设想代码阅读器10为不同的代码字长度、符号大小和代码类型示教相应的预校正并根据当前待读取的代码使用预校正。表格的结构与图3和图4中相同,并且第一行再次示出CW_重复的值。因此,在CW1…CW5和CW8位置处有这些位置已知的代码字形式的先验知识供使用。当然,在其他情况下,已知代码字的比例可以更大或更小。
在第二行中,示出了当前待读取的代码的读取尝试的结果,优选借助里德-所罗门校正来进行。解码器返回了读取错误(NoRead,里德-所罗门错误),因为超出了错误校正能力。
现在,作为预校正的一部分,在表格的第一行中使用所存储的、CW_重复的重复的数据代码字中的至少一个,以便覆盖在该位置读取的第二行的数据代码字。该预校正的结果被记入在表格的第三行中。如果当前读取的数据代码字中只有一个或几个被来自CW_重复的数据代码字替换,则这应在也存在差异的地方发生。这在图5中可以是位置CW1...CW4。当仅在位置CW5或CW8处进行替换时,预校正可能是无效的。也可以设想在不同的位置处通过预校正实施多次尝试。非常简单和有希望成功的可行方案在于,直接在没有比较的情况下在一个步骤中用所有已知的代码字进行预校正。因此,在用“-1”或“?”标记的具有可变内容的位置处接受当前读取的第二行的代码的代码字,在具有重复的内容的其它位置处接受来自第一行的CW_重复的代码字。
在数据代码字的预校正之后,现在再次应用里德-所罗门校正,来校正具有非重复内容的位置处的错误。如果通过预校正成功地用正确的代码字来替换了最初错误读取的代码字,那么部分错误校正能力由此被释放(freiwerfen)。在图5的示例中,其中里德-所罗门校正的结果被记入在表格的第四行中,不需要进行进一步校正。因此,读取率通过两个阶段得到改进:在预校正中根据先验知识替换不可读的代码字。此外,还可以通过在里德-所罗门校正中校正其它错误来实现。
里德-所罗门校正也可能识别出通过预校正进行替换中的一个何时不适用于待读取的代码。然后,在这一点上,预校正可能没有效果,而是继续利用错误校正能力。这意味着,与假设相反,所涉及的位置处的代码字与CW_重复不一致,这优选对CW_重复产生如示教期间不重复代码字时一样的影响。
尽管进行了预校正,但错误校正能力仍可能会被超出。这可能是因为预校正在当前待读取的代码中在至少一个位置处替换了不属于那里的代码字,因此,没有消除错误或者甚至引入了额外的错误。也可以设想预校正是完全正确的,但是在代码的可变部分中仍然包含了太多错误。在这些情况下,在预校正和里德-所罗门校正这两个阶段后读取错误仍然保持。
图5中表格的最后一行还示出了根据双重修正方法读取的代码的解码结果。
同样,在通过预校正进行操作期间,优选在与示教阶段中一样进一步更新CW_重复。由此,可识别出至此为止重复的代码字何时在其各自的位置处发生改变。然后,在这种情况下,优选应至少为相关的位置重新开始CW_重复的示教阶段,直到其结束不再实施预校正为止。
变量CW_重复和相关的值可以经由接口28输出。这能够实现诊断并且例如在事后或出于模拟目的想重新调整读取情况时是有用的。
用于通过预校正来读取代码的根据本发明的方法提高了在存在数据代码字序列的较频繁重复出现的部分的应用中的读取速率。根据代码的重复部分,与可变部分相比,这能够甚至远远超出里德-所罗门校正的错误校正能力来读取具有干扰或缺陷的代码。

Claims (29)

1.一种用于读取光学代码(20)的方法,所述光学代码具有多个代码字,其中,捕获具有所述光学代码(20)的图像数据并进行评估,以便读出所述代码字,并且其中,通过与校正或验证代码相关的测试方法确定是否正确读取了所述光学代码,
其特征在于,
在预校正中,利用重复的代码字和相应的字符的先验知识,在所述光学代码(20)的至少一个位置处的代码字由该位置已知的代码字替换,并且在所述预校正之后实施所述测试方法。
2.根据权利要求1所述的方法,其中,所述测试方法校正读取错误。
3.根据权利要求2所述的方法,其中,所述测试方法具有里德-所罗门错误校正。
4.根据权利要求2-3中任一项所述的方法,其中,对于所述测试方法必须对在所述预校正中替换的位置处已知的代码字进行校正这种情况,该位置已知的代码字不再被视为是已知的。
5.根据权利要求1-3中任一项所述的方法,其中,从读取的光学代码(20)的历史记录中示教已知的代码字及其位置。
6.根据权利要求4所述的方法,其中,从读取的光学代码(20)的历史记录中示教已知的代码字及其位置。
7.根据权利要求5所述的方法,其中,如果代码字在所述历史记录中在一位置处出现至少n次,则假定该代码字对于该位置是已知的,其中n≥1。
8.根据权利要求6所述的方法,其中,如果代码字在所述历史记录中在一位置处出现至少n次,则假定该代码字对于该位置是已知的,其中n≥1。
9.根据权利要求5所述的方法,其中,如果先前在一位置处直接读取了具有代码字的另一光学代码(20),则假定该代码字对于该位置是已知的。
10.根据权利要求6-8中任一项所述的方法,其中,如果先前在一位置处直接读取了具有代码字的另一光学代码(20),则假定该代码字对于该位置是已知的。
11.根据权利要求1-3和6-9中任一项所述的方法,其中,仅当代码字在至少一个位置处是已知的时,才实施所述预校正。
12.根据权利要求4所述的方法,其中,仅当代码字在至少一个位置处是已知的时,才实施所述预校正。
13.根据权利要求5所述的方法,其中,仅当代码字在至少一个位置处是已知的,才实施所述预校正。
14.根据权利要求10所述的方法,其中,仅当代码字在至少一个位置处是已知的时,才实施所述预校正。
15.一种用于读取光学代码(20)的方法,所述光学代码具有多个代码字,其中,捕获具有所述光学代码(20)的图像数据并进行评估,以便读出所述代码字,并且其中,通过与校正或验证代码相关的测试方法确定是否正确读取了所述光学代码,
其特征在于,
在预校正中,利用重复的代码字和相应的字符的先验知识,在所述光学代码(20)的至少一个位置处的代码字由该位置已知的代码字替换,其中,仅当先前根据测试方法不能够读取所述光学代码(20)时,才实施所述预校正。
16.根据权利要求15所述的方法,其中,所述测试方法校正读取错误。
17.根据权利要求16所述的方法,其中,所述测试方法具有里德-所罗门错误校正。
18.根据权利要求16-17中任一项所述的方法,其中,对于所述测试方法必须对在所述预校正中替换的位置处已知的代码字进行校正这种情况,该位置已知的代码字不再被视为是已知的。
19.根据权利要求15-17中任一项所述的方法,其中,从读取的光学代码(20)的历史记录中示教已知的代码字及其位置。
20.根据权利要求18所述的方法,其中,从读取的光学代码(20)的历史记录中示教已知的代码字及其位置。
21.根据权利要求19所述的方法,其中,如果代码字在所述历史记录中在一位置处出现至少n次,则假定该代码字对于该位置是已知的,其中n≥1。
22.根据权利要求20所述的方法,其中,如果代码字在所述历史记录中在一位置处出现至少n次,则假定该代码字对于该位置是已知的,其中n≥1。
23.根据权利要求19所述的方法,其中,如果先前在一位置处直接读取了具有代码字的另一光学代码(20),则假定该代码字对于该位置是已知的。
24.根据权利要求20-22中任一项所述的方法,其中,如果先前在一位置处直接读取了具有代码字的另一光学代码(20),则假定该代码字对于该位置是已知的。
25.根据权利要求15-17和20-23中任一项所述的方法,其中,仅当代码字在至少一个位置处是已知的时,才实施所述预校正。
26.根据权利要求18所述的方法,其中,仅当代码字在至少一个位置处是已知的时,才实施所述预校正。
27.根据权利要求19所述的方法,其中,仅当代码字在至少一个位置处是已知的,才实施所述预校正。
28.根据权利要求24所述的方法,其中,仅当代码字在至少一个位置处是已知的时,才实施所述预校正。
29.一种光电代码阅读器(10),具有评估单元(26)和用于从接收光生成图像数据的至少一个光接收元件(24),在所述评估单元中实施根据权利要求1-28中任一项所述的用于读取光学代码(20)的方法。
CN201810637531.XA 2017-07-13 2018-06-20 用于读取光学代码的方法 Active CN109255276B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17181248.0 2017-07-13
EP17181248.0A EP3428835B1 (de) 2017-07-13 2017-07-13 Verfahren zum lesen eines optischen codes

Publications (2)

Publication Number Publication Date
CN109255276A CN109255276A (zh) 2019-01-22
CN109255276B true CN109255276B (zh) 2021-11-30

Family

ID=59350724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810637531.XA Active CN109255276B (zh) 2017-07-13 2018-06-20 用于读取光学代码的方法

Country Status (4)

Country Link
US (1) US10489622B2 (zh)
EP (1) EP3428835B1 (zh)
CN (1) CN109255276B (zh)
DK (1) DK3428835T3 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK3855342T3 (da) * 2020-01-27 2022-02-07 Sick Ag Læsning af optiske koder
EP4258160B1 (de) 2022-04-05 2024-05-08 Sick Ag Lesen von optischen codes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553084A (en) * 1995-01-06 1996-09-03 Intermec Corporation Error correction enhancement for code one and other machine-readable symbologies
US5880451A (en) * 1997-04-24 1999-03-09 United Parcel Service Of America, Inc. System and method for OCR assisted bar code decoding
CN102483809A (zh) * 2009-09-10 2012-05-30 Rf控制有限责任公司 用于射频识别对象监视系统的校准和操作保证方法和设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19840455A1 (de) * 1998-09-04 2000-03-09 Sick Ag Verfahren zum Betreiben eines Strichcodelesers
US6330972B1 (en) * 1998-10-22 2001-12-18 Intermec Ip Corporation Error correction enhancement for code 93i and other machine-readable symbologies
EP2677492A1 (de) * 2012-06-22 2013-12-25 Sick Ag Codeleser und Verfahren zur Online-Verifikation eines Codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553084A (en) * 1995-01-06 1996-09-03 Intermec Corporation Error correction enhancement for code one and other machine-readable symbologies
US5880451A (en) * 1997-04-24 1999-03-09 United Parcel Service Of America, Inc. System and method for OCR assisted bar code decoding
CN102483809A (zh) * 2009-09-10 2012-05-30 Rf控制有限责任公司 用于射频识别对象监视系统的校准和操作保证方法和设备

Also Published As

Publication number Publication date
CN109255276A (zh) 2019-01-22
DK3428835T3 (da) 2019-07-01
US10489622B2 (en) 2019-11-26
US20190018996A1 (en) 2019-01-17
EP3428835B1 (de) 2019-05-15
EP3428835A1 (de) 2019-01-16

Similar Documents

Publication Publication Date Title
US5262626A (en) Decoding bar codes from multiple scans using element replacement
CN109255271B (zh) 用于读取光码的光电代码阅读器和方法
AU681421B2 (en) Bar code scan stitching
US5880451A (en) System and method for OCR assisted bar code decoding
US5493108A (en) Method and apparatus for recognizing and assembling optical code information from partially scanned segments
CN109255276B (zh) 用于读取光学代码的方法
US5777310A (en) Problem reduction with low level information integration in bar code decoding
JP3115003B2 (ja) モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置
US20030057282A1 (en) Symbology determination to aid decoding in a bar code scanning system
US6189792B1 (en) System and methods for exemplar based bar code error detection and correction
US10460142B2 (en) Barcode identification method for improving decoding reliability by correcting image distortion
US8888003B2 (en) Method for decoding a two-dimensional optical code
JPH096885A (ja) バーコード復号方式
CN101833645B (zh) 一种基于码字组合的条码解码方法
CN112906418A (zh) 用于使用视觉标记的自动递送证明的装置、方法和计算机程序产品
US20230316025A1 (en) Reading optical codes
CN109697382B (zh) 一种线性条码边缘失真处理方法及设备
US20090194590A1 (en) Apparatus And Methods For Decoding Images
US6494376B1 (en) Compensation for scan line variations in a bar code scanner system
CN115775004A (zh) 一种一维码识别方法和装置
JP2019197492A (ja) 光学的情報読取装置及び光学的情報読取方法
JPH0765105A (ja) バーコード読取装置
JP2014164520A (ja) バーコード読取装置
JPH05298472A (ja) バーコード読取装置

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