掌桥专利:专业的专利平台
掌桥专利
首页

用于呈现虚拟表示的方法和装置、计算机设备和存储介质

文献发布时间:2023-06-19 11:06:50


用于呈现虚拟表示的方法和装置、计算机设备和存储介质

技术领域

本公开涉及虚拟现实(VR)技术,特别是涉及一种用于呈现真实空间的虚拟表示的方法和装置、计算机设备、存储介质和计算机程序产品。

背景技术

虚拟现实技术已经应用到了多个领域。例如,该技术已经用于展示真实空间(例如,待出售/待租赁的房屋)的内部场景,使得用户能够直观了解真实空间内的各种信息。目前市面上存在的用于呈现真实空间的技术需要对真实空间进行三维建模来生成虚拟现实图像。由于三维建模过程复杂,需要大量的运算能力和处理时间。并且,在三维模型生成之前无法观看该虚拟现实图像。

这可以导致以下问题:1、在在线观看虚拟现实图像的情况下,用户可能需要等待过长的时间,用户体验较差;2、一旦无法正确生成三维模型,就无法产生虚拟现实图像,实用性较差。

发明内容

提供一种缓解、减轻或甚至消除上述问题中的一个或多个的机制将是有利的。

根据本公开的一方面,提供了一种用于呈现真实空间的虚拟表示的方法,包括:获取多个彩色图像和与多个彩色图像分别对应的多个深度图像,多个彩色图像对应于真实空间内多个观测点处观测到的真实空间的相应局部场景,多个深度图像分别包含相应局部场景的深度信息;针对每一个观测点,将多个彩色图像中对应于该观测点的彩色图像和多个深度图像中对应于该彩色图像的深度图像进行叠加,以得到叠加图像;将多个观测点对应的相应叠加图像分别映射到虚拟空间中的多个球体上,以使得每个球体对应于多个观测点中的一个相应观测点并包括多个顶点,每个顶点具有相应的颜色信息和相应的深度信息;基于真实空间内多个观测点之间的相对空间关系,对多个球体的各顶点在虚拟空间中进行空间变换;针对每一个球体的每个顶点,基于该顶点的深度信息对该顶点进行空间编辑;以及针对每一个球体的每个顶点,基于该顶点的颜色信息对该顶点进行着色处理,从而得到真实空间的相应局部场景在虚拟空间中的相应虚拟表示以供呈现。

在一些实施例中,基于该顶点的深度信息对该顶点进行空间编辑包括:使该顶点的坐标沿着该顶点的法向移动一偏移距离,偏移距离对应于该顶点的深度信息。

在一些实施例中,基于该顶点的深度信息对该顶点进行空间编辑还包括:在使该顶点的坐标移动之前:获取该顶点的深度信息;对深度信息表示的深度值进行归一化;以及将归一化后的深度值乘以该顶点所在球体的半径,以得到偏移距离。

在一些实施例中,基于真实空间内多个观测点之间的相对空间关系,对多个球体的各顶点在虚拟空间中进行空间变换,包括:对于每个球体的每个顶点:使用空间变换矩阵对该顶点的坐标进行空间变换,空间变换包括从以下各项所组成的组中选择的至少一项:缩放、旋转和平移。

在一些实施例中,空间变换包括旋转,并且旋转的角度基于该顶点所在球体对应的观测点处观测到的局部场景与多个观测点中的其他观测点处观测到的局部场景的重合程度。

在一些实施例中,空间变换包括平移,并且平移的距离基于该顶点所在球体对应的观测点与多个观测点中的其他观测点之间的相对空间位置。

在一些实施例中,基于该顶点的颜色信息对该顶点进行着色处理包括:将该顶点的颜色信息和该顶点的坐标输入片元着色器,以进行着色处理。

在一些实施例中,上述方法还包括:在视图中呈现相应虚拟表示中的第一虚拟表示,第一虚拟表示对应于多个观测点中的当前观测点。

在一些实施例中,上述方法还包括:响应于检测到指示从当前观测点移动到多个观测点中的另一观测点的用户操作,刷新视图以呈现相应虚拟表示中的第二虚拟表示,第二虚拟表示对应于另一观测点。

在一些实施例中,基于该顶点的深度信息对该顶点进行空间编辑在对多个球体的各顶点在虚拟空间中进行空间变换之前执行。

在一些实施例中,多个球体具有相同的半径。

在一些实施例中,获取多个彩色图像和与多个彩色图像分别对应的多个深度图像包括:从服务器接收多个彩色图像和多个深度图像。

在一些实施例中,上述方法还包括:在获取多个彩色图像和与多个彩色图像分别对应的多个深度图像之前,获取多组原始彩色图像,每组原始彩色图像为在多个观测点中的一个相应观测点处从不同方向采集的彩色图像;以及将每组原始彩色图像合成为相应的单张合成彩色图像,作为对应于相应观测点处观测到的真实空间的局部场景的彩色图像。

在一些实施例中,每组原始彩色图像包括在相应观测点处从上、下、左、右、前、后六个方向分别采集到的真实空间的六张彩色图像。

在一些实施例中,将每组原始彩色图像合成为相应的单张合成彩色图像包括:通过高斯-克吕格投影将该组原始彩色图像合成为合成彩色图像。

在一些实施例中,上述方法还包括:在获取多个彩色图像和与多个彩色图像分别对应的多个深度图像之前:获取多组原始深度图像,每组原始深度图像为在多个观测点中的一个相应观测点处从不同方向采集的深度图像;以及将每组原始深度图像合成为相应的单张合成深度图像,作为包含相应观测点处观测到的真实空间的局部场景的深度信息的深度图像。

根据本公开的另一方面,提供了一种用于呈现真实空间的虚拟表示的装置,包括:图像获取单元,配置成获取多个彩色图像和与多个彩色图像分别对应的多个深度图像,多个彩色图像对应于真实空间内多个观测点处观测到的真实空间的相应局部场景,多个深度图像分别包含相应局部场景的深度信息;图像叠加单元,配置成针对每一个观测点,将多个彩色图像中对应于该观测点的彩色图像和多个深度图像中对应于该彩色图像的深度图像进行叠加,以得到叠加图像;映射单元,配置成将多个观测点对应的相应叠加图像分别映射到虚拟空间中的多个球体上,以使得每个球体对应于多个观测点中的一个相应观测点并包括多个顶点,每个顶点具有相应的颜色信息和相应的深度信息;空间变换单元,配置成基于真实空间内多个观测点之间的相对空间关系,对多个球体的各顶点在虚拟空间中进行空间变换;顶点编辑单元,配置成针对每一个球体的每个顶点,基于该顶点的深度信息对该顶点进行空间编辑;以及着色单元,配置成针对每一个球体的每个顶点,基于该顶点的颜色信息对该顶点进行着色处理,从而得到真实空间的相应局部场景在虚拟空间中的相应虚拟表示以供呈现。

在一些实施例中,顶点编辑单元还配置成:使待编辑顶点的坐标沿着该顶点的法向移动一偏移距离,偏移距离对应于该顶点的深度信息。

在一些实施例中,顶点编辑单元还配置成:获取待编辑顶点的深度信息;对深度信息表示的深度值进行归一化;以及将归一化后的深度值乘以该顶点所在球体的半径,以得到偏移距离。

在一些实施例中,空间变换单元还配置成:对于每个球体的每个顶点,使用空间变换矩阵对该顶点的坐标进行空间变换,空间变换包括从以下各项所组成的组中选择的至少一项:缩放、旋转和平移。

在一些实施例中,空间变换单元包括:旋转单元,旋转单元配置成使用旋转矩阵对顶点的坐标进行旋转,并且旋转的角度基于该顶点所在球体对应的观测点处观测到的局部场景与多个观测点中的其他观测点处观测到的局部场景的重合程度。

在一些实施例中,空间变换单元包括:平移单元,平移单元配置成使用平移矩阵对顶点的坐标进行平移,并且平移的距离基于该顶点所在球体对应的观测点与多个观测点中的其他观测点之间的相对空间位置。

在一些实施例中,着色单元还配置成:将该顶点的颜色信息和该顶点的坐标输入片元着色器,以进行着色处理。

在一些实施例中,上述装置还包括:视图呈现单元,配置成在视图中呈现相应虚拟表示中的第一虚拟表示,第一虚拟表示对应于多个观测点中的当前观测点。

在一些实施例中,视图呈现单元还配置成:响应于检测到指示从当前观测点移动到多个观测点中的另一观测点的用户操作,刷新视图以呈现相应虚拟表示中的第二虚拟表示,第二虚拟表示对应于另一观测点。

在一些实施例中,图像获取单元还配置成:从服务器接收多个彩色图像和多个深度图像。

在一些实施例中,上述装置还包括:图像合成单元,配置成:获取多组原始彩色图像,每组原始彩色图像为在多个观测点中的一个相应观测点处从不同方向采集的彩色图像;以及将每组原始彩色图像合成为相应的单张合成彩色图像,作为对应于相应观测点处观测到的真实空间的局部场景的彩色图像。

在一些实施例中,图像合成单元还配置成:获取多组原始深度图像,每组原始深度图像为在多个观测点中的一个相应观测点处从不同方向采集的深度图像;以及将每组原始深度图像合成为相应的单张合成深度图像,作为包含相应观测点处观测到的真实空间的局部场景的深度信息的深度图像。

根据本公开的又另一方面,提供了一种计算机设备,包括:存储器、处理器以及存储在存储器上的计算机程序,其中,处理器被配置为执行计算机程序以实现上述方法的步骤。

根据本公开的再另一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现上述方法的步骤。

根据本公开的再另一方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序被处理器执行时实现上述方法的步骤。

根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。

附图说明

在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:

图1示出了根据示例性实施例的用于呈现真实空间的虚拟表示的方法的流程图;

图2A和2B分别示出了根据示例性实施例的在图1的方法中获取的示例彩色图像和示例深度图像;

图3示出了根据示例性实施例的在图1的方法中通过将多个观测点对应的相应叠加图像分别映射到虚拟空间中的多个球体上而得到的示例图像;

图4示出了通过对图3中的多个球体进行旋转和平移而得到的示例图像;

图5示出了通过对图4中的每个球体的顶点进行空间编辑而得到的示例图像;

图6示出了对图3中的各个观测点所对应的球体的顶点进行空间编辑后的示例图像;

图7示出了根据另一示例性实施例的用于呈现真实空间的虚拟表示的方法的流程图;

图8示出了根据示例性实施例的在用户观看虚拟表示图像期间视图窗口所呈现的示例视图;

图9示出了根据示例性实施例的在用户切换观测点之后视图窗口所呈现的示例视图;

图10示出了根据示例性实施例的在用户切换观测点之后视图窗口所呈现的示例视图;

图11示出了根据示例性实施例的用于呈现真实空间的虚拟表示的装置的结构框图;并且

图12示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。

具体实施方式

在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。

在本公开中对各种示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。如本文使用的,术语“多个”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。

下面结合附图详细描述本公开的示例性实施例。

图1示出了根据示例性实施例的用于呈现真实空间的虚拟表示的方法100。如图1所示,该方法100一般性地包括步骤110至160,它们可以在例如虚拟现实的终端设备处执行,但是本公开在此方面不受限制。

在步骤110,获取多个彩色图像和与多个彩色图像分别对应的多个深度图像。多个彩色图像对应于真实空间内多个观测点处观测到的真实空间的相应局部场景,并且多个深度图像分别包含相应局部场景的深度信息。

在各实施例中,真实空间可以是例如居民楼、写字楼、工厂、仓库等各种建筑物内部的空间。在一个示例中,可以分别使用图像捕获设备(例如,专业的图像采集设备或普通相机)和深度相机在真实空间内的多个观测点进行全景拍摄,以采集上述多个彩色图像和深度图像。观测点的数量可以取决于真实空间的空间大小。根据一些实施方式,可以在真实空间内部均匀设置多个观测点,以使得通过该多个观测点可以无死角的观察到真实空间内部场景的所有细节。为了便于解释,下文均以居民楼内的套房作为真实空间的示例进行描述,但是本公开的实现不受真实空间的具体种类的限制。

图2A示出了在步骤110中获取的示例彩色图像200A,该示例彩色图像可以是对在套房内的一个观测点处从上、下、左、右、前、后六个方向分别采集的六张彩色图像进行合成(例如,通过高斯-克吕格投影)而得到的单张彩色图像。图2B示出了在步骤110中获取的示例深度图像200B,该示例深度图像是在采集彩色图像200A所处的观测点采集的与图2A中的彩色图像相对应的深度图像。根据一些实施方式,由图像捕获设备和深度相机采集的彩色图像和深度图像然后可以被直接发送到虚拟现实的终端设备以供后续使用。根据一些实施方式,由图像捕获设备和深度相机采集的彩色图像和深度图像可以存储在服务器中,在这种情况下,当用户在请求观看某一真实空间的虚拟表示时,终端设备可以从服务器获取相应的彩色图像和深度图像,并完成虚拟表示图像的处理过程以供用户观看。

在步骤120,针对每一个观测点,将多个彩色图像中对应于该观测点的彩色图像和多个深度图像中对应于该彩色图像的深度图像进行叠加,以得到叠加图像。

例如,将图2A的彩色图像200A与图2B的深度图像200B进行叠加,可以得到与采集彩色图像200A和深度图像200B所处的观测点相对应的叠加图像。叠加图像包括多个像素点,每个像素点均包含该彩色图像中的对应像素点的颜色信息以及该深度图像中的对应像素点的深度信息。叠加过程可以在诸如web GL/open GL等图像处理软件中进行。具体地,首先将彩色图像和深度图像调整为分辨率相同的两张图像,以使得彩色图像和深度图像包含相同数量的像素点。该调整步骤可以通过对图像的放大、缩小、拉伸等操作实现。然后,将彩色图像和深度图像进行重合,使得彩色图像像素点与深度图像的像素点一一对应,从而得到叠加图像。

在步骤130,将多个观测点对应的相应叠加图像分别映射到虚拟空间中的多个球体上,以使得每个球体对应于多个观测点中的一个相应观测点并包括多个顶点,每个顶点具有相应的颜色信息和相应的深度信息。

根据一些实施方式,可以利用诸如web GL/open GL等图像处理软件来创建虚拟空间,并在该虚拟空间内设置多个球体,以用于在虚拟空间中呈现上述多个叠加图像。球体的个数与观测点的个数相同,每张叠加图像都通过映射的方式投影到与其对应的球体上,从而得到多个球体图像。将平面图像投影到球体上是图像处理领域的普通技术人员所熟知的技术,这里不再详细说明。

参考图3,其示出了通过将与真实空间中的五个观测点相对应的相应叠加图像分别映射到虚拟空间中的多个球体301至305上而得到的示例图像300。在该示例中,球体301至305初始地被定位在相同的球心O1至O5处,并且具有相同的半径。因此,球体301至305在图3中被示出为一个重合的球体。在一些实施例中,多个球体301至305半径可以不等,球心也可以不在同一位置。本公开不对多个球体的初始半径和球心位置进行限制。

球体301至305上的图像以点云的形式呈现在虚拟空间中。如图3所示,球体301至305中的每一个球体均包括多个顶点,每个顶点具有相应的颜色信息和相应的深度信息。在计算机图形学中,三维物体(包括球体)通常被表示为三角多面体的集合。如本文使用的,术语“顶点”可以是指这样的三角多面体的几何顶点。通过对多个顶点的操作可以实现对球体位置和形状的调整。具体地,可以通过诸如web GL/open GL等图像处理软件中内置的函数来确定顶点的坐标和数量,以实现对整个球体的位置的精确调整。

在步骤140,基于真实空间内多个观测点之间的相对空间关系,对多个球体的各顶点在虚拟空间中进行空间变换。

空间变换的目的是使得被映射到多个球体的多个叠加图像在虚拟空间中的分布对应于真实空间内的多个观测点之间的相对空间关系。在本实施例中,可以调用诸如webGL/open GL等图像处理软件中内置的空间变换矩阵对顶点的坐标进行空间变换。该空间变换矩阵中的变换参数可以在各观测点处采集彩色图像和深度图像时被确定,并被保存以供后续提供给图像处理软件。空间变换可以包括缩放、旋转和/或平移。例如,在一些实施例中,空间变换包括缩放、旋转和平移中的两者。在另外一些实施例中,空间变换可以同时包含缩放、旋转和平移三者。

图4示出了通过对图3中的多个球体301至305进行旋转和平移而得到的示例图像400。如图4所示,通过空间变换,原本在图3中重合的球体301至305现在被定位在各自不同的球心O1至O5处,并且球心O1至O5之间的相对空间关系与真实空间中的对应观测点之间的相对空间关系一致。

在步骤150,针对每一个球体的每个顶点,基于该顶点的深度信息对该顶点进行空间编辑。

根据一些实施方式,空间编辑可以由诸如web GL/open GL等图像处理软件内置的顶点着色器执行。顶点着色器是一组指令代码,这组指令代码在顶点被渲染时执行。在一个示例中,顶点着色器首先获取球体上每个顶点的顶点坐标,然后使每个顶点的坐标分别沿着该顶点的法向移动一偏移距离,该偏移距离对应于该顶点的深度信息。深度信息实际是表示观测点到真实空间场景的距离的信息,因此基于深度信息分别将相应顶点沿着该顶点的法向进行偏移之后,可以得到真实空间内部场景的轮廓形状。

图5示出了通过对图4中的球体301至305的顶点进行空间编辑而得到的示例图像500,其中球心O1至O5分别代表真实空间中的第一到第五观测点。从图5中可以直观地看出,球心O1至O5之间的相对空间关系现在反映了真实空间中的对应观测点之间的相对空间关系。

可以理解的是,步骤140和步骤150也可以交换执行的顺序。也就是说,可以先对每个球体的各个顶点进行空间编辑,再进行每个球体的空间变换。图6示出了对图3中的球体301至305的顶点进行空间编辑后得到的示例图像600。如图6所示,由于未进行诸如平移的空间变换,球体301至305的球心O1至O5仍然定位在同一位置。但是,由于每个球体上的顶点已经经历了空间编辑(例如,每个顶点的坐标沿着该顶点的法向移动一对应于该顶点的深度信息的偏移距离),因此原本在图3中被示出为“球体”的球体301至305现在已经不再是球体。虚拟空间图像600经过如上面关于步骤140所述的空间变换仍然可以得到如图5所示的虚拟空间图像500。

在步骤160,针对每一个球体的每个顶点,基于该顶点的颜色信息对该顶点进行着色处理,从而得到真实空间的相应局部场景在虚拟空间中的相应虚拟表示以供呈现。

根据一些实施方式,可以使用诸如web GL/open GL等图像处理软件内置的片元着色器对球体的每个顶点进行着色处理。在一个示例中,将该顶点的颜色信息和该顶点的坐标输入片元着色器,并且然后片元着色器可以基于该颜色信息对顶点进行着色,以真实还原真实空间局部场景的色彩分布。在对顶点完成着色之后,就得到了真实空间的最终虚拟表示。该虚拟表示反映了真实空间中的各个局部场景,包括轮廓形状和色彩分布,并可以在终端设备处呈现给用户。

根据本公开的实施例,通过对在真实空间内的多个观测点处采集的彩色图像和深度图像进行处理,可以得到该真实空间的虚拟表示图像,而无需为真实空间建立三维模型。因此,大大减少了终端设备的运算量,减少了生成虚拟表示图像的时间。这有利于减少用户的等待时间,极大地提高用户体验。同时,所需要的原始图像数据较少,生成虚拟表示图像的过程简单,具有较强的实用性。

图7示出了根据另一示例性实施例的用于呈现真实空间的虚拟表示的方法700的流程图。如图7所示,方法700包括步骤701至780。

在步骤701,获取多组原始彩色图像,每组原始彩色图像为在多个观测点中的一个相应观测点处从不同方向采集的彩色图像。在一个示例中,可以在每个观测点处从上、下、左、右、前、后六个方向分别采集真实空间的六张彩色图像。可以理解的是,也可以从更多/更少的方向获得更多/更少的彩色图像,例如可以采集4张、8张、12张彩色图像,本公开在此方面不受限制。

在步骤702,将每组原始彩色图像合成为相应的单张合成彩色图像,作为对应于相应观测点处观测到的真实空间的局部场景的彩色图像。在各实施例中,可以使用各种图像投影方法将每组六张的原始彩色图像投影到同一平面上,从而得到一张合成的单张彩色图像。根据一些实施方式,可以通过高斯-克吕格投影将该组原始彩色图像合成为上述单张合成彩色图像。具体地,首先将六方向的彩色图像组合成立方体的天空盒贴图。然后假想有一个椭圆柱面套在天空盒贴图的立方体外面,并与该立方体相切,椭圆柱的中心轴通过立方体中心,然后将天空盒贴图一定范围内的图像投影到椭圆柱面上,再将此柱面展开即成为投影面。在其他实施方式中,也可以使用其他适当的图像投影方法将六张原始彩色图像合成为单张彩色图像,这里不再一一列举。

在步骤703,获取多组原始深度图像,每组原始深度图像为在多个观测点中的一个相应观测点处从不同方向采集的深度图像。步骤703的操作可以与步骤701的操作类似,只不过步骤703涉及深度相机(或其他深度捕获设备)的使用。

在步骤704,将每组原始深度图像合成为相应的单张合成深度图像,作为包含相应观测点处观测到的真实空间的局部场景的深度信息的深度图像。步骤704的操作可以与步骤702的操作类似,这里不再赘述。

在步骤710,获取多个彩色图像和与多个彩色图像分别对应的多个深度图像。步骤710的操作与上面关于图1描述的步骤110的操作相同,并且为了简洁起见不再赘述。

在步骤720,针对每一个观测点,将多个彩色图像中对应于该观测点的彩色图像和多个深度图像中对应于该彩色图像的深度图像进行叠加,以得到叠加图像。步骤720的操作与上面关于图1描述的步骤120的操作相同,并且为了简洁起见不再赘述。

在步骤730,将多个观测点对应的相应叠加图像分别映射到虚拟空间中的多个球体上,以使得每个球体对应于多个观测点中的一个相应观测点并包括多个顶点。步骤730的操作与上面关于图1描述的步骤130的操作相同,并且为了简洁起见不再赘述。

步骤741至742对应于上面关于图1描述的步骤140,并且详细描述如下。

在步骤741,对多个球体的各顶点进行旋转,并且旋转的角度基于该顶点所在球体对应的观测点处观测到的局部场景与多个观测点中的其他观测点处观测到的局部场景的重合程度。

根据一些实施方式,可以预先设置参考观测点,例如,可以设置位于真实空间中部位置的观测点为参考观测点。然后,将与其他观测点相对应的球体的顶点相对于该参考观测点所对应的球体(下文简称为参考球体)进行旋转操作。为了形成能够实现视点游走功能的虚拟图像,各个观测点所对应的球体相对于参考球体的旋转角度应该与真实世界中在这两个观测点上观察到的局部场景的重合程度一致,从而实现在这两个观测点游走的过程中视角的正确切换。在一个示例中,根据其他观测点(记为观测点1)和参考观测点所观测到的局部场景之间的重合程度,确定将观测点1对应的球体相对于参考球体旋转30°。然后,可以将该旋转角度作为旋转参数输入图像处理软件中,图像处理软件根据该旋转参数生成旋转矩阵,并将该旋转矩阵应用于观测点1对应的球体上的所有顶点,以实现对观测点1的整个球体的旋转操作。使用类似的方法将剩余的观测点的球体依次进行旋转操作,得到旋转完成后的虚拟空间图像。

在步骤742,对多个球体的各顶点进行平移,并且平移的距离基于该顶点所在球体对应的观测点与多个观测点中的其他观测点之间的相对空间位置。

根据一些实施方式,将所有观测点对应的球体相对于参考球体进行平移操作。为了形成能够实现视点游走功能的虚拟图像,每个观测点所对应的球体相对于参考球体的平移距离应该与真实世界中这两个观测点的空间距离一致,从而实现在这两个观测点游走的过程中移动距离的正确表现。例如,假设真实世界中的1m与虚拟空间中的1个单位距离相对应,如果观测点1与参考观测点在真实世界中相距5m,那么将观测点1的球体相对于参考球体平移5个单位距离。进行平移的方向也应该和真实世界中观测点1相对于参考观测点的方向一致。可以将该平移距离作为平移参数输入图像处理软件的程序中,图像处理软件根据该平移参数生成平移矩阵,并将该平移矩阵应用于观测点1对应的球体上的所有顶点,以实现对观测点1对应的整个球体的平移操作。使用类似的方法将剩余的观测点的球体依次进行平移操作,得到旋转并平移完成后的虚拟空间图像,例如,如图4所示的图像400。

可以理解的是,步骤741和步骤242可以交换执行的顺序。也就是说,可以先对球体进行平移操作,再进行旋转操作,同样可以得到如图4所示的虚拟空间图像400。

步骤751至754对应于上面关于图1描述的步骤150,并且详细描述如下。

在步骤751,获取每个顶点的深度信息。根据一些实施方式,由于顶点已经包含深度信息,在步骤751中,图像处理软件的顶点着色器可以直接获取每个顶点的深度信息。

在步骤752,对深度信息表示的深度值进行归一化。

在步骤753,将归一化后的深度值乘以该顶点所在球体的半径,以得到偏移距离。

归一化是一种无量纲处理手段。通过归一化处理可以将深度信息的绝对深度值变成相对于某一预设深度值的相对值。例如,在真实空间中的上述预设深度值可以与虚拟空间中的某一球体半径具有对应关系,则可以通过归一化处理将该球体顶点的深度值变换为其与预设深度值的比值,然后将该比值乘以球体的半径,以得到将要移动的偏移距离。

在步骤754,使每个顶点的坐标分别沿着该顶点的法向移动一偏移距离,该偏移距离对应于该顶点的深度信息。

使用步骤752至754的操作将剩余的观测点的球体的每个顶点依次进行空间编辑,得到完成空间编辑后的虚拟空间图像,例如,如图5所示的图像500。

在步骤760,针对每一个球体的每个顶点,基于该顶点的颜色信息对该顶点进行着色处理,从而得到真实空间的相应局部场景在虚拟空间中的相应虚拟表示以供呈现。步骤760的操作与上面关于图1描述的步骤160的操作相同,并且为了简洁起见不再赘述。

在步骤770,在视图中呈现相应虚拟表示中的第一虚拟表示,第一虚拟表示对应于多个观测点中的当前观测点。

根据一些实施方式,用户可以打开预先安装在终端设备中的虚拟现实应用,以观看真实空间的虚拟表示图像。在一个示例中,虚拟现实应用例如可以是网上房源查看等利用VR技术观看房屋内部场景的应用。在进入应用之后,可以先向用户展示房源列表以供选择。在用户选择完其希望查看的房源之后,可以在视图窗口呈现相应的虚拟表示以供用户观看。另外,可以预先选定或自动选定一观测点,并从该选定的观测点进行观看,视图窗口会呈现相应的虚拟表示作为当前观测点。图8示出了在用户观看虚拟表示图像期间视图窗口所呈现的示例视图800,其中第三观测点(图8中未示出)为当前观测点。用户可以通过对终端设备的输入装置(例如,鼠标、键盘等)的操作,实现在观测点之间的切换,例如到第一观测点OB1或第二观测点OB2的切换,从而能够从不同视角观看真实空间的局部场景。

在步骤780,响应于检测到指示从当前观测点移动到多个观测点中的另一观测点的用户操作,刷新视图以呈现相应虚拟表示中的第二虚拟表示,第二虚拟表示对应于另一观测点。

在观看过程中,用户可以通过对输入装置的操作,实现在不同观测点之间的游走。在一个示例中,如图8所示,当用户点击视图800中的第一观测点OB1或第二观测点OB2时,视图窗口将呈现第一观测点OB1或第二观测点OB2对应的虚拟表示图像。如图9所示,在将视角切换到第一观测点OB1时,视图窗口刷新视图,并显示与第一观测点OB1相对应的虚拟表示图像900。如图10所示,在将视角切换到第二观测点OB2时,视图窗口刷新视图,并显示与第二观测点OB2相对应的虚拟表示图像1000。在第二观测点OB2处,如图10所示,可以进一步将视角切换到第四观测点OB4或第五观测点OB5。通过上述操作可以实现用户在所有观测点之间的视角切换,从而实现用户在整个真实空间内部游走的模拟效果。在一些实施例中,在视图窗口刷新视图的过程中,可以对前后两幅视图进行渐变处理,以使得视角切换过程更加自然。

虽然各个操作在附图中被描绘为按照特定的顺序,但是这不应理解为要求这些操作必须以所示的特定顺序或者按顺行次序执行,也不应理解为要求必须执行所有示出的操作以获得期望的结果。

图11示出了根据示例性实施例的用于呈现真实空间的虚拟表示的装置1100的结构框图。如图11所示,该装置1100包括图像获取单元1110、图像叠加单元1120、映射单元1130、空间变换单元1140、顶点编辑单元1150、以及着色单元1160。

图像获取单元1110配置成获取多个彩色图像和与多个彩色图像分别对应的多个深度图像。多个彩色图像对应于真实空间内多个观测点处观测到的真实空间的相应局部场景,并且多个深度图像分别包含相应局部场景的深度信息。

图像叠加单元1120配置成针对每一个观测点,将多个彩色图像中对应于该观测点的彩色图像和多个深度图像中对应于该彩色图像的深度图像进行叠加,以得到叠加图像。叠加图像包括多个像素点,每个像素点均包含该彩色图像中的对应像素点的颜色信息以及该深度图像中的对应像素点的深度信息。

映射单元1130配置成将多个观测点对应的相应叠加图像分别映射到虚拟空间中的多个球体上,以使得每个球体对应于多个观测点中的一个相应观测点并包括多个顶点,每个顶点具有相应的颜色信息和相应的深度信息。

空间变换单元1140配置成基于真实空间内多个观测点之间的相对空间关系,对多个球体的各顶点在虚拟空间中进行空间变换。

顶点编辑单元1150配置成针对每一个球体的每个顶点,基于该顶点的深度信息对该顶点进行空间编辑。

着色单元1160配置成针对每一个球体的每个顶点,基于该顶点的颜色信息对该顶点进行着色处理,从而得到真实空间的相应局部场景在虚拟空间中的相应虚拟表示以供呈现。

顶点编辑单元1150还配置成:使待编辑顶点的坐标沿着该顶点的法向移动一偏移距离,偏移距离对应于该顶点的深度信息。

在一些实施例中,顶点编辑单元1150还配置成:获取待编辑顶点的深度信息;对深度信息表示的深度值进行归一化;以及将归一化后的深度值乘以该顶点所在球体的半径,以得到偏移距离。

在一些实施例中,空间变换单元1140还配置成:对于每个球体的每个顶点,使用空间变换矩阵对该顶点的坐标进行空间变换。空间变换可以包括缩放、旋转和/或平移。

在一些实施例中,空间变换单元1140可以包括旋转单元1141和平移单元1142。旋转单元1141配置成使用旋转矩阵对顶点的坐标进行旋转,并且旋转的角度基于该顶点所在球体对应的观测点处观测到的局部场景与多个观测点中的其他观测点处观测到的局部场景的重合程度。平移单元1142配置成使用平移矩阵对顶点的坐标进行平移,并且平移的距离基于该顶点所在球体对应的观测点与多个观测点中的其他观测点之间的相对空间位置。

在一些实施例中,着色单元1160还配置成将该顶点的颜色信息和该顶点的坐标输入片元着色器,以进行着色处理。

在一些实施例中,装置1100还可以包括视图呈现单元1170,视图呈现单元1170配置成在视图中呈现相应虚拟表示中的第一虚拟表示,第一虚拟表示对应于多个观测点中的当前观测点。

在一些实施例中,视图呈现单元1170还配置成响应于检测到指示从当前观测点移动到多个观测点中的另一观测点的用户操作,刷新视图以呈现相应虚拟表示中的第二虚拟表示,第二虚拟表示对应于另一观测点。

在一些实施例中,图像获取单元1110还配置成从服务器接收多个彩色图像和多个深度图像。

在一些实施例中,装置1100还可以包括图像合成单元1180,其被配置成:获取多组原始彩色图像,每组原始彩色图像为在多个观测点中的一个相应观测点处从不同方向采集的彩色图像;以及将每组原始彩色图像合成为相应的单张合成彩色图像,作为对应于相应观测点处观测到的真实空间的局部场景的彩色图像。

在一些实施例中,图像合成单元1180还配置成:获取多组原始深度图像,每组原始深度图像为在多个观测点中的一个相应观测点处从不同方向采集的深度图像;以及将每组原始深度图像合成为相应的单张合成深度图像,作为包含相应观测点处观测到的真实空间的局部场景的深度信息的深度图像。

应当理解,图11中所示装置1100的各个单元可以与参考图7描述的方法700中的各个步骤相对应。由此,上面针对方法700描述的操作、特征和优点同样适用于装置1100及其包括的单元。为了简洁起见,某些操作、特征和优点在此不再赘述。

虽然上面参考特定单元讨论了特定功能,但是应当注意,本文讨论的各个单元的功能可以分为多个单元,和/或多个单元的至少一些功能可以组合成单个单元。本文讨论的特定单元执行动作包括该特定单元本身执行该动作,或者替换地该特定单元调用或以其他方式访问执行该动作(或结合该特定单元一起执行该动作)的另一个组件或单元。因此,执行动作的特定单元可以包括执行动作的该特定单元本身和/或该特定单元调用或以其他方式访问的、执行动作的另一单元。

还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图11描述的各个单元可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些单元可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些单元可以被实现为硬件逻辑/电路。例如,在一些实施例中,上面关于图11描述的单元中的一个或多个可以一起被实现在片上系统(System on Chip,SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(Central Processing Unit,CPU)、微控制器、微处理器、数字信号处理器(Digital Signal Processor,DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。

根据本公开的一方面,提供了一种计算机设备,其包括存储器、处理器以及存储在存储器上的计算机程序。该处理器被配置为执行计算机程序以实现上文描述的任一方法实施例的步骤。

根据本公开的一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。

根据本公开的一方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。

在下文中,结合图12描述这样的计算机设备、非暂态计算机可读存储介质和计算机程序产品的说明性示例。

图12示出了能够用于实现本公开的实施例的示例性电子设备1200的结构框图。电子设备1200是可以应用于本公开的各方面的硬件设备的示例。术语电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图12所示,设备1200包括计算单元1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序,来执行各种适当的动作和处理。在RAM 1203中,还可存储设备1200操作所需的各种程序和数据。处理单元1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。

设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206、输出单元1207、存储单元1208以及通信单元1209。输入单元1206可以是能向设备1200输入信息的任何类型的设备,输入单元1206可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元1207可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1208可以包括但不限于磁盘、光盘。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。

处理单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。处理单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理单元1201执行上文所描述的各个方法和处理,例如用于呈现真实空间的虚拟表示的方法。例如,在一些实施例中,用于呈现真实空间的虚拟表示的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM 1203并由计算单元1201执行时,可以执行上文描述的用于呈现真实空间的虚拟表示的方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行用于呈现真实空间的虚拟表示的方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开的技术方案所期望的结果,本文在此不进行限制。

虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本公开的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。

相关技术
  • 用于呈现虚拟表示的方法和装置、计算机设备和存储介质
  • 用于呈现虚拟表示的方法和装置、计算机设备和存储介质
技术分类

06120112808657