掌桥专利:专业的专利平台
掌桥专利
首页

不规则复杂建筑物三维模型重建方法及装置

文献发布时间:2024-04-18 19:52:40


不规则复杂建筑物三维模型重建方法及装置

技术领域

本发明涉及三维重建技术领域。更具体地说,本发明涉及一种不规则复杂建筑物三维模型重建方法及装置。

背景技术

随着点云获取硬件设备技术的发展进步,人们很容易获得各种数据来源的建筑点云数据,这些三维点云能够表达建筑的坐标信息和几何信息,广泛用于建筑模型的三维重建。虽然目前国内外学者在真实世界建筑点云的模型构建方面已有较为广泛的研究并取得了一定的成果,但是仍存在以下几点不足:

(1)多数流行的建筑三维重建方法都局限于曼哈顿世界模型假设下的建筑重建,不适用于不规则的建筑三维模型构建,缺乏通用性。另外一些重建方法虽然能够很好表达不规则建筑模型,但是构建的三角网面片过于稠密,不符合模型轻量化要求。

(2)由于建筑结构的复杂性,通过各种手段获取的点云数据不可避免的存在噪声,信息缺失等问题,这给模型重建工作带来了很大的困难。从非理想结构化点云中重建出高精度、流形和拓扑结构正确的真实世界不规则建筑模型仍然存在困难。

发明内容

本发明的一个目的是提供一种不规则复杂建筑物三维模型重建方法及装置,以解决上述问题。

为了实现本发明的目的和其它优点,提供了一种不规则复杂建筑物三维模型重建方法,包括:获取目标对象的原始点云,并进行滤波处理,得预处理点云;对所述预处理点云进行平面分割,得点云面片集及其对应的点云支撑平面集;采用点云的外接包围盒裁切所述点云支撑平面集,构建目标对象的三维多面体;对组成所述三维多面体的点云扩展面片进行面片分割,得候选面片集;去除所述候选面片集中的冗余面片,构建目标对象的三维重建模型。

优选的是,所述的不规则复杂建筑物三维模型重建方法,所述滤波处理包括:采用八连通域算法,去除所述原始点云的离群点;采用基于八叉树的点云下采样,对去除离群点后的点云进行简化。

优选的是,所述的不规则复杂建筑物三维模型重建方法,所述对所述预处理点云进行平面分割,得点云面片集及其对应的点云支撑平面集,包括:采用基于One-PointRANSAC的平面分割算法对所述预处理点云进行平面分割;将经平面分割后获得的初始点云面片集进行迭代细化处理,得所述点云面片集及其对应的点云支撑平面集。

优选的是,所述的不规则复杂建筑物三维模型重建方法,所述采用点云的外接包围盒裁切所述点云支撑平面集,构建目标对象的三维多面体,包括:计算所述原始点云的外接包围盒,将该外接包围盒的边长进行扩充,扩充半径为r,得扩充后的外接包围盒;以所述扩充后的外接包围盒裁切所述点云支持平面集,计算每个支撑平面与所述扩充后的外接包围盒的交点,并保存裁切后的交点、边和面片以及三者的关联关系,得到由所述点云扩展面片构成的所述目标对象的三维多面体。

优选的是,所述的不规则复杂建筑物三维模型重建方法,所述对组成所述三维多面体的点云扩展面片进行面片分割,得候选面片集,包括:将组成所述三维多面体的每个点云扩展面片用与其相交的点云扩展面片进行分割,每次分割后,被分割的点云扩展面片不再存在,而是被分割成多个候选面片部分,每个候选面片部分再次被与其相交的点云扩展面片分割,直至不满足分割条件,得所述候选面片集。

优选的是,所述的不规则复杂建筑物三维模型重建方法,所述去除所述候选面片集中的冗余面片,构建目标对象的三维重建模型,包括:建立以点云拟合度、点云覆盖率和模型复杂度为参考因素的目标函数;以一个边有且只能关联两个面片,以及,如果一个边为锐利边,则该边必须首先被选择为约束条件,对所述目标函数求解,得近似目标对象的面片集;将所述近似目标对象的面片集进行组合,得所述目标对象的三维重建模型。

优选的是,所述的不规则复杂建筑物三维模型重建方法,所述目标函数,具体为:

上式中,x代表所求的未知数,E

上式中,|p|为输入的所述预处理点云p中总的点云数量,N为所述候选面片集中的候选面片数量,x

为投影到面片f

本发明还提供了一种不规则复杂建筑物三维模型重建装置,包括:预处理模块,其用于获取目标对象的原始点云,并进行滤波处理,得预处理点云;平面提取模块,其用于对所述预处理点云进行平面分割,得点云面片集及其对应的点云支撑平面集;裁切模块,其用于采用点云的外接包围盒裁切所述点云支撑平面集,构建目标对象的三维多面体;面片分割模块,其用于对组成所述三维多面体的点云扩展面片进行面片分割,得候选面片集;去冗余模块,其用于去除所述候选面片集中的冗余面片,构建目标对象的三维重建模型。

本发明还提供了一种存储介质,其中存储有计算机程序,所述计算机程序被处理器加载执行时,实现如权利要求1-7任一所述的不规则复杂建筑物三维模型重建方法。

本发明还提供了一种电子设备,包括:处理器、及存储器;其中,所述存储器用于存储计算机程序;所述处理器用于加载执行所述计算机程序,以使所述电子设备执行如权利要求1-7任一所述的不规则复杂建筑物三维模型重建方法。

本发明至少包括以下有益效果:

第一、针对获取的点云数据存在的离群点和噪声点问题,本发明采用一种改进的八连通域算法,去除离群点,该方法与常用的统计滤波和高斯滤波等方法相比更能有效的去除离群点,保留建筑主体结构点云。

第二、针对点云的平面分割,本发明提出一种在点云采样的基础上,基于一个点及其法向量的随机平面分割方法--One-Point RANSAC,相比于传统RANSAC分割,对平面的拟合准确度更高,对具有异常值和噪声的点云数据有更好的鲁棒性和效率,而且在小范围局部区域也有很好的效果,为后续的模型重建奠定了基础。

第三、针对目前三维模型重建过程中出现的模型紧密型差,点云鲁棒性不强,模型三角网稠密和拓扑关系不正确的问题,本发明的方法从全局的角度出发,首先获取点云的平面集和支撑平面集,然后用点云外接包围盒裁切点云支撑平面集,得到目标对象的超集--三维多面体(3D-Polyhedron),再用平面之间两两相互切割得到候选面片集,因为在切割过程中会产生并不代表建筑实际结构的冗余面片,通过构建一个二元线性规划方程,使用SCIP求解器,对目标函数求解,去掉冗余的面片,最终得到近似目标对象表面的三维模型,相比于其他三维重建方法,本发明的方法能够很好的解决不规则复杂建筑三维模型的重建,模型与点云的贴合较好,模型拓扑结构关系正确,三角网面片数量较少,占用较少内存资源,且对杂乱,信息缺失点云具有很好的鲁棒性。

第四、本发明提出了一种从点云到建筑物三维模型的完整技术方案,并在多种类型的数据集上对该方案进行了验证,结果表明,本发明的方法能够很好的完成对不规则复杂建筑的三维模型构建,在模型三角网轻量化和模型的拓扑结构正确性方面与其它重建方法相比具有很好的优越性。

本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

附图说明

图1是本发明一个实施例的不规则复杂建筑物三维模型重建方法的流程示意图;

图2是本发明另一个实施例的外接包围盒的空间组织关系示意图;

图3是本发明另一个实施例的简化点云模型示意图;

图4是本发明另一个实施例的目标对象的三维多面体示意图;

图5是本发明另一个实施例的点云支撑平面与其它扩展面片相交的集合示意图;

图6是本发明另一个实施例的边的分割示意图;

图7是本发明另一个实施例的面片的分割示意图;

图8是本发明另一个实施例的点云面片被相交平面分割过程示意图;

图9是本发明另一个实施例的边和面的结构关系示意图;

图10为本发明的方法与现有三种重建方法的重建结果示意图。

具体实施方式

下面结合实施例和附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

应当理解,本发明所使用的诸如“具有”、“包含”以及“包括”术语并不排除一个或多个其它元件或其组合的存在或添加。

需要说明的是,下述实施方案中所述实验方法,如无特殊说明,均为常规方法。

名词解释:

点云支撑平面:将原始点云分割成一个个平面模型,把有点云组成的平面模型所在的三维空间称为点云对应的支撑平面,可以由平面方程和平面法向量表示,即点云组成的平面模型是有边界的,是一组散乱点云的集合,而对应的支撑平面是没有边界的,可以用一组平面方程表达。

点云面片:把分割后的原始点云组成的平面模型称为点云面片,即原始点云分割后的点云组成的平面,点云面片是有边界的,也可以用一组平面方程表达。

点云扩展面片:点云支撑平面与点云外接包围盒相交后,由交点,相交边构成的新的面片,即可以看成是对面片在空间中的有限扩展。

点云候选面片:用点云扩展面片相互分割产生的新的一系列面片。

简单来说,可以理解为:散乱三维点云所在的无限空间平面称为点云支撑平面,散乱点云边界限制的空间平面称为点云面片,对点云面片在空间中的有限扩展称为点云扩展面片,点云扩展面片相互分割得到的新的面片称为点云候选面片。

如图1所示,本发明提供一种不规则复杂建筑物三维模型重建方法,包括:

S102、获取目标对象的原始点云,并进行滤波处理,得预处理点云。

建筑物体具有复杂的形状和不同的表面反射率,当使用激光雷达雷达扫描仪时,得到的扫描点云包含大量的异常值,这些异常值是3D扫描不可避免的附产品。异常点通常是无序的,嘈杂的,并且局部密度不一致,具有几何不连续性和尖锐特征的任意表面形状。稀疏和密集的异常值给扫描点云的应用带来了很大的问题,特别是在3D形状分析,目标重建和目标识别中。因此如何从散乱的点云中去除离群点是点云应用首先要考虑的事情。

为了提取建筑主体点云数据,更有效的过滤掉建筑外的离群点云数据,本发明对获取到的目标对象的原始点云进行了滤波处理。具体地,先采用八连通域算法,去除所述原始点云的离群点;再采用基于八叉树的点云下采样,对去除离群点后的点云进行简化,得所述预处理点云。其中,

八连通域算法过程如下:首先将获取的目标对象的原始点云基于X和Y坐标划分为2D网格,网格的边长根据点云数据的分辨率决定。在实验中,按照下采样过程中的点云体素大小设置该参数。如果网格中点云的数量大于0,将该网格的标签赋值为1,遍历所有的网格,得到一个二进制网格图。然后选择标记为1的一个网格点作为种子点,向周围八个方向进行搜索,每个被检测到的网格划分为同一个区域,直到所有的网格遍历完成。最终,二进制网格图变成一个网格区域图,图中将离群网格点标记为o,保留的建筑主体网格点标记为c,再根据离群点区域和建筑主体点云区域网格数量的差异,自适应阈值按每个区域的已排序网格数的最大差值计算。因为建筑主体点云的网格数量大于阈值,离群点网格区域将会被去除。这样就能将去除异常值后的建筑点云保留下来。

基于八叉树的点云下采样方法是通过递归建树的方法将三维点云进行分割的。构建点云八叉树的算法过程如下:

(1)首先,构造点云数据的外接包围盒,把该包围盒作为根节点。

(2)其次,向根节点中加入已知的数据点云,当根节点中的点云个数大于所设定的阈值时,将根节点划分为八个子节点。此时根节点的属性设置为False(假设所有的阶段的初始属性为True)。并计算已经加入的点云分别位于八个字节点中的哪一个节点中。

(3)继续向根节点中加入点云,并计算新加入的数据点位于八个子节点中的哪个子节点,该子节点的索引加1。当八个子节点中的某个子节点中的点云个数大于所设定的阈值时,该子节点生成八个子节点,该子节点的属性设置为False,并计算该子节点中的数据点位于该子节点的八个子节点的哪一个节点中。

重复(3)的过程,直到遍历完所有的点云。则完成建树过程。

三维点云的简化处理过程一般为:(1)利用八叉树建立空间散乱点云的拓扑结构并搜索邻域;(2)设置八叉树的等级,过滤所有节点;(3)计算每个中间节点的重心来代替节点中的其它点云,这样就完成了点云的简化压缩处理。

S104、对所述预处理点云进行平面分割,得点云面片集及其对应的点云支撑平面集。

平面分割是将点云分组为多个具有相似属性的同质区域的过程,是下一步进行三维重建的基础性和重要性的步骤。为了能够更好的对预处理点云进行平面提取,本发明采用基于One-Point RANSAC的平面分割算法。

具体地,先通过对输入的点云集p={p

因为只需选择一个真正的局内点,检测平面的迭代次数肯定比随机选择三个局内采样点少。当检测出最大的平面后,对所有的局内点使用SVD算法重新估计平面法向量。

基于One-Point RANSAC的平面分割算法伪代码如下:

为了检测出预处理点云中的所有的平面,多次运用One-Point RANSAC,当一个平面检测出来后,将其从总的点云中去除,对剩下的点云继续检测,直到没有足够的点云(点云小于阈值)构成平面。为了提取基本的语义场景,将检测到的平面分为三个类型:垂直平面,水平平面,和其它平面。

进一步地,考虑到采用One-Point RANSAC平面分割方法提取到的初始点云面片集可能包含由于异常值,噪声和缺少数据产生不需要的平面元素,因此,需要对分割后的初始点云面片集进行迭代细化处理。具体来讲就是,首先计算任意一对点云面片的两个支撑平面的夹角,接着从有最小角度的点云面片对组合(π

在实验中,对于参数的选择,经过多次验证,设置角度阈值为θ

S106、采用点云的外接包围盒裁切所述点云支撑平面集,构建目标对象的三维多面体。

三维多面体(3D-Polyhedron)由顶点V,边E,面片F包括它们之间的映射关系组成,并保持它们之间组合的完整性。本发明将面片限制为简单的不带有孔洞的平面多边形,并且多面体的边界是有向的二维流形,这样就能保证面片是持续的有向的,每个边正好关联两个面片,每个边有两个不同的端点,每个点关联三个面片,这是保证重建模型的紧密型的重要基础条件。

构建3D多面体的第一步是计算原始点云的外界包围盒。这里,本发明采用AABB包围盒。对于输入点云集p={p

扩充后的最小包围盒边界为p

p

p

p

p

p

p

扩充后的外接包围盒的图结构如图2所示,由顶点,边和面片组成,边有两个方向相反的半边(Halfedge)组成。八个顶点a

构建3D多面体的第二步是利用扩充后的外接包围盒裁切迭代细化后的点云支持平面集。计算每个支撑平面与点云外接包围盒边框的交点,并保存裁切后的交点,边,和面片以及它们之间的关联关系,得到由点云扩展面片构成的原始建筑点云表面的超集--目标对象的三维多面体。图3是为了表述方便,用点,线段的线框模型来代替实际输入的点云模型,图4给出了裁切后的目标对象表面的超集--三维多面体。具体裁切过程为,首先计算点云面片所在的支撑平面,面片的特点是具有有限的边界特征,它所在的支撑平面则是无限的空间三维平面,因此可以把该支撑平面理解成面片所对应的超集。如图3中的点云面片f

S108、对组成所述三维多面体的点云扩展面片进行面片分割,得候选面片集。

目标对象的三维多面体,并不能准确代表建筑的实际结构,还需要对其进行优化处理。即利用点云扩展面片相互分割产生的新的候选面片集合,这样三维多面体就可以看成是由一个个候选面片组合而成。具体实现过程为:

(1)首先计算与任一扩展面片所在的支撑平面相交的其它所有扩展面片,为了更好的表达分割过程,图5中以扩展面片f

为了避免浮点数造成的数值振荡,本实验中认定当距离阈值d

(2)接下来,该扩展面片被与它相交的扩展面片分割产生成新的候选面片,注意,每次切割后,原来的扩展面片不再存在,它被分割成多个候选面片部分,每部分再次被另一个扩展面片分割,直到不满足分割条件为止。

分割过程中关键步骤是关于边的分割和面片的分割。边的分割(split-edge)要计算新的交点及其关联的半边,如图6中原始边有半边h和对立的半边h′组成,两个端点分别为ov

(3)最后,我们完整展示面片的分割过程。图8展示了扩展面片f

S110、去除所述候选面片集中的冗余面片,构建目标对象的三维重建模型。

候选面片集存在不能代表实际建筑结构的候选面片,将候选面片集中的冗余面片去除,就可以得到近似目标建筑表面的三维模型。

对候选面片集进行优化选择,该过程可以看成是一个基于二元线性规划方程构建的问题。对于这类问题每个未知数都可以有一个变量表示,其值可以是0(未选择)或1(被选择)。这些变量通过以下两个条件进行连接:(a)构建一个能量函数,来最大化满足重建目标的期望。(b)一系列的约束条件保证重建结果网格是流形和密闭的。对于每个候选面片的二元变量x

(1)点云拟合度

点云数据拟合度在数学上被定义为衡量不参与最终模型重建的点云的置信加权的百分比,也就是没有参与重建的点云的百分比:

其中,|p|为输入的所述预处理点云p中总的点云数量,N为所述候选面片集中的候选面片数量,x

dist(p,f)是衡量点云到面片的欧几里得距离,仅考虑到面片距离小于ε的点云,即:点云p满足dist(p,f)<ε,ε为求取每个面片上的点云到该拟合面片的最大距离,对所有面片得到的距离取平均值。置信度系数conf(p)代表在点p处的点云的局部质量,通过定义在p处的局部协方差矩阵计算得到,本发明中,在三个不同尺度上(即不同的邻域范围,分别取i=6,16,32)计算点p处的协方差矩阵,因此,conf(p)被定义为公式:

其中

总的来说,点云拟合度系数倾向于选择点云和面片贴合度较好,并且有着密集均匀采样点云分布区域的候选面片。

(2)模型复杂度

由于遮挡造成的点云数据不完整,而点云拟合度倾向于严格的贴合不完整的点云表面,导致最终的重建模型会存在间隙。另外,噪声和离群点同样也会在重建模型中引入间隙和凸出问题,使得模型表面显得不是平滑,这将影响对建模后续的应用。

考虑到间隙和凸起会导致产生有额外的锐利边问题,因此,本发明引入一个模型复杂度系数,该系数与模型中特征的数量有关,这些特征用边来表示,边关联不同的平面。

定义模型复杂度系数为在模型中非平面的边占全部边的比率:

其中,|E|表示面片两两分割得到的总的边的数量,而c(e

(3)点云的覆盖率

为了处理由于遮挡导致的部分数据的缺失,模型中没有点云支撑的区域(即,没有点云覆盖的平面)应该尽可能的小。为了衡量一个面片f的点云覆盖率,首先将到面片f的距离小于ε的点云投影到该面片上面,接着,根据符合条件的投影点云构建一个2D的α-shape网格

其中,B(M)为最终模型M的表面积,B(f

本发明中使用真实的模型面积,即area(M)作为分母,以保证点云覆盖率系数的值的范围为[0,1]。然而,由于通常并不知道真实的模型,因此直接计算B(M)的系数非常困难。考虑到目标建筑的最终模型的真实的表面面积和点云的外接包围盒的面积相当,而输入点云的外接包围盒很容易计算得到。因此,本发明使用点云的外接包围盒的面积来代替模型的实际面积,即:B(M)≈B(bbox)。

最后,通过最小化这些能量的加权和来选择候选面片的子集构建建筑模型。目标函数在约束条件下才能确保重建模型的拓扑结构的正确性。很明显,只有保证模型中每个边仅仅只关联两个面片,才能得到表面流形和密闭的模型。目标函数表示为:

其中,x代表所求的未知数,是该面片最后是否被保留,最后被保留则为1,不被保留则为0;λ

该方程的约束条件为:

约束条件1:一个边有且只能关联两个面片。

是每个边e

约束条件2:如果一个边为锐利边,则该边必须首先被选择。

对于锐利边情况的解释为,如图9中所示,l

使用大M法(Big M Method),可以将上述逻辑约束条件转换为标准形式,实验中M取值为1。

sharp(cp

sharp(cp

使用SCIP求解器对二元线性规划方程解算,经过优化后,所选面片(即具有相应变量x

(4)算法流程

/>

为了验证本发明所提出的不规则复杂建筑物三维模型重建方法的效果,本发明选取了八组不同点云数据,按照点云规则形状可大致分为三类:曼哈顿规则假设的建筑物类型,侧立面不规则建筑物类型和外立面完全不规则的建筑类型,并进行三维重建,结果如下:

由上表可知,本发明的方法对各种类型的建筑点云数据都有很好的适应性,能够完成不同类型的建筑模型的三维重建。

此外,本发明还分别用两组不同类型的点云数据进行实验比较。图10展示了本发明方法与其它三种方法针对同一个输入曼哈顿规则的建筑点云数据进行重建结果比较。图10(a)为输入的原始建筑点云,图10(b)为Screened Poisson重建算法的模型,图10(c)为The Structured indoor modeling(SIM)算法的重建模型,图10(d)RAPTER算法重建模型,图10(e)为本发明重建模型,可以观察到Screened Poisson算法产生大量凹凸不平的密集表面模型,该算法对噪声和异常值比较敏感,另外产生的面片网格数量高达282176个,这占用了大量的内存资源。TheStructured indoor modeling(SIM)算法能够产生带有更多细节的密集表面模型,产生104个面片网格数据,然而该方法会得到一些非理想表面,即模型中存在凸起和间隙,而且该方法仅使用于符合曼哈顿规则模型的建模。RAPTER和本发明方法都能产生干净和紧密的表面模型。两种方法产生的面片网格数量相差不多,分别为22和25个,说明两种方法都能产生轻量三角网面片模型,但本发明的方法细节更优。

综上,本发明的方法在对不规则复杂建筑重建方面有着很好的效果,重建模型具有三角网轻量化的特点和能够正确表达模型的拓扑结构关系,另外对噪声点云也有很强的鲁棒性,适应性,证明了本发明方法的优越性。

进一步地,本发明还提供了一种不规则复杂建筑物三维模型重建装置,包括:预处理模块,其用于获取目标对象的原始点云,并进行滤波处理,得预处理点云;平面提取模块,其用于对所述预处理点云进行平面分割,得点云面片集及其对应的点云支撑平面集;裁切模块,其用于采用点云的外接包围盒裁切所述点云支撑平面集,构建目标对象的三维多面体;面片分割模块,其用于对组成所述三维多面体的点云扩展面片进行面片分割,得候选面片集;去冗余模块,其用于去除所述候选面片集中的冗余面片,构建目标对象的三维重建模型。

上述不规则复杂建筑物三维模型重建装置基于与不规则复杂建筑物三维模型重建方法相同的发明构思得到,这里不再赘述。

进一步地,本发明还提供了一种存储介质,所述存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质,其中存储有计算机程序,该计算机程序在被处理器加载执行时,实现上述不规则复杂建筑物三维模型重建方法的全部或部分步骤。

进一步地,本发明还提供了一种电子设备,所述电子设备为包括处理器(CPU/MCU/SOC)、存储器(ROM/RAM)的设备,例如:台式机、便携式电脑、智能手机等。特别的,该存储器中存储有计算机程序,该处理器在加载执行所述计算机程序时,实现上述不规则复杂建筑物三维模型重建方法的全部或部分步骤。

这里说明的设备数量和处理规模是用来简化本发明的说明的。对本发明不规则复杂建筑物三维模型重建方法及装置的应用、修改和变化对本领域的技术人员来说是显而易见的。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

相关技术
  • 带有多重复杂曲面旋转对称模型的三维重建方法及装置
  • 带有多重复杂曲面旋转对称模型的三维重建方法及装置
技术分类

06120116331564