用来匹配图象的一种方法和一种装置的制作方法

文档序号:6415983阅读:131来源:国知局
专利名称:用来匹配图象的一种方法和一种装置的制作方法
技术领域
本发明涉及用来匹配两个图象的一种方法和一种装置,每个图象包括多个象素和带有部分重叠的内容,对于代表图象不同重叠的不同移动位置确定图象之间的对应程度。
本申请人已经开发了一种笔,通过使该笔在要记录的文本上方通过能记录该文本。尤其包括一个两维光敏传感器和一个信号处理单元的笔,记录具有部分重叠内容的文本。接着,把图象放在一起形成一个不包含任何冗余信息的较大图象。图象中的字符借助于OCR软件辨别,并且以字符编码的形式存储在笔中。该笔在本申请人的瑞典专利申请No.9604008-4中描述,该申请在本申请提出时还没有公开。
为了减小笔的记忆要求,希望有可能在记录下一个图象之前把记录的图象与以前的图象放在一起。用于笔的希望图象记录频率是约50Hz,因而这意味着有可能在约20ms(毫秒)内把两个图象放在一起。当把图象放在一起时最耗时的操作是图象的匹配,即,确定其中得到图象内容之间的最好可能对应性的相对位置。
用来匹配两个图象的一种可能方法是,检查在图象之间的所有可能重叠位置,及对于每个重叠位置,检查每对重叠象素,以确定用于每对重叠象素的一个分数,该分数取决于象素值对应得多好,及然后根据在每个位置中用于重叠象素的分数总值确定哪个重叠位置提供最好的匹配。然而,该过程对于以上指出的申请太慢。
鉴于上述,因而本发明的一个目的在于提供一种用来自动匹配两个图象的新方法,该方法允许借助于一个给定处理器实现比上述方法快的两个图象的匹配。
一个进一步的目的在于,提供一种用于该方法实施的装置。
诸目的通过根据权利要求1的一种方法及根据权利要求18和19的一种装置实现。最佳实施例在子项权利要求中陈述。
象上述方法那样,本发明基于对于代表图象不同重叠的不同移动位置确定两个图象之间的对应程度,图象每一个包括多个象素并且这两个图象具有部分重叠的内容。然而,图象内容的比较以更有效的方式实现。更具体地说,对于多个移动位置的每一个确定多个数值,每个数值借助于来自两个图象的象素值形成。诸数值用来同时产生对于至少两个移动位置的重叠估计。这些重叠估计值以后用来确定图象之间的对应程度。
利用该方法,借助于一定程度的类似性能检查不同的移动位置,使得有可能比顺序检查所有移动位置快地检查图象。该类似性借助于用来同时检查至少两个移动位置的数值实现。由于诸数据基于每个图象的内容,所以在组成数值的象素值完全或部分重叠的情况下,有可能预先计算重叠估计值。
当进行匹配时借助于诸数值能存储和检索这些重叠估计值。另一方面,有可能定义一个或多个当所述数值用作参数时产生对至少两个移动位置的重叠估计值的公式。作为又一个方面,有可能使用一个门电路,该门电路产生对于至少两个移动位置的重叠估计作为用于包括所述数值的输入信号的结果。
自然,效率增大,更多的象素包括在每个数值中,因为这增大类似性。
因而,预定义重叠估计值。这所指的是,如果图象之一中的象素具有一个第一给定值,并且另一个图象中的对应重叠象素具有一个第二给定值,则总能得到某一预定重叠值。当重叠估计值与几个重叠象素有关时这同样适用。对于不同象素值组合得到的不同重叠估计值的数字值能选择地确定。
在这方面,应该指出,当然,当实施该方法时图象不是实际地相对于彼此移动,而是对于假想移动进行图象之间的比较。
在一个最佳实施例中,该方法进一步包括步骤求和对于所述移动位置每一个的重叠估计值;和使用以该方式得到的总值来确定移动位置的哪一个提供在图象内容之间的最好可能匹配。对于某一移动位置加在一起的重叠估计值最好反映对于该移动位置在所有重叠象素之间的对应程度。
为了进一步增加匹配速度,对于几个移动位置按类似性适当求和重叠估计值。如果它对于借助于所述数值同时产生的重叠估计值按类似性进行,则总和变得特别有利。
每个重叠估计值能与一个或多个重叠象素有关。在后一种情况下,匹配速度增大通过这样一种事实实现对于某一移动位置不必求和对每个重叠象素的估计值,而是能直接产生对于两个或多个重叠象素已经求和的重叠估计值。
当已经确定提供图象内容之间最好匹配的移动位置时,在该相对位置中图象能放在一起。放置在一起通过忽略图象之一中的重叠象素值、或者最好通过对于每个重叠象素的象素值的结合加权实现。
对其确定诸数值的多个移动位置能适当地构成诸粗移动位置,并且对其同时产生重叠估计值的所述至少两个移动位置能适当地包括表示离粗移动位置的移动比两个粗移动位置之间的移动小的至少一个精移动位置。第二重叠估计值能与讨论的粗移动位置有关或与另一个精移动位置有关。
在该方法的最简单实施例中,图象的内容仅在一个方向彼此相对移动。然而,当图象在两个不同的、特别是彼此相对垂直的方向上移动时,也能采用该方法。在这种情况下,为了到达其中图象内容之间的对应性处于最大的位置,适当的是让粗移动位置代表在第一方向上例如在水平方向上的不同图象重叠,并且对于不同的图象重叠在另一方向上例如在竖直方向上重复该方法。
如此构成检查的移动位置一个子组的粗移动位置,最好通过把图象划分成多个包括N×M个象素的粗段确定,其中N和M大于一,在两个相邻粗移动位置之间的移动由一个粗段组成。诸粗段因而能通过把图象划分成每个具有几个象素宽度和高度的列或行实现。
诸图象能以各种方式表示。他们能是模拟的,但最好他们是数字的,因为这便于他们借助于计算机处理。图象值能用不同的分辨率表示。然而,该方法最好供表示为位图的图象之用。
如上所述,数值基于两个图象的内容。在一个最佳实施例中,数值用作用于存储器位置的地址,这些存储器位置存储重叠估计值。在这种情况下,后者适当地通过预先十分简单地计算或确定来定义。
最好,地址用来寻址一张查阅表,该查阅表对于每个地址包含所述对于至少两个移动位置预先计算的重叠估计值。其中在地址中使用的象素值的顺序并不重要,只要对于所有地址都使用相同的顺序,并且只要按与所述顺序有关的预定方式执行查阅表中重叠估计值的存储。
根据本发明的方法能完全以硬件实施。在该情况下,诸数值如上所述能形成用于一个门电路的输入信号,该门电路以这样一种方式设计,从而对于每个给定组的输入信号,产生相应重叠估计值作为输出信号。因而,在这种情况下,重叠估计值由门电路的结构限定。该方法对于大图象是便利的。
然而,在一个最佳实施例中,该方法借助于一个以预定字长工作的处理器以软件实施。在这种情况下,查阅表包括多个可寻址的行,每一行具有预定字长并且存储预先计算的重叠估计值。通过把表的宽度调节到处理器的字长,得到处理器能力的最好可能利用。例如,在表中不同的行能以高效方式求和。
用于该方法的各种参数,即,粗移动位置、对于每个地址存储的重叠估计值的数量、表的数量等根据利用的处理器和其高速缓冲存储器适当地确定,以便达到可能的最高速度。最好,选择参数,从而两个图象和所有的预先计算重叠估计值能包含在高速缓冲存储器中。
在一个最佳实施例中,每个数值由如下几段形成一个第一精段,包括来自第一图象的至少两个相邻象素值;一个第二精段,重叠第一精段,并且包括来自第二图象的、与第一精段一样多的相邻象素值;及一个第三精段,包括来自第二图象的、与第一精段一样多的相邻象素值,并且重叠在一个相邻移动位置中的第一精段,对于该相邻移动位置,即相邻粗移动位置,执行多个数值的确定。以这种方式,数值将包括在一个粗移动位置中、和在该粗移动位置与下一个粗移动位置之间的所有精移动位置中、以及在该下一个粗移动位置中能重叠的所有象素值。因而,有可能借助于数值检索对于所有这些移动位置的预先计算重叠估计值。
为了节省存储器空间从而所有必需的信息能存储在处理器的高速缓冲存储器中,并因而是可迅速访问的,把每个地址便利地划分成一个第一和一个第二子地址,由来自第一和第二精段的象素值组成的第一子地址用来同时检索在一张第一表中的重叠估计值,以便重叠属于第一和第二精段的象素,由来自第一和第三精段的象素值组成的第二子地址用来同时检索在一张第二表中的重叠估计值,以便重叠属于第一和第三段的象素。
在这种情况下,对于每个地址,第一和第二表最好存储对于所述至少两个移动位置的每一个的重叠估计值,对于第一移动位置的两个重叠估计值之和用一个地址的第一和第二子地址检索,对于所述第一移动位置构成一个对于第一、第二及第三精段的所有重叠象素的重叠估计值。该重叠估计值最好相对于每个地址的移动位置按相同顺序存储,从而他们能容易地求和。
为了进一步增大匹配速度,在图象之间的对应程度,对于多个移动位置的选择首先用图象的一个第一分辨率确定,并且以后对于选择的移动位置和相邻移动位置用图象的一个第二、较高分辨率确定。以这种方式,有可能忽略对进一步检查没有意义的图象的整个区域。
更具体地说,根据本发明的一种装置带有一个适于实现根据权利要求1-17任一项的方法的处理单元。该处理单元能连接到一个用来记录图象的单元上,并且能实时处理图象。该装置表现出与上述方法相同的优点,即允许图象的较快匹配。
在一个最佳实施例中,本发明以计算机程序的形式实施,该程序存储在借助于一个计算机可读的存储介质中。
根据本发明的方法能用来检查所有可能移动位置或仅一种选择。例如,较早匹配的移动位置能用来限制需要检查的位置数量。
本发明适用于所有类型的图象匹配。当要匹配两个图象以便以后一起放在提供图象内容之间最好对应性的位置中时,能使用本发明。当希望检查图象如何重叠时它也能用来匹配两个图象。当需要高匹配速度时本发明特别适用。
下面参照附图将描述如何能实施发明的一个例子。


图1表示包括多个象素的一个图象,指示一个粗段和一个精段。
图2表示两个图象的假想重叠。
图3表示如何借助于来自两个图象中的多个重叠象素的象素值形成一个地址。
图4表示如何同时存储和检索对于多个不同重叠位置的重叠估计值。
图5表示对于各种移动位置如何计算重叠估计值。
图6表示在其中采用子地址的情况下如何存储和检索重叠估计值。
图7表示如何求和对于多个不同移动位置的重叠值。
下面将描述一个用来匹配具有部分重叠内容的两个图象的一种方法的当前最佳实施例。该方法的目的在于找出提供图象内容之间最好的可能对应的重叠位置。为了确定什么构成最好的可能对应,采用一个预定估计标准。
在该例子中,借助于一个具有100MHz时钟频率和带有一个16kB高速缓冲存储器的32位处理器以软件实施该方法,在该高速缓冲存储器中存储要匹配的图象。这种类型处理器的一个例子是由Digital供给的StrongARM。处理器在读入到处理器的程序存储器中的一个程序的控制下操作。
拾波和供入处理器的高速缓冲存储器中的方法在本发明的范围之外,并因此不更详细地描述。然而,一种方法是使用与在经引言描述的笔中相同的技术,就是说,用光敏两维传感器记录图象并且把他们存储在存储器中,从该存储器处理器能把图象读入到其高速缓冲存储器中。
图1示意表示包括多个一些示意指示为方格的象素2的数字图象1。该图象要与具有部分相同内容的类似图象匹配。
该图象是55个象素宽和76个象素高。它存储为一个位图,每个象素因而具有一或零的值。在该例子中,值一表示黑点而值零表示白点。
为了该方法的实施,把每个图象以竖直带的形式划分成十一个粗段3,每条带是五个象素宽和76个象素高。把每个粗段划分成精段4,每个精段由五个相邻象素的一个水平行构成。
采用粗段3来定义多个粗移动位置。图2表示一个第一粗移动位置,其中两个图象1a和1b以这样一种方式彼此相对移动,从而来自每个图象的用斜线指示的一个粗段3彼此重叠。在一个第二粗移动位置中,来自每个图象的两个粗段将重叠,等等,直至其中所有粗段都重叠的第十一个粗移动位置。在两个相邻粗移动位置之间的差因而是一个粗段。
在每个粗段中,定义四个精移动位置。这些位置表示相对于一个粗移动位置移动一个、两个、三个或四个象素列。
粗移动位置和精移动位置表示在第一方向上即水平方向上图象之间的移动。如果图象也能彼此相对竖直地移动,则定义多个竖直移动位置,每个竖直移动位置表示竖直移动一个象素行。图3的左边部分表示对于一个第一图象1a和一个第二图象1b的竖直移动位置,该竖直移动位置在重叠位置中用虚线指示。
精段4用来确定多个10位子地址,这些子地址又用来检索预先计算的重叠估计值,每个重叠估计值对于某一移动位置提供在一个或多个象素之间的对应程度的度量。第一子地址由从第一图象1a中的第一精段4a检索的地址的五个最小有效位、和从第二图象1b中的对应重叠精段4b检索的地址的五个最大有效位形成。第一子地址因而表示对于重叠象素的值,希望比较这些重叠象素以便检查关于内容的对应程度。
图3表示一个如何从一个图象1a检索五个位“10010”的第一精段4a和从另一个图象1b检索五个位“01100”的第二精段4b及一起放入地址“0110010010”中的一个例子。
第一子地址用来寻址每个1024行(可能不同的地址数量)的两个表。这些表示意表示成图4中的表1和2。在诸表中,希望图象存储在处理器的高速缓冲存储器中,有预先计算的重叠估计值(在下面叫做分数)。这通过每个表中的行的放大示意表示在图4中。
在该例子中,按如下计算分数。两个重叠的白象素等于一个点,两个重叠黑象素等于两个点,而一个白和一个黑重叠象素等于零点。
图5表示存储在图4中的表中在具有地址“0110010010”的行中的分数和如何计算这些分数。分数0存储在表2中,而分数1-4存储在表1中。对于每个重叠象素,按照以上准备的计分得到分数。求和对于所有重叠象素的分数,以得到要存储在表中在具有讨论地址的行中的总分数或重叠估计值。
图4中的表2包含对于每个地址当两个精段完全重叠即在粗移动位置中得到的重叠时得到的分数(分数0)。该分数是对五个重叠象素的分数的总合,并且存储在一个位中。表1包含对于每个地址当两个精段相对于彼此部分移动即对应于各精移动位置时得到的分数(分数1-4)。这些分数存储在每个在32位字中的一个位中,并因而能在一个时钟循环期间借助于一次读或一次表查阅同时检索。分数1与当精段相对于彼此移动一个增量时得到的分数有关,从而仅得到四个重叠象素。分数2与当精段相对于彼此移动两个增量时得到的分数有关,从而仅得到三个重叠象素,等等。移动反映在讨论的粗移动位置与如下粗移动位置之间的精移动位置中得到的重叠。
如能从以上看到的那样,使用第一子地址检索的重叠估计值对于检查的移动位置仅与第一和第二精段中的象素之间的重叠有关。在第一精段中的象素与除第二精段中的象素之外的象素之间的这些移动位置中出现的重叠,不借助于上述方法拾波。
为了同样允许这些重叠的检查,除第一子地址之外形成一个第二子地址。该第二子地址包括在第一精段4a中的五个象素值、以及对于与第二图象1b中第二精段相邻的且重叠在以后移动位置中的第一精段的一个第三精段4C的五个象素值。
图6表示如何形成第二子地址的一个例子。来自第一图象1a中第一精段4a的象素值“10010”构成第二子地址的五个最大有效位,而来自第二图象1b中的第三精段4C的五个象素值“10101”构成第二子地址的五个最小有效位。
把对于在不同移动位置中重叠的第一和第三精段中的象素的分数或重叠估计值存储在第三表中,如图7中表3所指示。分数当然以与表1的情况下相同的方式计算,但把分数以反向顺序存储。因而,与第一和第三精段的一个重叠象素有关的分数4存储在表3中一个表行的第一字节中。与第一和第三段的两个重叠象素有关的分数3存储在第二字节中,等等。
以这种方式,借助于第一和第二子地址能检索对于四个精位移位置的重叠值。通过求和对于第一和第二子地址的重叠值,对于每个移动位置得到一个重叠值。这些重叠值的每一个与对于讨论的移动的五个重叠象素有关。
图7表示表1和表3、用来寻址这些表的第一和第二子地址、及在表的分离行中的重叠估计值。
下面给出如何进行图象匹配的描述。首先,选择一个第一粗移动位置。对于该位置,选择第一对重叠精段。假定在第一图象中的第一精段具有象素值“10010”,并且在第二图象中的第二精段具有象素值“01100”,如在图3中的例子中那样。这些值用来形成第一二进制子地址“0110010010”。况且,假定与第二图象中第二精段相邻的一个第三精段具有值“10101”。这些值与对于第一精段的象素值一起作用,以形成第二子地址“1001010101”。第一子地址用来寻址第一和第二表。在给定的例子中,从第一表得到存储在一个字中的分数4、3、0、和1,并且从第二表得到分数1。第二子地址用来寻址第三表,在给定的例子中从该表得到分数2、0、3、3。来自表1和3的分数平行求和,得到总分数6、3、3、4。
当已经比较这些第一重叠精段时,匹配继续到两个新的重叠精段,直到已经完成在重叠粗段或诸段之间的完全比较。
每次借助于对于表1和3求和的四个分数得到一个字,把该字添加到以前得到的字上。对于四个不同移动位置的分数因而借助于一种单次相加平行地求和。由于分数较低,所以在有进位之前,因此在不得不进行在一个不同位置的任何存储之前,能进行多次相加。以相同的方式求和来自第二表的分数。图8示意地表示如何平行地求和对于四个移动位置的分数,字A表示用一个包括第一和第二子地址的第一地址得到的字,而字B表示用一个包括第一和第二子地址的第二地址得到的字,及字C表示得到的总和。
当对于第一粗移动位置已经检查所有重叠精段时,对于第二和以后的粗移动位置重复该过程,直到已经检查所有的粗移动位置。
如果图象相对于彼此也竖直地移动,则对于每个竖直位置重复该方法,图象因而首先相对于彼此竖直地移动一行并且以后检查所有粗和精移动位置,因此图象被移动到下个竖直移动位置,并且检查,依次类推,直到已经扫描所有的竖直移动位置。
当已经检查所有移动位置时,对于每个位置已经得到一个分数。就在该例子中使用的估计标准而论,最高分数表示提供图象内容最好重叠的移动位置。
在本发明的一个当前最佳实施例中,首先以上述方式用比存储他们用的低的图象分辨率执行重叠估计。在该例子中,使用25×30象素的分辨率。这样的目的在于,对于图象内容之间对应性的较密切检查迅速选择相对移动位置。以后,对于原始分辨率,对于在这些和相邻位置中的图象重复该方法。
在以上例子中,重叠估计值存储在三张不同的表中。这样做的目的在于最佳地利用处理器。在其他处理器的情况下,可能代之以适当的是,把所有重叠估计值存储在一张表或多于三张的表中。这能由熟悉本专业的技术人员根据以上描述确定。
权利要求
1.一种用来匹配两个图象的方法,图象每一个包括多个象素并且具有部分重叠的内容,对于代表图象不同重叠的不同移动位置确定在图象内容之间的对应程度,该方法包括如下步骤-对于多个移动位置的每一个确定多个数值,每个数值借助于来自两个图象的象素值形成;-使用每个数值来同时产生对于至少两个移动位置的重叠估计值;-使用重叠估计值来确定在对于不同移动位置的图象内容之间的对应程度。
2.根据权利要求1所述的方法,进一步包括如下步骤-求和对于所述移动位置每一个的重叠估计值;和使用以该方式得到的总值来确定移动位置的哪一个提供在图象内容之间的最好可能匹配。
3.根据权利要求1或2所述的方法,其中对于多个移动位置平行地求和重叠估计值。
4.根据以上权利要求任一项所述的方法,其中重叠估计值的至少一个与多于一个重叠象素的多个有关。
5.根据权利要求1-4任一项所述的方法,进一步包括把在提供图象之间的最好可能对应性的移动位置中的图象放在一起的步骤。
6.根据权利要求1-5任一项所述的方法,其中对其确定诸数值的所述多个移动位置构成诸粗移动位置,并且对其同时产生重叠估计值的所述至少两个移动位置包括表示从粗移动位置的移动比两个粗移动位置之间的移动小的至少一个精移动位置。
7.根据权利要求6所述的方法,其中粗移动位置代表在第一方向上的不同图象重叠,并且进一步包括对于不同的图象重叠在第二方向上重复该方法的步骤。
8.根据权利要求6或7所述的方法,其中通过把图象划分成多个包括N×M个象素的粗段确定粗移动位置,其中N和M大于一,在两个相邻粗移动位置之间的移动由一个粗段组成。
9.根据以上权利要求任一项所述的方法,其中图象由位图组成。
10.根据以上权利要求任一项所述的方法,其中数值构成存储器位置的地址,该地址存储包括预计算值的所述重叠估计值。
11.根据权利要求10所述的方法,其中该地址用来寻址至少一张查阅表,该查阅表对于每个地址包含对于至少两个移动位置预先计算的重叠估计值。
12.根据权利要求11所述的方法,其中该方法借助于一个以预定字长工作的处理器完成,并且其中所述至少一张查阅表包括多个可寻址的行,每一行具有预定字长并且存储预先计算的重叠估计值。
13.根据权利要求12所述的方法,其中以这样一种方式进行重叠估计值的存储,从而所有重叠估计值以及要匹配的图象能包含在处理器中的一个高速缓冲存储器中。
14.根据以上权利要求任一项所述的方法,进一步包括每个数值由如下几段形成的步骤一个第一精段,包括来自第一图象的至少两个相邻象素值;一个第二精段,重叠第一精段,并且包括来自第二图象的、与第一精段一样多的相邻象素值;及一个第三精段,包括来自第二图象的、与第一精段一样多的相邻象素值,并且重叠在一个相邻移动位置中的第一精段,对于该相邻移动位置,执行多个数值的确定。
15.根据与权利要求10相结合的权利要求14所述的方法,其中把每个地址划分成一个第一和一个第二子地址,由来自第一和第二精段的象素值组成的第一子地址用来同时检索在一张第一表中的重叠估计值,以便重叠属于第一和第二精段的象素,由来自第一和第三精段的象素值组成的第二子地址用来同时检索在一张第二表中的重叠估计值,以便重叠属于第一和第三段的象素。
16.根据权利要求15所述的方法,其中对于每个地址,第一和第二表存储对于所述至少两个移动位置的每一个的重叠估计值,及其中对于第一移动位置的重叠估计值之和用一个地址的第一和第二子地址检索,对于所述第一移动位置构成一个对于第一、第二及第三精段之间的所有重叠象素的重叠估计值。
17.根据以上权利要求任一项所述的方法,其中在图象之间的对应程度,对于多个移动位置的选择首先用图象的一个第一分辨率确定,并且以后对于选择的移动位置和相邻移动位置用图象的一个第二、较高分辨率确定。
18.一种用来匹配两个每个包括多个象素且具有部分重叠内容的图象的装置,其特征在于一个适于实现根据权利要求1-17任一项的方法的处理单元。
19.一种用来匹配两个每个包括多个象素且具有部分重叠内容的图象的装置,该装置包括一种借助于计算机可读的、且其中存储用来实施根据权利要求1-17任一项所述的方法的计算机程序的存储介质。
全文摘要
在一种用来匹配两个图象的方法中,图象每一个包括多个象素并且具有部分重叠的内容,对于代表图象不同重叠的不同移动位置确定在图象内容之间的对应程度。更具体地说,对于多个所述移动位置的每一个确定多个数值,每个数值借助于来自两个图象的象素值形成,并且对于至少两个所述移动位置用来同时产生重叠估计值。检索的重叠估计值以后用来确定对于不同移动位置在图象之间的对应程度。该方法借助于计算机执行,并且能作为计算机程序实施。
文档编号G06T7/00GK1284188SQ9881340
公开日2001年2月14日 申请日期1998年12月30日 优先权日1997年12月30日
发明者克里斯特·法雷尤斯, 奥拉·雨果森, 彼德·埃里克森 申请人:C技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1