(5)具体实施方式
本发明的方面涉及确定被捕捉图像相对于较大图像的位置。本发明的各方面涉及使要被搜寻的图像集数目最小。搜寻规模的减少改进了可能确定笔的路径的速度。在此描述的位置确定方法和系统可能与多功能笔一起使用。
以下文本由子标题分开是为了读者之便。子标题包括:术语、通用计算机、图像捕捉笔、有源码、无源码、路径确定、代码编组以及路径确定。
术语
笔-任何可能包括或不包括存储墨水能力的书写工具。在一些例子中,根据本发明的实施例,没有存储墨水能力的笔尖可能用作笔。
摄像机-能从纸、计算机显示器或其它媒质中捕捉图像的图像捕捉系统。
通用计算机
图1是可用于实现本发明各方面的常规通用数字计算机环境的示例功能性框图。在图1中,计算机100包括处理单元110、系统存储器120以及把包括系统存储器在内的各种系统元件耦合至处理单元110的系统总线130。系统总线130可能是若干总线结构类型中的任一种,包括存储器总线或存储器控制器、外围总线、以及使用任一多种总线结构的本地总线。系统存储器120包括只读存储器(ROM)140以及随机存取存储器(RAM)150。
基本输入/输出系统160(BIOS)存储在ROM 140内,它包括如启动时帮助在计算机100内的元件间传输信息的基本例程。计算机100还包括用于向硬盘(未示出)读写的硬盘驱动器170、用于向可移动磁盘190读写的磁盘驱动器180以及用于向诸如CD ROM或其它光学媒质这样的可移动光盘199读写的光盘驱动器191。硬盘驱动器170、磁盘驱动器180和光盘驱动器191分别通过硬盘驱动接口192、磁盘驱动接口193以及光盘驱动接口194连到系统总线130。驱动及其相关的计算机可读媒质为个人计算机100提供了对计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。本领域内的技术人员可以理解,其它能存储可由计算机存取的数据的计算机可读媒质,譬如磁带、闪存卡、数字视频盘、贝努力(Bernouilli)盒带、随机存取存储器(RAM)、只读存储器(ROM)及类似物,也可以用于示例操作环境中。
许多程序模块可以存储在硬盘驱动170、磁盘190、光盘199、ROM 140或RAM 150上,包括操作系统195、一个或多个应用程序196、其它程序模块197以及程序数据198。用户可以通过诸如键盘101和指示设备102这样的输入设备将命令和信息输入计算机100。其它输入设备(未示出)可能包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备一般通过与系统总线耦合的串行端口接口106连到处理单元110,但也可能由其它接口连接,诸如并行端口、游戏端口或通用串行总线(USB)。而且,这些设备可能通过适当的接口(未示出)直接耦合到系统总线130。监视器107或其它类型的显示设备也通过诸如视频适配器108这样的接口连到系统总线130。除监视器外,个人计算机一般包括其它外围输出设备(未示出),譬如扬声器和打印机。在优选实施例中,为了数字地捕捉徒手输入,提供了笔数字变换器165和伴随的笔或笔尖166。虽然示出了笔数字变换器165和串行端口间的直接连接,然而实际上,笔数字变换器165可能通过并行端口或本领域已知的其它接口和系统总线130而直接耦合到处理单元110。而且,虽然所示数字变换器165离监视器107较远,但数字变换器165的可用输入区域最好与监视器107的显示区域共同延伸。另外,数字变换器165可能整合在监视器107内,或可能作为独立的覆盖设备或附着于监视器107。
计算机100可能工作在使用到一个或多个诸如远程计算机109这样的远程计算机的逻辑连接的网络化环境内。远程计算机109可以是服务器、路由器、网络PC、对等设备或其它公共网络节点,并且一般包括与计算机100相关的许多或所有上述元件,然而图1中仅说明了存储器存储设备111。图1所述的逻辑连接包括局域网(LAN)112以及广域网(WAN)113。这种网络环境常见于办公室、企业范围的计算机网络、内联网以及因特网。
当用于LAN网络环境时,计算机100通过网络接口或适配器114连到局域网112。当用于WAN网络环境时,个人计算机100一般包括调制解调器115或其它装置,用于在诸如因特网的广域网113上建立通信。调制解调器115可能是内置或外置的,它通过串行端口接口106连到系统总线130。在网络化环境内,所述与个人计算机100相关的程序模块或其中的一部分可能存储在远程存储设备内。
可以理解,所示网络连接是说明性的,并且可以使用其它用于在计算机间建立通信连接的技术。假设存在诸如TCP/IP、以太网、FTP、HTTP、蓝牙、IEEE802.11x等各种已知协议,且系统可以工作在客户机-服务器配置中以允许用户从基于web的服务器中检索网页。可以用各种常规网页浏览器的任一种来显示和操纵网页上的数据。
图像捕捉笔
本发明各方面包括将已编码数据流放在被显示的形式中。被显示的形式可能是打印的纸(或其它物理媒质)或者可能是把已编码数据流和其它图像或图像集一起投影的显示器。例如,已编码数据可能被表示为纸上物理编码的图像或覆盖已显示图像的已编码图像,或者可能是在显示屏上物理编码的图像(因此任何由笔捕捉的图像都可以定位在显示屏上)。
被捕捉图像的这种位置确定可以用来确定用户与纸、媒质或显示屏交互的位置。在本发明某些方面中,笔可能是在纸上书写的墨水笔。在其它方面,笔可能是用户在计算机显示器表面上书写的笔尖。可能提供给系统任何已知的关于文件内的已编码图像或支持在计算机屏幕上显示的文档的交互。通过重复捕捉摄像机的位置,系统可以跟踪由用户控制的笔尖的运动。
图2A和2B示出带有摄像机203的笔201的说明性示例。笔201包括可能或可能不包括墨水存储器的笔尖202。摄像机203捕捉从表面207来的图像204。笔201可能还包括虚线盒206内所示的附加传感器和/或处理器。这些传感器和/或处理器206可能还具有将信息发送到其它笔201和/或个人计算机的能力(例如,通过蓝牙或其它无线协议)。
图2B代表由摄像机203观察到的图像。在一说明性示例中,摄像机203的视野为32×32像素(其中N=32)。因而,图2B示出长32像素宽32像素的视野。N的大小可以根据期望的图像分辨率而调整。而且,所示摄像机203的视野为正方形是为了说明之故,视野的形状可以包括本领域已知的其它形状。
从摄像机203到笔201的输入可以被定义为一系列图像帧{Ii},i=1、2...A,其中Ii是在采样时间ti时由笔201捕捉的。采样率的选择是根据笔尖的最大运动频率,该频率可能等同于当手写时手的移动频率。该频率已知在0到20Hz之间。根据奈奎斯特-香农(Nyquist-Shannon)采样定理,最小采样率为40Hz,一般为100Hz。在一例中,采样率为110Hz。捕捉的图像帧可大可小,这取决于文档和所需精确度的大小。而且,摄像机图像的大小可能根据要被搜寻的文档大小而被确定。
摄像机203捕捉到的图像可能直接被处理系统所使用或可能经受预滤波。预滤波可能发生在笔201内或外(例如,在个人计算机内)。
图2B的图像大小为32×32像素。如果每个编码单元大小都是3×3像素,则被捕捉的已编码单元数目大致是100单元。如果编码单元大小为5×5,则被捕捉的已编码单元的数目大致为36。
图2A还示出图像平面209,其上形成来自位置204的图案的图像210。从对象平面上图案接收到的光由透镜208聚焦。透镜208可能是单透镜或多部分透镜系统,但在此为简洁之故表示为单透镜。图像捕捉传感器211捕捉图像210。
图像传感器211可能足够大以捕捉图像210。或者,图像传感器211可能足够大以捕捉位置212处笔尖202的图像。为了引用,位置212处的图像被称为虚拟笔尖。要注意的是由于笔尖、透镜208和图像传感器211间的恒定关系,因此虚拟笔尖相对于图像传感器211的位置是固定的。由于从虚拟笔尖位置212(由Lvirtual-pentip代表)到实际笔尖位置202间的变换,因此可以确定实际笔尖相对于被捕捉图像210的位置。
以下的变换FS→P将摄像机捕捉的图像变换成纸上的实际图像:
Lpaper=FS→P(LSensor)
在书写时,笔尖和纸在同一平面上。因而,从虚拟笔尖到实际笔尖的变换也是FS→P:
Lpentip=FS→P(Lvirtual-pentip)
变换FS→P可能被称为透射变换。这可以被简化为:
作为FS→P的估计值,其中θ、sx、sy是在位置204处捕捉的图案两个方向的旋度和尺度。而且,可以通过将被捕捉的图像与纸上相应的背景相匹配,从而将FS→P改进为F’S→P。“改进”是指用称为递归方法的一种优化算法来获得更准确的透射矩阵FS→P(8个参数)。递归方法将矩阵F’S→P作为初始值处理。FS→P要比F’S→P更准确地描述了S和P之间的变换。
接着,可以通过校准来确定虚拟笔尖的位置。
将笔尖202放在纸上的已知位置Lpentip。然后倾斜笔尖,使得摄像机203能捕捉带有不同笔姿的一系列图像。对于每个被捕捉的图像而言,可能接收变换FS→P。从该变换可以获得笔尖虚拟图像Lvirtual-pentip的位置:
Lvirtual-pentip=FP→S(Lpentip)
以及,
FP→S=1/FS→P
通过将从每个图像接收到的Lvirtual-pentip进行平均,可能确定虚拟笔尖Lvirtual-pentip的准确位置。
现在知道了虚拟笔尖Lvirtual-pentip的位置。还可以从被捕捉图像中获得变换FS→P。最后,可以用该信息来确定实际笔尖Lpentip的位置:
Lpentip=FS→P(Lvirtual-pentip)
有源码
可能在文档内插入信息(或作为图像被加入或显示在计算机显示器上)以帮助确定笔的位置。信息可能是二维数组,其中每个给定大小的子数组是唯一的。
二维数组可能通过将一维数列合并而成。该二维数组的任何部分可能用于确定其在整个二维矩阵中的位置。要考虑的是摄像机捕捉的图像部分的大小是有限的。因而,需要能从一个被捕捉图像或一些被捕捉图像中确定位置。由于被捕捉图像内存在的错误可能损害被捕捉图像内一些点的可用性,因此引起附加的复杂化。为了使被捕捉图像部分与二维数组内两个或多个位置相关联的可能性最小,可能使用非重复的数列来建立数组。所建立数列的一种属性是数列在一段长度n(或窗口)上不重复。下面描述了一维数列的建立以及将数列合并成数组。
数列构建
一序列数字可能被用作编码系统的开始点。例如,数列(又称作m-数列)可能被表示为域Fq内的q元素集。在此,q=pn,其中n≥1且p为质数。该数列或m-数列可能由多种不同的技术产生,包括但不限于:多项式除法。使用多项式除法,数列可能如下定义:
其中Pn(x)是域Fq[x](有q个元素)内n阶的本原多项式。Rl(x)为域Fq[x]内的l阶(其中l<n)非零多项式。数列可以用使用两步的迭代过程来建立:第一,将两个多项式相除(产生域Fq内的元素)以及第二,将余数乘以x。当输出开始重复时停止计算。该过程可以用线性反馈移位寄存器来实现,如在以下文章中提出的:Douglas W.Clark以及Lih-Jyh Weng所著的“Maximal and Near-MaximalShift Register Sequences:Efficient Event Counters and Easy DiscreteLogarithms”,IEEE Transactions on Computers 43.5(关于计算机的IEEE学报,1994年5月,第560-568页)。在该环境下,在数列的循环移位和多项式Rl(x)间建立关系:改变的Rl(x)只对数列实现循环移位,且每个循环移位对应于一个多项式Rl(x)。所产生数列的一个属性便是在宽度(或长度)n上,任何部分在数列内仅出现一次。
上述过程只是可能用于建立非重复数列的多种过程的一种。
数组构建
可能用于创建图像(其一部分可能由摄像机捕捉)的数组(或m-数组)是一维数列或m-数列的扩展。假设A是周期为(m1,m2)的数组,即A(k+m1,l)=A(k,l+m2)=A(k,l)。当n1×n2的窗口移过一个周期A时,Fq上的所有非零n1×n2出现且仅出现一次。该性质可称为“窗口特性”,因为每个窗口都是唯一的。然后,A可能用周期(m1,m2)的数组(其中m1和m2是数组中水平和垂直的比特数)以及阶数(n1,n2)来表示。
可能通过合并数列构建二进制数组(或m-数组)。一种方法是获得数列然后将其合并为m1×m2大小,其中数组的长度为L=m1×m2=2n-1。或者,可能以想要覆盖的预定空间大小开始(例如,一张纸,30张纸或计算机监视器的大小),确定区域(m1×m2),然后用该大小使L≥m1m2,其中L=2n-1。
可以使用多种不同的合并技术。例如图3A到3C示出三种不同的数列。这些中的每一个都可能被合并成图3D所示的数组。示出了三种不同的合并方法,在图3D中是覆盖,图3E和图3F中光栅通路。图3D所示的合并方法可能表达为gcd(m1,m2)=1其中L=2n-1。
为建立如图3D所示的合并方法,先建立长度为L阶数为n的数列{ai}。接着,通过按公式2计算数组的每个比特而建立大小为m1×m2的数组{bkl}
(2)bkl=ai
其中,k=i mod(m1),l=i mod(m2),I=0、...L-1。
该合并方法另外也可以表示为把数列放在数组的对角线上,然后在达到边缘时从另一边继续。
有源码的候选搜寻
可能获得摄像机203捕捉的图像内的编码,并且与用于建立图像的原始比特流相关。相关可能以几种方式实现。例如,可能以递归方法实现,其中恢复后的比特流与原始比特流内所有其它比特流分段相比较。其次,可能在恢复后的比特流和原始比特流间进行统计分析,例如,通过使用两个比特流间的汉明距离。可以理解,可能用多种不同的方法来确定原始比特流内恢复后的比特流的位置。
一旦有了恢复后的比特流,就需要在原始数组(如图3D所示的数组)内定位被捕捉的图像。确定整个数组内比特分段位置的过程由于许多项而复杂化。首先,要被捕捉的实际比特可能为摄像机的理想捕捉而模糊掉(例如,摄像机可能捕捉模糊了原始码的书写的图像)。第二,灰尘、折痕、反射等可能会造成捕捉的图像的错误。这些误差使得定位过程变得更困难。这样,图像捕捉系统可能需要使用从图像获取的非数列比特。
首先,仅看数列,假设数列(或m-数列)I对应于功率数列I(x)=1/Pn(x)。而且,R(x)=r0+r1x+r2x2+...+rn-1xn-1是阶次小于n的任何非零多项式。数列R对应于R(x)/Pn(x)。如上所述,R是I的移位型式。定义距离D为I和R间的距离。如果R是I的第s个移位,这可以表示为D(R)=s。该距离D可以用许多不同的技术来计算。一种技术是通过确定两者间的汉明距离来实现。另一种方法是通过使用Pohlig-Hellman-Silver算法,这在Douglas W.Clark和Lih-Jyh Weng所著的“Maximal and Near-Maximal Shift Register Sequences:EfficientEvent Counters and Easy Discrete Logarithms”,(关于计算机的IEEE学报43.5,1994年5月,第560-568页)中说明。还可能使用本领域已知的其它距离确定技术。使用Pohlig-Hellman-Silver算法时,R(x)≡xsmod(Pn(x))。
然而,由于被提取的编码可能不连续且可能还包含错误,所以试图用已合并的数列计算距离更为复杂。从以上的数列分析开始,可能从图像确定位置。可能以以下关系式开始:
(3)R=rtA
其中,r=(r0r1r2...rn-1)t,而A=(IT(I)...Tn-1(I))t包括I的循环移位。因而,I的任何循环移位都是rt和A的乘积。如果笔读取k比特(b=(b0b1b2...bk-1)t其中I的(k≥n)),则R(x)就可能用于将b0循环移位到数列(或m-数列)的开头。该移位然后调整A的列以建立A的n×k的子矩阵M。因此,
(4)rtM=bt
如果M的所有行都是无关的,则r可能被确定且D(R)通过调制公式(1)的一维位置而产生I内b0的绝对位置。这意味着可能确定b0比特的二维位置。该位置信息能够确定笔尖的位置。
下一步,可以确定并检查A的所有转变。
或者,由于矩阵A很大,不需要保留矩阵A所有的转变。实际上,在一些实现中,只有列与列之间的相对位置是相关的。因此,可以被保存的列(在将b0移位到数列(或m-数列)开始处之后)是那些在笔(因而摄像机)旋转时所对应的二维位置在摄像机的接收域内的列。该些列的总数要远小于L(其中L=2n-1)。如果b是无误差的,则r的方程可表示为:
其中,
是M的任何非简并n×n子矩阵而
是b的对应子向量。
无源码
另一种类型的码在此称无源码。无源编码涉及用来自较大图像的图像部分来确定笔的位置。许多不同的无源编码技术是可能的,包括存储图像的所有(或几乎所有)部分,并且把用摄像机捕捉到的图像与这些已存储部分相关。其它技术包括减少已存储部分的大型,并且用大小减少的型式来确定笔的位置。以下描述涉及对中心点周围的图像进行编码,在图4已示。该编码过程还可能被称为径向编码。
无源码的图像编码
如图4所示,在步骤402中接收图像401并将其解析为子图像。在步骤403中,子图像通过将向量T按方向S绕子图像的中心旋转而被采样。步骤403的子图像内遭遇的信息由打开的图像404所表示。换而言之,捕捉403的子图像块在极坐标内被采样。
403内子图像的中心像素(或区域)被视作原点,采样角为S,采样向量的大小为T。对一个32乘32的像素区域而言,S=32且T=16。
对每个采样点(t,s)而言,t=0,1...T-1,s=0,1...S-1,它在笛卡儿坐标系中是(xt,s,yt,s),其中xt,s和yt,s分别由公式6和7表示。
点(t,s)的灰度值由公式8表示,
(8)Gt,s=F(xt,s,yt,s),
其中F是由公式9表示的二维高斯滤波器。
其中,P(x,y)指在位置(x,y)处的像素的灰度值;中括号“[]”是指最接近的实值整数;σ和q是滤波器参数。
可能被存储的代码本用于比较各图像。这些比较可能用来相对预先存储的图像而定位一个新的图像。
由于用极坐标来分析403中所示的子图像块,因此所产生的分析在处理摄像机帧和子图像间旋转差异时更具稳健性。由于被捕捉摄像机图像的旋转转化成404内图像的移位,因此旋转要与码本内信息相比较的摄像机图像并不复杂。
对于表405内所示向量T上的每个角度S而言,404内的图像可能被转化成其二进制表示。角度为值2π·s/S,其中s从0到S-1。如果图像或子图像(401、402、403和404)先前在最初的扫描、接收或捕捉时未被转化成二进制图像,则它们可能在许多位置处被转化成二进制(黑和白)图像。
灰度值矩阵{Gt,s}(其中t=0,1...T-1,s=0,1...S-1)可能通过把一阈值应用于灰度矩阵内的值而被转化成二进制矩阵CI rad(如公式10所示)。
然后,这个编码可以被汇编入码本,其信息与较大图像内子图像的位置有关。
为了用码本内不同编码来确定摄像机图像的位置,可能确定摄像机图像和其它编码表示间的距离。到候选物的最小距离或最小距离集可能代表各种位置的最佳选择。该距离可能用摄像机图像和当前子图像间的汉明距离来计算。
如上所述,来自摄像机捕捉的图像的距离可能与来自码本的一个或多个码段相比较。至少两种类型的距离可能用于径向编码:常用汉明距离和旋转不变的距离。也可能使用其它的距离确定。
常用汉明距离可以如公式11所示来确定码本编码和与摄像机图像相关的编码间的距离。
(11)Distham(C1,C2)=Ham(C1,C2)
可以使用的另一类距离是旋转不变的距离。使用旋转不变距离的好处在于摄像机的旋转由公式12示出。
其中,Rot(CI rad,d)在公式13中定义。
无源码的码本生成
码本存储的编码是从图像取得的子图像有关,并且与它们在图像内的位置相关。码本可能在用摄像机203捕捉图像前建立。或者,码本可能在使用时被建立或至少增加。例如,摄像机可能在操作时获得图像。如果用户仅在现有信息上书写,则码本可能如此所述地用来确定由摄像机捕捉的图像的位置。然而,如果用户改写新的注释,则码本不会正确。因而,当用笔201加入新的注释时,这些注释可能会被包括在码本内,使得将来的注释会更准确地与它们在屏幕上的表示相关。
码本的生成可能如下。子图像(例如403)通过编码方法被编码。然后,位置编码对被组成码本。至少两类组织方法可能用来建立码本。当然,其它方法也可能用来建立码本。仅作为说明性示例给出这两种方法。
第一种方法是将位置编码对放在线性表内,表内每个节点都包含一个编码和一个位置数列,数列中所有位置都被映射到该编码。码本然后可能用公式14表示:
(14)Ω={ψi,i=1,2,....,NΩ}
其中Ψ被定义为Ψ={CΨ,PΨ},PΨ是其编码为C的文档位图内所有位置的集合,它在公式15示出:
(15)Pψ={pi位置处的编码是Cψ,i=1,2,...}
下一步,集合Ω可能按每个元素Ψ的编码的字母顺序排列,然后获得线性表类型的码本。
第二种方法是将码与它们对应的位置放入二叉树。二叉树可能基于由图8A和8B和9所示的编码间的汉明距离。
对于所有编码而言,码C0与码CA相比较。CA给定距离内的所有编码被组成以CA为中心的码集。如图8A所示,距离为半径r1。这里,码CX在半径内,但C0不在此内。然而,为了考虑一些小误差或者为了保证所有编码都落在码组CA内(或图8B所示的组CB内),可能对r1加上一个小距离d。
8B分别示出以CA和CB为中心的两个码集。在第一例中,以组CA为中心的某些编码可能与以组CB为中心的某些集合在一起。或者,只有一个组可能为主导的(因为一个组在确定哪些码在其组中时不包括附加距离d)。
参考图9,首先,找到整个码集Ω的质心CC0。下一步,找到距质心CC0有最大汉明距离的码C0。下一步,找到距码C0有最大距离的码C1。
码集C然后被分成两个子集:Ω0和Ω1。Ω0的内容可能用公式16表示,Ω1的内容可能用公式17表示。
(16)Ω0={ψi|Dist(Cψi,C0)<Dist(Cψi,C1)}
(17)Ω1={ψi|ψiΩ0}
然后,对于子集Ω0和Ω1而言,在子集元素数目为1之前,重复下列步骤:找到质心、找到距质心有最大距离的码、找到距离开质心最远的码有最大距离的码、然后分裂子集。
无源码的候选搜寻
从摄像机来的被捕捉的帧的位置候选可能通过搜寻码本而被确定。对每个摄像机捕捉帧Ii,笔尖202的候选位置可能如下被确定:
·来自摄像机的帧Ii用与产生码本相同的编码方法被编码
·已编码帧E1i与码本内的信息相比较。确定已编码帧E1i与码本内已编码信息间的距离。码本内距已编码帧E1i的距离最短的已编码信息用作位置候选或位置候选之一。在这些候选物中,选择最佳匹配。
最佳候选物的选择可能包括许多不同的分析。首先,可能选择最接近地匹配(到码E1i的最小距离)的候选物。或者,最近的候选物集合可能与最近的候选物数列比较并在时域上比较帧。所产生的比较会产生一系列彼此接近的位置定位。由于该结果指明了笔尖在时域上几乎不移动,因此它是所希望的。其它结果可能指明笔尖在很短的时间内跳过页面(这是不太可能的)。
为搜寻码本可能使用以下方法。对于每个带有码C1被捕捉图像I而言,最匹配的码集S(CI)用公式18定义。
(18)S(CI)={ψi|Dist(CI,Cψi)<dthresh,ψi∈Ω,i=1,...,Ns},如果使用径向码,则距离函数应为Distr-i(.,.)。
如果Ns>Nthresh,则只保留S(C1)内带有较小距离的Nthresh码。根据摄像机性能选择dthresh以及Nthresh。
图像I的位置候选集合可能用公式(19)表示。
路径确定
被捕捉图像与较大图像匹配的最直接方法是将每个图像与较大图像内的每个其它子图像相比较。然而,这样造成了许多次搜寻,它们需要为每幅图像来执行。本发明各方面针对使需要作出的比较次数最小。
而且,可能使用所有的位置候选来确定路径的位置。或者,可能只用某些位置候选来确定路径。图5示出该方法。示出了三个候选集合。点501A-501C是来自第一图像的候选物,点502A-502C是来自第二图像的候选物,而点503A-503C是来自第三图像的候选物。如果选择了每个组内的第一点(501A、502A和503A),则路径会用虚线路径501A-502A-503A示出。然而,点502A可能是不定的。更可能的是笔仅在短距离内移动,产生路径501A-502B-503A。由于笔移动较短距离的可能性更大,因此被选择的路径会是501A-502B-503A。
图6示出连接点601、602、603和604的线段。这些点可能组合成表示笔的路径的曲线(示出在直线段上重叠)。
本发明的各方面涉及用两个过程减少搜索候选物的数目:第一,较大图像(或文档)被分成K*K小块。第二,建立统计模型来表示这些块间的关系。因此,这些块的组合受到所建议统计模型的限制。搜索可能数目上的这种减少改进了搜索系统的吞吐量。在摄像机捕捉更多图像时这就很重要了。
下一步,从有源码分析和无源码分析的结果生成的候选物可以组合起来,并且分析结果以确定笔的路径。可以建立两个模型并用于确定笔的路径。这两个模型包括“捕捉误差模型”以及“笔迹模型”。这些模型可能从训练数据中受到训练(确定并修改后的变量)。例如,相似性测量方法可能用于表示Pr(ik|Ik)从而为捕捉误差模型提供训练数据。例如,可能使用ik和if(1k)间的相关系数。最后,笔产生的路径可能用贝叶斯(Bayesian)分析技术来确定。
笔迹模型基于统计语言模型的工作之上。这里,统计的n字母模型用于对监控用户得到的系列块的空间和运动关系进行建模。可能使用两种算法。第一,可能使用双字母模型,它使用系列块间的距离对块间空间关系进行建模。下一步,可能使用三字母模型,这是根据从用户建立的笔迹模型。这些模型可以被组合并用于发现被捕捉图像的位置。
图像捕捉系统的输入和输出以及路径定位可能表示如下:
·输入:I=(i1,i2,...,in),其中ik是由摄像机捕捉的第k个图像;
·输出:L=(l1,l2,...,ln),其中lk是图像ik的2D位置。
·目标:
即找到2D点
的最可能数列,它最大化Pr(L|I)。
这个关系式可用贝叶斯(Bayes)定律重新定义如公式(20)。
下一步,问题被分成两部分:捕捉误差模型Pr(I|L)以及笔迹模型Pr(L)。概念上,列举所有L,给出最大Pr(L|I)的L被选为最佳数列。实践中,可能使用某些有效的方法,诸如维特比(Viterbi)搜寻。在一例中,可能用维特比Beam搜寻来改进搜寻速度。
在公式20内找到的搜寻模型,Pr(L)测量了2D位置数列的先验概率。一般而言,Pr(L)可能由统计语言模型(SLM)(譬如上述的双字母或三字母方法)来确定。捕捉误差模型Pr(I|L)测量位置L内的图像块被捕捉为图像I的概率。
由笔的摄像机所捕捉的图像相对较小。一般而言,分段块K*K的尺寸可能被限制为类似于摄像机的捕捉尺寸。或者,摄像机的图像捕捉尺寸可能被调整为约为较大图像的K*K分区尺寸。使用该分析后,可能将原始文档分为K*K尺寸的小块。然后,被捕捉的图像数列I可能被表示为小图像块的组合,即i1,i2,...,in。假设捕捉误差是无关的,则误差捕捉模型可能用公式(21)表示。
其中,If(Ik)是位置Ik中的原始图像块。
图像块可能对于实际存储和有效利用而言太大了。因而,可以提取一些特征来表示图像块。这提供了两点好处。第一,表示存储大大减少了信息量。第二,由于仅表示特征在某种程度上减少了噪声,因此笔定位系统变得更稳健。这种特征提取可能反映出上述无源编码方法。
为得到为块设定的特征,整个文档被转化成黑白图像,且图像被分成K*K个小块。对每个小块而言,图像被投影在X和Y轴方向上。如果到X/Y方向上的投影为全零,则该点被编码为0,否则,可以将该点(中心点)编码为零;否则,该点编码为1。然后,可以组合X和Y轴的编码来表示块。例如,黑白图像块可以用公式(22)表示;然后,该块的编码可以用公式(23)表示。
其中,ijk是图像块i内点(j,k)的一个像素。ijk的两个可能值为0或1,0指白色,1指黑色。
C(i)=c1x,...,cKx,c1y,...,cKy
cjx=c1j&c2j&...&cKj
(23)cjy=cj1&cj2&...&cjK
其中,cjk是在x轴上的编码投影,而cjy是y轴上的编码投影。
存编码后,捕捉误差模型用公式(24)重写。
可能对所有块进行比较。或者,为了加快计算,可能预先计算所有可能融合码,并将它们存储在表格内以备将来使用。
公式(20)内的笔迹模型Pr(L)可能由统计语言模型(SLM)来确定,譬如以下的双字母或三字母语言模型。
L可能由2D点l1,l2,...,ln的数列表示。然后,笔迹模型可以用公式(25)表示。
在双字母模型中,可以假设一个位置lk只受前一位置lk-1的限制。根据该假设,笔迹模型可能用公式(26)重写。
而且,由于摄像机的采样率与笔的移动相比相对较快,因此可以将笔速近似为零,笔从前一位置的错位符合高斯分布。
因此,页面笔迹模型提供了一种整体工具,用于根据前一位置估计笔的位置的概率。换言之,移动的距离越小,把笔的位置确定在新位置的概率越高。然后,笔迹模型可以用公式(27)重写。该模型假设相邻的被捕捉图像落入一个小圆周。
其中 以及lk=(xk,yk)
另外,考虑到笔在书写时的加速,可能使用三字母模型。使用三字母模型时,页面笔迹模型可以用公式(28)重写。
其中,
模型的参数(μx1,σx1,μy1,σy1,μx2,σx2,μy2,σy2)可能从训练数据中导出。训练数据可能是例如由Wacom写字板捕捉的500000个笔画,其中摄像机与活动笔相关联,使得由摄像机捕捉的图像可能与由Wacom书写板上的数字转换器捕捉的图像相关联。
一些初始值可能用于变量。例如,模型的参数(μx1,σx1,μy1,σy1,μx2,σx2,μy2,σy2)可能不取决于纸的大小,且模型的初始值可能是(0,1.3905,0,1.729,0,0.58573,0,0.71547)。
使摄像机203具有相对较高的采样率(每秒62帧以上)提供了新位置与高斯分布间更好的对齐。然而,这也提供了用于处理的更多图像。
以上模型(公式27和28的模型)通过处理候选物而提供路径,候选物由以上有源和无源编码系统所提供并且与维特比搜寻算法相比较。然而,实际上,如果没有正确的候选物,则基本维特比搜寻算法会失败。为解决该难题,具有跳跃特征的维特比搜寻系统可能用来解决该问题。
对于新的帧I而言,候选物用Ci表示。如果没有跳跃特性,新帧i就与前一帧的候选物相连,即第(i-1)个帧的候选物Ci-1,从而获得概率pi。然而,如果有跳跃特性,新帧i不仅连到前一帧(i-1),还连到再前面的帧(i-2,i-3...i-n),其中n是跳跃范围。
图7示出活动中的跳跃特性。从706到701的笔路径(表示为706-705-704-703-702-701)包括通过每一点的笔。由于笔很可能在被捕捉的图像帧之间不移动太多,因此点702可能是不定的。为了从分析中去除点702,则可能使用跳跃特性。这产生了线段706-705-704-703-701(对于n=1)、706-705-704-701(对于n=2)、以及706-705-701(对于n=3)。
双字母模型可表示为Pr(L)=Pr(lk-1)×Pr(lk|lk-l)。根据跳跃特性,双字母模型可能被表示为 该三字母模型(根据笔迹模型)可能被表示为具有跳跃特性的公式(29)。
根据以上跳跃特性适配,可能连接几条路径。在这些路径中,具有最大概率的路径可能被选为笔的路径。
图10示出用于确定笔的路径的过程。在步骤1001中,过程开始。虚线盒中示出以下步骤的任选步骤:在步骤1002中使用无源码、在步骤1003中获得无源码候选物、在步骤1004中使用有源码、以及在步骤1005中获得有源码候选物。在步骤1006中,一个或多个候选物集合被组合在一起。在步骤1007中对来自步骤1006的各候选物实施维特比搜寻。在步骤1008中根据通过所选择点组的笔路径的最大概率来选择笔的路径。最后,在步骤1009中,输出笔的路径。该输出可能包括在计算机屏幕上显示结果或可能存储文档的电子墨迹注释。
虽然本发明已经用所附权利要求书来定义,然而这些权利要求是说明性的,因为本发明试图包括在此描述的元件和步骤的任意组合或子组合。因而,有许多用于定义本发明替代组合,它们结合了来自申请文件的一个或多个元件,申请文件包括各种组合或子组合型式的说明书、权利要求书和附图。对于相关技术领域的技术人员所显而易见的是,根据本申请文件,本方面的其它组合,或单独或与在此定义的一个或多个元件或步骤组合,可能被用作本发明的修改或替代,或者被用作本发明的一部分。这里包含的本发明说明书覆盖了所有这样的修改和替代。