1.本发明涉及计算机技术领域,尤其涉及一种
曲面重建方法、装置、设备及存储介质。
背景技术:
2.随着虚拟现实和数字娱乐的快速发展,基于三维扫描仪所获得的离散点云
数据重建曲面已被广泛应用在计算机图形学、逆向工程、计算机辅助设计与制造等热门领域中。在离散点云重建曲面的各方法中,隐式曲面法因能够表示拓扑结构复杂的形体、对轻微的噪声不敏感等特点得到广泛应用。
3.目前,现有的基于隐式曲面法的曲面重建方法,通常包括自动的非封闭隐式曲面重建方法,以及基于噪声分类与移动最小二乘的点云数据泊松曲面重建方法。其中,自动的非封闭隐式曲面重建方法,通过采用隐式曲面三维重建的泊松方法对输入的非封闭点云模型进行重建,以自动生成封闭的三角网格曲面模型;之后,初始化封闭的三角网格曲面的三角点,并选取比对的样本三角点,计算样本三角点到原始输入点的平均最大距离,并将其设为分隔阈值;最终利用分隔阈值对重建生成的三角网格曲面进行自动分隔,以去除非实体上不合理的三角面片,从而得到边缘光顺正确的非封闭曲面。基于噪声分类与移动最小二乘的点云数据泊松曲面重建方法,通过点云数据模型对噪声点分类处理,并引入到点云数据等值面的向量场估计中进行相应光顺处理,从而形成新的样本点,之后利用移动最小二乘法精确计算修正点云数据法向量,再进行表面重建,以形成细节丰富的三维曲面。
4.然而,对于自动的非封闭隐式曲面重建方法,在初始化三角网格曲面三角点时,需要处理的三角点过多,增加了计算和存储的消费,无法实现快速重构;而对于基于噪声分类与移动最小二乘的点云数据泊松曲面重建方法,需要采用多种滤波法对噪声点云进行降噪处理,再计算修复后的点云的法向量,故计算复杂度较高。
技术实现要素:
5.本发明提供了一种曲面重建方法、装置、设备及存储介质,可以降低曲面重建的计算复杂度,可以在提升曲面重建效率的同时,提升曲面重建的鲁棒性。
6.根据本发明的一方面,提供了一种曲面重建方法,包括:
7.获取待重建的点云数据,并通过对
所述点云数据进行八叉树空间分割,获取所述点云数据对应的点云八叉树;
8.根据所述点云八叉树的层级结构对所述点云数据进行分割,以获取所述点云数据对应的细层点集和至少一个粗层点集,并基于预设距离阈值对所述细层点集和各所述粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集;
9.根据预设正则化参数分别对所述更新细层点集和各所述更新粗层点集进行隐式曲面
插值,以获取细层拟合曲面和各粗层插值曲面,并根据所述细层拟合曲面和各所述粗层插值曲面,获取所述点云数据对应的隐式曲面。
10.根据本发明的另一方面,提供了一种曲面重建装置,包括:
11.点云八叉树获取模块,用于获取待重建的点云数据,并通过对所述点云数据进行八叉树空间分割,获取所述点云数据对应的点云八叉树;
12.点集获取模块,用于根据所述点云八叉树的层级结构对所述点云数据进行分割,以获取所述点云数据对应的细层点集和至少一个粗层点集,并基于预设距离阈值对所述细层点集和各所述粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集;
13.隐式曲面获取模块,用于根据预设正则化参数分别对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,并根据所述细层拟合曲面和各所述粗层插值曲面,获取所述点云数据对应的隐式曲面。
14.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
15.至少一个处理器;以及
16.与所述至少一个处理器通信连接的存储器;其中,
17.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的曲面重建方法。
18.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的曲面重建方法。
19.本发明实施例的技术方案,通过获取待重建的点云数据,并通过对点云数据进行八叉树空间分割,获取点云数据对应的点云八叉树;之后,根据点云八叉树的层级结构对点云数据进行分割,以获取点云数据对应的细层点集和多个粗层点集,并基于预设距离阈值对细层点集和各粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集;最终,根据预设正则化参数分别对更新细层点集和各更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,并根据细层拟合曲面和各粗层插值曲面,获取点云数据对应的隐式曲面;通过在曲面重建过程中,新增预设距离阈值以对点云数据进行筛选,以及新增预设正则化参数对函数矩阵进行正则化,可以降低曲面重建的计算复杂度,并可以在提升曲面重建效率的同时,提升曲面重建的鲁棒性。
20.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
21.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1a是根据本发明实施例一提供的一种曲面重建方法的流程图;
23.图1b是根据本发明实施例一提供的一种八叉树的划分结构示意图;
24.图1c是根据本发明实施例一提供的一种逼近点处小的邻域内的形状示意图;
25.图1d是根据本发明实施例一提供的一种离面点的添加示意图;
26.图1e是根据本发明实施例一提供的一种拟合精度和拟合速度之间的关系示意图;
27.图2a是根据本发明实施例二提供的一种曲面重建方法的流程图;
28.图2b是根据本发明实施例二提供的一种曲面重建方法的流程示意图;
29.图3是根据本发明实施例三提供的一种曲面重建装置的结构示意图;
30.图4是实现本发明实施例的曲面重建方法的电子设备的结构示意图。
具体实施方式
31.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
32.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
33.实施例一
34.图1a为本发明实施例一提供了一种曲面重建方法的流程图,本实施例可适用于基于由三维扫描设备获取的离散点云数据进行曲面重建的情况,该方法可以由曲面重建装置来执行,该曲面重建装置可以采用硬件和/或软件的形式实现,该曲面重建装置可配置于电子设备中,典型的,电子设备可以是计算机设备或者服务器。如图1a所示,该方法包括:
35.s110、获取待重建的点云数据,并通过对所述点云数据进行八叉树空间分割,获取所述点云数据对应的点云八叉树。
36.其中,点云数据,可以是通过三维扫描仪获取的离散三维点的集合,例如,可以是建筑、植物或者动物等的表面数据。其中,点云数据可以是某个坐标系下的点的数据集,可以包括三维坐标和颜值等信息。需要说明的是,点云数据作为一个表面模型的点集,数据量通常比较庞大,且相互之间没有任何显式的拓扑关系。
37.在本实施例中,为了提升对点云数据的处理速度,可以基于八叉树空间分割的原理将点云数据划分成小的子集,以建立彼此的几何拓扑关系,并获取点云数据对应的点云八叉树。
38.具体的,八叉树的划分是递归地将父立方体分成八个子立方体,划分结构可以如图1b所示;首先,建立初始点列表,并分别沿着坐标轴方向到最大和最小坐标值,进而以各轴方向的最大与最小坐标值之差作为父立方体边长,并以各轴方向的最小坐标值作为父立方体顶点,从而得到能包含所有点云的立方体包围盒,即根节点;然后,依次将初始点列表中的点放入立方体中,如果立方体内包含的点数超过八个,则将立方体分为八个子立方体,即叶子节点,直至所有点都放入各立方体内,且各立方体的点数均小于或等于八个;最
后,在划分过程中,若出现空的叶子节点,则将该叶子节点删除。由此,可以获取点云数据对应的点云八叉树。在点云八叉树中,每一个叶子节点对应一个点云数据的三维点。
39.在本实施例中,通过对点云数据进行八叉树空间分割,不仅可以提高遍历所有点的速率,还可以提高求解径向基函数的速率。
40.s120、根据所述点云八叉树的层级结构对所述点云数据进行分割,以获取所述点云数据对应的细层点集和至少一个粗层点集,并基于预设距离阈值对所述细层点集和各所述粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集。
41.在本实施例中,可以根据点云八叉树的层级结构,通过空间下降方法对点云数据进行分割,以构造由粗到细的点集,即一个细层点集和多个粗层点集。其中,细层点集和粗层点集的数量之和等于点云八叉树的深度,且细层点集中的点均为表面点,而粗层点集中的点均为插值点。
42.可选的,在对点云数据进行粗细层划分之前,判断点云数据的所有点是否均已正确分配到各叶子节点,如果没有则重新分配;若确定正确分配,则对点云数据进行粗细层划分。
43.需要说明的是,在现有的曲面重建方法中,通常将所有输入点作为拟合点,导致计算时间耗费较大。针对上述问题,在本实施例中,通过设置预设距离阈值,在拟合精度允许范围内删除部分中心点,保留满足条件的点,可以减少需要拟合的点数量,从而可以降低计算复杂度,可以提升拟合速率。
44.在一个具体的例子中,可以分别将细层点集或者粗层点集中各点作为中心点,并计算得到中心点与约束点距离的一阶近似,以作为该点对应的约束距离值;然后,若检测到该约束距离值小于预设距离阈值,或者,若检测到该约束距离值小于该预设距离阈值与对应的支径值的乘积,则可以将该点删除。否则,则可以保留该点。由此,可以对细层点集和各粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集。
45.其中,预设距离阈值,可以根据模型构建情况进行自适应设置。
46.s130、根据预设正则化参数分别对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,并根据所述细层拟合曲面和各所述粗层插值曲面,获取所述点云数据对应的隐式曲面。
47.可以理解的是,通过三维扫描设备扫描得到的点云数据普遍存在噪声,在本实施例中,在采用预先设置的紧支径向基函数(compactly supported radial basis functions,csrbf)分别对更新细层点集和各更新粗层点集进行隐式曲面插值时,可以通过引入预设正则化参数,以采用近似逼近代替精确插值,从而将携带噪声的点云模型重构成平滑却又不失细节的曲面。
48.其中,预设正则化参数的数值可以根据实际的曲面重建场景进行设置,典型的,预设正则化参数可以是0.25m,m表示粗层点集的数量。csrbf,定义一个取值仅仅依赖于离中心点距离的实值函数,为广泛应用于图形学领域的隐式函数造型方法。
49.具体的,在获取到细层拟合曲面和各粗层插值曲面之后,可以对各曲面进行相加,以将和值作为最终的隐式曲面;或者,可以对各曲面进行加权求和,并将和值作为最终的隐式曲面。
50.本发明实施例的技术方案,通过获取待重建的点云数据,并通过对点云数据进行
八叉树空间分割,获取点云数据对应的点云八叉树;之后,根据点云八叉树的层级结构对点云数据进行分割,以获取点云数据对应的细层点集和多个粗层点集,并基于预设距离阈值对细层点集和各粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集;最终,根据预设正则化参数分别对更新细层点集和各更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,并根据细层拟合曲面和各粗层插值曲面,获取点云数据对应的隐式曲面;通过在曲面重建过程中,新增预设距离阈值以对点云数据进行筛选,以及新增预设正则化参数对函数矩阵进行正则化,可以降低曲面重建的计算复杂度,并可以在提升曲面重建效率的同时,提升曲面重建的鲁棒性。
51.在本实施例的一个可选的实施方式中,根据所述点云八叉树的层级结构对所述点云数据进行分割,以获取所述点云数据对应的细层点集和至少一个粗层点集,可以包括:
52.根据所述点云八叉树中各叶子节点对应的三维点,获取细层点集;所述点云八叉树的叶子节点与所述点云数据的三维点一一对应;
53.计算得到各所述叶子节点对应的三维点匹配的矩心和单位平均法向量,并根据各所述叶子节点对应的三维点匹配的矩心和单位平均法向量,获取初始粗层点集,并根据所述初始粗层点集获取各其他粗层点集;
54.其中,所述细层点集的数量和所述粗层点集的数量的和值等于所述点云八叉树的深度。
55.在一个具体的例子中,在确定点云数据均正确完成分配之后,将所有叶子节点所处层记为pm层,并计算各叶子节点的矩心和平均单位法向量,并将计算结果所处层记为p
m-1
层;然后,计算p
m-1
层的矩心及平均单位法向量,并将计算结果所处层记为p
m-2
层,以此类推,直至求得根节点的矩心及平均单位法向量,并将计算结果所处层记为p0层。由此,可以将层次结构划分为{p0,p1,
…
,pm=p},其中,p0至p
m-1
定义为粗层,粗层上的点均为插值点,pm定义为细层,细层上的点均为表面点,且粗、细层数之和等于点云八叉树的深度。由此,可以获取一个细层点集和多个粗层点集。
56.在本实施例的另一个可选的实施方式中,基于预设距离阈值对所述细层点集和各所述粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集,可以包括:
57.计算得到当前点对应的预设紧支径向基函数值和梯度模值,并根据所述预设紧支径向基函数值和所述梯度模值,获取所述当前点对应的约束距离值;
58.获取所述当前点对应的支径值,并在检测到所述当前点对应的约束距离值小于所述预设距离阈值和所述支径值的乘积时,删除所述当前点。
59.在本实施例中,可以采用拟合的最小二乘误差来寻求拟合精度与减少点数之间的平衡点,拟合的最小二乘误差可以表示为其中,{fi}
i=1,2,...,n
示曲面上的n个标量值,f(pi)为基于预设紧支径向基函数计算得到的函数值。根据点云数据可以将最小二乘能量函数扩展为以采用点法向量ni来调节梯度的偏差。
60.其中,θ用于平衡函数值与梯度,典型的,θ=0.95。在本实施例中,可以
采用奇异值分解法求解最小二乘问题。需要说明的是,由于点云数据为曲面上的点,故所有的函数值fi都应为0,那么求得的gi值和λi值都为0,为了避免这种平凡解的出现,可以通过在表面内外增加离面点的方式获得非零fi值,以作为式多尺度rbf(radial basis functions,径向基函数)的约束条件。
61.为了避免新增离面点带来的增加计算复杂度的问题,以及最小二乘能量函数扩展式最小化时的迭代性质,使得在拟合精度较高的数据点处,最小二乘能量所受影响较小;在本实施例中,可以新增一个预设距离阈值,以在拟合精度允许范围内删除部分中心点,保留满足条件的点,从而加快拟合速率。
62.在一个具体的例子中,首先,设置合适大小的距离阈值ε,将当前点作为当前中心点,并计算得到当前中心点的预设紧支径向基函数值、梯度和梯度模值;然后,在确定梯度模值不为0时,计算当前中心点ci到约束点距离的一阶近似即约束距离值。之后,判断di与σmε的大小,如果di满足条件di<σmε,则将该点删除,并继续判断下一个点;反之,保留该点并划分至点云八叉树中,直至遍历所有中心点。其中,σm表示对应的支径值,即支撑半径的数值。其次,如果模值等于0,则保留该点并划分至点云八叉树中。
63.其中,获取所述当前点对应的支径值,可以包括:
64.获取所述当前点所在点集对应的点云八叉树层级,以及所述点云八叉树的根节点对应的对角线长度;
65.根据所述当前点所在点集对应的点云八叉树层级和所述根节点对应的对角线长度,获取所述当前点对应的支径值。
66.在一个具体的例子中,支径值可以设定为σ0=1.5l,σk=2-k
σ0,其中,l表示根节点的对角线长度,k=1,2,
…
,m,表示点云八叉树层级。典型的,,m,表示点云八叉树层级。典型的,表示叶子节点的平均对角线长度。
67.在本实施例的另一个可选的实施方式中,根据预设正则化参数分别对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,可以包括:
68.基于预设正则化参数对预设紧支径向基函数进行更新,以获取更新紧支径向基函数;
69.根据所述更新紧支径向基函数,对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面。
70.在本实施例中,三维空间上的隐式曲面可表示为f:r3→
r|f(x,y,z)=0,即每一个三维点均可以逼近于曲面方程中的一个点。在本实施例中,待重建的点云数据可以由n个三维点p={p1,p2,
…
,pn}及其对应的单位法向量{n1,n2,
…
,nn}组成。结合多尺度rbf法,可以基于函数进行插值。其中,插值函数f(x)是系列局部曲面的加权总和,i=1,2,
…
,n;||
·
||代表欧氏距离,gi(x)和λi分别为待求解的未知函数和系数,φ
σ
(r)=φ(r/σ)代表rbf,σ代表支径大小。
71.在一个具体的例子中,采用wendland定义的csrbf在三维空间中保持c2连续性:
[0072][0073]
为了估计在中心点pj处的函数值,首先计算中心点pj与约束点pi之间的距离,然后在点pj处确定一个局部正交坐标系统,保证(u,v)平面与法向量nj是垂直的,并且w与nj的正方向是一致的,最后定义局部二次函数g(u,v,w)=w-(au2+2buv+cv2)。
[0074]
根据局部二次函数可知,函数g的零值面与式w=au2+2buv+cv2表示的图形一致,逼近点pj处小的邻域内的形状可以如图1c所示。其中,系数a、b、c可以通过最小二乘法确定;
[0075][0076]
同样,可以采用奇异值分解法求解最小二乘方法,在确定函数gi(x)之后,令点pj满足并将该式转化为:
[0077][0078]
由此,可以获取一个关于变量λi的线性方程组,从而可以将曲面插值转换为线性方程组的变量求解问题。需要说明的是,csrbf构成的系数矩阵是严格正定的,故在本实施例中,可以使用预处理双共轭梯度法求解该线性系统,以获取系数λi的值。
[0079]
在本实施例中,为了避免单层插值方法无法修补孔洞模型,尤其对非密度均匀的点云插值时曲面易出现窄带的问题,可以采用两层插值,即分别对粗层和细层进行隐式曲面插值。
[0080]
在一个具体的例子中,引入正则化参数c,将标准rbf的φ转化为φ+ci,以获取更新紧支径向基函数,即采用近似逼近替代精确插值,从而消除数据噪声的影响。其中,i表示单位矩阵,典型的,c=0.25m。
[0081]
进一步的,为了估计粗层上各个中心点的函数值,首先需要计算出支径范围内的中心点cj与约束点ci的欧氏距离,然后进行局部二次逼近。假设隐式函数初始值f0(x)=-1,然后递归地确定插值函数集为fk(x)=f
k-1
(x)+ok(x);其中,k=1,2,
…
,m-1。在中心点cj处,补偿函数其中,n表示支径范围内的约束点点数,函数gi(cj)可以由公式gi(cj)=w
j-(au
j2
+2bujvj+cv
j2
)确定。其中,约束点可以预先设置。
[0082]
其中,转换系数λi可以根据公式fk(cj)=f
(k-1)
(cj)+ok(cj)=0确定。然而,由于一些边带或狭窄区域的存在,粗层拟合的部分区域会因残差较大的缘故重构出不正确的曲面,此时就需要进行细层拟合,以补充这些区域的中心点,从而增加约束条件。
[0083]
在本实施例中,可以沿着表面点的法线方向添加离面点,并将点面间的符号距离作为函数值fi,以避免产生平凡的常量解。具体的,在设定的距离阈值ε的基础上,计算表面点的函数值、梯度和梯度模值,并在确定梯度模值不等于0时,计算中心点cj到
约束点ci的距离的一阶近似然后,判断di与σmε的大小,如果di满足条件di>σmε,则沿法线方向添加一个离面点;反之,则删除该点,继续判断下一个点,直至遍历所有的点。其中,离面点的添加规则是:如果函数值f>0,则插值点如果f<0,则插值点则插值点代表该点梯度的单位向量。离面点的添加示意图可以如图1d所示。其次,如果梯度模值等于0,则插值点cj=cj。
[0084]
因此,细层点集的拟合点就由表面点和离面点共同组成,插值函数与粗层插值有相似的表达,即f(x)=f1(x)+o(x),其中,f1(x)表示粗层函数值。
[0085]
在本实施例的另一个可选的实施方式中,根据所述细层拟合曲面和各所述粗层插值曲面,获取所述点云数据对应的隐式曲面,可以包括:
[0086]
对所述细层拟合曲面和各所述粗层插值曲面进行加权求和,以将和值作为所述点云数据对应的隐式曲面。
[0087]
其中,细层拟合曲面,可以是细层拟合曲面对应的函数模型;粗层插值曲面,可以是粗层插值曲面对应的函数模型。
[0088]
在一个具体的例子中,在获取到细层拟合曲面对应的函数模型和各粗层插值曲面对应的函数模型之后,可以基于单位分解法,通过对各函数模型进行加权求和,以将和值作为重建的隐式曲面的数学模型。其中,加权求和的权重值,可以基于历史经验进行设置。
[0089]
在本实施例中,通过引入正则化参数,可以使重构模型表面变得更加平滑。值的注意的是,如果正则化参数设置的过大,表面会因为过度平滑而失去细节特征;而若正则化参数设置的过小,噪声数据又不能得到较好的处理。典型的,预设正则化参数可以为c=0.25m,可以在保留细节特征的同时,有效的滤除噪声。
[0090]
在一个具体的例子中,不同预设距离阈值的曲面重建结果可以如表1所示。其中,当预设距离阈值ε为0,即未对点云数据进行中心减少时,隐式拟合过程耗时12.17s;当预设距离阈值ε为0.03时,隐式拟合过程耗时4.24s,随着预设距离阈值ε的增加,隐式拟合过程耗时随之减少,但是表面细节也开始淡化,失去了重建效果的逼真性。所以,预设距离阈值并非越大越好,拟合精度和拟合速度之间的关系可以如图1e所示。其中,如果阈值设置过大,曲面拟合时间虽然缩短,但曲面精度却会大大损失。根据图1e可知,拟合精度为0.9953时拟合时间为3.26s,此时对应ε=0.04能够得到一个最优结果。
[0091]
表1不同预设距离阈值的曲面重建结果
[0092][0093]
实施例二
[0094]
图2a为本发明实施例二提供的一种曲面重建方法的流程图,本实施例是对上述技
术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施方式结合。如图2a所示,该方法包括:
[0095]
s210、获取待重建的点云数据,并通过对所述点云数据进行八叉树空间分割,获取所述点云数据对应的点云八叉树。
[0096]
s220、根据所述点云八叉树的层级结构对所述点云数据进行分割,以获取所述点云数据对应的细层点集和至少一个粗层点集,并基于预设距离阈值对所述细层点集和各所述粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集。
[0097]
s230、根据预设正则化参数分别对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面。
[0098]
s240、对所述细层拟合曲面和各所述粗层插值曲面进行加权求和,以将和值作为所述点云数据对应的隐式曲面。
[0099]
s250、通过对所述点云数据对应的隐式曲面进行多边形化处理,以获取所述隐式曲面对应的网格模型,并对所述网格模型进行渲染显示。
[0100]
在一个具体的例子中,在获取到点云数据对应的隐式曲面之后,可以通过polygonizer等方法对获取的隐式曲面进行多边形化处理,以获取对应的网格模型。然后,可以对网格模型进行渲染,以获取表面平滑的重建曲面,并对该重建曲面进行可视化展示。其中,网格模型的栅格尺寸可以根据曲面重建场景进行设置。
[0101]
本发明实施例的技术方案,在获取到细层拟合曲面和各粗层插值曲面之后,通过对细层拟合曲面和各粗层插值曲面进行加权求和,以将和值作为点云数据对应的隐式曲面,并通过对点云数据对应的隐式曲面进行多边形化处理,以获取隐式曲面对应的网格模型,最终对网格模型进行渲染显示,可以提升基于点云数据的曲面重建的效率,可以实现对重建曲面的直观展示。
[0102]
在本实施例的一个具体的实施方式中,曲面重建方法的流程可以如图2b所示。首先,输入点云数据,并对点云数据进行八叉树划分;之后,对点云数据进行粗细层划分,并设置预设距离阈值=;然后,计算每一个中心点到表面距离的一阶近似di,如果检测到di满足条件di>ε,则保存该点到点云八叉树,并读取下一中心点,直至完成对所有中心点的遍历;否则,则删除该点。
[0103]
进一步的,引入正则化参数c,并基于该正则化参数分别进行粗层插值和细层插值,以获取粗层曲面和细层曲面;然后,对粗细层曲面进行求和,以将和值作为隐式曲面,并最终对隐式曲面进行显示化,完成对点云数据的曲面重建。
[0104]
实施例三
[0105]
图3为本发明实施例三提供的一种曲面重建装置的结构示意图。如图3所示,该装置包括:点云八叉树获取模块310、点集获取模块320和隐式曲面获取模块330;其中,
[0106]
点云八叉树获取模块310,用于获取待重建的点云数据,并通过对所述点云数据进行八叉树空间分割,获取所述点云数据对应的点云八叉树;
[0107]
点集获取模块320,用于根据所述点云八叉树的层级结构对所述点云数据进行分割,以获取所述点云数据对应的细层点集和至少一个粗层点集,并基于预设距离阈值对所述细层点集和各所述粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集;
[0108]
隐式曲面获取模块330,用于根据预设正则化参数分别对所述更新细层点集和各
所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,并根据所述细层拟合曲面和各所述粗层插值曲面,获取所述点云数据对应的隐式曲面。
[0109]
本发明实施例的技术方案,通过获取待重建的点云数据,并通过对点云数据进行八叉树空间分割,获取点云数据对应的点云八叉树;之后,根据点云八叉树的层级结构对点云数据进行分割,以获取点云数据对应的细层点集和多个粗层点集,并基于预设距离阈值对细层点集和各粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集;最终,根据预设正则化参数分别对更新细层点集和各更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,并根据细层拟合曲面和各粗层插值曲面,获取点云数据对应的隐式曲面;通过在曲面重建过程中,新增预设距离阈值以对点云数据进行筛选,以及新增预设正则化参数对函数矩阵进行正则化,可以降低曲面重建的计算复杂度,并可以在提升曲面重建效率的同时,提升曲面重建的鲁棒性。
[0110]
可选的,点集获取模块320,包括:
[0111]
细层点集获取单元,用于根据所述点云八叉树中各叶子节点对应的三维点,获取细层点集;所述点云八叉树的叶子节点与所述点云数据的三维点一一对应;
[0112]
粗层点集获取单元,用于计算得到各所述叶子节点对应的三维点匹配的矩心和单位平均法向量,并根据各所述叶子节点对应的三维点匹配的矩心和单位平均法向量,获取初始粗层点集,并根据所述初始粗层点集获取各其他粗层点集;
[0113]
其中,所述细层点集的数量和所述粗层点集的数量的和值等于所述点云八叉树的深度。
[0114]
可选的,点集获取模块320,包括:
[0115]
约束距离值获取单元,用于计算得到当前点对应的预设紧支径向基函数值和梯度模值,并根据所述预设紧支径向基函数值和所述梯度模值,获取所述当前点对应的约束距离值;
[0116]
点删除单元,用于获取所述当前点对应的支径值,并在检测到所述当前点对应的约束距离值小于所述预设距离阈值和所述支径值的乘积时,删除所述当前点。
[0117]
可选的,点删除单元,具体用于获取所述当前点所在点集对应的点云八叉树层级,以及所述点云八叉树的根节点对应的对角线长度;
[0118]
根据所述当前点所在点集对应的点云八叉树层级和所述根节点对应的对角线长度,获取所述当前点对应的支径值。
[0119]
可选的,隐式曲面获取模块330,包括:
[0120]
函数更新单元,用于基于预设正则化参数对预设紧支径向基函数进行更新,以获取更新紧支径向基函数;
[0121]
曲面获取单元,用于根据所述更新紧支径向基函数,对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面。
[0122]
可选的,隐式曲面获取模块330,具体用于对所述细层拟合曲面和各所述粗层插值曲面进行加权求和,以将和值作为所述点云数据对应的隐式曲面。
[0123]
可选的,所述曲面重建装置,还包括:
[0124]
网格模型获取模块,用于通过对所述点云数据对应的隐式曲面进行多边形化处理,以获取所述隐式曲面对应的网格模型,并对所述网格模型进行渲染显示。
[0125]
本发明实施例所提供的曲面重建装置可执行本发明任意实施例所提供的曲面重建方法,具备执行方法相应的功能模块和有益效果。
[0126]
实施例四
[0127]
图4示出了可以用来实施本发明的实施例的电子设备40的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
[0128]
如图4所示,电子设备40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(rom)42、随机访问存储器(ram)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(rom)42中的计算机程序或者从存储单元48加载到随机访问存储器(ram)43中的计算机程序,来执行各种适当的动作和处理。在ram 43中,还可存储电子设备40操作所需的各种程序和数据。处理器41、rom 42以及ram 43通过总线44彼此相连。输入/输出(i/o)接口45也连接至总线44。
[0129]
电子设备40中的多个部件连接至i/o接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许电子设备40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0130]
处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器41执行上文所描述的各个方法和处理,例如曲面重建方法。
[0131]
在一些实施例中,曲面重建方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由rom 42和/或通信单元49而被载入和/或安装到电子设备40上。当计算机程序加载到ram 43并由处理器41执行时,可以执行上文描述的曲面重建方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行曲面重建方法。
[0132]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0133]
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合
来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0134]
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0135]
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0136]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0137]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0138]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0139]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
技术特征:
1.一种曲面重建方法,其特征在于,包括:获取待重建的点云数据,并通过对所述点云数据进行八叉树空间分割,获取所述点云数据对应的点云八叉树;根据所述点云八叉树的层级结构对所述点云数据进行分割,以获取所述点云数据对应的细层点集和至少一个粗层点集,并基于预设距离阈值对所述细层点集和各所述粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集;根据预设正则化参数分别对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,并根据所述细层拟合曲面和各所述粗层插值曲面,获取所述点云数据对应的隐式曲面。2.根据权利要求1所述的方法,其特征在于,根据所述点云八叉树的层级结构对所述点云数据进行分割,以获取所述点云数据对应的细层点集和至少一个粗层点集,包括:根据所述点云八叉树中各叶子节点对应的三维点,获取细层点集;所述点云八叉树的叶子节点与所述点云数据的三维点一一对应;计算得到各所述叶子节点对应的三维点匹配的矩心和单位平均法向量,并根据各所述叶子节点对应的三维点匹配的矩心和单位平均法向量,获取初始粗层点集,并根据所述初始粗层点集获取各其他粗层点集;其中,所述细层点集的数量和所述粗层点集的数量的和值等于所述点云八叉树的深度。3.根据权利要求1所述的方法,其特征在于,基于预设距离阈值对所述细层点集和各所述粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集,包括:计算得到当前点对应的预设紧支径向基函数值和梯度模值,并根据所述预设紧支径向基函数值和所述梯度模值,获取所述当前点对应的约束距离值;获取所述当前点对应的支径值,并在检测到所述当前点对应的约束距离值小于所述预设距离阈值和所述支径值的乘积时,删除所述当前点。4.根据权利要求3所述的方法,其特征在于,获取所述当前点对应的支径值,包括:获取所述当前点所在点集对应的点云八叉树层级,以及所述点云八叉树的根节点对应的对角线长度;根据所述当前点所在点集对应的点云八叉树层级和所述根节点对应的对角线长度,获取所述当前点对应的支径值。5.根据权利要求1所述的方法,其特征在于,根据预设正则化参数分别对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,包括:基于预设正则化参数对预设紧支径向基函数进行更新,以获取更新紧支径向基函数;根据所述更新紧支径向基函数,对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面。6.根据权利要求1所述的方法,其特征在于,根据所述细层拟合曲面和各所述粗层插值曲面,获取所述点云数据对应的隐式曲面,包括:对所述细层拟合曲面和各所述粗层插值曲面进行加权求和,以将和值作为所述点云数据对应的隐式曲面。
7.根据权利要求6所述的方法,其特征在于,在根据所述细层拟合曲面和各所述粗层插值曲面,获取所述点云数据对应的隐式曲面之后,还包括:通过对所述点云数据对应的隐式曲面进行多边形化处理,以获取所述隐式曲面对应的网格模型,并对所述网格模型进行渲染显示。8.一种曲面重建装置,其特征在于,包括:点云八叉树获取模块,用于获取待重建的点云数据,并通过对所述点云数据进行八叉树空间分割,获取所述点云数据对应的点云八叉树;点集获取模块,用于根据所述点云八叉树的层级结构对所述点云数据进行分割,以获取所述点云数据对应的细层点集和至少一个粗层点集,并基于预设距离阈值对所述细层点集和各所述粗层点集进行点筛选,以获取更新细层点集和各更新粗层点集;隐式曲面获取模块,用于根据预设正则化参数分别对所述更新细层点集和各所述更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,并根据所述细层拟合曲面和各所述粗层插值曲面,获取所述点云数据对应的隐式曲面。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的曲面重建方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的曲面重建方法。
技术总结
本发明公开了一种曲面重建方法、装置、设备及存储介质。该方法包括:获取点云数据,并通过对点云数据进行八叉树空间分割,获取点云八叉树;根据点云八叉树的层级结构,以获取点云数据对应的细层点集和多个粗层点集,并基于预设距离阈值获取更新细层点集和各更新粗层点集;根据预设正则化参数分别对更新细层点集和各更新粗层点集进行隐式曲面插值,以获取细层拟合曲面和各粗层插值曲面,并根据细层拟合曲面和各粗层插值曲面,获取隐式曲面。本实施例的技术方案,通过在曲面重建过程中,新增预设距离阈值以对点云数据进行筛选,以及新增预设正则化参数对函数矩阵进行正则化,可以在提升曲面重建效率的同时,提升曲面重建的鲁棒性。提升曲面重建的鲁棒性。提升曲面重建的鲁棒性。
技术研发人员:
张娟 邹馨仪 吴俊蓉 马通 任亚东 李骁
受保护的技术使用者:
中国农业银行股份有限公司
技术研发日:
2022.10.11
技术公布日:
2022/12/30