计算显示位置的装置和方法

文档序号:6433505阅读:161来源:国知局
专利名称:计算显示位置的装置和方法
技术领域
本发明涉及具体用于但并非专用于计算机的显示位置计算装置及用于计算显示位置的方法。
用户常需要与机器通信,并且有时他们还需要对其进行控制。这些通信和控制越来越多的通过用户在显示器上指定一个点来进行。因此,有必要能计算屏幕上被用户指示的位置。通常,显示器还将机器的状态报告给用户。
一种早期的用于计算机的显示位置计算装置的例子使用了阴极射线管(CRT)屏幕进行状态显示,使用光笔进行指示。这种光笔容纳有光电探测器,其在检测到接收光强突然增大时产生信号。该信号被发送给驱动CRT显示器的计算机。为了指示显示器上的某一点,用户将光笔末端压紧该点。通过监测从阴极射线管发出的电子束经过的时间,计算机能计算接触点,即显示位置。
近年来,流行无需与屏幕接触的装置。最常用的用于指示屏幕上一点的装置为计算机鼠标。不过,计算机鼠标在使用时需要平坦、不滑动的表面,所以会从该表面聚集尘土,从而随着时间的流逝而干扰其操作。
在某些专用界面上使用非接触装置以指示显示器上的一个点。其例子包括用作视频游戏控制器的光枪。光枪通过与光笔相同的方式操作,不过光枪在距离显示器一定距离处。还可使用非接触的计算机鼠标。不过这些非接触装置都不能完全令人满意。
根据本发明第一方面,提供一种显示位置计算装置,包括显示发生器,其根据机器产生的显示数据产生显示;装载有照相机的指示装置,其用于产生表示照相机视场内至少一部分场景的图像数据,在使用时该部分包括至少一部分显示的图像;计算装置,该计算装置用于接收所述图像数据;接收所述显示数据;根据所述图像数据和所述显示数据,计算所述指示装置相对于所述显示的位置和/或取向;根据计算出的位置和/或取向计算显示位置。
通过获得代表显示的显示数据和代表由指示装置装载的照相机观看到的显示的图像数据,可计算指示装置相对于显示的位置和/或取向。从而可计算出显示位置。指示装置无需复杂的机器部件,利用不同的显示产生器技术(例如CRT,液晶显示器(LCD),等离子体屏幕等)工作,并且在使用时不需要设置成与屏幕或者任何其他表面接触。
优选指示装置为细长形状,并且显示位置为所述指示装置的纵轴与显示的交点。在优选实施例中,在显示位置处的该显示包含有一光标;光标的位置随所计算出的指示装置相对于显示的位置和/或取向而改变。通过这种方法,用户易于看到他们所指示的点。
用户一旦控制了显示中包含的光标,就希望能控制机器。当今,大多数机器提供使用户能控制其操作的用户界面结构。通常,界面包括一些用于输入用户命令的装置,和一些根据这些命令将机器状态指示给用户的装置。用户通过指定显示的不同部分,可将不同命令输入机器。
根据本发明第二方面,提供一种用于提供用户与机器之间界面的界面结构,包括根据本发明第一方面的显示位置计算装置,其中所述计算装置还用于根据光标位置控制所述机器。
通过这种方法,用户无需学习任何专门操作技能而控制机器,。此外,可减少或者完全消除某些界面结构中需要的大量远程控制按钮以及需要的非常复杂的远程控制硬件与界面设计。多种不同类型的机器可提供这种界面,这些机器包括例如个人电脑,数字电视接收机,视频录像机(VCR)和数字化视频光盘(DVD)播放器。
优选该机器包括具有处理器的计算机,其中计算装置包括处理器。通过使用计算机的处理器执行必要计算,可减少或者完全消除界面结构中其它位置处需要的处理能力。可以选择,计算装置也可以包括不止一个处理器,这些处理器单独或者一起设置在指示装置中,或者远离指示装置设置。
优选该照相机为数字视频照相机,因为这样所拍摄的图像将与显示图像具有相同格式,从而易于进行图像配准(一种用于确定使一个图像与另一图像对准所需的转换参数的过程)。如果照相机为具有非常小景深的定焦照相机,则仅在距离屏幕一定距离处图像焦点对准。在获得聚焦图像时,可以得到距屏幕的距离。从而将减少计算所需的处理。为了使计算简单,在优选实施例中,照相机与指示装置具有固定的空间关系。
根据本发明第三方面,提供一种计算显示位置的方法,该方法包括步骤i.根据所述机器产生的显示数据产生显示;ii.获得代表指示装置装载的相机视场内至少一部分场景的图像数据,其中所述显示的至少一部分包含在所述视场内;iii.根据所述图像数据和所述显示数据计算所述指示装置相对于所述显示的位置和/或取向;iv.根据计算出的位置和/或取向计算显示位置。
通过将机器产生的代表显示的显示数据与代表照相机所看到的显示的图像数据进行比较,无论通过何种方法刷新显示,均可计算指示装置相对于显示的位置和/或取向,其中该照相机是指示装置的一部分。根据计算结果,可计算出显示位置,使用户能指示显示器上的一点。
在优选实施例中,使用所述指示装置相对于所述显示的位置和/或取向的历史记录,作为位置和/或取向计算步骤的附加变量。这之所以优选是因为,以良好估计的正确位置和/或取向开始,将减少计算当前位置和/或取向所需的处理量。
根据本发明第四方面,提供一种显示位置计算装置,包括存储介质,其中记录有处理器可读代码,可通过处理该可读代码产生用户与机器之间的界面,所述代码包括显示数据获取代码,其通过处理可获得表示显示的显示数据;图像数据获取代码,其通过处理可从载有照相机的指示装置获得代表所述照相机视场内至少一部分场景的图像数据;位置/取向计算代码,其通过处理可从所述显示数据和所述图像数据计算出所述指示装置相对于所述显示的位置和/或取向;显示位置计算代码,其通过处理可根据所计算出的位置和/或取向计算显示位置。
根据本发明第五方面,提供一种数字数据载体,其载有可由处理装置执行的指令程序,从而执行本发明第三方面中提到的方法步骤。
现在将参照附图通过例子描述本发明的实施例,其中相同附图标记表示相同部件,在附图中

图1表示根据本发明一个实施例的用户对指示装置的操作;图2a为指示装置的透视图;图2b为指示装置的剖面图;图3a表示基于显示的三维右手直角坐标系统;图3b表示基于图像的二维右手直角坐标系统;图3c表示从基于照相机的坐标系统到基于图像的坐标系统的映射;
图4是指示装置控制过程的操作的流程图;图5a是更详细地表示图4中映射参数建立步骤中的阶段的流程图,其将基于显示的坐标系统中的显示进行转换并映射,从而在基于图像的坐标系统中形成检测图像;图5b是更详细地表示图4中映射参数建立步骤中的阶段的流程图,其将检测图像与照相机图像进行比较,从而计算实际映射参数;图5c是照相机图像的过滤窗口和过滤步长大小的图表;图6是更详细地表示图4中的步骤的流程图,其计算交点和光标位置。
图1表示用户101对指示装置103的操作,其中指示装置103通过电缆105a/105b与通用串行总线(USB)集线器107相连,而通用串行总线集线器107本身与计算机111的USB口109相连。指示装置103(图2a和2b)包括细长形外壳201,该外壳201的配置和尺寸设计成可以握在用户手中。外壳的前端有一窗口203,后端有一后壁205。外壳201容纳纵向定位的照相机207(具有孔径中心209),从而可通过外壳201前端的窗口203进行观察。适当的照相机为Logitech QuickcamVC(USB版),不过任何具有USB口且足够小以设置在外壳内部的数字视频照相机都能满足需要。安装照相机的聚焦机制,从而当物体距离照相机300mm远时,在CCD探测器阵列上产生物体的聚焦图像。发光二极管(LED)210用于指示用户所拍摄的图像焦点对准。本领域技术人员可以毫无困难地执行适当算法来提供这种反馈。
照相机207输出的表示通过窗口203观看到的景色的电信号,经一条USB电缆105a被传输至计算机111。电缆105a从照相机207通过外壳201的后壁205,终止于在使用时固定到USB集线器107的USB连接器。在使用时USB集线器107插入计算机111的USB口109。照相机207从USB接线获得电能。
两个按钮211a/213a位于外壳201每个横向侧面上朝向其前端的位置。两个开关211b/213b被设置在各按钮211a/213a内侧,并且通过按压按钮211a/213a来控制。从各开关211b/213b到电路板215的引线位于外壳201的后端。开关211b/213b的状态经另一USB电缆105b传输给计算机111,该电缆105b从电路板215通过外壳201的后壁205,终止于在使用时与USB集线器107相连的USB连接器。
再次参照图1,计算机111包括中央处理单元(CPU)113和存储系统115。存储系统115包括a)随机存取存储器117;b)保存CPU操作程序和图像数据的第一存储装置119(例如硬盘);c)从可换存储介质123读出数据和/或将数据写入可换存储介质123的第二存储装置121(例如软盘驱动器或CD/DVD驱动器)。
计算机还包括用于与网络连接的网卡125。
CPU113与存储系统115通信。计算机111的输出显示在显示屏123上。在本实施例中显示屏123为LCD屏。不过,可以使用CRT屏取代LCD屏。在这种情况下,如果照相机拍摄帧频太块,则可察觉到与在电视机上捕获CRT时所产生的效果类似的闪动效果。从而必须将拍摄周期延长到一秒的更大部分时间,从而保证CRT输出峰值平滑。
尽管图1表示指示装置103经电缆与计算机111连接,不过显然可使用无线连接如射频或红外连接,使用户101能更加自由的移动。如果用户101正在进行表演,并需要绕舞台移动时,这尤为有用。在这种情况下,照相机将从放置在外壳内的可再充电电池获得电能。通过将指示装置放置在适当的充电座中可对电池再次充电。本领域技术人员很容易对此进行适当变型。可使用不同的直角坐标系统来描述显示屏、照相机和照相机中形成的图像所占有的实际空间。
基于显示的三维右手直角坐标系统(图3a)可通过三个坐标[Xs,Ys,Zs]来定义真实空间中某一点的位置。轴距离的单位是mm。根据基于显示的坐标系统,显示屏123占有平面zs=0的一个矩形部分。xs轴沿显示器的顶边从原点(0,0,0)到右上角(320,0,0)水平延伸,ys轴从显示器的左侧向下延伸到左下角(0,240,0)。从而显示屏充满320×240mm的面积。
显示屏提供VGA(视频图形阵列)(640×480像素)分辨率。下表中所示为显示屏角部(在基于显示的坐标系统中定义的)到显示屏像素(xsp,ysp)的映射
因此,可以得到基于显示的坐标系统与显示屏像素之间的关系为关系式1(xs,ys,zs)(xsp,ysp),其中0≤xsp≤640且0≤ysp≤480用三个坐标[Xc,Yc,Zc]定义基于照相机的三维右手直角坐标系统(图2b中217)。在基于照相机的坐标系统中,照相机镜头系统209的中心处于位置(0,0,0),并且照相机的视线沿zc轴向下朝向zc值增大的方向。yc轴在朝向照相机上部的方向横向延伸,xc轴当从照相机后面观察时横向向左延伸。轴距离的单位是mm。
参照图3c,通过照相机镜头系统209的中心观察时照相机视场中的物点305,在照相机内部的CCD探测器阵列上形成像点307。在基于照相机的坐标系统中物点305处于位置(xco,yco,zco)。像点处于平面zc=-n上,其中n为照相机镜头系统209的中心与CCD探测器阵列之间的距离,单位为mm。
用两个坐标[Xi,Yi]定义基于图像的二维右手直角坐标系统(图3b)。再次指出,轴距离的单位是mm。在基于图像的坐标系统中,原点(0,0)处于CCD探测器阵列的中心。当从阵列后面观察时,xi轴从原点(0,0)水平向左延伸到点(1.96585,0),yi轴从原点(0,0)垂直向上延伸到点(0,1.6084)。从而,CCD探测器阵列充满3.9317×3.2168mm的面积。基于照相机的坐标系统中的(xc,yc,-n)等同于基于图像的坐标系统中的点(xi,yi)。
CCD探测器阵列提供(352×288像素)的分辨率。下表中所示为从阵列角落(在基于图像的坐标系统中所定义的)到图像像素(xip,yip)的映射
因此,可得到基于图像的坐标系统与图像像素之间的关系关系式2(xi,yi)(0.01117[xip-176],0.01117[yip-144])其中0≤xip≤352且0≤yip≤288可通过刚体变换表示基于显示的坐标系统与基于照相机的坐标系统之间的常规关系。刚体变换是缩放、平移和旋转变换的任意组合。
在基于显示的坐标系统中定义的物点305的x-坐标可根据下式转换成基于照相机的坐标系统中定义的点的x坐标xco=m00xs+m01ys+m02zs+m03其中mab为变换系数。
同样,对于y和z坐标yco=m10xs+m11ys+m12zs+m13zco=m20xs+m21ys+m22zs+m23这三个公式可以巧妙地组合成下面的矩阵式关系式3xcoycozco1=Txsyszs1=m00m01m02m03m10m11m12m13m20m21m22m230001xsyszs1=m00xs+m01ys+m02zs+m03m10xs+m11ys+m12zs+m13m20xs+m21ys+m22zs+m231]]>其中T为变换矩阵。
还可以得出照相机视场内物点的基于照相机的坐标与该物点在照相机CCD探测器阵列上形成的图像的基于图像的坐标之间的关系。
以下定义了照相机镜头系统前面的三角形Q(图3c)1.平面yc=0(记住,该平面是与轴yc成直角平分照相机纵向的平面),2.在穿过物点305和照相机镜头系统209中心的直线在平面xc=0上(该平面也在CCD探测器阵列的半高度处平分照相机纵向)的投影,3.平面zc=zc0(与照相机的纵轴成直角并且通过物点305的平面)。
以下定义了处于镜头系统后面的与三角形Q(在其侧面的相对长度上)相似的另一三角形R4.平面yc=0(如上所述),5.上面的线2,6.CCD探测器阵列的平面。
由于三角形Q与R相似,因此基于照相机的坐标系统与基于图像的坐标系统(忽略符号的改变)之间的关系可以表示为ycozco=yin]]>同样
xcozco=xin]]>或者通过重新整理并考虑符号改变关系式4yi=-nycozco]]>关系式5xi=-nxcozco]]>这两个关系式与上面矩阵式结合,形成以下的关系式(xs,ys,0)(xi,yi)将显示器上处于照相机视场内的任意点映射到在CCD探测器阵列上形成的图像中的相应点。
计算机111(图1)在可执行软件的控制下进行操作以执行显示位置计算过程。正如本领域技术人员所知的,用于实现本发明的任何或所有软件可以包含在各种传输和/或存储介质123上,如软盘、CD-ROM或磁带,从而可使用适当传输介质将其加载到计算机111上,或者在计算机网络上将其下载。现在将参照图4中的流程图更详细地描述显示位置计算过程。
显示位置计算过程开始于计算机111获取在显示屏123上产生的显示数据,并将显示数据保存在数据常数存储器121中(步骤401)。然后计算机111获取形成最后的照相机图像的图像数据,并将其保存在数据常数存储器121中(步骤403)。接下来比较刚刚获得的显示数据与照相机数据,以得出变换参数(mab)(步骤405),变换参数表示从基于显示的坐标系统到基于照相机的坐标系统的变换。此后计算形成三维关系的参数(步骤407),其形成了照相机207(从而指示装置103)相对于显示屏123的位置和/或取向。然后计算照相机纵轴与显示屏123表面之间的交点(步骤409)。接下来软件控制计算机111,从而在显示器内在步骤409计算出的交点处添加光标(步骤411)。之后,重复所有上述步骤401-411,以便通过指示装置的移动保持对光标的精确控制。无论当利用标准的计算机鼠标时结果多么理想,都应当尽可能频繁地使用CPU的剩余处理能力重复计算光标位置;即每秒大约40次。
上述过程的一种可选的扩展包括步骤413,在该步骤中,将照相机相对于显示屏的位置和/或取向的历史记录(以预先使用的转换的形式)提供给步骤405,步骤405得出从基于显示的坐标系统到基于照相机的坐标系统的映射参数。这是优选的,因为以良好估计的正确位置和/或取向开始会减少所需的处理。
下面将更详细地描述上述的显示位置计算的算法步骤。
获取显示数据(图4,步骤401)的步骤包括获取一个或多个色带c中显示屏123上所显示的输出像素的数字量化强度级。强度(黑白)图像仅具有一个色带,而RGB(真彩色)图像具有三个色带;即红、绿和蓝。
各色带c中的显示像素强度值是显示强度函数Sc(xsp,ysp)的采样。采样数取决于显示屏123的分辨率。如上所述,显示屏123提供VGA分辨率(640×480像素)。图3a中所示为显示屏像素(306,204)在基于显示的坐标系统中的位置(153,102,0)。绿色带内的显示屏像素(306,204)的显示屏像素强度值为Sg(306,204)的采样值。
所有采样的显示屏像素强度值保存为称为Scsample的二维矩阵。例如,上述Sg(306,204)的采样值保存在Scsample的位置(306,204)处。
显示像素颜色值为显示颜色函数Scolour(xxp,ysp)的采样,其是各色带内显示像素强度值的函数,从而使得Scolour(xsp,ysp)=SR(xsp,ysp)SG(xsp,ysp)SB(xsp,ysp)。所有采样的显示像素颜色值保存为称作Scolour的二维矩阵。例如,显示像素(306,204)的颜色值保持在Scolour中的位置(306,204)处。
获取图像数据(图4,步骤403)的步骤包括获取一个或多个色带c内在照相机CCD探测器阵列上获得的图像像素的数字量化强度级。
各色带c内的图像像素强度值为函数lc(xip,yip)的采样。采样数取决于CCD探测器阵列的分辨率。如上所述,CCD探测器阵列提供(352×288像素)分辨率。图3b中所示为在基于图像的坐标系统中图像像素(90,70)的位置(-0.96062,-0.82658)。红色带内像素(90,70)的图像像素强度值为lr(90,70)的采样值。
所有采样的图像像素强度值保存为称作lcsample的三维矩阵。例如,上述lr(90,70)的采样值保存在lrsample中位置(90,70)处。
图像像素颜色值为图像颜色函数lcolour(xip,yip)的采样,其是各色带内显示像素强度值的函数,从而使得lcolour(xip,yip)=lR(xip,yip)lG(xip,yip)lB(xip,yip)。所有采样的显示像素颜色值保存为称作lcolour的二维矩阵。例如,显示像素(90,70)的颜色值保存在lcolour中位置(90,70)处。
参照图5a和5b,现在将更详细地说明变换参数的得出,其中变换参数表示从基于显示的坐标系统到基于照相机的坐标系统的变换(图4,步骤405)。获取映射参数的目的在于确定最接近地描述基于显示的坐标系统与基于照相机的坐标系统之间关系的变换。
一旦确定了最适宜的变换,则可确定基于显示的坐标系统与基于照相机的坐标系统之间的数学关系。换句话说,可确定出照相机相对于显示屏123的三维位置和照相机轴的取向(图4,步骤407),因为照相机的每个位置和/或取向(除显示屏不可看见的位置以外)都将在照相机207中产生显示屏123的唯一图像。
参照图5a,通过应用一个假设变换T对显示屏123上显示的当前显示图像产生一个检测图像。假定T为将显示图像转变成看似照相机图象的正确的刚体变换,则该检测图像将非常接近于照相机图像应呈现的样子。
对显示屏与照相机之间的关系进行初步假设(步骤501),并用基于显示的坐标系统到基于照相机的坐标系统的刚体变换T的映射点表示。来自于步骤413的有关照相机相对于显示屏123的位置和/或取向的历史信息提供了重要的线索,并且可以用于构造该假设。例如,在初步假设时可利用光标的最近位置。最近的两个位置的“位置改变率”或速率可以改善估计,并且加速度可进一步改善估计。当不存在适当的假设时,可以将垂直于显示屏的缺省关系假定为起点。
从一个可用色带中选择色带c(步骤503)。然后,将矩阵lctest中的所有值都设定为零,并选择显示屏123上显示的像素(0,0)(步骤505)。然后使用关系式1计算映射到该像素的点的坐标(xs,ys),之后使用关系式3将该点首先从基于显示的坐标系统变换到基于照相机的坐标系统(步骤507),随后使用关系式4和5从基于照相机的坐标系统变换到基于图像的坐标系统(步骤509)。此后,使用关系式2将这些基于图像的坐标变换成图像像素位置(xip,yip)(步骤510)。必须将图像像素位置四舍五入成最接近的整数值(步骤511)。然后从矩阵Scsample获得显示强度函数Sc(xsp,ysp)的采样值(步骤513)。将该数值在位置(xip,yip)处加到保存预测图像强度值的矩阵lctest中的移动平均值。由于矩阵lctest的大小与lcsample相同,并因此小于Scsample,所以需要移动平均值。保存在lctest中任何一个位置处的值就可以是多个显示像素的平均值,这些显示像素映射成用该位置表示的图像像素。
执行检测(步骤517和519)以检查在lctest中是否已经考虑了所有显示像素的强度分布。如果结果为否,则对下一显示像素重复步骤506至515。如果考虑了所有像素,则执行另一检测(步骤521)判断是否对所有色带c都估计了lctest。如果结果为否,则对下一色带重复步骤503至519。
可以将如上所述产生并保存在矩阵lctest中的检测图像,与照相机拍摄并保存在矩阵lcsample中的照相机图像进行比较,以形成表示图像之间差异的实际值。根据任何众所周知的误差最小化算法可通过迭代检测使该差异最小。
参照图5b,现在将更详细地描述比较检测图像与照相机图像以便便差异最小的过程(从而确定变换参数)。
首先,将误差设定为零,并且将指针numwindows初始化(例如为零)(步骤530)。然后从可用色带中的一个中选择色带c(步骤531)。现在参照图6c,将真实图像(同样,但没有示出,检测图像)分割成(w×w)像素大小的窗口580。在水平和垂直方向上每个过滤窗口与相邻的过滤窗口重叠s个像素,其中s被称作过滤窗口步长。较小过滤窗口可提供较精确的解,但包含较多的处理。比较好的折衷值为w=128和s=32。
再次参照图5b,将指针u和v初始化(例如为零)。然后计算保存在lcsample中的第一真实图像过滤器中所有像素(w×w)的强度分布之和,并将其保存为变量lcsamplesum(步骤535),以及计算保存在lctest中的第一检测图像过滤窗口中所有像素(w×w)的强度分布之和,并将其保存为变量lctestsum(步骤537)。
用下式计算平方误差的累计值(步骤539)平方误差=平方误差+(lcsamplesum-lctestsum)2然后将指针numwindows加一(步骤541)。在检测执行之后(步骤543和545),判断在误差计算中是否考虑了两个像素图像(照相机图像和检测图像)中所有像素的分布。如果结论为否,则对下一过滤窗口重复步骤535至541。否则进行另一检测来判断是否已经考虑了所有色带c(步骤547)。如果结论为否,则重复步骤531至545。如果已经考虑了所有色带,则由误差和指针numwindows的累计值计算平均误差,从而使均方误差=平方误差/_numwindows然后计算均方根误差(RMS)(步骤551)。RMS误差表示步骤501中估计的变换的两个图像之间的差异。然后根据任何众所周知的误差最小化算法(例如梯度下降),对该RMS误差和表示不同变换T的两个图像之间的偏差的其他RMS误差进行迭代检测,确定哪一个变换T产生最小差异。
当发现最小RMS误差时,将基于显示的坐标系统中的显示图像映射成基于图像的坐标系统中的检测图像的(已知)变换参数(包括变换T),假定为将基于显示的坐标系统中的显示图像映射成基于图像的坐标系统中的照相机图像的(未知)变换参数。由此得出形成照相机207(由此指示装置103)相对显示屏123的位置和/或取向的三维关系(图4,步骤407)。
不过,如果在这一阶段的误差没有被最小化,则根据上述过程改进变换T的假设并重新检验。
在一个优选实施例中,并非如图5a中的步骤501那样首先估计变换T,而是尝试着使显示图像中可见的四个点与照相机图像中的四个相应点匹配。由于四个对应关系式3、4和5简化成8个未知数的8个方程式系统,因此已知四个相应点,就能精确解出要寻找的变换T。
现在将描述匹配相应点并解出变换T的方法。在该优选实施例中,确定均匀颜色的区域,以便在这些区域的边界上寻找相应点。不过,本领域技术人员可知,这种区域仅是照相机图像中可以检测出的一个特征的例子。与显示图像在由照相机捕获时所经历的变换无关的照相机图像中可检测的任何其他特征都是可以使用的。
该方法的第一步是根据像素的颜色值给每个显示像素和每个图像像素确切地指定一个可以确认的区域,其中像素的颜色值为颜色函数在该像素处的一个采样。在该点处需要定义两个附加矩阵分别与显示像素和图像像素有关的Sregion和lregion。这些二维矩阵保存像素被指定的区域的特征(或者保存像素没有被指定到一个区域的标志)。例如,在矩阵Sregion中的位置(34,78)处保存的区域标识R1表明显示像素(34,78)已经被指定到区域R1。另一个例子,矩阵lregion中的位置(10,23)处保存的0(零)表明图像像素(10,23)没有被指定区域。
如下所述可实现将显示像素指定到区域中。将未指定区域的显示像素(xsp,ysp)指定到区域R1,其中R1为该新区域的唯一标识。从而将区域标识R1保存在矩阵Sregion中的位置(xsp,ysp)处。然后从矩阵Scolour读出像素(xsp,ysp)的颜色值。然后如果像素(xsp,ysp)的相邻像素(即像素(xsp-1,ysp),(xsp+1,ysp),(xsp,ysp-1)和(xsp,ysp+1))的颜色值与像素(xsp,ysp)的颜色值相同(或者处于预定阈值限度内),则将这些相邻像素也指定到区域R1(假定它们还没有被指定到另一区域)。如果像素(xsp,ysp)的任何相邻像素的颜色值不符合该标准,则不对其进行指定。继续进行这种未指定相邻像素的检查,并且将它们指定到区域R1或者不对它们进行指定的过程,直到已经找到区域R1的边界为止。然后将未指定像素中的一个(最好是最靠近像素(xsp,ysp)的未指定像素)指定到区域R2,并且重复该过程。最终,每个显示像素都将被确切指定到一个确定区域。
通过计算矩阵Sregion中各区域标识(例如R1,R2,…)的出现次数,可确定图像中的最大区域。然后识别出该最大区域边界上的所有像素。这可以通过识别出被指定到最大区域的所有像素来实现,该最大区域具有至少一个被指定到一个不同区域的相邻像素。然后可计算这些边界像素中每一个的边界曲率(即这些像素位置中每一个的边界斜率的改变率),并且识别出该区域的四角(即曲率高于预定阈值的高曲率点)。结果是一组唯一可识别的点显示图像中最大区域的四角。
通过与上述关于显示像素的相似方法,可实现将图像像素指定到区域并得出照相机图像中最大区域的角部点。
该方法中下一步将显示图像中最大区域的四个角与照相机图像中最大区域的四个相应的角匹配。使用这四个相应点对的像素坐标,通过求解由上面的关系式3、4和5简化得到的方程式,可得出变换T的一个解。
上述优选实施例利用本领域中已知方法进行特征匹配。上面所述的方法是这类方法的一个简单的例子,本领域技术人员可以理解,也可使用更加复杂的方法。
若已知通常情况下,变换T可以将基于显示的坐标系统中的任何点变换成基于照相机的坐标系统中的一个点,则可以将显示屏角部的基于显示的坐标变换成基于照相机的坐标中的位置(图6,步骤601和603)。
然后进行检测(步骤605),以检查显示屏三个角部的坐标是否已经变换到照相机空间中。如果结果为否,则重复步骤601至603。
欧几里得空间中的三个点定义了一个平面,因此一旦显示屏三个角部的坐标已经变换成基于照相机的坐标,则可根据基于照相机的坐标确定显示屏平面zs=0的公式(步骤607)。之后可计算直线xc=0、yc=0(从照相机孔径209的中心
沿zc轴投射的照相机观察轴)与显示屏平面之间的交点(步骤609和图4,步骤409)。由于刚体变换是可逆的,从而该点被转换回基于显示的坐标(步骤611),该坐标确定基于显示的坐标系统中光标应当采取的位置。由于显示屏平面上任意点的zs成分为zs=0,则该坐标将为(xs,ys,0)的形式。此后,使用关系式1将这些基于显示的坐标转换成显示屏像素位置(xsp,ysp)(步骤612)。将显示屏像素位置四舍五入成最接近的整数值(步骤613)。最后,计算机由软件控制而将光标定位在(xsp,ysp,0)(步骤615和图4,步骤411)。
这就完成了显示位置计算算法的一次交互作用,反复进行这一算法,通过移动指示装置保持对光标的精确控制。
再次参照图1,用户101通过以下方式点击指示装置103使其纵轴与显示屏123相交。然后用户101通过移动指示装置103控制显示屏上显示出的光标,从而使其指向显示屏上用户希望光标所处的部位。用户101可使用按钮211a和213a影响显示屏123上显示出的计算机111的输出。由此,在用户与计算机之间形成界面。例如,用户可以点击显示器上的不同图标。可以高亮显示文档中的特定文本。甚至可以通过在下面划线而改变文本的外观,使其加粗或者使其成斜体。可以启动下拉菜单以便运行不同程序或查看文件。可以改变数字滑动显示中的滑块。可以点击因特网或企业内部互联网文件中的超级链接。本领域技术人员显然可知,该指示装置的用户还可以进行更多动作。
根据上面的描述显然可以得出,在不偏离本发明的条件下可对上述实施例进行多种变型和改变。这些变型和改变包括对于1024×768、24位真彩色显示屏图像,所占用的存储器将近2.4兆字节。对所有这些数据的处理是非常复杂的。为了优化显示屏图像的处理,则不能在显示位置计算算法的每个周期中都进行刷新。最近一个周期的预处理数据常常就足够了,这就避免了处理大量采样所需的复杂计算。此外,应该注意到,照相机所拍摄的图像的分辨率远小于显示屏分辨率。这种差异允许将显示屏图像数据预先处理成降低的分辨率,以便该算法中以后处理的采样数最小,而基本上没有精度的损失。这种预处理可通过任何公知技术如双线性插值来进行。为了进一步降低处理时间,当没有指向显示屏时可以关闭指示装置。这可以通过在指示装置外壳上添加另一按钮来实现,当需要指示装置进行操作时该按钮必须按下,并可以释放该按钮以使指示装置关闭。
另一种降低处理要求的方法是对屏幕采样,而非采用整个屏幕的信息。该方法同时应用于检测图像的产生(即,仅从显示器采集可用像素的一个子集,并将它们映射到检测图像),以及与真正图像相关的检测(仅尝试与像素的一个子集相关,因为其他像素是空像素——即没有被映射到第一空间中)。
如果已知指示装置相对屏幕的非常基本的位置和取向的变换,则在操作开始阶段,指示装置可以处于该位置,以便提供给该计算方法的变换以精确的初步假设,从而进一步降低处理要求。例如,该校准位置可以垂直于300mm远处该显示器的死点。在其他实施例中,为了有助于校准,可将已知的人为和可识别特征(例如已知颜色的已知形状)引入显示器中。当使用指示装置点击复杂显示数据,如电视图片时,这尤为有用。
虽然在上述实施例中,使用指示装置以二维方式控制光标,但是由于照相机相对显示屏的三维位置和照相机轴的取向是已知的,所以可产生三维指示。可以这样操纵三维指示使指示装置的每个运动都能描绘成三维模型,以便控制三维界面,如计算机辅助设计(CAD)程序包中的三维界面。
尽管在上述实施例中,光标处于计算出的显示位置,不过也可以不包括光标。在例如计算机辅助设计(CAD)程序包中可出现这种情形,即用户在显示器上点击该装置,并移动该装置,以便改变被设计/绘制的物体的透视图。例如,用户可能希望从下面观察物体,并通过向下移动装置,可以将视图旋转成所需的视图。
尽管在上述实施例中计算了指示装置相对于显示器的位置和取向,不过也可以仅计算位置或取向。在计算位置时,指示装置使用者可以保持该装置一直垂直于显示器,从而使取向不发生改变。仅位置可以改变。在计算取向时,用户可以保持该装置处于同一位置,但是仅改变点击方向,从而仅改变其取向。
虽然在上述实施例中使用了指示装置相对于显示器的位置和取向控制光标,不过也可以仅使用位置或取向。例如,在CAD程序包的情况下,当用户希望画出直线时,通常他们需要做的就是点击该直线的两个端点。装置使用者可以点击一个端点,并移动该装置,以便将光标移动到另一端点,并再次点击。在这种情况下,与装置的取向无关。上述涉及到改变被设计/绘制的物体透视图的情形是只有装置的取向有关的情形。
虽然在上述实施例中是通过LCD监视器产生显示,不过也可以由LCD或者数字光处理(DLP)投影仪产生显示,并将该显示投射到大投影屏甚至适当的墙面上。这在用户需要点击大量观众观看的显示器时尤为有用。当用户点击屏幕或墙壁上的装置时照相机依然可以拍摄显示器的图像,并且可使用通过这种方法获取的图像数据,连同机器(连接到投影仪的)产生的显示数据来计算交点。
虽然在上述实施例中,使用指示装置控制机器,不过也可以只使用其点击显示器上的物体。在这种情况下,无需激活装置。这在用户向一个观众提供显示的情形中也适用。
虽然在上述实施例中使用的是数字视频照相机,不过也可以使用拍摄显示器快象的照相机。图像的快象可提供图像数据,图像数据与显示数据一起可用于图像配准。应该尽可能地使用任何剩余处理能力用新的快象对快象进行更新。
尽管在上述实施例中照相机是一种手动、定焦照相机,不过也可以使用包含自动聚焦机制的照相机。从而可以放宽操作距离条件,因为照相机总要保持在适当焦点。在定焦镜头的情形中,如果提供某些方法将光学系统的放大率考虑到算法中,则也可以放宽该距离条件。
尽管在上述实施例中,指示装置仅使用了一个照相机,不过也可使用不止一个照相机。通过这种方法可单独地识别各照相机的轴与屏幕的交点,而且将所有照相机的位置和取向的组合作为控制输入。例如,可以制造一个每个手指端部都具有一个照相机的手套。从而可使用自然状态的身体控制,例如抓和丢,使用五个手指点击屏幕。
在可选的实施例中,指示装置可以包括一些计算装置(CPU,存储器和存储装置类),从而可由指示装置内部的计算装置执行某些或全部处理要求。例如,指示装置可以与手持式计算装置如个人数字助理(PDA)相结合。
权利要求
1.一种显示位置计算装置,包括显示产生器,其用于根据机器产生的显示数据产生显示;指示装置,其装载有用于产生图像数据的照相机,该图像数据代表照相机视场内的至少一部分场景,该部分场景包括至少一部分显示的图像;计算装置,该计算装置用于接收所述图像数据;接收所述显示数据;根据所述图像数据和所述显示数据计算所述指示装置相对于所述显示的位置和/或取向;根据所计算出的位置和/或取向计算显示位置。
2.根据权利要求1所述的显示位置计算装置,其中所述指示装置为细长形,并且其中所述显示位置为所述指示装置的纵轴与所述显示的交点。
3.根据权利要求1或2所述的显示位置计算装置,其中在所述显示位置处的所述显示中包含光标。
4.根据权利要求3所述的显示位置计算装置,其中所述光标的位置根据所计算的位置和/或取向而改变。
5.一种用于在用户与机器之间提供界面的界面结构,包括根据权利要求2到4中任何一个所述的显示位置计算装置;其中所述计算装置还用于根据光标的位置控制所述机器。
6.根据权利要求5所述的界面结构,其中所述机器包括具有处理器的计算机,其中所述计算装置包括所述处理器。
7.根据权利要求5所述的界面结构。其中所述指示装置还装载有具有处理器的计算机,并且其中所述计算装置包括所述处理器。
8.根据权利要求5所述的界面结构,其中所述机器包括具有第一处理器的第一计算机,其中所述指示装置还装载有具有第二处理器的第二计算机,其中所述计算装置包括所述第一处理器和所述第二处理器。
9.根据权利要求5至8中任何一个所述的界面结构,其中所述指示装置还包括用于控制所述机器的至少一个激活装置。
10.根据权利要求5至9中任何一个所述的界面结构,其中所述显示产生器包括投影仪。
11.根据权利要求5至10中任何一个所述的界面结构,其中所述照相机为数字视频照相机。
12.根据权利要求5至11中任何一个所述的界面结构,其中所述照相机为定焦照相机。
13.根据权利要求12所述的界面结构,还包括用于指示所述照相机拍摄的图像焦点对准的指示器。
14.根据权利要求5至13中任何一个所述的界面结构,其中所述照相机与所述指示装置具有固定的空间关系。
15.一种计算显示位置的方法,所述方法包括步骤i.根据所述机器产生的显示数据产生显示;ii.获取表示指示装置装载的照相机视场内的至少一部分场景的图像数据,其中所述显示的至少一部分包含在所述视场内;iii.根据所述图像数据和所述显示数据计算所述指示装置相对于所述显示的位置和/或取向;iv.根据所计算出的位置和/或取向计算显示位置。
16.根据权利要求15所述的方法,还包括在所述显示位置处的所述显示中产生光标的步骤。
17.根据权利要求16所述的方法,其中所述光标的位置随所计算出的位置和/或取向而改变。
18.根据权利要求17所述的方法,其中所述指示装置为细长形,其中所述显示位置为所述指示装置的纵轴与所述显示的交点。
19.根据权利要求15至18中任何一个所述的方法,还包括保存表示所述指示装置相对于所述显示的位置和/或取向的历史记录的数据的步骤,其中所述计算步骤(iii)还包括将所述数据考虑在内。
20.一种显示位置计算装置,包括存储介质,该存储介质中记录有处理器可读代码,可通过处理该可读代码产生用户与机器之间的界面,所述代码包括显示数据获取代码,其通过处理可获得代表显示的显示数据;图像数据获取代码,其通过处理可由装载有照相机的指示装置获得表示所述照相机视场内至少一部分场景的图像数据;位置/取向计算代码,其通过处理可从所述显示数据和所述图像数据计算所述指示装置相对于所述显示的位置和/或取向;显示位置计算代码,其通过处理可根据所计算出的位置和/或取向计算显示位置。
21.一种数字数据载体,其载有可由处理装置执行的指令程序,从而执行权利要求15至19中任何一个所述的方法步骤。
全文摘要
本发明披露了显示位置计算装置及计算显示位置的方法。用户常常在显示器上指定一点来与机器进行通信,因此需要能计算显示器上用户指定的位置。显示产生器(123)用于根据机器(111)产生的显示数据产生显示。照相机装载在指示装置(103)中,用于产生代表照相机视场内至少一部分场景的图像数据(该部分包括显示的至少一部分)。计算装置(111,113,115)用于接收图像数据和显示数据,并根据这些数据组计算指示装置(103)相对于显示的位置和/或取向。从而可根据计算出的位置和/或取向计算显示位置。
文档编号G06F3/042GK1606754SQ02825676
公开日2005年4月13日 申请日期2002年12月20日 优先权日2001年12月21日
发明者塞芬·理查德·赫伊勒 申请人:英国电讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1