建筑三维重建方法综述
2020-06-05胡芳侨黄永李惠
胡芳侨,黄永,李惠
(哈尔滨工业大学土木工程学院)
1 引言
随着智慧城市的发展,人们利用城市地理信息系统(GIS)与城市各方面信息的数字化在虚拟空间中重建传统城市,而以往的平面数据越来越难以满足需求。三维重建可以将现实世界中建筑物的三维几何信息以数字模型的形式储存在计算机中,在城市规划、智能建筑、数字城市、项目管理等场景中发挥越来越重要的作用。建筑领域中,三维重建的流程一般是首先利用扫描设备获取建筑的三维相关数据,例如深度图像、多视角图像、局部点云等;其次将这些数据处理或拼接为三维点云数据;最后以三维点云为基础,针对特定的任务,进行不同方式的处理和应用。文章分两个章节来介绍建筑的三维重建,第二章节从硬件层面介绍三维点云数据的获取,第三章节介绍三维点云数据面向建筑领域具体任务时所对应的算法及应用。最后结合现状展望三维重建的未来发展 趋势。
2 三维点云数据的获取
本章节介绍建筑领域三维点云数据的获取。三维点云是一个点集,集合中每个点都至少包含了三维空间坐标的信息,也可能会包含点的颜色信息。三维点云记录了被扫描物体表面的几何信息。
目前建筑领域常用的点云扫描设备按照原理分为两类[1],即光飞时间(Time of Flight,TOF)和立体视觉(Stereo Vision)。光飞时间是一种主动测量方式,它通过检测调制后的光波的相位偏移来检测发射电磁波和接受反射电磁波的飞行时间,进而根据已知的光速来计算探测源与被探测目标的距离。光飞时间所对应的设备主要为红外深度相机和激光雷达,前者受限于发射功率,一般用于室内场景,获取带有深度信息的视频和图像,每张图像可以看作局部的三维点云;后者可用于室内和室外,用以直接获取建筑局部的三维点云。光飞时间受光照变化的影响较小,不受物体纹理的影响,但受多重反射(例如玻璃)的影响比较大,测量距离有限。立体视觉是一种被动测量方式,其对应的设备一般为可见光相机,利用多个视角的图像或视频来合成三维点云。立体视觉的代表性算法是运动结构恢复[2](Structure from Motion,SFM),该算法首先对不同视角下的图像进行特征点提取和匹配,然后利用大量的特征点计算包含相机位置等信息在内的相机的内外参数,最后利用三角形测距的原理,计算特征点的三维坐标和估计其它像素点的三维坐标,从而获取最终的三维点云。立体视觉原理受光照变化影响较大,其特征点的提取依赖被测物体表面的纹理,但测量范围较大,且设备造价较低。表1 比较了这两种原理所对应的设备、以及各自的优缺点等等。
针对不同的应用场景,点云扫描的精细程度可按照三维模型的细节层次级别(Level of Details, LOD)来划分,不同的细节层次级别对点云扫描的精度、密度、覆盖范围等有不同的要求。细节层次级别是建筑信息和地理信息建模中的一个标准,本文采用BIM Forum[3]中对建筑三维模型细节层次级别的划分方式,将建筑三维模型的细节层次级别分为LOD 100 ~ 400。图1 展示了不同细节层次级别的建筑模型的示意图。LOD 100 所表示的建筑模型中,元素一般不是几何表示,不显示建筑和构件的形状、大小或精确位置;LOD 200 所表示的模型中,元素一般为占位符,用以表示建筑(或建筑构件)是否存在,不表示具体形状;LOD 300 模型中,建筑(或非细节的建筑构件)的数量、大小、形状、位置和方向等信息可以直接从模型中获取;LOD 350 则加入了更多构件、附属构件和连接处的几何信息;LOD 400 已经具有了足够的细节和精度来表示建筑模型,并且该级别一般会对室内部分进行建模。不同的细节层次级别对点云的空间精度等也有具体的要求,限于篇幅本文不做过多的介绍。表2 中列出了不同设备适用的细节层次级别。各扫描设备所适用的细节层次级别总结如下:红外深度相机一般用于室内场景重建,对应LOD 400;激光雷达可以兼顾室内和室外,用于区域级别的扫描,对应LOD 300 ~ 400;普通相机按照拍摄距离的不同,可用于室内到区域级别的扫描,同样对应LOD 300 ~ 400;搭载相机的无人机则用于区域到城市级别的扫描,适用于LOD 200 ~ 350;遥感卫星用于大规模城市级别的扫描,其精度最低,但速度最快,所重建的三维模型能满足LOD 100 ~ 200 的要求。
以上过程所获得的点云数据一般为局部点云,多个局部的三维点云一般使用点云配准算法进行拼接[4],合成为最终的三维点云数据。点云配准算法的原理是利用多个局部点云重叠部分的相似性进行匹配,其代表性算法为迭代最近点算法 (Iterative Closest Point,ICP)和正态分布变换算法(Normal Distribution Transform,NDT)。ICP 的思想是给定两个局部点云,寻找一个包含旋转和平移的变换,使得其中一个点云变换后,其每个点距离另一个参考点云的最近点的距离之和最小。NDT 主要解决点云的微小变化所带来的干扰(比如树木的摇摆),它假设点云服从正态分布,寻找一个包含旋转和平移的变换,使得使得其中一个点云变换后位于另一个参考点云的扫描平面上的可能性最大。通过以上算法可以得到最终完整的三维 点云。
表1 不同设备的数据获取原理的比较
图1 不同细节层次级别(LOD)示意图
表2 不同的扫描设备所适用的细节层次级别
3 三维点云数据的应用和相关算法
本章节介绍三维点云数据面向建筑领域具体任务的应用及相关算法。三维点云在建筑领域的直接应用主要包括三维模型重建、几何缺陷检测、以及其它的应用。下面会分别介绍这些应用以及相关算法。
3.1 三维模型重建
三维模型重建的目的是基于三维点云数据,重建出建筑的三维模型,是三维点云最主要的应用。三维模型重建又可以分为几何模型重建和语义模型重建[5]。几何模型重建只包含几何信息,因此,重建过程主要是上一章节所介绍的对原始数据(激光扫描、图像、视频等)进行处理,以获得一个完整的点云或点云表面。对于语义模型重建,重建模型在几何信息的基础上还包含了建筑的语义信息,例如建筑的构件划分,因此,重建过程还包括对点云中物体检测等语义信息识别任务。语义模型重建的流程如图2 所示。
语义模型的重建首先要进行目标识别的任务,目的是将点云中每个点标记为对象类别,例如建筑、植被、道路、墙壁、地板、屋顶等,如图3 所示。针对不同的任务,物体检测的策略和算法也不同,主流的方法包括:(1)基于设计规则的方法;(2)基于模板匹配的方法;(3)基于区域生长的方法;以及(4)基于深度学习的方法。
图2 语义模型重建的流程
图3 点云目标识别任务
基于设计规则的方法是使用建筑设计的先验知识来进行物体检测,主要用于规则的建筑构件检测。例如,许多建筑元素为平面,如墙壁、地板等。因此,可以首先从点云数据中识别平面片,然后根据先验知识,将这些平面片划分为对象类别,如墙是垂直的,屋顶和地板是水平的,但屋顶在墙的上面[6]。总结起来,设计规则主要利用构件的大小、位置、方向和构件间拓扑关系这四个变量进行目标检测。基于设计规则的方法一般用于识别墙、管线等建筑构件,它简单有效,适用于具有明显几何特征的简单构件,但识别复杂形状的构件存在困难。
基于模板匹配的方法是利用已知的构件模型或整体三维建筑模型,对点云中的建筑构件进行检测,而这些模型一般来源于设计模型[7]。针对已知的构件模型,一般采用ICP、随机抽样一致(RANSAC)等匹配算法将模型匹配至点云从而进行构件检测;而对于已知的整体三维建筑设计模型,一般先采用地理参考将三维模型与三维点云进行匹配,然后对逐个构件进行检测。例如在参考模型中寻找距离柱子一定距离内的扫描点,并将这些点视为属于柱子。模板匹配的方法要求已知构件模型甚至整体三维建筑模型,因此这一方法主要基于已知的三维设计模型,在现场扫描的点云的基础上进行建筑施工过程跟踪、质量检测等任务。
基于区域生长的方法一般用于区域范围级别的建筑点云分割,将建筑点云从背景环境中分离出来。它包括两个步骤[8]:首先根据每个点的曲率来识别种子点,其次根据预定义的标准(如点的邻近性和表面的平整度)来对种子点进行生长,从而达到点云分割的目的。区域增长方法比对噪声的鲁棒性更强,但对于初始种子区域的位置和区域边界附近点的法线和曲率等的不准确估比较敏感。
基于深度学习的方法一般使用监督学习,进行目标检测和点云分割这两大任务,是比较通用的方法,比如Pix4D软件使用深度学习可以实现建筑和地形点云的分割。目标检测[9]一般是从点云中使用三维标定框(Bounding Box)检测墙、门窗等目标;点云分割[10]则是对点云中的点进行逐点分类。一般来说,基于监督学习的方法能够处理具有复杂几何形状的对象,如建筑设备和脚手架。然而,这种方法的缺点是需要大量的标记数据集来训练分类器,而标注数据则需要大量的人力、时间和精力。
在目标识别之后,点云中的每个点会被标注上对象类别,得到多个带标注的点簇,语义模型的重建还需要基于每个点簇生成或拟合三维形状,这一步也称为形状拟合。三维形状的表示方法有多种,如图4 所示,如(1)点云;(2)几何型元(Geometric Primitives),包括平面、圆柱体、立方体、曲面等;(3)多边形网格;(4)体素;(5)隐式曲面。在建筑领域,三维模型多以几何型元和多边形网格的形式表达。一些辅助设计软件会同时使用两种或多种表达方式。
几何型元是使用简单的形状的集合表示建筑,例如用平面表示墙。几何型元的拟合一般采用霍夫变换、ICP、RANSAC 等算法进行拟合。这种方式通常只能表示理想形状,无法表达破坏状态、建筑缺陷、复杂构件等,因此通常用于低LOD 的场景,例如城市级别的三维地理信息建模(GIS)和低LOD 的建筑信息模型(BIM)等。
多边形网格使用节点和边来表示三维表面,它的好处是可以表示不规则形状和细节部分,因此一般用于单体建筑和单个构件的建模。基于点云的多边形表面重建的代表性算法为泊松表面重建[11](Possion Surface Reconstruction),它是一种隐函数表面重建方法,利用指示函数表示曲面内外,求解函数的同时提取等值面,从而得到一个水密的并且保留局部细节的三维曲面。
体素和隐式曲面的方法一般用于深度学习领域,最近也有一些工作尝试将基于深度学习的三维重建应用到建筑领域。体素和隐式曲面这两种方法的最大缺陷是分辨率有限,目前最优的方法也只能达到2563的分辨率,此外这两种方法对于边缘的表达能力比较弱。
在上述几种方法之外,也有人工和半自动分割和标记点云的方法,它们通常搭配建模软件软件使用,一般适用于复杂的不规则形状的结构。人工和半自动的方法也是目前建筑三维领域最可靠的方法。半自动的方法如Autodesk、Bentley和ClearEdge3D 等软件商为建筑信息建模提供了解决方案。例如ClearEdge3D可以半自动地拟合点云中建筑构件的几何形状,并且不需要预先识别或分割点云。这些半自动拟合的软件一般是为建筑和工业场景定制的,但只能识别或建模标准的形状,如矩形的墙壁、管道、钢梁等,并且大多依赖提前分割的点云。人工分割和建模一般使用设计软件,转动并选取点云中的感兴趣区域进行分割,并使用建模软件进行人工建模。
三维模型重建是很多后续应用的基础,例如三维地理信息模型、虚拟现实、数字建筑可视化、集成多元信息的BIM模型、灾害管理与评估等。例如,所获得的三维模型可作为一个基础,用以集成各种结构健康监测数据[12,13],包括损伤的图像信息[14]、损伤的空间位置信息[15]和结构构件状态信息[16]。
图4 三维形状的不同表示方式
3.2 几何缺陷检测
几何缺陷检测是根据点云数据检测建筑或建筑构件与几何相关的缺陷。根据检测的不同类型,几何缺陷检测可分为三类,即(1)尺寸检测;(2)表面缺陷检测;(3)位移和变化检测。几何缺陷检测的基本思想是检测现有点云与参考模型,即逐点计算与参考模型的最近距离。根据检测任务的不同,该参考模型可以是设计模型或不同时间点的点云。
尺寸检测主要是检测建造尺寸与设计尺寸的差异,主要有建筑物外墙的尺寸、建筑物构件或预制件的尺寸等。所检测的变量主要是大小、形状、位置和朝向。尺寸缺陷检测通常需要已有的设计模型,并将扫描到的点云与该设计模型进行匹配和对比,最后识别尺寸 差异。
对于表面缺陷检测,主要应用在混凝土和钢结构的表面检测,主要涉及表面裂缝、混凝土剥落、平整度和变形。前两者是混凝土或钢结构的表面局部缺陷,后两者是整体形状缺陷。对于裂纹和剥落,常用局部几何特征来检测目标,如局部曲率、法向量、或定义其它检测算子。对于表面平整度和变形,通常采用相关行业标准中规定的定量指标进行测量。对于平面的表面,可直接检测点云表面与平面的位移和变形;对于非平面的表面,一般需要与设计模型匹配并计算位移和变形。
位移和变化检测主要研究结构的相对变化,例如灾害前后建筑物的倒塌、挡土墙位移、大坝位移、桥梁挠度。该检测往往需要在一定的时间间隔内采集点云数据,通过比较不同时期采集的点云数据来监测结构的位移和变化。
3.3 其它应用
点云数据还可以用于建筑性能分析,例如力学分析、可达性分析、建筑能量分析等。对于力学分析,点云数据主要提供用于有限元计算的三维几何模型;对于建筑可达性分析,点云数据可用于检测建筑入口,进而对建筑可达性进行诊断。在建筑能源分析中,通常需要结合热成像和可见光图像,将热图像映射到三维坐标,进而分析日照等能源 分析。
此外,点云数据也可以用于施工进度管理。施工过程的点云数据通常是随时间获取的,然后与包含工程计划时间线的4D BIM 模型进行比较,将实际进度与计划进度进行对比,识别异常进度或进行进度管理。一些研究还结合点云数据和虚拟现实(VR)来提高施工安全性。例如利用点云数据生成施工场地资源的三维模型,并基于模型在VR 环境下进行安全模拟。
4 结论
本文首先回顾了建筑领域的点云数据,并从获取原理和适用范围入手,介绍了几种主流的扫描设备。在点云的基础上,本文介绍了几个重要的应用。首先是三维模型重构,它是很多三维领域应用的基础;其次是几何缺陷检验,包括尺寸、表面、位移和变化检验;本文还简要介绍了点云数据的其它应用,如建筑性能分析、进度管理等。
在文献回顾和讨论的基础上,本文对未来研究重点和发展趋势做了一下思考。首先,硬件层面,目前的硬件都存在较大的局限性,并且缺少面向建筑扫描的专业化解决方案,因此未来需要更轻便、廉价、但采集质量更高、更适用于建筑领域的专业化采集设备。其次,现有的点云识别和建模算法或者是面向特定结构的,或者是无法处理复杂的点云,亦或是需要大量的人工参与,因此面向复杂环境和大规模数据的点云识别算法有待研究。最后,点云数据还有更多的利用价值有待开发,例如点云数据的实时分析与可视化方法、点云数据与其它模态数据的结合利用等。