首页> 中国专利> 使用快速图像匹配的局部定位

使用快速图像匹配的局部定位

摘要

一种有效的技术被揭示用于确定对应于一个捕获图像的文档的一部分。当用户在一个文档中使用笔创建一个笔划时,该文档的图像被安置在笔上的照相机所捕获。当某些图像的位置被确定是从,例如,由图像所捕获的在文档上的图案来分析或者把图像和该文档进行像素对像素的比较的时候,其他图像的位置将由把图像序列分组成对应于该笔划形状的组来确定。相关于在段中的已定位图像的信息则能够用于确定段中未定位图像的位置。例如,用于未定位图像文档的搜索范围能够基于先前的已定位图像的位置和笔的最大速度或加速度来建立。未定位图像的旋转和缩放被估计为和已定位图像相同,而且未定位图像采用该旋转和缩放而被扭曲。像素对像素的比较则能够在该扭曲了的未定位图像和该文档的搜索范围之间完成。进一步,如果扭曲的未定位图像被成功地匹配,该图像的变换参数能够被进一步精细化。

著录项

  • 公开/公告号CN1655178A

    专利类型发明专利

  • 公开/公告日2005-08-17

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200510004068.8

  • 申请日2005-01-07

  • 分类号G06K9/34;

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人谢喜堂

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 16:25:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-03-11

    未缴年费专利权终止 IPC(主分类):G06K9/34 授权公告日:20091230 终止日期:20140107 申请日:20050107

    专利权的终止

  • 2009-12-30

    授权

    授权

  • 2008-07-23

    实质审查的生效

    实质审查的生效

  • 2005-08-17

    公开

    公开

说明书

技术领域

本发明涉及确定在一个图像中捕获的文档的位置。本发明的各个方面尤其可用于通过捕获该文档的图像来识别文档上标记的位置。

背景技术

虽然存储在计算机上的电子文档提供了优于书写文档的不少优点,很多用户却继续以电子文稿的打印版本执行某些任务。例如,这些任务包括阅读和注释该文档。带有注释的该文档的纸张版本承担特别的重要性,因为该注释典型地由用户直接地书写在该打印文档上。然而问题之一是带有直接注释的文档的打印版本在以后要变换该注释成电子形式是困难的。理想地,电子地存储的注释应该以相同方式对应于该文档的电子版本,即,该手写注释应该对应于该文档的纸张版本。

这种对应性通常需要该原始的或另一个用户照描该注释并由人把它们输入到计算机。在某些场合,用户可能电扫描该书写在纸张文档上的注释,然后建立一个新的电子文档。这些众多的步骤使得在文档的打印版本和该文档的电子版本之间的一致性很难在一个重复的基础上处理。而且,扫描的图像经常不能被编辑。这样,可能不存在一种方式从文档的原始文本中分离该注释。这就使利用注释很困难。

为解决这个问题,开发了笔,用此笔来捕获书写在打印文档上的注释。这种笔包括一个照相机,它把该打印文档上的图像作为用户的书写注释。然而,作为这种类型的笔的某些例子,该笔使用对于照相机看不见的墨水。例如,该笔可能为照相机使用非碳素墨水和红外照明,它阻止了照相机“看见”用墨水书写的注释。用这种笔,它将从在注释书写期间由笔捕获到的图像来推断笔尖的移动以构成该文档上的注释。然而,为了把该图像和原始的电子文档相关联,该图像相对于文档的位置必须被确定。相应地,这种类型的笔经常用于一种纸,它包含一种图案,此图案能唯一地识别纸上的不同位置。通过分析这种图案,该接收图像的计算机就能确定该纸张的那个部分(以及该打印文档的那个部分)在该图像中被捕获。

虽然采用这种图案化的纸张或其他介质允许在纸张文档上书写的注释被变换成电子格式,并且正确地关联于该文档的电子版本,这种技术并不总是可靠的。例如,一个文档在纸张上包含文本可能会使图案的区域模糊。如果该笔捕获这种区域之一的图像,那么计算机可能没有能力使用该图案来精确地确定由图像捕获的该文档部分的位置。从而,计算机必须使用某种替代的技术来识别在图像中捕获的该文档部分的位置。例如,该计算机可能实行该捕获到的图像对电子文档的像素对像素的比较。

像素对像素的比较往往能识别在捕获图像中的文档的某个部分,但是这种技术具有很高的处理开销。例如,为了实现这样的技术在该捕获的图像和该文档图像之间的变换(例如,旋转、比例缩放等)必须首先被估算,从而该捕获的图像能够被扭曲(warp)并与该文档图像像素对像素地匹配。如果该变换是未知的,所有的旋转和缩放都必须被考虑。另外,在图像中的参考像素必须被选择。然后,在扭曲图像中的每个像素与电子文档中的对应像素进行比较,使得该图像的参照像素与该电子文档中的第一位置进行比较。然后,这种比较必须重复进行,从而该参照像素最终与电子文档中的每个位置比较。这种在图像像素和电子文档之间最高度的符合比较用来识别参照像素相对于电子文档的未知,并从而识别在图像中被捕获的文档的该部分的位置。相应地,它将是所希望提供的一种技术允许计算机确定在一个捕获的图像中的某部分的位置,而不需要实行该图像与整个文档的像素对像素的比较。

发明内容

有益地,本发明的各种实施例提供了一种有效的技术来判定相应于捕获图像的文档的一个部分。根据本发明的各种实施例,当用户使用笔建立一个文档中的笔划时,安装在笔上的照相机捕获一系列图像。某些图像的位置将被确定,这是通过例如在该文档上的图案的分析而得到,该图案是由该图像或者该图像与该文档的像素对像素的比较所捕获。然而,其他图像的位置将需要采用其他的技术确定。

为了有效地确定这些未定位的图像位置,整个的图像序列被分段成组,这些组相应于笔划的形状。按这种方式,对应于相关的线性笔划部分将被分组在一起。而且,因为在一个段中的所有的图像将典型地很接近,相关于在段中被定位的图像的信息能够被用来确定在段中未被定位的图像的位置。例如,对于未被定位的图像的文档搜索范围能够基于原先已定位的图像位置和一个最大的或实际的该笔的速度来建立。另外,已经定位的图像的旋转和缩放(仿射变换能够被作为透视变换而进一步精确化)能够被用来对未定位图像的旋转和缩放的估算,因为笔的姿态在一个短时间内不会期待有大的变化。这个估算的旋转和缩放能够被用来扭曲未定位的图像以便和该文档图像在方向和比例上匹配。然后像素对像素的比较能够在扭曲的未定位图像和该文档搜索范围之间进行。

附图说明

图1显示一个计算机的一般性描述,该计算机可用于与本发明实施例相关联。

图2A表示相应于本发明的各个实施例的一个笔的例子,而图2B表示由本发明的各个实施例获取的图像的分辨率。

图3A到3I显示根据本发明的实施例的各种编码系统的例子。

图4用图形表示一个编码的图案如何被用来确定从文档的一部分捕获的图像的旋转。

图5表示可能被用于确定从文档的一部分捕获的图像的旋转的公式。

图6表示在文档中构成的笔划。

图7表示作为笔划捕获的图像在图6所示的文档中被构成。

图8表示在图7中所示的每个捕获图像的参照点。

图9表示一个工具,它根据本发明的各个实施例被用于把捕获的图像匹配到文档的一个部分。

图10A-10C表示一个流程图,它根据本发明的各个实施例描述了把捕获的图像匹配到文档的一个部分的方法。

图11和12表示对于在图6中显示的笔划的关键参照点的确定。

图13和14表示如何一个捕获的图像可能被扭曲的例子。

具体实施方式

图1显示一个常规的通用数字计算环境的功能方块图,它能够被用来实现本发明的各个方面。在图1中,计算机100包括处理部件110,系统存储器120,和系统总线130,它耦合各种系统部件包括该系统存储器到处理部件110。系统总线130可以是多种类型总线的任何一个,包括存储器总线或存储控制器、外围总线、和一个采用多种总线结构之一的局部总线。系统存储器120包括只读存储器(ROM)140和随机存取存储器(RAM)150。

存储在ROM 140中的基本输入/输出系统160(BIOS),它包含基本例程用于帮助在计算机100的各单元之间传输信息(例如在启动期间)。该计算机100还包括硬盘驱动器170用于对硬盘(未示出)读出和写入、磁盘驱动器180用于对可移动的磁盘190读出和写入、和光盘驱动器191用于对可移动的光盘192(例如CDROM或其他光介质)读出和写入。硬盘驱动器170、磁盘驱动器180和光盘驱动器191分别通过硬盘驱动器接口192、磁盘驱动器接口193和光盘驱动器接口194被连接到系统总线130。驱动器和他们相应的计算机-可读介质提供了非易失性的计算机可读指令、数据结构、程序模块和其他用于个人计算机100的数据的储存器。本领域熟悉的技术人员可以理解,存储数据的媒质可以是由计算机存取数据的其他类型的计算机可读介质,例如盒式磁带、快闪存储卡、DVD盘、Bernoulli(伯努利)盒带、随机存取存储器(RAM)、只读存储器(ROM)等等,也能被用在本例操作环境中。

若干个程序模块可以被存储在硬盘驱动器170、磁盘190、光盘192、ROM 140或RAM150上,包括操作系统95、一个或多个应用程序196、其他程序模块197和程序数据198。用户能够通过输入设备如一个键盘101和定位设备102来输入命令或信息到计算机100。其他输入设备(未示出)可能包括话筒、游戏杆、游戏板、卫星天线盘、扫描仪等等。这些或其他的输入设备经常通过被耦合到系统总线的串行端口接口106连接到该处理部件110,也可以通过其他的接口如并行端口、游戏端口、或通用串行总线(USB)连接。再进一步,这些设备也可能通过恰当的接口(未示出)被直接地耦合到系统总线130。监视器107或其他类型的显示器也通过接口如视频接口108连接到系统总线130。除了监视器之外,个人计算机典型地包括其他的外围输出设备(未示出),例如扬声器和打印机。在较佳的实施例中笔数字化仪165和伴随的笔或笔尖166被提供用于数字化捕获随手写输入。虽然在笔数字化仪165和串行端口之间的直接连接被显示,实际上,本技术领域都知道,该数字化仪165也可以直接耦合到处理单元110,通过一个并行端口或其他的接口以及该系统总线130。进而,虽然该数字化仪165显示为与监视器107分开,更好的是数字化仪165的可使用输入区域与监视器107的显示区域可伴同扩展。再进一步,该数字化仪165可能被集成到监视器107之中,或者作为分离的设备放置或者否则作为该监视器107的附加。

计算机100能够在网络环境中操作,它使用对一个或多个远程计算机的逻辑连接,例如远程计算机109。该远程计算机109能够是一个服务器、一个网络PC、一个对等设备或其它普通的网络节点,并且典型地包括许多或全部以上描述的相应于计算机100的元素,虽然只有主存储器设备111被表示在图一之中。在图1中描述的逻辑连接包括局域网(LAN)112和广域网(WAN)113。这样的网络环境广泛存在于办公室、企业范围计算机网络、内连网和因特网之中。

在用于LAN网络环境中时,计算机100通过网络接口或适配器114连接到局域网112。当用于WAN网络环境中时,个人计算机100典型地包括调制解调器115或其它通过广域网113建立通信的手段,例如因特网。调制解调器115可以是内置的或外置的,它们通过串行端口接口106连接到系统总线130。在网络的环境中,描述为相关于个人计算机100的程序模块或其一部分,可以存储在远程的存储器储存设备之中。

可以理解该网络连接的显示是示例而其它技术用以建立计算机之间的通信也能被使用。已存在的任何一种著名的协议如TCP/IP、Ethernet、FTP、HTTP、Bluetooth、IEEE802.11x等等都可被指定,而且系统能够操作于客户-服务器配置下,以允许用户从基于Web的服务器中检索Web页面。任何种类常规的浏览器都能用来显示和管理Web页面上的数据。

图像获取设备

本发明的各种实施例可能被采用以确定由一系列图像所捕获的一个文档的各部分的位置的定位。如上所述,在图像中捕获的文档的部分的定位的确定可能被用于确定用户与纸张、显示屏幕、或其它显示文档的其它媒质之间的交互作用的定位。根据本发明的某些实施例,该图像可能包含由墨水笔在纸张上书写的墨迹。根据本发明的其它实施例,该笔可能是一个笔杆尖用于在显示该文档的数字化仪的表面上“写”电子墨水。

图2A和图2B显示笔201的例子,根据本发明的各种实施例该笔被采用。笔201包括笔尖202和照相机203。笔尖202可包括或不包括墨水容器。照相机203从表面207捕获图像204。笔201可能进一步包括附加的传感器和/或处理器如表示在虚线框206之中。这些传感器和/或处理器206可能也包括将信息传输到其它的笔201和/或一个个人计算机的能力(例如,通过Bluetooth或其它无线协议)。

图2B表示一个由照相机203观察到的图像。在一个表示的例子中,由照相机203捕获到的一个图像的分辨率是N×N像素(其中N=32)。相应地,图2B显示一个32像素长32像素宽的图像。N的大小是可以调整的,其中高的N值将提供高的图像分辨率。而且,当由照相机203捕获的图像被显示为正方形时(在此只是示例),如本领域所知照相机观察的区域也可能包括其它的形状。

由照相机203捕获的图像也可以被定义为一方块图像帧{Ii}的序列,其中Ii是由笔201在采样时间ti捕获的。采样速率可大可小,依赖于系统的配置和性能的要求。被捕获的图像的大小也可大可小,依赖于系统的配置和性能的要求。而且,可以理解由照相机203捕获的图像可能被直接地由处理系统使用,或者可能经受预-滤波。这种预-滤波可能在笔201中实行或者在笔201的外面实行(例如,在个人计算机中)。

图2A还表示图像平面209,其上从位置204处来的图案图像210被构成。从对象平面207上的图案来的接收的光被透镜208聚焦。根据本发明的各种实施例,透镜208可以是单透镜或者是多透镜系统,而在此表示的单透镜是为了简单化。图像捕获传感器211捕获该图像210。

图像传感器211可以是足够地大以捕获图像210。也可以图像传感器211足够地大以捕获笔尖202在位置212处的图像。作为参照,在位置212处的图像被称作为虚拟笔尖。应该指出该虚拟笔尖相对于图像传感器211的定位是固定的,因为笔尖、透镜208和该图像传感器211之间有不变的关系。

如上所指出,笔201将典型地被用于一种介质,例如打印在纸张上的文档、显示的图案用于识别在介质上的位置。有益地,该图案可以被用于将由照相机203捕获的图像210变换成为相应于该介质的外观的形式。例如,下列变换Fs→p,将由照相机203捕获的图像210变换成为一张纸上的实际图像:

               Lpaper=Fs→p(Lsense)

在写期间,该笔尖和纸在同一个平面上。相应地,从虚拟笔尖到实际的笔尖的变换也是:

               Lpentip=Fs→p(Lvirtual-pentip)

该变换Fs→p可以是作为仿射变换来估计。这将简化为:

>sup>>F>>S>→>P>>′>>=> > >>>>s>x>>sin>>θ>y>>>>cos>>θ>x>>sin>>θ>y>>->cos>>θ>y>>sin>>θ>x>>>>,> >>>>s>x>>cos>>θ>y>>>>cos>>θ>x>>sin>>θ>y>>->cos>>θ>y>>sin>>θ>x>>>>,> >0> > >>>>s>y>>sin>>θ>x>>>>cos>>θ>x>>sin>>θ>y>>->cos>>θ>y>>sin>>θ>x>>>>,> >>>>s>y>>cos>>θ>x>>>>cos>>θ>x>>sin>>θ>y>>->cos>>θ>y>>sin>>θ>x>>>>,> >0> > >0>,> >0>,> >1> > >>>

作为Fs→p的估计,其中Qx,Qy,Sx和Sy是在位置204捕获到的图案的二个方向的旋转和缩放。进一步,人们可以通过把捕获到的图像与相应的在纸张上的实际图像匹配而精细化F’s→p。“精细化”意思是通过被称为递归方法的某种优化算法得到更准确的变换Fs→p的估算。递归方法处理矩阵F’s→p作为初始的值。精细化的估算描述了在S和P之间的更加准确的变换。

虚拟笔尖的定位能够由再进一步的通过校正的精度来确定。为了校正虚拟笔尖的定位,用户放置笔尖202在纸张上的固定位置Lpentip。下一步,用户倾斜该笔以允许照相机203捕获一系列笔的姿势的图像。对每个捕获到的图像,变换Fs→p都被获取。由这种变换人们可以获得虚拟笔尖Lvirtual-pentip的位置。

                 Lvirtual-pentip=Fp→s(Lpentip)

当Lpentip被初始化为(0,0)并且

                 Fp→s=(Fs-p)-1

通过取平均从每个图像获得的Lvirtual-pentip,该虚拟笔尖的位置Lvirtual-pentip就可能被确定。以这个Lvirtual-pentip,人们可以得到更准确的Lpentip的估计。在若干次迭代之后,虚拟笔尖Lvirtual-pentip的准确位置就可以被确定。

用于识别在介质上位置的图案

如前所指出,本发明的各种实施例被用于确定相应于被捕获的图像的文档的某部分,其中显示该文档的介质也包括用于识别在介质上不同位置的图案。这样该图案可以被认为是按显示图案被编码的数据流。该显示图案的介质可能是打印的纸张(或其它的物理介质)、或者可替换为一种和其它一个图像或一组图像结合在一起的投影该编码数据流的显示器。例如,该编码的数据流可以被展示为在纸张上的物理图像或者覆盖该显示图像的图像,或者它可能是一个物理的编码图案(也就是不可修改的图案)组合或覆盖一个显示屏幕(因此任何由笔捕获的图像部分可在该显示屏幕上定位)。

图3A显示一个编码技术的实例,用于编码第一个比特和第二个比特成一图案,以用于识别介质上的位置。第一个比特301(例如带有值“1”)由黑墨水列表示。第二个比特302(例如带有值“0”)由黑墨水行表示。然而,可以理解,任何颜色的墨水被用于表示各个比特。在墨水颜色的选取中的唯一要求是它提供对于介质背景的明显的对比以便由图像获取系统加以区别。在本例中,图3A中的各比特由3×3点矩阵来表示。矩阵的大小可以被修改为任何要求的大小,根据该大小和图像捕获系统所采用的图像的分辩率来用于捕获介质的图像。

替换的具有0和1值比特的表示是显示在图3C-3E中。可以理解1或0对于图3A-3E的采样编码的表示可以被切换而无影响。图3C显示占用二行或二列按交替安排的比特表示。图3D显示在行或列中按短划线形式像素的交替安排。最后,图3E显示在行和列中按不规则间隔格式的像素表示(也就是二个黑点随后一个空白点)。

应该指出,交替的网络安排是可能的,包括旋转基础网格为非水平的和垂直的安排(例如,其中正确的图案方向时45度)。使用非水平的和垂直的安排可以提供可能的消除从用户来的视觉的分心的好处,因为用户可能倾向于注意其它之前先注意水平和垂直图。然而,为了简化的目的,网格的方向(水平的、垂直的和任何其它所要求的基础网格的旋转)被统称为预定义的网格方向。

返回来参照图3A,如果比特是被表示为3×3元素的矩阵,并且一个图像系统在一个3×3区域中检测到一个黑色行和二个白色行,那么该区域被检测为具有0值(或者被替换为具有1值)。如果一个3×3区域中检测到带有黑色列和二个白色列,那么该区域被检测为具有1值(或者被替换为具有0值)。相应地,如果在图2B中图像210的大小是32×32像素,并且每个编码单元的大小是3×3像素,那么被捕获到的编码单元的数量应该大致上是100个单元。如果该编码单元的大小5×5,那么被捕获的编码单元的数量大致上是36。

如图3A所示,不止一个像素或点可以被用来表示一个比特。使用单个像素(或点)来表示一比特是易受破坏的。灰尘、在纸张中的折痕、非平坦的表面等等都构成了读取表示数据单元的单一元素的困难。然而,即使采用多个元素表示各比特,其他的在介质上带有图案的文本,例如在文档中用打字机打的文本可能仍然模糊了一个或多个图案中的比特。

位流被用来建立图3B中的图形图案303。图形图案303包括12行和18列。更特别地,行和列由被变换成为图形图案303的位流构成,图形图案303使用比特表示301和301。这样,图3B的图案303可以看作具有如下的比特表示:

> > >0> >1> >0> >1> >0> >1> >1> >1> >0> > >1> >1> >0> >1> >1> >0> >0> >1> >0> > >0> >0> >1> >0> >1> >0> >0> >1> >1> > >1> >0> >1> >1> >0> >1> >1> >0> >0> > >>

各种位流可以被用于建立在图3B中显示的图像303。例如,一个随机的或伪随机的1和0的序列可以被使用。该比特序列可以被安排在行中、列中、对角线上,或者按任何其他刻板的次序。例如,以上矩阵可以由以下位流来构成,如果运作是从左到右然后向下:

0100 0111 0110 0100 1000 1110 0111 0100 1100

以上矩阵也可以由以下位流来构成,如果运作是从上到下然后向右:

0110 0000 0101 0101 1000 0011 1111 1010 1010

图3B还包括从图像303来的像素块的放大。该放大的304-311显示5×5的像素块。像素块304显示一个在白色行之间的黑色行。像素块305显示一个在白色列之间的黑色列。像素块306显示一个左下角。像素块307显示一个右上角。像素块308显示一个黑色的列并带有左边的半个黑色行。像素块309显示一个黑色的行并带有行之上的半个黑色列。像素块310显示半个黑色行。像素块311显示半个黑色列。分析像素块的组合,可以看到所有的像素组合都可以由像素块304-311中找到的图像段来构成。在图3B中显示的图案类型可以被称作为“迷宫”图案,当线段被用来构成迷宫时并不带有四边都被迷宫完全闭合的区域。

无更多要求,但应该期望到在图3F-3I中显示的像素组合的四个“角”的每一个将在图像303中显示的迷宫图案中被发现。然而如在图3B中所见,只有三种类型的角落实际存在于8个像素块304-311之中。在这个例子中,没有在图3F中显示的像素的角落组合。以这种方式通过选择图像段301和302来消除一种类型的角落,并基于丢失角落的类型能够确定被捕获图像的方向。

例如,如图4所示,当图像401被照相机203捕获时可以被分析而且确定它的方向,以至于能说明由图像401实际表示的位置。首先,图像401被浏览以确定图像401的哪个像素构成迷宫图案,以及被要求的角度θ以旋转图像使得图案的像素被水平和垂直对齐。应该注意到,如上所述,按本发明的不同的实施例交替的网格排列是可能的,包括基础网格旋转为非水平和非垂直排列(例如,图案的正确的方向是45度)。

下一步,图像401被分析,以确定哪个角度被丢失。用来旋转图像401成准备好解码的一个图像所需的旋转量o被示为o=(θ加一个旋转量{由丢失的角落定义})。旋转量由图5中的表达式表示。返回到参照图4,角度θ首先由像素的轮廓确定以达到像素的水平和垂直(或者其它的预定网格方向)安排并且该图像被旋转如402中所示。然后分析而导致确定丢失的角落并且图像602旋转到图像603以建立该图像用于解码。这里,该图像被反时针旋转90度从而图像603具有正确的方向并能被用于解码。

应该认识到旋转角度θ可以在图像601被旋转之前或之后被用以计及丢失的角落。还应该认识到考虑到被捕获图像中的噪声,所有四种类型的角落都可能存在。相应地,以本发明的不同的实施例,每种类型的角落的数量可以被计数,而具有最少数量的角落的类型可以用于确定是丢失的角落类型。

最后,在图像403中的码被读出并且与原始的位流相关以用于建立图像303,该相关可以以多种方式实现。例如,它可以用递归方法实现,其中恢复的位流与在原始位流中的所有其它的位流段比较。第二,统计分析可以在恢复的位流和原始位流之间实现,例如,使用在二个位流之间的海明距离。可以理解,多种方法可以被用来确定在原始位流中该恢复的位流位置。

如前所述,可理解到以上论述的迷宫图案可以被用来编码信息到介质的表面,例如一张纸或数字化仪的显示器。这个信息可以被笔201的照相机203捕获到一个或多个图像中,并且解码。可以被编码到介质的表面上的一个特别有用的信息类型是位置信息。如果该位流的部分并不在介质中重复,那么计算机101能够确定包含特定位流的文档的部分。

如果图案的完整部分被捕获在图像之中,那么如上所述计算机101将能够确定捕获在图像中该文档的部分。然而在某些环境中,图案的部分可能被遮蔽。例如,如果介质是一个文档包含例如打字机打印的文本,那么该文本部分地遮蔽一个或多个图案的比特。以上述实例(其中每个比特由像素3×3矩阵构成并且照相机203的分辨率是32×32像素),如果60或更多比特能够从该图像中被识别,计算机101将很有能力来确定捕获在图像中的文档部分的位置。然而如果只有36到60个比特能够在该图像中被识别,那么计算机101仍然能确定被捕获在图像中的文档部分的位置。再进一步,如果只有35个或更少的位从图像中被识别,那么计算机101不能确定被捕获在图像中该文档的部分。

获取带笔划的图像

按本发明的示例性实施例,在文档上构成笔划的墨水,如以上详细所述,对于照相机203并不可见。取而代之,照相机203只能以笔移动构成笔划来捕获该文档上的图像。实际笔的笔尖的位置,和由此的笔划的位置由图像中心位置的偏移并以校正参数来推断。相应地,图6表示笔划路径601的例子,它相应于使用笔201在文档上可能构成的笔划。笔划路径601跟随于笔划的形状,但是与笔划存在一个偏差。当用户移动笔201以构成笔划时,照相机203沿着笔划路径601周期性地捕获文档上的图像。相应地,如图7所示,照相机203将捕获一系列文档图像701A-701X,而每个图像的中心都落在笔划路径601上。每个图像701A-701X的中心也就落在实际笔划路径601上。图8则表示一系列的点801A-801X,他们分别是图像701A-701X的中心。然而,应该理解本发明的其它实施例可能使用不同的安排。例如,按本发明的替代的实施例,捕获的图像的中心可能相应于笔201的实际笔尖202。

如前所指出,该文档将包括一个图案,它包含有识别文档各个位置的比特信息。相应地,每个图像701A-701X可能包含这个图案的一部分。在某些例子中,捕获的图像将包括用于计算机(如计算机101)的足够的图案以确定该图像的位置(也就是确定在图像中捕获的该文档的部分的位置)。换言之,一个或多个图像的位置可能由例如实行把图像与文档或文档的被选的区域进行像素对像素的比较而获得。

另一方面,如上所指出,如果没有足够数量的比特在图像中被识别,那么计算机101就不能确定文档的哪个部分在图像中被捕获。替而代之,计算机101必须采用一个替换的技术来确定文档的哪个部分在图像中被捕获。如果文档以电子格式存储,而且如果被捕获的图像的旋转和缩放可以相关于该文档图像被估计,那么计算机101能够把被旋转和缩放的图像中的每个像素和在电子文档中的每个位置实行像素对像素的比较。这个技术可能要求大量的比较过程。例如,一页电子文档可能包含1410×2019个像素,因此需要2,889,090(1410×2019)次比较。另外,每个比较过程要比较大量的像素,例如,被捕获的图像可能包含32×32个像素,因此每次比较要比对1024(32×32)个像素。更进一步,如果被捕获的图像的旋转和缩放不能被估计,则所有可能的旋转和缩放都必须要被考虑。这样,这个技术将需要大量的处理器开销,并且花大量时间。替而代之,如以下将详细讨论的那样,计算机101可能更加有效地和快速地确定图像的位置,这是通过本发明的各种实施例由局部快速图像匹配来完成。

图9表示工具901,它根据本发明的各种实施例被采用来实现快速图像匹配。该工具901包括一个图像接收模块903、一个分段模块905、一个分段结束模块907和结果修剪模块909。如以下将更详细的讨论,图像接收模块903接收显示在物理介质上的文档的部分的图像,带有每个图像的中心落在与实际的墨水笔划有一定偏差的笔划路径601上。然后,分段模块905分析每个图像,根据笔划的形状把图像系列分段。一旦分段被确定,分段结束模块907通过确定在分段中每个图像的位置来“结束”每个分段。然后,结果修剪模块909修剪定位的结果,这个结果是有错地由分段结束模块907确定。对应于未定位图像的确定文档部分的一个方法在图10A-10C显示的流程图中描述,它也将在以下更详细地描述。

图像分段

当沿着笔划路径捕获的图像被分析时,计算机201首先试图利用在文档中提供的图案定位每个图像,例如,在以上详细讨论过的迷宫图案。如果没有图像能够成功地由解码图案来定位,那么在第一图像和文档(或者,如果可能的相应的文档区域能够被识别,就以这些可能的相应区域)进行像素对像素的比较。如果第一图像能够由这样的比较成功地定位,那么余下的帧用以下更详细讨论的局部定位过程来分析。如果第一图像不能成功地定位,那么下一帧采用像素对像素比较来分析。这个过程一直继续到图像被成功地定位,或者一直到确定没有图像能被定位。如果没有图像能被定位,那么笔划被丢失(即笔划的位置不能被确定)。已定位图像的中心此后被参照作为“起始”点,因此这些点将被用作为基线,用来确定沿着笔划路径601的未定位图像的位置。采用该图案或者由像素对像素比较而成功定位的每个帧的中心就是一个起始点。

回头参照图8,该图显示801A-801X各个点,其中每个分别是图像701A-701X的中心。在此图中,以圆圈表示的点是起始点。这样点801A、801C、801F、801I、801K、801O、801T和801X是起始点。以星号表示的点是还没有被定位的图像的中心(即已捕获了文档的未标识部分的图像),点801D、801E、801G、801H、801J、801L、801M、801N、801P、801R、801S、801U、801V、801W和801X就是未定位的点。

现在转到图10A,在步骤1001该图像(或帧)序列是被分段的。尤其是,图像序列被分成组,从而每组相应于该笔划路径601的相对线性部分。这种分段允许在一个分段中的未定位图像的位置从在该分段中已定位的图像位置被精确地进行内插,这将在以下更详细地讨论。为了确定对一笔划的分段,分段模块903识别对笔划关键性的起始点,关键起始点发生在或接近于笔划改变方向的位置处。另外,在笔划中的第一个和最后的起始点将被考虑作为关键起始点。

为笔划路径601而对图像701A-701X的序列分段的一种处理用图形在图11和图12中表示。第一个起始点801A和最后起始点801X二者都被考虑为关键起始点,这在以上已经指出。关键起始点801A和801X也就定义了在它们之间的该笔划路径601的单个分段。为了对笔划路径601确定另外的关键起始点,分段模块903在第一关键起始点801A和最后关键起始点801X之间生成线1101,如图11所示。离开线1101最远的起始点801O(具有大于域值(例如0.5像素)的距离,这将在以下描述)就被识别作为关键起始点。这样,分段模块903标明定位于离开线1101距离d1处的起始点801O作为一个关键起始点。定义该起始点801O分割图像701A-701X系列成为二个段。第一段SEG1相应于在关键起始点801A和关键起始点801O之间的笔划路径601的部分,而第二段SEG2相应于在关键起始点801O和关键起始点801X之间的笔划部分。

分段模块903继续分割每个段为更小的分段,直到每个相应于笔划部分的图像段实际上已为线性。例如,如果分段模块903在二个关键起始点之间生成一条线构成一段,并且在此没有起始点相对该线的距离大于阈值距离,那么分段模块不再进一步分割该段。按本发明的某些实施例,该阈值可以是,例如0.5个单位(例如像素)的距离被用于定义在文档中(使用例如迪卡尔坐标系)的个别的位置。当然,高的阈值可以被使用,从而允许相应于笔划的部分的图像的段比较少线性。低的阈值也可以被使用,从而要求相应于笔划的部分的图像的段更加线性。

一旦分段模块903识别了在笔划中的所有关键起始点,它改良了位置并对关键起始点作透视变换。更特别的是,分段模块903把每个相应于关键起始点801的图象701与该文档的电子版本进行比较,这是为了更加精确地确定位置和关键起始位置801的透视变换。这种比较过程将使用任何希望的已知技术来进行,例如,在“Panoramic Image Mosaics,”微软研究技术报告MSR-TR-97-23,作者Heung-YeungShum和Richard Szeliski发表于1997年9月1日和更新于2001年10月中所描述。改良关键起始点完成了分割图像序列成为段的过程。

除了更精确地确定关键起始点801(和它们的相关图像701)的位置之外,改良该关键起始点801允许分段模块903增加用于使图像与它们相应的文档部分匹配的变换参数的精度。如以上所详细讨论,笔201的倾斜和旋转使得由照相机取得的图像被相关于该文档的实际样子来旋转和缩放。为了精确地把图像与文档的部分比较,该图像必须被扭曲以补偿由于笔201的倾斜和旋转而引起的旋转及缩放中变化。例如,图13表示一个原始的图像1301。图14则表示它被根据扭曲变换参数而被扭曲之后的该同一图像1401。

通过更精确地将关键起始点与文档的电子版本比较,分段模块903能够修改变换参数,这是为了更精确地扭曲一个图像以与文档相匹配。按本发明的各种实施例,分段模块903可能修改变换参数的一个单一集合,以被用于在序列中的所有捕获的图像。然而,按本发明的其它实施例,分段模块903为每个关键起始点建立一个特有的变换参数的集合。如以下将详细讨论的那样,对每一个关键起始点具有一个特有的变换参数的集合允许邻接的未被定位点被更精确地内插。当笔201倾斜和旋转时,可能宽阔地改变跨过整个笔划地距离,而笔201倾斜和旋转典型地将并不改变多地跨过笔划一个单一段的短距离。相应地,对每个关键起始点的变换参数能够被用于在相应于该关键起始点的图像被刚捕获之前或刚捕获之后更精确地扭曲图像。

在分段模块903分段该图像701A-701X之后,分段结束模块905处理图像的每个段以确定在每个段中未被定位的图像的位置。这样,在步骤1003,分段结束模块905确定该段是否被结束。如果该段包括至少一个不是关键起始点的起始点,分段结束模块905将确定一个分段被结束。这就是,如果在段中的至少一个不是关键起始点的点的位置是预先从在图象中捕获的图案或者由其它的技术来确定,那么该段被结束。在这种环境下,该段已经足够地线性,使在段中所有图像的位置能够由线性内插来确定。另外,分段结束模块905将在每个段中的未被定位图像已被匹配到相应文档的一部分之后确定一个分段被结束。

如果一个段没有结束,那么在步骤1007中分段结束模块905接收在该段中第一个未处理的(即,未定位的)图像。(在每个段中的第一个图像将是具有已知位置的关键起始点。)在步骤1008中,分段结束模块扭曲该图像用于与该文档比较,如以下将详细讨论。然后,在步骤1009,分段结束模块905确定一个未处理图像的搜索范围。对于段中的原始的未处理图像的搜索范围是基于笔201的最大估计速度来确定的。如在本领域的常规熟练技术人员所能理解的那样,用户以笔201书写将只能以显示该文档的物理介质相一致的最大速度来移动。对特定类型笔201和物理介质的最大速度可以由,例如,经验来确定。

对第一个未处理图像的搜索范围的中心能够是在段中的第一个关键起始点,具有搜索范围的半径被限制为笔201的最大速度乘以时间间隔,它是在相应于段中的第一个关键起始点的捕获时间和段中的第一个未处理图像被捕获的时间之间的时间间隔。按本发明的各种实施例,该未处理图像将被扭曲,如前所述,用于使用在段中的第一个关键起始点的变换参数进行比较。然而,仍然按本发明的其它的实施例,未处理图像可能被扭曲以利用先前在段中已定位的图像的变换参数来进行比较,而不管先前的图像是否是一个关键起始点。在该未处理图像被扭曲之后,然后,分段结束模块905把扭曲的第一个未处理图像与文档的搜索范围采取像素对像素的比较,以确定在第一个未处理图像中的被捕获的该文档部分。该像素对像素的比较可能,例如,确定一个在第一个未处理图像和在搜索区域中该文档的每个部分之间的相关的值。

分段结束模块905将确定该未处理图像对应于产生最高相关值的该文档的部分。通过以这种方式精确地定位该未处理图像,段结束模块905还将确定对应于未处理图像的点的位置。在对于该第一个未处理图像的定位点和第一个关键起始点之间的距离将指示一个速度,笔201以此速度实际地移动。基于该确定的未处理图像的位置,分段结束模块905能够通过改良该捕获的图像(即通过把捕获的图像与文档图像相匹配以获得一个透视变换)来更新该变换参数,如前所述用于扭曲下一个未处理图像。一旦对于笔201的实际移动速度被确定,并且该变换参数被更新,该未处理图像将被认为是已处理的。

在步骤1015,分段结束模块905确定是否有另外的在段中的未处理图像。如果有则分段结束模块905通过接收当前的未处理模块重复步骤1007。然后,在步骤1009段结束模块905确定对当前未处理图像的搜索范围。按第二个和每个后继的在段中的未处理图像,该搜索区域将基于实际的笔201的速度来确定,该速度从定位前一个未处理图像来确定。例如,搜索范围的中心能够在相应于先前的未处理图像的点上定中心。分段结束模块905然后能够基于从先前未处理图像的点的位置的计算得到的实际的笔的速度来确定搜索区域的半径。更特别地,搜索区域的半径可以由从先前的未处理图像的位置计算得到的笔的速度乘以捕获图像之间的时间间隔来确定。

如本领域中常规技术人员所理解的,用户以笔201书写只能以最大加速度值来改变笔201的速度。这个最大加速度值,例如,能够由实验或者可以基于在先前被定位的图像之间的实际加速度来计算。相应地,按本发明的某些实施例,对第二个和后继未处理图像的搜索区域的半径可能由该最大加速度值来修改。例如,如果可能在笔划中存在三个图像f1,f2,f3,它们在时间t1,t2,t3被捕获并且中心被定在p1,p2,p3。如果点p1和p2的位置能够被确定,那么在捕获这些图像之间的笔的速度是V=(p2-p1)/(t2-t1)。如果加速度具有-A和A之间的值,那么对点p3的搜索范围的中心将围绕位置P=p2+V*(t3-t2)的周围,带有搜索范围的区域是[P-A*(t3-t2)*(t3-t2)/2,P+A*(t3-t2)*(t3-t2)/2]。

一旦分段结束模块905确定了对于当前未处理图像的搜索范围,分段结束模块905按从先前的未处理图像的透视变换来扭曲该未处理图像并且在步骤1011中把扭曲的未处理图像与文档的搜索区域实行像素对像素的比较。再一次,产生最高相关值的文档的部分被选择作为当前未处理图像的位置。然后,分段结束模块905基于当前未处理图像的点和先前的未处理图像的点之间的距离对笔201计算一个新的速度。它还基于当前未处理图像的识别位置更新变换参数,从而处理该图像。然后,分段结束模块905重复步骤1015,以确定在当前的段中是否有任何遗留的未定位图像。

分段结束模块905重复步骤1007和1015直到在当前段中不再进一步有未定位图像。下一步,在步骤1017段结束模块905确定在图像序列中是否有任何更多的段。如果有更多段则段结束模块905重复步骤1003到1015直到在图像序列中的所有的段都被结束。

在所有的段都被结束之后,在笔划中的每个图像都在文档中被定位。若干个因素,例如不正确的初始变换参数和动作模糊,有可能导致对于一个或多个定位图像的错误的定位结果。相应地,本发明的各种实施例采用结果修剪模块609以从在步骤1019中的结果中修剪错误的位置。

例如,结果修剪模块609可以对图像序列维持每个起始点的位置。下一步,结果修剪模块609能够逐步通过整个笔划路径的每一点,按次序从第一个点到最后一个点来分析每个点。更特别地,从先前的点到当前点和从当前点到下一个点的速度被计算。加速度也从二个速度值来计算。如果速度值或加速度二者之一超过了最大值,那么当前点的定位被认为是错的从结果中被修剪掉。

按照本发明的各种实施例,结果修剪模块609可以重复每个点的分析,但替换为以相反的次序从最后点到第一点分析每一个点。这样,从下一点到当前点和从当前点到先前点的速度被计算。加速度也由这二个速度值来计算。如果速度值或者加速度值二者之一超过最大值,那么当前点的定位被认为是错的从结果中被修建掉。在所有的错误点被修剪之后,被修剪的点的位置可以用内插来确定。

结论

本发明已对特定例子的考虑进行了描述,包括表示了实现本发明的较佳的模式,熟悉本领域的技术人员可以理解以上描述的系统和技术存在的多种变化和置换排列均属于本发明的思想和范围之内,并在所附权利要求书中阐明。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号