徐 照 康 蕊 孙 宁
(东南大学土木工程学院, 南京211189)
在建筑信息化研究领域,众多学者围绕建筑信息模型(BIM)和点云技术做了大量研究改进,针对二者的融合也提出了一些方法.例如文献[1]利用点云数据获取建筑构件尺寸,在相关建模软件中进行逆向建模;文献[2]基于Revit平台,提出了一种利用插件的融合无人机影像数据和点云数据的建筑物BIM模型快速重建方法;文献[3]利用点云数据逆向构建BIM“族”,进而最终建立古建筑模型;文献[4]提出了一种精确可靠高效的方法,用三维激光扫描仪采集原始数据,并对点云数据进行处理,再利用Autodesk Revit软件创建建筑物模型;文献[5]提出一种帮助工程师将逐步捕获的点云数据组合在一起的方法,这种方法可以获得更多的几何信息并能够消除由于冗余点云导致的文件太大情况.文献[6]将点云作为拓展属性融入IFC中;文献[7]通过分割识别点云数据信息,将识别的点云数据模型转化为BIM模型.
目前,BIM与点云技术结合的研究多聚焦于建模结果展示方面,而随着实时化建模技术需求的增长,点云数据格式和IFC(industry foundation classes)标准之间的具体映射关系和实际应用成为工程领域模型信息处理的重要研究方向.本文以建筑结构构件的点云模型为研究对象,提出了一种由建筑物结构构件原始点云数据采集到形成IFC数据模型的处理流程,为实现网页可视化管理提供基础.首先,原始点云数据经过初步分离、精细切割处理后,利用Poisson-disk sampling算法有效降低数据大小,优化点云空间位置关系,进而进行高质量点云曲面重构;进一步使用BPA(ball pivoting algorithm)表面重建算法完成中间格式OBJ数据的生成,实现由点到面的转换;最后提出一种面向建筑构件的编码体系,将编码与几何信息一起扩展转换为符合IFC标准的数据格式,进行网页端渲染和信息管理.通过点云相关异构数据格式之间的关系映射提升数据可视化的处理效果,为建立Web端信息化管理平台提供显示处理机制.
点云建模技术已经成为建筑行业数字化领域一种重要的信息处理方法,随着建筑物建模体量越来越大,对点云数据的处理研究也越来越完善,从原始数据的去噪、抽稀、切割到识别均有合适的方法可供选择,但是点云信息处理与实际工程应用之间的结合少有涉及.因此本文针对这一问题,提出了一个从点云数据搜集到最终转换为IFC数据模型并实现网页端可视化的标准化流程.整体框架如图1所示.
图1 整体系统框架
本文以福建省南靖县图书馆为例进行研究,首先对点云数据进行初步切割处理,然后提出了一种分层级(数据层面和模型层面)的点云信息处理流程.在数据层面,分析点云数据与其他数据格式之间的映射关系,将简单的仅有相对坐标(x,y,z)的点云数据通过实体化处理转换为三角片索引的OBJ文件,进而拓展为更高级、信息量更大的BIM通用格式IFC数据模型,从而实现点云数据与BIM模型数据的关联.在模型层面,将分割处理后的建筑构件点云模型从整体点云模型中进行提取,为IFC数据模型的扩展、数据库开发以及Web端可视化平台的构建提供基础模型.
2.1.1 点云数据
点云数据是通过在建筑物三维建模中使用测量仪器得到的物体外观表面的点的数据形成的集合,通常包含点的三维坐标(x,y,z)和颜色信息(RGB),即使仅包含点的三维坐标的TXT文件也可以称之为点云数据.图2所示为南靖图书馆女儿墙点云数据及局部放大图,可以清晰地看到点云形成图像.
2.1.2 点云分割
点云分割是点云处理的基本需求.采集得到的原始点云是一个建筑整体,一般会含有很多如树木、路灯等干扰物数据信息,本文采集建筑的原始点云后需要将构件点云信息单独提取出来以进行后续转换,进一步形成IFC数据模型.本文涉及的点云分割主要分为两部分:构件范围界定和噪点隔离.图3中以柱构件为例展示点云处理过程.
图2 点云局部放大图
(a) 点云原始数据
(b) 初步分割结果
在精细处理中,以柱与墙面、楼板共同边即线状点为分界线,沿此线将构件与整体剥离.同时识别散乱点,进行分割操作去除散乱点.重复上述过程,将建筑整体分割为一个个构件,就能实现对每个构件的编码等操作,形成实体模型.将点云数据进行分割处理后,提取出来的建筑构件可以在此时进行自动识别.针对这一工作已有许多国外学者进行了研究,如文献[9]在对点云进行传统识别的基础上加入对环境的判断,从而提升了识别的精确度.
图4 点云信息面状点与散乱点
2.1.3 点云去噪
经过对原始点云的分割处理之后得到的点云数据已经具有较为完整的形态,但是点云模型显示质量较低,形成的网格表面粗糙复杂,不利于生成实体表面,如图5所示.为了便于表示未处理点云的复杂程度,图5中生成了处理前后两种网格表面以表达几何信息.可以看出去噪前点信息分布特点不仅数量多,而且点之间垂直距离大,形成的表面凹凸不平.本文利用Poisson-disk sampling算法[10]对点云模型进行去噪优化.
(a) 去噪后点云分布
Poisson-disk sampling算法首先根据点的重要程度,通过下式计算出某点生成的圆形区域大小:
式中,r(v)为区域半径;v为点的重要程度;k为密度因子;rk,r/k分别为最大密度和最小密度;vsup,vinf分别为最小密度因子和最大密度因子.为了在减少点云数量的同时,保证点云形成的实体形状质量,根据此区域半径r删除半径内其他单元点.本文点云去噪后的顶点数量、三角面片数量、点云文件大小、OBJ文件大小和文件打开速度等指标数据如表1所示,结果显示去噪效果良好,不仅有效降低了点的数量,而且生成了更光滑的实体表面.
表1 去噪压缩结果对比
经过点云去噪优化后不仅实体表面形状更接近实物,而且有效降低了顶点和三角面片的数量和文件的大小.如表1所示,顶点数量压缩至28.39%,面片数量压缩至33.54%,点云文件和形成的OBJ格式文件分别压缩至原文件的28.50%和35.62%.
2.2.1 OBJ数据结构
目前三维显示领域主流的实体模型表达方式以表面网格(Mesh)为主.与点云数据有明显不同,Mesh数据格式由顶点、边和面构成,用于3D建模中的多面体形状表示,面通常由三角形(三角形网格)组成,通过点、线、面的逐层连接构建最终形成三维物体表面,达到建模形成实体的目的.以图6中点云数据模型的点、线、面为例,单个点的坐标均以x,y,z坐标轴投影表示;2个点之间的线长度即为2个空间坐标之间的距离,该距离为无量纲数值,图6示例距离(Distance)为0.141 482;3个空间点相连组成三角形拼接体即一个三角面片,三角面片的面积为无量纲数值,图6示例面积(Area)为0.011 283.将多个空间点相连接形成三角面片拼接体可以表现出物体的几何特征,其中三角面片的面积越小,模型越精细.另一方面,OBJ是Mesh格式的一种,由于其代码构成简单,只包括几何信息和贴图信息,因此具有更轻量化的优点.本文用OBJ格式模型作为点云转换IFC的中间过渡格式.OBJ模型数据中存在大量重复使用的顶点,本文使用三角形索引的方法来进行描述,即face-vertex mesh索引显示方式,通过连接顶点形成三角形面从而完成三维模型的显示搭建,如图7所示.
图6 Mesh构成示意图
图7 Face-vertex mesh索引显示方式示例
通过储存顶点的坐标v,建立顶点索引f,每3个顶点组成一个三角形面片,众多面片形成实体表面,进而构成完整三维模型.索引方式如图7所示,v代表储存点的三维坐标,f代表储存一个三角面片的3个顶点,例如f1储存的1,3,6表示此三角形由v1,v3,v6三点连接形成.最终展示结果为图7的女儿墙栏杆扶手.
2.2.2 点云转换OBJ模型
首先对点云的每个点根据不同的周边点的数量计算点之间构成的虚拟面的法线.这样就实现了点云坐标点(x,y,z)到OBJ格式模型的顶点法线位置的计算转换.同时,点云每个点的坐标作为OBJ格式模型的顶点存入文件中,完成点对点映射.本文使用BPA(ball pivoting algorithm)算法创建几何表面,结合计算所得的法线的位置,形成给定点云的三角形网格.如图8所示,假设S是构成三维物体外表轮廓的点集,选定一个半径为P的球体,选取与小球接触的3个点作为起始点,始终保持让半径为P的球接触其中2个点,滚动小球直到接触到第3个点[11].
图8 BPA算法示意图
使用BPA算法进行点云曲面重构形成的表面充分保留了数据点,保证了数据细节,但是也造成曲面光滑度不够.通过BPA算法求解后,连接所有顶点形成的表面为曲面.由于BPA算法的限制,不能通过消除曲面中的冗余节点达到曲面平滑的目的,否则会形成表面缺口.因此可以在OBJ文件数据优化时对点云数据进行降噪处理,利用最小二乘法进行线性拟合,然后与OBJ文件中存储的关键节点(顶点)进行匹配,进而在OBJ数据中消除关键节点之外的冗余节点,重新建立索引,达到接近原建筑构件形状特征的目的.
2.3.1 IFC标准解析
IFC使用EXPRESS语言描述.EXPRESS语言是一种面向对象的、规范化的数据描述语言,重点在数据及其关系的描述和定义,因此IFC标准对于构件的几何表达方式与前2种略有不同.IFC的几何信息表达方式分为3种:SweptSolid(拉伸实体)、Clipping(剪切实体)、MappedRepresentation(映射表示).其中,SweptSolid和Clipping的几何构成相对简单,一般用于相对规则的几何形状如柱、梁、墙等,具体形成方式如图9所示.
图9 几何表达方式
其中对于几何体形状起决定性作用的扫描形状以由顶点按一定顺序连接的多边形形式储存.如图9所示,#1,#2,#3,#4分别为拉伸基准形状的4个顶点,用平面坐标系即Cartesian坐标系表示各个顶点所在位置,最后使用#5(IfcPolyLine)按顺序连接各个顶点形成多边形底面.
MappedRepresentation主要用于处理复杂形状构件,此类构件通常难以利用扫描形状拉伸形成,几何形状复杂无规律,如处理点云数据获得的表面粗糙的几何实体,因此MappedRepresentation利用SurfaceModel进行表面建模.与Mesh数据格式类似,这种建模形式对面片的顶点进行引用形成多边形面,再通过对面片的索引建立实体.形成几何体的主要参数均储存于IFC数据模型的对应位置上.如图10所示,在构成几何体时Representation属性通过引用#34059的顶点信息获取生成IFC模型所需的数据.
将实体的格式转换为符合IFC标准的数据后,需要将各构件实体信息按照IFC标准的层级结构规则连接形成IFC模型才能保证整体IFC数据模型的正常读取显示.如图11中柱构件的IFC数据模型结构通过IfcRelContainedInSpatialStructure表达空间结构包含的关系实体,该关系直接连入IfcBuilding,墙构件连入IfcBuildingStorey,最后使用IFC中的聚合关系(IfcRelAggregates)连接形成整体模型.
图10 IFC数据模型结构
图11 IFC模型空间结构示例
2.3.2 IFC标准映射关系
经过点云转换的OBJ模型已经建立完整可用的顶点索引,此时IFC数据模型只需要提取顶点坐标以Cartesian坐标系表达,根据OBJ面的信息将引入的Cartesian坐标点依次索引建立多边形边界,形成IFC模型的单个面片.至此IFC模型信息完成了对OBJ数据信息的映射,但是IFC模型相比OBJ模型增加了对应的引用步骤.在IfcConnectedFaceSet中对根据OBJ模型形成的面片聚集建立索引以形成实体模型,具体流程和数据间关系如图12所示.
点云数据经过BPA算法处理后,各顶点连接生成三角面片网格,进而构成了OBJ模型表面,完成点云到OBJ数据的转换.参照Cartesian坐标系将OBJ数据的顶点信息重新索引,其中三角形面片顶点(Vertice)索引可以形成IFC数据模型中IfcCartesianPoint实体,三角形面(Face)索引和IfcCartesianPoint实体共同构建IFC数据模型中多边形(IfcPolyLoop),形成外边界,进而填充为面片,按索引次序形成最终IFC数据模型表面.
图12点云-OBJ-IFC模型的映射关系
编码作为构件的识别码,对于信息传达、识别、检索等具有重要意义,更是计算机处理构件信息的基础.因此本文参考国内外的主要编码方法,提出了一种适用于点云模型显示及应用的编码方法.编码规则如图13所示.
图13 编码规则
编码的前3个部分主要包括地区代码、建筑编号和建筑年限,地区代码使用中国各地区行政代码,如南靖县行政代码为350627,全国统一;LB代表图书馆,01是图书馆的编号;建筑年限作为建筑的独有特征与保修和物业管理有紧密关系,因此也体现在编码结构中,100代表设计使用年限为100 a;WL代表墙,35是女儿墙的代码;构件分解是基于本项目的附加编码,点云数据的处理需要将建筑中的构件进行切割分解,因此需要对每个分解出来的构件进行编码确定唯一性,也有利于后期进行构件范围精确化,因此最后2位数字代表构件分解后的具体区域表示.根据建筑的规模和需要进行编码的建筑构件所占用体积的大小,决定了区域划分的精细程度,划分时应使得同一区域内各类型只存在唯一构件,避免重复.将构件分解后可以把出现的问题精确化、具体化,便于提高管理效率.由图13可看出问题集中到了区域3,成功缩小了范围,提高了精确度.
经过上述数据处理,本文对南靖县图书馆的点云数据实现了部分主要建筑构件的点云模型转换和构件编码,该建筑其余所有构件可以在获取相对应点云模型的基础上进行同样流程的数据处理与IFC模型转换.考虑工程实际应用的便捷性,本文设计了基于B/S(Browser/Server)的结构,并结合WebGL(Web Graphics Library)技术,构建Web端信息系统展示3D点云模型,如图14所示.另外由于进行了编码体系和构件分解的工作,可以实现建筑结构构件数据库的建立.整个系统建立后,可以实现建筑构件信息化管理,及时更新信息进行实物与模型状态对比.通过这一系统不仅可以实现PC端网页浏览,还可以实现移动端浏览器查看,提高了系统平台的便捷性.可视化的实现是通过网页端的Three.js框架将建筑构件模型信息插入,实现网页的渲染和图像显示.系统平台支持3D模型的缩放移动功能,便于观察细节,迅速查找问题所在.同时,WebGL的编写语言JavaScript语言与HTML网页语言交互良好,可以在网页便捷读取查询数据库信息,实现平台的整合,在进行数据管理时直接查看构件模型以做到与实际工程良好匹配.
图14模型管理信息系统结构
1) 利用Poisson-disk sampling算法将原始点云进行去噪处理,优化了点与点之间的位置关系,成功将数据大小压缩至原文件30%左右而不丢失重要信息.
2) 利用BPA算法计算点云之间的最佳连接方式,形成中间格式OBJ数据,将离散的点连接形成网格表面,实现构件实体化.并最终转换成为IFC标准格式数据模型文件,详细描述了转换过程的步骤和数据格式间的映射关系,为点云模型的应用提供可行的实施方案.
3) 通过编码体系的建立,赋予建筑构件具有现实意义的代码,利用WebGL技术将建筑构件转为Web端可视的BIM模型信息,实现了模型数据应用途径的扩增,为数据库的建立奠定基础,搭建了网页端建筑物结构构件模型的查看管理平台,完善了模型的应用情景.