用于成像设备的高级镜头几何结构拟合的系统和方法与流程

文档序号:14523221阅读:199来源:国知局
用于成像设备的高级镜头几何结构拟合的系统和方法与流程

相关申请的交叉引用

本申请要求于2016年11月11日提交的美国专利申请no.62/420,775的优先权,其通过引用并入本文。

本说明书大体涉及投影仪,并且具体涉及用于成像设备的高级镜头几何结构拟合的系统和方法。



背景技术:

许多投影系统基于投影图像的投影仪的特性将用于投影的图像渲染到屏幕和/或对象上,并且通常假设投影仪包括投影图像的平面镜头和/或在投影图像时发生平面投影。然而,诸如鱼眼镜头的非平面镜头能够与投影仪一起使用,用于宽视野应用等。由于涉及到额外的自由度并且因为用于这种建模的初始化的等式的系统不是内在的线性建模,这种非平面镜头和/或非平面投影引入了技术挑战。具体地,使用随机采样一致性(ransac)和/或多项式技术的建模在使用这种非平面镜头和/或非平面投影投影到屏幕和/或对象上时可能不会产生合适的对准质量。例如,这样的技术能够至少有两个失败的理由:几何结构建模方法假设平面投影,其不适用于所有镜头类型;并且更天真的数学方法不能达到要求的准确度水平,特别是对于更复杂的屏幕几何结构。此外,相机还可以包括非平面镜头,并且因此这样的相机的建模能够遭受与包括非平面镜头的投影仪建模相同的问题;例如,这样的相机能够与投影系统一起使用以提供投影到屏幕、对象等上的图像的反馈,例如在投影映射场景中。



技术实现要素:

大体上,本公开内容涉及用于使用具有非平面镜头(其能够包括用于宽视野应用的鱼眼镜头和/或“fθ”(也被称为f-theta)镜头)的投影仪投影图像的高级镜头几何结构拟合的系统和方法。特别地,例如使用将投影仪点(例如在屏幕和/或对象处的投影空间中)与像素点(例如在投影仪的图像调制器处)相关的投影仪的非平面镜头的给定模型确定投影仪的内在参数的初始估计。假设已经确定和/或提供投影正在其上发生的屏幕和/或对象的几何结构。根据内在参数的初始估计,获得外部参数的初始估计。内在参数和外部参数的初始估计被用作迭代确定包括变换后的投影仪点和像素点之间的比较的误差函数的输入,变换后的投影仪的点表示使用该模型的像素点的估计和内在参数和外部参数的估计。一旦误差函数收敛、最小化和/或降低到阈值以下,内在参数和外部参数的当前值被用于将来自投影仪的图像投影到屏幕和/或对象上。内在参数和外部参数的当前值能够被称为投影仪的姿态数据。

在本说明书中,元件可以被描述为“被配置为”以执行一个或多个功能或“被配置用于”这样的功能。通常,被配置为执行或被配置用于执行功能的元件能够执行该功能,或者适合于执行该功能,或者适于执行该功能,或者可操作来执行该功能,或者以其他方式能够执行该功能。

应当理解,为了本说明书的目的,“x、y和z中的至少一个”以及“x、y和z中的一个或多个”的语言可以被解释为仅x、仅y、仅z,或者两个或更多个条目x、y和z(例如xyz、xy、yz、zz等)的任何组合。对于“至少一个...”和“一个或多个...”语言的任何情况,能够对两个或更多个条目应用类似的逻辑。

本说明书的一方面提供了一种系统,其包括:计算设备;包括非平面镜头的投影仪,该投影仪被配置用于投影到对象上;该计算设备被配置为:使用非平面镜头的将对象上的投影点的位置与投影仪的图像调制器处的像素点相关的初始模型确定使用初始模型的投影仪的内在参数的至少一个初始估计;使用内在参数的至少一个初始估计来确定投影仪的外部参数的至少一个初始估计;迭代地评估包括像素点与投影点到像素点的变换之间的比较的误差函数,初始变换使用内在参数的至少一个初始估计和外部参数的至少一个初始估计来确定,并且迭代变换包括以下中的一个或多个:在一次或多次迭代中改变在初始模型中使用的一个或多个非线性项;在一个或多个迭代中增加在非平面镜头的模型中使用的一个或多个非线性项;改变投影仪的内在参数;并改变投影仪的外部参数;当一个或多个迭代的误差函数收敛一次或多次、达到最小值并且小于阈值时:存储投影仪的内在参数的当前值和投影仪的外部参数的当前值作为姿态数据;并且,基于姿势数据来控制投影仪将图像投影到对象上。

计算设备能够还被配置为通过确定针对多个内在参数中的每个的估计的范围确定使用初始模型的投影仪的内在参数的至少一个初始估计。计算设备能够还被配置为通过确定多个内参数的离散估计的集合使用初始模型来确定投影仪的内在参数的至少一个初始估计。计算设备能够还被配置为针对多个内参数的离散估计的集合的元素中的每个确定外部参数的至少一个初始估计。计算设备能够还被配置为通过将给定投影点与在具有与非平面镜头的曲率相似的曲率的曲面图像调制器处的对应点之间的线外推到与曲面图像调制器共享主点的平面图像调制器上的像素点来针对多个内在参数的离散估计的集合的元素中的每个确定外部参数的至少一个初始估计。计算设备能够还被配置为使用直接线性变换算法利用平面图像调制器上的像素点的集合来确定外部参数的至少一个初始估计。计算设备能够还被配置为针对多个内在参数的离散估计的集合的每个元素和外部参数的对应估计迭代地评估误差函数。

非平面镜头能够包括鱼眼镜头和f-theta镜头中的一个或多个。

非平面镜头的初始模型能够包括鱼眼镜头模型和f-theta镜头模型中的一个或多个。

非平面镜头的初始模型能够包括以下中的一个或多个:零个非线性项、一个非线性项以及多个非线性项。

本说明书的一方面提供了一种方法,其包括:在与包括非平面镜头的投影仪通信的计算设备处,投影仪被配置用于投影到对象上:在计算设备处使用非平面镜头的将对象上的投影点的位置与投影仪的图像调制器处的像素点相关的初始模型来确定使用初始模型的投影仪的内在参数的至少一个初始估计;在计算设备处使用内在参数的至少一个初始估计来确定投影仪的外部参数的至少一个初始估计;在计算设备处迭代地评估包括像素点与投影点到像素点的变换之间的比较的误差函数,初始变换使用内在参数的至少一个初始估计和外部参数的至少一个初始估计来确定,并且迭代变换包括以下中的一个或多个:在一个或多个迭代中改变在初始模型中使用的一个或多个非线性项;在所述迭代中的一个或多个中增加在所述非平面镜头的所述初始模型中使用的所述一个或多个非线性项的数量;改变投影仪的内在参数;并且改变投影仪的外部参数;当一个或多个迭代的误差函数收敛一次或多次、达到最小值并且小于阈值时:存储投影仪的内在参数的当前值和投影仪的外部参数的当前值作为姿态数据;并且,在计算设备处基于姿态数据来控制投影仪将图像投影到对象上。

根据权利要求的方法能够还包括:通过确定针对多个内在参数中的每个的估计的范围来确定使用初始模型的投影仪的内在参数的至少一个初始估计。根据权利要求的方法能够还包括:通过确定针对多个内在参数的离散估计的集合来确定使用初始模型的投影仪的内在参数的至少一个初始估计。根据权利要求的方法能够还包括:针对多个内在参数的离散估计的集合的每个元素确定外部参数的至少一个初始估计。根据权利要求的方法能够还包括:通过将给定投影点与在具有与非平面镜头的曲率相似的曲率的曲面图像调制器处的对应点之间的线外推到与曲面图像调制器共享主点的平面图像调制器上的像素点来确定外部参数的所述至少一个初始估计。根据权利要求的方法能够还包括:使用直接线性变换算法利用平面图像调制器上的像素点的集合来确定外部参数的至少一个初始估计。根据权利要求的方法能够还包括:针对多个所述内在参数的离散估计的集合的每个元素和外部参数的对应估计迭代地评估误差函数。

非平面镜头能够包括鱼眼镜头和f-theta镜头中的一个或多个。

非平面镜头的初始模型能够包括鱼眼镜头模型和f-theta镜头模型中的一个或多个。

非平面镜头的初始模型能够包括以下中的一个或多个:零个非线性项、一个非线性项以及多个非线性项。

本说明书的一方面提供了一种存储计算机程序的计算机可读介质,其中,计算机程序的运行用于:在与包括非平面镜头的投影仪通信的计算设备处,投影仪被配置用于投影到对象上:在计算设备处使用非平面镜头的将对象上的投影点的位置与投影仪的图像调制器处的像素点相关的初始模型来确定使用初始模型的投影仪的内在参数的至少一个初始估计;在计算设备处使用内在参数的至少一个初始估计来确定投影仪的外部参数的至少一个初始估计;在计算设备处迭代地评估包括像素点与投影点到像素点的变换之间的比较的误差函数,初始变换使用内在参数的至少一个初始估计和外部参数的至少一个初始估计来确定,并且迭代变换包括以下中的一个或多个:在一个或多个迭代中改变在初始模型中使用的一个或多个非线性项;在迭代中的一个或多个中增加在非平面镜头的初始模型中使用的一个或多个非线性项的数量;改变投影仪的内在参数;并且改变投影仪的外部参数;当一个或多个迭代的误差函数收敛一次或多次、达到最小值并且小于阈值时:存储投影仪的内在参数的当前值和投影仪的外部参数的当前值作为姿态数据;并且,在计算设备处基于姿态数据来控制投影仪将图像投影到对象上。计算机可读介质能够包括非暂时性计算机可读介质。

附图说明

为了更好地理解本文描述的各种实施方式并且更清楚地显示它们如何被实现,现在仅通过示例参考附图,在附图中:

图1描绘了根据非限制性实施方式的投影系统。

图2描绘了根据非限制性实施方式的能够被用于图1的系统中的用于投影图像的高级镜头几何结构拟合的系统。

图3描绘了根据非限制性实施方式的用于投影图像的高级镜头几何结构拟合的方法。

图4描绘了根据非限制性实施方式的假设投影仪包括f-theta镜头的投影仪空间中的点与投影仪的图像调制器上的点之间的关系。

图5描绘了根据非限制性实施方式的能够被用于估计投影仪的外部参数的平面化技术。

图6描绘了根据非限制性实施方式的使用图3的方法投影图像的图2的系统。

图7描绘了根据非限制性实施方式的使用图3的方法投影图像的图1的系统。

图8描绘了根据非限制性实施方式的用于获取图像的高级镜头几何结构拟合的系统。

图9描绘了根据非限制性实施方式的用于获取图像的高级镜头几何结构拟合的方法。

图10描绘了根据非限制性实施方式的用于成像设备的高级镜头几何结构拟合的方法。

具体实施方式

图1描绘了系统100,其包括:渲染设备101(以下可互换地称为设备101);内容播放器103;计算设备105;以及投影仪107。通常,设备101与内容播放器103并且可选的与计算设备105通信,并且内容播放器103与投影仪107通信。投影仪107包括非平面镜头111,其包括但不限于鱼眼镜头、f-theta镜头等。事实上,f-theta镜头被认为是一种特定类型的鱼眼镜头。如本文中使用的,术语“鱼眼镜头”和/或非平面镜头通常能够指任何镜头,其从镜头轴的角度比其与平面(例如直线)镜头从成像元件的中心(例如dmd(数字多镜设备、ccd(电荷耦合器件)等)增长更快;这样的非平面镜头和/或鱼眼镜头能够包括但不限于立体镜头、等距镜头、等镜头、正交镜头等,所有这些都包括在本说明书的范围中。

如所描绘的,设备101和内容播放器103被组合成一个设备108,然而在其他实施方式中,设备101和内容播放器103能够是分离的设备。计算设备105被配置为产生包括包括镜头111的投影仪107的外部参数和内在参数的姿态数据109p,如下面进一步详细描述的。设备101能够根据姿势数据109p产生渲染图像数据110,例如通过对现有图像数据(未示出)进行渲染用于由投影仪107投影。在图1中,连接组件的实线显示其间的图像和/或视频数据的流动,而将计算设备105连接到设备101和/或设备108的点划线显示其间的姿势数据109p和对象数据109o的流动。对象数据109o通常包括来自投影仪107的图像被投影到的对象的位置和取向的模型,并且能够由计算设备105使用一个或多个相机来确定。

当设备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,其中投影数据112被用于控制投影仪107以基于此投影图像,例如投影到三维对象上。

设备101通常包括图像生成器和/或渲染器,例如计算设备、服务器等,被配置为产生和/或渲染图像作为图像数据110。这样的图像数据110能够包括但不限于静止图像、视频等。此外,然而未描绘的设备101能够与存储从其产生和/或渲染图像数据110的数据的图像生成器和/或存储器通信并且/或者包括图像生成器和/或存储器。备选地,设备101能够使用算法等来产生图像数据110用于产生图像。

内容播放器103包括被配置为“播放”和/或渲染图像数据110的播放器;例如,当图像数据110包括视频数据时,内容播放器103被配置为通过输出用于由投影仪107投影的投影数据112来播放和/或渲染视频数据。因此,内容播放器103能够包括但不限于视频播放器、视频处理设备、计算设备,服务器等。然而,如上所述,当设备101和内容播放器103被组合为设备108时,能够消除图像数据110的渲染并且设备108渲染投影数据112而不产生图像数据110。

计算设备105包括投影仪(包括投影仪107)、相机(图1中未描绘)以及计算设备的任何合适的组合,其被配置为以下一个或多个:自动地确定投影仪107的姿势数据109p;并且自动地确定对象数据109o。计算设备105的非限制性实施方式及其功能将在下面参考图2至图7进行描述。

投影仪107包括被配置为投影投影数据112的投影仪,其包括但不限于数字投影仪、电影投影仪、基于lcos(硅上的液晶)的投影仪、基于dmd(数字多镜设备)的投影仪等。此外,虽然仅描绘了一个投影仪107,但是系统100能够包括多个投影仪107,每个投影仪107被配置为投影包括例如要投影的较大的平铺图像的部分的各自的投影数据。不管在投影仪107中使用的技术如何,假设本文描述的投影仪107和/或其他投影仪包括图像调制器,其包括多个单独的像素调制器;例如,当投影仪包括dmd投影仪时,图像调制器包括多个数字微镜,针对要投影的图像的每个像素具有一个微镜。

如描绘的系统100还包括一个或多个2d(“二维”)扭曲设备和/或模块113,例如在投影仪107处(尽管这样的扭曲设备能够存在于内容播放器处和/或作为独立的设备)。当存在时,投影数据112能够由扭曲模块113例如通过移动和/或调整投影数据112内的像素被扭曲以调整由投影仪107投影到包括(但不限于)屏幕、对象等的对象上的投影数据112。然而,当计算设备105确定姿势数据109p并且将其传送给设备101(和/或设备108)时,扭曲模块113能够是未使用的、可选的和/或从系统100中消除的。事实上,使用扭曲模块113表示如何根据现有技术处理图像并且借助于计算设备105向设备101(和/或设备108)提供姿态数据109p而避免扭曲模块113的存在。然而,在一些实施方式中,例如当用于产生图像的对象的虚拟模型没有精确地匹配物理对象时,扭曲模块113能够被用于对图像投影到物理对象上进行小的改变。

尽管设备101、内容播放器103、计算设备105和投影仪107中的每个被描绘为不同的组件,在其他实施方式中,设备101、内容播放器103、计算设备105和投影仪107中的一个或多个的相应部分能够在相同设备(例如设备108)内被实现和/或能够在其间共享处理资源。例如,尽管没有示出,系统100包括一个或多个控制器、一个或多个处理器、一个或多个存储器以及一个或多个通信接口,例如用于设备101、内容播放器103、计算设备105和投影仪107中的每个的控制器、存储器和通信接口和/或在设备101、内容播放器103、计算设备105和投影仪107之间共享。事实上,如描绘的,系统100的组件通常表示投影系统的不同功能,其中:能够自动确定投影仪107的姿势数据109p。在一些实现中,系统100包括用于当投影仪107移动和/或在其上投影图像的屏幕和/或对象移动时投影映射到三维物体上和/或用于更新姿态数据109p的组件和/或功能。

下面参考图2,其描述了用于投影图像的高级镜头几何结构拟合的系统200。事实上,计算设备105能够包括系统200的一个或多个组件,并且而且系统100的组件能够根据需要包括系统200的组件。系统200包括计算设备201(以下可互换地称为设备201),包括非平面镜头211的投影仪207;可选相机214;以及将来自投影仪207的图像投影到其上的屏幕215。事实上,假设投影仪207相对于屏幕215被安装使得来自投影仪207的图像被投影到屏幕215上。此外,假设可选相机214能够被用于确定屏幕215的几何结构并且确定投影仪207的投影点与投影仪207的像素点之间的对应关系。

然而,尽管相对于屏幕215描述了当前的实施方式,在其他实施方式中,屏幕215能够用包括三维对象的对象代替,并且投影仪207能够使用镜头211投影映射到对象上。

通常,比较图1和图2,投影仪107能够包括投影仪207(并且类似地,镜头111能够包括镜头211),计算设备105能够包括计算设备201、投影仪207(具有镜头211)以及可选相机214,并且设备101和内容播放器103中的任一个能够包括计算设备201的至少一部分,例如当资源在设备101、内容播放器103和计算设备105之间共享时。此外,尽管仅描绘了一个投影仪207,系统200能够包括多于一个的投影仪。类似地,尽管仅描绘了一个可选相机214,系统200能够包括多于一个相机214;还认识到,系统200的(一个或多个)相机214能够包括能够将数字图片传送到计算设备201的数字相机。

设备201能够包括任何合适的计算设备,包括但不限于图形处理单元(gpu)、图形处理设备、图形处理引擎、视频处理设备、个人计算机(pc)、服务器等,并且通常包括控制器220、存储器222和通信接口224(以下可互换地称为接口224)并且可选地包括输入设备和显示设备的任何合适的组合。

接口224包括被配置为根据需要以有线和/或无线方式与投影仪207和相机214(以及设备101、内容播放器103、计算设备105和设备108中的任一种)通信的任何合适的有线或无线通信接口。

控制器220能够包括处理器和/或多个处理器,包括但不限于一个或多个中央处理器(cpu)和/或一个或多个处理单元;无论如何,控制器220包括硬件元件和/或硬件处理器。事实上,在一些实施方式中,控制器220能够包括专门配置成确定至少投影仪(例如投影仪207)的姿态数据的asic(专用集成电路)和/或fpga(现场可编程门阵列)。因此,设备201优选地不是通用计算设备,而是专门配置为实现特定姿态数据确定功能的设备。例如,设备201和/或控制器220能够具体地包括被配置成实现特定姿态数据确定功能的计算机可执行引擎。

存储器222能够包括非易失性存储单元(例如可擦除电子可编程只读存储器(“eeprom”)、闪存)和易失性存储单元(例如随机存取存储器(“ram”))。实现本文描述的设备201的功能教导的编程指令通常被永久地保存在存储器222中并由控制器220使用,在执行这样的编程指令期间适当地利用易失性存储器。本领域技术人员认识到存储器222是能够存储在控制器220上可执行的编程指令的计算机可读介质的示例。此外,存储器222也是存储器单元和/或存储器模块和/或非易失性存储器的示例。

特别地,存储器222存储应用230,当由控制器220处理时,应用230使控制器220和/或计算装置201能够:使用非平面镜头211的将对象(包括但不限于屏幕215)上的投影点的位置与投影仪207的图像调制器处的像素点相关的初始模型来确定使用初始模型的投影仪207的内在参数的至少一个初始估计;使用内在参数的至少一个初始估计来确定投影仪207的外部参数的至少一个初始估计;迭代地评估包括像素点与投影点到像素点的变换之间的比较的误差函数,初始变换使用内在参数的至少一个初始估计和外部参数的至少一个初始估计来确定,并且迭代变换包括以下中的一个或多个:在一个或多个迭代中改变在初始模型中使用的一个或多个非线性项;在迭代中的一个或多个中增加在非平面镜头211的模型中使用的一个或多个非线性项的数量;改变投影仪207的内在参数;并且改变投影仪207的外部参数;当一个或多个迭代的误差函数收敛一次或多次、达到最小值并且小于阈值时:存储投影仪207的内在参数的当前值和投影仪207的外部参数的当前值作为姿态数据109p;并且,基于姿态数据109p来控制投影仪207将图像投影到对象(包括但不限于屏幕215)上。

在其他实施方式中,如描绘的,存储器222还存储图像被投影到其上的对象(例如屏幕215)的模型240,其能够使用相机214和投影仪207和/或其他投影仪(未示出)来确定,例如,通过控制投影仪207等,将诸如盒子、结构化光图案等的图像投影到对象(例如屏幕215)上并且从由相机214获取的图像确定其几何结构;然而,在其他实施方式中,使用例如与对象(例如屏幕215)一起提供的给定数字模型能够在存储器222处提供模型240。通常,对象数据109o能够包括模型240,并且能够如上所述可选地提供给系统100的组件。

特别地,能够在将投影点映射到像素点的过程中使用相机214。例如,计算设备201能够控制投影仪207将投影仪207的图像调制器的单个像素投影到屏幕215或任何其他对象上;相机214能够获取其上投影像素的对象(例如屏幕215)的数字图片并且将该数字图片传送到计算设备201。假设相机214的相对几何结构和其上投影像素的对象(例如屏幕215)是已知的和/或已经被确定的(例如来自模型240),然后能够确定投影点与像素点之间的对应关系集合。

此外,如描绘的,存储器222还存储镜头211的初始模型250,其能够提供镜头211,例如由制造商和/或能够基于镜头211的类型来确定。因此,例如,当镜头211包括f-theta镜头时,镜头211的模型能够包括f-theta镜头的已知模型。

无论如何,计算设备201和/或控制器220通常被配置为确定投影仪207的姿态数据109p。

通常,姿势数据109p包括关于投影仪207的包括内在参数和外部参数的信息。

下面参考图3,其描绘了根据非限制性实施方式的用于投影图像的高级镜头几何结构拟合的方法300的流程图。为了帮助解释方法300,假设使用系统200执行方法300,并且具体地由设备201的控制器220,例如当控制器220处理应用230时。事实上,方法300是能够配置系统200和/或设备201的一种方式。此外,方法300的以下讨论将导致对设备201以及系统200及其各种组件的进一步理解。然而,应当理解,系统200和/或设备201和/或方法300能够是变化的,并且不需要如本文中结合彼此所讨论的那样精确地工作,并且这样的变化处于本实施方式的范围内。

无论如何,需要强调的是,除非另有指示,否则方法300不必按照所示的确切顺序执行。并且同样地各种框可以并行执行而不是按顺序执行;因此方法300的元素在本文中被称为“框”而不是“步骤”。然而,还应当理解,方法300也能够在系统200的变形上被实现。此外,虽然计算设备201被描述为实现和/或执行方法300的每个框,应该理解方法300的每个框使用控制器220处理应用230而发生。

在框301处,控制器220,使用非平面镜头211的将对象(包括但不限于屏幕215)上的投影点的位置与投影仪207的图像调制器处的像素点相关的初始模型来确定使用初始模型的投影仪207的内在参数的至少一个初始估计。

在框303处,控制器220使用内在参数的至少一个初始估计来确定投影仪207的外部参数的至少一个初始估计。

在框305处,控制器220迭代地评估包括像素点与投影点到像素点的变换之间的比较的误差函数,初始变换使用内在参数的至少一个初始估计和外部参数的至少一个初始估计来确定,并且迭代变换包括以下中的一个或多个:在一个或多个迭代中改变在初始模型中使用的一个或多个非线性项;在迭代中的一个或多个中增加在非平面镜头211的初始模型中使用的一个或多个非线性项的数量;改变投影仪207的内在参数;并且改变投影仪207的外部参数。

在框307处,控制器220,当一个或多个迭代的误差函数收敛一次或多次、达到最小值并且小于阈值时:存储投影仪207的内在参数的当前值和投影仪207的外部参数的当前值作为姿态数据109p。

在框309处,控制器220基于姿态数据109p来控制投影仪207将图像投影到对象(包括但不限于屏幕215)上。

现在将描述方法300的非限制性示例,假设投影仪207包括dmd投影仪并且因此包括具有方形镜(例如方形像素)的dmd图像调制器,尽管下面的描述能够应用于其他类型的投影仪和其他类型的图像调制器。类似地,下面的讨论假设镜头211包括能够使用奇数非线性项来建模的鱼眼镜头和/或f-theta镜头,例如考虑包括负坐标的旋转几何形状,尽管其他类型的非平面镜头和/或其他类型的模型(例如包括偶数项)都在本实施方式的范围内。此外,将描述相对于投影到屏幕215上的下面的非限制性示例,然而,应当理解,能够在其他类型的对象上发生投影。

如上所述,姿态数据109p能够包括外部参数和内在参数并且外部参数和内在参数一起定义投影仪207与镜头211的组合的位置和光学性质。

外部参数能够包括投影仪207例如相对于屏幕215在系统200的物理空间中的取向和位置,并且其能够被表示为投影仪207的x-y-z坐标,假设直线坐标系统,以及偏航坐标、俯仰坐标和滚动坐标。特别地,外部参数能够被总结为6维向量:[x,y,z,yaw,pitch,roll]。向量的坐标被表示的坐标空间能够相对于能够相对于屏幕215是任意的和/或定义的系统200的原点来定义,例如使用模型240和/或对象数据109o。然而,外部参数通常独立于屏幕215的位置。此外,尽管本文相对于直线坐标系描述了外部参数,也能够在其他类型的坐标系中表示外部参数。

内在参数能够包括与镜头211相关联的投影仪207的参数并且具体地包括投影仪207和镜头211的组合的光学属性,其定义组合投影仪207和镜头211如何将图像投影到例如屏幕215上。然而,外部参数通常独立于屏幕215。本文相对于旋转坐标系来描述这种内在参数并且能够包括以下参数:

f–用于在像素宽度坐标中变换从镜头211的主轴(中心)偏移的角度(以度数表示)的因子。

oxoy–主点的像素坐标(例如投影仪207的图像调制器与主轴相交的位置)。

α–像素宽度除以像素高度(例如投影仪208的图像调制器的物理像素);对于其中投影仪208的图像调制器包括dmd并且dmd的反射镜是正方形的实施方式,α能够设置为1(即指示正方形像素)。

k–模型250的奇数幂,其能够可选地被称为投影模型。

例如,非平面镜头211的模型250能够被定义为:

其中θ是投影仪空间中的主轴与投影点之间的角度(以度为单位),r是投影点与以像素宽度单位表示的主点之间的距离,以及m是将包括在模型中的非线性项的最大数量。

例如,参考图4,在顶部图表401中,其描绘了投影仪空间中的物理3d(三维)点pp(例如能够在镜头211和屏幕215之间的投影路径中的投影点)与其映射回以像素宽度单位的dmd平面的坐标p之间的关系,假设投影仪207包括dmd投影仪并且镜头211包括鱼眼镜头和/或f-theta镜头。事实上,虽然图4的实施方式是相对于具有dmd图像调制器的dmd投影仪进行描述的,具有其他类型的图像调制器的其他类型的投影仪,并且因此其他类型的图像调制器平面在本说明书的范围内。在一些实施方式中,pp能够是屏幕215上的点,但备选地能够是镜头211的视野中的空间中的3d点;例如,对于鱼眼镜头,视野能够大于180°。图4能够备选地被称为鱼眼镜头的投影模型的图示。

特别地,坐标p与主点主轴的距离为r,并且相应的投影仪点pp与投影仪空间的主轴成θ。事实上,图3中的r和θ是来自等式1中的r和θ。坐标p也能够被称为像素点p,尽管这样的术语并不意味着暗示该像素点p明确地对应于dmd的像素;而像素点p仅仅是指dmd(和/或图像调制器)上的位置。

图4的底部曲线图402以旋转坐标定义了dmd上的像素点p距离主点的位置。如在曲线图401,像素点p位于距主点的距离r处,并且与dmd的x轴成角度能够使用以下来导出角度

其中是投影仪空间中的投影仪点pp的y坐标,并且是投影仪空间中的投影仪点pp的x坐标。例如,假设投影仪空间中的投影仪点pp与主轴的角度与dmd上的像素点p的角度相似。因此,能够使用例如能够由屏幕215的模型240定义的投影仪点pp和/或投影仪点pp来找到图像调制器(例如dmd)的多个像素点p可以可选地是投影仪207的投影路径上的3d空间中的任何点。

一旦找到图像调制器(例如dmd)上的像素点p的坐标,能够使用以下等式将坐标变换成直线像素位置:

等式(3)的r(θ)能够包括等式(1)的r(θ),m被设置为3个非线性项,然而,例如,取决于控制器220的处理能力,m能够被设置为大于3或小于3的其他值。然而,假设投影仪207和/或镜头211的3个非线性项k1、k2、k3、内在参数能够由7维向量[f,ox,oy,a,k1,k2,k3]表示。

因此,能够在包括组合的7维向量[f,ox,oy,a,k1,k2,k3]和6维向量[x,y,z,yaw,pitch,roll]的向量v中表示内参数和外部参数。

误差函数的迭代评估(例如方法300的框305、307)

在讨论方法300的框301、303之前,将描述方法300的框305、307的迭代评估的非限制性示例。

特别地,能够提供和/或确定投影点p与对应的像素点p之间的n个对应关系的列表,如下所述,并且能够确定内在参数/外部参数向量v的最佳估计。n个对应关系的列表能够是以下形式:

其中pi是系统200的坐标系中的点(例如真实世界和/或3d坐标系),其能够对应于屏幕215上的位置和/或是任意的,但通常在投影仪207和镜头211的组合的投影路径中,并且pi是如以上参考图4所述的相应的像素点。因此,每个pi都不需要明确地位于屏幕215上,但能够是在投影仪207与镜头211的组合中的投影路径中的空间中的点,尽管其能够假设屏幕215与该投影路径相交。

特别地,然而,能够由控制投影仪207将各个像素投影到屏幕215上的计算设备201来确定,并且相机214能够被用来确定屏幕上的对应投影点。换句话说,给定的像素点pi对应于在投影仪207的图像调制器处的像素的位置,并且能够从投影仪207的分辨率以及投影仪的像素的纵横比中知道像素的这种位置和形状。类似地,由于能够知道系统200的几何结构,包括相机214的像素的位置与屏幕215(和/或另一对象)上的位置之间的对应关系,针对给定像素点pi的对应投影坐标pi的位置能够被确定。能够针对能够包括所有像素和/或其子集的像素的“n”确定这样的对应关系(例如角落像素、边缘像素、像素的网格、像素的对角线等)。

误差函数(备选地被称为误差度量)能够被定义为:

其中t是从系统200的3d坐标到像素坐标的变换,并且如上所述根据向量v被确定。换句话说,给定内在参数/外部参数集合(包括但不限于内在参数/外部参数的初始估计),并且使用t(pi)空间中的位置pi、相应的像素点的位置能够被发现,并且t(pi)与空间中的位置pi所关联的像素点pi进行比较。此外,l是损失函数,其能够包括但不限于huber损失函数。

因此,通过在对应关系集中的每个点pi上执行变换t、与关联的像素点pi比较、应用损失函数和求和(并且备选地除以n),等式(5)的误差函数表示评估内部参数/外部参数的给定集合是否准确表示镜头211。例如,点pi的变换t与关联的像素点pi之间的比较能够包括确定它们之间的差异。

因此,为了提供更好的估计,能够通过求解以下优化问题来获得投影仪的外部参数和内在参数:

argminv(err)......等式(6)

其中argminv包括如下所述的最小化等式(6)的“err”的过程。事实上,argminv的优化能够使用各种算法和/或数学算法和/或数学包(包括但不限于ceres求解器)来解决。

无论如何,能够获得v初始估计(例如内在参数和外部参数中的每个的初始估计),其被选择使得argminv的优化收敛和/或达到最小值和/或降低到阈值以下。因此,如下面进一步详细描述的,在框301、303中发生argminv的优化的初始化。在一些实施方式中,能够基于启发式地,例如在系统200、具有镜头211的投影仪207和/或屏幕215的已知估计几何结构上,来提供内在参数和外部参数中的每个的初始估计。在其他实施方式中,能够启发式地提供内在参数的初始估计并且能够自动地发生外部参数的初始估计。在又一实施方式中,能够自动发生内在参数和外部参数中的每个的初始估计。在又一实施方式中,能够启发式地指定外部参数的初始估计并且能够自动发生内在参数的初始估计。

参考等式(1),内在参数的初始估计能够包括将每个非线性项k1、k2、k3(假设m=3)设置为零和/或内在参数的初始估计总是能够包含非线性项的零。如此等式(1)折叠成:

r(θ)=fθ......等式(1a)

类似地,v能够折叠为[f,ox,oy,a,0,0,0]。然而,能够通过添加更多非线性项(例如,见下文)来迭代地重定义模型。尽管添加非线性项能够导致不收敛,随着添加更多的自由度,能够逐渐地执行这样的非线性项的添加,和/或一次一个,并且能够评估每次迭代以确定收敛是否发生。换言之,能够评估每个解决方案的“成本”,其中较低的成本是评估的目标。

例如,能够使用以下算法:

步骤1:设vi为v向量的初始估计,设vf为具有当前最低成本解决方案的v向量的临时解决方案,并且设vf为当前最低成本解决方案的成本(例如在迭代期间,vf和cf的每个表示“最佳”临时解决方案,并且术语“成本”能够指代等式(5)的“err”的值)。

步骤2:将计数器k定义为正被评估的当前非线性项的计数器,使用k=0非线性项进行初始化(例如在等式(5)中最初假设m=0),vf=vi并且假设cf=∞。

步骤3:从vf开始,例如使用用于n个对应关系的集合以及以下一个或多个的等式(5)找到最优解决方案vo和与之相关的成本co:改变投影仪207和镜头211的组合的内在参数;并且改变投影仪207的外部参数;例如改变内在参数和/或外部参数直到一个或多个迭代的误差函数收敛一次或多次,达到最小值,并且小于阈值为止。因此,对于给定的迭代集合,co能够表示等式(5)的“err”的最低值。

步骤4:如果co<cf:

a.设置vf=vo并且cf=co

b.如果k<m(例如m=3)

i.增量k(例如增加一些非线性项)。

ii.返回到步骤3。

c.否则

i.返回vf

步骤5:否则

a.返回vf

在步骤4中:b.假设m=3(例如k迭代到“3”)使得评估三个非线性项,然而能够使用m的其他值,例如评估高阶非线性项对算法的影响。

因此,上述算法表示方法300的框305、307的非限制性实施方式。换言之,上述算法试图在向量v的空间上最小化等式(5)的误差函数。

此外,co<cf的测试指示将成本的当前值与之前的值进行比较以确定收敛是否发生。只要收敛发生算法能够继续。备选地,该算法能够继续直到成本最小化和/或下降到阈值以下(例如其指示启发式“足够好”的收敛和/或解决方案)。换言之,一个或多个迭代的误差函数、一个或多个收敛误差函数达到最小值,并且小于阈值。

还应当理解的是,在一些实施方式中,收敛能够在不添加非线性项的情况下发生(例如,对于k=0,m=0和/或收敛发生)。因此,初始模型能够包括零个非线性项、一个非线性项和多个非线性项中的一个或多个,以上算法针对初始模型中的非线性项的数量进行评估(如由“m”定义的)。

无论如何,从算法返回的vf能够被合并到姿态数据109p中,以及导致误差函数收敛的外部参数等。参考图1,姿态数据109p然后能够返回到设备108并且用于例如使用从姿势数据109p产生的投影数据112来控制投影仪107(和/或投影仪207)投影图像,例如在框309处。

现在将描述用于初始化方法300的各种实施方式并且特别是框301、303的各种实施方式。

初始化内在参数(例如,如在框301中)

对于内在参数,能够确定每个内在参数的初始估计值并用于估计外部参数(见下文),并且其也被用作上述优化的起点。内在参数不一定是相关的并且所以,当对于几个或更多内在参数有多个可能的值时,所有集合的笛卡尔乘积能够用作其优化的初始估计并且能够选择产生最小代价函数的解决方案。

dmd像素通常是正方形的因此在没有给出任何其他指示的情况下,在初始估计中参数a被赋予值1,然而,例如当投影仪的图像调制器的参数提供有投影仪时,能够使用“a”其他的初始值。因为等式(5)中的非线性参数k的影响能够是小的,如上所述,在初始估计中能够假设它们全部为零。这能够减少搜索空间因为对这些参数有一个初始估计。

然而,对于偏移参数[ox,oy]和因子f,能够有多个可能的值,并且能够通过考虑这些参数的所有可能的组合来产生估计。然而,考虑到大量的组合可能在计算上是具有挑战性的;因为如下文所讨论的那样能够选择每个的这样的子集。特别地,确定偏移参数[ox,oy]和因子f中的每个的值的网格,并且能够基于可用的处理资源和/或启发式地选择网格的大小(例如项的数量)以减少时间量以实现上述算法,

偏移值[ox,oy]与投影仪207处的镜头移动有关并且能够以像素单位表示。具体而言,这些偏移值[ox,oy]是dmd(和/或图像调制器,例如见图4)上的主点的像素坐标。为了对dmd上的主点的可能坐标进行采样,能够假定ox具有以下三个值中的一个:

ox={0.25*resx,0.5*resx,0.75*resx}......等式(7)

其中resx是以像素为单位的dmd的宽度(例如在指定的“x”方向上)。

类似地,能够假设oy具有以下三个值中的一个:

oy={0.25*resy,0.5*resy,0.75*resy}......等式(8)

其中resy是以像素为单位的dmd的高度(例如在正交于“x”方向的指定的“y”方向上)。

因此,能够考虑通过dmd在两个正交方向中的每个的三个位置处的位置,尽管比三更多的位置和比三更少的位置也能够使用。然而,使用每个用于ox,oy的三个值导致到搜索网格(假设每一对中的第一值乘以resx,并且第二值乘以resy:

[0.250.25][0.250.50][0.250.75]

[0.500.25][0.500.50][0.500.75]

[0.750.25][0.750.50][0.750.75]

换句话说,被考虑的偏移值[ox,oy]的集合能够是ox和oy的笛卡尔乘积:

o=ox×oy......等式(9)

使用dmd的分辨率(其能够被假定为通常已知的,例如作为与dmd一起提供的数据)并且假设镜头211覆盖整个dmd(例如镜头211能够接受由dmd调制的所有光作为投影图像),参数f的近似值也能够被确定。

假设视野v并且针对镜头等式(5)仅使用线性项(例如假设m=0):

换句话说,对应于产生的θ。因此:

视野参数是镜头211的属性并且最初是未知的但通常能够假定为在90度到270度之间;因此,与偏移值一样,基于可用的处理资源能够来定义搜索网格。在一些实施方式中,这样的网格能够包括从90度到270度的值的范围,以45度递增,然而能够使用其他范围和其他增量。这样的范围和增量大小能够基于设备201处的处理资源来选择和/或减少用于执行上述算法的时间量,同时仍然选择将导致收敛的初始化值。因此,能够如下获得用于f的可能的值的集合:

用于内在参数的初始估计的组合集合是笛卡尔乘积:

g=r×ox×oy......等式(13)

再次,这种方法假设高宽比“a”为1并且等式(1)的非线性系数被设置为0。

因此,能够对集合g中的每个元素执行上面的算法以确定误差函数的收敛。因此,在该技术中,输入能够是投影仪207的分辨率,并且能够被输出为内在参数的组合初始估计的集合,非线性项(“k”)被设置为零,并且项“a”设置为“1”。因此,等式(13)的“g”的元素能够是格式[f,ox,oy]。因此例如,两个示例元素可以是:

初始化外部参数(例如,如在框303中)

给定用于内在参数的初始估计的集合和/或网格(例如,如等式(13)中定义的),能够为网格中的每个元素获得用于外部参数的近似的估计。如下文所述,能够使用“平面化”技术来初始地使用等式(13)中定义的内在参数作为输入来估计外部参数,并且假设等式(1)的非线性项被初始地设置为“0”。

参考图5,能够使用一种技术来初始估计外部参数,其假设投影仪207被修改为包括:平面镜头和理论上弯曲的dmd501,其将导致光投射行为,其类似于当“正常”平面化dmd与镜头211一起使用时。dmd501的形状和/或曲率根据等式(13)中的g的值确定,并且特别地,定义镜头211的形状和/或曲率的初始估计的每个[f,ox,oy]的集合被用来定义dmd501的形状和/或曲率的初始估计(并且假设等式(1)的非线性项最初被设置为“0”)。因此,再次假设像素点pi在dmd501上,并且平面镜头将导致投影点pi,对于给定的对应关系的集合,能够产生新的对应关系的集合使得平面化的像素点是平面化dmd502上的“平面化”坐标,假设每个dmd501、502共享如图5描绘的共同的主点,通过从投影点pi和dmd501的像素点pi之间的线推断回来确定的平面化像素点因此,术语“平面化”能够指投影机207包括平面镜头而不是非平面镜头211的情况下已经发生的像素点此外,当弯曲的dmd501的曲率和/或形状能够根据等式(13)中定义的内在参数来确定时,在其他实施方式中,能够启发式地获得投影仪207的内在参数的初始估计,例如作为上述算法的手动输入(其能够使用设备201处的输入设备来接收)。

还参考图5,并且换言之,在平面化技术中假设投影仪207是以平面镜头投影的,但是类似的图像结果因为还假设像素点pi位于因为当平面化dmd与镜头211一起使用时,像素点将导致相同的图像用平面镜头投影的形状弯曲的dmd501上。这样,假设平面化的像素点位于平面化dmd502上,其大小和形状将会导致相应的投影仪点pi。因此,在图5中,像素点pi和投影仪点pi全部位于相同的线上。

能够使用dlt(直接线性变换)算法基于对应关系来计算外部参数,例如使用等式(13)中定义的使用内在参数作为输入,并且假设等式(1)的非线性项最初被设置为“0”。然而,边界能够放在dlt算法中使用的角度上以便考虑到例如该算法在接近90°时可能不稳定。因此,能够选择与主轴的角度θ小于大约78度的边界以避免在鱼眼镜头和/或f-theta镜头视野边缘处可能出现的大的误差,因为这种大的误差可能主导使用这种“平面化”平面技术的估计。然而,能够在角度θ上放置更大或更小的限制。

例如,关于图5,d能够是从主点o到pi的弧的长度,能够是从主点o到的长度并且f能够是(理论上的)平面化的镜头的焦距;所有长度都能够用像素宽度单位表示。使用等式(5),d能够被估计为(假设“d”类似于“r”):d≈fθ......等式(14)

其中θ能够用度来表示。

根据几何结构d也能够使用弧度来表示:

其中θ[rad]是用弧度表示的θ(而不是度)并且f是平面化镜头的焦距。

因此,平面化镜头的焦距f能够与等式(5)的线性因子f相关:

并且然后能够确定作为使用三角法的pi的平面投影:

因为d也能够被称为在“鱼眼”弯曲的dmd501上的来自主点o的像素点pi的测地距离并且能够使用下式来根据xy像素坐标(假设它们是可用的和/或能够被确定的)计算:

的坐标能够如下类似于pi的坐标被导出:

其中角度与参考图4描述的角度类似。

根据等式(19)中定义的的坐标,使用dlt算法能够获得外部参数的初始估计,其导致例如投影仪207的x、y、x坐标的初始估计以及偏航、俯仰和滚转,使得能够对于等式(13)中定义的内在参数的初始估计的集合中的每个填充6维向量[x,y,z,yaw,pitch,roll]。

因此,使用这两种技术,能够自动选择内在参数的初始估计的网格,并且能够确定对应的外部参数的初始估计,并且能够使用上述算法来评估内在参数和外部参数中的初始估计的每个集合;此外,评估内在参数和外部参数中的初始估计的每个集合能够包括如上所述添加非线性项,直到发生最佳拟合和/或收敛。

特别地,导出在上述的内在参数[f,ox,oy,a]的初始估计并且导出外部参数[x,y,z,yaw,pitch,roll]的对应的初始估计。内在参数[f,ox,oy,a]的初始估计被用于在数学上“平面化”投影仪点,其能够使得能使用线性dlt算法线性方法(dlt)以求解外部参数[x,y,z,yaw,pitch,roll]的初始估计。

换言之,并且参考方法300,框301、303的结果导致用于向量v的初始猜测的集合,并且被用作框305、307的输入,其中,用于向量v的初始猜测中的集合的每个元素中的每个元素被评估,导致多种解决方案。基于相关联的“err”值来选择解决方案,其中每个解决方案使得具有最小“err”值的解决方案被选择为vf,其被用于在框309处投影图像。

参考图6,其基本上类似于图2,相同的元件具有相同的数字,并且其描绘框309的非限制性实施方式,一旦发现收敛,向量vf能够被存储在存储器222中(例如作为姿态数据)并且控制器220处理向量vf以生成图像601,其被用于控制投影仪207基于向量vf(例如在姿势数据上)来将图像601投影到屏幕215上。

类似地,参考图7,其基本上类似于图1,相似的元件具有相同的数字,并且其描绘框309的非限制性实施方式,一旦发现收敛,向量vf能够被提供给设备108(例如作为姿势数据109p)并且控制器220处理向量vf以产生投影数据112a(类似于投影数据112,但适用于由鱼眼镜头和/或f-theta镜头和/或非平面镜头的投影),其被用于控制投影仪107基于向量vf(例如在姿态数据109p上)来投影图像。

因此,本文提供了用于使用具有非平面镜头的投影仪投影图像的高级镜头几何结构拟合的系统和方法。例如根据列表,能够确定投影仪的内在参数的初始估计;基于内在参数的初始估计能够确定投影仪的外部参数的初始估计。能够通过从简单的镜头模型开始一起优化内在参数和外部参数并且迭代地添加非线性项,在每次迭代中评估的误差函数,例如对于列表中的内在参数的每个集合以及对应的外部参数。当误差函数的值收敛(等)时,能够使用优化的内在参数和优化的外部参数来产生由投影仪投影的图像。此外,对本文描述的技术的输入能够仅包括投影仪的分辨率、投影仪的像素的高宽比以及像素点和投影仪点之间的对应关系。

此外,应当理解,本文描述的技术也可以应用于确定相机的类似的姿态数据,假设空间中的(例如相机的视野中)的相机点与相机的成像器(例如相机的ccd(电荷耦合设备))的像素点之间的初始对应关系被提供,以及相机的分辨率和类似于在此描述的“a”的值(例如像素宽度除以像素高度)。

例如,参考图8,图8描绘了用于投影图像的高级镜头几何结构拟合的系统800。事实上,计算设备105能够包括系统800的一个或多个组件,并且此外系统100的组件能够根据需要包括系统800的组件。此外,系统800类似于系统200,相似的元件具有相同的数字,然而“800”系列而不是“200”系列。此外,与系统200相比,在系统800中,投影机是可选的并且系统800还包括具有非平面镜头的相机。因此,系统800包括计算设备801(以下可互换地称为设备801)、包括非平面镜头851的相机857;可选投影仪807(例如包括非平面镜头811)、可选相机814;以及由相机857成像的屏幕815(并且来自投影仪807的图像可选地投影到其上)。假设可选相机814能够被用于确定屏幕215的几何结构并且确定相机857的成像点与相机857的像素点之间的对应关系。

此外,类似于系统200,当相对于屏幕815描述了系统800的当前实施方式时,在其他实施方式中,屏幕815能够用包括三维对象的对象替换,并且相机857能够对对象成像。

另外,设备801通常包括控制器820、存储器822和通信接口824(以下可互换地称为接口824)。

特别地,存储器822存储应用830,应用830当由控制器820处理时使得控制器820和/或计算装置801能够:使用非平面镜头851的将对象(包括但不限于屏幕815)上的点的位置与相机857的成像器处的像素点相关的初始模型确定相机857使用初始模型的内在参数的至少一个初始估计;使用内在参数的至少一个初始估计来确定相机857的外部参数的至少一个初始估计;迭代地评估包括像素点与点到像素点的变换之间的比较的误差函数,使用内在参数的至少一个初始估计和外部参数的至少一个初始估计确定初始变换,并且迭代变换包括以下中的一个或多个:在一次或多次迭代中改变在初始模型中使用的一个或多个非线性项;在一个或多个迭代中增加在非平面镜头851的模型中使用的一个或多个非线性项的数量;改变相机857的内在参数;并改变相机857的外部参数;当一个或多个迭代的误差函数收敛一次或多次、达到最小值并且小于阈值时:存储相机857的内在参数和相机857的外部参数的当前值作为姿态数据;并且,基于姿势数据来控制相机857获取对象(包括但不限于屏幕815)的图像。

在其他实施方式中,如描绘的,存储器822还存储对象(例如屏幕815)的模型840,其能够使用相机814和/或投影仪807来确定(假设已经确定投影仪807的姿态数据(例如使用方法300)和/或已知)(和/或另一投影仪,未描绘),例如通过控制投影仪等,将诸如方框,结构化光图案等的图像投影到对象(例如屏幕815)上并且根据相机814获取的图像确定其几何结构;然而,在其他实施方式中,能够使用例如与对象(例如屏幕815)一起提供的给定数字模型在存储器822处提供模型840。

此外,相机814能够被用在将对象(例如屏幕815)上的点映射到相机857的成像器的像素点的过程中。例如,计算设备801能够控制投影仪(包括但不限于投影仪807)将像素投影到对象(例如屏幕815)上,包括但不限于结构化光图案;相机857和相机814都能够获取其上投影像素的对象(例如屏幕815)的各自的数字图片并且将这些数字图片传送到计算设备801。假设相机814的相对几何结构和其上投影像素的对象(例如屏幕815)是已知的和/或已经被确定的(例如来自模型840),那么能够确定投影到对象上的点与相机857的成像器处的像素点之间的对应关系的集合。

备选地,对象(例如屏幕815)上的点到相机857的成像器的像素点的映射也能够通过将图像放置在对象上来确定。例如,在已知位置(包括但不限于可区分点的网格,和/或特征)处的一个或多个可区分特征的物理图片,其能够被称为基准,能够被放置在屏幕815的前面并且由相机857成像。将一个或多个物理图片的(一个或多个)图像提供给设备801。

在又一实施方式中,系统800包括被放置对对象(例如屏幕815)成像的两个或更多个相机814,例如在立体视觉布置中,并且对象(例如屏幕815)上的点到相机857的成像器的像素点的映射也能够来自两个相机814的图像上使用特征检测算法和/或相机视觉算法和/或机器视觉算法(例如尺度不变特征变换(sift))来确定。这些实施方式中的映射能够在不使用可选的投影仪807的情况下获得。此外,能够在不使用基准的情况下获得这样的映射,然而这种映射也能够利用基准和/或使用结构化光图案等、使用投影仪807投影到对象上等来获得。

无论如何,相机、投影仪、基准点、结构化光图案等的任何组合能够被用于确定对象(例如屏幕815)上的点到相机857的成像器的像素点的映射。

特别地,相机空间中的物理3d(三维)点、cp(例如能够在镜头851和屏幕815之间的成像路径中的点)以及它们映射回到相机851的成像器的平面的各自的坐标pc被确定(也被称为像素点)。事实上,相机空间中的点、cp与上述投影机空间pp中的点类似。并且其映射回到相机857的成像器的平面的各自的坐标pc与其映射回到投影仪207的dmd的平面的坐标p(和/或像素点)类似。因此,相机851的成像器能够包括但不限于ccd(电荷耦合设备)、基于cmos(互补金属氧化物半导体)的成像器、基于nmos(n型金属氧化物半导体)的成像器等。事实上,能够以像素为单位对对象成像的任何类型的成像器和/或空间成像器和/或图像传感器都在本实施方式的范围内,包括但不限于基于光栅的成像器。

此外,如描绘的,存储器822还存储镜头851的初始模型850,镜头851能够例如由制造商供应镜头851和/或能够基于镜头851的类型来确定。因此,例如,当镜头851包括f-theta镜头时,镜头851的模型能够包括f-theta镜头的已知模型。

无论如何,一旦确定和/或获取和/或提供了对象(例如屏幕815)上的点到相机857的成像器的像素点的映射,并且提供非平面镜头851的初始模型850,上面关于确定投影仪207的姿态数据109p描述的技术能够用于确定相机857的类似姿态数据。

例如,参考图9,其描绘了根据非限制性实施方式的用于使用相机获取图像的高级镜头几何结构拟合的方法900的流程图。为了帮助解释方法900,将假设方法900使用系统800来执行,并且具体地由设备801的控制器820来执行,例如当控制器820处理应用830时。事实上,方法900是能够配置系统800和/或设备801的一种方式。此外,方法900的以下讨论将导致对设备801以及系统800及其各种组件的进一步理解。然而,应当理解,系统800和/或设备801和/或方法900能够是变化的,并且不需要如本文中结合彼此所讨论的那样精确地工作,并且这样的变化处于本实施方式的范围内。

无论如何,需要强调的是,除非另有指示,否则方法900不必按照所示的确切顺序执行。并且同样地各种框可以并行执行而不是按顺序执行;因此方法900的元素在本文中被称为“框”而不是“步骤”。然而,还应当理解,方法900也能够在系统800的变形上被实现。此外,虽然计算设备801被描述为实现和/或执行方法900的每个框,应该理解方法900的每个框使用控制器820处理应用830而发生。

在框901处,控制器820,使用非平面镜头851的将对象(包括但不限于屏幕215)上的投影点的位置与相机857的成像器处的像素点相关的初始模型来确定使用初始模型的相机857的内在参数的至少一个初始估计。

在框903处,控制器820使用内在参数的至少一个初始估计来确定相机857的外部参数的至少一个初始估计。

在框905处,控制器820迭代地评估包括像素点与点到像素点的变换之间的比较的误差函数,初始变换使用内在参数的至少一个初始估计和外部参数的至少一个初始估计来确定,并且迭代变换包括以下中的一个或多个:在一个或多个迭代中改变在初始模型中使用的一个或多个非线性项;在迭代中的一个或多个中增加在非平面镜头851的初始模型中使用的一个或多个非线性项的数量;改变相机857的内在参数;并且改变相机857的外部参数。

在框907处,控制器820,当一个或多个迭代的误差函数收敛一次或多次、达到最小值并且小于阈值时:存储相机857的内在参数的当前值和相机857的外部参数的当前值作为姿态数据。

在框909处,控制器820基于姿态数据来控制相机857获取对象(包括但不限于屏幕215)的图像。

事实上,方法900行进类似于图4至图7的示例,但是在相机空间而不是投影仪空间中,并且获取图像而不是投影。例如,框909处的相机857的图像能够由系统100和/或设备201基于在框907处确定的姿势数据来校正,例如以在显示之前扭曲图像。

事实上,方法300和方法900是类似的并且各自假设诸如dmd、ccd、基于cmos的成像器,基于nmos的成像器等的成像设备等通过非平面镜头与对象交互,而不管成像设备是使用非平面镜头将图像投影到对象上,还是使用非平面镜头来获取物体的图像。事实上,每个都假设在成像设备的像素点和对象上的点之间提供初始映射,并且每个还假设提供了非平面镜头的初始模型。

因此,参考图10,其描绘了根据非限制性实施方式的用于成像设备的高级镜头几何结构拟合的通用方法1000的流程图,成像设备包括用于获取和/或产生图像的任何空间受控设备,诸如投影仪207和/或相机857。为了帮助解释方法1000,将假设使用与成像设备(诸如与投影仪207通信的控制器220和/或与相机857通信的控制器820)通信的控制器来执行方法1000。事实上,方法1000是其中包括与这种成像设备通信的成像设备和/或控制器的系统能够被配置的一种方式。此外,方法1000的以下讨论将导致对这样的系统、设备和/或控制器及其各种组件的进一步理解。然而,应当理解,这样的系统、设备和/或控制器能够是变化的,并且不需要如本文中结合彼此所讨论的那样精确地工作,并且这样的变化处于本实施方式的范围内。

无论如何,需要强调的是,除非另有指示,否则方法1000不必按照所示的确切顺序执行;并且同样地各种框可以并行执行而不是按顺序执行;因此方法1000的元素在本文中被称为“框”而不是“步骤”。然而,还应当理解,方法1000也能够在这样的系统、设备和/或控制器的变形上被实现。

与方法300和方法900一样,在方法1000中假设成像设备包括非平面镜头、提供了非平面镜头的初始模型、以及提供了成像设备的像素点与对象上的点之间的映射。

在框1001处,控制器,使用非平面镜头的将对象(包括但不限于屏幕)上的投影点的位置与成像设备的成像器处的像素点相关的初始模型来确定使用初始模型的成像设备的内在参数的至少一个初始估计。

在框1003处,控制器使用内在参数的至少一个初始估计来确定成像设备的外部参数的至少一个初始估计。

在框1005处,控制器迭代地评估包括像素点与点到像素点的变换之间的比较的误差函数,初始变换使用内在参数的至少一个初始估计和外部参数的至少一个初始估计来确定,并且迭代变换包括以下中的一个或多个:在一个或多个迭代中改变在初始模型中使用的一个或多个非线性项;在迭代中的一个或多个中增加在非平面镜头的初始模型中使用的一个或多个非线性项的数量;改变成像设备的内在参数;并且改变成像设备的外部参数。

在框1007处,控制器,当一个或多个迭代的误差函数收敛一次或多次、达到最小值并且小于阈值时:存储成像设备的内在参数的当前值和成像设备的外部参数的当前值作为姿态数据。

在框1009处,控制器基于姿态数据来控制成像设备与对象(包括但不限于屏幕)交互。成像设备进行如下中的一项:如关于方法300所描述的投影图像,或者如上面关于方法900所描述的获取图像。

本领域技术人员将认识到,在一些实施方式中,设备101、105、108、201和内容播放器103的功能能够使用预编程硬件或固件元件(例如,专用集成电路(asic)、电可擦可编程只读存储器(eeprom)、等等)或者其他相关部件来实现。在其他实施方式中,设备101、105、108、201和内容播放器103的功能能够使用具有对存储了用于操作计算装置的计算机可读程序代码的代码存储器(未示出)的访问的计算装置来实现。计算机可读程序代码能够被存储在计算机可读存储介质上,计算机可读存储介质是固定的、有形的并且能够直接由这些部件(例如,可移除盘、cd-rom、rom、固定盘、usb驱动器)读取。另外,要认识到,计算机可读程序能够被存储为包括计算机可用介质的计算机程序产品。另外,永久存储设备能够包括计算机可读程序代码。另外还要认识到,计算机可读程序代码和/或计算机可用介质能够包括非暂态计算机可读程序代码和/或非暂态计算机可用介质。备选地,计算机可读程序代码能够被远程地存储而且能够通过传输介质经由连接到网络(包括但不限于,互联网)的调制解调器或其他接口设备发送到这些部件。传输介质能够是不可移动介质(例如,光学和/或数字和/或模拟通信线路)或移动介质(例如,微波、红外、自由空间光学或其他传输机制)或其组合。

本领域技术人员将认识到,还存在更多的可能的替代实现和修改,并且上述示例仅仅是一个或多个实现的说明。因此,范围仅仅由随附的权利要求限制。

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