CN103339641B - 一种用于解码二维光学代码的方法 - Google Patents
一种用于解码二维光学代码的方法 Download PDFInfo
- Publication number
- CN103339641B CN103339641B CN201080071124.9A CN201080071124A CN103339641B CN 103339641 B CN103339641 B CN 103339641B CN 201080071124 A CN201080071124 A CN 201080071124A CN 103339641 B CN103339641 B CN 103339641B
- Authority
- CN
- China
- Prior art keywords
- group
- code
- code word
- combined
- image
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K5/00—Methods or arrangements for verifying the correctness of markings on a record carrier; Column detection 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
-
- 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
- G06K7/1465—Methods for optical code recognition the method including quality enhancement steps using several successive scans of the optical code
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
Abstract
一种用于解码二维光学代码的方法。对由设定数量的码字形成的二维光学代码解码的方法,其中基于单个获取的图像对代码解码已经不成功,该方法包括:分析获取的图像以及至少一个另外获取的图像,和获得已识别码字的值的相应组和另外组。每一码字能够取或者是未定义值,或者相反,如果该码字已被识别,取数字值。码字的被组合组被建立,且该被组合组的每一码字,被分配该组和/或另外组的码字的值,而用于误差的检测和自纠错的算法,被应用于该被组合组,以获得该二维代码的成功解码的确认。组合码字的该组和另外组,包括:对所述被组合组的每一码字,比较该组与该另外组的对应码字,并且如果对应的码字有各自不同的数字值和另外数字值,且所述被组合组的所述码字被识别为不可靠,则该被组合组的码字被分配未定义值,以便借助应用误差检测和自纠错算法,使检验更有效。
Description
技术领域
本发明涉及一种用于解码二维光学代码的方法。
尤其是,本发明涉及一种对其中根据单个获取的图像解码不成功的二维光学代码进行解码的方法,例如,该方法对读取被定位在反射表面上的二维光学代码,有特别的应用。
背景技术
用语“二维光学代码”,是指一组图形标记,被定位在标签或直接在产品上,借助该标记,信息与沿一个或多个方向安排的被分成白色、黑色或有色小块(cell)的表面相关联。市场上最普遍的一些二维符号表示(symbology)是PDF-417、QR Code、或Aztec,并且不同符号表示的二维代码,可以由形状(例如正方形或矩形),和/或由编码数据的方式(例如矩阵排列或重叠的条码),和/或由存储的数据的量区别。
所有这些二维代码,即使它们涉及符号表示的不同类型,也能够使大量“有意义的数据”在短的空间中通过适当排列的单一信息的组合而被编码。应当指出,用语“相关信息”或“有意义的数据”,表示被编码并被存储在二维代码中的任何信息或信息组。
二维光学代码是由某总数的码字(在下面的行文和/或图中也用CWs标识)形成,并且代表按基本的白色、黑色或有色小块的一定排列编码的字母数字值的每一码字(在下面的行文和/或图中也用CW标识),构成包含在该代码中的单一信息。
除形成有意义的数据所必需的码字外,二维光学代码还包括冗余的码字,它使读出误差能被检测,并可能由用于对误差自纠错的特定算法改正,这一点在下面将更详细说明。
为了对二维代码解码,代码被定位其上的图像,借助已知的图像分析方法被分析,以便获得向该代码分配的一组码字值,等于该二维代码从其形成的码字总数。如果该码字被识别,则每一码字能够被识别并且因而取某一数字值,或者相反,如果,例如因为图像中码字被定位的部分在该图像的获取时被损,该码字不被识别,则能够取未定义值。
该误差检测和自纠错算法,提供填充未定义值的码字,另外亦称洞,以及改正不正确码字的两种可能性。
目前被所有主要二维符号表示所使用的误差检测和自纠错算法,是里德-索罗门(Reed Solomon)算法(在下面的行文和/或图中也用RS标识),但更多的误差检测和自纠错算法也是已知的,诸如举例说,“涡轮代码”或“卷积代码”。用语“误差检测和自纠错算法”在下面是指并不受限制地指里德-索罗门代码或“Turbo代码”或“卷积代码”。
由于误差检测和自纠错算法的应用,所以想到二维代码的解码,该解码包括:分析代码被定位其上的图像;识别作为代码一部分的码字;以及借助应用误差检测和自纠错算法,诸如举例说,RS算法,检验该代码,如果被分析图像已被部分地恶化,从而一定码字的值是不正确的或未定义的,则该解码也能够成功进行。
换句话说,二维代码能够被光学代码读取器解码,即使它是部分不可用的,例如,因为它被覆盖或被斑点、磨损破坏,或者还如果它被定位在反射表面上。例如,被定位在反射表面上的光学代码的图像,常常由于图像的一些区中亮的光斑而部分地被破坏。
尽管如此,但当代码的图像的不可用或破坏的部分变得过大时,误差检测和自纠错的RS算法,不能借助分析单幅图像,对有意义的编码数据成功地解码,因此还必须分析同一代码的更多的图像。
在手动读取器的情形下,用户因不接受任何良好的读取注意事项,往往移动或使读取器不同地取向,以获取与先前的图像不同地被照亮的图像。另一方面,在固定的读取器系统的情形下,载有代码的物体被外部装置或用户移动,作随机的或被引导的运动,以确保在高亮度区中连续地获取图像,或者相反,不良照明区位于不同的位置中。
把来自连续图像的信息组合,是周知的,以便用另外的图像中被识别的对应码字,补足图像中因获取引起的没有被识别的码字,以便获得足以使整个代码能被解码的信息。从一组码字和从另外一组码字,获得一组被组合的码字,用于该代码的解码。
US7,344,080公开一种编码信息读取器,配有导轨,导轨中含有二维代码的基底(通常是塑化卡片)相对于获取并对图像解码的装置移动。该装置获取一系列图像,这些图像可以含有代码的一部分或整个代码,随后,这些图像被组合,以借助组合方法获得该代码的完整解码,该组合方法再调用US5,821,519中说明的方法,它是涉及直线代码的组合方法。
尤其是,根据同一直线代码数个部分读取的信息的组合,对编码信息解码的方法,一般称为“缝合(stitching)”方法。
US5,821,519涉及“缝合”直线条码,并且是根据从含有各个部分直线扫描的图像开始获得的条码的重构。在每一被分析的图像中,一系列字符被识别,且在各个不同图像中,搜索可能有预设长度的,含有全同信息片段的叠加区,藉此组合部分代码片段。因为直线代码总包括“开始”字符,“停止”字符或“定位字符”,这些字符在各次部分扫描中也被搜索,以便把被识别的每一字符,存储在字符的重构组中正确的位置,藉此对条码解码。
另外,向其值被识别的每一字符分配“预期可靠度值”(ER),以确保被重构的条码含有具有最高ER值的被识别字符。公开的“缝合”方法,尤其要求所有字符都被识别,否则不可能对条码解码。
然而,应用US5,821,519公开的涉及直线条码并专用于直线条码的“缝合”方法,如果被应用于二维条码,仍然造成一些问题。
首先,特别是重复的字符在二维代码中不存在,借助重复的字符,能够识别可用于组合部分代码部分的叠加区。另外,如果字符的重构组包括有未定义值的字符,则US5,821,519的解码方法失效。这种逻辑确实不能应用于二维代码,因为如前所述,二维代码可以被解码,即使它有未定义码字。
另外,基于预期可靠度(ER)值上的字符的值的接受性,偏好有最高ER值的字符,引进概率性的选择,且有不正确值的字符被引进字符的重构组,因为它们非常可能发生。
里德-索罗门算法的一个性质是,它用已知码字而不是不正确码字更有效地操作,因为为了再产生丢失的码字的值,该里德-索罗门算法考虑仅仅一个附加码字,同时用于改正其值不正确的码字,该里德-索罗门算法必须考虑两个附加的码字。因此,从涉及直线代码的已知“缝合”方法导出的二维代码的解码方法,不是最佳的,并且引入对解码自身的限制,因为它往往填充所有码字,也接受不正确的值,从而使里德-索罗门算法的操作不太有效。在手动读取器的情形下,或在固定的视觉系统的情形下,所有这种情况被反映在对良好读取消息的长的等待中,该长的等待全面地使解码更缓慢。
发明内容
本发明的目的,是提供一种用于对光学代码解码的解码方法,对于如果根据单个被获取的图像对代码的解码不成功,因而必需考虑数个图像的组合的对二维光学代码的解码,该方法尤其有效。
本发明的再一个目的,是借助开发该误差检测和自纠错算法的性质,使二维代码的解码变得快速。
按照本发明,是提供一种如权利要求1所定义的解码方法。
归因于本发明,一种解码方法被提供,该方法尤其专用于二维光学代码,包括图像的组合方法,按照该方法,在对应码字存在时,这些码字的值是不同的,如果该被组合组的码字被评估为不可靠的,则该方法向该被组合组的对应码字,分配未定义值。
按照一个实施例,如果同一值被识别许多次,至少等于预定可靠度阈值的话,该阈值尤其是大于1,则码字被判断为可靠。
照此,因为在码字被标记为可靠之前,被要求连续一定数量的次数被看到总与自身全同,所以有不正确码字的概率被降低。在对照码字的值的情形下,如果对该码字的可靠度阈值没有被达到,则最好向该码字分配未定义值。
另外,把未定义值引进被组合值的组中,使该误差检测和自纠错算法成功的情况更可能发生,因为如前所述,该算法在确定丢失的码字的值而不是改正不正确的码字中,更为有效。
附图说明
本发明参照附图能够被更好地理解和实施,这些附图以非限制例子的方式,说明本发明的一些实施例,附图中:
图1画出二维条码的图像,它的符号表示是PDF417,按在照明条件中用光学读取器获取;
图2画出图1中二维条码的另外图像,按在另外一种照明条件中被获取;
图3画出作为本发明目的的解码方法的流程图。
具体实施方式
参考图1,图上画出的图像,是用读取器(图上没有画出)获取的,其中给出二维代码1,尤其是PDF-417符号表示代码。
图1的二维代码,被表示为白色背景上相继的基本黑色和白色小块。能够被注意到,代码的部分图像2已被恶化,例如因为该二维代码被定位其上的支承表面是反射性的。该部分图像2包括高度发光的白斑3,其上该部分图像2的构成二维代码的基本小块不能被识别。通常,白斑有几乎均匀地白的中心区4和相反地不清晰的边缘5,该边缘成为恶化部分与连续的基本白色或黑色的未被恶化小块的边界。重要的是要强调指出,排列在不清晰边缘5中的基本小块,常常能够得出有不正确值的码字CW或数个码字CWs。事实上,边缘5的基本小块,如果它们不被完全恶化,则能够是可随机解释的,但可能不会再产生对码字的正确值编码的正确的白色或黑色小块排列。
二维代码1包括某总数的码字,并从这些码字的值的组合,能够编码和在代码中存储“有意义的数据”。该码字的总数,能够借助分析该二维代码直接获得,因为一些符号表示明显地表明该总数,该总数是由基本小块的特定排列编码的。另一方面,在其他符号表示中,该总数可从分别表示基本小块的特定排列的行数和列数的两个数获得。
应当理解,在下面,不失一般性,码字的总数可借助分析该二维代码直接获得,或者可借助行数乘以列数的计算而从此获得。
另外,从下面应当理解,该解码方法能够包括两者:分析已经获取的图像,这些图像是从光学代码读取器被连续存储的图像;和经由光学代码读取器获取某一图像,以便以后立刻分析该图像并只在前一个图像的分析结束时获取随后的一个图像。
在图3,用A表示:分析被获取的图像,以获得二维代码的码字的总数。
在图3,用B表示:评估该码字的总数是否已经从被获取的图像获得。
应当理解,如果在展示二维代码的图像中,甚至不可能获得码字的总数,则该图像必须被废弃,因为它不可分析,而步骤A必须被重复,即,必须分析新的图像。
如果可能从该图像获得码字的总数,则该图像被进一步分析,以便获得被识别码字的值的对应组,其大小(dimension)等于码字总数,可向该图像分配。每一码字尤其能够取数字值,如果该码字已被识别的话,或者反之,取未定义值,如果该码字不被识别的话。
随后借助应用误差检测和自纠错算法,检验该组码字值,该算法在该情形下是里德-索罗门算法,但也可以是“Turbo代码”或“卷积代码”,以取得二维代码的成功解码的确认。
在图3,用C表示:分析图像,以获得被识别码字的值的对应组,并借助应用RS算法,检验该组。
用D表示:评估该检验是否成功。
如果由里德-索罗门算法的检验已经成功,则归因于单个图像的分析和检验的二维代码的解码已经可能,而不需要与不同图像的码字的组合。必须强调,在现有解码方法中,已经知道在每一新图像获取时,应用上面方法的步骤A到D。该方法的这些步骤仍然为了完整性的原因,已经在此出示。
如果由里德-索罗门的检验没有成功,则从该图像获得的该组码字必需被用于与其他图像,诸如举例说,图2中的另外图像的码字组合。无论如何,存在不同组的码字被评估,例如先前已经建立并存储的被组合组,以评估我们是在图像之间的组合的开始处,还是在该方法后面的步骤。
用E表示:评估已经建立的码字的被组合组是否已经存在,利用它,从该图像获得的码字的获得组能够被组合。
如果该评估有负面结果,即,我们是在图像之间的组合的开始处,那么码字的被组合组被建立,组的大小等于码字总数。
用J表示:存储从该图像获得的该组码字,并建立码字的被组合组。
另外被获取的图像,例如图2中的图像,是指同一个二维代码1,它也有代码的恶化部分图像22,包括白斑23,其中心区24几乎是均匀地白的,并且其边缘25是不清晰的。应当强调,该另外图像的白斑23被定位在与该图像的白斑3不同的区中,并且还有不同的几何的形状,因为它是在不同的发光条件下获取的。
该另外图像,如先前所述,也被该方法的步骤A、B、C和D分析,获得与该另外图像相关联的另外组码字。如果通过单独另外组码字的里德-索罗门算法的检验是成功的,则该二维代码只用该另外图像解码,没有必要与不同图像的码字进行组合。该码字的该被组合组和该组因此被废弃,该组合是不必要的,因为解码方法已经终止。
如果通过里德-索罗门算法的检验没有成功,则评估码字的另外组能够与之组合的码字的被组合组是否已经存在。
方法的步骤E被执行,且评估有正的结果,因为从该图像获得的、码字的另外组能够与其组合的码字的被组合组和该组,已经存在。
然而,在被组合组中各组码字之间组合之前,要评估是否该图像和另外图像能组合在一起,因为它们都指同一个二维代码。该检验,下面将更详细地被公开,在图3中以F表示。
用F表示:评估该组合是否可能。
如果该组合可能,则该组和另外组的码字被组合,比较这些组的对应码字,并向被组合组的码字,分配该组和/或该另外组的码字值。
图3中,用G表示:把被组合组中码字的该组和该另外组组合。
在与被组合组的每一码字相关联的可靠度判据基础上,被组合组中每一码字,具体被分配未定义值或数字值,它出现在该组或该另外组的对应码字中。从该图像获得的组与从该另外图像获得的另外组的对应码字值,由此被比较:如果该组的一个码字有不同于另外组的码字的对应值的数字值,且如果该被组合组的对应码字被识别为不可靠,则向该被组合组的对应码字分配未定义值。
换句话说,最好把未定义条件引进被组合组的某些码字,而不是在对应码字的不同值的数字值之间选择,以便借助应用里德-索罗门算法对该被组合组进行更有效的检验。
为了识别被组合组的码字为可靠,一组可靠度指示符已经被建立,其大小与码字的总数相同,该组可靠度指示符与被组合组相关联。换句话说,每一指示符与被组合组的对应码字相关联,并在指示符的值的基础上,被组合组的每一码字被评估为可靠或不可靠。
如果对应的指示符具有的值大于预定可靠度阈值,该阈值是大于1的,则被组合组的码字被评估为可靠。反之,如果对应的指示符具有的值小于或相同于预定可靠度阈值,则该码字被评估为不可靠。
应当指出,该组可靠度指示符,是在被组合组的建立时建立的,而且在建立时,值1被分配给每一指示符。
此外,如果向被组合组的码字分配未定义值,则对应的指示符被分配值0。
在两种情形下,该对应的码字被识别为不可靠。
我们已经说过,对应码字之间的比较,向该被组合组的对应码字分配值,只有在被组合组的码字被识别为不可靠时才发生。
为此,与被组合组的码字相关联的可靠度指示符,是在向指示符分配值之前被评估,且该指示符是在对应码字之间的比较之后被更新或保持不变。
如果从该图像获得的组的与从该另外图像获得的另外组的对应码字有相同的数字值,则该重合的数字值被分配给被组合组的对应码字,而对应的可靠度指示符被更新为增加一单位。
如果从该图像获得的组的码字的值是数字,而从另外图像获得的另外组的对应码字的值是未定义的,则该数字值被分配给被组合组的对应码字,且对应的可靠度指示符保持不变。
如果从该图像获得的组的码字的值是未定义的,而从另外图像获得的另外组的对应码字的值是数字,则该数字值被分配给被组合组的对应码字,且对应的可靠度指示符被更新为被分配值1。
另一方面,如先前所述,如果所述被组合组的码字被识别为可靠,则不进行对应码字之间的比较,且对应的可靠度指示符不被更新。
在从该图像获得的组的与从该另外图像获得的另外组的对应码字之间的比较结束时,借助应用用于误差检测和自纠错的里德-索罗门算法,检验被执行。
用H表示:借助应用里德-索罗门算法,检验该被组合组。
用I表示:评估该被组合组的检验是否已经成功。
如果借助里德-索罗门算法的检验没有成功,则被组合组的码字与新的另外组码字的被识别的码字之间的组合,能够被重复,该新的另外组码字是借助上面指出的步骤A、B、C和D,由二维代码的新的另外图像获得的。
在另外新图像的基础上的这种重复,能够被进行下去,直到要么被组合组的解码已经成功地终结,要么重复的预设阈值数被达到。
与被组合组相关联的该组可靠度指示符,在新的更多码字值的基础上被更新,而存储在相继的图像的组合之间的每一可靠度指示符的值被保持。
为了使理解该解码方法更快速,借助比较存储的从该图像获得的组的与从该另外图像获得的另外组的码字,向被组合组的码字分配值,已经被说明。不失一般性,在被组合组的建立时,还可能向被组合组的所有码字值分配未定义值,并把被组合组的这样的码字值,与从该图像获得的该组的对应值,按照该方法的步骤G中先前所作说明组合。应当指出,在被组合组的建立时,该组可靠度指示符的每一指示符,在这种情形下被分配值0。
因此,能够不存储从图像获得的该组CWs,并且在随后建立该被组合组,但要按如下的方式继续进行:被组合组的和有关指示符组的值,在该建立后,立刻用该组CWs的值更新。在这种情形下,该另外组的码字,将与更新的被组合组的码字比较,而不与从该图像获得的该组码字比较。
现在,作为例子,让我们在下面考虑,与数个被获取图像相关联的码字值之间的组合,以说明本发明的方法。为此目的,每一组码字的表格表示被提供。让我们假定,10是二维代码的码字总数,那么该组、该另外组、以及可能的新的另外组的码字,都有大小10。我们还假设建立新的组,作为被组合组,用于存储所考虑码字的各组的组合的值,且该被组合组的码字被判断为可靠,如果对应的可靠度指示符大于或相同于3的话。让我们进一步假设,把从该图像获得的组与从该另外图像获得的另外组进行比较,以便向该被组合组的码字分配值(就是说,让我们假设,不连续地组合从该图像获得的组与刚刚建立的被组合组以及用该另外组更新的被组合组),从而我们使每一可靠度指示符初始化为1。
在表1和表2中,码字值分别对某一图像和另外图像被示出。
表1
No | 值 |
1 | 125 |
2 | 209 |
3 | 87 |
4 | 33 |
5 | 未定义 |
6 | 32 |
7 | 56 |
8 | 未定义 |
9 | 35 |
10 | 48 |
表2
No | 表 |
1 | 125 |
2 | 209 |
3 | 45 |
4 | 309 |
5 | 45 |
6 | 32 |
7 | 56 |
8 | 87 |
9 | 35 |
10 | 未定义 |
在表3中示出,从该图像获得的组的、从该另外图像获得的另外组的、被组合组的、以及可靠度指示符的组的表格表示,表3的表在对应码字之间的比较之后被更新。
表3
No | 组 | 另外组 | 被组合组 | 可靠度指示符 |
1 | 125 | 125 | 125 | 2 |
2 | 209 | 209 | 209 | 2 |
3 | 87 | 45 | 未定义 | 0 |
4 | 33 | 309 | 未定义 | 0 |
5 | 未定义 | 45 | 45 | 1 |
6 | 32 | 32 | 32 | 2 |
7 | 56 | 56 | 56 | 2 |
8 | 未定义 | 87 | 87 | 1 |
9 | 35 | 35 | 35 | 2 |
10 | 48 | 未定义 | 48 | 1 |
如果应用于该被组合组的里德-索罗门算法失效,则新的另外被获取图像被分析,而新的另外组被识别码字被获得,该新的另外组被识别码字在下面的表4中示出。
表4
No | 表 |
1 | 125 |
2 | 209 |
3 | 未定义 |
4 | 309 |
5 | 45 |
6 | 32 |
7 | 56 |
8 | 87 |
9 | 35 |
19 | 22 |
该另外组的码字与被组合组的码字组合,承受可靠度指示符的初步检验,以便评估被组合组的哪些码字要被认为已经是可靠的,并不再被修改。
在表5中示出,被组合组的、可靠度指示符的对应组的、被获取码字的新的另外组的、更新的被组合组的、以及在对应码字之间比较之后更新的可靠度指示符的对应组的表格表示。
表5
应当指出,在第二次组合结束时,有指数1、2、6、7和9的以粗斜体示出的码字,被标记为可靠,因为对应的可靠度指示符已经达到预定可靠度阈值。与其他码字组的任何随后的组合因而将不修改这些码字的值,甚至比较也不会做。
在表6中,从该图像获得的组的码字值的,以及第二次组合之后被组合组的表格表示被提供。
表6
No | 组 | 被组合组 |
1 | 125 | 125 |
2 | 209 | 209 |
3 | 87 | 未定义 |
4 | 33 | 309 |
5 | 未定义 | 45 |
6 | 32 | 32 |
7 | 56 | 56 |
8 | 未定义 | 87 |
9 | 35 | 35 |
10 | 48 | 未定义 |
因此能够看到,虽然该两个组也包括未定义值的码字,但本发明的方法,能够改变其数量和位置。与此同时,该方法增加了可靠的码字的数量,同时降低了被组合组中不正确码字的数量,从而使里德-索罗门算法能成功地执行该被组合组的检验。
例如,表1的组中未定义值的码字5和8已经被分配数字值,归因于与另外获取的码字的组合。
反之,表1的有数字值的码字3和10,在被组合组中已经被分配不确定值,因为该解码方法不认为这些值是可靠的。
如已经在先前所述,码字的总数在本发明的解码方法中是非常重要的数据,且直到现在已被假设,该图像和该另外图像是指同一个二维代码。
然而,这是不保证的,特别是在手动读取器的情形下,如果用户不得不获取数个二维代码,每一个含有不同类型的信息数据的话。例如,用户可以为第二代码而中断第一代码的获取,而在这种情形下,如果解码正好由于第一代码的图像没有成功,那么必须防止第一个二维代码的与第二个二维代码的一部分的码字的组合。
图3中,用F表示:评估该组合是否可能,而该评估包括:处理该图像和该另外图像,以检验该图像与该另外图像是否指同一个二维代码。
处理该图像和该另外图像,首先包括:分别对该图像和该另外图像识别码字的总数。如果该图像的码字总数不同于该另外图像的码字总数,那么先前获取的图像必须被废弃,因为该两个图像是指不同的二维代码。该另外图像的码字的总数被分配给该二维代码。
该另外组的码字必须代替从该图像获得的该组的码字而被存储,而可能已经被建立并被更新的被组合组,必须被废弃。
用K表示:废弃已经建立的被组合组和存储的码字组。
在废弃涉及先前分析的二维代码的码字的值之后,步骤J再次被执行,再次建立码字的被组合组,并存储该另外组的码字,以便随后可能与另外的码字组合。
另一方面,如果码字总数的检验成功地完成,则比较该组的与另外组的码字的对应值,以便计数在从该图像获得的组中的和在该另外组中的对应的不同码字的数量。
如果对应的不同码字的数量大于第一阈值,则该图像必须被废弃,因为该两个图像指相同大小但有不同信息内容的二维代码。
与上面已经说过的类似,该方法的步骤K和接着的步骤J被执行。
如果对应码字的数量是相同的并小于第二阈值,同样在这种情形下,该图像必须被废弃。
与上面已经说过的类似,该方法的步骤K和接着步骤J被执行。
应当指出,第一阈值能够取小于或相同于该代码中出现的码字的总数的值,而该第二阈值能够取大于或相同于0的值。
换句话说,即使当该组的与该另外组的对应码字全部不同,也能够尝试对该二维代码解码。
使用时,该解码方法的步骤被相继执行,如下面所列举。
步骤A:获取的图像被分析,以便获得该二维代码的码字的总数。
步骤B:评估码字总数是否已经从该获取的图像获得。
步骤C:如果已经获得,则该图像被分析,以获得被识别的码字的值的对应组,且用于误差检测和自纠错的算法,例如RS算法,被应用于该组。
步骤D:评估该RS算法检验是否已经成功。
如果该检验没有成功,则需要通过分析另外图像和重复该方法从A到D的步骤,继续进行。
步骤E:评估一组被存储的码字是否存在,另外组的码字能够与该组被存储的码字组合。
步骤J:如果一组被存储的码字不存在,则从该图像获得的该组码字被存储,而码字的被组合组也被建立。
步骤F:如果一组被存储的码字存在,则评估在两个组之间组合是否可能。
步骤G:如果该组合可能,则码字的该组和该另外组被组合,该两组码字分别从某一图像和从另外图像获得,借助从对应码字之间的比较,分配该被组合组的码字值,并促进未定义值的选择。
步骤K:如果该组合不可能,则从该图像和该被组合组获得的该组码字被废弃,该另外组的码字被存储,而该被组合组再次被建立。
步骤H:用于误差检测和自纠错的算法,例如RS算法,被应用于该被组合组。
步骤I:评估该RS算法检验是否已经成功。
如果RS算法检验已经成功,那么该解码方法被终止,否则,需要通过分析另外图像和重复该方法从A到I的步骤,继续进行。
归因于本发明的解码方法,该被组合组因此有被解码的更大概率,因为它有较少数量的不正确码字。事实上,在被组合组中有不正确码字的概率是低的,因为某一码字的数字值,只有它被看到在将被组合的码字的不同组之间总等于它自身时,才被确认。
此外,初步检验在将被组合的组的码字上被实施,该初步检验使不同的二维代码之间的组合能避免,即,与不同总数的码字的组合,或含有不同信息数据的组合,即,与彼此非常不同的对应码字的组合能避免。
该RS算法由此被应用于某一被组合组,该被组合组不仅包括其中不正确的码字的数量已经降至最少的被组合的码字,而且还包括从同一个二维代码的图像导出的码字。
这样使RS算法的成功概率能最大化,从而二维代码的解码被加速。
按照一优选实施例,在分析图像和/或另外图像的码字值之前,代码中可与恶化图像的区关联的部分被检测,如图1和2中的部分2和22。作为这些部分的一部分的码字,尤其是中心区4和24的码字,初步被分配未定义值,以避免用在其中这样的数字值是不正确值的区中的数字值识别的码字。尽管如此,边缘区5和25的码字,都能够被分配未定义值并保留用该图像的分析识别的数字值,虽然这样的值可能是不正确的值。
归因于这种变型,该解码方法的执行速度凭避免有不正确值的码字而被进一步促进,其中全图像的分析是可能的。
Claims (26)
1.一种解码由预设数量的码字形成的二维光学代码的方法,其中基于单个获取的图像的所述代码的解码已经不成功,该方法包括:分析所述代码的获取的图像和至少一个另外获取的图像,以便获得已识别码字的值的相应组和另外组,该已识别码字被所述图像和所述另外图像分配给所述代码,如果所述码字已被识别,则每一码字能取未定义值或数字值;建立码字的被组合组(J),并借助向所述被组合组的每一码字分配所述组和/或所述另外组的值,组合所述组和所述另外组(G),特征在于:所述组合包括:对所述被组合组的每一码字,比较所述组的与所述另外组的对应码字,并且如果所述对应的码字分别有数字值和另外不同数字值,且所述被组合组的所述码字被识别为不可靠,则向所述被组合组的所述码字分配未定义值,并借助应用误差检测和自纠错算法,检验(H)所述被组合组,以取得所述二维代码的成功解码的确认,分配所述未定义值使借助所述误差检测和自纠错算法的所述检验更有效。
2.按照权利要求1的解码方法,还包括建立一组可靠度指示符,其中每一指示符与所述被组合组的对应码字相关联,所述比较还包括,对所述被组合组的每一码字,在与所述码字相关联的对应指示符的基础上,评估所述码字是被识别为可靠的还是不可靠的。
3.按照权利要求2的方法,还包括,在向所述被组合组的所述码字分配所述值之后,更新与所述码字相关联的所述对应指示符。
4.按照权利要求2或3的方法,还包括,在所述被组合组建立的时候,向所述被组合组的每一码字分配未定义的值,并向每一指示符分配值1。
5.按照权利要求2或3的方法,还包括,在所述被组合组建立的时候,向所述被组合组的每一码字分配未定义的值,并向每一指示符分配值0,且其中所述比较包括,比较所述被组合组与借助所述图像获得的所述组的对应码字,更新所述被组合组和所述一组可靠度指示符,并比较所述更新的被组合组与所述另外组。
6.按照权利要求2或3的方法,还包括,如果该对应指示符有大于可靠度阈值的值,则识别所述被组合组的码字为可靠的,而如果该对应指示符有小于或相同于可靠度阈值的值,则认为所述码字是不可靠的。
7.按照权利要求2或3的方法,还包括,如果所述被组合组的所述码字被分配所述未定义值,则向所述对应指示符分配值0。
8.按照权利要求2或3的方法,其中所述比较所述组的与所述另外组的对应码字和向所述被组合组的所述码字分配值,只在所述被组合组的所述码字被识别为不可靠时才发生。
9.按照权利要求8的方法,还包括如果所述组和另外组的所述对应码字有相同的数字值,则向所述被组合组的对应码字分配该相同的数字值,并增加所述对应指示符。
10.按照权利要求8的方法,还包括,如果所述组的所述码字的值是数字,而所述另外组的所述对应码字的值是未定义的,则向所述被组合组的所述码字分配该数字值,并保持所述对应指示符不变。
11.按照权利要求8的方法,还包括,如果所述组的所述码字的值是未定义的,而所述另外组的所述对应码字的值是数字,则向所述被组合组的所述码字分配所述数字值,并向所述对应指示符分配值1。
12.按照权利要求2或3的方法,其中如果所述被组合组的所述码字被识别为可靠,则所述比较不发生,并且所述码字和与所述被组合组的对应码字相关联的指示符的值不被修改。
13.按照权利要求1的方法,还包括,在所述组合之前,借助应用所述误差检测和自纠错算法,检验单独另外获取的图像,以便尝试借助所述单独另外图像,成功地解码所述二维代码。
14.按照权利要求2的方法,还包括,如果所述误差检测和自纠错算法没有成功地检验所述被组合组,则分析所述代码的随后另外获取的图像,并在所述可靠度指示符的基础上,借助向所述随后另外获取的图像分配的所述码字值,更新所述被组合组,借助应用所述误差检测和自纠错算法检验所述更新的被组合组,以便在成功的情况下终止所述解码,或者如果所述误差检测和自纠错算法没有成功地检验所述更新的被组合组,则获取另一个将与所述更新的被组合组的所述码字值组合的另外图像。
15.权利要求14的方法,还包括在比较和更新所述被组合组之后,更新所述一组可靠度指示符。
16.按照权利要求1的方法,其中所述分析所述代码的图像和/或另外图像,包括检测所述代码的与被恶化的图像的区相关联的部分,并向所述部分的一部分的码字分配未定义的值。
17.按照权利要求1的方法,其中所述分析包括,处理所述二维代码的所述图像和所述另外图像,以便检验所述图像和所述另外图像是否指相同的二维代码。
18.按照权利要求17的方法,其中所述处理包括,识别所述图像和所述另外图像中的所述二维代码从其形成的码字的相应总数和码字的另外总数,且如果码字的所述总数不同于码字的所述另外总数,则废弃所述图像,并尝试借助仅仅考虑所述另外图像,解码所述代码。
19.按照权利要求18的方法,还包括如果码字的所述总数与码字的所述另外总数相同,则向该代码从其形成的码字的总数,分配码字的该相同的总数。
20.按照权利要求18或19的方法,其中,与使用的二维符号表示有关,该代码从其形成的码字的所述总数,可直接从该二维代码获得,或者由于它被表示为一定数量的行或列,因此可从其导出。
21.按照权利要求1的方法,还包括,在所述组合所述组和所述另外组之前,检验码字值的所述组和所述另外组,是否指相同的二维代码。
22.按照权利要求21的方法,还包括对所述组和所述另外组中的对应的不同码字的数量进行计数,且如果对应的不同码字的所述数量大于第一阈值,则废弃所述图像,并尝试借助仅仅考虑所述另外图像,解码所述代码。
23.按照权利要求22的方法,其中所述第一阈值能够小于或等于该代码中已有码字的总数。
24.按照权利要求21的方法,还包括对所述组和另外组中相同的对应码字的数量进行计数,且如果相同的对应码字的所述数量小于第二阈值,则废弃所述图像,并尝试借助仅仅考虑所述另外图像,解码所述代码。
25.按照权利要求24的方法,其中所述第二阈值能够大于或相同于0。
26.按照权利要求6的方法,其中所述可靠度阈值大于1。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2010/055696 WO2012076931A1 (en) | 2010-12-09 | 2010-12-09 | Method for decoding a two-dimensional optical code |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103339641A CN103339641A (zh) | 2013-10-02 |
CN103339641B true CN103339641B (zh) | 2017-02-22 |
Family
ID=44263005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080071124.9A Active CN103339641B (zh) | 2010-12-09 | 2010-12-09 | 一种用于解码二维光学代码的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8888003B2 (zh) |
EP (1) | EP2649555B1 (zh) |
CN (1) | CN103339641B (zh) |
WO (1) | WO2012076931A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10599902B2 (en) | 2014-10-09 | 2020-03-24 | Cognex Corporation | Methods and apparatus for decoding under-resolved symbols |
US9607200B2 (en) * | 2014-10-09 | 2017-03-28 | Cognex Corporation | Decoding barcodes |
JP6840591B2 (ja) * | 2017-03-24 | 2021-03-10 | キオクシア株式会社 | 復号装置 |
CN108596001B (zh) * | 2017-09-21 | 2021-02-02 | 北京三快在线科技有限公司 | 二维码纠错译码方法、装置、电子设备及计算机可读介质 |
CN110427792B (zh) * | 2019-06-24 | 2022-05-24 | 广西中烟工业有限责任公司 | 一种遮挡二维码的识读匹配方法及其应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0565738A1 (en) * | 1990-01-05 | 1993-10-20 | Symbol Technologies, Inc. | System for encoding and decoding data in machine readable graphic form |
US5347114A (en) * | 1991-10-25 | 1994-09-13 | Olympus Optical Co., Ltd. | Bar code symbol reading apparatus |
CN101031930A (zh) * | 2004-08-31 | 2007-09-05 | 讯宝科技公司 | 扫描器以及用于消除镜面反射的方法 |
CN101833645A (zh) * | 2010-06-01 | 2010-09-15 | 福建新大陆电脑股份有限公司 | 一种基于码字组合的条码解码方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU681421B2 (en) | 1993-09-14 | 1997-08-28 | Symbol Technologies, Inc. | Bar code scan stitching |
US20030222147A1 (en) | 2002-06-04 | 2003-12-04 | Hand Held Products, Inc. | Optical reader having a plurality of imaging modules |
KR100414524B1 (ko) * | 2002-10-31 | 2004-01-16 | 주식회사 아이콘랩 | 복호 특성이 우수하며 단계별 에러레벨조정이 가능한2차원 코드 및 그 코드의 인코딩 디코딩 방법 |
US7357323B2 (en) * | 2003-04-07 | 2008-04-15 | Silverbrook Research Pty Ltd | Obtaining product item assistance |
US7380718B2 (en) * | 2004-12-21 | 2008-06-03 | Nidec Sankyo Corporation | Method for reading out symbol information and device for reading out symbol information |
US7344080B2 (en) | 2006-03-31 | 2008-03-18 | Symbol Technologies, Inc. | Imaging-based bar code reader utilizing stitching method and swipe guide |
CN100511271C (zh) * | 2006-11-16 | 2009-07-08 | 深圳市天朗时代科技有限公司 | 二维码解码方法 |
US7886978B2 (en) * | 2007-09-20 | 2011-02-15 | Microsoft Corporation | Techniques for decoding images of barcodes |
-
2010
- 2010-12-09 CN CN201080071124.9A patent/CN103339641B/zh active Active
- 2010-12-09 WO PCT/IB2010/055696 patent/WO2012076931A1/en active Application Filing
- 2010-12-09 US US13/992,323 patent/US8888003B2/en active Active
- 2010-12-09 EP EP20100809054 patent/EP2649555B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0565738A1 (en) * | 1990-01-05 | 1993-10-20 | Symbol Technologies, Inc. | System for encoding and decoding data in machine readable graphic form |
US5347114A (en) * | 1991-10-25 | 1994-09-13 | Olympus Optical Co., Ltd. | Bar code symbol reading apparatus |
CN101031930A (zh) * | 2004-08-31 | 2007-09-05 | 讯宝科技公司 | 扫描器以及用于消除镜面反射的方法 |
CN101833645A (zh) * | 2010-06-01 | 2010-09-15 | 福建新大陆电脑股份有限公司 | 一种基于码字组合的条码解码方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012076931A1 (en) | 2012-06-14 |
US8888003B2 (en) | 2014-11-18 |
CN103339641A (zh) | 2013-10-02 |
EP2649555A1 (en) | 2013-10-16 |
EP2649555B1 (en) | 2015-04-22 |
US20130256410A1 (en) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103339641B (zh) | 一种用于解码二维光学代码的方法 | |
US7497380B2 (en) | 2D coding and decoding barcode and its method thereof | |
US6631843B2 (en) | Composite code symbology | |
AU681421B2 (en) | Bar code scan stitching | |
US6585157B2 (en) | Symbology determination to aid decoding in a bar code scanning system | |
US5880451A (en) | System and method for OCR assisted bar code decoding | |
JP2000509537A (ja) | モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置 | |
EP3399468B1 (en) | Method for quantitative defacing of a qr code | |
US20020088865A1 (en) | Error correction in macro bar code symbols | |
CN102741819A (zh) | 用于解码码字的方法、设备和计算机程序 | |
JP2001014418A (ja) | 2次元バーコード読み取り方法 | |
CN105279539A (zh) | 点阵式二维码编码与解码 | |
US20060043189A1 (en) | Method and apparatus for determining the vertices of a character in a two-dimensional barcode symbol | |
US6341730B1 (en) | Method of encoding embedded data blocks containing occlusions | |
US20080128501A1 (en) | System and method of acquiring a machine-readable symbol | |
US10489622B2 (en) | Method of reading an optical code and optoelectronic code reader | |
CN101833645B (zh) | 一种基于码字组合的条码解码方法 | |
CN107016317B (zh) | 一种条码解码方法及装置 | |
US20210073496A1 (en) | Image And Quick Art Response Code System | |
EP2088533A1 (en) | Apparatus and methods for decoding digital codes | |
US6419162B1 (en) | Maximizing data capacity for embedded data blocks with occlusions therein | |
US10128870B2 (en) | Methods and systems for maximizing read performance of error detection code | |
JP5482340B2 (ja) | バーコード読取装置、バーコード読み取り方法およびバーコード読み取りプログラム | |
ATE490603T1 (de) | Iterative dekodierung zweidimensionaler blockkodes | |
CN105718839A (zh) | 条码解码方法以及条码解码装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |