用于读取邮政编码的成像引擎和技术的制作方法

文档序号:6448376阅读:265来源:国知局
专利名称:用于读取邮政编码的成像引擎和技术的制作方法
技术领域
本发明涉及使用光学代码阅读装置读取各种类型的邮政编码的技术。本发明的各方面对于成像光学代码阅读器(optical code reader)特别有用,这些光学代码阅读器被设计为读取除邮政编码外的宽范围的各种光学代码。
背景技术
和目标光学代码是由具有不同光反射或光发射特性的图像区域构成的图案,通常按先验的规则被编制。术语“条形码”有时用于描述某种类型的光学代码。选择光学代码的光学特性和图案以使它们在外观上区别于它们所使用的背景环境。用于以光学代码识别或提取数据的装置有时被称为“光学代码阅读器”,条型码扫描器即是其中一种。光学代码阅读器在许多不同的环境中被用于固定或便携式装置中,例商店的付费服务,生产场所的工件流和存货控制以及运输车辆上跟踪货包处理。光学代码阅读器已广泛地适用于邮件的传送和分捡。
最常用的光学扫描系统设计为读取一维条型码符号(symbol)。条型码是一种由固定或可变宽度间隔隔开的可变宽矩形条码的图案。这些码条和间隔具有不同的光反射特性。一维条形码的一个例子是用于识别例如产品存货的UPC/EAN码。
本发明揭示涉及的技术特别适用于阅读邮政编码。典型的邮政编码特征是沿代码的主轴方向形成具有均匀宽度和均匀间隔的码条序列。该符号(symbology)通常包括了一个称之为时钟轨道(clock track)的矩形平行条区域。某些条码可以延伸到时钟轨道的上部和/或下部。这些加长的码条有时被称为升高码条(ascender)或下降码条(descender),且包含了被编码信息。
一个邮政编码的例子是邮政数字编码技术(POSTNET,Postal NumericEncoding Techique)。POSTNET是美国邮政局研制的用于对邮件上的地址信息编码提供最佳代码系统。参考

图1,POSTNET码12的基本元素是高码条(tall bar)或升高码条(例码条1)和短码条(例码条2)。这些码条分别表示两种状态,即二进制1和0。两种码条在由线18表示的边缘处对齐(线18不是代码符号(codesymbel)的一部分)。代码的五个码条表示一个字符,例如邮编的一个数字。代码的左右边界由高码条3标明。称为PLANET的邮政编码其有类似的结构,但编码方式不同。在POSTNET码中,表示一个字符的5个码条包括二长三短码条。在PLANET码中,表示一个字符的五个码条包括三长二短码条。
另一类型的邮政编码是加拿大邮局编码。加拿大邮局编码的一个例子示于图1(a)。该码是POSTNET码的一种修正形式。它是一种四状态码,比上述POSTNET码增加了字母的编码容量。该四状态的每一状态例如是上升码条4,下降码条3,全码条(full bar)6(即同时具有上升和下降部分的码条)以及短、时钟码条7。时钟轨道位于线8和9之间。(线8和9不是代码符号的一部分)。另一种邮政编码是英国(UK)邮政编码。英国邮政编码类似于双层美国编码,但底部符号翻转且二个时钟轨道被合并。英国码每字符使用4个码条,与之相比美国POSTNET码每字符用5个码条。其它四状态码包括澳大利亚、日本和比利时邮政编码。
邮政编码可使用成像装置读取。例如可使用一种图像传感器,它具有二维的光传感单元阵列,这些单元对应于该装置视场中的图像元素或像素。这种图像传感器可以是二维的或面积型固态传感器以及用于产生与视场的二维像素信息阵列相对应的电子信号的有关电路。在1998年6月12日提交的美国专利申请序号NO.09/096,578(授予Correa等人的题为“用于代码阅读器的成像引擎和方法”(IMAGING ENGINGE AND METHOD FOR CODE READERS))中揭示了可用于阅读邮政编码的成像模块,通过引用包括于此。另一方面,下述算法的后处理部分可应用于运用激光扫描成像的系统,这样的系统例如揭示在1994年7月15日提交的授予Dvorkis等的美国专利申请序号NO.08/275,515中(题为“用于图像光栅扫描的方法和装置”),通过引用已加入于此。
本发明的一个目的为阅读邮政编码提供有效和准确的技术。
本发明的另一个目的是提供使用一个光学成像装置读取邮政编码的技术。
本发明的另一个目的是提供用于使用能够阅读各种类型的一维和二维代码的光学成像器以及用于识别和阅读各种类型邮政编码的技术。
本发明的另一个目的是提供用于阅读对于光学代码阅读器其类型与取向初始未知的邮政编码的技术。
通过下列描述和附图,本发明的这些和其它目的和特征将会显而易见。
发明概述本发明是关于在光学代码阅读器方面,尤其其是在成像光学代码阅读器方面有用的用于读取邮政编码的技术。
更具体说,揭示了一种用于识别和读取包含在由光学代码阅读器获得的图像数据阵列中的各种类型的邮政编码。这些邮政编码假设包括了具有规则排列的平行码条的一个时针轨道。该系统定义了一种子图像,它包含可指示邮政编码存在的一个特征。一条候选基线位于子图像内,该子图像跨过邮政编码的时钟轨道从符号的左边延伸到符号的右边。如果基线选择正确,符号中的每个码条将与基线相交。在基线的上下跟踪(track)每个码条以获得一串基于码条长度的状态。确定代码类型并翻译状态串以获得包含在邮政编码内的信息。
在较佳实施例中,通过选择在左边界码条上的第一点,选择在右边界码条上的第二点并让一条线从第一点走到第二点则可定位从邮政编码的一个边界跨越时钟轨道到另一个边界的基线。通过测试沿基线上码条宽度和间隔的均匀性以确定基线是否完全定位于时钟轨道内可验证端点选择的正确性。在另一较佳实施例中利用一查找表选择所述第一和第二点。与新候选基线对应的其它各点也被选择直至找到时钟轨道。
本发明的较佳实施例使用的处理技术用于识别邮政编码的类型并应用适当的翻译算法(translating algorithm),例如用于POSTNET,加拿大邮政编码、PLANET码或UK邮政编码。在这些方法中,首先获得识别为潜在包含了邮政编码图像全部或部分的像素数据。最好按上述方式先定位邮政编码的整个时种轨道。检查已定位时钟轨道上的每个码条以确定每个这种码条是否延伸到时钟轨道的上部或下部并获得该码的状态串。会对码条的规则性进行测试,若识别了一个间隙,则对每个丢失的码条插入一个位置保留符(placeholder)。通过检查码条数目以及出现上升和下降码条而确定邮码的类型。至少对一种类型的邮码施加适当的译码算法并且译码成功就终止处理。在较佳实施例中,确定代码类型的步骤包括确定该码是否具有表示POSTNET或PLANET码的大量码条;根据出现上升和下降码条确定代码的朝上朝下取向;以及试图按UK邮政编码对状态串译码。本方法还包括如是该试图按UK邮政编码对状态串译码失败,那么试图按加拿大邮编对状态串译码的步骤。
根据本发明,一旦已识别了构成时钟轨道的码条,就可阅读二状态和四状态的邮政编码。对于识别的每一码条,进一步处理确定该码条是否从时钟轨道上升或下降。于是,提供了状态串。如果基本上所有的码条都沿着一个方向或另一个方向从时钟轨道延伸,那么该系统首先试图按二状态码对状态串译码。例如,若延伸过时钟轨道的码条中少于20%或25%的码条被识别为下降码条(其余(the balance)已被识别为上升码条),那么首先使用的译码算法是二状态算法。如果这样按二状态码试图对状态串译码失败,处理器随后会试图按四状态码对状态串译码。这样的试图按四状态码对状态串译码首先会试图按固定长度四状态码对该码译码。此外,二或四状态译码试图使用小于该码的理论上最大纠错容量的方式进行处理。
本发明还提供一种读取邮政编码的装置。这样的装置可包括用于获得二维阵列的图像数据的光学传感器。包括随机存取存储器及微处理器的电路和适当的软件可被用来提供下述功能。一种自动鉴别器(autodiscriminor)功能可用来在潜在包含所有或一部分邮政编码符号的图像数据中识别一簇子图像。通过检查沿着在代码两边界间延伸的一条或多条基线上的码条或间隔的均匀性,时钟轨道定位器功能在一簇子图像中定位出完整的时钟轨道。码条跟踪器功能可用于确定垂直于基线的每个码条长度,并产生响应于它的状态串。适当的译码器功能翻译该状态串以产生提供给用户系统或主机系统的信息。
在较佳实施例中,时钟轨道定位器包括了含有一系列端点的查找表的存储器,该表用于产生一条或多条候选基线,码条和间隔的均匀性将沿着这些基线被评估。走线算法(line walking algorithm)可用于在基线上从一个端点走向第二个端点。以硬件和/或软件实施的邮政编码分配器(dispatcher)可用于识别感测的邮政编码类型并按照适于所识别的邮政编码类型的译码算法对邮政编码译码。
虽然上面提供了对本揭示的概述,本发明所受的保护由权利要求书和法律认可的等效文书中的文字语言所限定。
附图简单描述图1是手持式成像光学代码阅读器和POSTNET代码符号的图示;图1a是加拿大邮政编码符号的一例;
图2是说明图像代码数据自动鉴别的组合流程图和系统方框图;图3示出了对由自动鉴别器功能识别为邮政编码的二维像素数据进行处理和译码的流程图。
图4是示出邮政编码预处理器的流程图;图5是示出了时钟轨道寻找子例程的流程图;图6是示出用于检查码条宽度和间隔均匀性的子例程的流程图;图7是示出对于回填充门限(back filling threshold)的子例程的流程图;图7a是用于描述图7子例程工作的信号波形。
图8和图9是示出寻找相对于已定义基线的交叉方向的图。
图9是示出对邮政编码码条跟踪(tracking)的图;图10是示出具有内嵌译码器的邮政编码分配器的流程图。
详细说明图1示出了对准邮政编码12的手持式、成像条形码读对器10。所示邮政编码12处于阅读器14的视场内并且以相对于阅读器10的任意角度取向。在较佳实施例中该阅读器包括了含有诸如CCD之类的面积型图像传感器(area image sensor)的成像引擎或模块。一种合适的成像模块已在上述专利申请S.N.09/096,578中描述。图像传感器将像素阵列数据提供给处理这些数据的电路并从各种类型的光学代码中译出信息。
如上所述,邮政编码12的特性可用排列在一条线上的通常是平行的一系列码条来表述。短码条和部分长码条定义了一个时钟轨道,它由平行线18和20限界(引入平行线18和19仅用于说明目的,并不形成邮政编码符号的一部分)。长码条视不同情况被描述为“上升”码条或“下降”码条。根据代码类型,在代码中可存在不同的码条长度。例如,如上面结合图1a的加拿大邮政编码例子所述,可存在四种不同的码条长度。
Ⅰ.不同类型编码的信号处理和自动鉴别图2是示出在本发明的较佳实施例中处理和译码图像传感器数据的组合流程图和系统方框图。由图像传感器电路获得的数据用100表示。这一数据可以是对应于目标图像的二维像素信息阵列的电子信号形式。可将该数据存储在光学代码阅读器的DRAM中以供随后处理。应理解实行图2和图3处理的处理软件可在所有的层次上访问已存储的图像数据。在各个处理步骤上,可调用各部分像素数据作进一步处理或确认正在进行(on-going)的分析。
像素数据可被划分为子图像,例如32×32像素的子图像。分析这些子图像已知与各种类型邮政编码相关的特性以及已知将特定代码与其它代码和环境(非代码)图像区分开来的特性。特别是,可使用统计自动鉴别的处理过程。在统计自动鉴别中,图像被划分成子图像或分区,并对每个分区计算一些统计量。具有相似统计量的子图像可成组形成感兴趣的区域或聚类(cluster)(可能含有代码)。统计方法的好处是一旦编译(compile)各统计量只需处理子图像从而大大减少了计算量要求。此外,统计量的编译较简单并能在用于超快系统的硬件中完成。较佳实施例中使用的统计量是局部表面取向的柱状图(histogram)。通过分析每一子图像中的表面切线而类聚子图像,可获得统计量。一旦识别该聚类,可进一步分析图像数据以检测与特定光学代码类型有关的特性的存在。一个这类特性可以是邮政编码的主导方向。统计自动鉴别是美国专利申请S.N 09/096,384(题为“代码阅读器的自动鉴定和画线技术”(AUTODISCRIMINATION AND LINE DRAWING TECHNIQUESFOR CODE READERS”,由He等提出并授权给Symbol Technologie.Inc)的主题,该申请加入于此作为参考。另一方面,神经网络也能用于鉴别可能包含光学代码的感兴趣的图像区域。还可用神经网络来处理图像数据。关于子图像的瞄准图案的投影位置也可用作选择要进一步处理的子图像的索引或加权因子。
在较佳实施例中,由系统微处理器执行的自动鉴别软件确定了哪些子图像聚类包含了特定类型的编码以及某些边界的像素阵列中的坐标或者初步识别的代码区域的特性。这一系统标记为104。如图2所示,图像数据可以初步指定为一维编码,二维编码,邮政编码或MaxiCode(Maxi码),应理解具有可辨认统计图案的其它编码类型也可在该处理阶段中被识别。图2的其余部分说明了对一个一维码的处理方案。专用于处理邮政编码的技术示于随后各图。
自动鉴别功能104提供了感兴趣区域的端部或边界的座标,该区域设计为潜在地包含了全部或一部分一维条型码。更具体地说,自动鉴别功能通过提供识别为包含一维条形码的平行四边形像素信息的定义角度的座标而提供聚类和方向信息。标号106处的进一步处理产生了代码的数字化方式。特别是,标号108处的功能从所关注的图像区域内的数据中提取一个或多个波形。这一处理过程涉及对系统(画线)所选线附近像素的分析。上述He等人的美国专利申请中详细描述了这一处理过程。这一处理结果就是根据沿它的主轴跨越该一维码所画的相对“较宽”的像素线或像素带(swath of pixels)中的像素灰度(grey scale)信息所产生的连续波形109,上述主轴初步由自由鉴别功能104所确定。可从1至n个象素来调节该象素线或象素带的宽度。将波形中的峰值和谷值标识为110。数字化部分将这一信息转换成与该图像数据或位内容相对应的电子信号,如112所示的。Duanfeng He和Eugene Joseph在1998年6月12日提交的题为“数字化条形码符号数据”的美国专利申请中描述了数字化仪处理过程,该专利申请已转让给Symbol Technologies,Inc.并通过引用加入于此。随后在114处翻译数字化输出以提供经翻译的数据输出。116处的信号线表示了要求从跨越同一一维数据所画的不同线上提取数据的可能性。对任何所画线译码的失败可以用来在进一步试图识别和定位目标码时触发附加的自动鉴别,如线118所示。
如果自动鉴别功能暂时把码识别为PDF码,提供起始和/或停止图案座标并按照上述Correa等人的专利申请所描述的方式继续处理过程。如果自动鉴别功能暂时把码识别为MaxiCode,提供子图像聚类位置信息并按照上述He等人的专利申请和美国专利申请S.N 09/176,864的方式继续处理过程,后一申请是1998年10月22日提交的题为“用于阅读包括MAXICODE的二维码的技术”,已转让给SymbolTechnologies,Inc,该申请已通过引用加入于此。
如果自动鉴别功能暂时把该码识别为邮政编码,就提供一子图像链表,即一个聚类。现在将讨论其处理过程。
Ⅱ.邮政编码的处理及解码图3是示出了处理和解码由自动鉴别功能识别为邮政编码的二维象素数据的流程图。
由自动鉴别功能在133处预处理一簇邮政编码子图像,以找出邮政编码时钟轨道的左右边界。跨过邮编时钟轨道从第一码条到最后一码条的直线上的端点是邮政编码预处理器的输出。在预处理过程中,假定以最强的相关性或相似性,在由子图像构成的子区域中定向代码。搜索左右子图像以识别在每个左右子图像中的码条(对于该代码的第一和最后一码条则无此必要)。于是,处理程序试图识别表示在所识别的码条之间的时钟轨道的码条规则性。定义一次“尝试”为试图定位左右邮编边界的例程(左右边界可能落在刚被识别出的码条以外)。时钟轨道的高的纵横比使首次寻找时钟轨道的第一和最后一条码条的尝试变得困难。所以,重复进行预处理,直至找到适当的基线,且通过重新对准时钟基线的初始估计识别时钟轨道的第一和最后码条(左右边界)。
一旦时钟轨道的左右边界得以定位,134处的走线算法进一步分析数据以确定是否存在上升和/或下降码条。根据这个信息,解码器分发器135暂时确定邮政编码的类型。上升/下降码条的位置数据及状态串传送到适当翻译功能136到142并试图翻译。如果翻译不成功,则处理控制可回到解码器分发器,以选择另一种邮编类型,或返回到自动鉴别功能104以选择另一种代码类型和/或用于分析的另一子图像聚类。
A.邮编预处理程序邮编预处理器寻找时钟轨道并把它传送至邮编解码器。跨越时钟轨道的从第一码条到最后一条码条的直线上的端点是它的输出。下面详细说明预处理程序。
如上面所讨论的,有若干个包括前端处理程序的预处理器。每一个预处理器从自动鉴别功能接收一个子图像聚类作为其输入。(一个聚类是一组子图像,这些子图像具有相似的统计特性)。在邮编的情况下,该聚类可能包括额外的图像数据,如直接打印在邮编上方的地址信息。
图4为邮编预处理器流程图。邮编预处理程序的第一步是定出该图象聚类内的至少部分码条的位置,如200处所示。我们假定邮编码包括子图像的一条直线,这些子图像之间具有最强的相关性或相似性。下一步,在202处,在认为可能的邮编位置处的左右子图像附近搜索,以识别码条,其中一条对着左边的码条,一条对着右边的码条。但它们本身未必是邮编的第一及最后一条码条。这两码条的端点(即在方向上与时钟轨道方向垂直的两条码条的最上端及最下端)给204处的Find Clock Track(寻求时钟轨道)例行程序提供输入。如求得时钟轨道,接下来边界定位器将求取时钟轨道的第一和最后一条码条。
成功的处理过程给出时钟轨道的一个近似位置。但时钟轨道的高的纵横比难以使一次尝试就完全确定其位置。如图1所示,一个估计的或候选的时钟轨道22可能不会精确地与由线18和20定义的符号实际时钟轨道24相对齐。这种对齐状态可能甚差,以至估计的时钟轨道会丢失实际的时钟轨道的某些部分。
寻找左右码条端点的第二次迭代让初始的估计与时钟轨道的定位重新对齐。如成功,则由线18及线20所代表的时钟轨道的边界可以被求得。然后必须重新计算时钟轨道并再次使用边界寻求程序段以求取第一和最后一条码条。如果需要,执行更多次的迭代以获取更精确的对齐。以这种方式,可以求得一系列均匀间隔的码条中的实际的第一条码条26及最后一条码条28。
然而应该明白,这些例程运行结束后未必将图像识别成邮编,更难以识别出邮编类型。比如,一个简单的格子具有均匀间隔的码条,但它不是邮编。现在必须分析码条序列以检测码条的长度变化。如确有变化,才能假定有邮编存在。作一条直线横跨时钟轨道以计算每条码条的黑白阈值。这条线的端点代表了时钟轨道的位置并还被保存。邮编解码器要使用到这些时钟轨道位置及这些阈值。
1.求取时钟轨道结合图5我们更详尽地叙述Find Clock Track例程204。这个例程猜测左右码条的状态并检测是否已找到时钟轨道。如前所述,时钟轨道是一系列均匀的码条和间隔。计算这些均匀性,如果找到时钟轨道,则其端点在302处保存并该列程返回一个成功信号。不然,改变对左右码条状态的猜测,作一次新的尝试以识别出时钟轨道。设置左右码条状态及寻求时钟轨道的循环最多可以重复七次。用于每次迭代的状态的选择由图5中的LUT(查找表)304所控制。
时钟轨道的特征不光是有均匀的码条及间隔,而且有特定的平均码条宽和间隔之比(间隔宽<4*码条宽)。利用均匀性来确定一个候选的基线或者时钟轨道是否正确。
2.检测均匀码条图6是检测码条均匀性的例行程序308的流程图。一个均匀码条的序列意味着码条宽度的变化很小。定有一个小的阈值δt,如果某码条的宽度与码条平均宽度的误差大于δt,则该误差被累加到变量acc_error上。如果累计误差过大(acc_error>ave_bar*num_bar/16),则返回一个失败信号,如402所示。不然,如果最大码条和最小码条的比值小于2,则返回一个成功信号,如404所示。
3.回填阈值回填阈值程序段如图4中的206所示。这个例程的输入是横跨时钟轨道的一条直线。求取这条直线上的边沿,以求取边沿之间的峰值和谷值,来计算阈值。图7a显示介于峰值504和谷值506之间的沿这条直线的亮度曲线,边沿502已加亮。沿时钟轨道的每一个子图像的阈值都要保存。该例程的流程图由7给出。
B.邮编处理器邮编处理器从预处理器取得如下输入横穿所有码条的一条直线的两个端点,及一组阈值,使用这些阈值可沿这条直线将码条从背景中分离出来。
当前所提议的,或正在使用的最复杂的邮政编码是4-状态码。这种邮编中,码条可以是上升码条,下降码条,时钟码条或全码条(见图1a)。该处理器的输出是上升/下降码条分析(图3,框134)的结果。它可以是一串数字,每一个数字代表一个码条的状态。码条状态可能是下列之一全码条,上升码条,下降码条,时钟码条,或者是这样一种码条,其顶部或底部,或者顶部及底部都有一个不清新的状态(根据这个分类,总共有5种状态)。显然,码条状态的定义和邮编的4-状态相当符合。知道一个码条是上升码条还是下降码条不仅只是知道该码条是一个“长码条”的能力,是对于2-状态(美国)邮编也是重要的如果邮编,分发器游发现状态串中没有升高码条,而只有下降码条,它可以将所有下降码条改为上升码条,并将串的内容颠倒从而翻转这个串。串的旋转导致良好的解码,当邮编上下倒置时可避免可能发生的解码差错。
邮编处理程序执行如下几个步骤1.参见图8,找出输入或基线602的横跨方向并加以保存,以备后用。将输入线逆时针旋转90度求得码条的向上方向,如该图所示。为允许噪声的存在,基本方向1(格点上的8个基本方向之一)以及它的两个相邻的方向(2和3)在以后的码条跟踪中作为一个完整的方向集来使用。将这三个方向根据它们与精确方向(如图8所示)的接近程度排列(以后还被用于搜索)。码条向下的三个方向的集合与上面仅仅相反。这些方向在后面的码条跟踪中甚为有用。
2.走线算法(例如Bresen ham的走线算法)用来从输入线的一端走到另一端。各种画线算法,如Bresenham算法在New man et al.,Principles of InterativeComputer Graphics.,pp20-27(Mc Graw Hill,2nd Ed.)中有叙述。
3.在走线过程中,当前象素的灰度和局部阈值(这个阈值或者是作为输入从预处理器接收的,至于它的计算前已有述,或者局部阈值是从沿着输入线的信号变化而计算而得)相比较。如果灰度未超出这个阈值,则找到了码条的一条前边沿。仅当下一个象素比当前象素更暗,行走才继续进行,以找到码条宽度的中心。此时调用码条跟踪例程以识别该码条的终点。走线一直进行,直到碰到这样一个象素,其灰度超出局部阈值才停止。这意味着已走出了这个码条。处理程序再循环回来,以找寻下一个码条,直到目的地。
4.码条追踪程序从上面步骤中找到的码条上某给定点出发,并在向上及向下两个方向(由上面的步骤1求得)上跟踪码条。不同方向上走一步的效果不会一样。如果初始方向是沿栅条方向,则每一步的跨度是相同的。但若初始方向是对角方向,那么每沿对角方向走一步时,就其投影距离来说,只抵到旁边跨出的半步。并非只有一个系统被用于一个给定的邮编,但不含同时使用二个系统。所以步长调整有助于精确量度在噪声环境下的走步偏离。有了这种调整,任何特定的条形码的码条长度都可以用相同的方法去量度,尽管没有必要比较不同种的条形码的码条长度,因为计算方式不同。码条追踪程序的输出是码条向上和向下伸展到多远。码条相对于走线路径的起点的位置将被记录下来,这是供下一步使用的重要信息。
5.一个分段例程用于确保码条近似地是均匀间隔的。如有间隙,这个间隙将充以适当数目的保留空位(每个保留空位相当于一个缺失的码条)。这是一种容差的量度。解码器下游可以正确地处理含有用保留空位代替未知条形码的状态串。但若不告知它缺少码条的信息,它就不能正确处理这种情况。类似地,如明显地存在一个噪声斑条,引起码条的一个码条与它的两个近邻码条间的间隙比起其他的间隙似乎太短,则噪声斑条(一个虚假的码条)将被清除。噪声斑条不同于与其紧密相邻的真实码条,是因为它的高度通常较小。
6.时钟轨道的平均竖直大小以下面的方式求取。所有的码条高度以及两两相邻的码条间的所有“重叠”以直方图来累计。两码条间的“重叠”是指一个竖直区域,在该区域中两码条是平行的,例如在图1a圈出的并标以数字518的那个重叠。对直方图进行滤波以消除可能的噪声。然后取最小的峰值作为时钟码条的大小。
7.根据已确定的时钟轨道的高度,找出一个锚接点,以开始码条分析,锚接点或者是时钟码条本身,或者是形成的时钟轨道的两条相邻的码条的重叠部分。锚接点的选取要能可靠保证时钟轨道已被正确识别出,并有所期望的大小。利用上面第6段所得到的时钟轨道的高度,锚接点给出时钟轨道竖直位置的顶端及底端,同时给出开始分析的起点。
8.从锚接点向左向右分析码条。分析程序将当前码条与前一个码条作比较,以赋于当前码条一个状态数。可能的话,在每个码条被分析以后,时钟轨道的竖直位置将被调整。而且,每找到一个新的锚接点,时钟轨道的竖直位置都要更新。分析程序产生一个码条状态串。
C.翻译分发和解码如图3所示,状态串由分发器135发送到各个邮编解码器136到142。分发器的流程图如图10所示。每个状态串的解码器至多由3个单元构成。英国和美国的邮编有特定的长度。而加拿大的Post Bar邮编则无此要求。这是因为加拿大的Post Bar有较强的纠错能力,载断的邮编也能被解读出来。对于4-状态邮编,单个解码器可以处理可能的旋转。也可以容纳其他的邮编。
分发器135可以调用一个适当的加拿大的Post Bar解码器的修正版(归加拿大邮局所有),一个美国邮编解码器(处理流行的Post Net邮编及为国际邮件而设计的Planet邮编)以及一个英国邮编解码器。
图10所示为一个初始模块部分502用于在美国邮编与英国邮编之间执行预筛选。如果初步显示那是美国邮编,则系统还要检查上升码条和下降码条的数目以判定码的取向,并确定该码是美国的Planet还是Post Net邮编。相应的解码在504,506,508或510执行。如果该码无法被解码成美国邮编,在514处进一步计算上升码条和下降条码的数目,它可能在512处试图将状态串解码成英国邮编。在514处的测试失败将把这串状态送到516处试图解码为加拿大邮编。
现在来说明美国邮编和英国邮编的具体的解码过程。
美国邮编和英国邮编(还没有被标准地使用),尽管有着显著的区别,但它们是密切相关的。它们都有一个起始码条及终止码条模式,都使用一位的校验和。英国邮编极象两层的美国邮编,将其底部翻转,两个时钟轨道合二而一。它与美国邮编的不同之处在于,美国邮编使用5个码条表示一个字符,而英国邮编使用4个码条表示一个字符。因此,可以让两种解码器合用同一个算法,以及大量的程序代码。
一个面向对象的解码器可用来处理这种邮编码。对于英国邮编,使用两个对象,一个用于邮编码的上升码条部分,另一个用于下降码条部分。
可以使用下面的解码过程1.根据表或一组等式检查码条的数目。每一种邮编政码仅具有一组固定的容许数量的码条集。
2.仅适用于美国邮编码(a)如有必要(来自前面阶段的信息),将状态串旋转;(b)从本级起所有的下降码条被忽略。
3.检查开始和终止模式。对于英国邮编,如果起始和终止模式显示出邮政编码上下颠倒,则输入的状态串需要翻转。对于美国邮编,上下颠倒的情况已经被纠正。
4.根据是否存在美国和英国邮编,产生一个或二个对象。每个解码器采取一个1位的码条状态序列,1表示存在上升码条(或下降码条),0表示不存在。将这个序列逐个字符地进行分析,对美国邮编,每个字符有5个码条(5个比特),对于英国邮编,4个码条一个字符。当为每个字符收集这些位时,系统可以知道哪一个码条的状态不确定。
5.检查一致性以使每个字符均有效。对于Post Net和英国邮编,每个字符应该有一个2位的集合。对于Planet,每个字符应有一个3位的集合。如果一个字符有一些状态不确定的码条,处理程序确定是否能对它纠正之。纠正字符的逻辑原理是这样的如果从所有已知的码条有正确数目的上升码条,则未知码条被当作时钟码条;反之,如已知正确数目的时钟码条,则未知码条被看作上升码条。
6.对于美国邮编,把它符翻译为它们所代表的数字。
7.根据符号逻辑规范计算校验和(对英国邮编而言,计算二个校验和,一个是上升码条校验和,另一个是下降码条校验和)并和从邮编中读得的校验和相比较。如果两者不同,则解码失败。
8.从英国邮编中查找输出信息当系统读入多个邮编时,系统将按照一定的顺序步骤工作最佳化解码速度及最高的精确度。在一个实施例中,首先根据确定后续读的所有(例大于75%)加长码条或者是上升码条,或者是下降码条决定试图对邮政编码按二状态码解码。测试各种2状态码。如果这种解码尝试失败了,则状态串将被派送到4状态解码器。然后尝试4状态解码,根据码中允许的变化依次进行。例如,首先,对于定长码进行解码,然后对可变长度的加拿大邮编解码(后者符号允许缺失不少码条)。在具有纠错能力的情况下,系统首先不使用最大纠错能力进行解码。例如试图进行行加拿大或澳大利亚的邮编解码时,系统会使用比Reed Soloman码最大纠错能力较小的能力。对于美国,英国或日本的邮编,系统将不会应用一致校验值来改正无效字符。系统只是根据字符串自身修正非法字符。
本发明的所描述的实施例只是一种示意,而不是一种限制,也并不代表本发明的各种实施例。可以对所揭示的系统进行修正或改变但并不脱离下述法律所承认的及文字上等效的权利要求书所提出的精神和范围。
权利要求
1.一种用于识别和阅读在由光学代码阅读器获得的图像数据中的邮政编码的方法,所述邮政编码包括规则平行码条的时钟轨道,其特征在于,包括下述步骤定义在所述图像数据中的字区域,它包含了指示其中存在邮政编码的特征;用来自所述子区域的图像数据识别在所述图像数据中从所述邮政编码一个边缘跨越所述邮政编码的所述时钟轨道到另一边缘的一条基线;定位与该基线相交的码条;跟踪每一高于和低于所述基线的码条以根据码条长度获得一状态串;以及对该状态串译码。
2.如权利要求1所述的方法,其特征在于,识别从所述邮政编码的一个边缘跨越所述邮政编码的时钟轨道到另一边缘的基线的所述步骤包括识别在所述子区域左子图像中的第一码条和在所述子区域的右子图像中的第二码条;将可位于子图像中的左邮政编码边缘定位到所述第一码条的左边;以及将可位于子图像中的右邮政编码边缘定位到所述第一码条的右边。
3.如权利要求1所述的方法,其特征在于,通过下列方法识别从所述邮政编码的一个边缘跨越所述时钟轨道到另一边缘的所述基线在候选左边缘码条上选择第一点;在候选右边缘码条上选择第二点;以及沿所述基线测试码条的规则性以确定所述基线是否完全位于时钟轨道内。
4.如权利要求3所述的方法,其特征在于,用一个查找表来选择所述第一和第二点。
5.如权利要求4所述的方法,其特征在于,响应于先前的基线不完全位于所述时钟轨道内的判断,从所述查找表中选择不同的第一和第二点。
6.如权利要求3所述的方法,其特征在于,如果在沿基线测试码条的规则性中识别了一个间隙,那么对每个丢失的码条插入一个位置保留符。
7.一种用于阅读二状态和四状态邮政编码的方法,其中构成时钟轨道的码条已经被识别,其特征在于,包括下列步骤对于每一个识别的码条确定所述码条是从所述时钟轨道处上升了还是下降了;获得对于包括丢失码条的位置保留符的条形码的状态串;选择适于要读取的邮政编码类型的二状态或四状态译码算法;以及运用所选的译码算法从所述状态串翻译该码。
8.如权利要求7所述的方法,其特征在于,读取U.S.POSTNET码。
9.如权利要求7所述的方法,其特征在于,读取加拿大邮政编码。
10.如权利要求7所述的方法,其特征在于,读取英国邮政编码。
11.一种用于读取各种类型邮政编码的方法,其特征在于,包括获取识别为潜在地包含邮政编码图像的像素数据;定位所述邮政编码的整个时钟轨道;检查已定位的时钟轨道内的每一码条以确定是否每个这种码条是否都延伸到时钟轨道的上面或下面并获得对于该码的一个状态串;通过检查码条的数目以及上升码条和下降码条的出现情况确定邮政编码的类型;以及将至少一种邮政编码的译码算法用到状态串上。
12.如权利要求11所述的方法,其特征在于,确定码型包括下列步骤确定所述码是否具有表示美国邮政编码的大量码条;根据上升和下降码条的出现情况确定所述码的朝上/朝下取向;以及试图按美国邮政编码对所述状态串译码。
13.如权利要求12所述的方法,其特征在于,进一步包括下述步骤确定所述码是否具有表示英国码的大量码条;以及试图按英国码对所述状态串译码。
14.如权利要求13所述的方法,其特征在于,进一步包括下述步骤如果试图按英国码对所述码译码失败,则试图按加拿大邮政编码对所述状态串译码。
15.如权利要求11所述的方法,其特征在于,通过以下步骤定位所述时钟轨道(a)识别最左和最右的候选码条;(b)对候选码条的长度作一系列的猜测以估计一条候选时钟轨道;(c)测试在所述候选时钟轨道内的码条和间隔的规则性;以及(d)重复步骤(a)-(c)直到找到完整的时钟轨道。
16.一种用于阅读邮政编码的装置,其特征在于,包括光学传感器,用于获得二维阵列的图像数据;自动鉴别器,用于识别在潜在包含邮政编码的图像数据中的一个子图像聚类;时钟轨道定位器,用于通过从一条候选基线开始估算各候选基线、定位所述码边缘和检查沿着在码边缘间延伸的一条或多条候线基线的码条和间隔的均匀性,而在所述图像数据阵列中定位一完整时钟轨道,其中所述候选基线从定位在所述聚类内的子图像中的码条开始延伸;码条跟踪器,用于确定垂直于基线的每一码条的长度并响应于它产生状态串;和邮政编码译码器,用于对状态串译码。
17.如权利要求16所述的装置,其特征在于,所述时钟轨道定位器包括含有一系列端点的查找表的存储器,用于生成一条或多条候选基线,码条和间隔的均匀性将沿这些候选基线而被评估;
18.如权利要求17所述的装置,其特征在于,用走线算法在候选基线上从一个端点走向第二个端点。
19.如权利要求16所述的装置,其特征在于,包括一邮政编码分配器,用于识别感测到的邮政编码类型以及根据适于所识别的邮政编码类型的译码算法对所述邮政编码译码。
20.如权利要求19所述的装置,其特征在于,通过检查时钟轨道码条的数目和上升及下降码条的出现情况并通过试图根据用于至少一种邮政编码的译码算法对所述状态串译码,而确定所述邮政编码的类型。
21.一种用于读取二状态和四状态邮政编码的方法,其中已识别构成时钟轨道的码条,其特征在于,包括下列步骤对于每一识别的码条,确定所述码条是从所述时钟轨道上升还是下降以获得状态串;如果基本上延伸超过所述时钟轨道的所有码条都是上升码条或如果基本上延伸超过所述时钟轨道的所有码条都是下降码条,则试图按二状态对状态串译码;如果试图按二状态码对所述状态串译码失败,则试图按四状态码对所述状态串译码。
22.如权利要求21所述的方法,其特征在于,试图按四状态码对所述状态串译码首先是试图按固定长度四状态码对所述码译码。
23.如权利要求21所述的方法,其特征在于,利用小于所述码的理论上最大纠错能力试图进行译码。
全文摘要
用于识别和阅读具有上升码条(4)、下降码条(5)、全码条(6)和时钟码条(7)的邮政编码(12)的方法和装置,它包括了一个手持式代码阅读器(10)。通过确定邮政编码的一幅图像内的取向和位置,该邮政编码图像被反复处理并随后被读取和译码。该系统能鉴别不同格式的编码图案。
文档编号G06K7/14GK1300406SQ00800523
公开日2001年6月20日 申请日期2000年4月7日 优先权日1999年4月7日
发明者E·约瑟夫, D·F·何 申请人:讯宝科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1