基于启发式包络侵蚀的三维建筑物模型自动修复方法与流程

文档序号:13513960阅读:274来源:国知局
基于启发式包络侵蚀的三维建筑物模型自动修复方法与流程

本发明是一种三维建筑物模型的自动修复算法,其主要应用于三维城市、虚拟现实、数字城市以及智慧城市等领域。



背景技术:

由于三维城市模型能够完备的表达现实城市环境,因此在智慧城市、智能交通、无人驾驶、基于位置的服务、地籍管理、基础设施规划和管理等诸多领域都有着重要的应用。近十年来,三维城市的建设成为了全球的热点,针对其几何、拓扑和语义信息的表达也已制订了国际标准,如《城市地理标记语言》(citygml)和《iso16739工业基础类》(ifc)。据不完全统计,我国各大城市已完成或者在建三维城市项目近百个,投资规模超百亿,在世界上规模居领先。

但与此同时,当前规范化的三维城市建模细则还不完善,建模手段多样,人工、自动方式并存,且缺乏对建成模型有效的质量检查,导致当前多数三维城市建设仍仅以满足可视效果为主,无法保证模型数据内在的正确性。视觉效果逼真的三维城市模型在计算机看来仅仅是一堆无序的面片,这样的模型数据无法被用来支持进一步的空间分析和计算。因此,当前多数三维建筑物模型缺乏对正确三维空间信息的把握,制约后续的定量精细化应用,需要研究对其进行自动修复的算法。



技术实现要素:

本发明提出一种基于启发式的包络侵蚀的三维建筑物模型修复方法。该方法区别于传统的三维模型自动修复的方法,即通过检测模型中的几何以及拓扑错误,如洞、相交、非流形等,针对特定的错误进行局部修复,而是利用带有约束的四面体剖分,对三维建筑物模型整体进行空间剖分,而后利用侵蚀将模型外围的四面体进行逐步删减,最终达到对正确三维建筑物模型的二维流形边界的表达。该方法避免了局部修复广泛存在的稳定性差的问题,并且避免了传统基于体素的全局修复带来的表达失真的问题。而且利用启发式算法和几何、拓扑正确性约束,能够保证在侵蚀的过程中优先对最佳四面体候选对象进行处理,效率高且修复成功率大。

本发明所采用的技术方案是:

基于启发式包络侵蚀的三维建筑物模型自动修复方法,其特征在于,包括如下步骤:

步骤1、对输入的三维建筑物模型进行几何剖分,保证图元的拓扑正确性;

步骤2、对剖分后的三维建筑物模型进行约束的四面体剖分,实现对三维模型的空间的完整表达;

步骤3、提取三维模型空间的边界四面体,设计对四面体的逐步侵蚀和保持算法;

步骤4、设计启发式侵蚀策略以及对四面体侵蚀的正确性约束;

步骤5、实现对侵蚀结果四面体的边界提取以及对语义信息的保持和修复

(步骤3、步骤4为本发明技术方案体现创造性的关键步骤)

本发明的特点是:

1、算法鲁棒,不会在修复的过程中引入新的错误;

2、能够对任意三维(建筑物)模型进行修复,得到二维流形的表面;

3、能够对三维建筑物模型的几何、拓扑和语义进行统一的修复,最终得到标准的citygml模型。

附图说明

图1为本发明方法技术方案流程示意图

图2三维建筑物模型剖分和预处理示意

图3三维模型三角形剖分算法流程示意图

图4三维模型约束四面体剖分示意

图5四面体数据结构示意

图6四面体侵蚀修复算法流程图

图7四面体侵蚀与保持示意

图8面片的拓扑约束示意

图9边的拓扑约束示意

图10顶点的拓扑约束示意

图11语义信息推断方法示意

图12为利用法线朝向进行语义信息推断示意图

具体实施方式

基于本发明技术方案,以下结合附图对本发明技术方案做更为详细的介绍。

图2三维建筑物模型剖分和预处理示意,a)输入模型几何;b)三角化结果;c)相交面片剖分;d)三角形质量优化。

图4三维模型约束四面体剖分示意,a)输入模型;b)约束四面体化结果表面;c)约束四面体化内部四面体。

图7四面体侵蚀与保持示意a)当前候选四面体;b)侵蚀候选四面体;c)保持当前候选四面体。

图8面片的拓扑约束示意a)当前候选四面体;b)对候选四面体侵蚀后导致锚三角形成为悬挂面。

图9边的拓扑约束示意a)当前候选四面体有一条位于包络表面的边;b)该边与两个不相邻的包含锚三角形的四面体关联,侵蚀后导致非流形;c,d)该边与一个、两个相邻的包含锚三角形的四面体关联,侵蚀后正确。

图10顶点的拓扑约束示意a,b)当前四面体出发可以找到一条不跨越锚三角形的连续的侵蚀操作,到达该点所关联的包络上的三角形,侵蚀结果正确;d,e)该当前四面体出发我无法找到一条不跨越锚三角形的连续的侵蚀操作,到达该点所关联的包络上的三角形,侵蚀后导致非流形。

图11语义信息推断方法示意a)当前新增锚面片位于相同语义信息的邻接锚三角形面片内部且共面,其语义信息则设为邻接锚三角形面片语义;b)当前新增锚面片位于不同语义信息的邻接锚三角形面片内部且共面,其语义信息则设为占有面积优势的邻接锚三角形面片语义。

本发明整个方法过程如图1所示。各个步骤依次为:

步骤1,如图2所示三维模型的几何剖分与预处理,保证图元的拓扑正确性。

步骤1.1三维模型三角化

由于本发明修复算法需要输入基于三角形网格表达的模型数据,因此需要对原始输入的非三角形网格模型进行三角化。该过程为对输入模型中的多边形面片进行遍历,分为以下三种情况进行处理,如图3所示:

步骤1.1.1,如果原始模型面片为三角形,那么保留该面片;

步骤1.1.2,如果原始模型面片为四边形,则相连最近的对角点将四边形剖分为两个三角形;

步骤1.1.3,如果原始模型面片为凸多边形,则将多边形利用opengl中的glutesselator进行快速三角形剖分;

步骤1.1.4,如果原始模型面片为凹多边形,则对多边形利用第三方triangle1库进行delaunay三角剖分。

以上处理流程最大程度保证了三角形剖分的效率和效果。

步骤1.2三维模型相交面片剖分

原始输入的三维建筑物模型可能存在面片相交的情况,因此在对其进行四面体化之前需要对相交的三角形面片进行剖分。在剖分过程中,首先检测三角形面片之间的相交的情况,然后根据不同的情况分别进行处理,如表1所示:

表1三维模型相交面片剖分情况

步骤1.3三维模型的三角形形态优化

经过三角形剖分之后,三维模型的三角形面片可能存在两类质量问题:一类

______________________

1http://www.cs.cmu.edu/~quake/tria

为存在大量共面三角形。该问题会导致后续的修复过程生成过多四面体,影响修复的效率和质量;另一类为剖分后的模型中可能包含过于狭长或近似退化的三角形(面积近似为0)。该类三角形会影响后续几何处理的精度,因此需要进行优化处理。

对于第一类问题,利用区域增长法将共面三角形聚为一类,然后提取共面三角形的边界,使用cdt(参见步骤1.1.4))对共面三角形进行重新三角化;对于第二类问题,通过对三角形的面积、最小内角的计算,对不符合阈值的三角形面片进行局部调整,如进行三角形边折叠或直接删除过小的悬挂三角形。

三维建筑物模型剖分和预处理的结果如图2所示。

步骤2,三维建筑物模型约束四面体剖分与四面体数据结构的构建,实现对三维模型的空间的完整表达

步骤2.1三维模型的约束四面体剖分,其过程及结果如图4所示。

对经过几何剖分的不包含面片自相交情况的三维建筑模型进行带有约束的四面体剖分(即cdt,为现有算法,利用开源库实现)。在剖分过程中将经过步骤1处理后的三维模型的面片作为约束进行四面体化,从而使得所有原始三维建筑物模型的几何外形均保留在四面体剖分后的四面体成员面片中。此四面体化算法为现有算法,利用开源库tetmesh2,tetgen3或cgal4中的三维三角化模块实现。在四面体化(即带有约束的四面体剖分)的过程中,需设置参数避免对四面体的细分优化(refinement),并尽量减少插入新增加的steiner点的个数。

步骤2.2四面体数据结构的构建

在构建约束四面体剖分之后,建立点-边-面-四面体的索引数据结构(如图5所示)。在此数据结构中实现对四面体及其相邻四面体,面片及其相邻面片的快速访问,从而支持高效的四面体侵蚀。

在四面体化的过程中,将原始输入的三维模型中存在的面片或经过共面三角化后生成的面片标记为锚三角形,即该类三角形在后续侵蚀过程中始终保持,从而避免对输入三维模型几何形态的修改。将四面体化生成的其他三角形标记为普

______________________

2https://cubit.sandia.gov/

3http://wias-berlin.de/software/tetgen/

4http://www.cgal.org/

通三角形,允许算法对其进行删除等处理。

步骤3,三维建筑物模型的四面体侵蚀与保持方法

方法流程图如图6所示,其中四面体侵蚀和保留示意如图7所示:

在构建约束四面体剖分之后,剖分结果的表面即为原始模型的凸包,成为包络。使用四面体侵蚀方法(是本发明技术方案创新点之一)对包络进行收缩。在此过程中,每次从位于包络上的边界四面体选择一个最优的对象作为侵蚀的候选对象,然后由后续的步骤4测试该候选四面体的侵蚀正确性。如测试通过,则设计侵蚀方法对该候选四面体进行侵蚀,该方法将候选四面体以及其在包络上的三角形进行删除,并将新暴露在包络边界上的四面体标识为表面四面体。如候选四面体的侵蚀正确性测试不通过,则设计四面体保留方法,将该候选四面体的所有成员三角形标注为新增锚三角形。之后重复上述过程,直到三维模型的包络中无法找到候选四面体,则方法终止。

步骤4,侵蚀启发式策略与侵蚀正确性约束

为保证四面体侵蚀能够实现三维建筑物模型的自动修复,需要设计相应的侵蚀策略以及保证每一步侵蚀的正确性。因此分别提出了启发式的侵蚀算法和侵蚀过程中的拓扑和几何的正确性约束(是本发明技术方案创新点之一)。

步骤4.1侵蚀启发式策略

启发式的侵蚀算法通过对三维模型候选四面体的侵蚀特性(自由度,包络面积)的评价,进行由高到低的排序从而获得优化的侵蚀顺序。其中,

自由度定义为候选四面体的4个成员三角形中位于包络中的三角形的个数(最大为3,最小为1)。

包络面积被定义为候选四面体中位于包络中的三角形的面积之和。

然后将所有位于包络上的四面体根据先按照包络面积,后按照自由度进行自大到小的排序。

从而选择出候选四面体。

步骤4.2侵蚀拓扑正确性约束

拓扑正确性约束包括:

1)面的拓扑正确性,即不能在侵蚀后出现悬挂面(邻接面个数小于3);

2)边的拓扑正确性,即不能在侵蚀后出现非二维流形的边(被超过2个位于包络中的面共享);

3)顶点的拓扑正确性,即不能在侵蚀后出现非二维流形的顶点(被两个不连续的包络表面共享)。

其具体实现方法为:

步骤4.2.1,对候选四面体中的成员锚三角形进行测试:如存在一个锚三角形仅与该候选四面体关联,那么在侵蚀后该锚三角形必为悬挂面。因此拓扑测试失败,对当前候选四面体进行保留(图8)。

步骤4.2.2,对候选四面体中位于包络表面,但非关联于包络表面三角形的成员边进行测试,该测试需遍历该边所关联的所有四面体:如该边与两个不相邻的包含锚三角形的四面体关联,则侵蚀候选四面体将导致该边成为非流形边,则此时对该四面体进行保留(图9)。

步骤4.2.3,对候选四面体中位于包络表面,但非关联于包络表面三角形的成员顶点进行测试,该测试需要遍历该顶点所关联的所有四面体,如从当前四面体出发无法找到一条不跨越锚三角形的连续的侵蚀操作,到达该点所关联的包络上的三角形,则侵蚀候选四面体将导致该顶点成为非流形顶点。则此时对该四面体进行保留(图10)。

步骤4.3,侵蚀几何正确性约束

几何正确性包括:

1)侵蚀过程中需要对模型表面的洞进行修复;

2)侵蚀过程中需要保证三角形的形态良好,即对退化或狭长的三角形进行合并或局部重三角化处理。

其具体实现方法为:

步骤4.3.1,在侵蚀过程中,对候选四面体表面三角形的共面邻接三角形进行搜索,如发现共面三角形中包含洞,即由共面的锚三角形包围的共面普通三角形,则将这些普通三角形标注为新增锚三角形。

步骤4.3.2,在侵蚀过程中,如果发现病态的三角形,则对其局部进行优化,方法如步骤1.3。

步骤5,实现对侵蚀结果四面体的边界提取以及对语义信息的保持和修复

步骤5.1,三维模型修复结果边界提取

经过序列四面体侵蚀,当无法找到候选四面体时,修复算法停止。此时,对剩余四面体模型的外边界进行提取,从而生成修复之后的三维建筑物模型表面几何。基于本方法所建立的四面体数据结构,可以从包络中任意三角形出发,递归遍历邻接包络三角形,从而实现对修复结果模型的提取。

步骤5.2,三维建筑物模型语义信息的保存与修复

在整个修复过程中,输入三维建筑物模型表面中所指向的语义信息被保存。其保存方法为在锚三角形中设置语义信息指针,在修复过程中,如对候选四面体进行保留。则利用邻接锚三角形的语义信息、法线朝向和面积等对新增锚三角形的语义信息进行推断,其中

利用邻接锚三角形的语义信息推断如图11所示,其中语义信息用不同颜色表示,遵循面积最大原则。(属于本领域常规技术,非本发明首次提出)

利用法线朝向进行语义信息推断如图12所示,根据法线的角度对缺少邻接锚三角形的表面语义信息进行推断。(属于本领域常规技术,非本发明首次提出)

创新点:

1、鲁棒的三维建筑物模型自动修复方法

2、利用启发式算法和拓扑约束具有较高的自动修复率

3、支持对几何、拓扑和语义统一的错误修复。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1