投影映射中几何变形校正的系统和方法与流程

文档序号:13577753阅读:525来源:国知局
投影映射中几何变形校正的系统和方法与流程

本发明主要涉及投影仪领域,尤其涉及一种在投影映射中进行几何变形校正的系统和方法。



背景技术:

投影映射是一种投影技术,利用专业软件和其他技术使要投影的图像发生变形与融合,使其适应形状不规则的“屏幕”,例如建筑物表面、室内空间及自然景观。几乎任何表面都可经修饰而成为图像的动态视频显示器,该图像可以为观众转化和/或提高和/或增强“现实感”。在产生上述增强的现实体验时,最重要的因素是现实世界对象的准确模型,因为该模型与图像所投射至的对象之间的任何不准确,都可能导致投射图像时发生错误,这至少会损害观众体验。校正上述不准确的一个解决方案是,对用于投影映射的每个投影仪的每个输出通道都进行手动变形,但每次投影仪与现实世界对象之间的对齐发生变化时,都需重复该解决方案。



技术实现要素:

一般而言,本发明主要涉及在投影映射中进行几何变形校正的一种系统和方法。具体来说,该系统包括一个或一个以上的投影仪,可存储现实世界对象的网格模型,将图像投射到该现实世界对象上,所述现实世界对象的网格模型用于配置投影映射的图像。但是,当所述网格模型与所述现实世界对象未对齐时,可将低分辨率网格应用到该高分辨率网格模型中,移动所述低分辨率网格中的点和对应的高分辨率网格模型中的点,使得所述网格模型与所述现实世界对象相对齐,储存更新后的高分辨率网格模型,用于投射到其所代表的现实世界对象上,特定地用于投影映射中的几何变形校正。

本发明中,可将元件描述为“配置为”完成一个或一个以上的功能,或为上述功能而“配置”。一般来讲,配置为完成某功能或为了某功能而配置的元件是指该元件能够完成该功能,或适合完成该功能,或经调整以完成该功能,或可操作该元件完成该功能,或能以其他方式完成该功能。

应当理解的是,本发明中,“x、y和z中的至少一个”与“x、y和z中的一个或一个以上的”的表达,可以解释为只有x、只有y、只有z或者x、y、z中的两个或多个(例如xyz、xy、yz、xz等)。任何出现的“至少一个……”和“一个或一个以上的……”的表达,都适用类似的逻辑。

本发明的一方面公开了一种在投影映射中几何变形校正的系统,所述系统包括:一个或一个以上的投影仪,配置为将投影图像投射到现实世界对象上;以及控制器,配置为:在网格模型的至少一个区域中,应用低分辨率网格,所述网格模型的至少一个区域与所述现实世界对象的对应区域是未对齐的,所述低分辨率网格的分辨率比所述网格模型的分辨率低,和/或所述低分辨率网格的点密度比所述网格模型的点密度小;移动所述低分辨率网格中的一个或一个以上的低分辨率点;相应地,移动网格模型中对应的一个或一个以上的高分辨率点,以此来对齐所述网格模型的区域与所述现实世界对象的对应区域;存储更新的网格模型,所述更新的网格模型是基于移动后的所述网格模型的高分辨率点而产生,其中所述网格模型的高分辨率点是随对应的所述低分辨率网格的低分辨率点的移动而移动的;以及控制所述一个或一个以上的投影仪,将对应于所述更新的网格模型的投影图像,投射到现实世界对象上。

所述系统还可以包括输入设备,所述控制器通过由输入设备识别出的区域,来确定与所述现实世界对象的对应区域未对齐的所述网格模型的区域。

所述低分辨率网格可基于选择的所述网格模型中的高分辨率点的集合而手动生成,在所述选择的高分辨率点集合的重心新建一个低分辨率点,且所述新建低分辨率点会影响所述高分辨率点集合的选择。

所述控制器还可配置为,将所述网格模型和/或所述低分辨率网格,与代表所述现实世界对象的点云进行比对,以此来确定与所述现实世界对象的对应区域未对齐的所述网格模型的区域。

所述控制器还可配置为,通过如下方法自动确定与所述现实世界对象的对应区域未对齐的所述网格模型的区域:计算所述低分辨率网格中的各个低分辨率点,和代表所述现实世界对象的点云中的各个相应最近点之间的各个距离,和/或计算所述网格模型中的各个高分辨率点,和代表所述现实世界对象的点云中的各个相应最近点之间的各个距离;当判断所述距离大于阈值时,则确定所述网格模型的区域与所述现实世界对象的对应区域未对齐。

所述控制器还可配置为,在所述网格模型的全部区域,应用所述低分辨率网格,将所述低分辨率网格与代表所述现实世界对象的点云进行比对,以此来确定与所述现实世界对象的对应区域未对齐的所述网格模型的区域。

所述控制器还可配置为,自动移动所述低分辨率网格中一个或一个以上的低分辨率点到各条线的交叉点,直至所述网格模型的区域和代表所述现实世界对象的点云的对应区域对齐为止,所述各条线是由所述低分辨率网格的各个顶点的法线和由代表所述现实世界对象的点云所生成的网格确定的。

所述控制器还可配置为,移动所述低分辨率网格中一个或一个以上的低分辨率点,直至所述网格模型的区域和和代表所述现实世界对象的点云的对应区域对齐为止。

所述控制器还可配置为,在移动所述低分辨率网格中一个或一个以上的低分辨率点时,控制所述一个或一个以上的投影仪,将与一个或一个以上的所述更新的网格模型一一对应的投影图像,投射到所述现实世界对象上。

本发明的另一方面公开了一种在投影映射中几何变形校正的方法:利用控制器,在网格模型的至少一个区域中,应用低分辨率网格,所述网格模型的至少一个区域与现实世界对象的对应区域是未对齐的,所述低分辨率网格的分辨率比所述网格模型的分辨率低,和/或所述低分辨率网格的点密度比所述网格模型的点密度小;利用所述控制器,移动所述低分辨率网格中一个或一个以上的低分辨率点;相应地,移动所述网格模型中一个或一个以上对应的高分辨率点,以此对齐所述网格模型的区域和现实世界对象的对应区域;利用所述控制器,存储更新的网格模型于存储器中,所述更新的网格模型是基于移动后的所述网格模型的高分辨率点而产生,其中所述网格模型的高分辨率点是随对应的所述低分辨率网格的低分辨率点的移动而移动的;以及利用所述控制器,控制一个或一个以上的投影仪,将对应于所述更新的网格模型的投影图像,投射到现实世界对象上。

所述方法还可以包括通过由输入设备识别出的区域,以此来确定与所述现实世界对象的对应区域未对齐的所述网格模型的区域。

所述方法还可以包括通过选择的所述网格模型中的高分辨率点的集合来手动生成所述低分辨率网格,在所述选择的高分辨率点集合的重心新建一个低分辨率点,且所述新建低分辨率点会影响所述高分辨率点集合的选择。

所述方法还可以包括将所述网格模型和/或所述低分辨率网格,与代表所述现实世界对象的点云进行比对,以此来确定与所述现实世界对象的对应区域未对齐的所述网格模型的区域。

所述方法还可以包括通过如下方法自动确定与所述现实世界对象的对应区域未对齐的所述网格模型的区域:计算所述低分辨率网格中的各个低分辨率点,和代表所述现实世界对象的点云中的各个相应最近点之间的各个距离,和/或计算所述网格模型中的各个高分辨率点,和代表所述现实世界对象的点云中的各个相应最近点之间的各个距离;当判断所述距离大于阈值时,则确定所述网格模型的区域与所述现实世界对象的对应区域未对齐。

所述方法还可以包括在所述网格模型的全部区域,应用所述低分辨率网格,将所述低分辨率网格与代表所述现实世界对象的点云进行比对,以此来确定与所述现实世界对象的对应区域未对齐的所述网格模型的区域。

所述方法还可以包括自动移动所述低分辨率网格中一个或一个以上的低分辨率点到各条线的交叉点,直至所述网格模型的区域和代表所述现实世界对象的点云的对应区域对齐为止,所述各条线是由所述低分辨率网格的各个顶点的法线和由代表所述现实世界对象的点云所生成的网格来确定的。

所述方法还可以包括手动移动所述低分辨率网格中一个或一个以上的低分辨率点,直至所述网格模型的区域和和代表所述现实世界对象的点云的对应区域对齐为止。

所述方法还可以包括在移动所述低分辨率网格中一个或一个以上的低分辨率点时,控制所述一个或一个以上投影仪,将与一个或一个以上所述更新的网格模型一一对应的投影图像,投射到所述现实世界对象上。

本发明的另一方面公开了一种存储计算机程序的非暂时的计算机可读媒介,所述计算机可读媒介包括指令,系统的至少一个控制器执行所述指令,可使所述系统执行投影映射中几何变形校正的方法,所述方法包括:在网格模型的至少一个区域中,应用低分辨率网格,所述网格模型的至少一个区域与现实世界对象的对应区域是未对齐的,所述低分辨率网格的分辨率比所述网格模型的分辨率低,和/或所述低分辨率网格的点密度比所述网格模型的点密度小;移动所述低分辨率网格中一个或一个以上的低分辨率点;相应地,移动所述网格模型中一个或一个以上对应的高分辨率点,以此对齐所述网格模型的区域和现实世界对象的对应区域;存储更新的网格模型于存储器中,所述更新的网格模型是基于移动后的所述网格模型的高分辨率点而产生,其中所述网格模型的高分辨率点是随对应的所述低分辨率网格的低分辨率点的移动而移动的;以及控制一个或一个以上的投影仪,将对应于所述更新的网格模型的投影图像,投射到现实世界对象上。上述方式改变了基础的网格模型,因此每次当投影仪和/或现实世界对象之间的位置变化时,可以使用自动将图像投射到现实世界对象上的方法,而无需手动变形图像来弥补所述位置变化导致的未对齐和/不准确的问题。

附图说明

为了更好地理解本发明描述的各种实施例,并更清楚地展示出如何实施这些实施例,在此仅通过示例的方式描述附图,附图中:

图1是根据一些非限制性实施例所示的一种投影系统;

图2是根据一些非限制性实施例所示的一种在投影映射中进行几何变形校正的系统,该系统可用于图1中的系统;

图3是根据一些非限制性实施例所示的一种在投影映射中进行几何变形校正的方法的流程图;

图4是根据一些非限制性实施例所示的现实世界对象的不准确的网格模型;

图5是根据一些非限制性实施例所示的现实世界对象;

图6是根据一些非限制性实施例所示的图2中的系统,所述系统使用现实世界对象的不准确的网格模型投射图像到所述现实世界对象上;

图7是根据一些非限制性实施例所示的在所述网格模型的至少一个区域中,应用至所述不准确的网格模型的低分辨率网格,所述网格模型的区域与所述现实世界对象的对应区域是未对齐的;

图8是根据一些非限制性实施例所示的代表现实世界对象的示例点云;

图9是根据一些非限制性实施例所示的所述低分辨率网格的一部分与所述点云的一部分的比对,旨在确定所述不准确的网格模型与所述现实世界对象的对应区域未对齐的区域;

图10是根据一些非限制性实施例所示的预备移动所述低分辨率网格的一个或一个以上的点时,网格模型的视图;

图11是根据一些非限制性实施例所示的移动所述低分辨率网格的一个或一个以上的点时,更新的网格模型的视图;

图12是根据一些非限制性实施例所示的进一步移动所述低分辨率网格的一个或一个以上的点直至更新的网格模型与现实世界对象对齐时,更新的网格模型的视图;

图13是根据一些非限制性实施例所示的在预备移动所述低分辨率网格的一个或一个以上的点时,根据图10中的网格模型投射图像到现实世界对象的对应视图;

图14是根据一些非限制性实施例所示的在移动所述低分辨率网格的一个或一个以上的点时,根据图11中更新的网格模型投射图像到现实世界对象的对应视图;

图15是根据一些非限制性实施例所示的在进一步移动所述低分辨率网格的一个或一个以上的点直至更新的网格模型与现实世界对象对齐时,根据图12中更新的网格模型投射图像到现实世界对象的对应视图;

图16是根据一些非限制性实施例所示的图2中的系统,所述系统使用所述现实世界对象的准确的更新网格模型投射图像到所述现实世界对象上。

具体实施方式

图1是根据一些非限制性实施例所示的一种投影系统100(下文中称为系统100)。系统100包括:3d(“三维”)渲染设备101(下文中称为设备101);内容播放器103;对准系统105;以及投影仪107。通常,设备101与内容播放器103和对准系统105连通,内容播放器103与投影仪107连通。如图1所示,设备101和内容播放器103可以合并入一个设备108,但是在其他实施例中,设备101和内容播放器103也可以是单独的设备。对准系统105配置为生成位姿数据109p,并将位姿数据109p传送给设备101,后文对此有详细描述;其中位姿数据109p包括对应于投影仪107的虚拟摄像头的特征数据,所述虚拟摄像头的特征数据为虚拟位置、虚拟方向和虚拟镜头。设备101可基于位姿数据109p生成渲染图像数据110,例如设备101可对投影仪107所投影的现有图像数据(图中未描述)进行渲染。图1中,连接各组件的实线反映了组件之间的图像流和/或视频流,而将对准系统105连接至设备101和/或设备108的短虚线则反映了设备之间的位姿数据109p和对象数据109o的数据流。位姿数据109p也可称作校准数据,因为位姿数据109p表示对系统100的校准,该校准是为了说明投影仪107的位置和/或接收投影图像的对象的位置。对象数据109o通常包括在虚拟三维环境中,对象的虚拟模型相对于虚拟原点的虚拟位置和虚拟方向,所述虚拟三维环境对应于对象所处的物理三维环境。

当设备101和内容播放器103是单独的设备时,设备101将图像数据110传送给内容播放器103,然后内容播放器103通过生成适合投影仪107进行处理和投影的投影数据112,来处理和/或“播放”图像数据110。例如,图像数据110可以包括但不限于avi文件、一系列jpg文件、png文件等。投影数据112可以包括但不限于hdmi数据、vga数据和/或视频传输数据。当设备101和内容播放器103合并入设备108时,设备108可对投影数据112(例如视频数据)进行实时渲染,而不生成图像数据110。无论如何,投影数据112是通过内容播放器103传送至投影仪107的,且用于控制投影仪107基于此来投射图像,例如投射到三维对象上。

设备101通常包括图像生成器和/或渲染器,例如计算设备、服务器等,配置为生成和/或渲染图像为图像数据110。所述图像数据110可以包括但不限于静态图像、视频等。此外,尽管图中未描述,但设备101能连通和/或包括图像生成器和/或存储器,所述图像生成器和/或储存器用于生成和/或渲染图像110。或者,设备101可利用算法等方式生成图像数据110以生成图像。

内容播放器103包括配置为“播放”和/或渲染图像数据110的播放器;例如,当图像数据110包括视频数据时,内容播放器103配置为通过输出投影仪107所要投射的投影数据112,来播放和/或渲染视频数据。因此,内容播放器103可以包括但不限于视频播放器、视频处理设备、计算设备、服务器等。但是,如上所述,当设备101和内容播放器103合并入设备108时,可省略渲染图像数据110的步骤,设备108在不生成图像数据110的情况下对投影数据112进行渲染。

对准系统105包括投影仪(包括投影仪107)、摄像头(图1中未描述)和计算设备中任意合适的组合,所述计算设备配置为:自动确定投影仪107的参数;和/或自动确定接收投影图像的三维对象的位置和方向。

投影仪107包括配置为对投影数据112进行投影的投影仪,包括但不限于数字投影仪、电影放映机、硅基液晶(liquidcrystalonsilicon,lcos)投影仪、数字多镜设备(digitalmultimirrordevice,dmd)投影仪等。此外,尽管图中只有一个投影仪107,但系统100可以包括多个投影仪107,每个投影仪107都配置为对投影数据各自进行投影,所述投影数据可以是较大拼接图像的各部分。

如图1所示,系统100还包括一个或一个以上的2d(“渲染”)变形设备和/或模块113,例如在投影仪107中(尽管这样的变形设备可存在于内容播放器中和/或以独立设备的形式存在)。当存在变形模块113时,可通过变形模块113使投影数据112变形,例如通过移动和/或调整投影数据112中的像素来调整投影数据112,使其适应投影仪107将其投影到三维对象上。但是,由于对准系统105可确定位姿数据109p并将其传送至设备101(和/或设备108),可以不使用或选择性使用变形模块113,和/或从系统100中去掉变形模块113。事实上,变形模块113的使用描述了如何根据现有技术来处理图像,可凭借对准系统105向设备101(和/或设备108)提供位姿数据109p而替代变形模块113。但是,在一些实施例中,例如当用于生成图像的对象的虚拟模型与现实世界对象并未精确匹配时,可使用变形模块113对投影到现实世界对象上的图像进行微调。

尽管设备101、内容播放器103、对准系统105和投影仪107均被描述为单独的组件,但在其他实施例中,设备101、内容播放器103、对准系统105和投影仪107中的一个或一个以上的部分可应用在同一个设备(例如设备108)中,和/或可在各组件之间共享处理资源。例如,尽管图中未描述,系统100可以包括一个或一个以上的处理器、一个或一个以上的存储器以及一个或一个以上的通讯接口,例如设备101、内容播放器103、对准系统105和投影仪107可各自使用一套处理器、存储器及通讯接口,和/或共享一套处理器、存储器及通讯接口。事实上,通常系统100中描述的组件表示投影系统中的不同功能:可自动确定投影仪107的参数,并在投影仪107移动时自动调整上述参数;可自动确定接收投影图像的三维对象的位置和方向(并在该三维对象移动时自动调整上述位置和方向);以及调整图像,从而使其适应投影到该三维对象上。

图2所示的是在投影映射中进行几何变形校正的一种系统200。如有需要,系统100中的组件可包括系统200中的组件。系统200也可以独立于系统100。但是,在一些实施例中,系统100中生成的数据可以在系统200中使用,例如下文描述的代表现实世界对象的点云,所述点云是通过系统200的摄像头和投影仪而生成的。

系统200包括控制器201、两个投影仪207以及两个摄像头214,每个投影仪207和每个摄像头214的安装都与三维环境215(下文中称为环境215)有关,摄像头214的视野与投影仪207投影到环境215上的投影区域至少部分重合。具体来讲,安装投影仪207是为了将图像投射到位于环境215中的现实世界对象216。但摄像头214是可选的,也可以成为对准系统105的组件。而且,投影仪207也可以成为对准系统105的组件。事实上,投影仪107可以包括一个或一个以上的投影仪207,对准系统105可以包括控制器201、投影仪207和摄像头214,并且设备101和内容播放器103中的任何一个都可以包含控制器201的至少一部分,例如当设备101、内容播放器103及对准系统105之间可共享资源时。

尽管图中只有两个投影仪207,但系统200可以包括两个以上的投影仪207,也可以只包括一个投影仪207。类似地,尽管图中只有两个摄像头214,但系统200可以包括两个以上的摄像头214,也可以包括一个摄像头214或不包括摄像头。但是当对准系统105使用至少两个摄像头214时,所述至少两个摄像头214的安装位置应使其可为环境215提供至少一个立体图。

与投影仪107相似,每个投影仪207包括配置为对投影数据进行投影的投影仪,包括但不限于数字投影仪、电影放映机、硅基液晶投影仪、数字多镜设备投影仪等。具体来说,一个或一个以上的投影仪207可配置为投射到现实世界对象300上。当存在一个以上的投影仪207时,投影仪207可以分别投影图像,所述图像可以是较大拼接图像的各部分。

当存在摄像头214时,每个摄像头214可以包括:数字摄像头和/或电荷耦合器件(chargecoupleddevice,ccd)等。

如图2所示,环境215包括三维对象和/或现实世界对象300(下文中称为对象300),可将对象216选择性放置在平整表面217上。尽管对象216在图中被描述为几何和/或直线方块,且包括表面平整大小不同的两个相邻立方体,在其他实施例中,对象216可以包括:弯曲的表面和/或不规则的表面等。对象216可以包括但不限于屏幕等。事实上,对象216可以包括任何有一定厚度的对象(和/或多个对象),利用一个或一个以上的投影仪207将图像投射到对象216上,例如使用投影映射的方法。

控制器201可以包括任何合适的计算设备,包括但不限于图形处理器(gpu)、图形处理设备、图像处理引擎、视频处理设备、个人计算机(pc)、服务器等。控制器201通常包括存储器222以及通讯接口224(下文中称为接口224),并且可以选择性包括显示设备226和至少一个输入设备228,上述显示设备226和输入设备228可设于控制器201的外部,通过接口224与控制器201连通。

控制器201还包括一个或一个以上的处理器,包括但不限于一个或一个以上的cpu,和/或一个或一个以上的处理单元,和/或一个或一个以上的gpu;无论如何,控制器201包含硬件元件和/或硬件处理器。事实上,在一些实施例中,控制器201可以包括专用集成电路(application-specificintegratedcircuit,asic)和/或现场可编程门阵列(field-programmablegatearray,fpga),上述asic和fpga可特定配置为实现控制器201的功能。

换言之,可对控制器201做特定调整,用于投影映射中的几何变形校正。因此,优选的控制器201不是通用的计算设备,而是可特定地配置为在投影映射中实现特定几何变形校正功能的设备。例如,控制器201可以特定地包括可用计算机执行的引擎,所述引擎配置为实现投影映射中的特定几何变形校正功能。

存储器222可以包括非易失性存储单元(例如电可擦写可编程只读存储器(erasableelectronicprogrammablereadonlymemory,eeprom)、闪速存储器)和易失性存储器(例如随机存取存储器(randomaccessmemory,ram))。此处描述的实现控制器201的功能性教学的编程指令,通常可在存储器222中持续保留,并为控制器201使用,在执行上述编程指令时合理利用易失性存储器。本领域技术人员应认识到,存储器222只是示例性的计算机可读媒介,可储存由控制器201执行的编程指令。此外,存储器222还是存储单元和/或存储模块和/或非易失性存储器的示例。

存储器222通常可基于一些方法或步骤储存应用230和现实世界对象216的网格模型240,例如通过系统100和/或系统200的管理员为存储器222提供。在下文中将对网格模型240进行更详细地描述。

存储器222可进一步储存一个或一个以上的图像250(下文中称为图像250),所述图像250将通过投影仪207投射到现实世界对象216上。具体来说,图像250可以包括可在投影仪207中分区投影的图像,所述图像以拼接投影的方式投影到对象216的不同表面上,例如根据网格模型240,通过使图像250变形以将其投射到对象216的不同表面上。换言之,由于网格模型240可表示对象300,控制器201(和/或系统100的组件)可处理图像250和网格模型240(以及在某些实施例中的位姿数据109p与对象数据109o),从而确定图像250中要投射到对象216的对应表面上的部分。但是,如果网格模型240并未准确表示对象300,投影映射就会不准确。

因此,当应用230由控制器201处理时,可使得控制器201:在网格模型240的至少一个区域中,应用低分辨率网格,所述网格模型240的区域与所述现实世界对象的对应区域是未对齐的,所述低分辨率网格的分辨率比所述网格模型的分辨率低,和/或所述低分辨率网格的点密度比所述网格模型的点密度小;移动所述低分辨率网格中的一个或一个以上的低分辨率点;相应地,移动所述网格模型中一个或一个以上的对应的高分辨率点,所述高分辨率点包括位于所述一个或一个以上的低分辨率点周边的任意高分辨率点,从而对齐所述网格模型240的区域和所述现实世界对象216的对应区域;储存更新的网格模型于所述存储器222中,所述更新的网格模型是基于随所述低分辨率网格中的低分辨率点移动的所述网格模型240的对应高分辨率点而产生;以及,控制所述一个或一个以上的投影仪207,将对应于所述更新的网格模型的投影图像,投射到所述现实世界对象216上。术语“低分辨率”和“低点密度”可以交替使用,但是术语“低分辨率”也可以指该低分辨率网格的三角形和/或多边形比网格模型240的少,例如在下文中更详细描述的,当低分辨率网格和网格模型240都由三角形网格和/或多边形网格表示时。

在一些实施例中,当应用230由控制器201处理时,可以进一步使得控制器201:通过将网格模型240和/或低分辨率网格(如下所述)与表示现实世界对象216的点云进行比对,从而确定网格240中与现实世界对象216的对应区域未对齐的区域。控制器201可利用二维投影和相对于三维环境的至少两个摄像头214的给定位置,来生成代表三维环境215的点云。

具体来说,在一些实施例中,当应用230由控制器201处理时,可以进一步使得控制器201:通过计算低分辨率网格的各个低分辨率点,到代表现实世界对象216的点云中的各个相应最近点之间的各个距离,从而自动确定网格240中与现实世界对象216的对应区域未对齐的区域。

或者,在其他实施例中,当应用230由控制器201处理时,可以进一步使得控制器201:通过计算网格模型240中的各个高分辨率点,到表示现实世界对象216的点云中的相应最近点之间的各个距离,从而自动确定网格240中与现实世界对象216的对应区域未对齐的区域。

但是,在其他实施例中,当应用230由控制器201处理时,可以进一步使得控制器201:通过接收由输入设备228识别出的未对齐区域,来确定与所述现实世界对象216的对应区域未对齐的所述网格模型240的区域。

具体来说,在一些实施例中,当应用230由控制器201处理时,可以进一步使得控制器:在移动低分辨率网格中的一个或一个以上的低分辨率点时,控制一个或一个以上的投影仪207,将与一个或一个以上的更新的网格模型一一对应的图像250,投射到现实世界对象216上。

接口224可以包括任何合适的有线或无线通讯接口,根据需要通过有线和/或无线的方式,将接口与投影仪207和摄像头214连通(以及设备101、内容播放器103、对准系统105及设备108中的任何一种)。

控制器201可还包括可选的显示设备226,所述显示设备226可包括以下中的任何一种或几种的组合:平板显示器(例如液晶显示屏(liquidcrystaldisplay,lcd)、等离子显示器、有机发光二极管(organiclightemittingdiode,oled)显示器、电容式触摸屏或电阻式触摸屏、阴极射线管(cathoderaytube,crt)等。控制器201可还包括可选的输入设备228,该输入设备228配置为接收输入数据;同样的,输入设备228可以包括输入设备的任何合适组合,包括但不限于键盘、按键、指向设备、鼠标、滚轮、轨迹球、触摸板、触摸屏(例如结合显示设备226)等。其他合适的输入设备都在本发明的范围之内。

图3所示的是在投影映射中进行几何变形校正的一种方法300的流程图。为了辅助说明方法300,假设方法300使用系统200且通过控制器201特定地实现方法300,例如当控制器201处理应用230时。事实上,方法300是配置系统200和/或控制器201的一种方式。此外,下文关于方法300的讨论将为控制器201、系统200及其各组件提供进一步的理解。但是应当理解,系统200和/或控制器201和/或方法300可以有一些变化,不必完全按照本发明所讨论的那样互相配合使用,并且上述变化均在本发明的范围之内。

无论如何,应强调的是,除非另行指明,方法300不必完全按照图中的顺序进行;同样,各模块可能并行完成而不按顺序;因此方法300中的元素在本发明中被称为“模块”而不是“步骤”。还应理解的是,无论如何,方法300都可在系统200的变化形式中实现。此外,虽然控制器201被描述为实现和/或执行方法300中的各个模块,但应当理解的是,方法300的各个模块是利用控制器201处理应用230而实现的。

在模块301中,控制器201在网格模型240的至少一个区域中,应用低分辨率网格,所述低分辨率网格的分辨率比所述网格模型240的分辨率低,和/或所述低分辨率网格的点密度比所述网格模型240的点密度小。

在模块303中,控制器201移动低分辨率网格中的一个或一个以上的低分辨率点;相应地,移动网格模型240中一个或一个以上的对应的高分辨率点,以此对齐网格模型240与现实世界对象216的对应区域;

在模块305中,控制器201在存储器222中储存更新的网格模型,该更新的网格模型是基于移动后的所述网格模型240的高分辨率点而产生,所述网格模型的高分辨率点是随低分辨率网格640中的低分辨率点的移动而移动的。

在模块307中,控制器201控制一个或一个以上的投影仪207,将对应于该更新的网格模型的投影图像,投射到该现实世界对象216上。

现将参照图4至图10描述方法300。

图4和图5所示的是对象216与网格模型240之间的比对,特别是网格模型240的视觉显示,例如网格模型240可在显示设备226中显示。此外,尽管图4和图5展示了对象216和网格模型240的示意图,应当理解的是,对象216是可从其他位置观察的三维物体,并且可相应地显示网格模型240和/或调整其方位。此外,在描述对象216和/或网格模型240等时,本发明使用了“左”“右”“上”“下”这些词语,但应当理解的是,上述词语仅与图4或其他图给出的对象216和/或网格模型的示意图有关。

具体来说,网格模型240包括高分辨率网格模型,该高分辨率网格模型旨在成为对象216的模型。如图4所示,网格模型240包括三角形网格和/或多边形网格等。网格模型240的顶点位于网格中三角形和/或多边形的各边相交之处。每个顶点都可对应于网格模型240中的一个点。此外,在下文的描述中,将网格模型240中的点称为“高分辨率”点,以和低分辨率网格模型的“低分辨率”点作区分。

本领域技术人员所能想到的用于生成网格模型240的任何方法,都在本发明的范围之内;例如,构建网格模型240的技术包括但不限于对现实世界对象进行线框模型建模。此外,网格模型240可包括但不限于以下内容中的一项或多项:多边形网格(如图4所示)、顶点-顶点网格、面-顶点网格、翼边网格和显示动态的网格等。但是,其他类型的网格模型也在本发明的范围之内。

无论如何,在方法300中假设网格模型240已经生成,并提供给存储器222,且网格模型240包括对象216的模型。但是,至少网格模型240的区域401,与对象216的对应区域403是未对齐的,和/或至少在区域401中,网格模型240未准确表示对象300。尽管这里只有一个未对齐的区域401,网格模型240中可以存在多个未对齐的区域。

具体来说,对象216包括两个相邻立方体:左边的一个大立方体和右边相邻的一个小立方体。类似地,网格模型240代表左边的大立方体和右边相邻的小立方体。网格模型240的表面与对象216的表面通常是对齐的。如图4和图5所示,网格模型240中的区域401对应于对象216右侧小立方体的外表面,但区域401与对象300的对应区域403未对齐。具体来说,网格模型240的小立方体比对应的对象216的小立方体更短。

事实上,本发明中使用的术语“对齐”可指当利用投影映射将图像投射到对应于网格模型表面的对象上时,对象的表面与网格模型的表面之间的对齐:当网格模型的表面和对象的表面对齐时(例如该网格模型正确表示该对象),图像可正确投射到对象的表面上;当网格模型的表面和对象的表面未对齐时(例如该网格模型未正确表示该对象),图像未正确投射到对象的表面上。

例如,图6所示的是投影仪207将图像250投射到对象216上,如图中对象216的阴影区域所示;由于网格模型240中至少有一个区域未与对象216的对应区域对齐,图像250并未准确投射到对象216上,对象216中小立方体的至少一部分是没有图像的(例如投影仪207未将图像250投射到该小立方体的一部分上,而图像250本来应该投影到该部分上)。换言之,投影映射中的几何变形校正,至少部分建立在不准确的网格模型的基础之上。

图6中通过对象216的表面上没有接收到完整的图像250来表示错误的投影映射,网格模型240与对象216未对齐而导致的不适当的投影映射可以包括但不限于,图像250在对象300上发生失真(例如不准确的变形),和图像250投影到表面217上而不是对象216上等情况。

上述对齐和/或未对齐也可采用如下描述:如果真实大小的网格模型240可以完全覆盖到对象216上(相应地调整了方向或大小),并且网格模型240可准确表示对象300,则网格模型240的所有表面与对象216的所有表面是对齐的,和/或利用网格模型240将图像250投射到对象216上的结果是准确的;否则,如果网格模型240未准确表示对象300,则网格模型240的一个或一个以上的表面与对象216的一个或一个以上的表面是未对齐的,和/或利用网格模型240将图像250投射到对象216上的结果是不准确的。

换言之,网格模型(例如网格模型240)与现实世界对象(例如对象216)未对齐的区域可以包括该网格模型的投影映射结果不准确的区域。上述不准确的情况可以包括但不限于,网格模型的区域大于或小于对象的对应区域(例如当对象的片段和/区域有破损或变形时,可导致这样的结果),网格模型的表面具有与对象的对应区域不同的斜率和/或曲率,等等。

图7是根据一些非限制性实施例所示的一种模块301的一个方面。模块301可以在控制器201中完成,和/或协同在显示设备226上显示网格模型240而完成。

具体来说,图7所示的是网格模型240,以及至少在网格模型240的区域401中,应用低分辨率网格640,区域401与对象216的对应区域403确定是未对齐的,低分辨率网格640的分辨率低于网格模型240的分辨率,和/或低分辨率网格640的点密度低于网格模型240的点密度。

例如,低分辨率网格640可以包括从网格模型240中选择的点的子集。此外,图中低分辨率网格640的低分辨率点是连接在一起的,从而更清楚地展示由低分辨率网格640的低分辨率点所组成的网格,该网格可与网格模型240的网格相似,但分辨率更低。

可利用输入设备228确定低分辨率网格640中的多个“低分辨率”点,例如通过在输入设备228中提出对低分辨率网格640的点密度的请求等等,以及相应地,显示器226可接收该点密度,然后可使用该点密度来选择网格模型240的高分辨率点的子集,作为低分辨率网格640中的“低分辨率点”。在一些实施例中,假设可根据图中描述的xyz坐标系690,以网格模型240为参照,则可以(nx,ny,nz)的形式表示上述点密度。(nx,ny,nz)中的每一个都表示网格模型240的高分辨率点的子集的密度,且低分辨率网格640中包括上述高分辨率点:在“x”方向选择每个nxth高分辨率点,在“y”方向选择每个nyth高分辨率点以及在“z”方向选择每个nzth高分辨率点。

或者(nx,ny,nz)可表示在参照网格模型240的情况下,定义低分辨率网格640的尺寸的分辨率。例如,低分辨率网格640的分辨率可以描述为沿着x轴有nx个点,沿着y轴有ny个点,沿着z轴有nz个点,上述点可以包括但不限于网格模型240中的高分辨率点。描述为沿着一个轴有n个点的分辨率可以指沿着该轴每单位长度有n个点。例如,当(nx,ny,nz)=(3,3,3)时,低分辨率网格640的分辨率应当描述为(3,3,3),和/或沿着x、y、z轴每轴的每单位长度都有3个点。

或者,假设显示设备226中可显示网格模型240,则可以利用输入设备228单独选择低分辨率网格640中的每个低分辨率点。

无论如何,在这些实施例中,控制器201都可配置为通过接收由输入设备识别出的未对齐区域,以识别和确定网格模型240中与现实世界对象216未对齐的对应区域。具体来说,尽管图4中只有一个未对齐的区域401,但可以有多个未对齐和/或不准确的区域。

在上述的一些实施例中,通过输入(例如从输入设备228中输入)选择的网格模型240的高分辨率点的集合而手动生成低分辨率网格640,该集合受新创建的一个低分辨率点的影响,所述新创建的低分辨率点可以位于所选的高分辨率点的“重心”。

例如,具体来说,低分辨率网格640中新生成的和/或创建的低分辨率点691对应于位于网格模型240中心附近的点,和/或位于区域401重心附近的点,其中“重心”是手动确定的,和/或通过控制器201处理网格模型240与表示对象216的点云而确定,该重心包括低分辨率点691,可移动低分辨率点691以对齐网格模型240中的其他高分辨率点,下文将作更加详细的描述。

但是,可以通过任何合适的方式来指定低分辨率网格640的点密度,这些方式包括但不限于,在应用230和/或储存器222中储存预定的点密度,在控制器201处理应用230时,自动应用该点密度到网格模型240以生成低分辨率网格640。或者,低分辨率网格640的低分辨率点不必包括网格模型240的高分辨率点的子集;换言之,低分辨率网格640的低分辨率点可以位于网格模型240的高分辨率点之间。

或者,如本领域技术人员所理解,低分辨率网格640可以包括网格模型240的顶点聚类简化。例如,如图7所示,低分辨率网格640至少在区域401中包括顶点笼。在其他选择中,低分辨率网格640可以包括网格模型240的增量式抽取。事实上,生成低分辨率网格640的任何合适的方法都在本发明范围之内。

无论如何,与网格模型240相比,低分辨率网格640的分辨率更低,和/或点密度更小。但是,低分辨率网格640也表示对象216的至少一部分,特别是包括与对象216未对齐的区域401。

但是,尽管图中只将低分辨率网格640展示在网格模型240的区域401的内部及周边,具体是在网格模型240的对应于对象216的小立方体的区域中,但在其他实施例中,低分辨率网格640可应用于网格模型240的所有区域。

本发明考虑了模块301的各种实施例,以确定网格模型240中与对象216的对应区域未对齐的区域。例如,在一些实施例中,可以手动确定上述未对齐和/或不准确的区域,例如通过控制投影仪207,利用网格模型240将图像250投射到对象216上,并通过视觉确定未对齐的区域(例如图5所示)。然后可以使用上述技术,至少在这些未对齐的区域手动生成低分辨率网格640,例如通过视觉上观察不准确的投影映射,在显示设备226显示的网格模型240中,手动选择与未对齐和/或不准确的区域对应的高分辨率点。

或者可以自动确定上述未对齐和/或不准确的区域,例如通过比对网格模型240与对应于对象216的点云;所述点云代表现实世界对象300,是由控制器201利用二维投影和相对于三维环境的至少两个摄像头214的给定位置所生成。或者,为了减少使用处理资源,不将网格模型240与上述点云进行比对,而将低分辨率网格640应用于网格模型240的全部区域,并且将低分辨率网格640与上述点云进行比对。

例如,图8所示的是表示对象216的示例点云740(用点画线描绘),该点云是利用系统100和摄像头214确定的。图8中,应当理解的是,点云740包括一组表示对象216的表面、边缘和/或顶点的点,同样地,点云740还可以表示对象216的模型,该模型的生成是通过摄像头214获取对象216在环境215中的原位的图像。图7所示的是网格模型240和低分辨率网格640(至少在区域401中)。将图7中的网格模型240或低分辨率网格640与图8中的点云740进行比对,很明显,比对的两者至少在区域401是未对齐的,这与图4中描述的网格模型240与对象216的比对是类似的。但是,点云740包括可以比对的数据,可通过控制器201将所述数据与网格模型240和/或低分辨率网格640进行比对。

同样地,处理器220还可以配置为,确定网格模型240中与现实世界对象216中对应区域403未对齐的区域401,上述步骤可通过以下方法实现:将网格模型240和/或低分辨率网格640与代表现实世界对象216的点云740进行比对。上述实施例的一方面可以包括对网格模型240和点云740都进行方向和/或大小调整,从而使网格模型240和点云740的点和/或面达到总体上对齐。

事实上,因此可以先确定未对齐和/或不准确的区域,再将低分辨率网格640应用到网格模型240上,也可以将低分辨网格640应用到网格模型240的全部区域之后,再确定未对齐和/或不准确的区域。

因此,控制器201可进一步配置为,确定网格模型240中未与现实世界对象216中对应区域403对齐的区域401,上述步骤可通过以下方法实现:将网格模型240和/或低分辨率网格640与代表现实世界对象216的点云740进行比对,可使用任何合适的技术,包括但不限于逐点比较技术、特征匹配技术、关键特征相关技术以及普通相关技术等。但是,本领域技术人员也可以采用想到的其他技术。

在特定实施例中,假设网格模型240和点云740类似地调整了方向和大小,可将网格模型240和/或低分辨率网格640的点与点云740进行比对;上述调整方向和大小的步骤可以通过比对网格模型240和点云740的点各自的位置,以确定总体上相似和/或对齐的区域。控制器201可以配置为,自动确定网格模型240中未与现实世界对象216中对应区域对齐的区域,上述步骤可通过以下方式实现:计算网格模型240的各个高分辨率点,到代表现实世界对象216的点云740中各个最近点之间的各个距离。

或者,为了减少使用处理资源,控制器201可以配置为,自动确定网格模型240中未与现实世界对象216的对应区域对齐的区域,上述步骤可通过以下方式实现:计算低分辨率网格640的各个低分辨率点,到代表现实世界对象216的点云740中的各个最近点之间的各个距离。

例如,图9所示的是与点云740的一部分840对齐的低分辨率网格640,包括低分辨率点691;事实上,图中为了更清楚,只示出了点云740的部分840,以及对应于对象216的小立方体的轮廓841。图9中假设已经调整了低分辨率网格640的方向和/或大小,但是图9示出的技术也可以用于调整方向和/或大小。

图9还示出了点云740的部分840中的点891,所述点891对应于对象216的区域403的中心,并且,图9示出了低分辨率点691和点891之间的距离899。通过比对低分辨率点691和点云740中其他点(包括但不限于部分840中的点和部分840以外的点)之间的距离,控制器201可以确定点891是点云740中离低分辨率点691最近的一个点。当距离899大于阈值时,控制器201可以确定点691、891未对齐,因此网格模型240中的对应区域与对象216未对齐。对于低分辨率网格640中的每个点和/或网格模型240中的每个点,都可采用类似方法进行确认。然而,不完全基于阈值来确定未对齐和/或未对准区域的方法也在本发明的范围之内。

图9还示出了点云740中的点892,点892对应于和网格模型240(和/或低分辨率网格640)对齐的对象216的区域;换言之,点892对应于网格模型240中的高分辨率点和/或低分辨率网格640中的低分辨率点。当点892与网格模型240中对应的高分辨率点和/或低分辨率网格640中对应的低分辨率点之间的距离为0时,控制器201可以确定网格模型240中的对应区域与对象216是对齐的。

类似地,可以将网格模型240中的每个高分辨率点和/或低分辨率网格640中的每个低分辨率点,与点云740中各个最近的点进行比对。

在一些实施例中,控制器201还可以配置为确定和比较最近的点的法线,以进一步确认未对齐的区域,例如有的区域有一些点对齐,如点892,但基础的表面和/或顶点未对齐。

无论如何,在上述实施例中,控制器201还可以配置为,自动确定网格模型240中与现实世界对象216中对应区域未对齐的区域,上述步骤可通过以下方式实现:计算低分辨率网格640的各个低分辨率点中,到代表现实世界对象216的点云740中的最近点之间的各个距离。或者,计算更密集的方法是,还可以将控制器201配置为,自动确定网格模型240中与现实世界对象216中对应区域未对齐的区域,上述步骤可通过以下方式实现:计算网格模型240的各个高分辨率点,到代表现实世界对象216的点云740中的最近点之间的各个距离。

图10-15所示的是方法300中模块303的实施例。

具体来说,图10-12所示的是网格模型240的三个视图,其中有低分辨率网格640的一部分940,并且低分辨率网格640的低分辨率点691是按照箭头945的方向移动,如下文所述。低分辨率网格640的低分辨率点的部分940特定地对应于对象216中小立方体的右侧一面和/或右侧外表面和/或右侧表面,虽然并未对齐。在图10-12中,网格模型240的至少一部分得到更新或改变。

图13-15所示的是随着网格模型240在图10-12中的依次更新,投射图像到对象216上的一一对应的三个视图,其中投影仪207根据更新的网格模型240将图像250投射到了对象216上。

例如,在模块303中,控制器201可以移动低分辨率模型640的一个或一个以上的低分辨率点。如图10-12所示,低分辨率点691限定(至少部分限定)了一个表面,低分辨率点691沿着箭头945的方向移动,该方向垂直于所述表面,从而拖动低分辨率点691以对齐对象216中对应的点和/或表面。上述移动可以手动和/或自动完成。可通过以下方式手动完成上述移动:在显示设备226中显示网格模型240和低分辨率网格640;使用输入设备228选择低分辨率点691;然后通过输入设备228的进一步输入操作来移动低分辨率点691,例如“拖动”的动作。

或者,控制器201可以移动低分辨率点691的位置以对齐点云740的点891。当距离899小于表示对齐的阈值时,移动就可以停止了,但确定对齐的其他方法都在本发明范围之内。具体来说,控制器201还可以配置为移动低分辨率网格640的一个或一个以上的低分辨率点,直到网格模型中与代表现实世界对象216的点云740未对齐的区域完成对齐。

此外,尽管图中只示出了低分辨率点691的简单线性移动,在其他实施例中,可以根据任何能提高网格模型240的准确度的移动方法,来移动低分辨率网格模型中的低分辨率点,包括弧线式移动、向显示设备“里”“外”移动,等等。

在图10-15描述的实施例中,不仅移动了低分辨率网格640的低分辨率点691,还移动了低分辨率网格640的低分辨率点的部分940,由此移动部分940以对齐对象216中小立方体的右表面,例如点云740和/或更新的投影映射所表示的那样(如图13-15所示)。在一些实施例中,控制器201可配置为在移动部分940中的一个点时移动整个部分940(例如在移动一个点时移动相关表面上所有的点);或者,可以单独移动部分940中的各个点。上述移动可以手动和/或自动完成。

为了实现自动移动各个点,控制器201可以配置为,将低分辨率网格640中的一个或一个以上的低分辨率点自动移动至各条线的交叉点,直至网格模型240的区域和代表现实世界对象的点云740的对应区域对齐为止,该交叉点是由所述低分辨率网格640的各个顶点的法线和由点云740所生成的网格确定的。

例如,尽管点云740在本发明中仅仅指点的集合,但可以连接点云740中的点以形成网格,反过来网格具有顶点和/或角。类似地,网格模型240和/或低分辨率网格640具有顶点和/或角。因此,在上述实施例中,可以将低分辨率网格640的一个或一个以上的低分辨率点移动至各条线对齐,其中各条线是由低分辨率网格640和对应于点云740的网格中各个顶点的法线而确定的。本领域技术人员也可以采用想到的其他技术来确定对齐。

如图10-12所示,移动低分辨率点691(和/或部分940)时,相应地,也移动了网格模型240中对应的高分辨率点,例如在网格模型240中的区域989中,包括网格模型240中位于所述移动的一个或一个以上的低分辨率点周边的任何高分辨率点,例如低分辨率点691,从而促进网格模型240和对应的现实世界对象216未对齐的区域间完成对齐。

具体来说,移动了部分940的低分辨率点之间的高分辨率点,以及对应于部分940中的点的高分辨率点;如图10-12所示,低分辨率点691在图10-12中的位置间移动,在区域989中,可以对三角形和/或多边形进行拉伸和/或变形以保持网格模型240中的连续性,所述三角形和/或多边形限定网格模型240中的表面,该表面与移动的点是相连接或相关联的。或者,可以自动将网格模型240中额外的点插入到区域989中,以增加点和/或多边形和/或三角形(等)的密度,从而保持网格模型240的分辨率。

事实上,网格模型240可基于移动低分辨率网格640中的低分辨率点的任何方式进行更新。上述更新可以包括但不限于:将低分辨率网格640中的低分辨率点进行变换并输入到多维高斯函数中,该多维高斯函数用于生成网格模型240中对应的一个或一个以上的高分辨率点的变换;将低分辨率网格640中的低分辨率点进行变换并输入到多项式函数中,该多项式函数用于生成网格模型240中对应的一个或一个以上的高分辨率点的变换;以及将低分辨率网格640中的低分辨率点进行变换并输入到三角函数中,该三角函数用于生成网格模型240中对应的一个或一个以上的高分辨率点的变换,等等。上述三角函数可以包括但不限于正弦函数、傅里叶变换等。但是,上述变换只是示例,基于移动低分辨率网格640中的低分辨率点且用于更新和/或变换网格模型240的其他任何技术都在本发明范围之内。事实上,尽管本发明中描述的示例对象216是相对简单的直线型对象,但对更加复杂和/或弯曲的对象的网格模型应用本发明中的技术时,可使用上述变换。

如图10-12所示,移动低分辨率点691(和/或部分940)时,对应的视图13-15中分别示出了将图像250投射到对象216上的效果。在图13中,图像250的投影映射与图6中的相关描述相似,其中区域991没有接收到图像250,至少在该区域的投影映射是不准确的,原因是网格模型240与对象300未对齐。在图14中,基于图11中低分辨率点691(和/或部分940)的位置,更新了网格模型240,和/或生成了一个中间网格模型,因为区域991变小,图像250投射到对象216的结果变得更加准确。最后,在图15中,因为更新的网格模型与对象216是对齐的,投影映射也是准确的,所以区域991消除了和/或消失了。

如图13-15所示,观察上述图像250投射到对象216的结果,有助于移动分辨率低的网格640的点以使网格模型240中的区域与对象216对齐:观察图像250投射到对象216的结果时,可以移动低分辨率网格640中的点,并通过视觉观察确定这对于投影映射的影响。

换言之,上述实施例中,控制器201可进一步配置为,在移动低分辨率网格640中的一个或一个以上的低分辨率点时,根据一个或一个以上的中间的更新网格模型,控制一个或一个以上的投影仪207将图像250投射到现实世界对象216上。

但是,至少当自动移动低分辨率点691(和/或部分940)时,使用中间版网格模型240(如图11所示)投射到对象216是可选的。事实上,根据模块301、303对低分辨率网格640和网格模型240的处理,可以在完全不依赖投影仪207的情况下完成。

此外,即使手动移动低分辨率点691(和/或部分940)时,上述移动也可以在完全不依赖投影仪207的情况下完成:例如,当系统200的用户知道网格模型240不准确和/或只是想要改变网格模型240时,用户可以利用模块301、303,通过从输入设备228中的输入,使控制器201将网格模型240显示在显示设备226中,从而手动调整网格模型240。如上所述,可将低分辨率网格640应用到网格模型240中的至少一部分,并显示在显示设备226中,手动移动和/或操作低分辨率网格640中的低分辨率点,可以导致网格模型240中的高分辨率点发生变化。可在存储器222中保存更新的网格模型,之后根据该更新的网格模型将图像250投射到对象216上。

例如,图16所示的是方法300中模块305、307的非限制性实施例。具体来说,图16中假设模块301、303都已经实施,因此存储器222储存了更新的网格模型240a,所述更新的网格模型240a是基于移动后的网格模型240的高分辨率点而产生,网格模型240的高分辨率点是随低分辨率网格640中的一个或一个以上的低分辨率点的移动而移动的。换言之,更新的网格模型240a对应于图12中示出的网格模型。在一些实施例中,可以生成定义更新的网格模型240a的新数据,并将其储存在存储器222中,替代初始的网格模型240;在其他实施例中,可以修改和/或改变原始网格模型240中的至少一部分(如图10-15所示),从而生成更新的网格模型240a。无论如何,更新的网格模型240a包括可更准确地表示对象216的一部分。

图16还示出了投影仪207将图像250投射到对象216中,如对象216的阴影区域所示,与图6中类似,不论更新的网格模型240a的准确度比网格模型240的准确度提高了多少,基于更新的网格模型240a的投影映射都是更准确的。因此,投影映射中的几何变形校正使用了更新的网格模型240a,例如使图像250变形以投射到对象216上。

此外,仅当现实世界对象216改变了形状和/或发生变形等的时候,才需要重复方法300,当对象216只有相对于环境的位置变化时,不需重复方法300。事实上,当对象改变位置时,可先确定位姿数据,并将其自动应用于渲染环境中,因而生成的对象数据是即时更新的,可使用该位姿数据和/或对象数据,基于新的位置和已存储的更新的网格模型240a,更新投影映射。换言之,实施方法300后,储存的网格模型可以继续保留在存储器222中并用于校正。事实上,如果现实世界对象216发生变形(例如剥落了一小片等),可使用更新的网格模型240a作为起始点来重复方法300。

本领域的技术人员应当理解,在一些实施例中,实现系统100和控制器201的功能可以使用预编程的硬件或固件元件(例如asic、eeprom等),或者其他相关组件。在其他实施例中,可以通过使用有访问代码存储器权限的计算设备,来实现系统100和控制器201的功能,所述代码储存器存储了计算机可读的用于运行计算程序的程序代码。所述计算机可读的程序代码可以储存于计算机可读的储存媒介上,该媒介是固定的、有形的,且可以被上述组件直接读取(例如移动磁盘、cd-rom、rom、固定硬盘、usb盘、闪存等,包括任何的硬件组件,其被配置为可通过固定的、有形的、可读取的方式,储存计算机可读的程序代码)。此外,应当理解的是,可通过包括计算机可使用的计算机程序产品的形式,来储存计算机可读的程序。另外,持久性存储设备可以包括计算机可读的程序代码。还应当理解的是,所述计算机可读的程序代码和/或计算机可使用的媒介可以包括非暂时性的计算机可读的程序代码和/或非暂时性的计算机可使用的媒介。或者,可通过以传送媒介联网(包括但不限于互联网)的调制解调器或其他接口设备,远程储存所述计算机可读的程序代码并将其传送到上述组件。该传送媒介可以是非移动媒介(例如光通信线路和/或数字通信线路和/或模拟通信线路)或移动媒介(例如微波、红外线、自由空间光通信或其他传送方案),也可以是非移动媒介和移动媒介的组合。

本领域技术人员应当理解,可能还有更多替代性的实施例和变动,上述示例只是展示一个或一个以上的实施例。因此,本发明的范围仅受所附权利要求书的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1