使用多相机和深度相机阵列的基于图像的图像渲染方法和系统与流程

文档序号:15104714发布日期:2018-08-04 16:35阅读:392来源:国知局

在使用几何模型的非基于图像的计算机生成渲染(例如光栅化,光线追踪等)中,其中不是仅从图像来单纯地进行图像渲染或重建,用户能够从渲染相机的视角知道场景深度。例如,如果用户创建或渲染单个对象,则当该对象被放置在场景中时该对象的深度是已知的并且因此是预先确定的,最终计算出场景深度。

在基于图像的渲染过程中,场景中预先存在的对象可能具有未知深度。用户可以任意决定预先存在的对象上的点的初始深度或代理几何,并参考相对于任意选择的深度的所有其他相对深度。然而,这可能是不准确的,因为深度是由用户任意选择的。另外,可以使用计算机视觉技术诸如运动结构来确定深度,但是这些技术是过程极其繁复的,需要大量资源,是不准确的,并且除非它们是预计算的否则不适用于实时。

许多这些深度技术都是以任意方式或以编程方式来最大可能地(具有任何容许损失)确定场景中点的深度的方法。然而,就像图像相机失焦时,当没有从各种输入(在这种情况下从其他图像)正确重建图像时,该重建的图像可能会出现失焦或不清晰。或者,渲染图像可能具有伪像或其他图像错误。

附图说明

图1a示出了多相机阵列的示例。

图1b示出了图1a的多相机阵列的1D横截面图。

图2示出了具有新型相机的图像相机阵列。

图3示出了确定光线的示例。

图4a示出了利用计算机生成场景的已知深度来渲染图像的示例性相机阵列,该计算机生成场景放置有对象并且该对象的深度已知。

图4b示出了利用对象的未知深度渲染图像的示例性相机阵列,如图4a一样,其中渲染深度不同。

图4c示出了由于添加来自深度相机的深度信息而生成场景的深度。

图5示出了多相机阵列中的深度相机。

图6a描绘了渲染图像的深度-图像多相机阵列的示例性实施方式的系统。

图6b描绘了深度-图像多相机阵列渲染图像的系统的另一示例实施方式。

图7a示出了用于从一个或多个图像相机的图像以及一个或多个深度相机的捕捉深度产生用于渲染的数据的示例性流程。

图7b描述了取图7a中的所有图像和深度值来渲染最终图像的过程。

图7c示出了从任意新型相机视角计算图像中的像素的过程流程。

具体实施方式

基于图像的渲染使用现有的采样图像组来生成符合新型相机视角的新图像。换句话说,基于图像的渲染是由图像相机捕捉的其他图像导出的图像的渲染。

光场是基于图像的渲染技术的示例,其使用了4D参数化法(u、v、s、t),该4D参数化法描述了在分别使用(u,v)和(s,t)指数的两个平面之间的所有光线。捕捉光场的相机捕捉在相机位置采样的完整光场的子集。

新型相机,也称为位于任意位置或用户定义的位置的虚拟相机,是从其他实际摄像相机衍生的相机。在构建新图像时,针对新型相机(基于相对于图像平面中像素的相机位置)确定新图像中的每个像素的光线。使用各种方法计算该光线,最常见的是在来自现有图像的最近光线样本之间插值。

基于图像的渲染的潜在问题是样本图像中没有足够的样本光线,因此在生成的图像中产生伪像,例如混叠。没有足够的样本,则必须从现有样本重建图像。如果没有附加信息,仅使用图像样本可能无法达到预期效果,因为不知道应使用哪条光线。最简单的方法是使用最近的光线,但是可能无法提供期望的图像。这是因为场景几何在当时(例如,从真实相机捕捉开始)是未知的。可以通过使用任意焦平面或使用几何代理来解决。几何代理可以通过手工或使用计算机视觉技术例如运动结构来被创建。

在本发明的一个示例性实施方式中,可以使用一个或多个图像相机和一个或多个深度相机的组合来创建场景的点云。例如,一个或多个图像相机可以位于多相机阵列或光场相机中以捕捉场景的图像。一个或多个深度相机可以用于捕捉场景深度。使用多个深度相机可以更好地重建场景。多个相机可以缓解由于一些对象位于其他对象前方而遮挡相机视野的遮挡问题。

遮挡问题的一个示例可以是一些对象位于其他对象前面而阻挡了彩色相机或深度相机对深度较深的对象的视野。

由于上述遮挡问题和类似于仅使用图像来创建另一图像的一般采样问题,仅增加深度相机并不是一个完整的解决方案。我们使用可合并新的深度数据的新渲染过程。利用深度数据,场景几何现在是已知的,因此当构建期望光线的新视角时,首先确定该光线在场景中的深度(例如场景中光线交叉的点),然后确定样本图像中的哪些光线相交于同一点并且取向最接近,然后使用这些光线插值最终光线。以新视角对所有光线都如此操作。

但是,获取的深度数据只是一个点云,因为它是场景中的深度采样。点云被三角测量以获得场景几何,这是点云数据至多边形或三角形网格的转换。在仍然存在遮挡的区域,深度可以通过挤压(extrusion)来近似。挤压是通过将测量的深度(点云中的点)延伸到可能不在同一对象上的多个相邻深度来进行深度近似。或者,如果深度和图像源于不同的相机位置,则可以通过使用来自图像相机的信息来接近遮挡物,以进行深度近似。或者,可以通过设置焦平面或代理网格手动修理深度。

本发明的示例性实施方式是使用一个或多个深度和彩色图像相机来获取深度和彩色图像。为了清楚起见,彩色图像不必是彩色的,可以是黑白图像;然而,这里使用颜色来区分深度图像,以此提供了图像的每个像素处的深度。深度图像形成了点云,被三角测量为三角形网格,表示场景的几何。为场景中每个图像创建每个相机位置的深度图。每个图像都会具有创建的预计算的深度图,以便在后面的步骤中快速比较深度。创建针对新型相机位置的另一深度图。对于新型相机图像中的每条光线,选取与光线最近的四个相机,以获取来自每个相机的最近光线深度和颜色。选取的相机的数量是任意的,并基于所需的渲染效果。使用输入相机的颜色进行颜色插值,类似于新型相机相对于参考位置的期望深度,所述输入相机具有的深度是从三角几何体计算得到的或使用深度图预先计算得到的,在新型相机的像素的某个阈值内,并且所述输入相机具有的颜色和深度不接近被剔除的。插值的颜色被用作最终新型图像中的像素的颜色。

在本发明的另一个示例性实施方式中,图像和深度捕捉还可以帮助基于其他图像的渲染风格技术,例如Lumigraph渲染或球形或全景视频。

在本发明的示例性实施方式中,渲染出新图像的方法可以包括使用图像相机获取图像组,使用深度相机获取深度图像组,由该深度图像组将深度图像转换成场景几何呈现,使用该场景几何呈现从该图像组渲染出新图像以生成符合新型相机的视角的重建图像。在该方法中,场景几何可以从点云导出,而点云又可以从来自相机的深度信息导出。相机可以以各种配置的多阵列模式诸如平面中的网格、盒中的网格、面向外的网格、面向内的网格、圆形网格等来布置。多阵列配置可以包含深度相机、图像相机或深度加图像混合相机的任何组合以获得深度信息和图像信息。为了将深度数据与图像数据一起使用,在捕捉场景中的图像之前可以对相机进行预校准。可以使用已知对象、具有已知深度或图案的对象或者可以是场景的对象,通过所有相机或通过校准到其他相机的至少一个相机来对相机进行校准。在本发明的示例性实施方式中,场景几何可以用于确定要在最终图像中使用的光线。最终像素的光线可以被确定为相对于共同位置与新型相机具有相似深度的光线。

创建图像渲染的系统可以使用上述方法,并且该系统可以由一个或多个相机的配置中的任一个组成,其中相机是图像相机、深度相机或图像加深度混合相机的组合。该系统还可以包含用来计算场景几何和渲染图像的处理器以及用来存储输入数据的存储介质。

可以在此示出上面的示例性实施方式的详细描述。

图1a示出了多相机阵列的示例。多相机阵列网格框架1000具有许多单个相机1001-1004。因为它捕捉到不止一个图像,在相机跨越2D轴1005的情况下,集合图像可用于创建三维(3D)新图像或单个对象或场景。在该图中,多相机阵列为正方形图案,相机之间的距离固定。例如,相机1001和相机1003之间的距离与相机1002和相机1004之间的距离相同。在3D轴1005中,y轴指向捕捉到图像的假设对象。x轴和z轴呈现了相机在每个轴上的位置。但是,相机不需要局限于网格图案。相机位置可以是任意的,包括1D阵列。其他示例相机布置包括球形,其中所有相机向内向中间或向外。为了解释阵列的光线的功能,可以将特定的2D阵列1000替代地表示为1维(1D)阵列。

图1b示出了图1a的多相机阵列的1D横截面图。线1100表示网格框架1000。相机1101-相机1104各自表示原网格框架中的列,在本示例中是4个相机。轴线1006现在处于2D并且仅示出x轴和y轴,其中y轴仍然指向可以捕捉图像的相机方向,并且x轴示出了沿该轴的相机位置。

图2示出了具有新型相机的图像相机阵列。在该图中,存在具有图像相机2001-图像相机2004的相机网格2000的2D呈现。还有一个虚拟相机2005,被定位以捕捉特定点2006。为了做到这一点,必须利用来自相机2001的光线2007。该点可以来自空间2008中的对象。

图3示出了确定光线的示例。在示例性网格3000中有两个相机3001和3002。还存在对象3003,在该对象上存在点3004。如果该点位于相机之间,则虚拟相机3007可以使用的光线3008可以来自光线3005或光线3006。

图4a示出了利用计算机生成场景的已知深度来渲染图像的示例性相机阵列,该计算机生成场景放置有对象并且该对象的深度已知。在网格4000中有2台相机4001和4003。4002是从现有相机视角生成的新相机视角。4010是在新图像中渲染的一条光线。有两条光线,来自相机4001的光线4005和来自相机4003的光线4006,它们都可以指向对象4008上的点4007。点4007的深度是已知的,因为对象的深度是事先已知的。

图4b示出了使用对象的未知深度渲染图像的相机的示例性阵列,如图4a那样,其中渲染的深度不同。网格4100对应于网格4000。网格4100具有相机4101和4103。先前的深度4104对应于深度平面4009的深度。图4b示出了简单地使用相同对象4008和对象4109并且使用未知深度,任何深度平面(包括4104和4105的深度平面)可以用于渲染算法。为了准确地渲染对象4109,使用光线4106和光线4107,它们定位到点4108,该点是对象4109和深度平面4105的交叉点。对正在渲染的光线使用不在正确深度平面的其他光线会产生伪像。因此,为了正确重构场景中的对象,知道对象的真实深度是至关重要的。

图4c示出了由于添加来自深度相机的深度信息而生成场景的深度。深度相机的深度是通过索引深度相机的深度图像来确定的,是每个深度图像相对于相机位置的深度值。在示例性实施方式中,两个深度相机4201和4202位于网格4200中。它们各自捕捉场景中的对象4203的深度图像。相机4201从相机4201的角度产生具有值X1、X2和X3的示例性1D深度图像4204,值X1、X2和X3表示对象4203的位势深度值。相机4202从相机4202的角度生成具有对象4203的值Y1、Y2和Y3的示例性1D深度图像。然后可以使用深度图像的组合来生成点云4206。点云被三角测量以获得场景几何。使用三角测量,场景几何可以帮助重新生成对象的深度和表面,生成图像如4207所示。

图5示出了位于多相机阵列的深度相机。在本发明的一个示例性实施方式中,深度相机可以利用图像相机进行校准,使得相对于彼此的位置是已知的。图像相机和深度相机可配置在单个平面5000上,其中所有相机都面向场景5001的相同方向。在该示例中,对于单个平面5000,可以具有由圆圈表示的图像相机诸如图像相机5002和由中心具有“X”的圆圈表示的深度相机诸如深度相机5003。网格5004(从相机的角度看朝向读者)可以定位具有交替的图像相机和深度相机。或者,如网格5005所示,深度相机和图像相机可以被聚类,其中图像相机5006和5007代表图像相机集群中的两个,被分组在网格5005内的3×3子网格中,并且深度相机5008和5009代表深度相机群集中的两个,被分组在网格5005内的3×3子网格中。根据场景、场景深度复杂程度、场景中的对象以及所需的采样和错误率,可以使用不同的相机配置。在另一个可选示例中,网格5010示出了一些相机可以是聚类的而其他相机是分散的。在网格5010中,图像相机,如使用示例性图像相机5011和5012,被分组在子网格中,而深度相机是分散的,如深度相机5013和5014所示。还要注意的是,在这个示例中,有不同数量的深度相机和图像相机。还要注意的是,根据需要,深度相机和图像相机的数量可以不一致,并且深度相机的数量可以比图像相机的数量多,也可以存在相反的情况。同样,相机在网格5010中的布置还有深度相机布置在外部,但是根据渲染质量的使用情况以及场景的特性,该布置可以进行翻转。

在其他示例性实施方式中,图像相机和深度相机可以被配置成从内向外指向的环形或球形,各个点上都有相机捕捉房间场景。图像相机和深度相机可以配置在盒上,盒的每一面都代表一个平面,每个平面都是如前所述的网格。图像相机和深度相机也可以配置为面向内部针对共同点的环形、半环形、球形或半球形。这允许捕捉特定对象而不是环境或场景。在所描述的每种配置中,图像相机和深度相机也可以定位于任意位置,并且图像相机和深度相机可以为任意数量。在其他示例性实施方式中,配置也可以是组合的深度加图像相机,该深度加图像相机在同一图像捕捉中同时捕捉深度和图像。

图6a描绘了深度-图像多相机阵列渲染图像的示例性实施方式的系统。在一个示例性实施方式中,图像相机阵列/网格6000可以用于捕捉一个或多个图像。深度相机阵列/网格6001还用于捕捉场景或场景内对象的深度。处理器6002和处理器6003分别处理来自图像相机阵列6000和深度相机阵列6001的数据。数据可以被立即处理并且新图像可以被渲染出并且被放入存储器6010。此处的存储器可以是以下任何一种:数据库、RAM、闪存、硬盘驱动器或连接到相机6000、相机6001的任何其他物理存储器。相机和存储器6010经由总线6005或6006连接。物理相机配置可以经由网络连接,其中网络可以是WiFi、互联网、内联网等。在任何点,任何信息可以在光场相机的系统中被存储或被处理之前,先单独在云中被处理。云处理可以接收来自全套原始数据、压缩数据、加密数据或由光场相机捕捉的数据的子集中的任何范围。在经由通信介质6004将信息传递给网络6007(其可以是内部网络或云)之后,数据可以进一步存储于存储器6008中。最终,所渲染的数据可以被传递至观看装置6011以被终端用户6009最终观看。

图6b描绘了其中深度-图像多相机阵列渲染图像的系统的另一示例性实施方式。由一个或多个图像相机和一个或多个深度相机组成的多相机阵列6100捕捉图像。图像数据可立即以原始格式置于存储器6102中或立即发送至处理器6103。如果它首先被存储于存储器6102中,则也可以被重放至处理器6103以便之后处理。然后处理器6103可以将经处理的信息输出到任何数量的输出端,诸如显示器6104、头戴式显示器6105、网络6106或其他存储器6107。显示器的例子可以是电视机、监视器、触摸屏、移动设备等。头戴式显示器的示例可以是虚拟现实护目镜、增强现实护目镜、眼镜附件、具有显示器的头盔或平视显示器(HUD)等等。

图7a示出了用于从一个或多个图像相机的图像以及一个或多个深度相机的捕捉深度产生用于渲染的数据的示例性流程。多相机系统7000包含图像相机7001和深度相机7002的混合,其可以以图5中所述的任意方式配置。图像相机7001提供图像捕捉7003,而深度相机7002提供深度捕捉7004。在其他示例性实施方式中,图像和深度可以由图像加深度相机中的同一相机捕捉。深度捕捉7004可以被存储,然后通过使用深度捕捉7004中生成的每个深度图像中的一个或多个将深度捕捉7004转换为点云7005。三角测量7006将点云转换成代表场景几何的三角形。可选地可以创建深度图7007,其表示针对一个或多个图像相机7001的一个或多个像素的各个深度图。这是可选的,因为处理器总是可以使用点云7005实时地进行该制图;然而,为了节省处理时间,更好地是在将信息传递给渲染处理7008之前预先创建深度图7007。除了深度图之外,渲染处理还接收来自较早的三角测量7006的场景几何以及来自较早的图像捕捉7003的图像信息。

图7b描述了取图7a中获取的所有图像和深度值来渲染最终图像的过程。选择场景的视角或角度并选择相机视角或新型相机视角7100。使用先前从点云生成的一个或多个三角测量的几何来创建针对新型相机视角的深度图7101。这可以使用任意数量的深度图生成技术诸如光栅化、光线跟踪等来完成。然后使用针对每个相机创建的组合的相机图像和深度图来生成图像7102的像素值。由于像素出现在最终图像中,其封装了组合的深度和图像信息。最终渲染的图像是输出7103。

图7c示出了从任意新型相机视角计算图像中的像素的处理流程。被渲染的图像由像素组成。对于每个像素,必须确定新型相机的光线7200。光线必须位于相机网格的范围内。如果不是,则光线被忽略或者可以使用像素的任意值,例如使用黑色。该光线被计算为针对新型相机视角的该像素的值。对于特定光线,为该像素选择n个最近相机。所选的相机数量n决定了所需图像的效果,如景深。n模拟相机的光圈,图像使用多少光或光线,因此,这取决于用户确定光圈有多大。

使用新型相机的光线深度,可以从最近相机获取针对该深度的相交光线7202。如果没有来自任意较近相机的光线,那么这些光线会被放弃。如果需要更多光线或信息,还可以扩展n。在7202中,现在具有新型相机和相交阵列的正确深度。来自7202的深度和光线与来自n个最近相机的光线的深度进行比较,其中深度是先前针对每个相机深度图(或者实时计算的每个相机的深度图)计算的。具有相对于共同平面(如输入相机平面)相同深度的光线稍后将被保留用于插值最终图像。那些不正确的被剔除7203。在7203中所有阵列都被认为不正确的情况下,可以保留具有最大深度的光线,因为它可以最大程度减少图像中的伪像。另一种选择是查看相邻光线并进行混叠。换句话说,如果这些相邻光线在错误阈值内具有正确的深度,那么选择的阈值越大,最终渲染图像中可能存在的伪像风险就越大。剩余的光线被插值以创建用于像素的最终值7204。

在图7a至7c中,假设相机已被校准。校准是内在的,这意味着每个相机的相机属性是已知的以便从相机图像计算和提取所需光线,并且校准是外在的,这意味着相机如何相互关联地定位以便将图像映射到它们相对于相机位置在空间中被捕捉的位置。但是,深度相机和图像相机之间还需要进行外部校准,以将图像位置映射到深度图像和最终的点云。执行此操作的一种方法是将对象放入深度相机和彩色相机均可看到并识别该对象的场景中。例如,可以将一个或多个乒乓球放置在不同的位置,并校准深度相机和图像相机。或者,可以使用已知的图案诸如棋盘,其中一些空间是镜子并且以这种方式该对象是可识别的。

图8示出了在光场相机或多相机阵列定位为使得所有相机不能同时看到对象的情况下校准的示例。在图8中,对象8000包围具有平面8006和平面8007的立方体网格8006。在平面8006上有相机8001和相机8002,在平面8007上有相机8003和相机8004。因为平面8006和平面8007面向不同的方向,所以对象8000的所有点可能不会同时可见。然而,使用传递校准,可以使用对象8000的部分校准相机8001至相机8002并使用对象8000的其他部分校准相机8003和相机8004。然后,可以使用对象8000的又一部分来校准相机8002至相机8003。然后,因为所有相机都以某种校准方式被校准到链接的另一台相机,所以整个光场系统都会被校准。

这里具体示出和描述了本发明的几个示例性实施方式。本申请的优点和特征仅是实施方式的代表性样本,并且不是穷尽的和/或排他性的。提供它们仅是为了帮助理解和教导所要求保护的原理。应该理解,它们不代表所有要求保护的全部发明。而且,它们不限于本文描述的技术或设备。替代实施方式可能没有被提出并不是放弃这种替代实施方式。应该理解的是,相对于本文未讨论的那些实施方式(为了不重复的目的),可以利用其他实施方式并且可以在不偏离本文讨论的实施方式的范围和/或精神的情况下进行功能、逻辑、组织、结构和/或拓扑修改。例如,要理解的是,如附图和/或全文中描述的任何程序组件(组件集合)、其他组件和/或任何当前特征集合的任何组合的逻辑和/或拓扑结构不受限于固定的操作次序和/或安排,任何公开的次序都是示例性的,并且不管其顺序如何,所有等同物都被本公开内容所预期。此外,应该理解的是,这些特征不限于顺序执行,可以异步地、协作地、并行地、同时地、同步地和/或类似地执行的任何数量的线程、进程、服务、服务器等等都被本公开内容所预期。因此,这些特征中的一些可能相互矛盾,因为它们不能同时存在于单个实施方式中。类似地,一些特征适用于本发明的一个方面,并且不适用于其他方面。

另外,本公开包括当前未要求保护的其他发明。申请人保留目前未要求保护的发明的所有权利,包括要求保护这些发明、提交其他申请、接续申请、部分接续申请、分案的权利和/或其他类似权利。因此,应该理解的是,本公开的优点、实施方式、示例、功能、特征、逻辑、组织、结构、拓扑和/或其他方面不应被认为是对如权利要求限定的公开内容的限制或对权利要求等同物的限制。应该理解的是,取决于个体、实体和/或企业用户的特定需求和/或特性,数据库配置和/或关系模型,数据类型,数据传输和/或网络框架,语法结构和/或类似物,本发明的各种实施方式可以被实现,从而实现很大的灵活性和定制化。

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