龙空技术网

探究如何采用构建三角网实现自动提取建筑物屋脊线

小杨臻选零食铺 211

前言:

现在我们对“三角网的构造原理”大致比较注重,咱们都需要分析一些“三角网的构造原理”的相关文章。那么小编同时在网络上网罗了一些对于“三角网的构造原理””的相关文章,希望姐妹们能喜欢,各位老铁们快快来学习一下吧!

摘要:针对大比例尺地形图中建筑物面数据自动拉伸为三维模型时,无法体现屋脊特征的问题,提出了通过对建筑物轮廓进行特征分析,自动识别直线形、L形、U形等特殊形状,过滤建筑物凸窗等细小特征,采用构建三角网实现自动提取建筑物屋脊线的算法。算法可对单坡、双坡、四坡、四角攒顶等屋脊类型加以区分,根据提取后的屋脊线,可通过SuperMap等GIS平台,自动将建筑物矢量面自动拉伸为表现细节的三维模型。

关键词: 三维模型 三角网 屋脊线 建筑物轮廓 测绘学

近年来,以实景三维的形式还原城市面貌在城市规划、城市管理中愈加重要。三维建模的方法一般是以3DsMax建模为代表的传统正向建模和以倾斜摄影为代表的逆向建模两种方法,两种建模方式都需要投入一定的人力、物力,且对建模人员的技术水平要求较高。对于纹理要求不高的建模需求,可通过SuperMap、ArcGIS等GIS平台将二维矢量拉伸成三维模型的方法,将城市大比例尺地形图中的建筑物面要素快速生成平面位置精度高的三维模型,便捷高效地构建城市三维景观。这种方式能够反映建筑物的空间位置、高度等信息,却无法体现屋脊线等重要特征,无法有效地应用于建筑物屋顶修缮管理、房屋改造、建筑物景观设计等工作。

GIS平台提供的矢量拉伸方法一般是基于房屋实际高度,将各个顶点的Z值从基准值向垂直方向拉伸一段距离,生成建筑物白模,再通过建筑物立面贴图,形成建筑物模型。因此,针对有屋脊的房屋,可考虑沿屋脊线分割建筑物轮廓面,设置屋脊线节点的Z值为屋脊到檐口的相对高程,然后再通过拉伸方法生成包含屋脊的建筑物模型。其中的难点就在于如何根据二维轮廓线快速提取各种形状的建筑物屋脊线。

本文对常见房屋类型进行特征分析,研究自动识别直线形和L形、U形等特殊结构建筑类型的方法,并针对不同建筑结构,提出特定建筑类型的屋脊线提取算法,算法对单坡、双坡、四坡、四角攒顶类型的建筑加以区分,并自动计算分割轮廓面,在GIS平台中自动将二维建筑面拉伸为三维模型。经实际检验,算法对于大批量的建筑物屋脊线提取准确率高、速度快、灵活性强,具备应用于大范围的建筑物三维模型场景快速建设的可行性。

1、屋脊类型分析

经过分析建筑的形状结构,本文归纳

了常见建筑物的屋脊线形状和坡面类型,并研究相应建筑物轮廓面的分割方式。

1)不同形状

从轮廓形状上,常见建筑物可分为直线型、L形、U形、T形、回字形等。对应的屋脊线形状如图1所示。其中,直线形建筑屋脊线为矩形长边方向的中心线,L形、U形、T形、回字形建筑屋脊线为主要骨架的中心线,本文主要对L形和U形建筑进行提取分析。

图1屋脊线形状示意图

2)不同坡面

从屋脊坡面上,常见的屋脊可分为单坡、双坡、四坡、四角攒顶等。单坡常见于北方的低矮平房或耳房,双坡常见于小型的居民房屋,四坡多为大型建筑物的屋脊类型,四角攒顶为四坡的特殊形式。不同坡面类型的建筑物,沿屋脊线分割的方式不同。对于没有坡面的方向,可通过屋脊线向内收缩微小距离,形成小的填充面,便于分割拉伸处理。分割方式如图2所示。

图2屋脊线分割示意图

其中:

1)单坡:屋脊线应为坡向方向较高一侧,屋脊线两侧、靠边缘侧向内收缩微小距离d;

2)双坡:屋脊线应位于建筑物中线,屋脊线两侧向内收缩微小距离d;

3)四坡:屋脊线应位于建筑物中线,两侧收缩一定距离r,该距离可作为已知条件;

4)四角攒顶:屋脊线应为建筑物中心点向四个角点的连线。

2、算法设计

建筑物轮廓面的原始数据通常描述几何特征的信息较少,因此需要通过算法分析建筑物形状特征,快速识别出直线型和其他类型,直线型采用基于最小外接矩形中心线的方法快速提取屋脊线,其他类型具有多种形式,但其基础算法却大同小异[1],可采用构建三角网中线链的方法提取屋脊线。最小外接矩形的方式速度快,但是只适用于直线型;构建三角网方式准确率高,适用于所有类型。屋脊线提取后,可确定轮廓面分割角点,再根据坡向类型分割轮廓面。算法设计流程如图3所示。

图3算法流程图

2.1去除冗余节点

由于获取建筑物轮廓面的途径众多,数据质量参差不齐,最为突出的问题就是存在节点重复或线段内部的节点冗余。这些冗余节点一方面会影响算法效率;另一方面冗余节点会导致构建三角网等算法出现误差,影响计算结果。冗余节点主要包括两种,一是重复节点,可通过设置轮廓线相邻节点距离容差,来判定是否为重复节点;二是线段内部冗余节点,可通过设置相邻两条线段的夹角的角度容差,来判定是否为线段内部的冗余节点。

2.2自动判定建筑物形状

判定过程主要是区分直线型和其他形状的建筑物,以便后续采用不同的提取方法,提高计算速度和准确率。本文提出一种根据最小外接矩形和面节点关系的判定方法。首先,计算建筑物面的外接凸多边形,然后,采用对凸多边形的旋转卡壳算法计算多边形的最小外接矩形P,并提取最小外接矩形的中心点坐标c(x,y)。

建筑物轮廓面一般会包含凸窗等细节特征,因此,直线型建筑的最小外接矩形面积通常稍大于实际面积,其余形状的外接矩形面积比实际面积大得多,因此,可设定外接矩形面积和实际面积之差的面积阈值Ta,作为判定条件之一,算法中Ta取实际面积的一半。可计算轮廓线节点到最小外接矩形的最大距离,设定距离阈值Tl,直线型节点到最小外接矩形的距离一般比较均匀,且距离较小,其他类型房屋存在距离较远的节点,因此超出阈值则判定为L形、U形、T形等特殊型房屋,算法中Tl取最小外接矩形短边的一半。此外,可将c(x,y)是否位于轮廓面内部作为判定是否为U形、回字形建筑的依据之一。通过上述三个判定条件,可以识别绝大部分的房屋形状。

2.3基于最小外接矩形的提取方法

直线型房屋将最小外接矩形长边方向默认为屋脊线方向,若有坡面朝向角度的,可根据角度值确定屋脊线方向。提取最小外接矩形P平行于屋脊线方向的中心线,根据建筑物坡面类型,收缩平移中心线后,形成直线型房屋的屋脊线,并将建筑物的屋脊相对高度设置屋脊线节点的Z值。分别计算距离最小外接矩形四个角点最近的轮廓面节点,作为直线型建筑物的四个分割角点。

2.4构建三角网的提取方法

经分析屋脊线特征,本文提出根据三角网最长中线链,获取L形、U形建筑屋脊线的方法。首先,将去除冗余节点的建筑物轮廓面构建Delaunay三角网[2],其次,选取顶点序号连续的三角形作为轮廓面外围的种子三角形,选择任一外围三角形,分别以其两条外边线为起算边线,通过递归算法,计算所有相邻三角形的中线链,经遍历所有外围三角形,选取最长的中线链作为该建筑物的最长中心线。根据建筑物坡面类型,收缩中心线后,形成该房屋的屋脊线,并将建筑物的屋脊相对高度设置屋脊线节点的Z值。提取轮廓线上与最长中心线两端相交的线段,将这两个线段的两个端点作为该建筑物的四个分割角点。

2.5分割轮廓面

算法根据提取的屋脊线和4个分割角点对轮廓面进行分割。其中,位于屋脊线同侧的两个角点与屋脊线构成近似于等腰梯形的分割面,位于屋脊线两侧的两个角点与最近的一个屋脊线端点构成近似于等边三角形的分割面。四角攒顶的建筑可将轮廓面的质心作为建筑物中心点,采用最小外接矩形的方法确定4个分割角点,由此分割轮廓面。

3、验证分析

本文通过GIS开发接口,实现了该算法的全部流程,以某县市主城区大比例尺建筑物轮廓面为实验对象,进行算法验证。该区域共计带屋脊房屋15105栋建筑物,其中建筑物包含低矮平房、篷房、居民地住宅楼、政府办公楼、商服建筑等,形状包含矩形、直线形、L形、U形、T形以及其他特殊形状,屋脊坡面包括平顶、单坡、双坡,四坡,四角攒顶等,实验数据覆盖类型多,数据量大,具备很强的代表性。所有建筑物轮廓面均参与运算,计算过程共计25min,实验结果如图4所示。

图4实验结果示意图(局部)

实验结果表明,算法对于直线型与其他类型建筑判断准确,能够过滤包含凸窗等建筑物细节特征,并且针对直线型、L形、U形甚至特殊型房屋的屋脊线提取准确率高。算法运算效率可观,提取的屋脊线能够在三维场景中更为精细、准确地反映建筑物实际形状特征,今后,该算法可广泛应用于大批量建筑模型三维场景建设工作。

实验结果也反映出了对于T形或极特殊结构的建筑,算法提取了主要结构的屋脊线特征,并未提取分支或附属建筑的屋脊特征,若建筑附带的凸窗等分布不均,会影响根据最小外接矩形算法提取中心线的位置。下一步工作中,算法会对这两个问题着重进行改进和完善。

4、结束语

目前,大多数城市都已经通过大比例尺测图等手段获取建筑物矢量数据,为建设城市三维平台奠定了良好基础。如何在快速搭建三维平台时,高精度、全自动、逼真地生成建筑物的三维模型,还原建筑物细节一直是研究的重点和难点[3]。本文在对屋脊线特征进行详细分析后,提出了基于建筑轮廓快速提取屋脊线的算法,并通过实际数据的验证,算法预期效果良好,提取的屋脊线位置准确,特征明显,并且可将轮廓面数据和屋脊线相结合,应用于建筑物点云数据分割、倾斜三维模型重建等领域[4]。

标签: #三角网的构造原理 #三维点云模型怎么提取轮廓线