地球信息科学理论与方法

基于CityGML的明清古建筑三维语义模型扩展及转换研究

  • 张文元 ,
  • 刘润桦 ,
  • 万君璧 ,
  • 谈国新 , *
展开
  • 华中师范大学 国家文化产业研究中心,武汉 430079
*谈国新(1965— ),男,江苏溧阳人,博导,教授,主要从事文化科技融合研究。E-mail:

张文元(1983— ),男,湖北武汉人,博士,副教授,研究方向为文化遗产数字化与三维GIS。E-mail:

收稿日期: 2021-03-16

  要求修回日期: 2021-04-08

  网络出版日期: 2022-04-25

基金资助

国家自然科学基金项目(41801295)

国家文化和旅游科技创新工程项目(2019-008)

九华山地质公园地域文化与地质地貌关系研究(20201176038)

版权

版权所有,未经授权,不得转载、摘编本刊文章,不得使用本刊的版式设计。

3D Semantic Model Extension and Transformation for Ancient Architecture of Ming and Qing Dynasties based on CityGML

  • ZHANG Wenyuan ,
  • LIU Runhua ,
  • WAN Junbi ,
  • TAN Guoxin , *
Expand
  • National Research Center of Cultural Industries, Central China Normal University, Wuhan 430079, China
*TAN Guoxin, E-mail:

Received date: 2021-03-16

  Request revised date: 2021-04-08

  Online published: 2022-04-25

Supported by

National Natural Science Foundation of China(41801295)

National Culture and Tourism Science and Technology Innovation Project(2019-008)

The Relationship Between Local Culture and Geology of Jiuhua Mountain Geology Park(20201176038)

Copyright

Copyright reserved © 2022

摘要

针对现有的大量古建筑三维模型缺乏语义信息,不利于精细化和智能化管理等问题,对城市地理标记语言(City Geography Markup Language, CityGML)定义的建筑物模型进行了语义扩展,提出了一种从古建筑几何模型自动识别语义对象并转化为CityGML扩展模型的方法。首先,总结我国明清古建筑构件的共有特征,并使用CityGML的应用领域扩展机制增加斗拱、梁、柱、台基等古建筑通用对象的几何和语义表达。其次,利用古建筑Mesh模型各面片的法向量、坐标范围等特征和自定义规则提出了一套古建筑屋顶、墙面、立柱、门窗等语义对象自动识别方法。最后,依据CityGML扩展模型设计规范,从识别对象自动构建出几何语义一体化表达的古建筑三维模型。采用2个不同风格的古建筑模型进行语义对象提取和CityGML模型生成实验,使用本文提出的Mesh模型到CityGML LoD3扩展语义模型转换方法能够自动提取屋顶、墙面、台基等9类语义对象,每个Mesh模型能转换并生成400多个包含语义信息的平面多边形,95%以上的面片能正确识别。结果表明本文设计的CityGML扩展模型能够有效支持古建筑模型典型构件的显式语义表达,并且识别规则和转换方法能够支持Mesh模型大多数平面对象的提取,有利于CityGML模型的自动化生成和精细化管理。

本文引用格式

张文元 , 刘润桦 , 万君璧 , 谈国新 . 基于CityGML的明清古建筑三维语义模型扩展及转换研究[J]. 地球信息科学学报, 2022 , 24(2) : 326 -338 . DOI: 10.12082/dqxxkx.2022.210136

Abstract

In recent years, a large amount of 3D building models of Chinese ancient architecture have been created to preserve and protect cultural heritages by different organizations and persons. However, most of these existing 3D models are lack of semantic information, which are predominantly used for 3D visualization, and they cannot meet the requirements of fine management and other intelligent applications. To address this problem, the standard building model defined by City Geography Markup Language (CityGML) is extended based on the features of Chinese ancient architecture. Moreover, a novel 3D semantic modeling approach is proposed to automatically identify semantic surfaces from mesh models and generate extended CityGML model in this paper. Firstly, we summarize the common features of Chinese ancient architecture components in Ming and Qing dynasties. We develop a CityGML extension to explicitly represent the geometric and semantic information of typical components of ancient architectures using CityGML Application Domain Extensions (ADE). Bracket, beam, column, base, and other new objects are added into this designed CityGML building model. Secondly, a model transformation algorithm is proposed to generate extended CityGML building models from mesh models, in which face normal and coordinate range of each triangle face from mesh model are calculated, together with other defined shape and position rules for different components. The algorithm is able to automatically recognize different semantic surfaces from roof, wall, column, and other objects of an ancient building. Thirdly, all these extracted triangular faces are further refined via topological validation and merged into polygon geometries, so as to accurately represent an ancient building according to geometric and semantic principles of CityGML. Two public mesh models of ancient buildings with different construction structures are selected to automatically extract semantic objects and generate corresponding extended CityGML models using the proposed method. Nine kinds of semantic objects such as RoofSurface, WallSurface, and Base are successfully recognized. More than 400 planar polygons with semantic information for each CityGML building model are generated. The percentage of correct face recognition is as high as 95%. Experimental results indicate that the extended CityGML model can effectively support the explicit semantic representation of typical components for ancient architecture. Most of planar faces from these mesh models can be automatically extracted and converted into extended CityGML semantic objects using the explored geometric rules and transformation approach. Therefore, the presented algorithm is beneficial for 3D semantic modeling of Chinese ancient architectures in an automated manner. It is useful for the fine management of ancient building models as well.

1 引言

优秀古建筑是不可再生的历史文化遗产,具有很高的历史、文化、艺术和科技价值。然而,随着时间流逝、自然灾害和人类活动的影响,现存的古建筑不断遭到破坏甚至毁灭。因此,对古建筑的数字化、智能化保护与传承是时代赋予我们的责任与使命[1]。近年来,利用计算机辅助设计、三维激光扫描或数字摄影测量等手段已经构建了大量古建筑三维模型。然而,目前建立的大部分古建筑三维模型偏重数据驱动下的几何模型构建,忽略了建筑物结构的语义信息,这些模型仅限于三维可视化,互操作性差[2],无法满足古建筑文物的科学保护和精细化管理要求,也不利于古建筑三维模型的空间分析、数据共享和交换等深层次应用。尽管有学者尝试利用建筑信息模型(Building Information Model,BIM)技术构建了少量语义丰富的古建筑三维模型[3,4],但是这些模型缺乏空间位置信息,主要用于单个建筑的生命周期管理,缺乏与地理信息系统(Geographic Information System, GIS)标准数据的有效集成,难以实现建筑物与周边环境在三维GIS系统集中统一管理、表达和应用。
在古建筑数字化保护、精细化管理和空间查询分析等应用领域迫切需要一种具备几何、语义、拓扑和外观等多种特征的三维模型标准。城市地理标记语言(City Geography Markup Language,CityGML)的出现为建筑物等城市地理对象在三维GIS系统的广泛应用和共享提供了契机。CityGML是OGC(Open Geospatial Consortium,开放地理空间信息联盟)推出的用于虚拟三维城市模型存储和交换的国际开放标准[5],也是一种表达城市三维对象的通用语义信息模型。目前,世界上许多城市都基于CityGML标准建立了大规模三维城市模型[6],并在城市规划、环境模拟、三维地籍和三维导航等领域进行了应用探索[7]。例如,应申等[8]利用CityGML模型的几何和语义一体化特征,提出了一种自动从CityGML模型构建三维封闭建筑体的方法,可用于三维地籍数据采集。但是,现有的CityGML标准强调城市现代建筑物的几何和语义一体化表达,其语义信息远不及BIM领域的IFC(Industry Foundation Classes,工业基础类)模型标准丰富,还难以直接用于古建筑三维语义建模。
为了实现BIM与GIS领域的信息集成,Berlo等[9]利用CityGML提供的应用领域扩展(Application Domain Extensions, ADE)机制设计了一种名为“GeoBIM”的扩展模型,能够将IFC模型中的围栏、立柱、横梁和楼梯等语义对象显式转换为扩展CityGML模型。在增强BIM与GIS数据交换与集成、满足不同领域应用需求方面,Knoth[10]、Jetlund[11]和翟晓卉[12]等在比较IFC和CityGML模型差异的基础上,通过提取二者的共同特征,分别设计了几种跨领域的建筑信息模型,以提高模型互操作性。为解决GIS在建筑遗产信息管理中的“信息孤岛”问题,石若明等[13]研究建立了传统木结构古建筑构件BIM“族”模型及古建筑BIM模型,实现了古建筑BIM模型在GIS环境共享。Chiabrando等[14]探讨了三维激光点云在建筑遗产信息模型(Built Heritage Information Modelling/Management,简称BHIMM或HBIM)构建方面的技术和实践应用。Li等[15]利用CityGML ADE 机制对中国不同风格的古建筑屋顶进行了语义模型扩展,包括屋脊、屋檐和屋顶雕刻等实体及相关属性的定义,但是并未涉及梁、柱、斗拱等构件语义扩展。万君璧[16]根据中国古建筑的一些共性特征,设计了一种适合古建筑显著构件三维语义建模的CityGML ADE,但并未深入研究这种扩展模型的自动构建方法。
上述这些BIM与GIS集成方法主要针对城市现代建筑,难以实现造型独特、构件繁多的古建筑三维语义建模。为了实现GIS环境下古建筑几何语义一体化建模,本文在抽取明清古建筑构件公共特征的基础上,利用CityGML ADE设计了一种古建筑语义扩展模型。虽然当前已经建立了大量古建筑三维几何模型,但是从几何模型直接生成CityGML模型的研究较少,为了充分发挥这些数据的价值,本文提出一种古建筑几何模型(Mesh Model)到CityGML扩展模型的自动转换方法。本方法能够从Mesh模型快速提取平面特征,并依据相关规则自动识别语义对象,最终建立几何、语义和拓扑一体化表达的古建筑CityGML模型,有利于古建筑的数字化保护和精细化部件管理等深层次应用。

2 基于CityGML ADE的古建筑语义模型设计

2.1 CityGML ADE机制

CityGML不仅考虑了建筑物模型的几何、语义和拓扑表达的一致性,而且提供了由简到繁的多细节层次(Level of Detail,LoD)表达,其5级LoD定义如图1所示[17]。其中,LoD 0表达建筑物的底面或屋顶二维平面;LoD 1用块状简单表示建筑物三维模型;LoD 2在LoD 1的基础上加入了对屋顶和房屋附属结构的描述;LoD 3描述建筑物的详细外表结构,包括门、窗和阳台等;LoD 4主要针对建筑物内部实体的表达,包括楼梯、房间和家具等对象建模,具有最详细的几何和语义信息。
图1 CityGML 建筑物多细节层次表达

Fig. 1 A CityGML building model in multiple levels of detail

CityGML 虽然将建筑物划分为一系列基础对象,并通过5级 LoDs 进行多尺度表达,但是现有的对象划分粒度还不能完全满足古建筑语义表达需求,尤其是屋顶、斗拱、立柱和梁架等具有中国古典建筑特色的构件在CityGML中没有显式的定义和语义描述。因此,在针对古建筑室内外多粒度对象统一表达的全面性和复杂性基础上,有必要对标准CityGML进行扩展。
CityGML提供了良好的ADE机制,许多学者利用这种灵活的ADE机制在能源估计、噪音分析、管线设施网络分析等应用领域进行了扩展研究[18]。当ADE需要对已有CityGML特征类型添加额外属性时,将应用的特定信息模式按照CityGML定义结构进行组织,并按照一定规则验证扩展文件的有效性,即可实现同一领域中不同应用系统之间的语义和语法互操作[5]。CityGML使用统一建模语言(Unified Modeling Language, UML)来描述建筑物模型的具体结构,定义了 RoofSurface、 GroundSurface、 WallSurface、 Door、 Window、 Room、 BuildingInstallation、BuildingFurniture(室内家具)等多个语义对象。当现有的这些语义对象和属性无法满足需求时,既可以基于标准类派生新的要素(Feature)类型及属性,又可以采用CityGML的泛型扩展机制(Generic Extensions)来表达CityGML中没有匹配的要素类和属性。

2.2 古建筑CityGML 扩展实体定义

针对古建筑数字化保护领域进行扩展,首先需要对不同类型和风格的明清古建筑进行总结分析,提取古建筑构件的公共特征,并以此为依据确定需要扩展的语义实体。其次,根据CityGML建筑物模型的特点,确定构件所蕴含的语义信息、几何关系以及在不同尺度上表达的精度要求。最后,利用CityGML提供的ADE机制,针对古建筑语义、几何、拓扑及外观4个方面进行扩展,形成一种新的基于CityGML的古建筑多尺度语义表达模型。
依据古建筑特点和三维语义建模需求,在对CityGML建筑物模型进行扩展时,需要从2个方面进行操作。① 定义古建筑构件实体类。根据古建筑文物数字化保护需求,先确定哪些对象需要定义明确的类别和属性。② 确定古建筑构件实体LoD层级。依据古建筑多尺度表达的精度要求,确定新增实体在哪个LoD层级下、用什么几何类型来表达。
通过对我国不同风格的明清古建筑进行归纳抽象后,本文将其主要构件分为10类:屋顶、台基、门、窗、柱、梁、斗拱、栏杆、楼梯、装饰。除门、窗和屋顶外,其他7类构件在CityGML标准建筑物模型中均无对应的语义实体,需要进行扩展,本文设计的古建筑CityGML扩展语义实体及几何类型见表1
表1 古建筑构件扩展语义实体及相关属性

Tab. 1 Extended semantic entities and attributes of ancient architecture's components

语义实体 描述 几何类型 示例
Base
(台基)
高出地面的建筑物底座,用以承托建筑物,并使其防潮、防腐 lod2Solid
lod3MultiSurface
Column(柱) 垂直受力构件,包括:檐柱、金柱、中柱、山柱、童柱、角柱、雷公柱、瓜柱、廊柱 lod3MultiSurface
lod4MultiSurface
Beam
(梁)
建筑中的水平受力构件,常支承于二柱顶端或其他梁枋上,以形成屋脊 lod4MultiSurface
Bracket
(斗拱)
中国古代建筑特有构件,方形木块叫斗,弓形短木叫拱,斜置长木叫昂,总称斗拱 lod3Geometry
lod4Geometry
Railing
(栏杆)
用木料、石、砖、琉璃等不同材料所制成的栏杆等,主要由望柱、寻杖和栏板组成 lod3Geometry
lod3MultiSurface
Stair
(楼梯)
用于楼层与楼层或不同高度空间交通连接的垂直构件,多在大门前和室内 lod3MultiSurface
lod4MultiSurface
Ornament
(装饰)
包括屋顶装饰、门窗装饰、台基装饰、天花板装饰和木柱装饰等几类。在手法上分为雕刻、彩画、匾牌、楹联等 lod3MultiSurface
lod4MultiSurface
依据精度要求,可在LoD2或LoD3层级对古建筑台基进行定义,并为其添加类型、材质、面积、高度和修缮信息等属性。在LoD2中采用lod2Solid进行简化表达,在LoD3层次则使用lod3MultiSurface进行精细化表达,包括台基表面和围栏等细节要素。立柱可分为内柱和外柱,作为建筑外部承重结构的柱子定义在LoD3层级中,用lod3MultiSurface表示;作为室内承重的立柱定义在LoD4层级,用lod4MultiSurface表示。此外,再增加立柱类型、用途、材质、直径、高度等属性。梁是我国古建筑内部重要的承重结构,由于标准CityGML模型中只有IntBuildingInstallation与BuildingFurniture两个描述室内结构的较为抽象的语义对象,要对古建筑室内重要构件显式表达,就需要定义新的特征类Beam,同时添加类型、长度、高度、装饰等属性。斗拱是中国古建筑特有的支撑构件,几何结构复杂,位于古建筑外部的斗拱定义为lod3Geometry,而内部承重的斗拱则用lod4Geometry表示。栏杆作为建筑物外部附属设施,用lod3Geometry或lod3MultiSurface表示。楼梯分为室外阶梯和室内楼梯,古建筑外部楼梯或台阶定义在LoD3层级,用lod3MultiSurface表示;作为室内上下楼层连接的楼梯定义在LoD4层级,用lod4MultiSurface表示。装饰是中国古建筑艺术的重要表现形式,以木雕、石雕和砖雕等用料为主,包括泥塑、彩塑、壁画和彩画等多种形式,同样依据装饰在建筑外部或内部,分别用lod3MultiSurface或lod4MultiSurface来表达。屋顶、门、窗3类构件虽然在CityGML中已有实体定义,但可以对其扩展属性。例如,屋顶可增加庑殿顶、歇山顶、悬山顶、硬山顶、攒尖顶等类型;门和窗可添加宽(width)、高(height)等几何属性。

2.3 古建筑CityGML扩展模型设计

针对表1设计的扩展实体类型和相关属性,本文采用UML工具对CityGML 2.0 定义的Building XML Schema文件进行扩充,定义新的实体和属性,并标注新增实体与其他标准实体类的聚合、泛化 和关联等关系,最终形成一个新的扩展模型文件 (*.xsd)。基于UML的古建筑CityGML扩展语义模型逻辑结构如图2所示。
图2 基于CityGML拓展的古建筑语义模型UML图

Fig. 2 Designed UML diagram of ancient architecture based on CityGML ADE

针对图2的逻辑设计,其物理设计的具体思路为:
(1)在CityGML扩展文件头部导入gml 3.1.1模块下的gml.xsd、CityGML 2.0.0 模块下的cityGMLBase.xsd和building.xsd等命名空间。
(2)定义一个古建筑构件基类(TCAElement),利用每个CityGML要素类在其XML模式定义中都具有形式为_GenericApplicationPropertyOf <Featuretypename>属性的钩子原理将TCAElement与建筑物核心要素类_AbstractBuilding相关联,形成聚合关系(aggregation)。然后为TCAElement定义类别(class)、功能(function)、用途(usage)和维护信息(maintainInfo)等基本属性。
(3)7个古建筑基础构件类Base、Stair、Column、Beam、Railing、Bracket、Ornament定义为TCAElement的子类,在继承TCAElement功能的基础上每个类再定义各自的属性,如高度、长度、材质、类型等,与TCAElement形成泛化关系(generalization)。其中,这7个新增语义实体对象的类型(type)属性再通过枚举类(enumeration)展开,如为Railing扩展枚举属性RailingType,依据建造材质分为:石质围栏(StoneRailing)、木制围栏(WoodRailing)、砖制围栏(BrickRailing)和琉璃围栏(GlassRailing)等。上述定义的这些类在xsd文件中均表示为复合元素(complexType)。其中,构件类通过XML Schema的extension标签实现继承之后的属性扩展,属性定义为简单元素(simpleType),用enumeration标签枚举各个类型。

3 基于CityGML扩展模型的古建筑 语义建模方法

在古建筑数字化保护方面,近年来相关部门利用各种计算机辅助设计或三维建模软件构建了大量古建筑三维模型,用于古建筑三维仿真和虚拟旅游等。这些三维模型通常以三角格网(Triangle Mesh)或多边形格网(Polygon Mesh)形式表达,只有几何特征,缺乏语义信息,仅用于三维可视化。本文提出的一种从古建筑纯几何模型到CityGML扩展语义模型的自动建模方法实现了几何和语义一体化建模。其技术路线如图3所示,包含几何模型面片法向量计算、基于特征和规则的语义对象识别、语义平面对象后处理和CityGML模型构建等关键步骤。
图3 古建筑CityGML模型构建流程

Fig. 3 Workflow for generating CityGML model of ancient architecture

3.1 几何模型面片法向量计算

当前已经建立的各种古建筑三维几何模型由于使用的建模软件不同,可能存在多种不同格式(OBJ,PLY,3DS,COLLADA(*.dae),SketchUp(*.skp),FBX, X3D等),其中,有些文件为二进制格式,有些为文本格式。为了便于后续程序的读写和处理,首先利用MeshLab等开源软件将不同格式的古建筑模型统一转换为PLY格式。PLY文件由文件头和元素列表组成。其中,文件头中以行为单位描述文件类型、格式与版本、元素类型、元素属性等;元素列表依次记录各个元素的属性数据,包括顶点索引和坐标,面要素的顶点索引等。PLY文件结构非常便于提取模型各平面的几何属性。
对于普通建筑物,存在大量平面特征信息。依据PLY文件中存储的平面顶点索引可以获取平面上各个顶点的坐标数据,基于每个面片3个及以上顶点的三维坐标便可通过奇异值分解(Singular Value Decomposition, SVD)求解出该平面的法向量和面片到原点的距离。

3.2 基于规则的Mesh模型语义对象识别

三维模型中不同平面对象的几何特征和拓扑关系是进行建筑物语义信息提取的基础。获取模型中各个面片的顶点坐标和平面系数等信息后,基于一定的判别规则可以初步确定各个面片所属的语义类别。针对明清古建筑物几何模型的转换,本文目标是对其外部语义对象进行提取并生成CityGML LoD3模型,主要涉及的语义对象包括屋顶、墙面、地面、围栏、门、窗、柱、台基和楼梯等。从古建筑PLY模型识别这些语义对象的流程如图4所示。
图4 古建筑语义对象识别流程

Fig. 4 Workflow of semantic object recognition for ancient architectures

首先,计算每个面片的法向量 n 与垂直方向(Z 001 T)的夹角 θ( 0 ° θ < 180 °),每个面片上各顶点坐标在Z轴方向的极值( z min , z max)、面片垂直高度h( h = z max - z min)、面片水平宽度(w),以及模型所有顶点Z坐标极值( z MIN , z MAX)。由于原始几何模型构建时存在不可避免的误差,对于这些平行或垂直的约束条件给予一定的阈值,从而保证具有一定倾斜误差的面片可以正确识别。具体判别时,先根据夹角 θ是否在85~95°范围之间,判定面片属于墙面或者非墙面。明清古建筑具有模数化特点,部分构件具有标准化尺寸约束,可参考明清古建筑官修文献来设置合理的判别规则。例如,古建筑台基高度受到严格等级制度制约,《礼记》[19]记载:“天子之堂九尺,诸侯七尺,大夫五尺,士三尺。”《钦定大清会典事例》[20]记载台基高度规定:“公侯以下三品以上官员的房屋台基高2尺,四品以下官员至庶民房屋的台基高1尺。”参考这些规则,并考虑到古建筑屋顶离地面往往在2.0 m以上,因此将2.0 m作为区分台基水平面和屋顶面的一个参考阈值。针对所有属于墙面的面片,计算出所有高于2.0 m面片高度的最小值 h min。再将未归类为墙面的面片根据 h min z min之间的关系,进一步划分为屋顶和地面。接下来再依据各面片坐标值范围、长宽比等几何规则从墙面中细分出门、窗、立柱3类具有特定形状参数的语义对象,判别规则参考清代《工程做法则例》[21]相关规定。例如,“凡檐柱以面阔十分之八定高,以百分之七定径寸”描述了柱高与面阔、柱径与面阔的比例关系,从中可推算出柱径与柱高的比值一般约为1:11。围栏、台基、楼梯这三类构件除考虑其法向量方向、面片坐标值范围外还可依据其建造的高度、宽度进行判断。根据《中国古建筑瓦石营法》[22]提到的栏杆柱约2~4.5尺,推算围栏类面片高度范围为0.6~1.4 m。对于楼梯构件,分为垂直上下的室内楼梯、室外台阶以及斜坡面楼梯。室内上下楼层通行的楼梯建筑规范高度在0.1~0.2 m,宽度在0.2~0.4 m。《工程做法则例》[21]对踏跺石(石头台阶)的描述“其宽自八寸五分至一尺为定,厚以四寸至五寸为定”,依照该知识来定义室外台阶高度和宽度的判别规则。由于古建筑构件复杂、模型中多为不规范三角碎面片等原因,在参考相关标准规范后对各类别语义对象都设置了较为宽泛的判别约束条件。各语义实体的判别规则如表2所示,要求同时满足夹角和形状位置规则约束。对于存在一定墙面厚度的几何模型,转换为PLY模型后,可能存在门窗与所在墙面平行但有一定间距的情况,可以通过比较这些面片各自平面系数中的距离分量来区分。
表2 古建筑Mesh模型面片语义判别规则

Tab. 2 Rules of extracting semantic objects from mesh model of ancient architecture

语义对象 平面法向量与Z轴夹角θ 形状位置规则
屋顶 θ 85 ° θ 95 ° z min h min 2.0 m
地面 θ 175 ° θ 5 ° z max - z MIN 0.2 m
墙面 85 ° θ 95 °
85 ° θ 95 ° 1.6 m h 4.0 m
1.0 m w h
85 ° θ 95 ° z min - z MIN 0.8 m
z MAX - z max 1.0 m
3 w h 6 w
85 ° θ 95 ° h 5 w
栏杆 85 ° θ 95 ° 0.6 m h 1.4 m
z min - z MIN 0.5 m
楼梯(倾斜面) θ 85 ° θ 95 ° h 2.0 m
z min - z MIN 0.2 m
楼梯(垂直或水平) 85 ° θ 95 °
θ 175 ° θ 5 °
0.1 m h 0.2 m
0.2 m w 0.4 m
台基 85 ° θ 95 °
θ 175 ° θ 5 °
h 2.0 m
z min - z MIN 0.2 m

3.3 语义平面对象后处理

基于上述规则为每个面片赋予了语义,但由于设定的判别规则较宽泛,存在部分面片语义识别错误,需要对提取的语义平面对象进行后处理。后处理包括基于面对象形状特征和拓扑关系的语义类型纠错,以及对共面且共边的相同语义对象进行形状合并等处理。
首先,基于上一步获取的面片初始语义类别,依据语义对象的结构特征进行二次精确判断,从而修正部分语义类别赋值错误的情况。二次检查依据的条件是:门、窗、楼梯不会以一个单独的三角形出现在墙面上;门、窗不会单独在一个平面上,必须有依附的墙面,且组成门或窗的每个三角形都必须是直角三角形,共斜边的2个三角形必须构成矩形;楼梯不需要依附任何墙面。若平面类型不符合上述检查规则,将类型为门、窗、楼梯的平面修改为墙面类型。
部分错分的面片类型纠正之后,对语义类别相同且共面共边的面片进行合并处理,删除冗余的顶点和边,从而减少冗余面片在CityGML模型文件中的存储。面片合并采用区域增长算法来实现,基本思路为:在某个法向量方向的面片中随机选择一个面片作为种子点S,在所有与S法向量相近且语义类别相同的面片集合F中,寻找与S共边的最近邻面片T,作为种子点S的最近邻集合KNN元素,将T添加到待合并区域R中,同时将T的相邻面片也添加到KNN集合中。循环此过程,直到F中没有可合并的面片算法终止。面片合并的伪代码如下:
算法: faceMerge (S,F)
Input: a seed point face S, A list F of faces have the same
normal vector as S
Output: A list(R) of merged surfaces
while length of KNN >0 do
for T in KNN do
if T and S have the same semantics and share the same sides then
Add T to R; Add neighbours of T to KNN
else
continue
end if
end for
end while
然后,对R中的面片(三角网)计算其最外层边界点组成合并后的多边形,作为最终要写入CityGML的一个语义实体的几何信息。对于与初始种子点S法向量相近但语义类别不同的面片,则作为一个新的种子点,重复以上区域增长过程,形成新的语义实体几何对象。循环检查每个法向量方向(屋顶、墙面等)可合并的面片,直到所有语义实体对象所在平面上再无可合并的小面片为止。

3.4 CityGML 几何语义一体化模型构建

在提取了建筑物Mesh模型各面片的语义类别并进行面片合并处理之后,最后一步就是根据CityGML中建筑物模型的相关表达和存储规范来生成几何语义一体化模型。CityGML模型主要采用边界表示法(Boundary Representation, B-Rep),通过描述对象的面、边缘、顶点及它们之间的关系来表达三维对象的形状细节。对建筑物CityGML LoD3模型来说,它的每个墙面、屋顶或门窗等语义对象均可通过gml:MultiSurface、gml:MultiGeometry或gml:Solid几何结构来进行B-Rep表达。其中,每个组合面或复杂体对象由多个平面gml: SurfaceMember构成,每个平面则由一个多边形 (gml:Polygon)对象表达,Polygon采用其外部轮廓闭合环(gml:LinearRing)来表达,最终对应一个由首尾相连的顶点组成的坐标串(gml:posList)。由于提取的每个语义平面对象的顶点坐标均已知,只需按照逆时针顺序将这些坐标点写入每个Polygon的posList 即可。每个语义对象都定义一个键值唯一的gml_id属性,作为选取、关联和查询的关键标识。门和窗这2种对象一定要依附于特定墙面,作为墙面的Opening对象,并通过gml_parent_id等于其依附墙面gml_id这种属性约束来建立门窗与墙面的隶属关系。此外,如果输入的几何模型有真实地理坐标或进行过地理配准后,可以将使用的空间参考系统(srsName)、模型边界范围(gml:boundedBy)等属性一并写入CityGML文件,有利于与其他GIS数据进行集成展示。扩展的古建筑CityGML LoD3模型各语义对象的几何结构如图5所示。
图5 古建筑CityGML LoD3模型几何结构关系

Fig. 5 Geometric structure of CityGML LoD3 for ancient architecture

4 实验与分析

为了验证古建筑CityGML扩展模型及转换方法的有效性,本文采用山东曲阜孔庙大成殿和杏坛2个SketchUp模型进行了相关实验(图6)。
图6 古建筑三维模型数据

Fig. 6 3D models of ancient architectures

使用本文算法对2个几何模型进行了CityGML LoD3模型自动构建。图7为构建的大成殿和杏坛CityGML模型可视化结果。从2个模型的转换结果可看出,原始几何模型中的主要对象都能正确转换到相应语义类别,除了RoofSurface、WallSurface和Door等CityGML定义的建筑物基本对象外,扩展的Base、Column、Railing、Stair和Ornament等语义对象在左侧树图中能正确显示。生成的古建筑CityGML模型各类构件因为被赋予了相应的语义信息,故可按照古建筑构件语义类别单独展示,如图8所示。
图7 转换后的CityGML模型可视化结果(FME Data Inspector软件)

Fig. 7 3D visualization of generated CityGML models

图8 大成殿CityGML模型部分语义对象单独展示结果

Fig. 8 3D visualization of partial semantic objects from one CityGML model

2个实验数据共转换出9类语义对象,包括Door(门)、WallSurface(墙面)、RoofSurface(屋顶)、GroundSurface(地面)、Stair(楼梯)、Column(柱)、 Ornament(装饰)、Railing(栏杆)、Base(台基)。建筑物几何模型转换为PLY格式后,模型表面通常以三角网形式表达。由于古建筑其造型独特,几何结构复杂,转换过程中会产生大量面积较小的三角面片。合并语义类别相同的相邻三角面片,形成符合CityGML规范的多边形对象,既能有效减少古建筑CityGML模型的冗余存储,又能保持各个语义对象的几何和拓扑正确性。2个模型经面片合并处理后的平面总数能够减少一半以上,墙面、屋顶、楼梯、门窗等各类语义实体需要存储的几何对象数量也大大减少。语义识别的结果并非完全准确,但能够将95%以上的面片正确识别。具体统计信息见表3
表3 古建筑Mesh模型转换为CityGML模型结果统计

Tab. 3 Statistics of conversion results from mesh models to CityGML (个)

模型名称 顶点数 合并前面片数 合并后面片数 合并前语义对象(数量) 合并后语义对象(数量)
大成殿 2114 1315 491 门(2)、墙面(7)、屋顶(976)、楼梯(54)、柱(111)、装饰(51)、围栏(51)、台基(63) 门(2)、墙面(6)、屋顶(314)、楼梯(26)、柱(56)、装饰(19)、围栏(38)、台基(30)
杏坛 1876 1478 419 墙面(14)、屋顶(1256)、楼梯(20)、柱(72)、装饰(60)、围栏(8)、台基(40)、地面(8) 墙面(14)、屋顶(293)、楼梯(16)、柱(36)、装饰(20)、围栏(8)、台基(28)、地面(4)
面片合并前后CityGML模型对比效果如图9所示,可以看到大量三角形片面合并形成了多边形,在CityGML中使用较少的Polygon对象来存储。
图9 CityGML模型面片合并前后效果对比

Fig. 9 Comparison of CityGML models before and after face merging

5 结语

本文针对古建筑数字化保护和精细化管理需求,在对比中国古建筑与现代建筑差异的基础上,依据ADE机制对CityGML标准建筑物模型进行了扩展,增加了古建筑立柱、斗拱、围栏和台基等常用构件的显式语义表达,其扩展相较于GeoBIM等扩展模型更为丰富全面,能满足古建筑典型构件语义表达需要。在古建筑三维语义模型自动构建方面,提出了一种基于几何特征与规则的Mesh模型自动转换为CityGML扩展模型方法。通过计算Mesh模型面片的几何特征,并结合拓扑和自定义判别规则来自动识别模型中的屋顶、墙面、门窗和外部轮廓主要构件等语义实体,再利用区域增长算法进行面片合并处理,最终形成几何语义一体化的CityGML LoD3扩展模型。使用不同风格的建筑物Mesh模型进行了转换实验,实验结果证实了古建筑CityGML扩展模型和转换方法的有效性。本方法可以充分利用主流三维建模软件建立的大量古建筑三维几何模型数据,大大提高古建筑三维语义建模效率,有利于增强古建筑模型及其构件的多尺度表达、三维查询、空间分析与GIS互操作。
由于古建筑的复杂性和多样性,本文列举的语义判别规则不一定能准确识别所有平面的语义类别,但是可以根据实际情况调整阈值或增加新约束条件。古建筑构件种类多样且细节丰富,本文仅针对主要构件和几何特征明显的对象进行了语义扩展和转换实验,并且都是偏重建筑外部结构的语义建模。今后需要针对各具特色的古建筑构件和室内结构进一步扩展,如屋顶神兽、门窗装饰等,在古建筑相关知识库辅助下,通过大量几何模型的转换实验来完善转换流程与规则,从而实现精度更高、细节层次更丰富(LoD4)的古建筑三维语义建模。
[1]
龚雨, 刘媛, 王亮, 等. CGA参数化快速建模的研究与实现——以雨母山古寺庙建筑群为例[J]. 测绘通报, 2017(4):112-115.

[ Gong Y, Liu Y, Wang L, et al. Research and implementation of CGA-based parametric fast modeling—taking ancient temples in the yu-mu mountain as an example[J]. Bulletin of Surveying and Mapping, 2017(4):112-115. ] DOI: 10.13474/j.cnki.11-2246.2017.0133

DOI

[2]
Gröger G, Plümer L. CityGML - Interoperable semantic 3D city models[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2012, 71:12-33. DOI: 10.1016/j.isprsjprs.2012.04.004

DOI

[3]
索俊锋, 刘勇, 蒋志勇, 等. 基于三维激光扫描点云数据的古建筑建模[J]. 测绘科学, 2017, 42(3):179-185.

[ Suo J F, Liu Y, Jiang Z Y, et al. Modeling of ancient building based on 3D laser scanning point cloud data[J]. Science of Surveying and Mapping, 2017, 42(3):179-185. ] DOI: 10.16251/j.cnki.1009-2307.2017.03.033

DOI

[4]
高溪溪, 周东明, 崔维久. 三维激光扫描结合BIM技术的古建筑三维建模应用[J]. 测绘通报, 2019(5):158-162.

[ Gao X X, Zhou D M, Cui W J. Research on the application of ancient architecture based on 3D laser scanning and BIM[J]. Bulletin of Surveying and Mapping, 2019(5):158-162. ] DOI: 10.13474/j.cnki.11-2246.2019.0172

DOI

[5]
Gröger G, Kolbe T H, Nagel C, et al. OGC City Geography Markup Language (CityGML) encoding standard version 2.0.0[S]. Open Geospatial Consortium Inc, 2012.

[6]
单杰, 李志鑫, 张文元. 大规模三维城市建模进展[J]. 测绘学报, 2019, 48(12):1523-1541.

[ Shan J, Li Z X, Zhang W Y. Recent progress in large-scale 3D city modeling[J]. Acta Geodaetica et Cartographica Sinica, 2019, 48(12):1523-1541. ] DOI: 10.11947/j.AGCS.2019.20190471

DOI

[7]
Biljecki F, Stoter J, Ledoux H, et al. Applications of 3D city models: State of the art review[J]. ISPRS International Journal of Geo-Information, 2015, 4(4):2842-2889. DOI: 10.3390/ijgi4042842

DOI

[8]
应申, 郭仁忠, 靳凤攒, 等. 利用CityGML模型自动构建三维封闭建筑体[J]. 武汉大学学报·信息科学版, 2018, 43(5):732-738.

[ Ying S, Guo R Z, Jin F Z, et al. Auto-construction of 3D colsed buildings from CityGML LoD3[J]. Geomatics and Information Science of Wuhan University, 2018, 43(5):732-738. ] DOI: 10.13203/j.whugis20150556

DOI

[9]
de Laat R, van Berlo L. Integration of BIM and GIS: The development of the CityGML GeoBIM extension[M]// Lecture Notes in Geoinformation and Cartography. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010:211-225. DOI: 10.1007/978-3-642-12670-3_13

DOI

[10]
Knoth L, Scholz J, Strobl J, et al. Cross-domain building models: A step towards interoperability[J]. International Journal of Geo-Information, 2018, 7(9):363. DOI: 10.3390/ijgi7090363

DOI

[11]
Jetlund K, Onstein E, Huang L Z. IFC schemas in ISO/TC 211 compliant UML for improved interoperability between BIM and GIS[J]. ISPRS International Journal of Geo-Information, 2020, 9(4):278. DOI: 10.3390/ijgi9040278

DOI

[12]
翟晓卉, 史健勇. BIM和GIS的空间语义数据集成方法及应用研究[J]. 图学学报, 2020, 41(1):148-157.

[ Zhai X H, Shi J Y. Spatial and semantic data integration method and application of BIM and GIS[J]. Journal of Graphics, 2020, 41(1):148-157. ] DOI: 10.11996/JG.j.2095-302X.2020010148

DOI

[13]
石若明, 刘昊, 王锐英, 等. 府学胡同36号院古建筑信息模型建立研究[J]. 北京建筑大学学报, 2014, 30(4):1-7.

[ Shi R M, Liu H, Wang R Y, et al. Study on building ancient architecture information model of fuxue hutong 36# yard[J]. Journal of Beijing University of Civil Engineering and Architecture, 2014, 30(4):1-7. ]

[14]
Chiabrando F, Sammartano G, Spanò A. Historical buildings models and their handling via 3d survey: From points clouds to user-oriented hbim[J]. The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2016, XLI-B5:633-640. DOI: 10.5194/isprs-archives-XLI-B5-633-2016

DOI

[15]
Li L, Tang L, Zhu H H, et al. Semantic 3D modeling based on CityGML for ancient Chinese-style architectural roofs of digital heritage[J]. ISPRS International Journal of Geo-information, 2017, 6(5):132. DOI: 10.3390/ijgi6050132

DOI

[16]
万君璧. 古建筑CityGML三维语义模型拓展与存储机制研究[D]. 武汉:华中师范大学, 2019.

[ Wan J B. Research on extension and storage of CityGML on ancient Chinese architecture 3D modeling[D]. Wuhan: Central China Normal University, 2019.

[17]
Biljecki F, Ledoux H, Stoter J. An improved LOD specification for 3D building models[J]. Computers, Environment and Urban Systems, 2016, 59:25-37. DOI: 10.1016/j.compenvurbsys.2016.04.005

DOI

[18]
Biljecki F, Kumar K, Nagel C. CityGML Application Domain Extension (ADE): Overview of developments[J]. Open Geospatial Data, Software and Standards, 2018, 3(1):1-17. DOI: 10.1186/s40965-018-0055-6

DOI

[19]
(元)陈澔注, 金晓东校点. 礼记[M]. 上海: 上海古籍出版社, 2016.

[ (Yuan) Chen H, Jin X D. The book of rites. Shanghai: Shanghai Classics Publishing House, 2016. ]

[20]
(清)昆冈, (清)李鸿章, 等. 钦定大清会典事例(光绪二十五年刻本)[O]. 台湾: 新文丰出版公司印行, 1976.

[ (Qing)Kun G, (Qing)Li H Z, et al. Examples of Qing collected statutes (Guangxu 25 edition). Taiwan: New Wenfeng Publishing Company, 1976. ]

[21]
梁思成. 清工部《工程做法则例》图解[M]. 北京: 清华大学出版社, 2006.

[ Liang S C. Illustration of "Examples of Engineering Practices" by the ministry of industry in Qing dynasty[M]. Beijing: Tsinghua University Press, 2006. ]

[22]
刘大可. 中国古建筑瓦石营法[M]. 北京: 中国建筑工业出版社, 1993.

[ Liu D K. Construction method of tiles and stones for Chinese ancient architecture[M]. Beijing: Chinese Architecture & Building Press, 1993. ]

文章导航

/