用于定位图像内预定图案的系统和方法

文档序号:6567823阅读:216来源:国知局
专利名称:用于定位图像内预定图案的系统和方法
技术领域
本发明涉及一种定位预定图案的方法。将图像分割成预定数目的区域。确定 指示将分析这些区域以寻找该预定图案的次序的搜索序列。按该搜索序列分析这些 区域直到过去了预定时间或者检测到该预定图案。当在检测到该预定图案之前己经 过去了该预定时间时,获得另一图像。然后,在该另一图像中从紧接在所述图像中 最近一次分析的区域之后要分析的区域开始分析该序列中剩余的区域,直到过去了 预定时间或者在这些剩余区域之一中检测到该预定图案。


图1示出了根据本发明的系统的示例性实施例;
图2示出了根据本发明的成像设备的示例性实施例;
图3示出了根据本发明的方法的示例性实施例;
图4a示出了由该成像设备产生的图像的示例性实施例;
图4b示出了根据本发明被分割成多个位置的图4a的图像的示例性实施例; 图4C示出了根据本发明的搜索序列的示例性实施例; 图4d示出了根据本发明的搜索序列的另一示例性实施例; 图5示出了根据本发明的一系列图像的示例性实施例; 图6示出了根据本发明的搜索序列的另一示例性实施例。
具体实施例方式
参照以下描述和其中相同的参考标记表示相同的要素的附图可以进一步理解 本发明。本发明的示例性实施例提供了允许成像设备标识所生成的图像内的预定图 案的预定搜索序列。
图1示出了根据本发明的系统5的示例性实施例。系统5包括通过有线或者 无线连接耦合到计算设备12的成像设备(例如,扫描器10)。该扫描器10捕捉 如将在以下解释地那样标识其中的预定图案的一个或多个图像。计算设备12可以 是例如PC、膝上型计算机、服务器、手持式计算机等。
在一个实施例中,扫描器IO包括具有镜头15的图像捕捉装置("ICA" ) 35 (例如,相机)、处理器40、存储器45和定时器50 (在图2中示出)。镜头15 和其中的一个或多个特性(例如,放大率、凸性等)可以定义扫描器IO产生的成 像区域20。本领域那些普通技术人员可以理解的是通过调整所述特性可以操控成 像F域20的大小、形状和朝向。由扫描器IO牛成的图像可以具有基木类似于成像
区域20的尺寸。
在操作中,要扫描的物品25出现在扫描器10的成像区域20内。如上所述, 物品25可以动态穿过成像区域20 (例如,刷取扫描)或者在成像区域20中或其 附近保持不动(例如,出示扫描)。在任意一个实施例中,扫描器10可以生成所 述物品25的一部分的至少一个图像。本领域技术人员可以理解的是所述物品25 其上通常放置有面向扫描器10且尤其在成像区域20内的预定图案(例如,条形码 30)。如此,物品25可以由系统5的用户(例如,杂货店店员,仓库雇员等)放 置,或者物品25可以被布置在使物品25穿过用于扫描的成像区域20的平台(例 如,传送带、装配线)上。
本领域技术人员可以理解的是条形码30可以是一维或二维的,以及可以是任 意大小和形状的。此外,本发明预想条形码30可以以任意方式定向。例如,尽管 在图1中示出了条形码30在成像区域20中水平定向,本领域技术人员可以理解的 是,条形码30可以以一个角度和/或倒置定向。虽然成像区域20内的条形码的朝 向取决于穿过视场30的物品25的移动,但该朝向也可以取决于对扫描器10的操 控。例如,如果用户保持扫描器10倒置,则图像中的条形码30也会被倒置。
当扫描器10捕获图像时,扫描器10中的处理器40可以使用数字图像处理技 术来解码图像或者提取包含在其中的任何数据。在一个实施例中,处理器40将数 据存储在存储器45中和/或将数据发送到计算设备12。本领域技术人员可以理解的 是存储器45可以是易失性存储器和/或非易失性存储器,或者它们的任意组合。此 外,存储器45可以存储可由处理器40执行的应用以及从解码图像中获取的数据。 当解码图像时,如下所述,扫描器10可以利用定时器50。
在图3中示出了根据本发明的方法200的示例性实施例。在步骤205,处理器 40将一帧分割成预定数目的位置(例如,块305)。为了生成块305,处理器40 获取该帧的第一大小(例如,640x480像素)并将其除以每个块350的第二大小(例 如,8x8像素)。例如,如果第一大小是640x480像素而第二大小是8x8像素,则 块305的预定数目将是80x60 (即,(640*480) / (8*8))。因此,该帧将被分割 成4800个8x8像素块305的阵列(例如,栅格)。尽管以这种方式,帧将被分割 成不相重叠的块,但本领域技术人员可以理解的是通过修改例如第二大小和/或预 定数目也可以利用部分重叠的块。
在另一个实施例中,处理器40可以识别帧的第一大小并将阵列映射在该帧上。 例如,在这个实施例中,当扫描器IO牛成该帧时,处理器40识别出第一大小是640x480像素。然后处理器40获取存储在存储器45中的相应阵列(例如,4800 个8x8像素块305),并将它映射到该帧上。在这个实施例中,存储器45可以存 储对应于例如多个帧大小和/或块305大小的多个阵列。
在步骤210,处理器40确定指示为了标识条形码30而将检查/分析块305的 预选次序的搜索序列。在优选实施例中,该搜索序列可以通过存储在存储器45上 的算法确定并由扫描器10的处理器40执行。该序列可以通过确定将要被分析的块 305的预选次序的方程组表示。在示例性实施例中,该方程组通常被示为
Xi=(i*m) mod M
yi=(i*n) mod N
i〉=0,其中m, n, M, N是整常数。
在一个示例性实施例中,该方程组是
Xi=(i*19) mod 78 yi=(i*35) mod 58
该方程组给出了由第一点(例如,(O,O))和第二点(例如,(77,57))界定的矩形点 范围中的(x,y)对。在这个实施例中,如果该点范围在x和y坐标上都偏移一个点, 则该范围将适于前述80x60个块的内部。g卩,该范围将延伸到78x58个块的区域而 不触达80x60个块的配置的任何边缘。本领域技术人员可以理解在重复该序列之 前,使用上面的方程组可以覆盖范围(1,1)到(78,58)中坐标和为偶数的所有块。
本领域技术人员可以理解的是,帧的第一大小、块305的第二大小以及阵列 可彼此相依存地或独立地变化。例如,增大第二大小可以减少处理时间,反之,减 小第二大小可提供对帧的更精细的覆盖。更精细的覆盖可用于标识更小的条形码和 /或距离扫描器10具有伸长距离的条形码。例如,在方程组的另一个示例性实施例 中可以在帧的该第一大小情况下利用块305的另一第二大小(例如,16x16像素)。 因此,可以生成包括40x30个第二大小的块的另一个阵列。在该另一实施例中,方 程组为
x「("5)mod38
yr(i*23) mod 28
根据该方程组,在图6中示出了分析的前37个块。因此,该方程组是出于基本上
分析图像的所有部分的目的产生的。
在另一个实施例中,搜索序列可以从伪随机数发生器导出。即,要处理的块 的从阵列中随机选择出的。对该块不再作軍新分析育到该搜索序列中的所有块都己
经被分析。
在优选实施例中,如在图4c中所示,该序列开始于位于帧的原点(例如,(O,)) 的第一块310。而后,将依照前一块(例如根据该方程组)分析预选次序中的下一
个块(例如,第二块320)。例如,第一块310后的第二块320具有利用如下第一 方程组计算出的坐标(19, 35):
x,= 19=(19) mod 78
y;=35=(35) mod 58
因此,该序列不再重复直到例如包含在该序列中的每一个块都305被分析。本领域
技术人员可以理解的是在另一实施例中,可以使用迭代法,例如
xi+1=Xi+m; 如果(xi+1>=M)
Xi+i= Xi+-M;
尽管该实施例在数学上等价于使用模运算的上述实施例,但该实施例不涉及 乘法/除法,因而在一些处理器上可以更快地执行。
在步骤215,扫描器10从在物品25的扫描期间产生的一系列图像中获取如图 4a所示的第一图像300。例如,扫描器10可以每秒产生并分析约30个图像。如上 所述,扫描器IO可以生成该图像系列并以预定次序处理该系列内的每一个图像。 或者,扫描器10可以生成第一图像300,并仅在第一图像300的处理失败的情况 下才获取其它图像,如下所述。尽管方法200将被描述成由扫描器10执行,但本 领域技术人员可以理解的是方法200可似由能访问该图像系列的任意设备(例如, 计算设备12)来执行。在已获取第一图像300之后,处理器40将阵列映射到该图 像上面,如图4b所示。
如图4a所示,第一图像300包括位于其中的一个区域的条形码30。但是,由 于例如物品25穿过成像区域20的移动、物品25关于扫描器10的朝向、或者其它 各种因素,如图5中示出的一系列图像500中所绘出的,该条形码30不在第一图 像300的中心。图像500可以在物品25穿过成像区域20时在例如刷取扫描期间产 生。因此,本领域技术人员可以理解的是条形码30或者仅仅它的一部分可能位于 第一图像300内的任意区域,或者条形码30没有位于第一图像300中。以下将解 决这些情况。
在步骤220,处理器40启动设置在第一值并在到达第二值(例如,0)时期满 的定时器50。第一和第一倌之间的差表示处理器40用来分析第一图像300卜.序列
中的块305的时间。在另一个实施例中,处理器40用来分析第一图像300中的块 305的时间是根据帧率(例如,30帧/秒)的连续图像的到达之间的时间。当定时 器50期满时,处理器40移到由扫描器IO产生的图像系列中的下一图像。在该例 子中,该下一图像可以是该系列中的第二个图像315。但是,本领域技术人员可以 理解的是下一图像和前一图像可以相隔n个图像(例如,每三个图像)。此外,本 领域技术人员可以理解的是定时器50可以用在处理器40上执行的硬件或软件功能 来实现。
在步骤225,处理器40分析序列中的块305。在所述方法200的第一次迭代 中,在步骤225,处理器40分析第一块310。在操作中,处理器40分析由块305 的第二大小定义的边界内的图像。例如,在8x8像素块305中,处理器40分析64 像素区域以确定是否条形码30的至少一部分位于其中。或者,处理器40分析块 305及其相邻块以确定是否条形码30的一部分位于其中。
在步骤230,处理器40确定该第一块310是否包含条形码30的一部分。艮P, 整个条形码30可能没有匹配在第一块305内。因此,条形码30的该部分可以包括 可向处理器40表示条形码30的该部分已经被标识的任意标记。例如,条形码30 的该部分可以是具有任意宽度以及任选地,其间具有预定间隔的一个或者多个平行 条。因此,处理器40可被编程为标识任意的一维或二维条形码的一部分。
在步骤235,第一块310不包括条形码30的一部分,因此处理器40确定定时 器50是否期满。如果定时器50还未期满,处理器40继续检查/分析同一图像(例 如,第一图像300)中的块,如在步骤237所示。因此,处理器40分析该序列中 的下一个块(例如,第二块320)(步骤225)。因此,处理器40可以继续分析该 序列中的块直到定时器50期满或者标识了条形码30的一部分。
在步骤240,定时器50己经期满,因此处理器40获取该图像系列中的后续图 像(例如,下一个图像)。如上所述,下一个图像可以是第二图像315或者距第一 图像300n个图像的图像。在这个实施例中,在获取了第二图像315之后,处理器 40将阵列映射到该第二图像315上并启动定时器50 (步骤220)。在定时器50启 动之后,处理器40分析紧接在第一图像300上的序列中所分析的最后一个块(例 如,第三块322)之后的第四块325,这将参照图4c和4d进行描述。
图4c示出了被分割成预定数目的块305的第一图像300。因此,在第一反复 中,处理器40起始于第一块310并分析该序列中的每一个块直到定时器50期满或 者标识了条形码30的一部分。第一次迭代中的序列由标记为X。-Xn的块示屮,,其中n表示在定时器50期满之前分析的块的数目。标记为Xn的块表示第一图像305 上所分析的序列中的最后一个块。块序列X。-Xn是以使得在对每一个进行分析之后 就基本上分析了第一图像300的全部区域的方式来生成。当定时器50期满时,处 理器40在没有标识到条形码30的该部分的情况下到达第三块322。因此,处理器 40获取在图4c中显示的第二图像315。
在图4d中,第二图像315可以等同于第一图像300。即,条形码30在第一和 第二图像300、 315中可位于基本相近似的位置。但是,由于例如在扫描期间物品 25的移动,条形码30也可能已移动到第二图像中的新位置。根据本发明,用户可 以保持物品基本不动(例如,出示扫描)或者连续移动(例如,刷取扫描)。
在第二图像315中,处理器40继续处理该搜索序列,其起始于该序列中第三 块322 (例如,第一图像300中分析的最后一个块)之后的下一个块325。即,处 理器40并非起始于第二图像315中的第一块310。第二次迭代中的序列用标记为 Yo-Ym的块示出,其中m表示在定时器50期满之前分析的块的数目。标记为Ym 的块表示第二图像315上的序列中所分析的最后一个块。当扫描器工作在出示扫描 模式时,该最优化可以极大减少图像的数目,从而减少处理器40为了标识条形码 30所必须利用的时间。在刷取扫描中,该搜索序列可以充分随机以使得在给定每 一图像中处理的块305的数量(例如,每个图像处理大约IOO或更多个块)的情况 下图像的所有区域基本上被均匀覆盖。
返回参照图3,在步骤245中,处理器40己在第四块325中标识了条形码30 的该部分,因此处理器40可以产生垂直于在块325中发现的条的虚扫描线并初始 化对条形码30的扫描。在另一个实施例中,处理器40分析与该其相邻的块以试图 标识整个条形码30。这些相邻块可以根据条形码30的该部分在第四块325中的朝 向来确定。例如,在图4d示出的实施例中,处理器40可以确定条形码30的该部 分的朝向是一条形或者条形的一部分。因此,处理器40可以修改该序列以包括预 定区域内的块。在一个实施例中,该预定区域可以通过画一条垂直穿过该条形的线 条而确定。因此,距离该线条(例如,之上或之下)预定距离内的任意块可被包括 在修改后的序列中。该线条的长度可根据条形码30的长度来确定。修改后的序列 在图4d中被示为第四块325之后的第二线系。
在一个实施例中,当处理器40己经标识出条形码30的该部分时,它挂起定
时器50。因此,在分析相邻块时,处理器40仍保持在单个图像(例如,第二图像
315)卜.。何是,那些本领域技术人员可以拜.解的是,在另一个实施例中,当定时
器50期满时处理器40可获取下一图像,并如上所述地在扫描的最后一个块之后的
块开始分析。然而,在该下一图像中(例如,第三图像),处理器40将开始根据
修改后序列来分析块。
此外,在使用修改后的序列期间,处理器40可以使用空块容限。因此,如果 修改后的修列中的块305的一个不包含条形码30的其它部分,则处理器40可以继 续根据修改后序列来分析块305。该容限可以是例如连续分析的空块的任意预定数 目(例如,3)。此外,如果处理器40在该预定数目的空块中标识了条形码30的 其它部分,则该容限可以被复位。例如,如果在修改后的序列中存在一空块,则处 理器40可以继续分析块305 —直到该容限。如果接下来的三个块都不包括条形码 30的其它部分,则处理器40可以回复到原始序列(步骤225)或者修改己经过修 改的序列以包括第四块325周围的更大区域。
在步骤250,处理器40确定是否标识了整个预定图案(例如,条形码30)。 如果条形码30的仍有一部分要标识,则处理器40将确定定时器50是否己经期满, 以及如果没有则继续根据修改后的修列来分析块。在另一个实施例中,处理器40 可回复到原始序列并开始分析其中剩余的那些块。如果整个条形码30已经被标识, 则处理器40将条形码30的图像数字化,如步骤255所示。经数字化的图像可以存 储在存储器45中和/或发送给计算设备12。任选地,处理器40可以在步骤255之 后确定图像的解码是否成功。如果没有,处理器40将确定定时器50是否已经期满 并相应地继续扫描分析块/图像。
对于本领域技术人员来说可在本发明中做出各种修改而不会脱离本发明的精 神实质和范围是显而易见的。因此,本发明旨在覆盖本发明的这些修改和变更,只 要它们落在所附权利要求及其等效方案的范围内。
权利要求
1.一种用于定位预定图案的方法,包括将图像分割成预定数目的区域;确定指示将分析所述区域以寻找所述预定图案的次序的搜索序列;按所述搜索序列分析所述区域,直至满足以下条件之一(i)过去了预定时间以及(ii)检测到所述预定图案;以及当在检测到所述预定图案之前已经过去了所述预定时间时,获取另一图像然后在所述另一图像中从紧接在所述图像中最近一次分析的区域之后要分析的区域开始分析所述序列中剩余的区域,直至满足以下条件之一(i)过去了所述预定时间以及(ii)在所述剩余区域之一中检测到所述预定图案。
2. 如权利要求1所述的方法,其特征在于,所述预定图案是一维条形码和二 维条形码之一的至少一部分。
3. 如权利要求1所述的方法,其特征在于,所述区域具有预定大小和形状。
4. 如权利要求l所述的方法,其特征在于,所述确定步骤还包括 以使得在所述序列重复之前所述序列中的每一个区域皆已被分析的方式来产生所述次序。
5. 如权利要求l所述的方法,其特征在于,还包括当在被分析的区域中已经检测到所述预定图案时,确定与所述区域相邻的区域;分析所述各相邻区域以获取子图像,所述子图像包括所述预定图案; 将所述子图像解码以提取数据。
6. 如权利要求5所述的方法,其特征在于,所述子图像是条形码数据。
7. 如权利要求5所述的方法,其特征在于,所述相邻区域是根据以下子步骤 来确定的确定所述预定图案在所述被分析的区域内的位置和朝向;以及根据(i)所述位置和(ii)所述朝向中的至少一个来确定所述相邻区域。
8. 如权利要求l所述的方法,其特征在于,在所述分割步骤之前,所述方法 还包括在(i)刷取扫描和(ii)出示扫描之一期间获得所述图像。
9. 如权利要求l所述的方法,其特征在于,所述确定步骤还包括 根据以下之一产生所述次序(i) Xi=(i*m) mod M yi=(i*n) mod Ni>=0,其中m、 n、 M、 N是整常数,以及(ii) 从伪随机数发生器导出的序列。
10. 如权利要求1所述的方法,其特征在于,所述预定时间是所述图像到达 与所述另一图像到达之间的时间。
11. 一种设备,包括用于捕捉至少一个图像的图像捕捉装置;以及处理器,用于将所述图像分割成预定数目的区域,确定指示将分析所述区域 以寻找所述预定图案的次序的搜索序列,按所述搜索序列分析所述区域直至满足以 下条件之一 (i)已经过去了预定时间以及(ii)检测到所述预定图案,其中,当在检测到所述预定图案之前已经过去了所述预定时间时,所述处理 器获得另一图像然后在所述另一图像中从紧接在所述图像中的最近一次分析的区 域之后要分析的区域开始分析所述序列中剩余的区域,直至满足以下条件之一 (i) 已经过去了所述预定时间以及(ii)在被分析的区域之一中检测到所述预定图案。
12. 如权利要求ll所述的设备,其特征在于,所述预定图案是一维条形码和 二维条形码之一的至少一部分。
13. 如权利要求ll所述的设备,其特征在于,所述区域具有预定大小和形状。
14. 如权利要求ll所述的设备,其特征在于,所述处理器以使得在所述序列 重复之前所述序列中的每一个区域皆已被分析的方式来产生所述次序。
15. 如权利要求ll所述的设备,其特征在于,当在被分析的区域中已经检测 到所述预定图案时,所述处理器确定与所述被分析的区域相邻的区域;所述处理器 分析所述各相邻区域以获得子图像,所述子图像包括所述预定图案;并且所述处理 器将所述子图像解码以提取数据。
16. 如权利要求15所述的设备,其特征在于,所述子图像是条形码。
17. 如权利要求15所述的设备,其特征在于,在所述处理器确定所述相邻区 域时,所述处理器确定所述预定图案在所述被分析的区域中的位置和朝向,并且所 述处理器根据(i)所述位置和(ii)所述朝向中的至少一个来确定所述相邻区域。
18. 如权利要求11所述的设备,艽特征在于,所述处理器在(i)刷取扫描和(ii)出示扫描之一期间获得所述图像。
19. 如权利要求ll所述的设备,其特征在于,所述处理器根据以下之一产生 所述次序(i) Xi=(i*m) mod M y产(i承n) mod Ni>=0,其中m、 n、 M、 N是整常数,以及(ii) 从伪随机数发生器导出的序列。
20. 如权利要求ll所述的设备,其特征在于,所述设备是图像扫描器。
21. 如权利要求ll所述的设备,其特征在于,所述预定时间是所述图像到达 与所述另 一 图像到达之间的时间。
22. —种存储指令集的计算机可读存储介质,所述指令集能够由处理器执行, 所述指令集执行以下步骤将图像分割成预定数目的区域;确定指示将分析所述区域以寻找所述预定图案的次序的搜索序列; 按所述搜索序列分析所述区域,直至满足以下条件之一 (i)过去了预定时间以及(U)检测到所述预定图案;以及当在检测到所述预定图案之前已经过去了所述预定时间时,获取另一图像然后在所述另一图像中从紧接在最近一次分析的区域之后要分析的区域开始分析所述序列中剩余的区域,直至满足以下条件之一 (i)过去了所述预定时间以及(ii)在被分析的区域之一中检测到所述预定图案。
全文摘要
描述了一种用于定位预定图案的方法。将图像分割成预定数目的区域。确定指示将分析这些区域以寻找该预定图案的次序的搜索序列。按该搜索序列分析这些区域直到过去了预定时间或者检测到该预定图案。当在检测到该预定图案之前已经过去了该预定时间时,获得另一图像。然后,在该另一图像中从紧接在所述图像中最近一次分析的区域之后要分析的区域开始分析该序列中剩余的区域,直到过去了预定时间或者在这些剩余区域之一中检测到该预定图案。
文档编号G06K7/14GK101208708SQ200680021553
公开日2008年6月25日 申请日期2006年5月25日 优先权日2005年6月21日
发明者何端峰 申请人:讯宝科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1