北京大学学报(自然科学版)  2017 , 53 (1): 1-7 https://doi.org/10.13209/j.0479-8023.2016.111

Orginal Article

一种基于特征的复杂平房顶建筑化简算法

葛磊123, 武芳1, 李建胜13, 马智刚13

1. 信息工程大学, 郑州 450001
2. 地理信息工程国家重点实验室, 西安 710054
3. 北斗导航应用技术 河南省协同创新中心, 郑州 450001

A Feature Analysis Approach in Simplification of 3D Building with Complex Flat Roof

Lei GE123, Fang WU1, Jiansheng LI13, Zhigang MA13

1. Information Engineering University, Zhengzhou 450001
2. State Key Laboratory of Geo-information Engineering, Xi’an 710054;
3. Henan Collaborative Innovation Center on Application Technology of BDS, Zhengzhou 450001

中图分类号:  P208

通讯作者:  通讯作者:† E-mail: chxy_gray@163.com

Corresponding authors:  Corresponding:† E-mail: chxy_gray@163.com

收稿日期: 2015-09-8

修回日期:  2016-03-28

网络出版日期:  2016-12-26

版权声明:  2017 北京大学 

基金资助:  国家自然科学基金(41301524, 41471386)和地理信息工程国家重点实验室开放研究基金(SKLGIE2014-M-4-7)资助

展开

摘要

基于特征分析的方法, 对复杂平房顶建筑的综合算法进行研究, 将建筑特征分为双边特征、三边特征和部件特征三类。根据各类特征的特点, 设计具体的化简算子, 在分析各算子之间关系的基础上, 设计化简算法的一般流程。以两类典型建筑和建筑群为基础, 对所提出的算法进行实验验证, 当采用不同阈值进行化简时, 建筑的主要特征均保持良好, 综合结果合理, 算法效率较高。

关键词: 三维建筑 ; 综合 ; 化简 ; 特征分析 ; 多细节层次

Abstract

A new generalization approach based on feature analysis method is proposed to deal with buildings with complex flat roof. This approach divides features of building roof into three types, which are two-edge feature, three edge feature and component feature. Simplification algorithms are developed to deal with different feature types. By analyzing the relationship of the three algorithms, a detailed process to simplify complex flat roof is developed. The approach is implemented and tested on a number of 3D buildings. Two typical buildings and a building cluster are simplified by the proposed algorithm under different threshold. The experiment results show that the 3D building can be efficiently generalized, while the characteristics of roof structure can be well preserved after simplification.

Keywords: 3D building ; generalization ; simplification ; feature analysis ; LOD

0

PDF (1156KB) 元数据 多维度评价 相关文章 收藏文章

本文引用格式 导出 EndNote Ris Bibtex

葛磊, 武芳, 李建胜, 马智刚. 一种基于特征的复杂平房顶建筑化简算法[J]. 北京大学学报(自然科学版), 2017, 53(1): 1-7 https://doi.org/10.13209/j.0479-8023.2016.111

Lei GE, Fang WU, Jiansheng LI, Zhigang MA. A Feature Analysis Approach in Simplification of 3D Building with Complex Flat Roof[J]. Acta Scientiarum Naturalium Universitatis Pekinensis, 2017, 53(1): 1-7 https://doi.org/10.13209/j.0479-8023.2016.111

建筑物是三维城市中最为重要的地物类型, 造型丰富、数量庞大, 且最能够反映城市特点, 是人们认知城市最重要的依据。从应用角度看, 如何快速获取三维建筑多尺度模型以满足不同的应用需求, 已经成为一个迫切需要解决的问题。CityGML设计了 5 个细节层次的三维建筑模型[1], 根据建筑的具体特点, 通过综合的方法, 由高细节层次的模型生成低细节层次模型成为获得多尺度三维建筑模型的重要手段。

当前对于三维建筑综合的研究主要以消除建筑细节特征为目标。Mayer[2]和 Forberg[3]基于数学形态学的方法, 对三维建筑特征进行化简, 但是该方法仅能处理平行结构特征。Thiemann 等[4]提出一种基于面分割的三维建筑化简方法, 该方法能够扩展到建筑语义模型综合, 具有较强的实用性, 但其分割过程需要大量几何运算, 效率不高; Kada[5-6]提出一种基于单元分解的方法, 提取和化简建筑特征, 该方法处理规则结构建筑的效果理想, 但无法很好地保留建筑的非正交特征。Fan 等[7-8]提出一种基于边长和角度对建筑轮廓特征进行分类的方法, 该方法能够处理大多数建筑底面特征, 但处理过程较为复杂。Zhao 等[9]提出一种基于数学形态学的复杂三维建筑化简方法, 该方法能够保持不同 LOD模型之间几何形态、拓扑关系和语义信息的一致性。Xie 等[10]研究了三维建筑的化简和聚合方法, 并以此为基础实现三维城市多尺度可视化。Mao 等[11]研究CityGML 中建筑群的综合方法,并设计了一种数据结构CityTree用于综合后建筑的管理与可视化。

针对当前三维建筑特征提取和化简中存在问题, 本文提出一种新的建筑特征化简方法, 以期能有效处理复杂平房顶建筑的所有特征, 同时保持建筑的主体特征。

1 复杂平房顶建筑特征分类

基于特征的化简方法广泛应用于二维地图线要素化简中, 其特征的表达大多采用弯曲的概念, 大部分方法(如 Douglas-Peucker 算法)是根据两相邻线段之间的几何关系进行化简, 化简的处理方法往往使用两侧顶点的连线直接化简一个弯曲, 这种化简方法没有顾及建筑房顶的形态特征, 因此难以用于处理复杂平面房顶轮廓。

对于平房顶建筑, 其房顶轮廓并不完全由一系列正交线段组成, 部分结构特殊的建筑, 其主轮廓并非正交结构, 且房顶往往包含多种不同形态。如图 1 所示, 该建筑房顶结构由多种类型的特征组成, 对这些特征进行有效提取是化简房顶轮廓的基础。边界线段的长度及其与邻近线段之间的关系是在划分特征类型时需着重考虑的因素。本文考虑到平面房顶的具体特点, 将特征的形式化表达用于描述房顶几何结构的细节形态, 根据特征所包含线段数量的不同, 将建筑边界轮廓特征分为双边特征和三边特征两种。

图1   具有复杂特征的平房顶建筑

Fig. 1   Building with complex flat roof

双边特征指由边界轮廓上两相邻线段所构成的几何特征。描述双边特征的参数包括: 两线段的长度(l1,l2)、线段之间的夹角(θ)和两线段所构成的三角面面积(A)等。三边特征指由边界轮廓上 3 条相邻线段所构成的特征, 其描述参数包括: 3 条线段的长度(lf, ls, lt)、两侧线段与中间线段之间的角度(θ1, θ2)等。其中, 两相邻线段之间形成的角度专指位于多边形内侧的夹角。对于由 n 个顶点所构成的房顶轮廓, 其双边特征和三边特征的数目均为n

由多个部分组成的建筑, 若某部分的底面投影包含于(或近似包含于)建筑主体部分的投影内, 则将该部分作为特征看待, 称为部件特征。对于构成复杂建筑房顶的平面 A, 若存在另一面 B 的底面投影面积80%以上位于 A 内, 且 A 的底面投影面积位于其他面投影内的部分不超过 20%, 则称面 A 为主体轮廓, BA 的部件特征。部件特征使用几何面表示, 其描述参数有: 面的几何轮廓、面积和与主房顶之间的高差等。图 2 是三类特征的具体示例。

图2   复杂平房顶建筑的三类特征

Fig. 2   Three feature types of building with complex flat roof

2 复杂平房顶建筑的化简

2.1 三边特征的化简

对于三边特征, 中间线段的长度决定是否对其进行化简, 相邻线段之间的关系决定化简的具体方式。设构成三边特征的3条线段为(Lf, Ls, Lt), 则根据LfLt之间的角度可分为以下情形: 1) 两线段近似平行且方向相同; 2) 两线段近似平行且方向相反; 3) 两线段不平行。

三边特征的化简方法为: 对于三边特征(Lf, Ls, Lt), 构成特征的 4 个顶点分别为 P0, P1, P2 P3, 当 ls< t (t 为三边特征长度阈值)时, 设 Lf Lt 方向的单位向量分别为 VfVt, 若Vf · Vt >$\cos {{\theta }_{1}}$(θ1 为平行判断阈值), 执行算子1; 若Vf · Vt <$-\cos {{\theta }_{1}}$, 执行算子2; 否则执行算子3。

算子 1 若${{l}_{\text{f}}}>{{l}_{\text{t}}}$, 则令vec=P1-P2, P2=P1, P3= P3+vec, 删除 P1; 若${{l}_{\text{f}}}<{{l}_{\text{t}}}$, 则令 vec=P2-P1, P0= P0+vec, P1=P2, 删除 P2; 若 lf = lt, 则令 vec= (P2- P1)/2, P0=P0+vec, P1=P1+vec, P2=P2-vec, P3= P3-vec。

算子 2 若${{l}_{\text{f}}}\ge {{l}_{\text{t}}}$, 则令 vec $=$ P3-P2, P2=P3, P1= P1+vec, 删除 P3, 若${{l}_{\text{f}}}<{{l}_{\text{t}}}$, 则令vec=P0-P1, P1=P0, P2=P2+vec, 删除P0

算子 3 计算线段LfLt所在直线的交点 P, 删除P1P2, 将点P插入P0P3之间。

2.2 双边特征的化简

对于双边特征而言, 满足以下两条件之一时可进行化简: 1) 两线段之间的夹角小于某一阈值或接近 180°; 2) 两线段所构成的三角面面积小于一定阈值。也可以在两条件同时满足的情形下, 对双边特征进行化简。本文对双边特征的化简以条件 1 为 基础。

双边特征的化简通过删除两条线段相接点的方式即可实现, 处理方式类似 Douglas-Peucker 算法。由于化简三边特征时会产生满足化简条件的双边特征, 因此双边特征在三边特征化简的基础上进行处理。

2.3 部件特征的化简

2.3.1 化简的基本条件

部件特征具有双重特点: 作为多边形结构, 可以根据双边和三边特征对其轮廓进行化简; 作为特征, 需要根据其与建筑主体及其他部件特征之间的关系进行处理。满足以下条件时, 可对部件特征进行相应处理: 1) 部件特征面积小于某一阈值时, 删除部件; 2) 部件特征轮廓形态满足双边特征或三边特征的化简条件时, 化简部件轮廓; 3) 部件特征与主体轮廓之间的平均高程差小于某一阈值时, 删除部件; 4) 部件特征与主体轮廓之间或者不同部件之间存在相交时, 调整部件特征边界; 5) 部件特征与主体轮廓线段之间的距离小于某一阈值且线段之间的角度在一定范围内, 调整部件特征边界; 6) 部件特征之间的平均高程差小于给定阈值且二者空间邻近时, 合并特征。

图3   三边特征化简的三类算子

Fig. 3   Three operators in simplification of three-edge feature

2.3.2 化简中的主要概念和算子

1) 入点和出点。

当两特征相接或相交时, 需在判断其入点和出点的基础上进行处理。入点和出点是多边形裁剪中的重要概念, 这里引用刘勇奎等[12]对入点和出点的定义: 设I是多边形 SC 的一个交点, 如果 S 沿着 S 边界的方向在 I 点从 C 的外部进入 C 的内部, 则称IC 的一个入点; 反之, 如果 SI 点从 C的内部出到C的外部, 则称IC的一个出点。C的入点对于 S 而言为出点, 而其出点则是 S 的入点。如图4所示, 设两个逆时针多边形 SC, 其交点分别为I1I2, 则对 S 而言, I1为入点, I2为出点; 对C而言, I1为出点, I2为入点。

图4   多边形的出点和入点

Fig. 4   Enter-point and out-point of polygon

2) 平面合并算子。

对于房顶的两个平面结构, 在满足以下两个条件时可对其进行合并: 两面水平投影之间的空间关系为相交、相接或邻近; 两面的高程之差小于某一阈值。

综合而言, 二维面要素的空间关系需要考虑包含关系、相交关系、相接关系和邻近关系。若两面投影的相交部分在两面中所占的比例均不大, 则认为二者是相交关系; 经过预处理之后, 空间相交关系只存在于建筑各组成部分之间, 不同建筑之间是相离的, 因此对于空间相交关系的处理应属于建筑化简的范畴, 但这里从综合算法设计的角度将其归入合并操作。对于空间相交的两个面, 若满足两面的高程之差小于某一阈值, 直接将其合并; 若不满足, 则调整两面轮廓使其相接。

对于两相交面, 其轮廓调整的基本思想为: 设两面中的较大面为 M0, 另一面为 M, 依次获取 M的出点和入点, 对于 M 的每一对出点 Po 和入点 PI, 将位于 PoPI之间的点删除, 将 M0边界上位于PIPo之间的点逆序添加到 M 边界的 PoPI之间, 并调整其高程; 所有出点和入点处理完毕后, 两面的空间关系变为相接。

由于建筑结构具有规范性, 所以对于规则的建筑对象, 如果两建筑邻近, 则其邻近面大多接近平行。对于两平面房顶, 若其底面投影轮廓存在两条接近平行且距离小于一定阈值的线段, 则认为二者空间邻近。将具有邻近关系的两投影面的边界轮廓调整为相接。

邻近线段的判断方法: 对于分别属于不同房顶轮廓的两线段, 若两线段接近平行, 由任一线段 Si的任一端点 Pr向另一线段 Sj 所在直线作垂线, 设垂足为 Pv, 若满足Pv$\in $Sj且$||\overrightarrow{{{P}_{\text{r}}}{{P}_{\text{v}}}}||<t$, 则认为SiSj为邻近线段。

两邻近面的轮廓调整方法为: 对于面边界上的两邻近线段, 设较长线段为 S0, 另一线段为 S, S 的两相邻线段分别为SpSn, 分别计算Sp, SnS0所在直线的交点PsPe, 使用PsPe分别替换 S 的两端点, 处理所有邻近线段即可实现对面轮廓的调整。

若两房顶平面M1M2相交或者相接, 并且满足条件2, 则可以将其合并, 实现的具体方法分为两步。

步骤1 出点和入点的判断。遍历 M1 上的线段, 对于线段 Si, 判断M2上是否存在与 Si 相交的线段 St, 若存在, 计算其交点 Pi, 若 Pi同时为 SiSt的端点, 即两线段相接, 则 M1M2上必分别存在另一线段 Sj, Sk相接于 Pi, 若 4 条线段中有两条线段部分重合, 判断 Pi是否已使用, 若已使用则进入下一线段。设位于 M1上的重合线段为So, 位于M2上的不重合线段为 Sr, 令 Si=So, St=Sr; 令 C=Vi×Vt (ViVt分别为 SiSt 方向上的单位向量), CxCyCz分别为 C 在 3 个坐标轴方向的分量。若 Cz>0, 则 PiM1的出点、M2的入点; 若${{C}_{z}}<0$, 则PiM1的入点、M2的出点, 将 Pi标记为已使用, 分别添加到SiSt的两端点之间。

步骤2 边界轮廓的合并。从 M1 轮廓的起始点S0开始记录其边界点 Si, 如果 Si为出点, 则由该点进入 M2, 记录 M2的边界点直至遇到第一个出点时进入 M1。重复上述操作直至回到 S0, 记录的新边界即为合并后房顶轮廓。

平面合并算子的实例如图5所示。

图5   房顶平面的合并

Fig. 5   Combination of building roof plane

2.3.3 部件特征化简的实现方法

部件特征自身的特点决定了其化简方法更为复杂。在对部件特征进行化简时, 首先化简特征的几何结构, 然后处理特征与主体轮廓之间的关系, 最后考虑特征之间的关系。部件特征化简的具体步骤 如下。

步骤 1 计算特征面积。若面积小于阈值, 则直接删除该特征; 否则进入步骤2。

步骤 2 获取特征高程hf和主体轮廓高程hm。若 hf -hm<t, 则删除特征; 否则基于三边特征和双边特征对部件特征的轮廓进行化简, 进行步骤3。

步骤 3 若特征轮廓中存在线段与主体轮廓相交, 设两相交线段分别为L1L2, 计算两线段方向单位向量的叉积 C=V1×V2。若 Cz>0, 则该点为特征轮廓的出点; 若 Cz<0, 则该点为特征轮廓的入点。将所有交点添加到特征轮廓线段之间, 对于特征轮廓顶点 Pi, 若 Pi 为出点, 则找出后续顶点中的第一个出点 Pj, 删除特征轮廓中位于 PiPj 之间的所有顶点, 将主体轮廓中位于 PiPj 之间的点依次添加到特征轮廓, 将其高程调整为 hf。依次处理所有出点和入点后进入步骤4。

步骤4 对于特征轮廓和主体轮廓上的线段 SS0, 计算两线段方向单位向量的点积P=V1·V2。若$|P|>\cos {{\theta }_{1}}$, 则两线段近似平行。设 S 两端点 P1P2 S0 所属直线上的垂足分别为 P3 P4, 若$\text{Min}(||\overrightarrow{{{P}_{1}}{{P}_{3}}}||,\ ||\overrightarrow{{{P}_{2}}{{P}_{4}}}||)<t$, 令P1=P3, P2=P4。将建筑全部部件特征按照步骤1~4处理后, 进入步骤5。

步骤 5 根据部件特征之间的关系, 按照2.3.2节所述的平面合并算子进行处理。

2.4 复杂平房顶的化简流程

以三类特征化简的具体算子为基础, 综合考虑三类特征的关系, 对复杂平房顶建筑的房顶结构的化简分为主轮廓化简和部件特征化简两部分。化简的具体流程如图6所示。

图6   基于特征的复杂平房顶建筑化简流程

Fig. 6   Generalization of building with complex flat roof by feature simplification approach

3 实验与结论

本文采用两类具有代表性的真实建筑模型进行实验, 均来源于 CityGML 公开发布的城市建筑模型数据, 建筑模型采用CityGML规范格式, 细节层次为 LOD2。两建筑模型均包含 3 种特征, 在几何结构的复杂度有所差异。模型 1 较为规则, 房顶边界轮廓以垂直几何结构为主, 包含倾斜结构, 部件特征位于房顶主轮廓内。模型 2 房顶平面轮廓较为复杂, 包含角度较大和较小的几何特征, 并包含较为独立的弧形结构, 部件特征与房顶主轮廓部分 相接。

图 7为模型 1 的化简实验。图 7(a)为建筑原始模型; 图7(b)为t =1 时的化简结果, 该过程对部件特征的轮廓进行了调整; 图 7(c)为 t =3 时的化简结果, 其处理过程包括删除部件特征和化简三边、双边特征。

图7   基于房顶特征对模型1进行化简的结果

Fig.7   Simplification of building 1 by feature analysis approach

图8为模型 2 在不同阈值下的化简结果。图8(a)为建筑原始模型; 图 8(b)为 t=2 时的化简结果, 该过程对微小的三边特征和双边特征进行化简; 图8(c)为 t =4 时的化简结果, 部件特征被化简, 平行结构和弧形结构均得到一定程度化简; 图 8(d)为t =10 时的化简结果, 仅建筑对象的主要特征得以保留。

图8   模型2在不同阈值下的化简结果

Fig. 8   Simplification of building 2 under different thresholds

本文算法能够与相关算法相结合, 应用于建筑群综合。图 9 为对某一区域建筑群进行综合的结果, 其中平房顶建筑的化简采用本文算法实现。图9(a)为建筑群原始模型, 所有建筑总面数为 469; 图 9(b)为 t =4 时的综合结果, 综合后面的总数为115, 化简率为 75.5%, 所有建筑的主要特征保持 良好。

图9   某一区域建筑群的综合结果

Fig. 9   Simplification of building cluster

本文提出的复杂平房顶建筑综合方法以特征为基础对建筑进行化简, 综合结果能够较好地保持建筑的主体形态。目前平房顶三维建筑的化简方法主要包括基于形态学的方法[2-3]和基于面分割的方 法[4]两类。其中, 前者只能化简平行结构建筑, 无法处理底面存在倾斜结构的建筑; 后者能够同时对建筑房顶和整体轮廓进行化简, 但需要在三维空间内基于平面对建筑进行分割, 计算量很大, 效率较低。与上述两类方法相比, 本文算法具有一定的优势: 在适用性方面, 本文算法能够化简由不同房顶和底面轮廓构成的所有类型平房顶建筑; 在效率方面, 本文算法在顾及高程信息的基础上采用降维思想进行设计, 降低了空间几何计算的复杂度, 算法的效率较高。

由于本文算法以房顶结构为基础对建筑特征进行划分, 无法化简墙体与地面不垂直的建筑。算法的实现以建筑的分类和识别为基础, 类型识别的错误会对综合结果产生较大影响。因此, 下一步需针对建筑模型空间几何形态的不确定性进行研究, 以提高算法的鲁棒性。

The authors have declared that no competing interests exist.


参考文献

[1] Gröger G, Kolbe T H, Czerwinski A, et al.

OpenGIS ® City Geography Markup Language (CityGML) Encoding Standard

[S/OL]. (2008-08-20)[2015-09- 01].

URL      [本文引用: 1]     

[2] Mayer H.

Three dimensional generalization of buil-dings based on scale-spaces // Technical Report

. München: Technische Universität München, 1998

[本文引用: 2]     

[3] Forberg A.

Generalization of 3D building data based on a scale-space approach

. ISPRS Journal of Photo-grammetry and Remote Sensing, 2007, 62(2): 104-111

[本文引用: 2]     

[4] Thiemann F, Sester M.

Segmentation of buildings for 3D-generalisation // ICA Workshop on Generalization and Multiple Representation

. Leicester, 2004: 1-7

[本文引用: 2]     

[5] Kada M.

Generalization of 3D building models by cell decomposition and primitive instancing // Procee-dings of the joint ISPRS workshop on ‘Visualization and Exploration of Geospatial Data’

. Stuttgart, 2007: 1-8

[本文引用: 1]     

[6] Kada M.

3D building generalisation by roof simpli-fication and typification //ⅩⅩⅢ International Carto-graphical Conference

. Moscow, 2007: 1-12

[本文引用: 1]     

[7] Fan H, Meng L.

Automatic derivation of different levels of detail for 3D buildings modeled by CityGML // Proceedings of the 24th International Cartographic Conference

. Santiago, 2009: 15-22

[本文引用: 1]     

[8] Fan H, Meng L.

A three-step approach of simplifying 3D buildings modeled by CityGML

. International Journal of Geographical Information Science, 2012, 26(6): 1091-1107

[本文引用: 1]     

[9] Zhao J, Zhu Q, Du Z, et al.

Mathematical morphology-based generalization of complex 3D building models incorporating semantic relationships

. ISPRS Journal of Photogrammetry and Remote Sensing, 2012, 68(1): 95-111

[本文引用: 1]     

[10] Xie J, Zhang L, Li J, et al.

Automatic simplification and visualization of 3D urban building models

. International Journal of Applied Earth Observation and Geoinformation, 2012, 18: 222-231

[本文引用: 1]     

[11] Mao B, Ban Y, Harrie L.

A multiple representation data structure for dynamic visualisation of generalised 3D city models

. ISPRS Journal of Photogrammetry and Remote Sensing, 2011, 66(2): 198-208

[本文引用: 1]     

[12] 刘勇奎, 颜叶, 石教英.

一个有效的多边形窗口的线裁剪算法

.计算机学报, 1999, 22(11): 1209-1214

[本文引用: 1]     

/