本文作者:kaifamei

图像渲染方法、装置、设备和存储介质与流程

更新时间:2025-02-25 07:51:31 0条评论

图像渲染方法、装置、设备和存储介质与流程



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


背景技术:



2.三维场景渲染是计算机从三维场景内获取待渲染物体的基本信息,并通过复杂计算输出真实感较高的图像的过程。
3.通常,可以采用三维重建技术,对三维场景下的待渲染物体,建立适合计算机表示和处理的数学模型,以在计算机环境下对所构建数学模型进行渲染。


技术实现要素:



4.本公开提供了一种图像渲染方法、装置、设备和存储介质。
5.根据本公开的一方面,提供了一种图像渲染方法,包括:获取渲染当前帧图像对应在前帧图像时所采用的目标场景树;根据当前帧图像中的物体分布情况,更新目标场景树;根据更新后的目标场景树,渲染当前帧图像;其中,渲染首帧图像所采用的目标场景树,基于首帧图像的物体分布情况和视椎体信息所确定的初始场景空间构建得到。
6.根据本公开的另一方面,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例提供的任意一种图像渲染方法。
7.根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行根据本公开实施例提供的任意一种图像渲染方法。
8.根据本公开的技术,提高了图像渲染效率。
9.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
10.附图用于更好地理解本方案,不构成对本公开的限定。其中:图1是本公开实施例提供的一种图像渲染方法的流程图;图2是本公开实施例提供的另一种图像渲染方法的流程图;图3是本公开实施例提供的又一种图像渲染方法的流程图;图4是本公开实施例提供的一种图像渲染装置的结构图;
图5是用来实现本公开实施例的图像渲染方法的电子设备的框图。
具体实施方式
11.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
12.本公开实施例提供的图像渲染方法和图像渲染装置,适用于对三维场景中的待渲染物体进行图像渲染的场景中。本公开实施例所提供的各图像渲染方法,可以由图像渲染装置执行,该装置可以采用软件和/或硬件实现,并具体配置于电子设备中。该电子设备可以是具备图像渲染能力的渲染设备的cpu(central processing unit,中央处理器)。
13.为了便于理解,首先对图像渲染方法进行详细说明。
14.参见图1所示的一种图像渲染方法,包括:s101、获取渲染当前帧图像对应在前帧图像时所采用的目标场景树。
15.其中,渲染首帧图像所采用的目标场景树,基于首帧图像的物体分布情况和视椎体信息所确定的初始场景空间构建得到。
16.其中,场景树为在进行图像渲染时,用于描述三维空间的树状数据结构,以便加速空间查询。其中,目标场景树为三维场景视频帧,对应某一图像帧的场景树。
17.其中,场景树中的节点对应三维场景中的场景空间,容纳有可渲染物体的最小场景空间对应节点,与所容纳的可渲染物体具备指向关系。在一个可选实施例中,目标场景树可以是八叉树。
18.针对三维场景视频中的首帧图像,可以根据首帧图像的物体分布情况和视椎体信息确定初始场景空间,并根据初始场景空间,构建该首帧图像对应目标场景树。
19.其中,首帧图像的物体分布情况用于描述首帧图像中可渲染物体的空间位置。其中,视椎体信息用于描述虚拟相机对应的可观测视野。视椎体信息可以包括防止物体距离虚拟相机过近的近裁剪面信息,以及防止物体距离虚拟相机过远的远裁剪面信息。通过视椎体信息,约束视椎体中比近裁剪面更靠近虚拟相机的可渲染物体、比远裁剪面更远离虚拟相机的可渲染物体、以及落在图像是锥面之外的可渲染物体,对于虚拟相机均不可见,也即不再进行满足上述约束条件的可渲染物体的渲染。其中,视椎体信息可以由技术人员根据需要或经验进行设定或调整。
20.可以理解的是,通过首帧图像中的物体分布情况和视椎体信息,进行初始场景空间的构建,从而使得所构建的初始场景空间小于三维场景中的最大场景空间,减少了进行首帧图像渲染时所构建的目标场景树的大小,从而避免出现目标场景树层级过多,导致渲染过程遍历成本开销过大,出现渲染性能下降的情况发生,从而提高了渲染初期的渲染效率,进而有助于提高三维场景视频的整体渲染效率。
21.在一个可选实施例中,可以根据首帧图像的物体分布情况,确定首帧图像中的候选物体以及相应包围盒信息;根据视椎体信息,选取首帧图像中位于视椎体范围内的候选物体;根据选取的候选物体的包围盒信息,确定初始场景空间。
22.其中,候选物体即为首帧图像中的可渲染物体;候选物体的包围盒信息,可以是基
于预设包围盒算法,用体积稍大且特性简单的几何体(也即包围盒)来近似替代负责几何对象(也即候选物体),所得的包围盒的描述信息。其中,预设包围盒算法可以采用现有技术的至少一种加以实现,本公开对预设包围盒算法不作任何限定。例如,预设包围盒算法可以是生成aabb(axis-aligned bounding box)包围盒的包围空间算法。
23.可以理解的是,通过体积和特性更为简单的包围盒,替代首帧图像中的候选物体,进行初始场景空间的确定,使得在初始场景空间能够容纳首帧图像中的各候选物体的基础上,显著减少了初始场景空间确定过程的运算量,进而有助于提高图像渲染效率。
24.需要说明的是,在三维场景视频渲染过程中,通常仅存在一棵场景树,随着渲染场景中可渲染物体的物体分布情况发生变化,场景树的结构也对应进行更新,从而避免进行多棵场景树的维护,造成资源开销的浪费。
25.相应的,针对三维场景视频中的非首帧图像,可以根据相邻帧图像中可渲染物体的变化情况,对已知的目标场景树进行更新。
26.若相邻帧图像中可渲染物体发生变动时,相应的目标场景树也对应进行变化更新。
27.其中,当前帧图像可以是三维场景视频中的当前待渲染的非首帧图像帧;在前帧图像可以是三维场景视频中位于当前帧图像之前,且与当前帧图像相邻的图像帧;渲染在前帧图像所采用的目标场景树,即为在渲染当前帧图像之前,最新的目标场景树,用于作为当前帧图像对应目标场景树的构建基础。
28.s102、根据当前帧图像中的物体分布情况,更新目标场景树。
29.示例性的,可以根据当前帧图像的可渲染物体的物体分布情况,确定当前帧图像与在前帧图像之间的物体变化情况,并根据物体变化情况,更新目标场景树。其中,物体变化情况可以是可渲染物体的增、减或位置变更等。
30.在一个可选实施例中,若当前帧图像与在前帧图像相比,存在可渲染物体的增加,则可以在在前帧图像对应目标场景树的基础上,添加可渲染物体对应节点,并建立该节点与所增加可渲染物体之间的指向关系,以更新目标场景树。
31.在另一可选实施例中,若当前帧图像与在前帧图像相比,存在可渲染物体的减少,则可以在在前帧图像对应目标场景树的基础上,删除所减少可渲染物体与对应节点之间的指向关系,以更新目标场景树。可选的,可以在所减少可渲染物体所指向节点的同胞节点均未指向可渲染物体时,删除该层级的节点。
32.在又一可选实施例中,若当前帧图像与在前帧图像相比,存在同一可渲染物体所指向节点发生变化,则可以在在前帧图像对应目标场景树的基础上,首先删除该可渲染物体在目标场景树中与历史节点之间的指向关系,并确定当前帧图像中,可容纳该可渲染物体的最小节点对应场景空间,并将该节点作为当前节点,建立当前节点与该可渲染物体之间的指向关系,以更新目标场景树。需要说明的是,若当前节点不存在时,可以在目标场景树中添加相应层级的节点。
33.在进行目标场景树更新的过程中,可能会存在在前帧图像的目标场景树无法覆盖当前帧图像对应场景空间的情况,此时,还可以根据场景空间变化情况,进行目标场景树生长,直至生长后的目标场景树能够完全覆盖当前帧图像对应场景空间。
34.示例性的,可以根据当前帧图像中的物体分布情况,确定当前帧图像中候选物体
的位置信息和相应包围盒信息;若在当前帧图像中存在目标场景树中未覆盖的候选物体,则根据未覆盖的候选物体的位置信息和相应包围盒信息,生长目标场景树。
35.具体的,可以根据当前帧图像中的物体分布情况,确定当前帧图像中位于在前帧图像对应目标场景树的场景空间以外的候选物体,并确定该候选物体的位置信息和包围盒信息;根据该候选物体的位置信息和包围盒信息,盐朝着该候选物体的方向,生长目标场景树,直至生长后的目标场景树能够完全覆盖该候选物体。
36.进一步的,若当前帧图像中不存在目标场景树中未覆盖的候选物体,则禁止生长目标场景树。
37.可以理解的是,通过生长目标场景树的方式,能够在目标场景树对应场景空间不够用的情况下,按需延伸场景空间,使得目标场景树能够进行当前帧图像对应全量场景空间的候选物体的渲染,实现对三维场景空间的按需递进式扩展,避免一次性进行最大场景空间对应目标场景树构建和使用,导致渲染性能的下降和存储资源的浪费。
38.s103、根据更新后的目标场景树,渲染当前帧图像。
39.根据更新后的目标场景树中的可渲染物体,对当前帧图像进行图像渲染。
40.可选的,可以将更新后的目标场景树中可渲染物体的渲染信息,发送至图像渲染器(graphics processing unit,gpu),从而通过gpu渲染当前帧图像。
41.其中,渲染信息可以包括顶点信息、着器和光照贴图等信息中的至少一种。
42.可选的,可以根据视椎体信息,确定更新后的目标场景树中位于视椎体范围内的可渲染物体作为待渲染物体;并将待渲染物体的渲染信息发送至gpu,从而通过gpu渲染当前帧图像。通过上述方案,能够减少对视椎体范围外的可渲染物体的渲染,减少不必要渲染带来的计算资源的浪费,且提高了图像渲染的合理性,以及所渲染场景与现实场景的契合度。
43.本公开上述实施例的技术方案,通过首帧图像中的物体分布情况和视椎体信息,进行初始场景空间的构建,并基于初始场景空间替代三维场景中最大场景空间,进行目标场景树的初始构建。同时,随着渲染过程的进行,根据在前帧图像的目标场景树,以及当前帧图像的物体分布情况,按需更新目标场景树,从而实现从初始场景空间对应场景树到最大场景空间对应场景树的递进式过渡,避免了在整个渲染过程中均采用最大场景空间对应目标场景树的使用,导致由于渲染过程遍历成本开销过大,而出现渲染性能下降的情况,从而提高了最大场景空间对应目标场景树生成之前渲染过程的渲染效率,进而有助于提高三维场景视频的整体渲染效率。
44.在上述各技术方案的基础上,本公开还提供了一个可选实施例,在该实施例中,对目标场景树的更新过程,进行了优化改进,以提高更新效率。需要说明的是,在本公开实施例中未详述部分,可参见其他实施例中的相关表述,在此不再赘述。
45.参见图2所示的一种图像渲染方法,包括:s201、获取渲染当前帧图像对应在前帧图像时所采用的目标场景树。
46.s202、根据当前帧图像中的物体分布情况,确定当前帧图像中的待更新物体和相应包围盒信息。
47.其中,待更新物体为当前帧图像中与在前帧图像所属节点不同的候选物体,也即待更新物体在当前帧图像对应目标场景树中需建立指向关系的新节点,与该待更新物体在
在前帧图像对应目标场景树中所指向的历史节点,两者不同。
48.示例性的,可以确定当前帧图像中的各候选物体在在前帧图像对应目标场景树中所指向的历史节点;若候选物体的位置信息发生变化、该候选物体处于在前帧图像对应目标场景树的场景空间中、且该候选物体不再属于历史节点对应的场景空间,则将该候选物体作为待更新物体;基于预设包围盒算法,确定待更新物体的包围盒信息。
49.s203、根据待更新物体的相应包围盒信息和待更新物体在在前帧图像的节点信息,确定节点搜索范围。
50.其中,节点搜索范围表征在进行待更新物体所指向节点搜索时的搜索范围,该节点搜索范围覆盖有待更新物体的历史节点对应场景空间,以及待更新物体在当前帧图像中所属的场景空间。
51.示例性的,可以根据待更新物体在在前帧图像对应目标场景树中所指向历史节点的节点信息,确定待更新物体在在前帧图像对应目标场景树中所指向的场景空间;以该场景空间为基础,沿着空间划分的相反方向,扩展场景空间,结合待更新物体在当前帧图像中的包围盒信息,得到覆盖待更新物体在当前帧图像中的场景空间;将扩展后的场景空间作为节点搜索范围。
52.在一个可选实施例中,根据待更新物体的相应包围盒信息和待更新物体在在前帧图像的节点信息,向目标场景树的根节点方向,查覆盖待更新物体的场景空间所指向的最小父节点;根据最小父节点下的各子节点,确定节点搜索范围。
53.示例性的,在目标场景树中,确定待更新物体对的历史节点;沿着指向目标场景树的根节点方向,向上遍历节点,得到能够容纳待更新物体的场景空间对应的最小父节点;生成包括最小父节点下的各子节点的节点搜索范围。
54.采用上述方案所确定的节点搜索范围,远小于目标场景树的根节点下的全量子节点范围,后续采用较小搜索范围进行待更新物体所属目标节点的确定,能够显著减少目标节点确定过程的遍历成本,从而有助于提高目标节点确定效率,进而有助于提高图像渲染效率。
55.s204、在节点搜索范围内,确定待更新物体所属目标节点。
56.其中,待更新物体所属目标节点,可以理解为待更新物体在当前帧图像对应目标场景树中,能够容纳待更新物体的最小场景空间所指向节点。
57.在一个可选实施例中,可以在节点搜索范围内,向根节点方向由小到大的依次遍历各节点,将覆盖该待更新物体的场景空间所指向的最小子节点,作为待更新物体所属目标节点。
58.在另一可选实施例中,可以在节点搜索范围内,沿着目标场景树的层级延伸方向依次遍历各子节点;将覆盖待更新物体的场景空间所指向的最小子节点,作为待更新物体所属目标节点。
59.具体的,可以以最小父节点为起点,沿着目标场景树的层级延伸方向,逐步遍历各层级的子节点,且在相同层级中,可以按照预设遍历顺序(如从左到右),顺序遍历相同层级的各子节点;将遍历到的子节点中,能够覆盖待更新物体的场景空间所指向的最小子节点,作为待更新物体所属目标节点,以便后续进行待更新物体的指向关系的重新建立。
60.可以理解的是,通过层级延伸方向依次遍历节点搜索范围内各子节点的方式,进
行待更新物体所属目标节点的确定,避免出现节点遗漏的情况发生,提高了目标节点确定结果的准确度。
61.s205、建立待更新物体与相应目标节点的指向关系,以更新目标场景树。
62.其中,待更新物体的数量为至少一个。相应的,分别建立各待更新物体与对应目标节点之间的指向关系,从而在节点与物体的指向关系维度,实现对目标场景树的更新。
63.s206、根据更新后的目标场景树,渲染当前帧图像。
64.其中,渲染首帧图像所采用的目标场景树,基于首帧图像的物体分布情况和视椎体信息所确定的初始场景空间构建得到。
65.本公开实施例通过确定当前帧图像中待更新物体和相应包围盒信息,并根据待更新物体的相应包围盒信息和待更新物体在在前帧图像的节点信息,确定不大于根节点对应全量节点范围的节点搜索范围,减少了目标节点确定过程的节点遍历量,从而在保证目标节点确定结果准确度的同时,减少了目标场景树的遍历成本,进而提高了目标场景树的更新效率。
66.在上述各技术方案的基础上,本公开还提供了一个可选实施例。在该可选实施例中,对当前帧图像的渲染过程进行了优化改进,以进一步提高渲染效率。需要说明的是,在本公开实施例中未详述部分,可参见其他实施例中的相关表述,在此不再赘述。
67.参见图3所示的一种图像渲染方法,包括:s301、获取渲染当前帧图像对应在前帧图像时所采用的目标场景树。
68.s302、根据当前帧图像中的物体分布情况,更新目标场景树。
69.s303、根据视椎体信息,确定目标场景树中位于视椎体范围内的候选物体作为待渲染物体。
70.其中,根据视椎体信息,确定视椎体范围;将目标场景树中包围盒位于视椎体范围内的候选物体,作为待渲染物体。其中,视椎体范围内的候选物体,可以理解为全部落入视椎体范围,或者至少预设占比部分落入视椎体范围的候选物体。
71.s304、向gpu发送在前帧图像已渲染的待渲染物体的包围盒信息,得到gpu反馈的相应待渲染物体的遮挡结果。
72.其中,通过运算能力较强的cpu进行待渲染物体的确定;通过gpu进行遮挡结果查询,能够避免gpu直接进行全量待渲染物体的渲染,导致的渲染资源的浪费。
73.其中,遮挡结果用于表征已渲染的待渲染物体是否被其他候选物体完全遮挡或至少部分遮挡。通常情况下,遮挡结果为是否被完全遮挡的判定结果。
74.需要说明的是,将已渲染的待渲染物体的包围盒信息,而非已渲染物体的轮廓信息发送至gpu,通过gpu进行相应待渲染物体的遮挡结果确定,减少了遮挡结果查询的数据运算量。同时,由于未渲染的待渲染物体不存在被已渲染物体的遮挡情况,因此能够避免对未渲染物体的遮挡结果确定带来的计算资源的浪费。
75.在一个可选实施例中,gpu中存储有在前帧图像的深度信息图;当gpu接收到待渲染物体的包围盒信息时,可以将包围盒信息与该深度信息图进行对比判定,确定该物体是否被遮挡,得到“是否遮挡”的布尔属性,并反馈布尔属性的遮挡查询结果。可以理解的是,采用上述遮挡查询的方式进行遮挡结果判定,能够适配于移动端的图像渲染,丰富了本公开的图像渲染方法的适配范围。
76.可以理解的是,通过采用在前帧图像的深度信息图,进行遮挡查询,可以避免cpu长时间的等待gpu的运算结果,提升了渲染的连贯性。由于虚拟相机运动速度极快时,可能会出现小物体无法识别的情况,但是因为遮挡查询时采用的是相对保守的包围盒信息,而非物体自身的轮廓信息,因此实际渲染时出现渲染错误的可能性较小。
77.在另一可选实施例中,gpu在获取到待渲染物体的包围盒信息后,可以片元数量占比是否大于预设阈值的方式,确定待渲染物体的遮挡结果。可以理解的是,采用上述片元占比的方式进行遮挡结果判定,能够适配于桌面端的图像渲染,丰富了本公开的图像渲染方法的适配范围。其中,预设阈值可以由技术人员根据需要或经验值进行设置或调整。
78.需要说明的是,已渲染的待渲染物体中包括可能遮挡和不可能遮挡的两类候选物体。当待渲染物体自身体积较大时,该待渲染物体显然不可能被遮挡,因此,不再对这部分待渲染物体进行遮挡结果判断,能够减少cpu与gpu之间的带宽资源的浪费,同时能够节省gpu的遮挡判定运算量。
79.示例性的,可以将在前帧图像已渲染的待渲染物体作为初始遮挡物体;根据初始遮挡物体在在前帧图像的渲染画面的占比,确定遮挡查询概率;选取遮挡查询概率满足预设查询条件的初始遮挡物体,作为候选遮挡物体;向gpu发送候选遮挡物体的包围盒信息,得到gpu反馈的相应候选遮挡物体的遮挡结果。
80.其中,遮挡查询概率用于表征遮挡查询必要性。
81.示例性的,可以直接将初始遮挡物体在在前帧图像的渲染画面的占比,作为该初始遮挡物体的遮挡查询概率。此时,若遮挡查询概率越大,则表明该物体体积越大,相应被遮挡的可能性越小;若遮挡查询概率越小,则表明该物体体积越小,相应被遮挡的可能性越小。
82.在一个可选实施例中,可以将初始遮挡物体的物体像素数量,与在前帧图像的渲染画面的整体像素数量的比值,作为遮挡查询概率,从而提高了遮挡查询概率的运算过程的便捷性。
83.若在前帧图像的渲染画面中,仅携带有初始遮挡物体的片元信息,则可以根据初始遮挡物体的片元数量,估计该初始遮挡物体的物体像素数量。也即,根据初始遮挡物体在在前帧图像的片元数量,估计初始遮挡物体的物体像素数量;将物体像素数量与在前帧图像的整体像素数量的比值,作为遮挡查询概率。
84.示例性的,可以通过在历史渲染过程中,统计单个片元所对应像素数量;将单个片元对应像素数量的统计结果,作为单个片元对应的标准像素数量;采用初始遮挡物体的片元数量与标准像素数量的乘积,估计该初始遮挡物体的物体像素数量。其中,统计结果可以是最大值、最小值、中位数或平均值等。
85.为了进一步提高标准像素数量的确定结果的准确度,在一个可选实施例中,还可以针对不同物体,分别统计相应物体中各单个片元的像素数量,并将该物体中各片元对应像素数量的统计结果,作为该物体的单个片元对应的标准像素数量。
86.可以理解的是,采用片元数量估计物体像素数量,作为遮挡查询概率的确定基础,从而能够将对候选遮挡物体的选取过程,应用于无法获知初始遮挡物体的物体像素数量的情况,提高了本公开的候选遮挡物体的遮挡结果确定方案的适配范围,从而丰富了本公开的图像渲染方法的使用场景。
87.其中,预设查询条件可以是遮挡查询概率不大于预设概率阈值。其中,预设概率阈值可以基于gpu的渲染效率,和/或cpu与gpu之间的数据传输效率确定。
88.可以理解的是,仅选取遮挡查询概率满足预设查询条件的初始遮挡物体作为候选遮挡物体,进行后续的遮挡结果判定,避免了对全量初始遮挡物体进行遮挡结果判定,从而减少了gpu的运算资源的占用,同时避免了cpu与gpu之间的数据传输资源的浪费。
89.s305、向gpu发送当前帧图像中未遮挡的待渲染物体的渲染信息,以使gpu渲染当前帧图像。
90.其中,渲染首帧图像所采用的目标场景树,基于首帧图像的物体分布情况和视椎体信息所确定的初始场景空间构建得到。
91.其中,未遮挡的待渲染物体,可以包括在前帧图像中未渲染的可渲染物体,以及在前帧图像中已渲染且未遮挡的可渲染物体。
92.仅将未遮挡的待渲染物体的渲染信息,发送至gpu中,进行当前帧图像的渲染,无需将遮挡的待渲染物体进行渲染,从而提高了图像渲染结果与现实场景空间的契合度,同时避免了对遮挡的可渲染物体的渲染,导致的渲染资源的浪费,和渲染效率的降低,进而提高了资源利用率和渲染效率。
93.本公开实施例通过视椎体信息进行待渲染物体的选取,避免了对视椎体范围外的候选物体的渲染,以及通过gpu对待渲染物体进行遮挡结果判定,仅进行未遮挡的待渲染物体的渲染。上述技术方案避免了渲染资源的浪费,同时提高了渲染效率。另外,通过gpu进行遮挡结果判定,提高了遮挡结果判定效率,实现了gpu与cpu之间的资源分配的合理性和有效性。同时,在进行遮挡结果判定时,结合在前帧图像的渲染情况而非当前帧图像的渲染情况,无需cpu进行当前帧图像预渲染的等待,进一步节约了渲染资源,节约了时间成本,提高了渲染效率。
94.作为上述各图像渲染方法的实现,本公开还提供了一种实施上述各图像渲染方法的执行装置的可选实施例。参见图4所示的图像渲染装置400,包括:场景树获取模块401、场景树更新模块402和当前帧图像渲染模块403。其中,场景树获取模块401,用于获取渲染当前帧图像对应在前帧图像时所采用的目标场景树;场景树更新模块402,用于根据所述当前帧图像中的物体分布情况,更新所述目标场景树;当前帧图像渲染模块403,用于根据更新后的目标场景树,渲染所述当前帧图像;其中,渲染首帧图像所采用的目标场景树,基于所述首帧图像的物体分布情况和视椎体信息所确定的初始场景空间构建得到。
95.本公开上述实施例的技术方案,通过首帧图像中的物体分布情况和视椎体信息,进行初始场景空间的构建,并基于初始场景空间替代三维场景中最大场景空间,进行目标场景树的初始构建。随着渲染过程的进行,根据在前帧图像的目标场景树,以及当前帧图像的物体分布情况,按需更新目标场景树,从而实现从初始场景空间对应场景树到最大场景空间对应场景树的递进式过渡,避免了在整个渲染过程中均采用最大场景空间对应目标场景树的使用,导致由于渲染过程遍历成本开销过大,而出现渲染性能下降的情况,从而提高了最大场景空间对应目标场景树生成之前渲染过程的渲染效率,进而有助于提高三维场景
视频的整体渲染效率。
96.在一个可选实施例中,所述装置还包括初始场景空间确定模块,用于确定初始场景空间;所述初始场景空间确定模块,包括:首帧候选物体确定单元,用于根据所述首帧图像的物体分布情况,确定所述首帧图像中的候选物体以及相应包围盒信息;首帧候选物体选取单元,用于根据所述视椎体信息,选取所述首帧图像中位于视椎体范围内的候选物体;初始场景空间确定单元,用于根据选取的候选物体的包围盒信息,确定所述初始场景空间。
97.在一个可选实施例中,所述场景树更新模块402,包括:当前帧候选物体信息确定单元,用于根据所述当前帧图像中的物体分布情况,确定所述当前帧图像中候选物体的位置信息和相应包围盒信息;场景树生长单元,用于若在所述当前帧图像中存在所述目标场景树中未覆盖的候选物体,则根据所述未覆盖的候选物体的位置信息和相应包围盒信息,生长所述目标场景树。
98.在一个可选实施例中,其中,所述场景树更新模块402,包括:当前帧待更新物体信息确定单元,用于根据所述当前帧图像中的物体分布情况,确定所述当前帧图像中的待更新物体和相应包围盒信息;其中,所述待更新物体为所述当前帧图像中与所述在前帧图像所属节点不同的候选物体;搜索范围确定单元,用于根据所述待更新物体的相应包围盒信息和所述待更新物体在所述在前帧图像的节点信息,确定节点搜索范围;目标节点确定单元,用于在所述节点搜索范围内,确定所述待更新物体所属目标节点;场景树更新单元,用于建立所述待更新物体与相应目标节点的指向关系,以更新所述目标场景树。
99.在一个可选实施例中,所述搜索范围确定单元,包括:父节点查子单元,用于根据所述待更新物体的相应包围盒信息和所述待更新物体在所述在前帧图像的节点信息,向目标场景树的根节点方向,查覆盖所述待更新物体的场景空间所指向的最小父节点;搜索范围确定子单元,用于根据所述最小父节点下的各子节点,确定节点搜索范围。
100.在一个可选实施例中,所述目标节点确定单元,包括:子节点遍历子单元,用于在所述节点搜索范围内,沿着所述目标场景树的层级延伸方向依次遍历各子节点;目标节点确定子单元,用于将覆盖所述待更新物体的场景空间所指向的最小子节点,作为所述待更新物体所属目标节点。
101.在一个可选实施例中,所述当前帧图像渲染模块403,包括:待渲染物体确定单元,用于根据所述视椎体信息,确定所述目标场景树中位于所
述视椎体范围内的候选物体作为待渲染物体;遮挡结果确定单元,用于向图形处理器gpu发送所述在前帧图像已渲染的待渲染物体的包围盒信息,得到所述gpu反馈的相应待渲染物体的遮挡结果;当前帧图像渲染单元,用于向所述gpu发送所述当前帧图像中未遮挡的待渲染物体的渲染信息,以使所述gpu渲染所述当前帧图像。
102.在一个可选实施例中,所述遮挡结果确定单元,包括:初始遮挡物体确定子单元,用于将所述在前帧图像已渲染的待渲染物体作为初始遮挡物体;遮挡查询概率确定子单元,用于根据所述初始遮挡物体在所述在前帧图像的渲染画面的占比,确定遮挡查询概率;候选遮挡物体选取子单元,用于选取所述遮挡查询概率满足预设查询条件的初始遮挡物体,作为候选遮挡物体;遮挡结果确定子单元,用于向所述gpu发送所述候选遮挡物体的包围盒信息,得到gpu反馈的相应候选遮挡物体的遮挡结果。
103.在一个可选实施例中,所述遮挡查询概率确定子单元,包括:物体像素数量估计从单元,用于根据所述初始遮挡物体在所述在前帧图像的片元数量,估计所述初始遮挡物体的物体像素数量;遮挡查询概率确定从单元,包括将所述物体像素数量与所述在前帧图像的整体像素数量的比值,作为所述遮挡查询概率。
104.上述图像渲染装置可执行本公开任意实施例所提供的图像渲染方法,具备执行各图像渲染方法相应的功能模块和有益效果。
105.本公开的技术方案中,所涉及的图像帧机器目标场景树的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
106.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
107.图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
108.如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(rom)502中的计算机程序或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序,来执行各种适当的动作和处理。在ram 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
109.设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如
因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
110.计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如图像渲染方法。例如,在一些实施例中,图像渲染方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到ram 503并由计算单元501执行时,可以执行上文描述的图像渲染方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图像渲染方法。
111.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
112.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
113.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
114.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
115.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据
服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
116.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
117.人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
118.云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
119.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
120.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

技术特征:


1.一种图像渲染方法,包括:获取渲染当前帧图像对应在前帧图像时所采用的目标场景树;根据所述当前帧图像中的物体分布情况,更新所述目标场景树;根据更新后的目标场景树,渲染所述当前帧图像;其中,渲染首帧图像所采用的目标场景树,基于所述首帧图像的物体分布情况和视椎体信息所确定的初始场景空间构建得到。2.根据权利要求1所述的方法,其中,所述初始场景空间采用以下方式得到:根据所述首帧图像的物体分布情况,确定所述首帧图像中的候选物体以及相应包围盒信息;根据所述视椎体信息,选取所述首帧图像中位于视椎体范围内的候选物体;根据选取的候选物体的包围盒信息,确定所述初始场景空间。3.根据权利要求1或2所述的方法,其中,所述根据所述当前帧图像中的物体分布情况,更新所述目标场景树,包括:根据所述当前帧图像中的物体分布情况,确定所述当前帧图像中候选物体的位置信息和相应包围盒信息;若在所述当前帧图像中存在所述目标场景树中未覆盖的候选物体,则根据所述未覆盖的候选物体的位置信息和相应包围盒信息,生长所述目标场景树。4.根据权利要求1或2所述的方法,其中,所述根据所述当前帧图像中的物体分布情况,更新所述目标场景树,包括:根据所述当前帧图像中的物体分布情况,确定所述当前帧图像中的待更新物体和相应包围盒信息;其中,所述待更新物体为所述当前帧图像中与所述在前帧图像所属节点不同的候选物体;根据所述待更新物体的相应包围盒信息和所述待更新物体在所述在前帧图像的节点信息,确定节点搜索范围;在所述节点搜索范围内,确定所述待更新物体所属目标节点;建立所述待更新物体与相应目标节点的指向关系,以更新所述目标场景树。5.根据权利要求4所述的方法,其中,所述根据所述待更新物体的相应包围盒信息和所述待更新物体在所述在前帧图像的节点信息,确定节点搜索范围,包括:根据所述待更新物体的相应包围盒信息和所述待更新物体在所述在前帧图像的节点信息,向目标场景树的根节点方向,查覆盖所述待更新物体的场景空间所指向的最小父节点;根据所述最小父节点下的各子节点,确定节点搜索范围。6.根据权利要求5所述的方法,其中,所述在所述节点搜索范围内,确定所述待更新物体所属目标节点,包括:在所述节点搜索范围内,沿着所述目标场景树的层级延伸方向依次遍历各子节点;将覆盖所述待更新物体的场景空间所指向的最小子节点,作为所述待更新物体所属目标节点。7.根据权利要求1或2所述的方法,其中,所述根据更新后的目标场景树,渲染所述当前帧图像,包括:
根据所述视椎体信息,确定所述目标场景树中位于所述视椎体范围内的候选物体作为待渲染物体;向图形处理器gpu发送所述在前帧图像已渲染的待渲染物体的包围盒信息,得到所述gpu反馈的相应待渲染物体的遮挡结果;向所述gpu发送所述当前帧图像中未遮挡的待渲染物体的渲染信息,以使所述gpu渲染所述当前帧图像。8.根据权利要求7所述的方法,其中,所述向图形处理器gpu发送所述在前帧图像已渲染的待渲染物体的包围盒信息,得到所述gpu反馈的相应待渲染物体的遮挡结果,包括:将所述在前帧图像已渲染的待渲染物体作为初始遮挡物体;根据所述初始遮挡物体在所述在前帧图像的渲染画面的占比,确定遮挡查询概率;选取所述遮挡查询概率满足预设查询条件的初始遮挡物体,作为候选遮挡物体;向所述gpu发送所述候选遮挡物体的包围盒信息,得到gpu反馈的相应候选遮挡物体的遮挡结果。9.根据权利要求8所述的方法,其中,所述根据所述初始遮挡物体在所述在前帧图像的渲染画面的占比,确定遮挡查询概率,包括:根据所述初始遮挡物体在所述在前帧图像的片元数量,估计所述初始遮挡物体的物体像素数量;将所述物体像素数量与所述在前帧图像的整体像素数量的比值,作为所述遮挡查询概率。10.一种图像渲染装置,包括:场景树获取模块,用于获取渲染当前帧图像对应在前帧图像时所采用的目标场景树;场景树更新模块,用于根据所述当前帧图像中的物体分布情况,更新所述目标场景树;当前帧图像渲染模块,用于根据更新后的目标场景树,渲染所述当前帧图像;其中,渲染首帧图像所采用的目标场景树,基于所述首帧图像的物体分布情况和视椎体信息所确定的初始场景空间构建得到。11.根据权利要求10所述的装置,其中,所述装置还包括初始场景空间确定模块,用于确定初始场景空间;所述初始场景空间确定模块,包括:首帧候选物体确定单元,用于根据所述首帧图像的物体分布情况,确定所述首帧图像中的候选物体以及相应包围盒信息;首帧候选物体选取单元,用于根据所述视椎体信息,选取所述首帧图像中位于视椎体范围内的候选物体;初始场景空间确定单元,用于根据选取的候选物体的包围盒信息,确定所述初始场景空间。12.根据权利要求10或11所述的装置,其中,所述场景树更新模块,包括:当前帧候选物体信息确定单元,用于根据所述当前帧图像中的物体分布情况,确定所述当前帧图像中候选物体的位置信息和相应包围盒信息;场景树生长单元,用于若在所述当前帧图像中存在所述目标场景树中未覆盖的候选物体,则根据所述未覆盖的候选物体的位置信息和相应包围盒信息,生长所述目标场景树。
13.根据权利要求10或11所述的装置,其中,所述场景树更新模块,包括:当前帧待更新物体信息确定单元,用于根据所述当前帧图像中的物体分布情况,确定所述当前帧图像中的待更新物体和相应包围盒信息;其中,所述待更新物体为所述当前帧图像中与所述在前帧图像所属节点不同的候选物体;搜索范围确定单元,用于根据所述待更新物体的相应包围盒信息和所述待更新物体在所述在前帧图像的节点信息,确定节点搜索范围;目标节点确定单元,用于在所述节点搜索范围内,确定所述待更新物体所属目标节点;场景树更新单元,用于建立所述待更新物体与相应目标节点的指向关系,以更新所述目标场景树。14.根据权利要求13所述的装置,其中,所述搜索范围确定单元,包括:父节点查子单元,用于根据所述待更新物体的相应包围盒信息和所述待更新物体在所述在前帧图像的节点信息,向目标场景树的根节点方向,查覆盖所述待更新物体的场景空间所指向的最小父节点;搜索范围确定子单元,用于根据所述最小父节点下的各子节点,确定节点搜索范围。15.根据权利要求14所述的装置,其中,所述目标节点确定单元,包括:子节点遍历子单元,用于在所述节点搜索范围内,沿着所述目标场景树的层级延伸方向依次遍历各子节点;目标节点确定子单元,用于将覆盖所述待更新物体的场景空间所指向的最小子节点,作为所述待更新物体所属目标节点。16.根据权利要求10或11所述的装置,其中,所述当前帧图像渲染模块,包括:待渲染物体确定单元,用于根据所述视椎体信息,确定所述目标场景树中位于所述视椎体范围内的候选物体作为待渲染物体;遮挡结果确定单元,用于向图形处理器gpu发送所述在前帧图像已渲染的待渲染物体的包围盒信息,得到所述gpu反馈的相应待渲染物体的遮挡结果;当前帧图像渲染单元,用于向所述gpu发送所述当前帧图像中未遮挡的待渲染物体的渲染信息,以使所述gpu渲染所述当前帧图像。17.根据权利要求16所述的装置,其中,所述遮挡结果确定单元,包括:初始遮挡物体确定子单元,用于将所述在前帧图像已渲染的待渲染物体作为初始遮挡物体;遮挡查询概率确定子单元,用于根据所述初始遮挡物体在所述在前帧图像的渲染画面的占比,确定遮挡查询概率;候选遮挡物体选取子单元,用于选取所述遮挡查询概率满足预设查询条件的初始遮挡物体,作为候选遮挡物体;遮挡结果确定子单元,用于向所述gpu发送所述候选遮挡物体的包围盒信息,得到gpu反馈的相应候选遮挡物体的遮挡结果。18.根据权利要求17所述的装置,其中,所述遮挡查询概率确定子单元,包括:物体像素数量估计从单元,用于根据所述初始遮挡物体在所述在前帧图像的片元数量,估计所述初始遮挡物体的物体像素数量;遮挡查询概率确定从单元,包括将所述物体像素数量与所述在前帧图像的整体像素数
量的比值,作为所述遮挡查询概率。19.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的图像渲染方法。20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-9中任一项所述的图像渲染方法。

技术总结


本公开提供了图像渲染方法、装置、设备和存储介质,涉及人工智能技术领域,具体为增强现实、虚拟现实、计算机视觉、深度学习等技术领域,可应用于元宇宙、虚拟数字人等场景。具体实现方案为:获取渲染当前帧图像对应在前帧图像时所采用的目标场景树;根据所述当前帧图像中的物体分布情况,更新所述目标场景树;根据更新后的目标场景树,渲染所述当前帧图像;其中,渲染首帧图像所采用的目标场景树,基于所述首帧图像的物体分布情况和视椎体信息所确定的初始场景空间构建得到。根据本公开的技术,提高了图像渲染效率。高了图像渲染效率。高了图像渲染效率。


技术研发人员:

余扬 张滔滔 孙昊

受保护的技术使用者:

北京百度网讯科技有限公司

技术研发日:

2022.12.21

技术公布日:

2023/1/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-84175-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-28 08:49:09

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论