APP下载

语义辅助的CityGML模型一致性检测方法

2021-06-25王永君陈青燕杨玉娇陈学业

测绘学报 2021年5期
关键词:内环一致性语义

王永君,陈青燕,杨玉娇,陈学业,孙 剑

1. 南京师范大学江苏省地理信息资源开发与应用协同创新中心, 江苏 南京 210023; 2. 南京师范大学虚拟地理环境教育部重点实验室,江苏 南京 210023; 3. 南京师范大学地理环境演变国家重点实验室培育点, 江苏 南京 210023; 4. 上海树融数据科技有限公司,上海 200082; 5. 自然资源部城市国土资源监测与仿真重点实验室, 广东 深圳 518034

三维城市模型作为数字城市及智慧城市空间框架数据的核心内容[1-3],被广泛应用于旅游、室内导航、灾害逃生、城市规划、虚拟战场等领域[4-7]。但目前开放的三维城市模型一般是面向可视化或者具体应用,模型中会存在语义、拓扑和几何不一致性的问题,如建筑物几何模型未闭合、建筑墙面为非平面等[8],从而导致三维模型并不能满足主题查询、空间数据挖掘以及基于空间关系计算、分析等方面的需求,不利于其在下游领域的深层次应用。对三维空间模型数据的几何、拓扑和语义的一致性检测和修复是三维模型空间分析和下游领域深度应用的前提和保证[9-10],其中三维空间模型数据的拓扑一致性是保证模型几何、拓扑表达的真实性、正确性的重要方面[11-12]。在CAD领域,三维实体通常以边界表示法(boundary representation,B-rep)表示,并以数据结构强制性要求多面体为流形形体[13-14]。在GIS相关领域,对三维模型的检测主要根据模型建模需求定义几何拓扑一致性规则,再以规则检测模型为主[15-16]。文献[12]针对3D城市模型的拓扑一致性检测给出13条规则,从拓扑和数学公理两个方面验证规则的完整性、正确性、有效性。但该规则未考虑多面体的孔洞问题,无法检测CityGML(city geography markup language)模型LOD3中含有门窗的建筑物,模型的拓扑检测不完整。

本文拟针对CityGML模型数据,提出适合多种LODs数据的语义约束下的拓扑一致性规则,设计相应的检测算法,并采用公开数据对算法进行试验与验证。

1 CityGML拓扑一致性规则

1.1 CityGML

CityGML是开放地理空间信息联盟(open geospatial consortium,OGC)为实现三维城市模型信息共享和可视化而提出的国际标准,基于XML模式实现了虚拟三维城市模型中城市空间对象三维几何、拓扑、语义信息的存储和交换[17-18]。作为一种开放、结合室内外场景的数据模型,CityGML被广泛地应用于三维GIS领域,如室内外一体化导航、无人驾驶、防灾减灾、路径分析等[19-20]。CityGML有如下特点:①按照GML3.1.1实现了建筑物、地形、交通、植被、水体、城市设施、土地利用等三维城市专题模块,其中以建筑物模型的使用最为广泛与复杂;②CityGML中空间对象的几何属性通过几何-拓扑模型进行表示[21],即更高维度的图元拓扑由低维原语构建,简单几何模型一般有4个维度的基本几何元素,每一个维度对应一个几何-拓扑基元,零维(point)、一维(curve)、二维(surface)、三维(solid),即点、线、面、体;③针对同一个地理空间对象,CityGML在模型的语义层面上,对空间对象的属性或对象之间的关系进行描述,在空间层面上,对空间对象所在的空间位置和范围等进行描述,因此CityGML的拓扑一体化模型通过对应关系相互联系空间对象的几何语义建模和几何拓扑建模两个方面[22](图1);④针对同一空间对象的语义、拓扑与几何信息,CityGML模型将描述的精细程度分为5个细节层次LOD0—LOD4,针对建筑物、建筑物部件以及建筑物附属设施由简到繁的表达(图2)。

图1 CityGML语义、几何与拓扑一致性模型[22]Fig.1 CityGML semantic, geometric and topologic consistency model[22]

图2 CityGML 5个细节层次[16]Fig.2 The five LODs of CityGML[16]

1.2 建筑物拓扑结构信息与语义信息的规则定义

CityGML建筑物模型的一致性规则主要有几何拓扑和几何语义两个方面。其几何要素的空间属性通过GML3的几何-拓扑模型进行表示,GML3的几何模型在ISO19107标准上构建。因此根据ISO19107等通用的国际标准提取建筑物模型的几何检测规则,可以在保证建筑物几何有效性的同时,减少不同模型之间数据模型集成的冲突。CityGML的语义属性代表对象在现实空间中的具体意义,因此可根据不同语义对象在现实空间的属性,定义针对建筑物的拓扑规则。

1.2.1 拓扑规则提取

通过分析ISO19107/OGC/GML3[10,16,23-24]等标准中几何图元点、线、面、体的定义,根据几何维度不同,分层次对几何模型定义相应拓扑规则。其中,参照CityGML OGC标准,surface不考虑曲面,而是由平面片构成,以polygon表示;curve被强制定义为折线,以line string进行表示;solid定义为用封闭表面shell围起来的边界,体有内外边界,即内外shell之分。具体规则定义如下。

(1) 环规则

规则1:linear ring至少由3点组成,当只有3点时,第1点和最后一点坐标不可相同,记为CL-NumPoints&CL-Close。

规则2:除了首末点,linear ring上其他点的坐标值不同,记为CL-DupPoint。

规则3:linear ring上点不能重复,记为CL-DupRing。

规则4:linear ring具有非自相交性,记为CL-SelfInt。如图3(a)的solid因为面上内外环相交而无效。

(2) 面规则

规则5:polygon上所有点需在同一个平面上,但允许有一定的平面允许容差,记为CP-Plan-Dist&CP-Plan-Dist-TRI。

规则6:同一个面上内外环方向相反,外环方向为右手系逆时针方向,记为CP-Clockwise。

规则7:polygon上的内外环拓扑关系为外环包含内环,记为CP-InROutside。

规则8:面上内环之间不能相交或重叠,记为CP-NoCrossing。

规则9:面内部必须连通可达,记为CP-Connected,如图3(b)上表面,一个内环因将一个平面分成两部分而无效。

(3) 体规则

规则10:solid至少由4个有效且位于不同平面上的面组成,记为CS-NUMFaces。

规则11:solid上的每一条边被两个面,且仅被两个面所共享,为流形形体。记为CS-Non ManifoldEdge&CS-NonManifoldVer。如图3(c),一条公共边被3个面所共享而无效。

规则12:构成solid的各个面不相交,记为CS-SelfInt。

规则13:构成solid上的每个面都有方向,且面的法向量必须都指向solid外部,记为CS-Face-Orient&CS-Face-Out。

规则14:solid必须有连通性,记为CS-Connected。如图3(c),solid两部分不可达。

规则15:内shell必须在外shell内部,且shells之间不能相交重叠,只能相切于点、线,记为CS-Inshell-Outside。如图3(d),solid因内部shell之间的交叉而无效。

图3 4个不符合检测规则的无效solidFig.3 Four invalid solids which break the validation rules

1.2.2 语义属性规则提取

基于几何语义一致性原则,CityGML中的面元素、体元素都有对应的语义属性信息,可从语义属性中分析提取空间实体的拓扑一致性规则,包括空间隐喻规则与非空间隐喻规则。空间隐喻规则如几何对象间的方向约束、拓扑关系约束或者距离约束。如在LOD2、LOD3中语义为wall surface的空间对象相对应的几何表达为polygon,wall surface的语义属性会对该polygon几何元素有法向量方向约束,即可提取相应规则;非空间隐喻规则如门窗与墙体的is-part-of的关系。

(1) 语义属性对空间对象的方向约束需考虑CityGML多层次的特点,模型中不同的LOD层次所含语义对象信息不同,则有不同的方向约束规则。具体见表1。

表1 不同语义属性对语义对象的方向约束规则

(2) 语义属性对空间对象间的拓扑关系约束。该约束考虑不同语义对象间的拓扑关系,根据CityGML的数据特点,将其支持的三维拓扑关系分为相等(equal)、相离(disjoint)、相交(intersects)、相切(touch)、包含(contains)5种,且根据分层的几何结构规则,仅考虑相同几何基元间的拓扑关系。在LOD1和LOD2中,建筑物的几何信息是单个几何体或者复合面, 针对该语义对象考察点与点、线与线、面与面间的拓扑关系;在LOD3中,门窗与墙以面表示,需要考虑门、窗等语义要素在几何上的拓扑关系,wall surface上的点与window/door上的点应在同一平面上,且门窗与墙面内环相切,墙面几何的内环间不能相离、相交或重叠等;在LOD4中建筑物为复合体,包括墙、门窗、室内房间、楼梯等几何体,室内几何对象之间不能相交,且被包含于整个建筑物外围,整个建筑物外围包括 roof surface、wall surface和ground surface。部分空间对象的拓扑关系约束形式化表达见表2。

表2 语义属性约束下的拓扑关系表达

(3) 语义属性对空间对象的距离约束。根据GB50352—2019《民用建筑设计统一标准》及GB 50096—2011《住宅设计规范》中对常见室内对象的设计规定,可分析提取针对空间对象层高、净高等距离关系的约束规则[25-26](表3)。

表3 不同语义对象的距离约束规则示例

(4) 非空间隐喻对空间对象的约束。一些语义关系,如is-part-of等只能在语义层面提取[27],如每个room必定与一个door关联并与其相切,3楼的stair way必须高于2楼的stair way等常识性规则,则需对stair way所在楼层、floor所在楼层信息,门窗与房间is-part-of的关联关系等非空间隐喻提取拓扑一致性检测规则,具体示例见表4。

表4 语义对象间的非空间隐喻规则示例

2 自动检测方法

2.1 分层检测方法

本文以产生式表示法表示规则集,一个产生式对应一个规则,并采用点、线、面、体、多体等不同几何维度的分层检测算法进行拓扑一致性检测。高维度的拓扑检测建立在低维度的几何一致性基础上。

上述规则,最终可转换为诸如平面拟合、距离判断等约束条件,采用最小二乘法、三维布尔运算等算法,进行判断与求解。由于涉及的检测算法较多,考虑到平面检测在模型检测中比较典型,本文仅以此为代表进行介绍。

2.1.1 投影降维检测

三维空间数据相较二维空间数据复杂,由直线的几何投影特性可知:三维平面向不垂直于该面的另一个二维面进行投影,投影面上各点的顺序关系不会发生改变,即投影点之间的拓扑关系与相对应空间点之间的拓扑关系一致。因此在拓扑一致性检测的过程中,三维面的自相交检测可通过降维投影到相应的二维平面,通过二维面的自相交检测判断空间面是否相交。但由于投影有积聚性和收缩性,若向垂直于该面的平面进行投影,则所有点会积聚为一条线,投影后各点之间的距离也会发生改变。为了避免投影的积聚性和减少投影收缩可能引起的判断误差,根据空间三维面的单位法向量判定投影方向,选择沿法向量的3个方向轴的最大矢量轴进行投影,若法向量为(0,0,1),则沿Z轴向xy平面投影。因此点、线、面几何元素的自相交、面上内外环等拓扑一致性通过投影降维进行检测。

2.1.2 拓扑一致性检测算法

针对三维平面的检测规则共有5条,面元素的几何一致性检测建立在该面所有环都具有拓扑一致性的基础上,并考虑几何结构和语义对象两种规则约束。针对规则(5),通过同一面上所有空间点到拟合面的距离可检测构成该面的点是否在给定的精度阈值范围内共面,采用最小二乘法生成拟合面[28];针对规则(6)、(7)、(8),先将三维面投影降维到二维面,然后对投影面做环方向检测、包含检测以及内环相交检测;针对规则(9),可首先将三维面进行三角剖分,通过判断剖分后三角形之间的连通关系,检测面内部的连通性。本文提出另外一种方法,由于面的内部连通性主要由内环与外环、内环之间的关系决定,当其关系满足以下的约束时,面的内部是连通的(各个条件为递进关系,即从上到下,满足条件即可终止判断):

(1) 面有且只有一个外环,无内环。

(2) 面有一个内环,且内环与外环没有公共顶点。

(3) 面有一个内环,内环与外环之间只有一个公共顶点。

(4) 面有多于一个内环,每个内环都与外环没有公共顶点。

(5) 每个内环与外环之间最多只有一个公共顶点,且内环之间没有公共顶点。

(6) 内环之间最多只有一个公共顶点,且两个相邻内环之间只能通过该公共顶点进行连通。

当CityGML细节层次模型为LOD3及以上,需要检测solid中多个shells的拓扑关系或者多个solids间的拓扑关系,在CGAL库中以Nef-Polyhedral表示对象,对对象进行布尔运算,求其交集、并集、差集,以volume数判断shell之间的空间关系。

2.2 不同LOD中规则的适用性与依赖性

不同LOD层级的建筑物适应不同的一致性规则。LOD1是以规则长方体表示建筑物的没有屋顶结构的块状模型,因而在LOD1的检测中,只考虑简单体的拓扑规则,不考虑几何面的语义属性、面上内外环的拓扑关系或者几何体中内外shell的拓扑关系等;LOD2中可以确切地表示建筑物屋顶的形状及外观,是一个带有屋顶结构的简化模型,所有几何面均拥有语义属性信息,因此在这个层级的几何模型中,在LOD1拓扑检测的基础上,增加语义属性对几何结构约束的规则检测;LOD3的建筑模型在LOD2的基础上,增加了墙面、门窗、屋顶形状等详细的几何外观信息以及对“开口”的描述,在LOD3建筑模型的拓扑一致性检测过程中,以LOD2的拓扑检测为基础,增加语义属性中复合面间拓扑关系的规则检测,以检测墙面与窗或者窗与窗之间的几何拓扑关系;LOD4在LOD3的基础上加入了三维空间对象的内部结构信息,如房间、楼梯、家具等,这里不考虑家具等室内设施,因而在LOD3拓扑检测的基础上,增加了内外shell及体与体之间的拓扑一致性检测。由此可见,多层次的语义规则更有助于CityGML模型不同细节层次几何模型的拓扑一致性检测需求。

在同一个CityGML模型中,前文中描述的规则之间具有依赖关系。按照几何要素进行划分。环要素的检测优先于其他所有规则进行检测,其后依次是面要素规则检测,外壳要素规则检测,体要素规则检测,多体要素规则检测;后一个环节的检测依赖于前一个环节规则检测结果,在前一个检测正确或者经过修复后正确之后,后面环节的检测方能开始。

此外,在各个几何要素层的检测过程中,各个子规则也需要遵循一定的依赖性。下面以面检测为例进行说明。

面检测子规则具体见表5。在保证其前序环规则检测正确后,ID为203的多边形平面性检测是面要素几何一致性检测的前提,ID为201、202、205、206、207的规则之间相互独立,依赖于ID为203、208的规则。其他子规则之间的检测依赖关系见表6。

表5 面要素子规则

表6 面要素子规则检测的依赖性说明

Tab.6 Dependency of sub-rule detection of polygon

elements

检测规则ID201202203204205206207208201√√202√√203204√√√√√√√205√√206√√207√√208√209√210√

2.3 坐标容差及平面容差

CityGML的几何模型未显示存储solid中的拓扑关系,对solid的每个面采用单独存储的方法。因此在一个正方形中,同一个点将被存储3次,则可能会出现3个坐标表示同一个点。当点数值很大时,在计算机的浮点计算下会导致solid出现未闭合的不一致性,因此需考虑一定的舍入误差。ISO19107及GML中要求CityGML几何模型中表面必须为平面,OGC在OGC CityGML QIE中对几何模型平面性引入平面容差和角度容差[16]。

3 CityGML建筑物模型的拓扑一致性修复

一条拓扑一致性规则对应一个类型的拓扑问题。当建筑物模型的拓扑不一致类型较多且数据缺失严重时,较难修复全部类型的错误。这里以常见的平面几何要素、方向一致性、闭合性、重复性等拓扑一致性问题的修复为例进行说明。

3.1 平面几何要素修复

平面几何的特性与几何实体的语义属性互相联系,针对平面几何要素的修复,需以语义属性规则进行辅助。以下对常见的地面(ground surface)、墙面(wall surface)及屋顶(roof surface)分别进行说明。

地面的法向量垂直向下,计算该几何面所有点所在最小二乘拟合面,面上所有点到拟合面的对应投影点构成平面Z,设平面Pxy平行于xy水平面并经过平面中最低点,求得Z平面上所有点到该平面的投影点,则对应投影点坐标构成的面即是修复后的几何面,如图4(a)所示;墙面应与地面共享一条边,以边与法向量构建平面Pyz,原几何面上所有点至该平面的投影点构成的面即为修复面,如图4(b)所示;屋顶主要分为平屋顶与三角屋顶,平面屋顶修复与地面修复方法类似,如图4(c)所示;三角屋顶需计算该屋顶所有点所在最小二乘拟合面,所有点沿Z轴至拟合面的投影点构成的面即为屋顶的修复面,如图4(d)所示。

图4 平面几何体的修复Fig.4 Fixing errors in plane geometry

3.2 方向一致性修复

在各个等级规则中,都有对方向性的检测。以solid为例,其外shell法向应指向体外,而内shell方向应指向体的内部。该错误可通过遍历每个面,根据该面的正确朝向,对顺序不一致的边界点索引进行反转,从而修复方向不一致问题。在其他的检测等级中,也可依次处理方向不一致问题。

3.3 闭合性修复

闭合性修复分为环与体的情况。环的首末点必须相同,以保证环的闭合性,可通过复制第一点坐标并加入到点序列末尾,对环的闭合性进行修复。

多面体以半边数据结构表示,即几何模型中每条边均存在仅被两个面所共享的特征,如图5所示,有向边〈V5,V6〉存在于面D中,有向边〈V6,V5〉存在于面C中,则边V5V6仅被C、D两个面共享。针对数据结构表示的特性,可通过存储的半边信息以修复未闭合问题。如图5所示,边V1V2仅存在于面A中,有向边〈V1,V2〉存在于面A中,则〈V2,V1〉是缺失面B的一边,同理可得有向边〈V1,V4〉、〈V4,V3〉、〈V3,V2〉,即缺失面B由边〈V1,V4〉、〈V4,V3〉、〈V3,V2〉、〈V2,V1〉组成。对于LOD2/LOD3的闭合修复,可通过面B的法向量方向赋予语义信息。若单位法向量向上为屋顶,向下为地面;若法向量为水平方向则需判断面B为墙面还是门窗。有向边〈V1,V2〉在面A中,若其为面A外环中的边,则边〈V2,V1〉为面B的外环,标识B为墙面;否则为门或者窗。对于LOD4的体闭合修复,则为该Solid语义属性,其中针对未闭合面修复的算法如下:

图5 建筑物体未闭合Fig.5 Solid geometry is not closed

begin

多面体_polyhedron;

if (_polyhedron->is_closed() == false)

while (_polyhedron->size_of_border_edges()>0)

Halfedge_handle he=++(_polyhedron->border_halfedges_begin());

he->vertex()->point().x()

he->vertex()->point().y()

he->vertex()->point().z()∥get the point in the missing polygon

_polyhedron->fill_hole(he);

_polyhedron->normalize_border();

end if

end

3.4 重复性修复

以环的重复性修复为例,在环一致性规则中,同一个环的点只允许首末点相同,其他点不允许重复。根据点重复类型不同,修复分为两种情况,一种情况如图6(a)所示,R=(V0,V1,V2,V3,V3,V0),其中点V3在点序列中出现连续重复;另一种情况如图6(b)中的R=(V0,V1,V4,V3,V2,V4,V0),点V4在序列中不是连续重复。针对(a)图中的重复性,可将重复的第2个点直接删除;针对(b)图中的不一致问题,可将该环分为R=(V0,V1,V4,V0)及R=(V4,V2,V3,V4)两个环,因此多边形被分割成多个多边形。针对环重复、面重复或者shell等不一致问题,则可直接进行删除。

图6 环上点的两种重复性情况Fig.6 Two repetitive cases of points on the ring

4 试验与分析

本文研究以CityGML建筑物模型的LOD2数据、LOD3数据及LOD4数据为例,进行试验验证分析。其中LOD2含32个建筑物,LOD3含400个建筑物,数据来源于OGC官网,LOD4建筑物含10个语义对象,由某栋IFC建筑物模型经过数据转换得到的CityGML LOD4数据。统一设置舍入误差为1 mm,平面容差分别为0.01 m,平面角度容差1°。检测系统界面如图7所示。

图7 几何检测试验系统界面Fig.7 System interface of geometric validation

4.1 LOD2建筑物模型的拓扑检测

针对CityGML LOD2试验数据的几何一致性检测结果统计如图8所示。该模型数据在几何一致性检测中存在环自相交、非平面、非流形边、方向不一致、数据不完整导致几何模型未闭合的不一致问题。如图8(a)所示,该数据中不一致性问题占比达到一半以上;图8(b)中给出了不一致问题的类型,其中非平面的几何错误(对应203号面要素规则)相比其他不一致性问题为多。

图8 LOD2建筑物几何一致性检测试验结果Fig.8 Results of geometric consistency validation on LOD2 model of building

图9给出了某些建筑物中出现的非流形问题(图6(a))及方向不一致问题(图6(b))共存的情况。其中红色表示roof surface,灰色表示wall surface,蓝色表示ground surface。

图9 LOD2数据中多种几何不一致共存的情况Fig.9 Multiple geometric inconsistency coexist in LOD2 models

4.2 LOD3建筑物模型的拓扑错误检测

针对CityGML LOD3试验数据的几何一致性检测结果统计如图10。该模型数据在几何一致性检测中存在环自相交、环与环相交、非平面、门窗与墙面拓扑关系错误,导致几何模型中内环在外环外部或者门与墙面相交的内外环拓扑关系错误、模型数据不完整导致几何模型未闭合及模型方向不一致等问题。如图10(a)所示,该数据中不一致性问题占比约33%;图10(b)中给出了不一致问题的类型,其中非平面的几何错误(对应203号面要素规则)同样最为突出。图11给出了某些建筑物中因门窗与墙面相离或者相交从而导致数据存在环与环相交的几何不一致问题,如图11(a)、(b),其中红色表示roof surface,灰色表示wall surface,土黄色表示窗,棕色表示门。

图10 LOD3建筑物几何一致性检测试验结果Fig.10 Results of geometric consistency validation on LOD3 models of building

图11 LOD3数据几何不一致可视化Fig.11 Visualizing results of inconsistency of LOD3 models

4.3 建筑物LOD4模型检测试验

CityGML LOD4细节层次的建筑物数据中,语义对象以solid表示,有room、living room、hall way、window、door、floor surface、ground surface、wall surface、roof surface、stair way。该LOD4的建筑物数据存在非流形、方向不一致、room不存在与door的关联关系导致该room不与其他室内空间连通、几何体未闭合及语义对象间的拓扑关系错误等几何不一致等问题。其中低等级的几何错误较少,但方向不一致性错误较多。living room、roof surface、ground surface都出现了该错误,如room与door 的is-part-of的错误(图12(a))、楼板与楼梯的拓扑关系错误(图12(b))。

图12 LOD4几何不一致可视化Fig.12 Visualizing results of inconsistency of LOD4 models

5 结 语

本文以CityGML建筑物模型中常见的建筑物为研究对象,根据国际与国内的相关标准,从建筑物几何结构特征和语义属性信息中抽取对建筑物几何结构、拓扑关系、方向关系、距离关系具有约束影响及可转化为约束条件的非空间隐喻的语义信息了构建了建筑物的拓扑一致性规则集。考虑到不同LOD层次和不同语义属性的几何对象,结合拓扑一致性规则对单个语义对象的点、线、面、体等几何要素及多个语义对象间的空间关系,进行模型空间数据拓扑一致性的分层检测,提出了系统的不一致性检测方法,检测同一空间现象/空间实体在表达时存在的拓扑不一致问题,并进行了典型修复算法研究。试验结果表明所提出的规则和算法可检测出存在几何不一致的建筑物模型空间数据,可为后期修复提供有力支持,确保数据集的拓扑一致性,提高空间数据质量,提升三维数据在集成中的互操作性。

猜你喜欢

内环一致性语义
关注减污降碳协同的一致性和整体性
注重教、学、评一致性 提高一轮复习效率
IOl-master 700和Pentacam测量Kappa角一致性分析
语言与语义
基于弓状下缘的腹腔镜内环网塞修补术治疗成人腹股沟斜疝的效果观察
经脐两孔法腹腔镜腹股沟疝内环高位结扎加脐外侧襞加强术治疗小儿腹股沟斜疝*(附108例报告)
经脐微型腹腔镜内环高位结扎术联合包皮环套术的临床应用
“上”与“下”语义的不对称性及其认知阐释
基于事件触发的多智能体输入饱和一致性控制
认知范畴模糊与语义模糊