照相机-笔尖映射和校准的制作方法

文档序号:6511730阅读:255来源:国知局
专利名称:照相机-笔尖映射和校准的制作方法
技术领域
本发明的实施方式涉及按位置编码的介质与数字式笔之间的交互,尤其涉及校准数字式笔,并把从照相机捕捉图像解码而来的位置映射到相应的笔尖位置。
背景技术
计算机用户习惯于使用鼠标和键盘作为与个人计算机交互的方法。尽管个人计算机相比书面文档提供了众多优点,大部分用户仍然继续使用打印纸来执行某些功能。部分这些功能包括阅读并评注书面文档。在作评注情形中,由于用户在其上所作的评注,打印文档被认为更为重要。然而,处理带有带评注的打印文档时的困难之一是后面需要将评注输回到电子文档中。这需要原用户或另一用户辛苦地读完这些评注,并将其输入到个人计算机中去。在一些情形中,用户会在评注和原始文本中进行扫描,从而产生新文档。此等多重步骤使得打印文档和文档的电子版本间的交互难以在重复性基础上得到处理。此外,扫描图像常常是不能修改的。可能没有办法把评注从原文本中分离出来。这就使得使用评注变得困难了。因此,需要一种处理评注的改进方法。
捕捉手写信息的一种技术是通过使用在书写过程中其位置可确定的笔。提供这种功能的一种笔是Anoto公司的Anoto笔。该笔的工作原理是使用一个照相机来捕捉以预定图案编码的纸张的图像。图像图案的示例如图15所示。该图案被Anoto笔(来自Anoto公司)用来确定纸张上笔的位置。然而,用Anoto笔所使用的系统对位置进行确定的有效性并不清楚。为了提供捕捉图像位置的有效确定,需要提供对捕捉图像做有效解码的系统。
当评注文档时,用户可通过相对于文档而移动笔尖来标记文档。笔尖的路径可包括多个笔划,其中每个笔划对应于一系列的捕捉图像。因而,理想的是要有效地标识笔的路径以便处理文档中的评注。
此外,从被捕捉图像中心起计算的x-y坐标可能并不代表笔尖的真实位置。为了把被捕捉图像的中心映射到笔尖,将需要对笔尖与由照相机捕捉的图像中心之间的关系进行校准(calibrating)的技术。然而,常规校准技术通常需要复杂的装置和/或棘手的校准过程。
每当用户对笔的墨盒进行更换时,这可能是相对频繁发生的,即要执行校准。因此,执行校准的技术必须是简单的、相对快速的、并准确的。并且这种技术应当不需要那些通常在常规校准技术中使用的复杂类型的设备。

发明内容
笔尖的x-y位置可这样来确定,即用校准参数把由笔上的照相机所捕捉的相应图像的各中心x-y位置映射到笔尖的x-y位置。校准参数可通过对校准参数以迭代方式(iteratively)计算估算值校准来生成。
校准模块接收校准输入数据,该数据由用户把笔尖放置在一表面的固定位置上,然后旋转笔和/或在各个方向上移动笔的另一端以捕捉在生成校准参数中使用的多个图像而产生,该表面可以是按位置编码的介质,诸如纸张。用户可以在不需要通常用于常规校准技术的复杂校准装置的情况下,就可执行这种校准过程。
映射模块可使用校准参数和复原的照相机捕捉位置信息来生成复原笔尖位置信息。
一虚拟笔尖被用来把复原图像中心位置映射到复原笔尖位置。基于笔的配置,虚拟笔尖的位置取决于真实笔尖和照相机之间的预定关系。虚拟笔尖是笔尖在数字式笔上照相机的图像传感器平面上的投影点。
参阅以下详细描述,本发明的附加特征和优点将显然。


前述的本发明内容及以下优选实施方式的详细描述,在结合附图阅读时可得到更好的理解,这些附图是作为本权利要求发明的示例,而不是作为其限制被包括其中的。
图1所示是可用于本发明实施方式的计算机的一般描述。
图2A和2B所示是根据本发明实施方式的图像捕捉系统和相应的被捕捉图像。
图3A到3F是根据本发明实施方式的各种序列和折叠(folding)技术。
图4A到4E是根据本发明实施方式的各种编码系统。
图5A到5D显示的是与图4A和4B的编码系统相关联的四种可能得当的拐角。
图6是根据本发明实施方式的被捕捉图像部分的旋转。
图7示出结合图4A到4E的编码系统使用的各种旋转角度。
图8是根据本发明实施方式确定被捕捉数组位置的过程。
图9是根据本发明实施方式确定被捕捉图像位置的方法。
图10是根据本发明实施方式确定被捕捉图像位置的另一方法。
图11是根据本发明的各种实施方式的校准模块和映射模块。
图12是根据本发明的一实施方式的复原照相机捕捉笔划(即从被捕捉图像的相应中心复原的)及其相应映射笔尖的笔划。
图13示出了与图12所示复原笔划相关联的实际笔尖笔划。
图14根据本发明的各种实施方式示出了基于照相机捕捉图像的相应中心复原的路径,及沿该路径上的诸多点通过校准参数所映射的点。
图15所示是根据现有技术的文档中编码空间的表示。
具体实施例方式
本发明的诸方面涉及确定被捕捉图像在一较大图像中的位置。在此描述的位置确定方法和系统可以结合多功能笔来使用。
为方便读者,用小子标题分隔以下描述。小标题包括术语、通用计算机、图像捕捉笔、数组编码、解码、纠错、及位置确定。
I.术语笔一可包括或不包括存储墨水功能的任何书写工具。在部分示例中,根据本发明实施方式,无墨水功能的输入笔可被用作笔。
照相机-可从纸张或任何其它介质上捕捉图像的图像捕捉系统。
II.通用计算机图1是可用于本方面各种方面的常规通用数字式计算环境示例的功能块图。在图1中,计算机100可包括处理单元110、系统存储器120以及把包括系统存储器在内的各种系统组件耦合到处理单元110的系统总线130。系统总线130可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线架构的任一种的本地总线。系统存储器120包括只读存储器(ROM)140和随机存取存储器(RAM)150。
包含有助于计算机100如起动时在元件间传送信息的基本例程的基本输入/输出系统(BIOS)160通常存储在ROM 140中。计算机100还包括读取和写入硬盘(未示出)的硬盘驱动器170,读取和写入可移动磁盘190的磁盘驱动器180,读取和写入可移动光盘192,诸如CD-ROM或其它光学介质的光盘驱动器191。硬盘驱动器170、磁盘驱动器180、光盘驱动器191分别通过硬盘驱动器接口192、磁盘驱动器接口193、光盘驱动器接口194连接至系统总线130。诸驱动器及其相应的计算机可读介质为个人计算机100提供计算机可执行指令、数据结构、程序模块和其它数据的非易失储存。本领域技术人员可以理解,其它类型的能够存储数据的可被计算机访问的计算机可读介质,如磁带、闪存卡、数字式视频盘、Bernoulli盘、RAM、ROM等等,也可用于示例操作环境中。
包括操作系统195、一个或多个应用程序196、其它程序模块197和程序数据198的众多程序模块,可存储在硬盘170、磁盘190、光盘192、ROM 140或RAM150中。用户可通过输入装置如键盘101和定位装置102向个人计算机620输入指令和信息。其它输入装置(未示出)可包括诸如话筒、游戏杆、游戏垫、卫星接收器、扫描仪或等等。这些和其它输入装置通常通过与系统总线耦合的串行端口接口106连接到处理单元110,但也可通过其它接口相连,诸如并行端口、游戏端口或通用串行总线(USB)。此外,直接与系统总线130耦合的这些装置也可通过适当接口(未示出)耦合。监视器107或其它类型显示装置也通过接口,如视频适配器108和系统总线130相连。除了监视器,个人计算机通常包括其它外围输出装置(未示出),如扬声器和打印机。在一个示例中,提供有笔数字化仪165和附随的笔或输入笔166,以便数字化地抓取徒手输入。尽管笔数字化仪165和串行端口接口106的连接在图1中示出,实际上如领域内所知,笔数字化仪165可直接与处理单元110耦合,或者通过任何适当方式,如并行端口或另一接口及系统总线130与处理单元110耦合。此外,尽管数字化仪165在图1中与监视器107是分开示出的,数字化仪165的可用输入区域可共延于(co-extensive with)监视器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与系统总线130通过串行端口接口106连接。在网络环境中,与个人计算机100相关的程序模块或其一部分可存储在远程存储器存储装置中。
可以理解的是,所示网络连接是示例性的,且其它用于在计算机间建立通讯连接的技术也可以使用。推定存在着任何的各种众所周知的协议,如TCP/IP、以太网协议、FTP、HTTP、UDP等等,且系统可以在允许用户从基于网络的服务器中检索网页的用户—服务器配置操作。各种常规web浏览器中的任何一种都可用于显示网页和操作网页上的数据。
III.图像捕捉笔本发明的诸方面包括将编码数据流置于代表该编码数据流的显示形式中。(例如,将参照图4B要讨论的,编码数据流被用于创建图形图案。)该显示形式可以是打印纸(或其它物理介质),或者是结合另一个图像或一组图像投射编码数据流的显示器。例如,编码数据流可被表示为纸上的物理图形映像、或在显示图像(例如表示文档文本的)之上的图形映像、或是在显示屏上的物理(不可修改)图形映像(所以,由笔所捕捉的任意图像部分都是可在显示屏上定位的)。
对该被捕捉图像位置的确定可被用来确定用户与纸张、介质或显示屏等发生交互的位置。在本发明的部分方面,笔可以是在纸上书写的墨水笔。在其它方面中,笔可以是用户在计算机显示屏表面上书写用的输入笔。任何交互都可向系统提供文档中被编码图像的认知,或支持在计算机屏幕上显示的文档。通过把笔或输入笔在文档上来回移动时由其上的照相机反复捕捉的图像,系统能追踪用户所控制的输入笔的移动。被显示或打印的图像可能是关联于空白的或内容丰富的纸张的水印(watermark),或是关联于所显示的图像或屏幕上或屏幕内部的固定编码的水印。
图2A和2B示出了带照相机203的笔201的说明性示例。笔201具有可包括或不包括蓄墨水管的笔尖202。照相机203从表面207捕捉图像204。笔201还可包括如虚线框206中所示的附加传感器和/或处理器。这些传感器和/或处理器206还具有向另一笔201和/或个人计算机传送信息的功能(例如,通过蓝牙或其它无线协议)。
图2B表示的是由照相机203所察看的图像。在一说明性示例中,照相机203的视野(即照相机图像传感器的分辨率)为32×32象素(其中N=32)。在该实施方式中,被捕捉图像(32×32象素)对应于照相机捕捉的表面平面上约为5×5毫米的区域。因此,图2B显示的是长宽皆为32象素的视野。N的大小是可调的,使得较大的N对应于较高的图像分辨率。还有,尽管照相机视野在此为作为说明被示为方块,但视野可包括其它形状,这在本领域是众所周知的。
被照相机203捕捉的图像可被定义为一个图像帧序列{Ii},其中Ii是笔201在采样时刻ti时捕捉的。取决于系统配置和性能需求,采样率可大可小。取决于系统配置和性能需求,被捕捉图像帧的尺寸也可大可小。
照相机203捕捉的图像可由处理系统直接使用,或进行预过滤。该预过滤可在笔201中或笔201之外(例如,个人计算机中)进行。
图2B的图像尺寸是32×32象素。如果每个编码单元尺寸是3×3象素,则被捕捉编码单元的数量约为100。如果每个编码单元尺寸是5×5象素,则被捕捉编码单元的数量约为36。
图2A还显示有图像平面209,在其上来自位置204的图案的图像210得以形成。从对象平面207上图案接收的光线由透镜208聚焦。透镜208可以是单个透镜或是一个多部件透镜系统,但为了简洁起见,在此表示为单个透镜。图像捕捉传感器211捕捉图像210。
图像传感器210可足够大,以捕捉图像210。可选地,图像传感器210可足够大,以在位置212捕捉笔尖202的图像。为作参考,位置212上的图像被称为虚拟笔尖。要注意,由于笔尖、透镜208和图像传感器211间的衡定关系,虚拟笔尖相对于图像传感器211的位置是固定的。
以下变换FS→P把照相机捕捉的图像的位置坐标变换为纸张上真实图像的位置坐标Lpaper=FS→P(LSensor)。
书写期间,笔尖和纸张在相同平面上。因此,从虚拟笔尖到真实笔尖的变换也是FS→PLpentip=FS→P(Lvirtual-pentip)。
变换FS→P可被估算为仿射变换。其简化为
FS→P′=sxsinθycosθxsinθy-cosθysinθx,sxcosθycosθxsinθy-cosθysinθx,0-sysinθxcosθxsinθy-cosθysinθx,sycosθxcosθxsinθy-cosθysinθx,00,0,1]]>作为FS→P的估算,其中θx、θy、sx、sy是在位置204上所捕捉图案的两个方向的旋转和比例(scale)。此外,可通过被捕捉图像与纸上相对应真实图像的匹配来精算(refine)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的准确位置。
现在虚拟笔尖Lvirtual-pentip的位置已知。还可从捕捉图像获取变换FS→P。最后,可使用该信息确定真实笔尖Lpentip的位置Lpentip=FS→P(Lvirtual-pentip)。
根据本发明各种实施方式,把照相机捕捉图像的中心映射到笔尖在纸上相应的坐标位置以及用于此种映射中的校准参数将在后面VIII和IX节中讨论。
IV.数组编码二维数组可通过折叠一维序列来构建。包括足够量比特的二维数组的任何部分都可被用来确定其在完整二维数组中的位置。然而,有必要从一个或一些捕捉图像确定该位置。为了使一个捕捉图像部分与二维数组的两个或多个位置相关联的可能性降到最低,可用非重复序列来创建数组。被创建序列的一个属性是该序列在长度(或窗口)n上不重复。以下描述了一维序列的创建、然后将该序列折叠成数组。
IV.A.序列构建一个数字序列可被用作编码系统的起点。例如,序列(也称为m序列)可被表示为域Fq中的q元素集合。在此,q=pn其中n≥1且p为质数。该序列或m序列可用各种不同技术生成,包括但不限于多项式除法。使用多项式除法,该序列可被定义如下其中Pn(x)是域Fq[x]中n次的本原多项式(有qn个元素)。R1(x)是域Fq[x]中1次的非零多项式(其中1<n)。序列可通过使用两个步骤的迭代过程来创建首先,两个多项式相除(结果为域Fq的元素),其次,将余数乘以x。当输出开始重复时,计算停止。该过程可使用线性反馈移位寄存器来实现,该寄存器在IEEE计算机学报43.5(1994年5月560-568页)上Douglas W.Clark和Lih-Jyh Weng的文章“Maximal and Near-Maximal Shift Register SequencesEfficient Event Counters andEasy Discrete Logarithms,”中有陈述。在此环境中,关系在序列和多项式R1(x)的循环移位间被建立改变R1(x)仅仅使该序列循环移位,且每次循环移位对应于一个多项式R1(x)。所产生序列的属性之一为,序列的周期是qn-1,且在一个周期中,宽度(或长度)n上的任何部分在序列中存在一次且仅有一次。这称为“窗口属性”。周期qn-1也被称作序列长度,而n为序列次数。
上述过程仅仅是可用来创建有窗口属性序列的各种过程之一。
IV.B.数组构建可用来创建图像(其中部分可被照相机捕捉)的数组(或m数组)是一维序列或m序列的扩展。设A为周期(m1,m2)的数组,即A(k+m1,l)=A(k,l+m2)=A(k,l)。当n1×n2窗口在时间段A上移位时,所有Fq上非零的n1×n2矩阵出现一次且仅有一次。该属性也被称为“窗口属性”,因为每个窗口都是唯一的。接着窗口可被表达成周期为(m1,m2)(m1和m2为数组中表示水平和垂直方向的比特数)且次数为(n1,n2)的数组。
通过折叠该序列可构建二元数组(或m元数组)。一种方法是获取一序列,然后将其折叠成m1×m2的尺寸,其中数组的长度为L=m1×m2=2n-1。或者,可从想要覆盖预定尺寸的空间开始(例如,一张纸大、三十张纸大、或计算机监视器尺寸),确定面积(m1×m2),然后使用该尺寸使L≥m1×m2,其中L=2n-1。
可使用各种不同折叠技术。例如,图3A到3C显示三种不同序列。每一种都可折叠成如图3D所示的数组。三种不同折叠方法被示为图3D中的覆盖图及图3E和3F中的光栅路径。我们采用图3D所示折叠方法。
为了创建如图3D所示的折叠方法,创建长度为L次数为n的序列{ai}。接着,通过让数组的每个比特如等式1所示计算而从序列{ai}创建尺寸为m1×m2的数组{bkl},其中(m1,m2)的最大公约数=1且L=m1×m2
bkl=ai,其中k=i mod(m1),l=i mod(m2),i=0,…,L-1. (1)该折叠方法或者可被表达为将序列放置在数组的对角线上,然后当抵达边界时从对边继续。
图4A显示可用来对图3D的数组编码的采样编码技术。可理解,可使用其它编码技术。例如,可选编码技术在图11显示。
参照图4A,第一比特401(例如“1”)由一列黑墨表示。第二比特402(例如“0”)由一行黑墨表示。可以理解,可使用任何色彩的墨水来表示各个比特。对选择墨水色彩的唯一要求是其提供与介质背景的鲜明对比,使图像捕捉系统能对其进行辨认。图4A中的比特由3×3的单元矩阵表达。基于图像捕捉系统的尺寸和分辨率,矩阵可被改变成任何尺寸。比特0和1的可选表示如图4C到4E所示。可以理解,图4A到4E采样编码的1或0的表示可无影响地进行切换。图4C以交叉排列示出占据两行或两列的比特表示。图4D以虚线形式显示行和列中象素的可选排列。最后图4E以不规则间隔的格式显示列和行中的象素表示(两个黑点后跟随一个空白点)。
再看图4A,如果比特以3×3的矩阵表示且图像系统在3×3区域中检测到一黑色行和两个空白行,则检测到0(或1)。如果检测到图像有一个黑色列和两个白色列,则检测到1(或0)。
在此,一个以上象素或点被用来表示一比特。使用单个象素(或比特)来表示比特易受破坏。灰尘、纸张折痕、不平整的表面等等在读取数据单元的单个比特表示时都会产生困难。然而,可以理解,可以使用不同方法来图形地表示平面上的数组。一些方法如图4C到4E所示。可以理解还可使用其它方法。仅使用空间位移点的一种方法在图11中陈述。
比特流被用来创建图4B中的图形图案403。图形图案403包括12行和18列。这些行和列由以比特表示401和402将其转化成图形表示的比特流形成。图4B可被示为有以下比特表示010101110110110010001010011101101100]]>V.解码当人们用图2A的笔书写或将该笔移近被编码图案时,照相机捕捉到一图像。例如当笔201被压向纸张且其在纸上文档上来回移动时,笔201可利用压力传感器。接着图像被处理,以相对于编码图像的完整表示而确定被捕捉图像的方向,并提取组成被捕捉图像的比特。
为确定被捕捉图像相对于整个被编码区域的方向,可注意到并不是所有图5A-5D所示的四个可能拐角都能在图形图案403中出现。实际上,从正确方向看,图5A所示的拐角类型不能在图形图案403中出现。因此,看不到图5A所示的拐角类型的方向是正确方向。
继续看图6,可分析由照相机601捕捉的图形并且可确定其方向,以便被编译为图像601所确切表示的位置。首先,考察图像601以确定使象素水平或竖直对齐的图像需要旋转的角度θ。注意,包括把其中网格旋转成非水平和非竖直排列(例如45度)的可选网格对齐是可能的。由于用户可能倾向于在其它图案之前先注意水平或竖直图案,使用非水平和非竖直排列可提供消除用户视觉涣散的可能优点。为了简单,网格的方向(其中网格的水平、竖直和任何其它方向)可被统称为预定义网格方向。
接着,分析图像601以确定哪个拐角缺失。把图像601旋转成可供解码的图像603所需的旋转量o被示为o=(θ+旋转量{由缺失的拐角定义})。该旋转量如图7中等式所示。还看图6,角度θ首先通过把象素布局变成象素的水平或竖直排列(或其它预定义网格方向)确定,且图像旋转成如图602所示。然后进行分析以确定缺失的拐角,且图像602被旋转成图像603以设立供解码的图像。在此,图像逆时针旋转90°,从而图像603有正确的方向且可用于解码。
可以理解旋转角度θ可在图像601旋转之前或之后被用来说明缺失的拐角。还可理解考虑到被捕捉图像的噪音,所有四种拐角都可能出现。我们会数某种类型拐角的数量,然后选择数量最少的拐角类型作为为缺失的拐角类型。
最后,图像603中的编码被读取并与用来创建图像403的原始比特流进行相关。该相关可用众多方法执行。例如,它可用递归法执行,其中复原比特流可与原始比特流中的所有其它比特流分段相比较。接着,例如使用两个比特流间的纠错(Hamming)距离可执行复原比特流和原始比特流之间统计学分析。可以理解,可使用各种方法来确定原始比特流中复原比特流的位置。
一旦有了复原比特,就需要在原始数组中(例如图4B中所示)定位被捕捉图像。由于许多项目使得在整个数组中确定比特片断的位置是复杂的。首先,被捕捉的确切比特可能是模糊的(例如,照相机可捕捉模糊了原码的手写图像)。其次,灰尘、折痕、反射等等也会在捕捉图像中产生错误。这些错误使得定位过程更困难。基于此,图像捕捉系统可能需要对图像中提取的非序列比特发挥作用。以下表示了操作图像中非序列比特的一种方法。
设序列(或m序列)I对应于幂级数I(x)=1/Pn(x),其中n是m序列的次数,且被捕捉图像包含K个比特I,b=(b0b1b2…bK-1)t,其中K≥n且上标t代表矩阵或向量的转置。K个比特的位置s正好是I的循环移位次数,从而b0被移位到序列的起点。接着该经移位的序列R对应于幂级数xs/Pn(x)或R=Ts(I),其中T为循环移位运算符。我们间接地得出该s。多项式模数Pn(x)形成一个域。保证xs≡r0+r1x+…rn-1xn-1mod(Pn(x))。因此,我们可得出(r0,r1,…,rn-1)并接着解出s。
关系式xs≡r0+r1x+…rn-1xn-1mod(Pn(x))隐含着R=r0+r1T(I)+…+rn-1Tn-1(I)。写成二元线性等式,它变成R=rtA (2)其中r=(r0r1r2…rn-1)t,且A=(I T(I)…Tn-1(I))t包括从零-位移到(n-1)-位移的I的循环移位。现在仅有稀少的K比特在R中可用以解出r。设R中bi和b0间的索引差为ki,i=1,2,…,k-1,则R的第一个和第ki+1个元素,i=1,2,…,k-1,实际上为b0,b1,…,bk-1。通过选择A的第一和第ki+1列,i=1,2,…,k-1,形成以下二元线性等式bt=rtM (3)其中M是A的n×K子矩阵。
如果b无误差,则r的解答可表达为rt=b~tM~-1---(4)]]>其中 是M的任意非退化n×n子矩阵,而 是b的对应子向量。
有了已知的r,我们可使用如IEEE计算机学报43.5(1994年5月560-568页)上Douglas W.Clark和Lih-Jyh Weng的文章“Maximal and Near-Maximal ShiftRegister SequencesEfficient Event Counters and Easy Discrete Logarithms”中的Pohlig-Hellman-Silver算法,来得出s使得xs≡r0+r1x+…rn-1xn-1mod(Pn(x))。
因为矩阵A(尺寸为n×L,其中L=2n-1)可能很大,因此应当避免存储整个矩阵A。实际上,如在以上过程中所见,给定索引差ki为的已提取比特,仅有A的第一列和第ki+1列与计算相关。如果给定被捕捉图像的尺寸,对ki的这种选择就相当有限了。因而,仅需要保存在计算中要涉及的这些列。这些列的总数比L要小得多(其中L=2n-1是m序列的长度)。
VI.纠错如果b中存在误差,则对r的解答变得更为复杂。由于与捕捉比特相关联的矩阵M可随被捕捉图像而改变,因此带纠错解码的常规方法可能还不容易应用。
我们采用一种随机方法。假设b中的错误比特数ne与K相比较小,则从b的K比特中选择正确的n个比特以及M的相应子矩阵 为非退化的可能性较高。
当被选择的n比特都正确时,bt和rtM之间的汉明距离或者与r相关联的错误比特数应为最小值,其中r通过等式(4)来计算。重复该过程若干次,可能就能标识导致最小错误比特的正确的r。
如果仅有一个r与最小错误比特数相关联,则它被视为正确解答。否则,如果有一个以上的r与最小错误比特数相关联,则ne超过M生成码的纠错能力的可能性很高且解码过程失败。系统接着转而处理下一被捕捉图像。在另一实施方式中,有关笔的先前位置的信息被考虑在内。即,对每一个被捕捉图像,能标识笔被期望的下一目标区域。例如,如果用户在照相机的两次图像捕捉之间未提起笔,则第二次图像捕捉所确定的笔的位置不应离第一次的位置很远。接着检查与最少错误比特相关联的每个r以了解从r计算得来的位置s是否满足本地约束条件,即该位置是否在指定的目标区域中。
如果位置s满足本地约束,数组中抽取比特的X,Y位置被返回。如果不满足,则解码过程失败。
图8描绘了可用于确定被捕捉图像的序列(或m序列)中的位置的过程。首先,在步骤801,接收涉及被捕捉图像的数据流。步骤802中,从A中提取相应的列并且构架矩阵M。
步骤803中,从矩阵M中随机选取n个独立的列向量,并且通过解等式(4)确定向量r。该过程在步骤904中执行Q次(例如100次)。循环次数的确定在循环次数计算小节中讨论。
在步骤805中,r按照其相关联的错误比特数进行排序。该排序可用本领域中所知的各种排序算法进行。例如,可使用选择排序算法。当Q不是很大时,选择排序算法是有利的。然而如果Q变大,可使用其它更有效地处理较大数量的排序算法(例如,合并排序)。
然后系统在步骤806中通过检查是否多个r与最少量错误比特相关联,从而确定纠错是否成功执行。如果存在多个r,则在步骤809中返回指示解码过程失败的错误。如果不存在多个r,抽取比特在序列(或m序列)中的位置s在步骤807中例如通过使用Pohig-Hellman-Silver算法进行计算。
下一步,数组中的(X,Y)位置被计算为x=s mod m1和y=s mod m2且结果在步骤808中被返回。
VII.位置确定图9显示了确定笔尖位置的过程。输入是被照相机捕捉的图像,而输出另一是笔尖的位置坐标。还有,输出可以包括(或不包括)诸如被捕捉图像旋转角度等其它信息。
步骤901中,图像从照相机上接收。接着,被接收图像可任选地在步骤902中被预处理(如步骤902的虚线框所示),以调整浅色象素和黑色象素之间的对比度等等。
下一步,在步骤903中,图像被分析以确定其中的比特流。
接着,步骤904中,从比特流中多次随机选取n个比特,且接收比特流在原序列(或m序列)中的位置被确定。最后,一旦被捕捉图像的位置在步骤904中被确定,笔尖位置可在步骤905中被确定。
图10给出了有关903和904的更多细节,并显示了在被捕捉图像中抽取比特流的方法。首先,在步骤1001图像从照相机上接收。接着图像可任选地在步骤1002中进行图像预处理(如步骤1002虚线外框所示)。图案在步骤1003被提取。在此,各种行上的象素被提取,以得到图案的方向和角度θ。
接着,被接收图像在步骤1004中进行分析,以确定底层的网格线。如果网格线在步骤1005中被找到,则在步骤1006中编码从图案中被提取。编码在步骤1007中被解码,且笔尖位置在步骤1008中被确定。如果在步骤1005上未发现网格线,则在步骤1009中返回错误。
VIII.把照相机捕捉图像的笔划映射到相应笔尖笔划根据本发明的各种实施方式,笔尖202的x-y位置可通过使用校准参数来确定,该校准参数把笔上照相机210所捕捉图像的中心的x-y位置分别映射到笔尖的x-y位置上。
图11根据本发明的各种实施方式描述了校准模块1102和映射模块1106。校准模块1102接收校准输入数据1100,该输入数据可通过用户把笔尖202放置在诸如纸张的按位置编码介质的表面207上的固定位置上,然后旋转该笔和/或在各个方向上移动该笔的另一端以捕捉多个图像以供产生校准参数1104而产生。
映射模块1106使用校准模块1104和复原的计算机捕捉图像信息1110来产生复原的笔尖位置信息1108。
图13描述了包括覆盖在按位置编码迷宫图案上的文字的按位置编码纸张的扫描副本。图13显示了由笔尖202在纸张上写就的实际墨水笔划1301。
图12是与图13的扫描图像相对应的按位置编码纸张的电子副本一部分的屏幕照片。在图12中,通过确定沿被捕捉图像笔划1203的点在文档中的位置,被捕捉图像笔划1203从笔上照相机203所捕捉图像的相应中心复原。
图12还描绘了笔尖202的复原笔尖笔划1201。复原笔尖笔划1201可通过把校准参数1104应用到复原被捕捉图像笔划1203中来获取。
根据本发明的各种实施方式,虚拟笔尖212被用来把复原图像中心笔划1203映射到复原笔尖笔划1201。虚拟笔尖的位置取决于真实笔尖202和照相机203之间的基于笔的配置的预定关系。虚拟笔尖212是图像传感器平面209上笔尖202的突出点。虚拟笔尖212在图像传感器平面209上的位置是未知但固定的。
把图像中心的位置映射到笔尖位置的一种方法是确认笔尖与笔身之间的空间关系,笔身、透镜和图像传感器之间的空间关系,诸如透镜的焦距、图像传感器象素的物理尺寸等的光学调整,图像中心与透镜光轴之间的距离等等。这些测量通常需要特殊的装置。此外,每当笔的配置变化,诸如当蓄墨水管被更换时,该过程需重复进行。虚拟笔尖的概念使得这些复杂步骤不必要了。透视变换被应用于虚拟笔尖的位置以得到笔尖的位置,即Lpentip=FS→P(Lvirtual-pentip)(8)IX.校准根据本发明的各种实施方式,通过执行以下(a)到(g)的步骤可估算校准参数Lvirtual-pentip(a)用户置真实笔尖202于表面207上的固定位置Lpentip。参照图14,按位置编码表面207的一部分1400被显示,其上Lpentip被显示在1402。
(b)用户将笔尖保持在位置Lpentip上,并捕捉带有不同笔方向的一系列图像(即尽管笔尖202保留在固定位置Lpentip,但是笔可旋转和/或与笔尖202相对的笔的另一端可在各个方向上移动)。参照图14,对于Lpentip1402,中心沿着路径1404的图像可能被捕捉。
(c)初始化Lvirtual-pentip为(0,0),其中Lvirtual-pentip为Lvirtual-pentip的估算值。
(d)对于每个被捕捉图像,通过m-数组解码和图像匹配来计算变换FS→P和FP→S=FS→P-1,]]>可计算出等式9和10
Lpentipi=FS→Pi·Lvirtual-pentip,i=1,2,···,N---(9)]]>Lvirtual-pentipi=FP→Si·(Lpentip+ΔLi),i=1,2,···,N---(10)]]>其中N是用于校准的被捕捉图像数目,而ΔLi是在第i帧中真实笔尖的位置与Lpentip之间的偏移量ΔPi。
(e)有了等式(9),设Lvirtual-pentip为Lvirtual-pentip,以得到Lpentipi,i=1,2,…,N。通过对Lpentipi取平均值,Lpentip被估算值为L‾pentip=1NΣi=1i=NLpentipi---(11)]]>(f)有了等式(10),设Lpentip为Lpentip,以得到Lvirtual-pentipi,i=1,2,…,N。通过对Lvirtual-pentipii取平均值,Lvirtual-pentip被估算值为L‾virtual-pentip=1NΣi=1i=NLvirtual-pentipi---(12)]]>(g)到步骤(e)。
在几次从步骤(e)到(g)的迭代之后,Lvirtual-pentip和Lpentip一般都将分别收敛为更准确的可被称为Lvirtual-pentipaccurate和Lpentipaccurate的结果。
Lvirtual-pentipaccurate可被用作等式(8)中的校准参数,用来把复原图像中心笔划1203映射到复原笔尖笔划1201。
现在将提供一示例,其中Lvirtual-pentipaccurate和Lvirtual-pentip基于笔尖被放置的固定位置Lpentip进行计算,且笔被旋转使得47个图像可被捕捉。从每个图像可获取变换FS→P和FP→S=FS→P-1.]]>如下所示,经过47次迭代,Lvirtual-pentip从(0.00,0.00)收敛到最后结果(30.80,7.01),Lpentip收敛到最后结果(978.87,1618.55)。注意Lvirtual-pentip在以图像中心为原点的被捕捉图像的坐标系统中,而Lpentip则在相应文档的坐标系统中。
迭代次数1—[步骤c]—初始化虚拟笔尖为(x=0.00,y=0.00),以计算每个图像在纸上的笔尖位置。
图像0的纸上笔尖位置x=985.57,y=1649.70;图像1的纸上笔尖位置x=985.20,y=1649.25;……;图像46的纸上笔尖位置x=1006.41,y=1629.30;图像47的纸上笔尖位置x=1006.76,y=1628.79;平均纸上笔尖位置x=993.32,y=1643.28。
—使用最后的平均纸上笔尖位置(x=993.32,y=1643.28)来计算每个图像的虚拟笔尖
图像0的虚拟笔尖位置x=2.83,y=11.43;图像1的虚拟笔尖位置x=2.42,y=11.66;……;图像46的虚拟笔尖位置x=9.46,y=-17.72;图像47的虚拟笔尖位置x=10.55,y=-18.45;平均虚拟笔尖位置x=3.65,y=0.88;[步骤g]—到步骤e。
迭代次数2—[步骤e]—使用最后的虚拟笔尖为(x=3.65,y=0.88),以计算每个图像的纸上笔尖位置。
图像0的纸上笔尖位置x=984.86,y=1646.07;图像1的纸上笔尖位置x=984.50,y=1645.58;………;图像46的纸上笔尖位置x=1003.09,y=1628.06;图像47的纸上笔尖位置x=1003.53,y=1627.54;平均纸上笔尖位置x=991.64,y=1640.32。
—使用最后的平均纸上笔尖位置(x=991.64,y=1640.32)来计算每个图像的虚拟笔尖图像0的虚拟笔尖位置x=6.25,y=10.93;图像1的虚拟笔尖位置x=5.79,y=11.12;……;图像46的虚拟笔尖位置x=11.93,y=-14.67;图像47的虚拟笔尖位置x=13.01,y=-15.41;平均虚拟笔尖位置x=6.87,y=1.64;[步骤g]—到步骤e。
迭代次数3—[步骤e]—使用最后的虚拟笔尖为(x=6.87,y=1.64.),以计算每个图像的纸上笔尖位置。
……迭代次数43—平均虚拟笔尖x=30.74,y=7.00。
……迭代次数44—平均虚拟笔尖x=30.76,y=7.01。
……
迭代次数45—平均虚拟笔尖x=30.77,y=7.01。
……迭代次数46—平均虚拟笔尖x=30.78,y=7.01。
……迭代次数47--[步骤f]—使用最后的平均纸上笔尖位置(x=978.87,y=1618.55)来计算每个图像的虚拟笔尖图像0的虚拟笔尖位置x=31.61,y=6.88;图像1的虚拟笔尖位置x=30.74,y=6.73;……;图像46的虚拟笔尖位置x=30.47,y=7.74;图像47的虚拟笔尖位置x=31.46,y=6.96;因此,在该例中,平均虚拟笔尖的最后值收敛到x=30.80,y=7.01。
以上所述仅仅是本发明原则应用的说明。本领域技术人员能实现其它排列和方法,而不背离本发明的精神和范围。本发明诸方法中的任一种都可在存储于计算机存储盘或其它计算机可读介质之上的软件中得以实现。
权利要求
1.一种校准包括笔尖和照相机的数字式笔、校准并把照相机捕捉图像的中心位置映射到所述笔尖位置的方法,其特征在于,它包括基于在将笔尖保持于一按位置编码的表面上基本固定的位置Lpentip的同时以多个不同方向放置所述笔而由所述数字式笔上的照相机所捕捉的多个图像来生成一校准参数,其中所述校准参数基于多个迭代生成的估算值而产生;以及使用所述校准参数把所述照相机捕捉图像的中心位置映射到所述笔尖位置,从而用户在所述按位置编码的表面上所书写的笔划可在所述按位置编码表面的电子副本的一位置上复原,其中所述电子副本中所述复原笔划的位置对应于用户在按位置编码表面上书写所述笔划时的多个笔尖位置。
2.如权利要求1所述的方法,其特征在于,还包括通过m数组解码和图像匹配来对多个被捕捉图像的每个图像计算一变换FS→P和一逆变换FP→S=FS→P-1,]]>及随后计算Lpentipi=FS→Pi·Lvirtual-pentip,i=1,2,···,N,]]>以及Lvirtual-pentipi=FP→Si·(Lpentip+ΔLi),i=1,2,···,N,]]>其中N是用来生成所述校准参数的被捕捉图像的数量,而ΔPi是在第I帧中实际笔尖位置和Lpentip之间的偏移量。
3.如权利要求2所述的方法,其特征在于,还包括初始化Lvirtual-pentip为(0,0),其中Lvirtual-pentip是Lvirtual-pentip的一估算值。
4.如权利要求3所述的方法,其特征在于,还包括在等式Lpentipi=FS→Pi·Lvirtual-pentip,i=1,2,···,N]]>中,设Lvirtual-pentip为Lvirtual-pentip以获取Lpentipi,i=1,2,…,N,且通过取Lpentipi的平均值,将Lpentip估算为L‾pentip=1NΣi=1i=NLpentipi.]]>
5.如权利要求4所述的方法,其特征在于,还包括在等式Lvirtual-pentipi=FP→Si·(Lpentip+ΔLi),i=1,2,···,N]]>中,设Lpentip为Lpentip以获取Lvirtual-pentipi,i=1,2,…,N,且通过取Lvirtual-pentipi的平均值,将Lvirtual-pentip估算为L‾virtual-pentip=1NΣi=1i=NLvirtual-pentipi.]]>
6.如权利要求5所述的方法,其特征在于,还包括重复权利要求4和5中的步骤多次,使得Lvirtual-pentip的估算值收敛于实质上更准确的结果Lvirtual-pentipaccurate,而Lpentip的估算值收敛于实质上更准确的结果Lpentipaccurate。
7.如权利要求6所述的方法,其特征在于,还包括把Lvirtual-pentipaccurate用作所述校准参数,以将所述照相机捕捉图像的中心位置映射到所述笔尖位置。
8.如权利要求1所述的方法,其特征在于,还包括使用一虚拟笔尖以把一复原计算机捕捉笔划映射到一复原笔尖笔划,其中所述虚拟笔尖在所述数字式笔的一图像感应平面上的位置取决于所述笔尖和所述笔上照相机之间的预定关系,其中所述预定关系基于所述笔的配置。
9.一种包含计算机可执行指令的计算机可读介质,所述指令产生包括一笔尖和一照相机的数字式笔的校准参数,其中通过执行以下步骤,把所述图像的中心位置映射到在一按位置编码的表面上的所述笔尖位置取决于所述校准参数基于使笔尖保持在一按位置编码的表面上基本固定的位置Lpentip的同时以多个不同方向放置所述笔而由所述数字式笔上照相机所捕捉的多个图像来生成所述校准参数,其中所述校准参数基于多个迭代生成的估算值而产生。
10.如权利要求9所述的计算机可读介质,其特征在于,还包括计算机可执行指令,其通过图像匹配来对多个被捕捉图像的每个图像计算一变换FS→P和一逆变换FP→S=FS→P-1,]]>及随后计算Lpentipi=FS→Pi·Lvirtual-pentip,i=1,2,···,N,]]>以及Lvirtual-pentipi=FP→Si·(Lpentip+ΔLi),i=1,2,···,N,]]>其中N是用来产生所述校准参数的被捕捉图像数量,而ΔPi是在第I帧中真实笔尖位置和Lpentip之间的偏移量。
11.如权利要求10所述的计算机可读介质,其特征在于,还包括计算机可执行指令,其初始化Lvirtual-pentip为(0,0),其中Lvirtual-pentip是Lvirtual-pentip的一估算值。
12.如权利要求11所述的计算机可读介质,其特征在于,还包括计算机可执行指令,其在等式Lpentipi=FS→Pi·Lvirtual-pentip,i=1,2,···,N]]>中,设Lvirtual-pentip为Lvirtual-pentip以获取Lpentipi,i=1,2,…,N,且通过取Lpentipi的平均值,将Lpentip估算为L‾pentip=1NΣi=1i=NLpentipi.]]>
13.如权利要求12所述的计算机可读介质,其特征在于,还包括计算机可执行指令,其在等式Lvirtual-pentipi=FP→Si·(Lpentip+ΔLi),i=1,2,···,N]]>中,设Lpentip为Lpentip以获取Lvirtual-pentipi,i=1,2,…,N,且通过取Lvirtual-pentipi的平均值,将Lvirtual-pentip估算为L‾virtual-pentip=1NΣi=1i=NLvirtual-pentipi.]]>
14.如权利要求13所述的计算机可读介质,其特征在于,还包括重复权利要求12和13中的步骤多次,使得Lvirtual-pentip的估算值收敛于实质上更准确的结果Lvirtual-pentipaccurate,而Lpentip的估算值收敛于实质上更准确的结果Lpentipaccurate。
15.如权利要求14所述的计算机可读介质,其特征在于,还包括计算机可执行指令,其把Lvirtual-pentipaccurate用作所述校准参数,以将所述照相机捕捉图像的中心位置映射到所述笔尖位置。
16.一种包含计算机可执行指令的计算机可读介质,其特征在于,通过执行以下步骤,所述指令校准包括一笔尖和一照相机的一数字式笔,并把照相机捕捉图像的中心位置映射到所述笔尖位置基于在将所述笔尖保持在一按位置编码的表面上基本固定的位置Lpentip的同时以多个不同方向放置所述笔而由所述数字式笔上照相机所捕捉的多个图像来生成一校准参数,其中所述校准参数基于多个迭代生成的估算值而产生;以及使用所述校准参数把所述照相机捕捉图像中心的位置映射到所述笔尖位置,从而用户在所述按位置编码的表面上所书写的笔划可在所述按位置编码表面的电子副本的一位置上复原,其中所述电子副本中所述复原笔划的位置对应于用户在按位置编码表面上书写所述笔划时的多个笔尖位置。
17.如权利要求16所述的计算机可读介质,其特征在于,还包括计算机可执行指令,其使用一虚拟笔尖用来把一复原计算机捕捉笔划映射到一复原笔尖笔划,其中所述虚拟笔尖在所述数字式笔的一图像感应平面上的位置取决于所述笔尖和所述笔上照相机之间的预定关系,其中所述预定关系基于所述笔的所述配置。
18.一种系统,其校准包括一笔尖和一照相机的一数字式笔、并把照相机捕捉图像的中心位置映射到所述笔尖位置,其特征在于,所述系统包括一校准模块,其基于通过在将所述笔尖保持在一按位置编码的表面上基本固定的位置Lpentip的同时以多个不同方向放置所述笔而由所述数字式笔上照相机所捕捉的多个图像来生成一校准参数,其中所述校准参数基于多个迭代生成的估算值生成;以及一映射模块,其使用所述校准参数把所述照相机捕捉图像中心的位置映射到所述笔尖位置,从而用户在所述按位置编码表面上所写的笔划可在所述按位置编码表面的电子副本的一位置上复原,其中所述电子副本中所述复原笔划的位置对应于用户在按位置编码表面上书写所述笔划时的多个笔尖位置。
19.如权利要求18所述的系统,其特征在于,所述校准模块通过图像匹配来对多个被捕捉图像的每个图像计算一变换FS→P和一逆变换FP→S=FS→P-1,]]>并随后计算Lpentipi=FS→Pi·Lvirtual-pentip,i=1,2,···,N,]]>以及Lvirtual-pentipi=FP→Si·(Lpentip+ΔLi),i=1,2,···,N,]]>其中N是用来产生所述校准参数的被捕捉图像数量,而ΔPi是在第I帧中真实笔尖位置和Lpentip之间的偏移量。
20.如权利要求19所述的系统,其特征在于,还包括初始化Lvirtual-pentip为(0,0),其中Lvirtual-pentip是Lvirtual-pentip的一估算值。
21.如权利要求20所述的系统,其特征在于,在等式Lpentipi=FS→Pi·Lvirtual-pentip,i=1,2,···,N,]]>中,设Lvirtual-pentip为Lvirtual-pentip以获取Lpentipi,i=1,2,…,N,且通过取Lpentipi的平均值,将Lpentip估算为L‾pentip=1NΣi=1i=NLpentipi.]]>
22.如权利要求21所述的系统,其特征在于,在等式Lvirtual-pentipi=FP→Si·(Lpentip+ΔLi),i=1,2,···,N]]>中,设Lpentip为Lpentip以获取Lvirtual-pentipi,i=1,2,…,N,且通过取Lvirtual-pentipi的平均值,将Lvirtual-pentip估算为L‾virtual-pentip=1NΣi=1i=NLvirtual-pentipi.]]>
23.如权利要求22所述的系统,其特征在于,所述校准模块重复权利要求21和22的步骤多次,使得Lvirtual-pentip的估算值收敛于实质上更准确的结果Lvirtual-pentipeaccurate,而Lpentip的估算值收敛于实质上更准确的结果Lpentipaccurate。
24.如权利要求23所述的系统,其特征在于,所述校准模块向所述校准模块输出Lvirtual-pentipaccurate用作所述校准参数,以将所述复原图像的中心位置映射到所述复原笔尖位置。
25.如权利要求18所述的系统,其特征在于,所述校准模块使用一虚拟笔尖以把一复原计算机捕捉笔划映射到一复原笔尖笔划,其中所述虚拟笔尖在所述数字式笔的一图像感应平面上的位置取决于所述笔尖和所述笔上照相机之间的预定关系,其中所述预定关系基于所述笔的所述配置。
全文摘要
数字式笔尖的x-y位置可通过使用校准参数映射笔上照相机所捕捉图像相应中心的x-y位置来确定。校准参数可通过迭代计算校准参数的估算值而产生。校准输入数据可通过用户把笔尖202放置在诸如纸张的按位置编码介质表面207的固定位置上,然后旋转该笔和/或在各种方向上移动该笔的另一端以捕捉多个图像来产生,用来产生校准参数。用户无需一般结合常规校准技术而使用的复杂校准设备,就可执行这种校准过程。
文档编号G06F3/033GK1637774SQ200510004180
公开日2005年7月13日 申请日期2005年1月6日 优先权日2004年1月6日
发明者王坚, 陈黎勇, 马晓旭, 党映农 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1