用于管理三维模型的方法、装置、设备和介质与流程

文档序号:33152815发布日期:2023-02-03 23:11阅读:22来源:国知局
用于管理三维模型的方法、装置、设备和介质与流程

1.本公开的示例性实现方式总体涉及虚拟漫游,特别地涉及用于在虚拟漫游应用中管理三维模型的方法、装置、设备和计算机可读存储介质。


背景技术:

2.随着数字化技术的发展,已经开发出了多种虚拟漫游应用。可以在虚拟漫游应用中加载三维模型,并且可以在虚拟漫游应用的虚拟场景中进行漫游,以便感受身临其境的视觉效果。出于数据采集设备等的原因,生成的三维模型中可能会出现空洞。此时,如何以更为方便并且有效的方式来处理三维模型中的空洞、进而以近似真实的效果来在虚拟漫游模型中呈现三维模型,成为一个亟待解决的问题。


技术实现要素:

3.在本公开的第一方面,提供了一种用于管理三维模型的方法。在该方法中,获取将在虚拟漫游应用中呈现的真实场景的全景图像和三维模型。在全景图像的视点处加载三维模型和三维模型的包围盒模型,包围盒模型具有初始尺寸并且初始尺寸大于三维模型的尺寸。基于三维模型的尺寸调整包围盒模型的尺寸,以使得经调整的包围盒模型的外轮廓与三维模型的外轮廓之间的距离满足预定阈值条件。
4.在本公开的第二方面,提供了一种用于管理三维模型的装置。该装置包括:获取模块,被配置用于获取将在虚拟漫游应用中呈现的真实场景的全景图像和三维模型;加载模块,被配置用于在全景图像的视点处加载三维模型和三维模型的包围盒模型,包围盒模型具有初始尺寸并且初始尺寸大于三维模型的尺寸;以及调整模块,被配置用于基于三维模型的尺寸调整包围盒模型的尺寸,以使得经调整的包围盒模型的外轮廓与三维模型的外轮廓之间的距离满足预定阈值条件。
5.在本公开的第三方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令在由至少一个处理单元执行时使设备执行根据本公开第一方面的方法。
6.在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时使处理器实现根据本公开第一方面的方法。
7.应当理解,本内容部分中所描述的内容并非旨在限定本公开的实现方式的关键特征或重要特征,也不用于限制本公开的范围。本公开的其他特征将通过以下的描述而变得容易理解。
附图说明
8.在下文中,结合附图并参考以下详细说明,本公开各实现方式的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其
中:
9.图1a示出了本公开的实现方式能够在其中实现的示例环境的框图;
10.图1b示出了根据一些技术方案的在虚拟漫游应用中呈现的内容的框图;
11.图2示出了根据一些技术方案的用于管理三维模型的过程的框图;
12.图3示出了根据本公开的一些实现方式的用于管理三维模型的过程的框图;
13.图4示出了根据本公开的一些实现方式的基于全景图像的类型来确定包围盒模型的形状的框图;
14.图5示出了根据本公开的一些实现方式的基于三维模型的外轮廓来确定包围盒模型的形状的框图;
15.图6示出了根据本公开的一些实现方式的用于调整包围盒模型的框图;
16.图7a和7b分别示出了根据本公开的一些实现方式的在空洞之后呈现包围盒模型的框图;
17.图8示出了根据本公开的一些实现方式的利用包围盒模型来补偿三维模型中的空洞的过程的框图;
18.图9示出了根据本公开的一些实现方式的用于管理三维模型的方法的流程图;
19.图10示出了根据本公开的一些实现方式的用于管理三维模型的装置的框图;以及
20.图11示出了能够实施本公开的多个实现方式的设备的框图。
具体实施方式
21.下面将参照附图更详细地描述本公开的实现方式。虽然附图中示出了本公开的某些实现方式,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实现方式,相反,提供这些实现方式是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实现方式仅用于示例性作用,并非用于限制本公开的保护范围。
22.在本公开的实现方式的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实现方式”或“该实现方式”应当理解为“至少一个实现方式”。术语“一些实现方式”应当理解为“至少一些实现方式”。下文还可能包括其他明确的和隐含的定义。如本文中所使用的,术语“模型”可以表示各个数据之间的关联关系。例如,可以基于目前已知的和/或将在未来开发的多种技术方案来获取上述关联关系。
23.可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
24.可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当根据相关法律法规通过适当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
25.例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
26.作为一种可选的但非限制性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式,例如可以是弹出窗口的方式,弹出窗口中可以以文字的方式呈现提示信息。此外,弹出窗口中还可以承载供用户选择“同意”或“不同意”向电子设备提供个人信息的选择控件。
27.可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其他满足相关法律法规的方式也可应用于本公开的实现方式中。
28.示例环境
29.已经开发出了多种虚拟漫游应用,可以在虚拟漫游应用中加载三维模型,并且可以在虚拟漫游应用的虚拟场景中进行漫游。在三维模型的制作过程中,可以利用传感器设备来采集真实环境的中的真实对象的数据,并且建立三维模型。然而,在采集过程中,真实环境中的例如镜子、玻璃、电视、地毯等并不能按照期望来反射传感器设备发出的波束,这导致在三维模型中的相应位置处可能会出现空洞。
30.参见图1a和图1b描述有关应用环境的更多细节,该图1a示出了本公开的实现方式能够在其中实现的示例环境的框图100a。如图1所示,可以使用传感器设备来在真实场景110中采集真实对象的三维数据。真实场景110可以包括多个对象,例如天花板、墙壁、地板和墙壁上的镜子120,等等。当传感器设备朝向各个对象发射波束时,天花板、墙壁和地板等对象可以反射来自传感器设备的波束。此时传感器设备可以基于接收到的回波来确定与天花板、墙壁和地板等对象的距离。然而,由于镜子120执行镜面反射,这导致传感器设备并不能接收到足以确定镜子120的距离的回波。此时,在生成的三维模型中的镜子120所在的区域可能会出现空洞。
31.图1b示出了根据一些技术方案的在虚拟漫游应用中呈现的内容的框图1b。可以在虚拟漫游应用中加载具有空洞140的三维模型150,空洞140的位置并不存在面片结构,这使得可以透过空洞140看到三维模型150背后的模型。通常而言,可以设置天空包围盒、向天空包围盒表面映射纹理,并且可以在三维模型150的外部加载天空包围盒。然而,由于三维模型150与天空包围盒之间的距离较大,这使得在虚拟场景130中漫游时,透过空洞140看到的天空包围盒表面的纹理的变化速度与空洞140周边的墙壁的纹理的变化速度严重不一致。
32.参见图2描述有关变化速度的更多细节,该图2示出了根据一些技术方案的用于管理三维模型的过程的框图。图2以俯视图示出了虚拟场景中的三维模型150,该三维模型150包括空洞140,并且空洞140的边缘分别如点a和点b所示。通常而言,为了在虚拟漫游应用中设置初始视点,可以加载包围盒模型210并且将包围盒模型210的纹理(也即全景图像)的拍摄视点设置为初始视点。包围盒模型210具有较大的尺寸以便容纳将被加载到虚拟漫游应用中的全部三维模型150。此时,包围盒模型210在三维模型150外部。
33.可以向包围盒模型210赋予纹理,例如可以将在真实场景中的某个位置(诸如,中心位置或者其他位置)拍摄的全景图像映射至包围盒模型210。以此方式,在三维模型150外部将呈现具有该全景图像的包围盒模型210。如图2所示,假设用户(也即,表示用户视点的虚拟相机)从虚拟场景中的点p1移动至点p2,如果用户位于点p1与点pm(p1和p2的中心点)之间的位置,则在虚拟漫游场景中呈现在点p1处拍摄的全景图像220。如果用户位于点pm与点p2之间的位置,则呈现在点p2处拍摄的全景图像230。由于三维模型150包括空洞140,这导致用户可以透过空洞140看到包围盒模型210。
34.假设用户移动到点pm,则空洞140边缘的点a的颜色取值为从点p1到点a的射线与包围盒模型210的交点的颜色ca。如果从空洞140内的临近点a的位置投影到包围盒模型的位置c,则从临近点a的位置看到的颜色值为从点p1到点c的射线与包围盒的交点的颜色cc。由于三维模型150上的点a的颜色与包围盒模型210上的点c的颜色不同,即ca≠cc,这导致当移动到点pm时透过空洞140看到的颜色与三维模型150上颜色是不连续的,并且在空洞140中的纹理明显区别于三维模型150的空洞140周围的纹理。
35.通常而言,为了确保包围盒模型210可以容纳不同尺寸的三维模型150,通常将包围盒模型210的尺寸设置为远大于三维模型150的尺寸。这导致当用户在虚拟场景中移动时,用户与空洞140周边区域内的三维模型150的距离和用户与透过空洞140看到的包围盒模型210之间的距离存在差异。如果距离较近则纹理移动比较慢;如果距离较远则纹理移动变快,也即纹理的投影移动速度比较快。这使得用户可以明确地感觉到空洞140的存在,并且降低虚拟场景的视觉感受。此时,如何以更为方便并且有效的方式来处理三维模型中的空洞、进而以近似真实的效果来在虚拟漫游模型中呈现三维模型,成为一个亟待解决的问题。
36.管理三维模型的概要过程
37.为了解决上述技术方案中的不足,根据本公开的一个示例性实现方式,提出了一种用于管理三维模型的技术方案。参见图3描述管理三维模型的概要,该图3示出了根据本公开的一些实现方式的用于管理三维模型的过程的框图300。如图3所示,可以获取将在虚拟漫游应用中呈现的真实场景的全景图像310和三维模型150。可以基于全景图像310的视点320(也即,全景图像310的拍摄点)来设置虚拟漫游应用的初始视点。
38.可以在全景图像的视点320处加载三维模型150和三维模型150的包围盒模型210。在初始阶段,包围盒模型210具有初始尺寸,并且初始尺寸可以大于(例如,远远大于)三维模型150的尺寸。换言之,包围盒模型210在初始阶段可以笼罩三维模型150。进一步,可以基于三维模型150的尺寸来调整包围盒模型210的尺寸,以使得经调整的包围盒模型330的外轮廓与三维模型150的外轮廓之间的距离变小并且小于或者等于预定阈值340。
39.利用本公开的示例性实现方式,包围盒模型210的尺寸略大于三维模型150的尺寸,并且两者之间的尺寸差异是由预定阈值340来限定的。以此方式,包围盒模型210和三维模型150的尺寸处于相似的数量级,并且相对于常规技术方案的适合于全部三维模型的大型包围盒模型而言,经调整的包围盒模型330在三维模型150附近包裹三维模型150并且更为靠近三维模型150。由此使得从用户的视点看到的空洞140内部(也即透过空洞140看到的包围盒模型330中的纹理)以及空洞140外部(也即看到的三维模型150中的纹理)的纹理的移动速度相似。由此,可以降低用户移动过程中空洞140的不良视觉感受。
40.利用本公开的示例性实现方式,不必逐一检查三维模型中的每个面片中是否存在空洞,而是可以直接基于三维模型150的尺寸来设置包围盒模型的尺寸并且使得包围盒模型紧紧包裹三维模型150。以此方式,不论在三维模型150中是否存在空洞,在三维模型150外部的包围盒模型210可以在需要(也即三维模型150中存在空洞)时降低空洞的不良视觉体检。即使三维模型150中不存在空洞,紧邻三维模型150部署包围盒模型210并不会增加虚拟漫游应用的计算开销。因而,包围盒模型210为不同尺寸和形状的三维模型提供了统一的空洞处理技术方案,因而可以降低逐一处理每个三维模型的相关开销。
41.管理三维模型的详细过程
42.已经参见图3描述管理三维模型150的概要,在下文中,将描述基于三维模型来生成和调整包围盒模型的更多细节。根据本公开的一个示例性实现方式,可以获取将在虚拟漫游应用中呈现的真实场景的全景图像310和三维模型150。将会理解,在此的全景图像310可以是预先拍摄的用作虚拟漫游应用的初始视点的全景图像,并且三维模型150可以是基于目前已知的和/或将在未来开发的多种技术(例如,基于三维扫描获得的点云数据重建)来获得的三维模型。
43.进一步,可以生成包围盒模型210,并且可以在全景图像310的视点320处加载获取的三维模型150和三维模型150的包围盒模型210。首先描述如何确定包围盒模型210的形状。可以基于多种方式来确定包围盒模型210的形状,图4示出了根据本公开的一些实现方式的基于全景图像310的类型来确定包围盒模型210的形状的框图400。如图4所示,可以基于全景图像310的类型来确定包围盒模型210的形状。
44.根据本公开的一个示例性实现方式,如果全景图像310的类型为立方体类型410,也即,全景图像310包括视点6个方向的6个图像(前视图、后视图、左视图、右视图、上视图、下视图),可以生成立方体类型的包围盒模型412。将会理解,立方体类型的包围盒模型412更加适合于在6个方向呈现原始全景图像310中的6个图像,因而可以更为充分地利用原始采集到的全景图像310中的周边环境信息,并且避免全景图像的类型转换期间造成的丢失信息的风险。
45.根据本公开的一个示例性实现方式,如果全景图像310的类型为球体类型420,例如,全景图像310为长宽比为2:1的图像(或者圆形图像),则该全景图像310更加适合于被映射至球体形状的包围盒模型422。此时,可以生成球体类型的包围盒模型422。将会理解,由于此类全景图像与球体的球面坐标之间的映射关系较为简单,生成球体类型的包围盒模型422可以降低后续纹理映射的复杂度。
46.已经参见图4描述了基于全景图像310来确定包围盒模型210的形状的过程,备选地和/或附加地,可以基于三维模型150来确定包围盒模型210的形状。例如,可以基于三维模型150的外轮廓来确定包围盒模型210的形状。假设三维模型150是矩形体的建筑模型,则可以生成立方体类型的包围盒模型。将会理解,在此包围盒模型210的矩形体的三个边可以具有相同或者不同的边长。例如,可以基于建筑模型的最长边来生成具有相等边长的立方体。备选地和/或附加地,可以基于建筑模型的三个边长的比例来生成具有不同边长的矩形体。
47.参见图5描述三维模型涉及不规则形状的情况,图5示出了根据本公开的一些实现方式的基于三维模型的外轮廓来确定包围盒模型的形状的框图500。该图5示出了三维模型510的俯视图,如图5所示,可以基于三维模型510在地平面上的投影的外轮廓形状,来生成相应的包围盒模型520。具体地,包围盒模型520在地平面上的投影的外轮廓形状可以与三维模型510的投影的外轮廓形状相同。例如,可以将三维模型510的外轮廓进行放大,从而确定包围盒520。
48.利用本公开的示例性实现方式,生成的包围盒模型520的形状与三维模型510的形状是类似的,因而包围盒模型520的表面和三维模型510的表面具有相同变化趋势,由此可以使得包围盒模型520的表面更加匹配于三维模型510的表面,并且增加包围盒模型520与
三维模型510之间的贴合度。以此方式,可以避免包围盒模型的某些表面可以贴合三维模型、然而包围盒模型的其他表面不能贴合三维模型的情况。由此,通过增强包围盒模型与三维模型之间的贴合度,可以进一步降低用户在漫游过程中对于空洞的不良视觉体验,进而增强虚拟漫游应用的用户体验。
49.上文已经描述了确定包围盒模型的形状进而生成具有初始尺寸的包围盒模型的过程。将会理解,在此的初始尺寸可以被设置为远大于三维模型150的尺寸。例如,对于不同的三维模型150而言,该初始尺寸可以具有相同或者不同的数值。例如,可以为虚拟漫游应用设置为相同的较大初始尺寸。对于小型室内导航应用而言,可以将该初始尺寸设置为例如边长为500米(或者其他数据)的立方体包围盒模型,以便该包围盒模型可以容纳将被加载的各个三维模型。以此方式,可以以统一的方式处理每个三维模型,因而避免单独处理每个三维模型的相关人力开销和计算资源方面的开销。
50.在已经生成了包围盒模型210的情况下,可以在全景图像310的视点320处加载三维模型150和三维模型150的包围盒模型210。在此的视点320可以是虚拟漫游应用的初始视点,例如,可以将在真实场景的中心位置处拍摄的图像作为初始的全景图像,此时初始视点将对应于真实场景的中心位置,并且加载的三维模型150和包围盒模型210均位于该初始视点,也即三维模型150和包围盒模型210均位于虚拟场景的中心位置。
51.根据本公开的一个示例性实现方式,可以基于三维模型150的尺寸调整包围盒模型210的尺寸,以使得包围盒模型210的外轮廓与三维模型150的外轮廓之间的距离满足预定阈值条件(例如,小于或者等于预定阈值)。图6示出了根据本公开的一些实现方式的用于调整包围盒模型210的框图600。如图6所示,可以基于预定阈值340、三维模型150的尺寸610、以及包围盒模型210的初始尺寸620,确定包围盒模型的调整后尺寸630。进一步,可以将包围盒模型210缩放至调整后的尺寸630,以便获得调整后的包围盒模型330。
52.在此,可以基于多种方式确定预定阈值340。例如,可以将预定阈值340设置为固定的默认值(例如,0.5米或者1米,等等)。备选地和/或附加地,可以基于三维模型140的尺寸610,确定预定阈值340。具体地,可以将预定阈值40设为三维模型150的尺寸610的预定比例(例如,5%、10%或者其他比例)。
53.假设三维模型150的尺寸610为10米
×
10米
×
3米的矩形体,此时可以基于三维模型150的在水平面方向的边长10米来确定预定阈值340为10
×
5%=0.5米。此时,包围盒模型330的尺寸可以是(10+0.5
×
2)米
×
(10+0.5
×
2)米
×
(2+0.5
×
2)米=11米
×
11米
×
4米。备选地和/或附加地,还可以分别处理三维模型150的长、宽、高,并且在三个维度确定各自的预定阈值。将会理解,由于包围盒模型330需要容纳三维模型150,此时包围盒模型的调整后的尺寸630应当大于三维模型150的尺寸610。
54.利用本公开的示例性实现方式,可以预先定义三维模型150的尺寸340和调整后的包围盒模型330的尺寸之间的关联关系。可以确保包围盒模型330总是出现在空洞140外部的预定阈值处,以此方式,一方面可以降低空洞140的不良视觉体验,另一方面可以避免包围盒模型330与三维模型150之间距离过近而带来的闪烁问题。
55.根据本公开的一个示例性实现方式,可以缩小包围盒模型的尺寸,例如,可以沿着从初始尺寸到基于预定阈值340所得的调整后尺寸630的方向,将包围盒模型的尺寸从初始尺寸缩小至调整后的尺寸630。利用本公开的示例性实现方式,仅需简单的数学计算即可确
定包围盒模型330的调整后的尺寸。
56.根据本公开的一个示例性实现方式,在使用虚拟漫游应用期间可以仅调整一次包围盒模型的尺寸。备选地和/或附加地,可以基于用户的漫游位置来多次调整包围盒模型的尺寸。将会理解,当包围盒模型过于靠近三维模型时,由于三维模型150与包围盒模型210中的相应面片的距离过于靠近,这可能会导致面片闪烁的问题。在此的靠近是相对于虚拟漫游应用中的虚拟相机与面片之间的距离而言的。此时,可以基于虚拟相机与三维模型150的外轮廓中的面片的距离来调整预定阈值,进而调整包围盒模型的尺寸。
57.根据本公开的一个示例性实现方式,假设虚拟相机与面片的距离较大,则可以适当增加预定阈值(也即将包围盒模型设置为对应于较大的缩放系数);假设虚拟相机与面片的距离较小,则可以适当减少预定阈值(也即将包围盒模型设置为对应于较小的缩放系数)。利用本公开的示例性实现方式,可以在防止闪烁和降低空洞造成的不良视觉体验之间进行平衡,从而改进用户的漫游体验。
58.根据本公开的一个示例性实现方式,在虚拟场景130中呈现的内容是基于虚拟漫游应用中的虚拟相机的位置确定的。换言之,可以基于虚拟漫游应用中的虚拟相机的位置,呈现三维模型140和包围盒模型330。
59.根据本公开的一个示例性实现方式,包围盒模型330包括模型的三维结构和相应的纹理两部分。在初始阶段,可以将全景图像310作为包围盒模型330的纹理映射至包围盒模型330。可以基于目前已知的和/或将在未来开发的多种映射方法来确定纹理坐标与包围盒模型的三维坐标之间的映射关系,在本公开中将不再赘述。根据本公开的一个示例性实现方式,可以将全景图像310映射至包围盒模型330的表面。进一步,可以加载具有纹理的包围盒模型330,并且在虚拟漫游应用中呈现表面覆盖有全景图像310的包围盒模型330。例如,在空洞140背后的包围盒模型330的表面处,可以呈现全景图像310中的部分,也即,全景图310中的镜面范围的内容。
60.图7a示出了根据本公开的一些实现方式的在空洞之后呈现包围盒模型的框图700a。利用本公开的示例性实现方式,包围盒模型330的表面处将呈现全景图像310中的相应部分。以此方式,可以利用全景图像中的相应部分来补偿三维模型150中的空洞140的镂空效果。将会理解,尽管可以在空洞140之后显示全景图像310中的一部分并且缓和镂空效果,然而此时显示的内容并不一定总是匹配于用户的当前位置。
61.假设最初用作纹理的全景图像310是在镜子左侧采集的,然而当前用户位于镜子右侧。此时,包围盒模型的纹理将会与用户的当前位置不匹配,这导致用户看到的镜子区域的内容是错误的。将会理解,随着用户在虚拟场景中不断移动,用户所看到的周边景象将会不断变化。具体而言,当用户位于镜子左右两侧时所看到的镜子区域的内容将会完全不同。此时,可以基于用户位置处的虚拟相机的位置,选择与位置相匹配的全景图像,并且利用选择的全景图像更新包围盒模型的纹理。
62.图7b示出了根据本公开的一些实现方式的在空洞之后呈现包围盒模型的框图700b。如图7b所示,可以在虚拟场景130中呈现三维模型150,并且该三维模型150具有空洞140。进一步,在三维模型150之后,可以呈现包围盒模型330的一部分(也即,透过空洞140看到的部分)。可以基于用户的当前位置,来选择拍摄位置最为靠近该当前位置的全景图像710。进一步,可以将选择的全景图像710作为纹理映射至包围盒模型330,以便在三维模型
150中的空洞140之后,呈现将选择的全景图像710作为纹理的包围盒模型330。
63.利用本公开的示例性实现方式,由于选择的全景图像710的拍摄位置位于用户的当前位置附近,因而该全景图像710的内容更加符合用户在当前位置处所看到的周边景物。以此方式,可以以更高的逼真度来呈现虚拟场景,进而提高虚拟现实应用的用户体验。
64.图8示出了根据本公开的一些实现方式的利用包围盒模型来补偿三维模型150中的空洞140的过程的框图800。如图8所示,三维模型150外部存在包围盒模型330(具有匹配于三维模型150的尺寸的调整后尺寸)。此时,在用户从点p1移动至点p2期间,如果用户位于点p1和pm之间的位置,则包围盒模型330的纹理为在点p1处拍摄的全景图像220。如果用户位于点pm和p2之间的位置,则包围盒模型330的纹理为在点p2处拍摄的全景图像230。
65.由于包围盒模型330与三维模型150之间的距离较小,使得包围盒模型330可以在近距离包裹三维模型150。以此方式,可以缓解用户移动时感受到的空洞内外的纹理移动速度不一致的问题,进而提高虚拟现实应用的用户体验。
66.根据本公开的一个示例性实现方式,可以在室内漫游场景中使用上文描述的方法,以便解决室内场景下三维模型的外轮廓对象(例如,墙壁、天花板、地板,等)中存在空洞的问题。利用本公开的示例性实现方式,不必检测将被加载的每个三维模型中是否真的出现空洞,而是仅需要在基于各个三维模型的尺寸来相应地调整包围盒模型的尺寸。进一步,可以将包围盒模型调整至可以容纳三维模型的尺寸,进而按照用户在虚拟空间中的当前位置来确定包围盒模型的纹理。以此方式,统一地处理将被加载至虚拟漫游应用中的全部三维模型。
67.假设三维模型的外轮廓中包括空洞,可以利用包围盒模型来补偿空洞带了的镂空的不良视觉效果。假设三维模型中不存在空洞,调整包围盒模型的尺寸并不会增加虚拟漫游应用的计算资源开销。以此方式,可以在不必检查三维模型中是否包括空洞的情况下,为可能出现的空洞提供补偿措施,由此提高虚拟漫游应用的使用体验。
68.示例过程
69.图9示出了根据本公开的一些实现方式的用于管理三维模型的方法900的流程图。具体地,在框910处,获取将在虚拟漫游应用中呈现的真实场景的全景图像和三维模型。在框920处,在全景图像的视点处加载三维模型和三维模型的包围盒模型,包围盒模型具有初始尺寸并且初始尺寸大于三维模型的尺寸。在框930处,基于三维模型的尺寸调整包围盒模型的尺寸,以使得经调整的包围盒模型的外轮廓与三维模型的外轮廓之间的距离满足预定阈值条件。
70.根据本公开的一个示例性实现方式,调整包围盒模型包括:将包围盒模型的尺寸从初始尺寸缩小至调整后的尺寸,调整后的尺寸大于三维模型的尺寸。
71.根据本公开的一个示例性实现方式,加载包围盒模型包括:将全景图像作为包围盒模型的纹理映射至包围盒模型;以及加载具有纹理的包围盒模型。
72.根据本公开的一个示例性实现方式,该方法900进一步包括:确定包围盒模型的形状;以及生成具有形状的包围盒模型。
73.根据本公开的一个示例性实现方式,确定包围盒模型的形状包括以下至少任一项:基于全景图像的类型来确定包围盒模型的形状;基于三维模型的外轮廓确定包围盒模型的形状。
74.根据本公开的一个示例性实现方式,三维模型包括真实场景中的外轮廓对象的三维模型,外轮廓对象包括以下至少任一项:墙壁、天花板、地板,并且三维模型的至少一个面片包括空洞。
75.根据本公开的一个示例性实现方式,该方法900进一步包括:基于虚拟漫游应用中的虚拟相机的位置,呈现三维模型和包围盒模型。
76.根据本公开的一个示例性实现方式,呈现包围盒模型包括:基于虚拟相机的位置,选择与位置相匹配的全景图像;将选择的全景图像作为纹理映射至包围盒模型;以及呈现具有纹理的包围盒模型。
77.根据本公开的一个示例性实现方式,该方法900进一步包括:基于三维模型的尺寸,确定预定阈值。
78.示例装置和设备
79.图10示出了根据本公开的一些实现方式的用于管理三维模型的装置1000的框图。该装置1000包括:获取模块1010,被配置用于获取将在虚拟漫游应用中呈现的真实场景的全景图像和三维模型;加载模块1020,被配置用于在全景图像的视点处加载三维模型和三维模型的包围盒模型,包围盒模型具有初始尺寸并且初始尺寸大于三维模型的尺寸;以及调整模块1030,被配置用于基于三维模型的尺寸调整包围盒模型的尺寸,以使得经调整的包围盒模型的外轮廓与三维模型的外轮廓之间的距离满足预定阈值条件。
80.根据本公开的一个示例性实现方式,调整模块1030包括:缩小模块,被配置用于将包围盒模型的尺寸从初始尺寸缩小至调整后的尺寸,调整后的尺寸大于三维模型的尺寸。
81.根据本公开的一个示例性实现方式,加载模块1020包括:映射模块,被配置用于将全景图像作为包围盒模型的纹理映射至包围盒模型;以及模型加载模块,被配置用于加载具有纹理的包围盒模型。
82.根据本公开的一个示例性实现方式,进一步包括:形状确定模块,被配置用于确定包围盒模型的形状;以及生成模块,被配置用于生成具有形状的包围盒模型。
83.根据本公开的一个示例性实现方式,形状确定模块包括以下至少任一项:第一形状确定模块,被配置用于基于全景图像的类型来确定包围盒模型的形状;第二形状确定模块,被配置用于基于三维模型的外轮廓确定包围盒模型的形状。
84.根据本公开的一个示例性实现方式,三维模型包括真实场景中的外轮廓对象的三维模型,外轮廓对象包括以下至少任一项:墙壁、天花板、地板,并且三维模型的至少一个面片包括空洞。
85.根据本公开的一个示例性实现方式,进一步包括:呈现模块,被配置用于基于虚拟漫游应用中的虚拟相机的位置,呈现三维模型和包围盒模型。
86.根据本公开的一个示例性实现方式,呈现模块包括:选择模块,被配置用于基于虚拟相机的位置,选择与位置相匹配的全景图像;映射模块,被配置用于将选择的全景图像作为纹理映射至包围盒模型;以及模型呈现模块,被配置用于呈现具有纹理的包围盒模型。
87.根据本公开的一个示例性实现方式,进一步包括:阈值确定模块,被配置用于基于三维模型的尺寸,确定预定阈值。
88.图11示出了能够实施本公开的多个实现方式的设备1100的框图。应当理解,图11所示出的计算设备1100仅仅是示例性的,而不应当构成对本文所描述的实现方式的功能和
范围的任何限制。图11所示出的计算设备1100可以用于实现上文描述的方法。
89.如图11所示,计算设备1100是通用计算设备的形式。计算设备1100的组件可以包括但不限于一个或多个处理器或处理单元1110、存储器1120、存储设备1130、一个或多个通信单元1140、一个或多个输入设备1150以及一个或多个输出设备1160。处理单元1110可以是实际或虚拟处理器并且能够根据存储器1120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备1100的并行处理能力。
90.计算设备1100通常包括多个计算机存储介质。这样的介质可以是计算设备1100可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或它们的某种组合。存储设备1130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备1100内被访问。
91.计算设备1100可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图11中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1120可以包括计算机程序产品1125,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实现方式的各种方法或动作。
92.通信单元1140实现通过通信介质与其他计算设备进行通信。附加地,计算设备1100的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备1100可以使用与一个或多个其他服务器、网络个人计算机(pc)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
93.输入设备1150可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备1100还可以根据需要通过通信单元1140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备1100交互的设备进行通信,或者与使得计算设备1100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。
94.根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,提供了一种计算机程序产品,其上存储有计算机程序,程序被处理器执行时实现上文描述的方法。
95.这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
96.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据
处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
97.可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
98.附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
99.以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1