数据处理方法、装置、电子设备及存储介质与流程

文档序号:25303969发布日期:2021-06-04 14:03阅读:212来源:国知局
数据处理方法、装置、电子设备及存储介质与流程

1.本申请涉及计算机、人工智能、游戏技术领域,具体的,本申请涉及一种数据处理方法、装置、电子设备及存储介质。


背景技术:

2.研究高效的几何三维表征(也可以称为3d表征、几何特征、几何形状特征、几何表征、几何形状表征等)是计算机视觉和计算机图形学的核心任务之一,涉及从上层应用程序(例如,场景理解、物体识别、物体分类等)到各种底层任务(包括对3d(three

dimensional,三维)形状重建,插值和操作等)。
3.为了适应各种应用场景,3d表征的研究也一直是技术人员研究的热点,虽然目前已存在多种3d表征的学习方法,比如,点云和体素的表示方式、基于网格的学习方法、最近出现的基于神经隐式函数的学习方法等,但是研究发现现有各种方式所学习到的3d表征在实际应用中的效果仍不够理想,3d表征的学习仍有待改进。


技术实现要素:

4.本申请实施例的目的旨在提供一种能够有效改善现有三维对象处理效果及效率的数据处理方法、装置、电子设备及存储介质。
5.一方面,本申请实施例提供了一种数据处理方法,该方法包括:
6.获取三维对象对应的源数据;
7.基于上述源数据,获取该源数据对应的多个节点的第一几何特征,该多个节点包括具有树形结构的多个层级的节点,其中,不同层级的节点对应三维对象的三维空间中不同的空间,对于多个节点中的任一父节点,该父节点的第一几何特征是基于该节点的各子节点的第一结构特征和第一几何特征得到的,一个节点的第一结构特征表征了该节点对应的空间中包含的三维对象的表面结构相对于三维对象的整体表面的占用情况;
8.基于获取的多个节点的第一几何特征,确定上述多个节点中的目标节点,并通过对目标节点的第一几何特征进行解码得到目标节点下的各子节点对应的第二几何特征;
9.基于解码得到的各节点对应的第二几何特征进行三维对象的处理,得到对应的处理结果。
10.可选的,上述源数据可以包括用于识别三维对象的数据、用于构建三维对象的数据或用于对三维对象进行分类的数据中的至少一种。
11.可选的,上述源数据可以包括二维数据或三维数据中的至少一种。
12.可选的,上述源数据包括以下至少一项:
13.三维对象对应的点云数据;三维对象的二维图像;三维对象对应的网格数据。
14.可选的,基于解码得到的各节点对应的第二几何特征进行三维对象的处理,得到对应的处理结果,包括以下任一项:
15.基于解码得到的各节点对应的第二几何特征,构建三维对象的三维图像;
16.基于解码得到的各节点对应的第二几何特征,识别三维对象,得到三维对象的识别结果;
17.基于解码得到的各节点对应的第二几何特征,确定三维对象的类别。
18.其中,构建三维对象的三维图像包括重建三维对象的三维图像或修复三维对象的三维图像。
19.另一方面,本申请实施例提供了一种数据处理装置,该装置包括数据获取模块和数据处理模块,其中:数据获取模块用于获取三维对象的源数据;数据处理模块用于执行以下操作:
20.基于上述源数据,获取源数据对应的多个节点的第一几何特征,多个节点包括具有树形结构的多个层级的节点,其中,不同层级的节点对应三维对象的三维空间中不同的空间,对于多个节点中的任一父节点,该父节点的第一几何特征是基于该节点的各子节点的第一结构特征和第一几何特征得到的,一个节点的第一结构特征表征了该节点对应的空间中包含的三维对象的表面结构相对于三维对象的整体表面的占用情况;基于获取的多个节点的第一几何特征,确定多个节点中的目标节点,并通过对目标节点的第一几何特征进行解码得到目标节点下的各子节点对应的第二几何特征;基于解码得到的各节点对应的第二几何特征进行所述三维对象的处理,得到对应的处理结果。
21.另一方面,本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,存储器中存储有计算机程序,处理器在运行所述计算机程序时执行本申请任一可选实施例中提供的数据处理方法。
22.另一方面,本申请实施例还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该计算机程序在被处理器运行时,处理器执行本申请任一可选实施例中提供的数据处理方法。
23.再一方面,本申请实施例还提供了一种计算机程序产品或计算机程序,当其在计算机设备上运行时,是的计算机设备执行本申请所提供的任一可选实施方法。该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请任一可选实施方式中提供的数据处理方法。
24.本申请提供的技术方案带来的有益效果是:在基于三维对象对应的源数据获取该三维对象对应的几何三维表征(即上述第二几何特征)时,用于得到该表征的各节点对应的第一几何特征中融合了三维对象表面结构的结构信息(即上述第一结构特征),对于一个节点而言,其所对应的空间内的表面的结构特征可以表征该表面对于三维对象整体表面的重要性(即占用情况,如表面占用率),因此,基于这该结构信息能够可以只对三维对象对应的各节点中的重要节点进行进一步解码,从而可以在解码得到包含了丰富结构语义信息的节点的几何特征的同时,有效减少了数据处理量,从而可以根据解码得到的各节点的几何特征实现对三维对象的高效且精准的处理。
附图说明
25.为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
26.图1为本申请实施例提供的一种数据处理方法的流程示意图;
27.图2a为本申请实施例提供的一种模型的训练阶段的原理示意图;
28.图2b为本申请实施例提供的一种模型应用阶段的原理示意图;
29.图3为本申请一示例中提供的一种三维对象对应的八叉树结构的示意图;
30.图4为本申请实施例提供的一种分层次编码器和解码器的工作原理示意图;
31.图5本申请实施例提供的一种编码器结构的示意图;
32.图6示出了本申请实施例提供的一种解码器结构的示意图;
33.图7为本申请实施例提供的一种数据处理装置的结构示意图;
34.图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
35.下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
36.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
37.为了更好的理解及说明本申请实施例所提供的方法,下面首先对本申请实施例中所涉及到的一些技术用语进行说明:
38.八叉树结构,也可以称为八叉树即octree,是一种用于描述三维空间的树状数据结构,八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。八叉树若不为空树的话,树中任一节点的子节点恰好只会有八个或零个。对于一个对象而言,八叉树的根节点对应于包围该对象的三维空间,根节点的子节点对应于该三维空间的八分之一空间,子节点的子节点对应于子节点对应空间的八分之一空间。八叉树中的一个节点可以称为一个octant。
39.三维对象,本申请实施例中所提及的三维对象的具体形式本申请实施例不做限定,可以是任一真实对象,也可以是虚拟对象,如可以是物体(如桌子、椅子、汽车、飞机等等)、动物、还可以是一个场景空间,还可以是游戏中的游戏角色、游戏道具等。
40.体素化(voxelization),是将对象(如物体、人、人的部分结构、动物等)的几何形式表示转换成最接近该对象的体素表示形式,产生体数据集,其不仅包含对象的表面信息,还能描述对象的内部属性。空间体素跟表示图像的二维像素比较相似,只不过从二维的点扩展到三维的立方体。将三维对象的数据进行体素化处理得到的数据可以称为体素化数据,例如,对于一个三维形状,可以构建该形状对应的包围盒(该包围盒即为该对应的三维空间)以及对应的八叉树结构,并基于该八叉树结构实现体素化处理,得到八叉树中各节点对应的体素化数据。
41.sdf(signed distance field,有向距离场),用于计算一个空间点位于一个空间分布函数(即隐式函数)所描述的空间的"里面"还是外面,即sdf的结算结果表征了一个点是在一个区域的内部还是外部。
42.隐式函数(implicit function),也称为隐函数,如果方程f(x,y)=0能确定y是x的函数,那么称这种方式表示的函数是隐函数。在三维建模领域,可以通过隐式曲面(即本申请实施例中的表面/表面结构)重构技术进行三维建模,即隐式建模方法,该方法是通过定义在三维模型空间上的隐式函数来表达模型空间结构的方法,对于一个对象(如三维形状),可以通过隐式函数来表征该对象的三维模型的几何结构。一个空间中包含的表面结构所对应的隐式函数可以通过学习(训练)得到。只用于表示整个形状的一部分的隐式函数可以称为局部隐式函数。
43.特征,也可以称为特征向量、表征、特征表征/表示、隐特征、隐式特征、特征向量、隐向量等,对应的英文可以称为latent feature、latent code或latent vector(有时候也简称为code),都是对于元素(比如的一个点、一个对象、一个空间等等)的数学化的表征方式,可以通过训练或其他学习等方式学习得到元素对应的特征,在实际应用中,对于神经网络,不论是编码结构还是通过解码结构,通常都是包含一层或多层隐藏层的,通过编码结构或解码结构的隐藏层可以实现对数据特征的学习和提取,即提取元素对应的向量化的表示。
44.另外,需要说明的是,本申请实施例所提供的数据处理方法,是可以应用于各种实际应用场景中,解决各种实际的技术问题的,是具有实用价值的。比如,基于本申请提供的数据处理方案,可以基于对象的二维图像(如对象的深度图像等)重建该对象的三维结构,即可以进行图像处理,还可以基于对象的点云数据实现对该对象的三维重建,即实现三维对象的形状构建,比如可以应用到智慧城市仿真中,基于智慧城市中的对象的二维图像或点云数据进行三维对象的仿真构建,再比如还可以应用到游戏场景中,对游戏场景中的三维对象进行构建,还可以基于对象的部分三维数据(如点云或网格数据等)实现三维对象的修复,还可以根据对象的源数据(如二维图像或点云数据等)实现对象的识别、对象的分类等。
45.本申请各可选实施例中所提供的方法,所涉及到的特征的提取(包括特征的编码或解码等)的步骤,可以采用人工智能技术实现。本申请实施例所涉及的数据的处理(包括数据的存储、数据的计算等)可以采用云技术实现,如所涉及的数据存储可以采用云存储方式,涉及的数据计算可以采用云计算方式。
46.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
47.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
48.本申请实施例所提的方案中,具体可以涉及到人工智能中的计算机视觉技术领域。计算机视觉技术(computer vision,cv)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
49.下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
50.图1示出了本申请实施例提供的一种数据处理方法的流程示意图,如图1中所示,该方法可以包括以下步骤:
51.步骤s110:获取三维对象对应的源数据;
52.其中,三维对象可以是任一实体对象或虚拟对象,三维对象对应的源数据是与三维对象的形状结构有关的数据,基于该源数据可以实现对三维对象的识别、分类或者构建(包括重建或补全即修复等)等。该源数据可以是二维数据,可以是三维数据。
53.可选的,三维对象的源数据可以是三维对象的点云数据、二维图像、或网格数据中的至少一种。
54.其中,二维和三维是相对于不同维度的空间而言的,二维数据是指二维平面空间上的数据,即二维坐标系下的数据形式,三维数据指的是立体空间中的数据,即三维坐标系下的数据形式。例如,二维数据可以是二维图像,具体数据内容可以是图像中各点(二维坐标点)的像素值、深度值等,三维数据可以是点云数据,如立体空间中各点(三维坐标点)的颜色信息、反射强度信息,对于不同的数据采集方式,点云数据包含的三维坐标点的信息内容可能会不同。网格数据是指定义在网格之上的数据,即对初始数据进行网格化处理后得到的数据,在计算机图形学中,网格是一种基本的表示方式,比如可以将点云数据进行网格化处理,得到对应的网格数据。
55.步骤s120:基于三维对象的源数据,获取该源数据对应的多个节点的第一几何特征;
56.其中,上述多个节点包括树形结构中多个层级的节点,对于该多个节点中的一个父节点,该父节点的第一几何特征是基于该父节点的各子节点的第一结构特征和第一几何特征得到的,一个节点的第一结构特征表征了该节点对应的空间中包含的三维对象的表面结构相对于三维对象的整体表面的占用情况(也可以理解为节点对应的空间中包含的表面对于三维对象的重要程度)。可选的,第一结构特征还可以进一步表征节点对应的空间中包含的表面结构的几何形状复杂度。
57.对于任一节点,该节点的第一几何特征表征了该节点对应的空间中包含的几何形状的特征,也就是其中包含的形状(也就是表面结构)的形状特征。本申请实施例提供的方案中,可以采用由下至上的编码方式得到各层级的节点的第一几何特征,具体的,可以先获
取不存在子节点的各节点的第一几何特征,而对于存在子节点的父节点,其第一几何特征可以是通过融合其各子节点的第一几何特征和第一结构特征得到,可选的,可以将父节点的所有子节点的特征表示(包括第一几何特征和第一结构特征)拼接,并对拼接后的特征进行特征提取,得到该父节点的第一几何特征。可见,基于该方式得到的第一几何特征同时融合了空间中所包含的表面结构的结构信息和几何形状信息,包含了更丰富的结构语义信息,从而后续可以基于该特征得到能够准确的三维对象所对应的表征信息(即后文中的第二几何特征),为提升三维对象的处理结果提供了更好的基础支持。
58.本申请实施例中,上述具有树形结构的多个层级的节点,可以解释为基于源数据所提取得到的多个特征向量(即特征表示)之间是隐含具有不同层级关系的(父子关系)的特征向量。
59.为了更好的理解,下面结合一个示例对具有树形结构的多个层级的节点进行说明。对于任一三维对象,可以构造包围该三维对象的立方体,该立方体则可以理解为三维对象的三维空间,也就是三维对象占据的三维空间,可以基于该立方体构建对应的八叉树结构,包围该三维对象的初始立方体可以对应于树形结构(即八叉树)的根节点(本申请实施例将根节点称为最高层级的节点),根节点的每个子节点(根节点下一层级的节点)即对应将初始立方体划分得到的八个子空间中的一个子空间,同样的,每个该子节点的下一层级的节点即为将该子节点对应的空间再次划分后的一个子空间。相应的,该八叉树结构中每个子节点对应的特征表示即为该子节点所对应的空间的特征向量。可以理解的是,在实际应用中,一个子节点对应的空间中可能会包含三维对象的部分或全部表面结构(也就是三维对象的表面即surface),也可不包含。
60.可选的,对于上述任一节点,该节点对应的第一结构特征表征了该节点对应的空间中包含的三维对象的表面结构对于三维对象的重要性以及包含的该表面结构的几何形状复杂度。其中,该重要性可以理解为该节点对应的空间中是否包含了三维对象的表面,以及如果包含了,所包含的表面对于三维对象的重要程度,可选的,该重要程度可以采用表面占有率表示,即该节点对应的空间中包含的表面占该三维对象的整个表面的比例,如可以是面积占有率,占有率越高越重要。表面结构的几何形状复杂度即表面形状的复杂性(即几何形状的丰富性,可简称为几何丰富性),也可以理解成表面的平滑度,表面越平滑复杂性越低。可选的,表面形状的复杂性可以采用表面法向的变化量表示,变化量越大说明复杂性越高。一个节点对应的第一几何特征,则是用于表示该节点所对应的空间中包含的表面结构的几何形状的特征向量。
61.本申请实施例中,基于三维对象的源数据,获取该源数据对应的具有树形结构的多个层级的节点的第一几何特征的步骤,可以通过训练得到的神经网络模型(简称为特征映射/提取模型)实现,将三维对象的源数据输入至训练好的模型中,得到对应的各层级的各节点的第一几何特征。
62.其中,对于特征映射模型的具体网络结构本申请实施例不做限定。作为一可选方案,该特征映射模型可以是基于vae(variational auto

encoder,变分自动编码器)原理的模型,vae可以作为特征映射模型的最后一个隐藏层,基于vae输出的正态分布参数得到满足需求的第一几何特征。
63.步骤s130:基于获取的多个节点的第一几何特征,确定多个节点中的目标节点,并
通过对目标节点的特征表示进行解码得到目标节点下的各子节点对应的第二几何特征;
64.其中,目标节点包括上述多个节点中的根节点以及上述多个节点中满足设定条件的节点,节点满足设定条件指的是节点所对应的空间中包含的表面结构满足设定条件,可选的,节点满足设定条件可以是节点对应的空间中包含表面结构,或者是空间中包含表面结构且表面结构的几何形状复杂度大于或等于复杂度阈值(或者是复杂度为指定值)。其中,一个节点是否满足设定条件可以是基于该节点对应的第二结构特征确定的,该节点对应的第二结构特征可以是基于该节点的父节点的第一几何特征确定的,具体可以是通过对该节点的父节点的第一几何特征进行解码得到的(在下文中将结合具体实施例进行说明,在此不再展开说明)。需要说明的是,第二结构特征所表征的含义与前文中第一结构特征所表征的含义是相同的,只是第一结构特征是一个初始化的特征,第二结构特征是基于节点的第一几何特征进一步处理得到的结果。
65.由于大多数3d形状(3d对象的一种示例)通常是由较大的平滑区域和大规模的尖锐特征组成,其表面通常仅占据整个空间(即上述三维空间)的一小部分,空间占用极度稀疏。而空间中如果不包含表面或者包含的表面的重要性很小(如表面占有率很小),则可以在后续中不再对该空间进行再处理(如对该空间中的结构进行重建),以减少数据处理量,提高处理效率,且对处理结果基本不会造成影响。
66.考虑到上述因素,本申请实施例提供的方案,对于上述多个节点,由于所获取的节点的第一几何特征中融合了结构特征,而结构特征可以表征对应的空间中表面结构的重要性(反映了表面稀疏性),可选的,结构特征还可以表征表面结构的几何丰富性,因此,可以基于所获取的各节点的第一几何特征,在同时考虑了节点所对应的表面丰富性和稀疏性的前提下,通过对第一几何特征进行解码,并通过解码过程挑选出需要后续继续进行解码的目标节点,即充分利用3d形状的结构语义确定出重要的目标节点,从而可以只需对包含丰富结构语义的目标节点进行后续处理,从而有效减少需要处理的数据量、大大提高数据处理效率,能够更好的满足实际应用需求。
67.比如,在基于本申请实施例所提供的方案实现对象的三维图像重建的应用中,可以充分利用3d形状的语义结构为曲面建模提供有用的指导,可以根据空间中所包围的几何形状的复杂程度进行不同程度的处理,在减少计算资源(如内存)占用的同时,还能够保证3d建模的精度。
68.步骤s140:基于解码得到的各节点对应的第二几何特征进行三维对象的处理,得到对应的处理结果。
69.本申请实施例所提供的方案,在基于三维对象对应的源数据获取该三维对象对应的几何三维表征(即上述各目标对象对应的第二几何特征)时,同时考虑三维对象表面结构的结构信息(即上述第一结构特征)和形状信息(即第一几何特征),对于一个节点而言,其所对应的空间内的表面的结构特征可以表征了该表面对于三维对象整体表面的重要性(如表面占用率),因此,基于这两种信息能够可以只对三维对象对应的各节点中的重要节点进行进一步解码,并根据解码得到的各节点的几何特征实现对三维对象的高效且精准的处理。
70.本申请实施例中,对于三维对象的处理,可以是任意需要基于三维对象的特征表示(即第二几何特征)所进行的处理。可选的,上述基于解码得到的各节点对应的第二几何
特征进行三维对象的处理,得到对应的处理结果,包括以下任一项:
71.基于解码得到的各节点对应的第二几何特征,构建三维对象的三维图像;
72.基于解码得到的各节点对应的第二几何特征,识别三维对象,得到三维对象的识别结果;
73.基于解码得到的各节点对应的第二几何特征,确定三维对象的类别。
74.其中,构建三维对象的三维图像可以包括重建三维对象或修复三维对象(即三维对象的形状补全)。例如,可以基于对象的二维图像(如包括深度信息和颜色信息的二维图像)实现对象的三维图像的重建,或者根据对象的部分三维数据(如点云数据、网格数据等)实现三维对象的形状补全。而基于特征表示实现对象的识别、分类等也都是常见的实际应用,如可以根据对象的部分或全部点云数据实现对象的识别,在此就不再多做说明。
75.本申请的可选实施例中,基于解码得到的各节点对应的第二几何特征,构建三维对象的三维图像,具体可以包括:
76.获取查询点数据集,查询点数据集中包括多个待查询点的三维位置信息;
77.基于解码得到的各节点对应的第二几何特征和各所述待查询点的三维位置信息,确定各所述待查询点与解码得到的各节点对应的空间中所包含的表面结构的位置关系;
78.基于确定出的各待查询点的位置关系,构建三维对象的三维图像。
79.其中,查询点可以是空间中的任意点,可以通过采样方式获取,如可以在指定空间范围进行均匀采样,并记录各采样点的三维位置信息,这些采样点则可以作为上述查询点,查询点的三维位置信息(可以称为3d查询位置)可以是三维世界坐标,也可以是点所在空间中的位置坐标,也可以是进行一些预处理后的三维坐标,如对三维世界坐标进行归一化处理后的三维坐标。对于任一待查询点和一个节点而言,可以基于该节点对应的第二几何特征和该查询点的3d查询位置,确定出该查询点与该节点对应空间中的表面结构的位置关系,该位置关系可以是该查询点与该表面结构的距离,如sdf距离,基于该位置关系,则可以进一步知晓该查询点是否为构成该表面的点(即位于表面上的点),还是位于表面的前面(前侧)或者表面的后面(后侧),从而可以根据各待查询点与各节点所对应的表面结构的位置关系,实现对三维对象的3d表面结构的构建。
80.可选的,对于任一待查询点,可以将一个节点对应的几何特征和该查询点的3d查询位置拼接后输入训练好的解码模型中,通过该解码模型预测得到该查询点与该目标节点对应的表面的位置关系,其中,模型输出的可以是表征该查询点对应的sdf距离的特征值(也可以称为sdf值),比如特征值的取值范围可以是0到1的实数,如果某个查询点的取值小于0.5,可以说明该查询点是位于该目标节点对应的表面的前面的点,如果特征值大于0.5,则说明该查询点是位于该目标节点对应的表面的后面的点,如果特征值等于0.5,则说明该查询点是该表面上的点,在确定出各待查询点对应的特征值之后,基于这些查询点的3d查询位置和对应的特征值通过网络转换(如将这些特征值输入至网格转换模型中)得到待构建对象对应的3d网格结果,实现3d结构的重建或修复。当然,sdf距离的特征值也可以采用其他表示方式,比如,对于一个查询点,该查询点对应的sdf距离的特征值为正值表示该查询点为表面前面的点,特征值为负值表示该查询点为表面后面的点,特征值为0表示该查询点为位于表面上的点。
81.本申请的可选实施例中,上述基于获取的多个节点的第一几何特征,确定多个节
点中的目标节点,可以包括:
82.按照层级由高到低的顺序,通过对多个节点中父节点的第一几何特征进行解码,得到该父节点下的多个子节点的第二结构特征和第二几何特征,并基于每个子节点的第二结构特征确定出多个子节点中的目标节点。
83.可选的,为了更好确定出三维对象对应的上述多个节点中的目标节点,也就是需要包含丰富几何形状的空间所对应的节点,可以按照上述树形结构中层级由高到低的顺序(根节点为最高层级的节点),采用递归式的解码方式通过对其中的父节点的特征表示进行解码,通过解码得到该父节点下的多个子节点的第二结构特征,并根据该结构特征确定出多个子节点中是否存在需要进一步解码处理的节点(可以理解的是,这里的需要进一步解码处理的节点即目标节点指的是该节点的特征表示需要进一步解码,也就是说该节点对应的空间需要进一步细分),如果存在,则对目标节点继续重复上述解码判断的方式,直到确定出不存在需要进行进一步解码处理的节点。其中,确定出的目标节点中包含根节点。
84.可选的,上述基于获取的多个节点的第一几何特征,确定多个节点中的目标节点,并通过对目标节点的第一几何特征进行解码得到目标节点下的各子节点对应的第二几何特征,是按照多个节点对应的层级由高到低的顺序,将多个节点中的根节点作为初始的待处理节点,通过重复执行以下操作实现的:
85.基于当前待处理节点的第一几何特征,解码得到该节点的各子节点的隐式特征;
86.对于每个子节点,基于该子节点对应的隐式特征,解码得到该子节点对应的第二结构特征;
87.基于各子节点的第二结构特征,确定出各子节点中的目标子节点;
88.基于每个子节点的隐式特征,解码得到每个子节点对应的第二几何特征;
89.将各目标子节点分别作为新的待处理节点;
90.其中,确定出的多个节点中的目标节点包括根节点和各目标子节点。
91.本申请的可选实施例中所提供的确定目标节点及节点对应的解码方式可以通过训练好的神经网络模型(即解码模型/解码器)实现,由于采用的是分层级的解码方式,因此,采用的模型也可以称为分层次解码器,该解码方式也可以称为分层次特征解码。
92.采用本申请实施例提供的该种由上至下的解码方式,可以根据解码出的节点的第二结构特征逐级确定出哪些节点需要进一步解码,由于结构特征可以反映出节点所对应的空间中所包含的表面结构对于三维对象的重要性(即上述表面占用率)以及该表面结构的表面几何形状的复杂性,因此,如果确定出一个节点需要进一步解码,则可以说明该节点对应的空间中包含表面且表面几何形状比较丰富,该节点对应的空间需要进一步细分。采用该方式,可以只对上述多个节点中需要进一步解码处理的节点进行继续解码,不需要进一步解码处理的节点以及该节点的子节点则无需再占用设备资源继续进行解码,从而可以有效减少数据处理量,并节省了设备资源。
93.为了更好的理解该方式,以根节点作为待处理节点作为示例,对该方式进行进一步说明。具体的,对根节点的第一几何特征进行解码,得到该节点的各个子节点的隐式特征(即通过对父节点解码得到该父节点下的各个子节点的隐式特征即隐向量),之后,可以根据每个子节点的隐向量再进一步处理(即继续解码)得到各子节点的第二结构特征,比如,可以通过将每个子节点的隐向量输入至训练好的分类器中,对应一个子节点,分类器的输
出特征则表征了子节点对应的空间是否需要进一步细分,也就是可以将分类器的输出特征作为子节点对应的第二结构特征,从而可以根据该结构特征确定该子节点是否为目标节点,如果分类器的输出特征表征该子节点对应的空间需要进一步细分,则该子节点为目标节点,反之则不是(即不需要对该子节点及该子节点下的各节点再进行解码处理)。在确定出根节点的子节点中的目标节点后,则采用上述同样的方式,将目标节点作为待处理节点,重复上述过程直至不存在需要细分的节点为止。而每个子节点的第二几何特征,则可以基于子节点的隐式特征进一步解码得到。
94.由上述示例可以看出,采用本申请提供的该解码方式,可以基于节点的结构特征确定出是否需要对该节点进行进一步解码处理,如果不需要,则该节点下的子节点及其子节点的子节点都无需再进行解码处理,由于非目标节点对应的空间中并未包含三维对象的表面结构,或者即使包含了但包含的表面结构对三维对象而言并不重要(即表面占有率很低),从而可以在不影响处理效果的前提下明显提高处理效率,减少计算资源的占用。可以理解的是,解码得到各节点中第二几何特征包含各目标节点的子节点(子节点可能是目标节点,有可能不是目标节点)的第二几何特征。
95.本申请的可选实施例中,上述第二结构特征包括第一特征值,第一特征值表征了该节点对应的上述占用情况为节点对应的空间中包含了三维对象的表面结构或者未包含三维对象的表面结构;相应的,上述基于各子节点的第二结构特征,确定出各子节点中的目标子节点,包括:
96.对于任一子节点,若基于该子节点的第一特征值确定该节点所对应空间中包含三维对象的表面结构,则将该子节点作为目标子节点。
97.本申请的可选实施例中,上述第二结构特征包括第一特征值和第二特征值,第一特征值表征了该节点对应的上述占用情况,该占用情况为节点对应的空间中是否包含了三维对象的表面结构,即包含了三维对象的表面结构或者未包含三维对象的表面结构,第二特征值表征了该节点对应的空间中包含的三维对象的表面结构的几何形状复杂度。
98.基于各子节点的第二结构特征,确定出各子节点中的目标子节点,包括:
99.对于一个子节点,若基于该子节点对应的第一特征值确定该节点所对应空间中包含三维对象的表面结构,且基于该子节点对应的第二特征值确定表面结构的几何形状复杂度表征节点对应的空间需要再划分,则将该子节点确定为目标子节点。
100.由前文的描述可知,在可选实施例中,结构特征(第一结构特征、第二结构特征)反映了节点所对应的空间的两个方面的信息,一个是空间中包含的表面对应的占用率,一个是表面对应的几何形状的复杂程度,因此,可以通过两个特征值来表示结构特征,一个表征占用率,一个表征几何形状复杂程度。可选的,第一特征值可以是表征节点对应的空间中是否包含了三维对象的表面结构,即包含了三维对象的表面结构或者未包含三维对象的表面结构,也就是说第一特征值可以是一个二分类对应的特征值,比如,该特征值大于或等于某个设定值,则确定包含了表面结构,即节点对应的空间中封闭了三维对象的表面的一部分。第二特征值也可以是一个二分类对应的特征值,该值表征了节点对应的表面结构的复杂程度够复杂,对应的空间需要进一步细分(也就是节点的空间中所封闭的表面的几何形状需要进步一步细分)。
101.对于一个节点,如果根据该节点对应的第一特征值和第二特征值确定出该节点对
应的空间需要进一步细分,则该节点为目标节点。子节点对应的第二几何特征可以基于子节点的隐式特征进一步解码得到。
102.本申请的可选实施例中,基于获取的多个节点的第一几何特征,确定多个节点中的目标节点,并通过对目标节点的第一几何特征进行解码得到目标节点下的各子节点对应的第二几何特征是通过解码模型实现的,该解码模型是通过以下方式训练得到的:
103.获取训练数据集,其中,训练数据集的每个样本包括一个三维形状和对应的训练标签,训练标签与三维对象的处理方式相对应;
104.构建每个三维形状对应的八叉树结构,并获取八叉树结构的各样本节点对应的节点数据,对于每个样本节点,该节点数据包括样本节点对应的空间的体素化数据和样本节点对应的第一结构特征;
105.基于各样本对应的节点数据和训练标签对神经网络模型进行训练,其中,神经网络模型包括级联的编码模块(即编码器)和解码模块(即解码器),解码模块包括第一解码模块,将训练好的解码模块作为解码模型;
106.其中,对于一个样本,编码模块的输入包括样本对应的节点数据,输出为各样本节点对应的第一几何特征,第一解码模块的输入包括八叉树结构中各样本节点的第一几何特征,输出包括通过解码得到各样本节点对应的第二几何特征。
107.可选的,对于一个样本节点,该样本节点对应的第一结构特征可以通过计算该节点对应的空间中所包含的表面的法向变化量确定,该结构特征可以包含两个特征值,如果该节点对应的空间中包含三维形状的表面,则第一特征值可以设置为第一值(比如1),如果不包含三维形状的表面,则第一特征值可以设置第二值(比如0),进一步的,如果包含三维形状的表面,则可以根据表面的法向变化量确定第二特征值的值是第三值还是第四值,例如,如果法向变化量大于或等于设定阈值,则第二特征值的值为第三值(比如1),否则为第四值(比如0),如果不包含三维形状的表面,第二特征值则为第四值。通过该可选方式,可以确定出节点所对应的空间中的表面结构初始化的二进制标志,也就是第一结构特征。
108.对于每个样本,训练标签指的是样本对应的真实结果,可以理解的是,对于不同的处理需求,样本的训练标签可根据实际需求设置,不同的需求样本标签可能相同,也可能不同。比如,解码模型输出的几何特征是用于重建三维对象,在训练时,训练标签则可以包括用于表征三维形状的真实表面结构的标签,基于解码模块输出的几何特征,可以得到用于表征三维形状的表面结构的预测结果,根据标签和预测结果则可以计算三维形状对应的重建损失(也可以称为几何损失),即表征三维形状的表面结构的真实结果和预测结果差异的损失,基于训练损失可以调整神经网络模型的模型参数,并重复训练过程,直至满足训练结束条件。
109.当然,在训练时,还可以其他训练标签和标签对应的预测结果计算其他关联的损失,以提高模型的性能。比如,训练损失还可以包括结构损失、细分损失等,其中,结构损失和细分损失表征了样本对应的各目标节点的真实结构特征(第一结构特征)和训练过程中解码模块预测得到的各目标节点的第二结构特征之间的差异。
110.需要说明的是,在实际应用中,若三维对象对应的源数据也是可以转换为满足上述编码模块的输入格式要求的输入,训练好的上述编码模块也是可以应用于源数据的处理的,即可以基于三维对象对应的源数据首先得到满足编码模块输入要求的数据,然后将该
数据输入至训练好的编码模块,得到源数据对应的具有树形结构的多个层级的节点的特征表示,该树形结构即为八叉树结构,多个层级的节点即为八叉树结构中的各层级的各个节点。之后,将编码模块的输出输入至训练好的解码模块,得到八叉树结构中的多个节点中的目标节点对应的第二几何特征。
111.本申请的可选实施例中,解码模块还包括与第一解码模块级联的第二解码模块,在训练时,第二解码模块的输入包括第一解码模块的输出和多个样本查询点的三维位置信息,输出为多个样本查询点与解码得到的各节点对应的空间中所包含的表面结构的位置关系;
112.相应的,上述基于解码得到的各节点对应的第二几何特征进行所述三维对象的处理,得到对应的处理结果,包括:
113.获取基于解码得到的各节点对应的查询点数据,查询点数据中包括多个待查询点的三维位置信息;
114.对于解码得到的每个节点,基于该节点对应的第二几何特征和每个待查询点的三维位置信息,通过训练好的第二解码模块,确定每个待查询点与该节点对应的空间中所包含的表面结构的位置关系;
115.基于确定出的各待查询点的位置关系,构建三维对象的三维图像。
116.在实际应用场景为三维对象的构建场景时,为了得到空间中的查询点与三维对象的表面结构的位置关系,神经网络模型的解码部分除了包括用于解码得到各节点对应的第二几何特征的第一解码模块之外,还可以包括与该第一解码模块级联的第二解码模块,通过将第一解码模块解码出的节点对应的第二几何特征和查询点的三维位置信息输入至第二解码模块中,可以得到查询点与节点所对应的空间中包含的表面结构的位置关系,从而可以根据多个查询点对应的位置关系,实现三维对象的构建。可选的,在该应用场景中,样本的训练标签则可以包含多个样本查询点对应的真实位置关系,通过计算多个样本查询点对应的真实位置关系和神经网络模型的解码部分输出的预测位置关系之间的差异,得到对应的几何损失。
117.本申请的可选实施例中,构建每个三维形状对应的八叉树结构,包括:
118.将包围三维形状的三维空间对应的节点作为根节点;
119.将根节点作为初始的待划分节点,对待划分节点重复执行以下操作,直至不存在待划分节点,并基于得到的各节点得到三维形状对应的八叉树结构:
120.将待划分节点对应的空间划分为八个子空间,八个子空间对应的各节点为该节点的八个子节点;
121.对于每个子节点,确定该子节点对应的第一结构特征;
122.基于各子节点对应的第一结构特征,确定出各子节点中的待划分子节点;
123.将确定出的待划分子节点作为新的待划分节点。
124.本申请的该可选实施例提供一种八叉树结构的构建方式,该方式在构建三维形状对应的八叉树结构时,同时考虑了节点所对应的空间中包含的三维形状的表面的占用率以及该表面的几何形状复杂度两个层面的信息,即上述初始结构特征,从而可以只对这两方面信息满足一定条件的重要节点才会再次进行空间的细分,即根据节点的第一结构特征确定是否对节点对应的空间再次进行划分,由于充分考虑了不同的表面结构存在几何形状多
样性的因素,使得构建得到的八叉树结构更加符合节点所对应的空间中包含的表面的几何细节变化粒度,为后续处理提供了包含了更多结构语义信息的数据,从而可以得到更好的数据处理效果。
125.可选的,对于每个子节点,确定子节点对应的第一结构特征,包括:
126.若该子节点对应的空间中包含三维形状的表面结构,则将该子节点的第一特征的第一特征值确定为第一值,否则确定为第二值;
127.若该子节点对应的空间中包含三维形状的表面结构,则确定该表面结构的几何形状复杂度,并根据几何形状复杂度确定该节点对应的第二特征的第二特征值,该第二特征值为第三值或第四值;
128.若该子节点对应的空间中不包含三维形状的表面结构,则将该子节点对应的第二特征的第二特征值确定为第四值;
129.其中,该节点对应的初始结构特征包括第一特征值和第二特征值。
130.可选的,上述基于各子节点对应的初始结构特征,确定出各子节点中的待划分子节点,包括:
131.将各子节点对应的第一结构特征中第一特征值为第一值且第二特征值为第三值的节点,确定为待划分子节点。
132.基于该可选实施例,可以快速、准确的确定出需要进一步划分的节点。可选的,第一值和第三值的取值可以为1,第二值和第四值的取值可以为0。
133.由前文的描述可知,作为另一可选方式,第一结构特征也可以不包含第二特征值,相应的,此时,对于任一子节点,若该节点的第一特征值为第一值,则确定该子节点确定为待划分子节点。
134.作为一可选方案,对应任一节点,确定该节点对应的表面结构的几何形状复杂度,可以包括:
135.确定该表面结构的法向变化量;基于该法向变化量确定几何形状复杂度。
136.具体的,对于空间中的表面结构,可以通过在该表面结构上采样得到多个采样点,并计算多个采样点相对于该表面结构的法向的变化量(简称为法向变化量),基于这些采样点对应的法向变化量则可以得到该表面结构的法向变化量(如取这些采样点对应的变法向化量的均值)。可选的,若表面结构的法向变化量大于或等于设定阈值,则对应的几何形状复杂度的第二特征值的取值可以为第三值,否则为第四值。
137.本申请的可选实施例中,对于任一样本,编码模块是通过以下方式编码得到所述样本的各样本节点对应的特征表示的:
138.按照样本对应的八叉树结构由下至上的顺序,对八叉树结构中的各样本节点依次进行编码,得到各样本节点对应的第一几何特征,其中,对于八叉树结构中不存在子节点的样本节点,该样本节点的第一几何特征是通过编码模块该样本节点对应的体素化数据进行编码得到的,对于存在子节点的样本节点,样本节点的第一几何特征是基于通过编码模块对该样本节点的各子样本节点的第一几何特征和第一结构特征进行编码得到的。
139.本申请的该可选实施例,提供了一种分层次编码的方式,具体的,编码过程从八叉树结构的最细粒度的节点(即不存在子节点的节点)开始,采用由下至上的编码方式对各八叉树结构中各层级的各节点进行编码,具体的,可以首先将最细粒度的八叉树节点的节点
数据(也就是对该节点对应的空间中结构进行体素化处理之后得到的体素化数据)输入至该层级对应的编码器中,得到该层级的各节点的第一几何特征,对于除最细粒度之外的各八叉树节点(也就是父节点),该节点的第一几何特征可以是通过编码器对该节点的各子节点的第一几何特征进行融合得到的。
140.本申请的可选实施例中,对于一个样本,训练标签包括第一标签和第二标签,第一标签表征了多个样本查询点分别对应的真实位置关系,第二标签表征了样本对应的八叉树结构中的各样本节点对应的真实结构特征,第一解码模块的输出还包括各样本节点对应的预测结构特征;
141.神经网络模型的总损失函数包括第一损失函数和第二损失函数,其中,对于一个样本,第一损失函数的值表征了该样本对应的八叉树结构中的各样本查询点对应的真实位置关系和预测位置关系之间的差异,第二损失函数的值表征了该样本对应的各样本节点对应的真实结构特征和预测结构特征(也就是样本节点对应的第二结构特征)之间的差异。
142.本申请的可选实施例中,编码模块中包含级联的特征提取模块和vae,编码模块输出的节点对应的几何特征是基于vae的正态分布确定,总损失函数还包括第三损失函数,对于一个样本,第三损失函数的值表征了样本对应于vae的正态分布与参考正态分布之间的差异。
143.通过采用包含vae的编码结构,可以实现利用vae重新参数化技术来约束潜在空间的分布以适应正态分布,使得编码得到的特征表示能够包含空间更多的语义信息。上述参考正态分布可以是期望值为0、标准差为1的标准正态分布,基于第三损失函数,可以约束vae所输出的正态分布逼近该标准正态分布。
144.本申请实施例提供的方案可以应用于各种任务,包括但不限于3d形状重建、部分和带噪声输入的形状补全、基于图像的3d重建等。基于本申请实施例提供的三维对象的几何特征的获取方式可以简称为octfield(octree field,八叉树场),是一种针对3d曲面(即3d表面/表面结构)的可学习的分层次隐式表征,它允许以较低的内存和计算预算对复杂表面进行高精度编码。通过引入了一种分层八叉树结构,以根据表面占有率和几何形状的丰富程度(即表面结构的几何形转复杂度)来自适应地细分3d空间。由于八叉树是离散且不可微的,本申请提供的可选方案中进一步提出了一种新的分层次网络(前文中描述的编码模块和解码模块),该网络以可微分的方式递归编码和解码八叉树结构和表面几何形状。本申请提供的方案结合了局部隐式表征和分层次数据结构的优点,通过将局部隐式函数与每个八叉树节点单元相关联,节点对应的表征方式可以使用少量的内存开销对具有精细几何细节的大规模场景进行三维建模。基于本申请实施例提出的方法可以极大减少了计算成本,因此,可以加快实际使用时的推断速度。
145.为了更好的理解及说明本申请提供的方案,下面结合具体应用下的可选实施例对本申请提供的方案进行进一步的说明。本实施例中以将三维对象重建的应用场景为例进行说明,作为一个示例,三维对象可以是游戏场景下的三维对象,比如,可以是游戏场景中的任意三维物体、人物等,比如,以对战类游戏为例,三维对象可以是玩家对应的虚拟角色,也可以是npc(non

player character,非游戏角色),也可以是其中的虚拟物体(比如一张桌子、椅子、车或其他虚拟道具等等),可选的,基于本申请实施例的方案,可以基于虚拟角色或者其他物体对应的二维图像实现对三维对象的三维图像的创建。
146.本申请实施例提供的方案可以利用人工智能领域的神经网络模型实现,可以分为神经网络模型的训练阶段和测试/应用。阶段(应用阶段和测试阶段的原理相同)。图2a示出了训练阶段的神经网络模型的结构示意图,图2b示出了在测试阶段基于训练得到的3d对象重建模型进行3d重建的流程示意图,通过图2b所示的流程可以基于三维对象对应的源数据实现对该对象的3d图像的重建。如图2a中所示,对于训练阶段,神经网络模型的结构包括分层次编码器及分层次解码器(即图中所示的分层次编码器

解码器),其中,分层次编码器也就是前文中的编码模块,分层次解码器也就是前文中的解码模块,可以基于大量的训练样本对分层次编码器

解码器进行不断的训练,以得到训练好的解码器(即图中所示的训练完成局部解码器),训练好的解码器即可以作为测试和应用阶段的解码模型,也就是用于实现图2b中所示的分层次特征解码步骤12的模型结构。下面结合图2a和图2b对本实施例的方案进行说明。
147.在训练期间,首先为训练集中的3d形状(即样本)构建自适应八叉树单元(八叉树结构),即图2a中所示的八叉树构建。然后,利用分层次编码器

解码器网络来执行编码器

解码器的训练,从而生成在测试中部署的已完成训练的局部解码器(也即是训练好的解码器)。在测试时,可以采用部分3d输入(例如部分点云或网格)或2d图像作为输入,首先将从输入中提取的特征映射到经过训练的局部解码器的潜在空间,即通过特征映射将输入的源数据映射到解码器对应的特征空间,也就是将输入数据通过特征映射转换成满足解码器要求的输入数据。其中,特征映射步骤可以采用经过训练得到的特征提取网络实现,对于特征提取网络的具体网络结构本申请实施例不做限定,可以采用现有的特征提取网络,只要通过训练使得特征提取网络的输出是对应于解码器的特征空间的特征数据即可。之后,可以执行分层特征解码器以获得构造的隐式字段(也就是前文中的第二几何特征),并将隐式字段应用于网格转换(图中所示的隐式场到网络转换步骤)后,便可以重建输出3d网格。由于特征映射和隐式场到网格的转换可以是基于现有技术实现的,且对于本领域技术人员而言实现方式也是清楚的,因此,在本实施例中对于这两部分不再展开进行说明,下文中主要对基于八叉树的新型隐式表示(即八叉树构建)、分层次编码器

解码器网络以及相应的训练过程进行详细描述。
148.1.关于八叉树构建
149.对于训练数据集中的每个训练样本即三维形状,需要构建每个三维形状的八叉树结构(可以简称为八叉树)。为了构建输入模型的八叉树,首先可以将三维形状缩放到一个轴对齐的包围盒然后以广度优先顺序将边界区域递归细分。被细分的八叉树节点(即需要进一步细分的节点)需要同时满足两个需求:
150.(1)节点封闭了表面,也就是节点对应的空间中包含三维形状的表面;
151.(2)节点封闭的几何形状具有被细分的足够的复杂度,即节点封闭的表面的几何形状复杂度满足一定要求。
152.可选的,可以使用表面的法向变化量作为几何形状复杂度的指标,对于一个表面s,可以通过下述公式计算表面s的法向变化量v(s):
[0153][0154]
其中,分别表示在表面s的第i个采样点的法向量n
i
在x、y、z三个方
向上的分量,分别表示表面s上的所有采样点在法向量的x方向、y方向和z方向上的变化量之和,e
i
表示上述三者的期望值即均值。
[0155]
可选的,可以在表面s按照预先计算好的采样点进行采样。在构建八叉树时,可以根据上述两个需求重复进行节点的细分直至八叉树的深度达到预设深度d,或者节点的法向变化量v(s)小于或等于设定值τ,也就是说,v(s)小于或等于设定值τ,则表明表面的几何形状复杂度不满足要求,可以不再细分。其中,设定值τ可以是根据经验值或实验值进行设置,可选的,τ=0.1。
[0156]
如图4的左侧部分所示出的一个“兔子”形状的二维结构示意图,其中,o
i
和o
j
为同一层级的两个八叉树节点所对应空间的二维表示,o
i
和o
j
都是与a1所示区域大小相同的区域,图中的v(o
i
)、v(o
j
)分别表示o
i
和o
j
对应的兔子的表面结构的法向变化量,且图中的柱状图示意性的表示出了o
i
和o
j
对应的多个采样点之间的法向变化量分布的示意图,由图中可以看出,o
i
对应的表面的几何形状的复杂度较高,o
j
对应的表面的几何形状的复杂度较低,在构建八叉树结构时,o
i
对应的空间结构需要进一步细分,o
j
对应的空间则无需再细分。如图4中左侧所示的空间分解结果,o
i
对应的空间是被进一步细分为了多个子区间,而o
j
对应的空间没有再进一步细分。
[0157]
使用八叉树结构可以将3d空间分解为分层的局部区域,之后,可以使用编码器从八叉树中最细粒度的八叉树节点(即最底层的叶子节点)开始使用学习到的隐式函数对封闭空间内的局部形状进行编码,得到节点对应的特征表示。本申请实施例提供的八叉树构建方案,在确定空间是否需要进一步细分即分解时,分解策略不仅考虑了表面占有率(如节点对应的空间是否封闭了表面),还考虑了几何形状的丰富性,可以只对满足需求的空间继续分解得到对应的子节点,如果不满足需求,则无需在分解,从而在通过编码器节点对应的空间进行编码时,可以使得带有嵌入式隐式内核(隐式函数)的八叉树节点将仅在表面周围分配。只有包含复杂几何形状的八叉树节点将被进一步划分,这确保了自适应的内存和计算资源的分配,可以使用更多的局部隐式函数来捕获更丰富的表面细节,因此基于该方式可以具有更高的建模精度。相反,未占用的区域将不会分配任何隐式内核以节省内存和计算预算。
[0158]
如图3所示的飞机的三维形状所对应的八叉树结构的空间划分示意图,在进行包围飞机的立方体空间分解时,将在具有丰富几何细节的区域中自适应地进一步细分,以获得更高的建模精度。复杂的零件(如喷气发动机,尾翼飞机和起落架等,这些零件所在的空间对应于图中所示的深度为4的中间节点)会自动细分,以在进行编码时可以使用更多隐式内核(也就是隐式函数),以实现更高的建模精度,而机身上具有常规形状的零件(对应图中所示的深度为3的叶节点)则使用更粗糙的表示来编码,即形状比较简单的零件或部分零件可以不再细分。
[0159]
2.分层次编码器
[0160]
图4中示出了本申请一示例中提供的一种分层次编码器

解码器网络的2d效果的示意图,如图4中所示,编码器包括分层级的局部编码器,如图中所示的一个层级局部编码器的隐藏层111和另一个层级的局部编码器的隐藏层112,不同层级的局部编码器对应于不同层级的节点,也就对应于不同的空间大小,该局部编码器可以将三维形状的局部几何特
征和八叉树结构编码到潜码(特征表示)中。该解码器支持局部几何形状编码,可选的,对于编码器的结构,可以采用3d体素卷积神经网络(即图4中所示的voxel cnn)来提取局部几何特征(初始的几何特征)。由图中可以看出,第一个层级(该示意图中隐藏层111对应的层级)的局部编码器用于实现对最底层的八叉树节点所包含的形状进行编码,第二个层级(隐藏层112对应的层级)用于实现对最底层的上一层级的八叉树节点所包含的形状(如图中a1区域包含的形状)进行编码。
[0161]
在为输入模型构造八叉树之后,可以以323的分辨率(一种可选方式)对每个八叉树节点对应的空间中封闭的曲面进行体素化,得到体素化数据。分层次解码器的编码过程以自下而上的方式从最细粒度(最底层)的八叉树节点开始。对于每个八叉树节点o
i
,可以根据它封闭的几何结构计算它的二进制标识(α
i
,β
i
),该二进制标识即为节点对应的结构特征,用于指示该节点对应的空间是否封闭了三维形状的表面的一部分,以及是否需要根据其封闭的几何形状的复杂度进行进一步细分,其中,α
i
对应表面的占用情况,β
i
对应表面的几何形状复杂度,如果该节点内部存在表面,则α
i
=1,否则为0。如果o
i
的封闭结构满足前文中说描述的两个细分的需求,则β
i
=1,否则为0。然后,可以通过将o
i
的封闭体素化几何体g
i
(即体素化数据)传递到体素cnn来提取o
i
的几何特征g
i
。当处理高层级的八叉树节点时,编码器将会将子八叉树节点的隐式特征融合到其父八叉树节点。可选的,对于一个父八叉树节点o
k
,可以将其子八叉树节点的隐式特征(即特征表示,第一几何特征和第一结构特征)表示为:
[0162][0163]
其中,c
j
∈c
k
表示c
j
为o
k
的第j个子八叉树节点,表示c
j
对应的特征表示,表示c
j
对应的几何特征(第一几何特征),和表示c
j
对应的结构特征(第一结构特征),可以是以及和的串联得到。
[0164]
节点o
k
对应的编码器e
k
可以将o
k
的子节点的隐式特征融合到o
k
的几何特征g
k
中,g
k
可以表示为:
[0165][0166]
其中,分别代表o
k
的八个子节点的特征表示,表示对进行进一步编码处理以得到g
k
,之后,通过拼接g
k
和o
k
的第一结构特征(α
k
,β
k
)得到o
k
的特征表示。采用上述编码方式,通过执行递归的特征编码和聚合,直到八叉树的根节点处理完毕。
[0167]
其中,编码器的具体网络结构本申请实施例不做限定,可选的,编码器e
i
可以由依次级联的体素cnn、单层感知器((single

layer perceptron,slp)、一个最大池化层和另一个用于输出的slp组成。在编码器的末尾,还可以利用vae重新参数化技术来激励潜在空间的分布以适合正态分布,如图4中所示的μ和σ分别表示vae所输出的正态分布参数向量中的期望值和标准差,在训练时,可以通过参考正态分布(如图4中所示的n(0,1)所表示的期望值为0,标准差为1的标准正态分布)约束vae的输出。
[0168]
可选的,分层次编码器中的各层级的局部编码器e
i
可以共享模型参数,以利用局
部几何的相似性并减少网络参数。当然,上述slp也可以替换成mlp(多层感知器,multilayer perceptron),3d cnn也可以替换为3d resnet或者其他提取集合特征的编码器,例如,在模型的输入数据为点云数据时,也可以采用pointnet或pointnet++等。
[0169]
图5中示出了一种可选的分层次编码器e
i
的部分结构示意图,图中所示的至分别表示一个父八叉树节点的8个子节点的特征表示,以为例进行说明,其中,图中所示的和表示第一个子节点对应的第一结构特征,表示第一个子节点对应的第一几何特征,α
k
和β
k
则分别表示该父八叉树节点的第一结构特征,如图中所示的结构,可以将八个子节点的特征表示输入至第一个mlp中,通过该mlp的输出特征进行最大池化处理,得到父八叉树节点对应的隐向量,之后,可以通过第二个mlp对该隐向量进行编码处理,得到父八叉树节点的第一几何特征g
k
(也就是图中的e
k
),将该父八叉树节点的第一几何特征g
k
和其第一结构特征α
k
和β
k
拼接即为该父八叉树节点的特征表示。
[0170]
3.分层次解码器
[0171]
分层次解码器d的目的是从输入的全局特征中解码八叉树结构和局部八叉树节点的特征解码器d由分层次的局部解码器{d
i
}(包括图4中所示的隐藏层结构(包含多个实心点和空心点的椭圆,对应于前文中描述的第一解码模块),在3d建模应用中,还可以包括隐式解码器(即图4中所示的impoct decoder,对应于前文中描述的第二解码模块))组成,解码器具有相对于分层次编码器e的镜像结构,如图4中所示,局部解码器d
i
表示对应于第i个层级节点的解码器。与编码器e相反,解码过程从根节点开始,并以自顶向下的方式递归地解码八叉树子节点的隐向量。具体的,对于具有几何特征g
k
的父八叉树节点o
k
,使用解码器d
k
对其子八叉树节点的几何特征进行解码,解码原理可以表示为:
[0172][0173]
其中,d
k
(g
k
)表示对g
k
进行解码,通过解码得到o
k
的八个子节点的特征表示c
j
表示o
k
的第j个子节点,通过g
k
进行解码得到的代表了c
j
的几何特征(第二几何特征)和两个指示标志即结构特征(第二结构特征),这两个指示标志决定了了该子节点是否需要解码或者再细分。对于一个父节点,可以同步解码其8个子节点。
[0174]
其中,对于解码器的具体网络结构本申请实施例也不做限定。可选的,解码器(第一解码模块)可以包含两个slp(或mlp)和两个分类器,对于一个节点o
k
,可以通过一个slp对该节点的第一几何特征g
k
进行解码得到该节点的8个子节点对应的隐特征,以表示o
k
的第j个子节点的隐特征,为了确定出得到8个子节点中的目标节点并解码得到各目标节点的第二几何特征,可以通过解码各子节点的隐特征来判断子节点是否为目标节点,为了解码子节点的隐特征,可以利用两个分类器i
g
和i
h
来预测子节点对应的表面占用率和进一步细分的必要性,具体的,对于o
k
的第j个子节点(可以表示为),可以将隐特征其分别输入至分类器i
g
和i
h
,通过i
g
解码得到解码原理可以表示成通过i
h
解码得到解码原理可以表示成解码原理可以表示成解码原理可以表示成和则分别表示第二结构特征
中的第一特征值和第二特征值,如果(一种可选的阈值),则表明不包含三维形状的表面即不包含三维形状的任何几何结构,则无需再进行进一步的处理,则表明对应的空间中包含表面,然后再根据进行进一步确定,具体的,如果(一种可选的阈值),则表明对应的表面的几何形状比较简单,可以不再对进行进一步细分,的第二几何特征即为后续可以基于该特征对包含进行预测;如果则需要对进行进一步细分,也就将作为父节点,通过执行上述同样的解码过程,得到的各个子节点的特征表示。对于八叉树中的各节点,从根节点开始采用从上至下的方式,通过重复上述解码过程直至不再有需要进一步解码的节点。
[0175]
图6示出了一种可选的分层次解码器d
i
的部分结构示意图,图中所示的g
k
(也就是e
k
)表示一个父八叉树节点的第一几何特征,可以将g
k
输入至第一个mlp中,通过该mlp解码得到该父八叉树节点的各子节点对应的隐向量即隐式特征,之后,以第一个子节点为例,可以将该子节点的隐向量分别输入至两个分类器中,得到该子节点的第二结构特征,即图6中所示的和并可以将该子节点的隐向量输入至第二个mlp中,由该mlp解码得到该子节点对应的第二几何特征并通过拼接和以及得到该子节点对应的解码后的特征表示采用同样的方式可以得到其他7个子节点的特征表示即图中所示的至此外,如果根据和确定该子节点为目标节点即需要进一步解码处理的节点,则可以对该子节点重复执行上述解码过程。
[0176]
对于通过分层次解码器解码得到的各节点的第二几何特征,可以通过一个局部隐式解码器g(即第二解码模块)来重建位于节点对应空间中的3d表面。对于一个节点o
i
,可以将该节点的第二几何特征g
i
和3d查询位置x(即查询点的三维坐标(可以是世界坐标),查询点可以是空间中的任意一个点)输入至该隐式解码器g中预测得到该查询点对应的有符号距离(如sdf距离,也可以称为sdf值),该有符号距离表征了该查询点与位于o
i
中的表面的位置关系。之后,则可以基于大量查询点与位于节点中的表面的位置关系,重建得到对应的3d表面形状。
[0177]
如图4中所示,图中所示的e
k1
和e
k2
分别表示通解码得到的两个节点的几何特征。图中的[x,y,z]表示空间中的查询点的三维坐标,对于图中上方的[x,y,z]和下方的[x,y,z],两个查询点对应的查询位置分别为图中的虚线箭头所指向的点,上方的查询点为位于图4的右侧图形中的上方有填充颜色的小方格区间的点,下方的查询点为位于图4的右图图形中位于下方有填充的方格区域的点,由图中可以看出,将下方查询点和图中o
i
节点的第二几何特征g
0i
输入至隐式解码器之后,通过解码确定出的位置关系为该查询点是o
i
所对应的空间外的一点,解码得到的sdf值对应的位置为图中“+0”所示位置,而上方查询点通过将该查询点的三维坐标与该查询节点所在的区域对应的第二几何特征,通过隐式解码器解码得到的sdf值对应的位置为图中“+1”所示的位置。
[0178]
对于每个八叉树节点,其对应空间中封闭的表面是由隐式解码器从隐式特征(即
层次解码器输出的各节点对应的第二集合特征)进行解码得到。但是,最细粒度的八叉树节点可能具有不同的尺寸,当查询局部隐式函数的值(sdf值)时,可以将查询点的世界坐标x相对于节点的中心x
i
进行归一化处理。通过隐式解码器解码得到查询点的sdf值可以表示为:
[0179][0180]
其中,θ
d
表示通过训练学习到的隐式解码器的网络参数,g
i
表示节点o
i
通过分层次解码器解码得到的几何特征,x表示任一查询点的世界坐标,x
i
表示o
i
的中心点坐标,n(x

x
i
)表示将x相对于x
i
进行归一化到指定取值范围内的坐标,如归一化到[

1,1]范围内,则是由基于g
i
和n(x

x
i
)预测得到x相对应o
i
所包含的表面的位置关系,如sdf值。
[0181]
在实际应用中,为了避免节点之间区域边界的不连续,可以增大每个节点对应的空间区域,使得同一层级的节点对应的相邻空间之间存在部分重叠。可选的,每个节点可以沿轴方向其相连的节点之间具有50%的空间重叠。当查询重叠区域的隐式值即sdf值,可以对在该查询点位置存在交叉的所有节点执行三线性插值操作得到的,也就是基于查询点对应于各节点的sdf值进行插值操作得到的值作为该查询点的sdf值。
[0182]
为了训练得到满足应用需求的上述神经网络模型(包括分层次编码器、解码器和上述隐式解码器),作为一可选方式,神经网络模型对应的损失函数可以包括前文中所描述的第一损失函数、第二损失函数和第三损失函数,其中,第一损失函数也可以称为几何损失,表征了查询点对应的预测位置关系和真实位置关系之间的差异,具体的可以是查询点对应的预测sdf值和真实的sdf值之间的差异,第二损失函数则包括结构损失和细分损失,用于判断八叉树节点是否被表面占用以及是否需要细分的损失,也就是八叉树节点的真实结构特征(即节点对应的第一结构特征)和分层次解码器预测出的第二结构特征之间的差异,第三损失函数则是对应于编码器结构中的vae结构,用于约束vad对应的特征空间的分布适合正态分布。对于各部分损失函数的具体函数形式本申请实施例不做限定。可选的,第一损失函数可以为l2损失或bce(binary cross entropy,二分类交叉熵)损失,第二损失函数也可以是bce损失,第三损失函数可以是kl散度(kullback

leibler divergence)损失。
[0183]
下面结合可选的方案,对上述各部分损失函数进行分别介绍。
[0184]
对于一个八叉树节点o
i
,该节点对应的几何损失l
geo
可以表示如下:
[0185][0186]
其中,p表示采样点集合(也就是查询点集合),j表示任一查询点,l
c
表示查询点j对应的几何损失,x
j
表示查询点j的三维位置信息,f(x
j
)表示查询点j对应的真实位置关系的标签,即查询点j是o
i
包含的表面内侧(前面)的点、表面外侧(后面)的点或者是表面上的点的真实标签,g(g
i
,x
j
)表示由隐式解码器g根据g
i
和x
j
预测出的查询点j的预测位置关系,l
c
则是查询点j对应的真实位置关系和预测位置关系之间的差异,比如真实sdf值和预测的sdf值之间的差异。w
j
可以理解为查询点j对应的权重,可以是x
j
附近的采样点密度的倒数,用于采样采样密度变化。可选的,隐式解码器g可以先基于局部三维形状进行预训练,之后
再对预训练后的隐式解码器g和神经网络模型的其他部分进行再次训练。
[0187]
为了提升训练得到的神经网络模型的性能,可以通过上述第二损失函数和第三损失函数来使得模型可以学习到更多的信息,实现对模型的强监督训练。可选的,由于不同的损失函数对应不同维度的模型的训练损失,而不同维度的信息在实际应用需求中的重要程度也是不同的,比如,在3d重建应用场景中,重建得到的对象的3d形状的精准度尤其重要,因此,几何损失可以分配较大的权重。可选的,模型的总损失函数l
total
可以表示如下:
[0188][0189]
其中,l
h
和l
k
表示第二损失函数,具体可以是前文中两个分类器对应的分类损失,l
kl
表示第三损失函数,具体是vae对应的训练损失,表示所有节点(可以是所有包含表面的节点)对应的损失的期望值,λ和β分别表示l
geo
和l
kl
的权重,可以根据经验值和/或实验值进行配置,如λ=10,β=0.01。在训练时,可以通过计算所有样本对应的上述总损失函数的值即损失值,基于该损失值确定模型是否训练完成,如果损失值不满足训练结束条件,则可以对模型的网络参数进行调整后,重复训练,直至得到满足训练结束条件的模型,训练完成后的分层次解码器则可以用于三维对象的三维几何特征(即第二几何特征)的提取,从而可以基于提取得到的各节点的第二几何特征实现对三维对象的重建、识别或分类等。
[0190]
本申请实施例所提供的方案,是一种针对3d曲面(即3d表面结构)的可学习的分层次隐式表征,它允许以较低的内存和计算预算对复杂表面进行高精度编码。基于该方案,解决了现有技术中基于局部隐式函数关于3d建模和重构的效率低下问题。本申请方案通过引入一种分层八叉树结构,以根据表面占有率和几何形状的丰富程度来自适应地细分3d空间。由于八叉树是离散且不可微的,本申请提出了一种新的分层次网络(即分层次编码器

解码器),该网络可以以可微分的方式递归编码和解码八叉树结构和表面几何形状,结合了局部隐式表征和分层次数据结构的优点,通过将局部隐式函数与每个八叉树节点单元相关联,在训练和测试时,将分配更多隐式函数来对具有复杂几何细节的表面进行建模,从而提高重建精度。本申请实施例提供的表征方式可以使用少量的内存开销对具有精细几何细节的大规模场景进行三维建模,可以极大减少计算成本,因此,可以加快实际应用时的推断速度。本申请实施例提供的方案可应用于各种任务中,包括但不限于3d形状重建,部分和带噪声输入的形状补全,基于图像的3d重建等等。
[0191]
在3d重建应用场景下,本申请的发明人对本申请所提供的方案与现有的3d重建方案进行了实验,通过实验证明,本申请实施例提供的方案与现有方案相比,在3d重建效率及精度方面均具有更好的效果,且使用的计算设备的内存和计算成本也更少。
[0192]
基于与本申请实施例所提供的方法相同的原理,本申请实施例还提供了一种数据处理装置,如图7所示,该数据处理装置100包括数据获取模块110和数据处理模块120。其中:
[0193]
数据获取模块110,用于获取三维对象的源数据;
[0194]
数据处理模块120,用于执行以下操作:
[0195]
基于源数据,获取源数据对应的多个节点的第一几何特征,该多个几点包括具有树形结构的多个层级的节点,其中,不同层级的节点对应三维对象的三维空间中不同的空间,对于该多个节点中的任一父节点,该父节点的第一几何特征是基于该节点的多个子节
点的第一结构特征和第一几何特征得到的,一个节点的第一结构特征表征了该节点对应的空间中包含的三维对象的表面结构相对于三维对象的整体表面的占用情况;
[0196]
基于获取的多个节点的第一几何特征,确定多个节点中的目标节点,并通过对目标节点的第一几何特征进行解码得到目标节点下的各子节点对应的第二几何特征;基于解码得到的各节点对应的第二几何特征进行三维对象的处理,得到对应的处理结果。
[0197]
可选的,源数据包括以下至少一项:
[0198]
点云数据;二维图像;网格数据。
[0199]
可选的,数据处理模块120在基于解码得到的各节点对应的第二几何特征进行三维对象的处理,得到对应的处理结果时用于执行以下任一项:
[0200]
基于解码得到的各节点对应的第二几何特征,构建三维对象的三维图像;
[0201]
基于解码得到的各节点对应的第二几何特征,识别三维对象,得到三维对象的识别结果;
[0202]
基于解码得到的各节点对应的第二几何特征,确定三维对象的类别。
[0203]
可选的,数据处理模块120在基于解码得到的各节点对应的第二几何特征,构建三维对象的三维图像时用于:
[0204]
获取查询点数据集,查询点数据集中包括多个待查询点的三维位置信息;
[0205]
基于解码得到的各节点对应的第二几何特征和各待查询点的三维位置信息,确定各待查询点与解码得到的各节点对应的空间中所包含的表面结构的位置关系;
[0206]
基于确定出的各待查询点所对应的位置关系,构建三维对象的三维图像。
[0207]
可选的,一个节点的第一结构特征还表征了该节点对应的空间中包含的三维对象的表面结构的几何形状复杂度。
[0208]
可选的,数据处理模块120在基于获取的多个节点的第一几何特征,确定多个节点中的目标节点,并通过对目标节点的第一几何特征进行解码得到目标节点下的各子节点对应的第二几何特征时,是按照上述多个节点对应的层级由高到低的顺序,将多个节点中的根节点作为初始的待处理节点,通过重复执行以下操作实现的:
[0209]
基于当前待处理节点的第一几何特征,解码得到该节点的各子节点的隐式特征;
[0210]
对于每个子节点,基于该子节点对应的隐式特征,解码得到该子节点对应的第二结构特征;
[0211]
基于各子节点的第二结构特征,确定出各子节点中的目标子节点;
[0212]
基于每个子节点的隐式特征,解码得到每个子节点对应的第二几何特征;
[0213]
将各目标子节点分别作为新的待处理节点;
[0214]
其中,确定出的多个节点中的目标节点包括根节点和各目标子节点。
[0215]
可选的,对于一个节点,第二结构特征包括第一特征值和第二特征值,第一特征值表征了该节点对应的占用情况,该占用情况为节点对应的空间中是否包含了三维对象的表面结构,第二特征值表征了该节点对应的空间中包含的三维对象的表面结构的几何形状复杂度;
[0216]
相应的,数据处理模块120在基于各子节点的第二结构特征,确定出各子节点中的目标子节点时用于:
[0217]
对于一个子节点,若基于该子节点的第一特征值确定该节点所对应空间中包含三
维对象的表面结构,且基于该子节点对应的第二特征值确定表面结构的几何形状复杂度表征对应的空间需要再划分(即满足划分条件,如第二特征值的取值为指定值,或者大于或等于设定值的值),则将该子节点确定为目标子节点。
[0218]
可选的,上述基于获取的多个节点的第一几何特征,确定多个节点中的目标节点,并通过对目标节点的第一几何特征进行解码得到目标节点下的各子节点对应的第二几何特征是通过解码模型实现的,解码模型是由训练装置通过以下方式训练得到的:
[0219]
获取训练数据集,其中,训练数据集的每个样本包括一个三维形状和对应的训练标签,训练标签与三维对象的处理方式相对应;
[0220]
构建每个三维形状对应的八叉树结构,并获取八叉树结构的各样本节点对应的节点数据,对于每个样本节点,节点数据包括样本节点对应的空间的体素化数据和样本节点对应的第一结构特征;
[0221]
基于各样本对应的节点数据和训练标签对神经网络模型进行训练,其中,神经网络模型包括级联的编码模块和解码模块,解码模块包括第一解码模块,将训练好的解码模块作为解码模型;
[0222]
其中,对于一个样本,编码模块的输入包括样本对应的节点数据,输出为各样本节点对应的第一几何特征,第一解码模块的输入包括八叉树结构中各样本节点的第一几何特征,输出包括通过解码得到各样本节点对应的第二几何特征。
[0223]
可选的,解码模块还包括与第一解码模块级联的第二解码模块,在训练时,第二解码模块的输入包括第一解码模块的输出和多个样本查询点的三维位置信息,输出为多个样本查询点与解码得到的各节点对应的空间中所包含的表面结构的位置关系;
[0224]
数据处理模块120在基于解码得到的各节点对应的第二几何特征进行三维对象的处理,得到对应的处理结果时用于:
[0225]
获取基于解码得到的各节点对应的查询点数据,查询点数据中包括多个待查询点的三维位置信息;
[0226]
对于解码得到的每个节点,基于该节点对应的第二几何特征和每个待查询点的三维位置信息,通过训练好的第二解码模块,确定每个待查询点与该节点对应的空间中所包含的表面结构的位置关系;
[0227]
基于确定出的各待查询点对应的位置关系,构建三维对象的三维图像。
[0228]
可选的,训练装置在构建每个三维形状对应的八叉树结构时用于:
[0229]
将包围三维形状的三维空间对应的节点作为根节点;
[0230]
将根节点作为初始的待划分节点,对待划分节点重复执行以下操作,直至不存在待划分节点,并基于得到的各节点得到三维形状对应的八叉树结构:
[0231]
将待划分节点对应的空间划分为八个子空间,八个子空间对应的各节点为该节点的八个子节点;
[0232]
对于每个子节点,确定该子节点对应的第一结构特征;
[0233]
基于各子节点对应的第一结构特征,确定出各子节点中的待划分子节点;
[0234]
将确定出的待划分子节点作为新的待划分节点。
[0235]
可选的,对于每个子节点,训练装置在确定子节点对应的第一结构特征时,用于:
[0236]
若该子节点对应的空间中包含三维形状的表面结构,则将该子节点的第一特征的
integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
[0250]
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0251]
存储器4003可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd

rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0252]
存储器4003用于存储执行本申请方案的应用程序代码(计算机程序),并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
[0253]
其中,电子设备包括但不限于用户终端设备、服务器,其中,服务器可以是物理服务器、云服务器、单个服务器或服务器集群等。可选的,基于本申请实施例提供的方法,可以设计一款基于该方法的应用程序,用户可以安装该应用程序的客户端,通过该客户端与应用程序的服务器通信,实现3d建模,如用户可以在客户端向服务器发送一对象的二维图像,服务器可以基于该二维图像,采用本申请实施例提供的方案实现该对象的三维图像的输出。
[0254]
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当该程序在计算机上运行时,可以使得计算机可以执行前述方法实施例中相应内容。
[0255]
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0256]
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1