一种网格重建方法、装置、设备和存储介质与流程


一种网格重建方法、装置、设备和存储介质
1.技术邻域
2.本公开涉及三维重建技术邻域,尤其涉及一种网格重建方法、装置、设备和存储介质。


背景技术:



3.随着计算机硬件以及工业扫描技术的发展,3d(3dimensional)扫描被广泛应用于工业设计、制造、医疗与艺术设计等邻域。相比于传统人工手动测量的方式,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.根据所述目标树节点包括的扫描点的分辨率等级,确定所述目标树节点待抽取网格的层次。
27.可选的,所述根据目标数据确定所述目标树节点待抽取网格的层次,包括:
28.根据所述数据结构中所述目标树节点的邻域树节点的节点信息,计算所述目标树节点包括的扫描点的密度;
29.根据所述目标树节点包括的扫描点的密度和第二阈值,确定所述目标树节点的分辨率等级;
30.根据所述目标树节点的分辨率等级,确定所述目标树节点待抽取网格的层次。
31.可选的,所述根据所述数据结构中所述目标树节点的邻域树节点的节点信息,计算所述目标树节点包括的扫描点的密度,包括:
32.根据所述数据结构中所述目标树节点的邻域树节点的节点信息中的平均坐标和所述目标树节点的节点信息中的平均坐标,计算所述邻域树节点到所述目标树节点的第一距离;
33.根据所述第一距离确定所述邻域树节点对所述目标树节点的贡献权重;
34.根据所述贡献权重、所述目标树节点的节点信息中的权重和以及所述邻域树节点的节点信息中的权重和,计算所述目标树节点包括的扫描点的密度。
35.可选的,所述根据目标数据确定所述目标树节点待抽取网格的层次,包括:
36.确定所述三维扫描数据包括的扫描点的分辨率等级;
37.计算所述数据结构中所述目标树节点的分辨率等级;
38.根据所述扫描点的分辨率等级和所述目标树节点的分辨率等级,确定所述目标树节点待抽取网格的层次。
39.可选的,所述根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息计算所述目标树节点的标量场,并根据所述标量场得到重建后的网格模型,包括:
40.根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息,计算所述目标树节点的局部标量场;
41.根据处于同一层次的所有目标树节点的局部标量场确定该层次的全局标量场;
42.根据不同层次的全局标量场抽取零等值面得到重建后的网格模型。
43.可选的,所述根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息,计算所述目标树节点的局部标量场,包括:
44.确定和所述目标树节点处于同一层次的邻域树节点;
45.根据所述邻域树节点的节点信息中的平均坐标与平均法向,确定经过所述邻域树节点的目标平面,并计算所述目标树节点到所述目标平面的有向距离。
46.根据所述邻域树节点的节点信息、所述目标树节点的节点信息和所述有向距离,计算所述目标树节点的局部标量场。
47.第二方面,本公开实施例提供了一种网格重建装置,包括:
48.构建模块,用于根据获取的三维扫描数据和预设网格边长,构建数据结构,并确定所述数据结构包括的多个树节点中目标树节点的节点信息;
49.确定模块,用于根据目标数据确定所述目标树节点待抽取网格的层次,其中,所述目标数据是根据所述三维扫描数据得到的和/或是根据所述数据结构得到的;
50.重建模块,用于根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息计算所述目标树节点的标量场,并根据所述标量场得到重建后的网格模型。
51.第三方面,本公开实施例提供了一种电子设备,包括:
52.存储器;
53.处理器;以及
54.计算机程序;
55.其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如上述的网格重建方法。
56.第四方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的网格重建方法的步骤。
57.本公开实施例提供了一种网格重建方法,包括:根据获取的三维扫描数据和预设网格边长,构建数据结构,并确定数据结构包括的多个树节点中目标树节点的节点信息;根据目标数据确定目标树节点待抽取网格的层次,其中,目标数据是根据三维扫描数据得到的和/或是根据数据结构得到的;根据目标树节点对应的邻域树节点的节点信息和目标树节点的节点信息计算目标树节点的标量场,并根据标量场得到重建后的网格模型。本公开提供的方法,减少了噪声的影响,进一步提高了重建后的网格模型的精度。
附图说明
58.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
59.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本邻域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
60.图1为本公开实施例提供的一种网格重建方法的流程示意图;
61.图2为本公开实施例提供的一种八叉树的平面示意图;
62.图3a为本公开实施例提供的一种标量场的示意图;
63.图3b为本公开实施例提供的另一种标量场的示意图;
64.图4为本公开实施例提供的一种网格重建方法的流程示意图;
65.图5为本公开实施例提供的一种网格重建方法的流程示意图;
66.图6为本公开实施例提供的一种网格重建装置的结构示意图;
67.图7为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
68.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
69.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
70.目前网格重建技术,均是通过直接计算空间中的标量场到零等值面,再根据零等值面抽取网格的。以计算标量场的方式来分类,一类是根据每个扫描点信息,计算该扫描点周围的体素格到等值面的近似有向距离,这些有向距离构成了空间中的标量场,该方法不区分数据质量,对模型的所有区域均采用相同平滑程度的单分辨率网格重建,即每条网格边长度大致相同,也就是重建后的网格的分辨率基本相同。另一类是求解全局的隐式函数,使得该函数在每个扫描点处的梯度近似等于该扫描点的法向,该方法仅根据数据本身的稠密程度确定网格边长,稠密区域采用的小网格边重建以突出特征,稀疏区域采用更大的网格边重建以保证平滑,即重建后的网格有多个分辨率,但该种情况下分辨率越高,相同面积下的顶点数越多,占用的内存越大。综上所述,在网格重建时,由于数据噪声、数据缺失以及设备精度限制等问题,重建后的网格在某些区域存在较大噪声,即在数据稀疏区域噪声比较大,抗噪能力差,导致网格模型精度比较低;其次,重建后的网格模型在不同区域无法自适应的重建出不同平滑程度的网格,即无法针对用户不感兴趣区域采用粗糙的重建,对感兴趣区域采用精细重建,且生成的网格模型规模较大,网格模型生成时间和内存的消耗也比较大。
71.针对上述技术问题,本公开实施例提供了一种网格重建方法,给定多种网格的分辨率,为每种分辨率划分不同等级,确定三维扫描数据中每个扫描点(三维点)的分辨率等级;根据三维扫描数据按照给定最小网格边长构建自适应的八叉树,八叉树包括多层,每层包括多个立方体形式的树节点,由深至浅的计算八叉树的前n层的所有树节点的节点信息,具体的,将落在树节点对应立方体内的所有扫描点的平均坐标、平均法向以及权重和作为该树节点的节点信息;根据树节点的节点信息计算树节点包括的扫描点的密度,根据密度确定该树节点的分辨率等级,其中,可以确定树节点的分辨率等级和/或扫描点的分辨率等级;随后,再基于树节点的分辨率等级和/或扫描点的分辨率等级确定树节点应当抽取网格的层次;改变树节点计算局部标量场的计算方向,计算邻域树节点对当前树节点的贡献,得到当前树节点上局部的标量场,并由局部标量场得到全局标量场,最后根据不同层次的全局标量场抽取零等值面,得到多分辨率的网格模型。具体通过下述实施例进行详细说明。
72.图1为本公开实施例提供的一种网格重建方法的流程示意图,应用于终端或者服务器,下述实施例以服务器执行网格重建方法为例进行说明,服务器接收三维扫描数据进行网格重建得到多分辨率网格模型,三维扫描数据可以是扫描设备发送的,该扫描设备配置了深度相机,利用深度相机拍摄被扫描物体得到多张照片,随后根据多张照片进行三维重建,得到包括多个扫描点的三维扫描数据。一种可行的实施方式,扫描设备拍摄得到多张照片后,直接将多张照片传输给服务器,服务器自行根据多张照片进行三维重建,生成包括多个扫描点的三维扫描数据,随后再根据三维扫描数据进行网格重建。另一种可行的实施方式,扫描设备拍摄得到多张照片后,根据多张照片进行三维重建,将生成的包括多个扫描点的三维扫描数据传输至服务器,服务器根据三维扫描数据进行网格重建。本公开还包括其他可能的实施方式在,此不作限定。
73.服务器执行网格重建方法具体包括如图1所示的如下步骤s110至s130:
74.s110、根据获取的三维扫描数据和预设网格边长,构建数据结构,并确定所述数据结构包括的多个树节点中目标树节点的节点信息。
75.其中,所述三维扫描数据包括多个扫描点的扫描信息,每个扫描点的扫描信息包括坐标、法向以及权重。
76.可理解的,获取扫描设备传输的三维扫描数据,三维扫描数据包括被扫描物体相关的多个扫描点的扫描信息,扫描信息包括扫描点的坐标、法向和权重。获取到三维扫描数据后,根据给定的预设网格边长构建八叉树,得到八叉树形式的数据结构。八叉树可以理解为将所有扫描点包围起来的大立方体,大立方体又会继续划分为多个小立方体,每划分一次可以记为一层,每个立方体都可以称为一个树节点,八叉树中任一节点的子节点恰好只会有八个,也就是一个立方体会等分为八个小立方体。其中,预设网格边长为最小网格边长(即点距),最小网格边长限定的是八叉树中最小单元的立方体的边长。得到八叉树形式的数据结构后,根据树节点对应的立方体内所有扫描点的扫描信息计算树节点的节点信息。
77.可选的,上述s110构建八叉树形式的数据结构以及确定树节点的节点信息,具体可以通过如下步骤实现:
78.确定被扫描物体所占用立方空间的边长;基于所述三维扫描数据,根据所述被扫描物体所占用立方空间的边长和预设网格边长构建八叉树形式的数据结构,其中,所述数据结构包括多层,每层包括多个立方体形式的树节点;在所述数据结构预设层包括的所有树节点中,将立方体内包括至少一个扫描点的树节点确定为目标树节点;根据所述目标树节点包括的扫描点的扫描信息计算所述目标树节点的节点信息。
79.可选的,上述构建八叉树形式的数据结构具体可以通过下述步骤实现:
80.根据所述被扫描物体所占用立方空间的边长构建将所述三维扫描数据中所有扫描点包含的八叉树形式的数据结构,在构建过程中若所述数据结构中最小单元的立方体的边长小于或等于预设网格边长,则得到构建完成的数据结构。
81.可理解的,确定被扫描物体所占用立方空间的边长,也就是确定被扫描物体的轮廓。随后根据被扫描物体所占用立方空间的边长和预设网格边长构建能够将被扫描物体的所有扫描点包裹住的八叉树形式的数据结构,八叉树用于描述三维空间的树状数据结构,八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。构建的数据结构也就是一个能够将被扫描
物体包裹住的大立方体,基于大立方体的边长一层一层向内划分出多个小立方体,直至最小单位的立方体的边长小于或等于预设网格边长,则结束向下划分构建的过程,划分次数表示八叉树的层级数量(层数),层级数量表示的也是八叉树的深度,例如,以预设网格边长是1为例,将被扫描物体的所有扫描点包裹住的大立方体的边长为8,将边长8除以2,得到8个边长为4的立方体,作为第一层,以此类推向下划分,直至最小的立方体的边长小于或等于1,得到树状数据结构,向下划分的原则是当前立方体内包含至少一个扫描点,构建完成的八叉树形式的数据结构包括多层,每个层包括多个立方体形式的树节点。在数据结构预设层对应的所有树节点中,将立方体内包括至少一个扫描点的树节点确定为目标树节点,也就是前n层包括的所有树节点中除不包括扫描点的树节点之外的其余树节点作为目标树节点,目标树节点的数量为多个,即由深到浅的在前n层对应的所有树节点中,将立方体内包括至少一个扫描点的树节点确定为目标树节点,其中,预设层要小于八叉树的层数。最后根据目标树节点包括的扫描点的扫描信息计算并存储目标树节点的节点信息,同时将目标树节点的立方体内所有扫描点的扫描信息删除,以释放内存。
82.示例性的,参见图2,图2为本公开实施例提供的一种八叉树的平面示意图,以划分后的部分立方体的平面为例进行说明,图2的八叉树包括5层,每个矩形表示一个树节点,同时对应空间中的立方体,箭头执行的节点表示孩子节点,箭头引出的节点表示父节点,每个父节点对应的立方体可以均分为8个等边的小立方体,对应8个孩子节点。其中,第0层是指整个将被扫描物体包裹住的大立方体,第1层是将大立方体进一步均匀划分得到其中2个立方体1,大立方体可以记为父节点,立方体1记为孩子节点,第2层是将立方体1进一步均匀划分得到2个立方体2,此时,立方体1为父节点,立方体2为孩子节点,以此类推继续向下均匀划分,直至最小单元的立方体的边长小于或等于预设网格边长,其中,如第2层第1个立方体2不包括扫描点,该种情况下不需要向下继续均匀划分立方体,如第2层第2个立方体2包括至少一个扫描点,则继续向下均匀划分立方体得到立方体3。
83.可选的,上述目标树节点的节点信息具体可以通过下述步骤实现:
84.计算所述目标树节点包括的所有扫描点的平均坐标;计算所述目标树节点包括的所有扫描点的平均法向;计算所述目标树节点包括的所有扫描点的权重和;根据所述平均坐标、平均法向以及所述权重和得到所述目标树节点的节点信息。
85.可理解的,获取的三维扫描数据包括扫描点的扫描信息,扫描信息包括扫描点在扫描空间中的坐标、法向以及权重,其中,扫描点的权重越大,说明扫描点与被扫描物体的实际表面越接近。针对每个目标树节点,计算该目标树节点对应的立方体内包括的所有扫描点的坐标的平均值得到平均坐标,计算所有扫描点的法向的平均值得到平均法向,计算所有扫描点的权重和,随后,根据平均坐标、平均法向以及权重和组成该目标树节点的节点信息。根据扫描点的扫描信息生成树节点的节点信息,实现的是扫描点到树节点的转换。
86.s120、根据目标数据确定所述目标树节点待抽取网格的层次。
87.其中,所述目标数据是根据所述三维扫描数据得到的和/或是根据所述数据结构得到的。
88.可理解的,在上述s110的基础上,确定三维扫描数据中每个扫描点的分辨率等级,和/或确定数据结构中目标树节点的分辨率等级,目标数据至少包括扫描点的分辨率等级和目标树节点的分辨率等级中的一种数据。确定目标数据后,根据目标数据确定目标树节
点应当抽取网络的层次。
89.s130、根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息计算所述目标树节点的标量场,并根据所述标量场得到重建后的网格模型。
90.可选的,上述s130计算得到的标量场具体可以通过下述步骤实现:
91.根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息,计算所述目标树节点的局部标量场;根据处于同一层次的所有目标树节点的局部标量场确定该层次的全局标量场;根据不同层次的全局标量场抽取零等值面得到重建后的网格模型。
92.可选的,上述计算树节点局部标量场具体通过如下步骤实现:
93.确定和所述目标树节点处于同一层次的邻域树节点。
94.根据所述邻域树节点的节点信息中的平均坐标与平均法向,确定经过所述邻域树节点的目标平面,并计算所述目标树节点到所述目标平面的有向距离。
95.根据所述邻域树节点的节点信息、所述目标树节点的节点信息和所述有向距离,计算所述目标树节点的局部标量场。
96.可理解的,在上述s120的基础上,针对每个目标树节点,确定和目标树节点处于同一层次且相邻的邻域树节点,处于同一层次是指和目标树节点抽取的网格的分辨率相同,例如,网格边长为1的所有目标树节点处于同一层次,边长为2的所有目标树节点处于同一层次,也就是每个目标树节点会主动选取具有相同分辨率且相邻的多个树节点(邻域树节点),在不同分辨率交界处,由于目标树节点邻域的树节点的大小不同,需要改变标量场或梯度场的计算方向,即对每个抽取网络层次的目标树节点进行遍历时,计算邻域树节点对该目标树节点的贡献,而不是计算该目标树节点对邻域树节点的贡献,具体的,对每一个邻域树节点,根据其平均坐标与平均法向确定经过该邻域树节点的一个平面,该平面记为目标平面,计算目标树节点到该平面的有向距离,即根据每一个邻域树节点的节点信息均可计算出目标树节点的一个有向距离,再对所有有向距离取平均值得到目标树节点的标量场信息。根据邻域树节点的节点信息得到目标树节点的有向距离的计算方式称为内向计算,根据目标树节点的节点信息计算每一个邻域树节点的有向距离称为外向计算,与传统的外向计算相比,以内向计算的方式来计算标量场能够避免在不同分辨率交界处因分辨率的不同而引入额外的噪声,下述示例以计算标量场为例进行说明。统计每个目标树节点待抽取网格的层次,遍历属于同一层次的所有目标树节点,在每个目标树节点上计算局部的标量场,一种可行的方式,根据邻域树节点的节点信息和目标树节点的节点信息,计算目标树节点局部的标量场,计算标量场的具体方式不作赘述;另一种可行的方式,只根据目标树节点的节点信息计算其局部的标量场,该种情况下计算的局部标量场也就是每个目标树节点的距离值,该距离值表征该目标树节点中心到零等值面的预估距离,零等值面可以理解为被扫描物体的真实面。随后,根据处于同一层次的所有目标树节点的局部标量场确定该层次的全局标量场,全局标量场为三维函数,表示一个曲面,该曲面称为该全局标量场的等值面,处于同一层次的所有目标树节点的节点信息输入到全局标量场后,输出的函数值相同,根据局部标量场获取全局标量场的方式不作赘述。根据不同层次的全局标量场抽取零等值面得到重建后的网格模型,每个层次的全局标量场代表不同分辨率的网格曲面,得到的网
格模型实际上是具有多种网格边长的网格模型。
97.示例性的,参见图3a,图3a为本公开实施例提供的一种标量场的示意图,图3a中包括标量场计算方向改变前的平面示意图310和标量场计算方式改变后的平面示意图320,图310中具有两种分辨率,一种是网格边长为2的正方形,另一种是网格边长为1的正方形,图310中不同分辨率交界处,对于边长为2的正方形311来说,其邻域包含了被箭头指向的边长为1的正方形312,正方形312是由正方形311均匀划分得到的,而对于正方形312来说,其邻域并不包含正方形311,也就是说正方形311没有和正方形312相邻,且也不具有相同的网格边长,因此,需要改变正方形312标量场的计算方向,也就是正方形312自适应的确定和其分辨率相同且相邻的邻域,而不是被动的接受具有不同分辨率的邻域的影响,如图320所示,主动选取正方形312周围8个正方形来计算标量场,将正方形312看作目标树节点,周围8个正方体就可以看做该目标树节点对应的8个邻域树节点,指向正方形312的8条射线表示根据邻域树节点的节点信息对正方形312标量场的影响,该种方式有效避免了计算树节点局部标量场时产生偏差。
98.示例性的,参加图3b,图3b为本公开实施例提供的另一种标量场的示意图,如图330所示,在不同分辨率交界处,边长为1的正方形331和边长为2的正方形332相邻,该种情况下,如图330所示,将边长为2的正方形332等分为4个边长为1的正方形,其中2个边长为1的正方形就是和正方形331处于同一层次且相邻的邻域,将正方形331看作目标树节点,正方形332为和目标树节点邻域但不同层次的树节点,该种情况下,继续将不同层次的树节点等分为4个同层次的树节点,其中的2个树节点就是和目标树节点同层次且相邻的邻域树节点,4个树节点的节点信息同样可以通过上述计算节点信息的步骤获得,在此不作赘述。
99.本公开实施例提供了一种网格重建方法,确定了树节点应当抽取网格的层次,根据确定的网格层次可以在不同局部区域采用精细重建或者粗糙重建,局部区域是指树节点对应的立方体内,通过计算抽取网格层次的方式,采用基于不同层次进行不同的重建方式,在不丢失主要细节的条件下减小了网格规模,降低了运行时间以及内存消耗。另外,在计算树节点的局部标量场时,修改了计算方向,计算的是邻域树节点对目标树节点的贡献,也就是自适应的选取和目标树节点处于同一层次且相邻的邻域树节点,避免在不同分辨率边界处引入额外的噪声,增强了重建网格对抗噪声的能力,减少了计算标量场时产生的偏差,进一步提高了网格重建精度,得到具有多分辨率的网格模型。
100.在上述实施例的基础上,图4为本公开实施例提供的一种网格重建方法的流程示意图,可选的,上述s120中根据目标数据确定所述目标树节点待抽取网格的层次,第一种可行的方式为,计算每个目标树节点内包括的扫描点的密度,根据密度确定该目标树节点待抽取网格的层级;第二种可行的方式为,确定三维扫描数据中每个扫描点的分辨率等级,根据每个扫描点的分辨率等级确定目标树节点待抽取网格的层级;第三种可行的方式为,根据密度和扫描点的分辨率等级共同确定目标树节点待抽取网格的层级。其中,第一种可行的方式如图4所示的步骤s410至s430:
101.s410、根据所述数据结构中所述目标树节点的邻域树节点的节点信息,计算所述目标树节点包括的扫描点的密度。
102.可理解的,计算目标树节点对应的立方体内包括的扫描点的密度,为例提高密度估计的准确性,在估算时要考虑目标树节点的邻域树节点的信息,该种计算方式计算出的
密度,还可以大致反映出目标树节点周围扫描点的数量,密度值越大说明该目标树节点周围的扫描点越多,该目标树节点的平均坐标和平均法向越接近真实值,抽取网格的层次越深边长越短,也就是抽取网格的边长越接近给定的最小网格边长(预设网格边长)。
103.可选的,上述s410计算目标树节点对应的立方体内扫描点的密度,具体可以通过下述步骤实现:
104.根据所述数据结构中所述目标树节点的邻域树节点的节点信息中的平均坐标和所述目标树节点的节点信息中的平均坐标,计算所述邻域树节点到所述目标树节点的第一距离;根据所述第一距离确定所述邻域树节点对所述目标树节点的贡献权重;根据所述贡献权重、所述目标树节点的节点信息中的权重和以及所述邻域树节点的节点信息中的权重和,计算所述目标树节点包括的扫描点的密度。
105.可理解的,根据数据结构中和目标树节点处于同一层和/或相邻层中的邻域树节点的节点信息中的平均坐标和目标树节点的节点信息中的平均坐标,计算邻域树节点到目标树节点的第一距离,也就是在计算密度的时候,考虑邻域树节点的平均坐标到该目标树节点中心的距离,目标树节点的中心的坐标可以是指目标树节点的平均坐标,还可以是根据目标树节点对应的立方体内所有扫描点的坐标得到的,第一距离越大,说明该邻域树节点对目标树节点贡献的权重越大;根据第一距离确定对应的邻域树节点对目标树节点的贡献权重;根据该目标树节点的所有邻域树节点的贡献权重以及权重和同目标树节点的节点信息中的权重和进行加权平均,计算得到目标树节点对应的立方体内包括的扫描点的密度。
106.s420、根据所述目标树节点包括的扫描点的密度和第二阈值,确定所述目标树节点的分辨率等级。
107.可理解的,在上述s410的基础上,根据每个目标树节点对应的立方体内扫描点的密度和给定的第二阈值,确定该目标树节点的分辨率等级,可以为目标树节点打上分辨率等级的标记,其中,第二阈值包括多个子阈值,每两个相邻子阈值区间对应一个分辨率等级,每个分辨率等级对应一个分辨率,例如,给定的分辨率是2、3和6,对应的分辨率等级依次记为第一等级至第三等级,第二阈值包括的多个子阈值为0、0.3、0.5和0.8,若密度在0至0.3的区间内,则将对应的目标树节点打上第一等级的标记,以此类推,根据密度确定对应的目标树节点的分辨率等级。
108.s430、根据所述目标树节点的分辨率等级,确定所述目标树节点待抽取网格的层次。
109.可理解的,在上述s420的基础上,在上述示例中,每个分辨率等级都对应一个分辨率,分辨率和网格边长是一一对应的,给定了n种分辨率,即存在n种规模的网格边长,根据目标树节点的分辨率等级确定网格边长,待抽取网格的层次反映的也是网格边长,层次越深,网格边长越小。
110.可选的,上述s120根据目标数据确定所述目标树节点待抽取网格的层次,第二种可行的方式具体还可以通过如下步骤实现:
111.计算所述三维扫描数据中每个扫描点的曲率;根据每个扫描点的曲率和第一阈值确定每个扫描点的分辨率等级,其中,所述分辨率等级是根据预设的多种网格边长划分的;根据所述目标树节点包括的扫描点的分辨率等级,确定所述目标树节点待抽取网格的层
次。
112.可理解的,确定三维扫描数据中每个扫描点的分辨率等级,扫描点的分辨率等级作为目标数据,根据目标树节点对应的立方体内扫描点的分辨率等级确定该目标树节点待抽取网格的层次。
113.可理解的,扫描点的分辨率等级可以通过多种方式确定,其中,第一种方式:根据获取的三维扫描数据进行粗糙网格重建,将大量扫描点转换为面片,粗糙重建的过程也比较快,粗糙重建后还可以进行平滑处理,随后计算多个扫描点组成的曲线中每个扫描点的曲率,根据每个扫描点的曲率和第一阈值确定每个扫描点的分辨率等级,其中,第一阈值同样包括多个子阈值,每两个相邻子阈值区间对应一个分辨率等级。第二种方式:采用深度学习方法,训练预测模型直接预测每个扫描点的分辨率等级,模型训练以及预测方式不作赘述。第三种方式:通过外部传入手动选择每个扫描点的分辨率等级。可以选择上述任一种方式逐点标记各个扫描点的分辨率等级,也就是标记扫描点在最小体素格子的边长等级,体素格子是三维的,可以理解为上述八叉树中的立方体,等级也可以称为层级,还可以同时采用第一种方式和第二种方式,将二者确定的同一扫描点的分辨率等级进行结合,得到该扫描点最后的分辨率等级。
114.可理解的是,不论采用何种方式来确定扫描点和/或目标树节点的分辨率等级,都是基于给定的多种网格分辨率的,分辨率等级的划分结果是相同的,分辨率等级是根据预设的多种网格边长(网格分辨率)划分的,即上述目标树节点的分辨率等级和扫描点的分辨率等级都是基于划分的同一个分辨率等级确定的。
115.可选的,上述s120根据目标数据确定所述目标树节点待抽取网格的层次,第三种可行的方式具体还可以通过如下步骤实现:
116.确定所述三维扫描数据包括的扫描点的分辨率等级;计算所述数据结构中所述目标树节点的分辨率等级;根据所述扫描点的分辨率等级和所述目标树节点的分辨率等级,确定所述目标树节点待抽取网格的层次。
117.可理解的,确定每个扫描点的分辨率等级,同时还要计算目标树节点的分辨率等级,根据扫描点的分辨率等级和目标树节点的分辨率等级共同决定该目标树节点应当抽取网格的层级,也就是将上述两种可行的方式结合最终确定目标树节点应当抽取网格的层级。
118.本公开实施例提供的一种网格重建方法,通过计算扫描点曲率自适应确定扫描点的分辨率等级,和/或,通过对树节点内包括的扫描点的密度进行估计,确定树节点的分辨率等级,在无需提供额外信息的情况下,自适应的确定了树节点应当抽取网格的层次,也就是为局部区域自适应的设定不同的分辨率,便于后续在不同局部区域采用精细的网格重建或者粗糙的网格重建,实现多分辨率网格模型的构建。
119.在上述实施例的基础上,图5为本公开实施例提供的一种网格重建方法的流程示意图,应用于终端或服务器,具体包括如图5所示的如下步骤s510至s560:
120.s510、获取三维扫描数据,并确定三维扫描数据中各扫描点的分辨率等级。
121.可理解的,获取包括大量扫描点的扫描数据,通过给定的多种网格分辨率划分的分辨率等级,为各个扫描点打上分辨率等级的标识。
122.s520、基于三维扫描数据和预设网格边长构建自适应八叉树形式的数据结构,并
确定数据结构中目标树节点的节点信息。
123.可理解的,在上述s510的基础上,获取到三维扫描数据后,基于被扫描物体的轮廓边长和预设网格边长,构建能够将所有扫描点囊括的八叉树形式的数据结构,并根据目标树节点对应的立方体内扫描点的扫描信息计算节点信息。
124.s530、根据数据结构中和目标树节点相邻的邻域树节点的节点信息以及目标树节点的节点信息,计算目标树节点对应的立方体内扫描点的密度。
125.可理解的,在上述s520的基础上,在数据结构中确定和目标树节点相邻的邻域树节点,计算邻域树节点到目标树节点的第一距离并根据第一距离确定贡献权重,根据邻域树节点的权重和、目标树节点的权重和以及贡献权重进行加权平均计算,得到目标树节点对应的立方体内扫描点的密度。
126.s540、根据目标树节点对应的立方体内扫描点的密度、第二阈值和扫描点的分辨率等级确定该目标树节点待抽取网格的层次。
127.可理解的,在上述s530的基础上,根据密度和第二阈值确定目标树节点的分辨率等级,再根据目标树节点的分辨率等级以及其内扫描点的分辨率等级确定该目标树节点待抽取网格的层次,层次越深,待构建的网格边长越短。
128.s550、根据和目标树节点处于同一层次的邻域树节点的节点信息和目标树节点的节点信息计算目标树节点的局部标量场。
129.可理解的,在上述s540的基础上,根据和目标树节点处于同一层次的邻域树节点的节点信息和目标树节点的节点信息,按照改变后的计算方向,计算目标树节点的局部标量场,也就是计算邻域树节点对目标树节点的贡献。
130.s560、根据处于同一层次的所有目标树节点的局部标量场得到该层次的全局标量场,并根据不同层次的全局标量场抽取零等值面,得到多分辨率网格模型。
131.可理解的,在上述s550的基础上,根据处于同一层次的所有目标树节点的局部标量场得到该层次的全局标量场,并根据不同层次的全局标量场抽取零等值面,得到具有多分辨率的网格模型。
132.图6为本公开实施例提供的一种网格重建装置的结构示意图。本公开实施例提供的网格重建装置可以执行上述网格重建方法实施例提供的处理流程,如图6所示,网格重建装置600包括构建模块610、确定模块620和重建模块630,其中:
133.构建模块610,用于根据获取的三维扫描数据和预设网格边长,构建数据结构,并确定所述数据结构包括的多个树节点中目标树节点的节点信息;
134.确定模块620,用于根据目标数据确定所述目标树节点待抽取网格的层次,其中,所述目标数据是根据所述三维扫描数据得到的和/或是根据所述数据结构得到的;
135.重建模块630,用于根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息计算所述目标树节点的标量场,并根据所述标量场得到重建后的网格模型。
136.可选的,构建模块610具体用于:
137.确定被扫描物体所占用立方空间的边长;
138.基于所述三维扫描数据,根据所述被扫描物体所占用立方空间的边长和预设网格边长构建八叉树形式的数据结构,其中,所述数据结构包括多层,每层包括多个立方体形式
的树节点;
139.在所述数据结构预设层包括的所有树节点中,将立方体内包括至少一个扫描点的树节点确定为目标树节点;
140.根据所述目标树节点包括的扫描点的扫描信息计算所述目标树节点的节点信息。
141.可选的,构建模块610具体用于:
142.根据所述被扫描物体所占用立方空间的边长构建将所述三维扫描数据中所有扫描点包含的八叉树形式的数据结构,在构建过程中若所述数据结构中最小单元的立方体的边长小于或等于预设网格边长,则得到构建完成的数据结构。
143.可选的,构建模块610具体用于:
144.计算所述目标树节点包括的所有扫描点的平均坐标;
145.计算所述目标树节点包括的所有扫描点的平均法向;
146.计算所述目标树节点包括的所有扫描点的权重和;
147.根据所述平均坐标、平均法向以及所述权重和得到所述目标树节点的节点信息。
148.可选的,确定模块620具体用于:
149.计算所述三维扫描数据中每个扫描点的曲率;
150.根据每个扫描点的曲率和第一阈值确定每个扫描点的分辨率等级,其中,所述分辨率等级是根据预设的多种网格边长划分的;
151.根据所述目标树节点包括的扫描点的分辨率等级,确定所述目标树节点待抽取网格的层次。
152.可选的,确定模块620具体用于:
153.根据所述数据结构中所述目标树节点的邻域树节点的节点信息,计算所述目标树节点包括的扫描点的密度;
154.根据所述目标树节点包括的扫描点的密度和第二阈值,确定所述目标树节点的分辨率等级;
155.根据所述目标树节点的分辨率等级,确定所述目标树节点待抽取网格的层次。
156.可选的,确定模块620具体用于:
157.根据所述数据结构中所述目标树节点的邻域树节点的节点信息中的平均坐标和所述目标树节点的节点信息中的平均坐标,计算所述邻域树节点到所述目标树节点的第一距离;
158.根据所述第一距离确定所述邻域树节点对所述目标树节点的贡献权重;
159.根据所述贡献权重、所述目标树节点的节点信息中的权重和以及所述邻域树节点的节点信息中的权重和,计算所述目标树节点包括的扫描点的密度。
160.可选的,确定模块620具体用于:
161.确定所述三维扫描数据包括的扫描点的分辨率等级;
162.计算所述数据结构中所述目标树节点的分辨率等级;
163.根据所述扫描点的分辨率等级和所述目标树节点的分辨率等级,确定所述目标树节点待抽取网格的层次。
164.可选的,重建模块630具体用于:
165.根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节
点的节点信息,计算所述目标树节点的局部标量场;
166.根据处于同一层次的所有目标树节点的局部标量场确定该层次的全局标量场;
167.根据不同层次的全局标量场抽取零等值面得到重建后的网格模型。
168.可选的,重建模块630具体用于:
169.确定和所述目标树节点处于同一层次的邻域树节点;
170.根据所述邻域树节点的节点信息中的平均坐标与平均法向,确定经过所述邻域树节点的目标平面,计算所述目标树节点到所述目标平面的有向距离。
171.根据所述邻域树节点的节点信息、所述目标树节点的节点信息和所述有向距离,计算所述目标树节点的局部标量场。
172.图6所示实施例的网格重建装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
173.图7为本公开实施例提供的一种电子设备的结构示意图。本公开实施例提供的电子设备可以执行上述实施例提供的处理流程,如图7所示,电子设备700包括:处理器710、通讯接口720和存储器730;其中,计算机程序存储在存储器730中,并被配置为由处理器710执行如上述的网格重建方法。
174.另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的网格重建方法。
175.此外,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的网格重建方法。
176.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
177.以上所述仅是本公开的具体实施方式,使本邻域技术人员能够理解或实现本公开。对这些实施例的多种修改对本邻域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:


1.一种网格重建方法,其特征在于,所述方法包括:根据获取的三维扫描数据和预设网格边长,构建数据结构,并确定所述数据结构包括的多个树节点中目标树节点的节点信息;根据目标数据确定所述目标树节点待抽取网格的层次,其中,所述目标数据是根据所述三维扫描数据得到的和/或是根据所述数据结构得到的;根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息计算所述目标树节点的标量场,并根据所述标量场得到重建后的网格模型。2.根据权利要求1所述的方法,其特征在于,所述三维扫描数据包括多个扫描点的扫描信息,所述根据获取的三维扫描数据和预设网格边长,构建数据结构,并确定所述数据结构包括的多个树节点中目标树节点的节点信息,包括:确定被扫描物体所占用立方空间的边长;基于所述三维扫描数据,根据所述被扫描物体所占用立方空间的边长和预设网格边长构建八叉树形式的数据结构,其中,所述数据结构包括多层,每层包括多个立方体形式的树节点;在所述数据结构预设层包括的所有树节点中,将立方体内包括至少一个扫描点的树节点确定为目标树节点;根据所述目标树节点包括的扫描点的扫描信息计算所述目标树节点的节点信息。3.根据权利要求2所述的方法,其特征在于,所述基于所述三维扫描数据,根据所述被扫描物体所占用立方空间的边长和预设网格边长构建八叉树形式的数据结构,包括:根据所述被扫描物体所占用立方空间的边长构建将所述三维扫描数据中所有扫描点包含的八叉树形式的数据结构,在构建过程中若所述数据结构中最小单元的立方体的边长小于或等于预设网格边长,则得到构建完成的数据结构。4.根据权利要求2所述的方法,其特征在于,每个扫描点的扫描信息包括坐标、法向以及权重,所述根据所述目标树节点包括的扫描点的扫描信息计算所述目标树节点的节点信息,包括:计算所述目标树节点包括的所有扫描点的平均坐标;计算所述目标树节点包括的所有扫描点的平均法向;计算所述目标树节点包括的所有扫描点的权重和;根据所述平均坐标、平均法向以及所述权重和得到所述目标树节点的节点信息。5.根据权利要求1所述的方法,其特征在于,所述根据目标数据确定所述目标树节点待抽取网格的层次,包括:计算所述三维扫描数据中每个扫描点的曲率;根据每个扫描点的曲率和第一阈值确定每个扫描点的分辨率等级,其中,所述分辨率等级是根据预设的多种网格边长划分的;根据所述目标树节点包括的扫描点的分辨率等级,确定所述目标树节点待抽取网格的层次。6.根据权利要求1所述的方法,其特征在于,所述根据目标数据确定所述目标树节点待抽取网格的层次,包括:根据所述数据结构中所述目标树节点的邻域树节点的节点信息,计算所述目标树节点
包括的扫描点的密度;根据所述目标树节点包括的扫描点的密度和第二阈值,确定所述目标树节点的分辨率等级;根据所述目标树节点的分辨率等级,确定所述目标树节点待抽取网格的层次。7.根据权利要求6所述的方法,其特征在于,所述根据所述数据结构中所述目标树节点的邻域树节点的节点信息,计算所述目标树节点包括的扫描点的密度,包括:根据所述数据结构中所述目标树节点的邻域树节点的节点信息中的平均坐标和所述目标树节点的节点信息中的平均坐标,计算所述邻域树节点到所述目标树节点的第一距离;根据所述第一距离确定所述邻域树节点对所述目标树节点的贡献权重;根据所述贡献权重、所述目标树节点的节点信息中的权重和以及所述邻域树节点的节点信息中的权重和,计算所述目标树节点包括的扫描点的密度。8.根据权利要求1所述的方法,其特征在于,所述根据目标数据确定所述目标树节点待抽取网格的层次,包括:确定所述三维扫描数据包括的扫描点的分辨率等级;计算所述数据结构中所述目标树节点的分辨率等级;根据所述扫描点的分辨率等级和所述目标树节点的分辨率等级,确定所述目标树节点待抽取网格的层次。9.根据权利要求1所述的方法,其特征在于,所述根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息计算所述目标树节点的标量场,并根据所述标量场得到重建后的网格模型,包括:根据所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息,计算所述目标树节点的局部标量场;根据处于同一层次的所有目标树节点的局部标量场确定该层次的全局标量场;根据不同层次的全局标量场抽取零等值面得到重建后的网格模型。10.根据权利要求9所述的方法,其特征在于,所述根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述目标树节点的节点信息,计算所述目标树节点的局部标量场,包括:确定和所述目标树节点处于同一层次的邻域树节点;根据所述邻域树节点的节点信息中的平均坐标与平均法向,确定经过所述邻域树节点的目标平面,并计算所述目标树节点到所述目标平面的有向距离;根据所述邻域树节点的节点信息、所述目标树节点的节点信息和所述有向距离,计算所述目标树节点的局部标量场。11.一种网格重建装置,其特征在于,所述装置包括:构建模块,用于根据获取的三维扫描数据和预设网格边长,构建数据结构,并确定所述数据结构包括的多个树节点中目标树节点的节点信息;确定模块,用于根据目标数据确定所述目标树节点待抽取网格的层次,其中,所述目标数据是根据所述三维扫描数据得到的和/或是根据所述数据结构得到的;重建模块,用于根据和所述目标树节点处于同一层次的邻域树节点的节点信息和所述
目标树节点的节点信息计算所述目标树节点的标量场,并根据所述标量场得到重建后的网格模型。12.一种电子设备,其特征在于,包括:存储器;处理器;以及计算机程序;其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1至10中任一所述的网格重建方法。13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一所述的网格重建方法的步骤。

技术总结


本公开涉及一种网格重建方法、装置、设备和存储介质。网格重建方法包括:根据获取的三维扫描数据和预设网格边长,构建数据结构,并确定数据结构包括的多个树节点中目标树节点的节点信息;根据目标数据确定目标树节点待抽取网格的层次,其中,目标数据是根据三维扫描数据得到的和/或是根据数据结构得到的;根据目标树节点对应的邻域树节点的节点信息和目标树节点的节点信息计算目标树节点的标量场,并根据标量场得到重建后的网格模型。本公开提供的方法,减少了噪声的影响,进一步提高了重建后的网格模型的精度。建后的网格模型的精度。建后的网格模型的精度。


技术研发人员:

江宸 张健 贾颜铭

受保护的技术使用者:

先临三维科技股份有限公司

技术研发日:

2022.09.28

技术公布日:

2022/12/22

本文发布于:2024-09-22 13:35:24,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/46992.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   所述   目标   网格
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议