场景数据的生成方法、装置、电子设备和存储介质与流程

文档序号:32259784发布日期:2022-11-19 11:32阅读:35来源:国知局
场景数据的生成方法、装置、电子设备和存储介质与流程

1.本公开涉及人工智能领域,具体涉及深度学习、计算机视觉、增强现实和虚拟现实等技术领域,可应用于元宇宙等场景。


背景技术:

2.随着计算机技术和网络技术的发展,图像渲染技术及通过与神经网络整合来对图像渲染技术进行了改进的神经渲染(neural rendering)技术得到快速发展。图像渲染技术旨在根据三维模型生成二维图像,以给用户带来更接近于现实世界的视觉感受,在图像渲染之前,需要生成表示场景的三维模型的场景数据。通过加载该场景数据并进行图像渲染可以得到二维图像。


技术实现要素:

3.本公开旨在提供一种场景数据的生成方法、装置、电子设备和存储介质,旨在使得场景数据的加载可以兼容不同处理能力的设备。
4.根据本公开的一个方面,提供了一种场景数据的生成方法,包括:对神经辐射场输出的体素网格数据进行不同粒度地至少两次采样,得到至少两个采样结果;其中,神经辐射场是根据多个视角下目标场景的多个图像构建的;根据至少两个采样结果中的每个采样结果提取纹理特征,得到与至少两个采样结果分别对应的至少两个纹理特征;以及根据每个采样结果和与每个采样结果对应的纹理特征,生成表达目标场景的一组场景数据,得到不同粒度下表达目标场景的至少两组场景数据。
5.根据本公开的另一个方面,提供了一种场景数据的生成装置,包括:采样模块,用于对神经辐射场输出的体素网格数据进行不同粒度地至少两次采样,得到至少两个采样结果;其中,神经辐射场是根据多个视角下目标场景的多个图像构建的;纹理特征提取模块,用于根据至少两个采样结果中的每个采样结果提取纹理特征,得到与至少两个采样结果分别对应的至少两个纹理特征;以及场景数据生成模块,用于根据每个采样结果和与每个采样结果对应的纹理特征,生成表达目标场景的一组场景数据,得到不同粒度下表达目标场景的至少两组场景数据。
6.根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的场景数据的生成方法。
7.根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的场景数据的生成方法。
8.根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现本公开提供的场景数据的生成方法。
9.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特
征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
10.附图用于更好地理解本方案,不构成对本公开的限定。其中:图1是根据本公开实施例的场景数据的生成方法和装置的应用场景示意图;图2是根据本公开实施例的场景数据的生成方法的流程示意图;图3是根据本公开实施例的场景数据的生成方法的实现原理图;图4是根据本公开实施例的生成表达目标场景的场景数据的原理示意图;图5是根据本公开实施例的得到目标场景数据的原理示意图;图6是根据本公开实施例的场景数据的生成和加载的应用示例图;图7是根据本公开实施例的场景数据的生成装置的结构框图;以及图8是用来实施本公开实施例的场景数据的生成方法的电子设备的框图。
具体实施方式
11.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
12.以下先对本公开所采用的专业术语进行如下解释。
13.神经辐射场,neural radiance fields,简称为nerf,是一种利用多目图像重建三维场景的技术。nerf使用一组多目图,通过优化一个潜在连续的体素场景方程来得到一个完整的三维场景。
14.稀疏神经辐射网络,sparse neural radiance grid,简称为snerg,该网络的原理为结合神经辐射场(neural radiance field,nerf)和预计算与存储技术(预计算与存储技术可以称为烘焙(bake)技术),旨在将nerf的连续神经体积场景表示烘焙到离散系数神经辐射网络,以用于实时渲染。该网络的实现方式为nerf架构重塑与基于学习特征向量的稀疏体素网格(sparse voxel grid)表示相结合的方式。
15.体素,voxel,是体积元素(volume pixel)的简称,包含体素的立体可以通过立体渲染或者提取给定阈值轮廓的多边形等值面表现出来。通过体素,可以对3d空间进行网格划分,并赋予每个网格特征。体素可以是存储采样数据的体积点(volumetric points),存储包括材质、颜色、体积密度等。
16.体素网格,voxel grids,是用固定大小的立方块作为最小单元,来表示三维物体的一种数据结构。
17.感兴趣区域,region of interest,简称为roi,是在计算机视觉和图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出的需要处理的区域。
18.以下将结合图1对本公开提供的方法和装置的应用场景进行描述。
19.图1是根据本公开实施例的场景数据的生成方法和装置的应用场景示意图。
20.如图1所示,该实施例的应用场景100可以包括电子设备110,该电子设备110可以为具有处理功能的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、
台式计算机和服务器等等。
21.该电子设备110例如可以提供有人机交互界面。例如电子设备110可以响应于用户120的操作,向用户120展示目标场景的渲染图像130。其中,渲染图像130可以是根据目标场景的场景数据和目标视角渲染得到的。其中,目标视角可以响应于用户120的输入操作而获得,或者可以响应于用户120对人机交互界面的拖拽操作等确定,本公开对此不做限定。
22.在一实施例中,如图1所示,该应用场景100中还可以包括服务器140,该服务器140例如可以为支持电子设备110中客户端应用运行的后台管理服务器。电子设备110可以通过网络与服务器140通信连接,网络可以包括有线或无线通信链路。
23.例如,服务器140可以根据多个视角下目标场景的多个图像构建神经辐射场,并根据神经辐射场输出的体素网格数据预先生成场景数据,以供电子设备110加载。例如,服务器140可以响应于电子设备110发送的场景数据的加载请求,将生成的场景数据150发送给电子设备110,以作为电子设备渲染得到渲染图像130的依据。或者,服务器140可以根据加载请求确定目标场景的场景数据中与目标视角对应的部分场景数据,并将该部分场景数据发送给电子设备110,以此减少电子设备110加载的场景数据的数据量。
24.在一实施例中,服务器140例如还可以根据体素网格数据,生成不同粒度下目标场景的场景数据,以根据电子设备110的实际需求,向电子设备110发送满足精度要求和内存限制的场景数据,或者向电子设备110及计算能力与电子设备110不同的其他设备发送不同粒度下的场景数据,以使得计算能力不同的多个设备均可以渲染得到渲染图像。
25.需要说明的是,本公开提供的场景数据的生成方法可以由服务器140执行。相应地,本公开提供的场景数据的生成装置可以设置在服务器140中。
26.应该理解,图1中的电子设备110和服务器140的数目和类型仅仅是示意性的。根据实现需要,可以具有任意数目和类型的电子设备110和服务器140。
27.以下将结合图2~图6对本公开提供的场景数据的生成方法进行详细描述。
28.图2是根据本公开实施例的场景数据的生成方法的流程示意图。
29.如图2所示,该实施例的场景数据的生成方法200可以包括操作s210~操作s230。
30.在操作s210,对神经辐射场输出的体素网格数据进行不同粒度地至少两次采样,得到至少两个采样结果。
31.根据本公开的实施例,神经辐射场可以是根据在多个视角下拍摄得到的目标场景的多个图像构建的。体素网格数据可以包括多个体素网格中每个体素网格的数据。该实施例可以对多个体素网格进行不同倍数的降采样,从而得到至少两个采样结果。
32.例如,该实施例可以对该体素网格数据进行多个不同倍数的降采样,从而得到至少两个采样结果。例如,设定神经辐射场输出的体素网格数据为n
×n×
n个体素网格的数据,通过降采样,例如可以得到尺寸为n/k
×
n/k
×
n/k的体素网格的数据。其中,k为降采样系数,k的取值为自然数。该实施例可以选取至少两个k值,将根据至少两个采样系数降采样得到的体素网格的数据,作为至少两个采样结果。
33.在降采样过程中,例如可以采用最大池化算法、平均池化算法等实现降采样。例如,体素网格数据可以包括颜色数据(例如rgb值)和体积密度。在k为2时,可以将两个相邻体素网格的两个颜色数据的平均值作为降采样得到的采样结果中相应位置处的体素网格的颜色数据,可以将两个相邻体素网格的两个体积密度的平均值作为降采样得到的采样结
果中相应位置处的体素网格的体积密度。
34.在一实施例中,可以采用将神经辐射场与基于学习特征向量的稀疏体素网格表示相结合的稀疏神经辐射网格来输出体素网格数据。在该实施例中,体素网格数据除了颜色数据和体积密度外,还可以包括与视角相关的特征数据,该特征数据例如可以为一个4维特征向量(4-dimensional feature vector),该4维特征向量是学习到的特征向量,该特征向量可以编码视图相关的效果。需要说明的是,在该实施例中,颜色数据可以表示体素网格的与观察视角无关的固有颜色。4维特征向量和视角信息通过一个小型神经网络(tiny neural network)处理后,可以得到镜面颜色。将镜面颜色和固有颜色相叠加,即可得到视角信息所表征视角下体素网格的颜色。
35.在操作s220,根据至少两个采样结果中的每个采样结果提取纹理特征,得到与至少两个采样结果分别对应的至少两个纹理特征。
36.根据本公开的实施例,提取纹理特征的过程可以理解为烘焙(bake)过程,该烘焙过程可以理解为渲染过程的一个逆向过程,用于分解得到每个体素网格内的一组高斯分布位置,根据该一组高斯分布位置可以对体素网格数据进行平均,从而进行抗锯齿(antialiasing)估计。
37.例如,该一组高斯分布位置可以指示对应该每个体素网格的一组采样点的体素网格数据的加权权重,通过对该一组采样点的体素网格数据进行加权,并叠加神经辐射场输出的该每个体素网格的体素网格数据,可以得到在渲染生成图像的过程中该每个体素网格的实际体素网格数据。
38.该实施例通过在生成场景数据的过程中,根据每个采样结果提取纹理特征,可以为目标场景的体素网格分配存储空间,从而减少存储成本和渲染时间。
39.在一实施例中,可以将每个采样结果作为深度学习模型的输入,由深度学习模型输出与每个采样结果对应的纹理特征。其中,深度学习模型例如可以基于卷积神经网络构建得到,例如深度学习模型可以基于resnet50构建,本公开对此不做限定。或者,该实施例还可以采用灰度共生矩阵法(gray-level co-occurrence matrix,glcm)或局部二值模式算子(local binary pattern,lbp)等来提取纹理特征,本公开对此不做限定。
40.根据本公开的实施例,与每个采样结果对应的纹理特征可以包括与每个采样结果中的每个体素网格对应的纹理特征。
41.在操作s230,根据每个采样结果和与每个采样结果对应的纹理特征,生成表达目标场景的一组场景数据,得到不同粒度下表达目标场景的至少两组场景数据。
42.根据本公开的实施例,可以将每个采样结果包括的体素网格数据与对应的纹理特征融合,从而得到表达目标场景的场景数据。
43.例如,可以根据与每个采样结果对应的纹理特征对针对每个体素网格的多个采样点的体素网格数据进行加权,并叠加神经辐射场输出的该每个体素网格的体素网格数据,得到在渲染生成图像的过程中该每个体素网格的实际体素网格数据。该实施例可以将每个采样结果中所有体素网格的实际体素网格数据作为表达目标场景的场景数据。
44.在一实施例中,可以根据每个采样结果进行等值面提取,得到目标场景的面片模型,并建立面片模型与体素网格之间的对应关系。该实施例可以将该对应关系和所有体素网格的实际体素网格数据作为表达目标场景的场景数据。
45.本公开实施例通过对体素网格数据进行不同粒度地采样,可以生成不同粒度下(例如不同分辨率下)目标场景的场景数据。如此可以便于不同计算能力的电子设备根据该不同粒度下的场景数据进行场景渲染,便于电子设备根据不同的分辨率要求加载不同粒度的场景数据。例如,若进行降采样,可以明显减少生成的目标场景的场景数据的数据量,便于计算能力有限的电子设备加载该场景数据并渲染得到目标场景的图像。再者,通过本公开实施例的方法,可以将纹理特征融合至场景数据中,如此电子设备在渲染图像的过程中无需再提取纹理特征,可以减少电子设备渲染图像的过程中的计算量,有利于降低对电子设备的计算能力的要求,降低渲染时长,提高用户体验。
46.根据本公开的实施例,可以对每个采样结果进行分块,并根据提取的纹理特征来确定与分块得到的每个体素块对应的子纹理特征,并建立每个体素块与场景数据之间的映射关系。如此,在电子设备加载场景数据时,可以根据实际需求仅加载部分的场景数据,而无需加载整个目标场景的场景数据。如此,利于进一步降低对电子设备计算能力的要求,降低渲染时长。以下将结合图3对该实施例中场景数据的生成方法的实现原理进行描述。
47.图3是根据本公开实施例的场景数据的生成方法的实现原理图。
48.如图3所示,在生成目标场景的场景数据时,该实施例300可以先根据在多个视角下采集的目标场景的多个图像310来构建针对目标场景的神经辐射场nerf 320。随后将训练好的nerf 320输出的数据作为体素网格数据330。
49.在一实施例中,可以采用图像采集设备采集目标场景的多个视角下的图像,得到多个图像310。同时可以建立得到的场景图像与采集视角所对应的相机位姿之间的映射关系,得到针对多个视角的多个映射关系。该实施例可以根据该多个映射关系来构建针对目标场景的神经辐射场320。
50.例如,该实施例在构建针对目标场景的神经辐射场320时,可以先根据每个映射关系中的相机位姿,对该每个映射关系中的图像进行采样,根据采样得到的图像中像素点的位置及该像素点的深度可以得到一个三维采样点。例如可以针对每个映射关系得到多个三维采样点,该多个三维采样点可以构成针对一个场景图像的一组三维采样点。其中,相机位姿例如可以由相机的俯仰角、横滚角和偏航角来表示,每个采样点的坐标值可以由每个像素点在世界坐标系中的坐标值来表示。如此,该实施例可以根据针对多个场景图像的多组三维采样点和与多个场景图像分别具有映射关系的多个相机位姿来构建神经辐射场。
51.具体地,该实施例可以根据多组三维采样点的坐标值和多个相机位姿信息构建训练数据,得到多个训练数据。每个训练数据包括多组数据,每组数据包括一个三维采样点的坐标值和对应的一个相机位姿信息。每个训练数据中多组数据包括的相机位姿信息相同。相机位姿信息可以包括上文描述的俯仰角的角度、横滚角的角度和偏航角的角度,该相机位姿信息可以作为视角信息。例如,设定一个采样点的坐标值可以表示为(x,y,z),相机位姿信息可以表示为(pitch,roll,yaw),则一组数据可以表示为(x,y,z,pitch,roll,yaw)。该实施例可以将多个训练数据作为目标场景的原始数据。在训练神经辐射场320时,可以先执行操作s310,加载目标场景的原始数据,并将该原始数据输入初始神经辐射场,由初始神经辐射场输出颜色数据、体积密度和4维特征向量。随后根据该颜色数据、体积密度和4维特征向量,利用体素渲染技术可以得到与训练数据中的多个相机位置信息对应的多个视角的图像。随后,该实施例可以根据通过体素渲染技术得到的多个视角的图像分别与多个视角
下采集的场景图像进行比较,从而确定初始神经辐射场的损失。以最小化损失为目标调整初始神经辐射场的网络参数,完成一个轮次的训练。该实施例可以对神经辐射场进行多个轮次的训练,直至损失收敛,并将完成多个轮次训练后得到的神经辐射场作为针对目标场景的神经辐射场320。其中,初始神经辐射场中的网络参数可以根据经验设定。
52.在训练得到针对目标场景的神经辐射场320后,即可对该神经辐射场320输出的体素网格数据330进行分层烘焙(操作s320),即通过上文描述的操作s210采样得到至少两个采样结果,一个采样粒度对应烘焙的一个层级。随后通过对至少两个采样结果分层烘焙,可以得到与至少两个采样结果对应的至少两个纹理特征340。
53.在得到纹理特征之前或之后,或得到纹理特征的同时,该实施例300例如可以先根据与每个采样结果对应的分块参数来对每个采样结果进行分块,从而得到多个体素块。其中,分块参数例如可以包括分块得到的体素块的个数和/或分块得到的体素块的尺寸大小等。例如,设定采样结果包括m
×m×
m个体素网格的体素网格数据,分块得到的体素块的尺寸大小为2
×2×
2,则可以总计得到m/2
×
m/2
×
m/2个体素块。
54.在得到多个体素块和与每个采样结果对应的纹理特征后,该实施例可以从该纹理特征中提取与多个体素块分别对应的多个子纹理特征。可以理解的是,若采样结果包括m
×m×
m个体素网格的体素网格数据,则提取得到的纹理特征也可以采用m
×m×
m的张量来表示,张量中的每个元素与m
×m×
m个体素网格中对应位置处的体素网格相对应。该实施例可以根据每个体素块在m
×m×
m个体素网格中的位置,来提取纹理特征中相应位置处的特征,从而得到与该每个体素块对应的子纹理特征。
55.该实施例300在得到多个体素块及与多个体素块对应的子纹理特征后,例如可以针对每个体素块,根据体素网格数据和子纹理特征,生成与该每个体素块对应的场景数据。与每个采样结果分块得到的多个体素块分别对应的多个场景数据共同构成了目标场景的场景数据。
56.在该实施例300中,可以将与每个采样结果分块得到的多个体素块分别对应的多个场景数据分块存储至存储空间(操作s330),以便于电子设备以体素块为单位,按需加载场景数据,而无需加载目标场景的整体的场景数据。
57.根据本公开的实施例,与每个采样结果对应的分块参数可以依据采样粒度的不同而不同。例如,若分块参数包括分块得到的体素块的个数,则与粗粒度地采样得到的采样结果所对应的个数小于与细粒度地采样得到的采样结果所对应的个数。如此,在电子设备需要渲染得到目标场景某个局部区域的清晰图像时,即可精准定位到细粒度采样得到的采样结果中视角范围内的体素块,减少非必要体素块的场景数据的加载。可以使得电子设备在保证加载的场景数据的精度的同时,尽可能减少加载的数据量,减少计算资源的不必要消耗。在电子设备需要渲染得到较大区域的目标场景时,通过加载场景数据,可以保证渲染得到的图像能够展示目标场景的较大区域。
58.例如,与以4为降采样系数采样得到的采样结果相对应的个数可以为4,与以2为降采样系数采样得到的采样结果相对应的个数可以为8,本公开对此不做限定。
59.根据本公开的实施例,在提取纹理特征时,例如可以先对体素网格数据进行筛选,以将与目标场景中没有物体的位置对应的体素网格数据剔除,仅保留有用的目标网格数据。随后根据目标网格数据来提取纹理特征。其中,需要剔除的体素网格数据例如可以为不
透明度小于预定值的体素网格数据。其中,预定值例如可以为靠近0但大于0的任意值。在一实施例中,可以将不透明度为0的体素网格数据作为需要剔除的数据。可以理解的是,该实施例中纹理特征的提取原理与snerg中纹理特征的提取原理类似。通过该实施例,可以减少纹理特征提取过程中的计算量,并利于提高渲染速度。
60.可以理解的是,体素网格的不透明度例如可以根据体素网格数据包括的体积密度来确定。例如,若体积密度值为σ,则不透明度值α=1-exp(σv)。其中,v为体素网格的宽度。
61.图4是根据本公开实施例的生成表达目标场景的场景数据的原理示意图。
62.根据本公开的实施例,如图4所示,实施例400在确定了神经辐射场输出的体素网格数据410后,可以对体素网格数据410进行分块,得到体素块420及该体素块420的子纹理特征430。随后,该实施例可以采用该子纹理特征430对体素块420的体素网格数据440进行调整,得到调整后体素网格数据450。随后该实施例可以将该调整后体素网格数据450作为与该体素块420对应的场景数据,以一个文件的形式存储至预定存储空间460中。例如,对于每个采样结果分块得到的多个体素块,预定存储空间460中存储的场景数据可以包括场景数据a、场景数据b、

、场景数据c等。一个场景数据对应一个体素块,该多个场景数据构成了表达目标场景的一组场景数据。
63.根据本公开的实施例,在根据子纹理特征430调整体素网格数据440时,可以将采用alpha合成算法将该子纹理特征430和体素网格数据440进行融合,从而得到调整后体素网格数据。或者,可以根据子纹理特征430仅对体素网格数据440中的颜色数据进行调整,例如根据子纹理特征,确定与每个体素网格对应的多个采样点的颜色对该每个体素网格对应像素的颜色的影响权重,根据权重对该多个采样点的颜色数据加权,并将加权得到的颜色数据与该每个体素网格的颜色数据进行融合(例如相加),从而得到调整后颜色数据。
64.在一实施例中,为了便于对体素块对应的场景数据进行加载,该实施例还可以为每个采样结果包括的多个体素块分配索引值。随后根据多个体素块与目标场景的场景数据之间的对应关系,确定体素块的索引值与对应于体素块的场景数据之间的映射关系。
65.在一实施例中,体素网格数据可以包括颜色数据、与视角相关的特征数据和体积密度。其中,与视角相关的特征数据可以为上文描述的4维特征向量。该实施例中,还可以将每个采样结果分块得到的多个体素块的索引值与场景数据之间的映射关系存储为以altas_indices命名(仅为示例)的文件,每个体素块的体素网格数据中的颜色数据和体积密度存储为一个以rgba命名(仅为示例)的文件,将每个体素块的与视角相关的特征数据存储为一个以feature命名(仅为示例)的文件。
66.在一实施例中,还可以建立体素块与根据体素网格生成的表征目标场景的模型中模型块之间的映射关系,并使用两个密集数组以块稀疏的格式来表示由调整后体素网格数据构成的场景数据。其中,两个密集数组中的一个表示3d纹理图集。该3d纹理图集包括与多个体素块对应的多个“宏块”(macro block),该“宏块”对应于在稀疏体积中的颜色数据、与视角相关的特征数据和体积密度。两个密集数组中的另一个表示低分辨率的间接网格数据,该网格数据指向值为空的“宏块”,例如可以为上文描述的不透明度小于预定值的体素网格数据。如此,在渲染时,可以先确定视角范围内的模型块,并根据映射关系确定对应的体素块,并依据值为空的“宏块”,从3d纹理图集中加载不透明度大于等于预定值的场景数据。
67.图5是根据本公开实施例的得到目标场景数据的原理示意图。
68.根据本公开的实施例,在采用如上文描述的方式得到不同粒度下目标场景的场景数据后,该实施例可以在接收到包括粒度信息的加载请求时,从不同粒度的场景数据中查找粒度信息所指示的目标粒度下的场景数据,将查找到的场景数据作为目标场景数据,并发送给发送加载请求的电子设备,以供电子设备加载该目标场景数据,并根据目标场景数据渲染得到目标场景的图像。通过该方式,电子设备可以根据实际计算能力加载合适粒度的场景数据,以使得目标场景的场景数据可以被不同计算能力的电子设备加载。
69.如图5所示,在一实施例500中,加载请求例如还可以包括视角信息510。该实施例在得到目标场景数据时,可以先确定目标粒度对应的目标采样结果所包括的多个体素块520。随后,根据该视角信息确定多个体素块520中与视角信息匹配的体素块,作为目标体素块521。其中,目标采样结果即为在目标粒度下采样得到的采样结果。随后,该实施例500可以确定目标粒度下目标场景的一组场景数据中与目标体素块对应的场景数据为目标场景数据530。
70.例如,该实施例可以根据视角信息进行光线追踪,确定多个体素块520中位于光线覆盖范围内的体素块为目标体素块521。该实施例可以根据目标体素块的索引值与场景数据之间的映射关系,获取目标场景数据530。
71.该实施例通过根据视角信息来确定与视角信息匹配的体素块,并仅向电子设备发送与体素块对应的场景数据,可以明显减少电子设备加载的场景数据的量,使得电子设备可以按需加载,而无需加载整个目标场景的场景数据,利于降低对电子设备的计算能力的要求,提高渲染效率。
72.图6是根据本公开实施例的场景数据的生成和加载的应用示例图。
73.如图6所示,在一实施例600中,在生成场景数据的过程中,可以采用多细节层次(levels of detail,lod)的烘焙机制(lod-bake机制) 620来对神经辐射场输出的体素网格数据610进行采样、纹理特征提取和分块等一系列处理,并根据处理结果来生成目标场景的场景数据。
74.例如,可以设置l1~l3共计三级的采样和烘焙,对于l1级,可以对体素网格数据进行粗采样,但不对采样得到的采样结果进行分块(执行操作s621,粗采样烘焙)。例如,对于l1级,降采样系数可以为4。根据l1级粗采样烘焙得到的纹理特征为针对整个目标场景的,最终生成的场景数据为目标场景的3d整体的场景数据621。对于l2级,可以对体素网格数据进行粗采样,但该粒度小于l1级,并对采样得到的采样结果进行分块(执行操作s622,粗分块采样烘焙)。例如,对于l2级,降采样系数可以为2,分块得到的体素块的个数可以为全部体素网格的个数的1/4。根据l2级粗采样烘焙得到的纹理特征为针对每个体素块的,最终生成的场景数据包括多个局部场景粗粒度的特征数据622。同时,还可以得到与多个体素块对应的局部场景位置数据623,该位置数据可以为上文描述的为多个体素块分配的索引值。对于l3级,可以直接对体素网格数据进行分块(执行操作s623,细分块烘焙)。例如,对于l3级,降采样系数可以为1,分块得到的体素块的个数可以为全部体素网格的个数的1/2。根据l3级烘焙得到的纹理特征为针对每个体素块的,最终生成的场景数据包括多个局部场景细粒度的特征数据624。同时,还可以得到与多个体素块对应的局部场景位置数据625,该位置数据可以为上文描述的为多个体素块分配的索引值。
75.通过该实施例,可以得到三个不同粒度的目标场景的场景数据。
76.在电子设备需要渲染生成目标场景的场景数据时,例如可以向执行lod-bake机制的服务端发送加载请求。例如,电子设备可以基于场景加载展示机制630来加载场景数据,并渲染得到展示的图像。例如,电子设备可以响应于用户操作打开渲染目标场景的客户端应用。电子设备可以响应于客户端应用的开启,向服务端发送加载请求,对于初次渲染目标场景的图像的需求,加载请求中的粒度信息可以为最粗粒度,以在保证计算压力不大的情况下加载整体的目标场景的场景数据。服务端可以响应于该加载请求,确定整体场景数据621为目标场景数据,并发送给电子设备。如此,电子设备可以加载整体场景数据621,并根据整体场景数据621渲染得到整体的目标场景的图像,展示l1粗粒度初始场景631。
77.随后,电子设备例如可以响应于用户操作(例如局部放大操作),再次向服务端发送加载请求,该加载请求中的粒度信息为比最粗粒度小的细粒度,例如可以为l2级对应的粒度,同时,该加载请求中还可以包括视角信息,该视角信息是根据用户选择的放大倍率和可以显示的局部场景来确定的。服务端可以响应于该加载请求,确定通过操作s622得到的局部场景粗特征数据中与视角信息匹配的场景数据,并将该场景数据作为目标场景数据发送给电子设备。如此,电子设备可以加载局部场景粗粒度的特征数据622,并根据该数据渲染得到局部的、细粒度的目标场景的图像,展示l2细粒度局部场景632。
78.随后,电子设备例如可以响应于用户操作(例如进一步的局部放大操作),再次向服务端发送加载请求,该加载请求中的粒度信息为比细粒度小的精细粒度,例如可以为l3级对应的粒度,同时,该加载请求中还可以包括视角信息,该视角信息是根据用户选择的放大倍率和可以显示的局部场景来确定的。服务端可以响应于该加载请求,确定通过操作s623得到的局部场景粗特征数据中与视角信息匹配的场景数据,并将该场景数据作为目标场景数据发送给电子设备。如此,电子设备可以加载局部场景细粒度的特征数据624,并根据该数据渲染得到局部的、精细粒度的目标场景的图像,展示l3精细粒度局部场景633。
79.根据该实施例可知,通过lod-bake机制和场景加载展示机制相结合,可以使得电子设备按需获取粗粒度的整体场景的场景数据或细粒度的局部场景的场景数据,而无需一次性加载细粒度的整个场景的场景数据,可以使得如计算能力较低的智能手机、平板电脑等也可以通过加载场景数据实现对场景的渲染和展示,并降低渲染过程的计算量,提高展示效率和用户体验。
80.基于本公开提供的场景数据的生成方法,本公开还提供了一种场景数据的生成装置,以下将结合图7对该装置进行详细描述。
81.图7是根据本公开实施例的场景数据的生成装置的结构框图。
82.如图7所示,该实施例的场景数据的生成装置700可以包括采样模块710、纹理特征提取模块720和场景数据生成模块730。
83.采样模块710用于对神经辐射场输出的体素网格数据进行不同粒度地至少两次采样,得到至少两个采样结果。其中,神经辐射场是根据多个视角下目标场景的多个图像构建的。在一实施例中,采样模块710可以用于执行上文描述的操作s210,在此不再赘述。
84.纹理特征提取模块720用于根据至少两个采样结果中的每个采样结果提取纹理特征,得到与至少两个采样结果分别对应的至少两个纹理特征。在一实施例中,纹理特征提取模块720可以用于执行上文描述的操作s220,在此不再赘述。
85.场景数据生成模块730用于根据每个采样结果和与每个采样结果对应的纹理特征,生成表达目标场景的一组场景数据,得到不同粒度下表达目标场景的至少两组场景数据。在一实施例中,场景数据生成模块730可以用于执行上文描述的操作s230,在此不再赘述。
86.根据本公开的实施例,上述装置700还可以包括分块模块和子特征提取模块。分块模块用于根据与每个采样结果对应的分块参数对每个采样结果进行分块,得到多个体素块。子特征提取模块用于从与每个采样结果对应的纹理特征中提取与多个体素块分别对应的多个子纹理特征。
87.根据本公开的实施例,分块参数包括分块得到的体素块的个数,与粗粒度地采样得到的采样结果所对应的个数小于与细粒度地采样得到的采样结果所对应的个数。
88.根据本公开的实施例,上述纹理特征提取模块720可以包括第一数据确定子模块和特征提取子模块。第一数据确定子模块用于确定每个采样结果包括的体素网格数据中不透明度小于预定值的体素网格数据,作为与目标场景对应的目标网格数据。特征提取子模块用于根据目标网格数据提取纹理特征,得到与每个采样结果对应的纹理特征。其中,体素网格数据包括体积密度,不透明度是根据体积密度确定的。
89.根据本公开的实施例,上述场景数据生成模块730可以包括数据调整子模块和第二数据确定子模块。数据调整子模块用于对于每个采样结果包括的每个体素块,根据与每个体素块对应的子纹理特征对每个体素块的体素网格数据进行调整,得到调整后体素网格数据。第二数据确定子模块用于确定与每个体素块对应的场景数据包括调整后体素网格数据。其中,表达目标场景的一组场景数据包括:与多个体素块对应的多个场景数据。
90.根据本公开的实施例,体素网格数据包括与视角相关的特征数据、颜色数据和体积密度。上述数据调整子模块用于:根据与每个体素块对应的子纹理特征对每个体素块的颜色数据进行调整,得到调整后体素网格数据。
91.根据本公开的实施例,上述装置700还可以包括索引分配模块和映射关系确定模块。索引分配模块用于为每个采样结果包括的多个体素块分配索引值。映射关系确定模块用于根据多个体素块与目标场景的场景数据之间的对应关系,确定多个体素块的多个索引值与多个场景数据之间的映射关系。
92.根据本公开的实施例,上述装置700还可以包括目标数据确定模块和数据发送模块。目标数据确定模块用于响应于接收到包括粒度信息的加载请求,确定粒度信息所指示的目标粒度下表达目标场景的一组场景数据,得到目标场景数据。数据发送模块用于发送目标场景数据。
93.根据本公开的实施例,加载请求还包括视角信息。上述目标数据确定模块可以包括目标块确定子模块和第三数据确定子模块。目标块确定子模块用于确定目标采样结果所包括的多个体素块中与视角信息匹配的体素块,作为目标体素块,其中,目标采样结果是在目标粒度下采样得到的。第三数据确定子模块用于确定目标粒度下表达目标场景的一组场景数据中与目标体素块对应的场景数据,作为目标场景数据。
94.需要说明的是,本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用
户的授权或同意。
95.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
96.图8示出了可以用来实施本公开实施例的场景数据的生成方法的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
97.如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
98.设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
99.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如场景数据的生成方法。例如,在一些实施例中,场景数据的生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的场景数据的生成方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行场景数据的生成方法。
100.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
101.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的
功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
102.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
103.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
104.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
105.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称 "vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
106.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
107.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1