王田磊,袁进军,王建锋
(1.郑州方宇测绘工程有限公司,河南郑州450052;2.清华大学公共安全研究院,北京100084; 3.河南理工大学矿山空间信息技术国家测绘地理信息局重点实验室,河南焦作454003)
三维激光扫描技术在建筑物三维建模可视化中的应用
王田磊1,袁进军2,3,王建锋1
(1.郑州方宇测绘工程有限公司,河南郑州450052;2.清华大学公共安全研究院,北京100084; 3.河南理工大学矿山空间信息技术国家测绘地理信息局重点实验室,河南焦作454003)
详细介绍利用三维激光扫描数据去噪、压缩、配准中采用的方法和应注意的问题,对点云数据分割、建筑物轮廓线提取等关键技术进行探讨和分析,提出一套完整的建筑物三维建模可视化方法。
三维激光扫描;三维建模;可视化
三维激光扫描技术作为一种高速度、高精度获取被测物体表面的三维坐标的新技术,近年来有着长足的发展和广泛的应用。三维激光扫描技术的出现克服了传统单点测量的局限性,是对立体物体进行无接触扫描,同时将立体世界的信息转换为计算机可以处理的数据的全新测量方法。
本文采用Rigel VZ400三维激光扫描成像系统,分辨率设定为2 cm,测距在200 m范围内,获取了近6000万的点云数据。本文根据获取的建筑物点云数据,探讨了点云处理和建模实现的关键技术,并提出了一套行之有效的建筑物三维模型快速重建方法。
本文主要研究竖面垂直、平面水平的规则建筑物。采用的方案是:首先对获取的点云数据进行地物分离,提取建筑物数据;其次进行建筑物点云数据的预处理,包括数据去噪、数据压缩、数据配准;然后进行建筑物三维模型重建,包括数据分割,轮廓线提取,三维线框模型构建;最后对建筑物的三维模型进行渲染,进行建筑物三维可视化的实现。技术流程如图1所示。
通过三维激光扫描仪在实地采集到的原始点云数据,由于数据量大,且其中分布随机或人为造成的噪声点及每一测站数据的局部坐标系等问题,需要针对不同建模对象选择合适的数据去噪、数据压缩、配准方法进行处理才能应用到后续的模型重建和显示的工作上。
图1 基于三维激光扫描建筑物可视化技术流程
1.数据去噪
点云数据中的噪声一般由两方面原因引起[1]:一是外界环境因素干扰,如扫描仪工作时人员走动、车辆、树木等障碍物造成的遮挡,或一些明显的远离点云中心区的散乱数据点;二是在扫描过程中,由杂散光、背景光或者CCD内部产生的热噪声、电噪声、图像采集卡本身和信号在电子电路传输过程中带来的随机噪声。对第1种原因产生的明显异常点和散乱点的处理方法是通过肉眼判别直接删除。第2种情况引起的噪声,由于和正确的点云混在一起,因此需要通过中值滤波、均值滤波、高斯滤波等方法进行平滑处理。而在这3种方法中,高斯滤波的平均效果较小,能够较好地保持特征点,因此优先用于建筑物数据去噪。
2.数据压缩
利用三维激光扫描技术进行空间数据的获取,具有速度快、精度高、覆盖广的特点,但同时获取的数据集也成倍的增加,造成运算效率低下。因此有必要采取一些方法,在保证失真较小的情形下,尽可能地保留原始点云的特征,最大限度地压缩点云数据。目前常用的方法主要为最小距离法、角度偏差法、距离-角度联合法与弦值法[2]。
弦值法的原理如图2所示,即先连接一扫描数据点的首尾两端点p1、p2,并以此为基线,比较该序列其他数据点距离此直线的距离,找到最大距离的数据点pi,将其记录下来;然后再连接p1、pi及pi、p2,并以它们为基线寻找它们之间的弦值最大的点,找到后将其插入到已经选取的数据列中。如此继续下去,设定一个阈值,当递归分割到一定程度,弦值小于给定的阈值时,说明这两个数据点之间曲率变化已经很小,两点之间的数据点则予以舍弃。
图2 弦值法原理图
从图3可以看到,利用弦值法可以很好地删除掉平面上的多余点,将建筑物的特征点保留下来。
图3 最小距离法压缩效果
3.点云数据配准
本文采取特征点配准的方法,特征点的选取应优先采用反射标定物,或者比较明显的建筑物轮廓点。为了在配准中提高精度,可以结合实际采用两种方法:第1种方法是直接将每次测站的点云数据转换到大地坐标系中;第2种方法是以任意一站坐标系为基准,下一站依次向前一站数据转化。第1种方法的优点是不存在多站转换的误差传递,减少了操作步骤;缺点是每个测站的转换是独立的,存在人为因素而形成的微小误差且不易分辨。第2种方法的优点是因控制点经过建网平差,精度很高,可以用最后一站的控制点对转换后的对应点进行校核;缺点是当测站比较多时,误差累计较大,往往会超过精度要求。因此,在实际应用中应根据具体情况灵活运用配准方法,当测站较少时可以采用第1种方法进行配准;当测站较多时,采用第2种方法分部分进行配准。
国内外学者对三维建模进行了深入的研究,李卉总结了国内外道路三维模型和道路三维建模的研究成果,获得了道路三维模型[3]。建筑物点云数据的模型重建中,国内外学者均进行了深入的研究。这些研究多数从两个方面进行建筑物边界的提取:第1种是对点云数据网格化,建立拓扑关系,从而进行边界线提取[4-5];第2种是通过点云数据的距离信息、CCD影像等方法提取建筑物的特征[6-7]。但是由于建筑物庞大的数据量,通过三角网格建立拓扑结构来提取边界在曲面反求过程中效率非常低;而第2种直接提取建筑物特征的方法在实际应用中还存在不少问题。因此,本文采用数据分割、曲面拟合提取轮廓线以及交互组合的方法来实现建筑物的三维建模。
1.数据分割
点云数据为散乱数据点,即每个数据点只包含点的三维坐标值,而没有明确给出其对应的几何拓扑信息,因此一般需要根据空间点的邻域关系估算点对应的拓扑关系,从而估算点对应的几何信息(如数据点单位法向量、微切平面、曲率大小和邻接关系)。本文通过对点云数据建立kd-tree索引,利用kd-tree进行点云邻域搜索,便可以在不知三维点云数据拓扑(邻接)关系的情况下,设定距离阈值快速获取每一点的邻域,从而确定该点邻域的法向量。进而利用两个相邻局部平面的法向量共向性原则和局部平面点集共面性原则[7],快速进行建筑物面片的分割。具体步骤如下。
1)对点云数据建立kd-tree索引。点的邻域查找方法为search(i,R),其中,i为节点;search表示邻域,由点云中一点p和搜索半径R决定。所有落在search中的点便是p点的最近邻域点。
2)先从一种子点开始,基于kd-tree查找该点的邻域R,拟合该邻域,若拟合不成功,则将该点加入Cnull;否则,计算出该邻域的几何信息,根据几何信息对邻域内的点分类,并加入新创建的点集C1、C2、…、Ci。
3)遍历到点云数据中的第i个点,基于kd-tree搜索该点的邻域,拟合该邻域,不成功,将该点加入Cnull;否则,计算该邻域的几何信息。
4)利用几何信息判断该邻域中的点与点集C1、C2、…、Cn-1是否符合共面条件,若符合则将符合的点加入到相应点集中;否则,加入新创建的点集Cn。
5)遍历下一点,转到步骤3)。
经过上述过程,把点云数据C分割为一系列的点集C1、C2、C3、…、Cn和Cnull,其中每个点集都是C的一个子集。
图4为建筑物点云数据进行平面分割实例。没有归入平面的数据点,是由于噪声等原因形成的散乱点没有成功拟合造成的。
图4 平面分割结果
2.轮廓线提取
点云数据经过分割后,就可以把空间问题简化为平面问题。即可以将点云数据投影到平面或柱面以及球面上,然后在投影上提取轮廓边界后映射到三维上。本文仅限于讨论平面映射问题,柱面和球面边界提取可借助平面方法进行。
目前关于平面投影点云数据提取边界线的方法是网孔法,即先把散乱点云网格化,从而得到边界网孔和非边界网孔[9];然后把所有相邻的边界网孔相互连接起来,得到边界网孔环,其效果如图5所示。利用这种方法得到的边界逼真细腻,但是对于比较规则的建筑物,该方法会将点云数据边界上的噪点(或者墙壁的异物)考虑进去,形成曲线,达不到建筑立面垂直的效果。因此,本文采用凸包算法提取边界线并结合人机交互方法进行修正。
凸包(convex hull)是指点集的一个最小凸多边形,满足Q中的点或者在多边形边上或者在其内。图6的封闭多边形就是点集Q={p0,p1,…,p12}的凸包。
图5 网格法生产的边界线
图6 凸包示意图
利用该算法提取边界线的步骤如下:
1)找到所有点中最左边的(y坐标最小的)点,如果y坐标相同,找x坐标最小的点。
2)以步骤1)中找到的点为基准点求所有点的极角arctan(y-y0,x-x0),并按照极角对这些点排序,前述基准点在最前面,设这些点为 P0、P1、…、Pn-1。
3)建立一个栈,初始时P0、P1、P2进栈,对于P2点以后进栈的点P3、P4、…、Pn-1,每次进栈后都要进行“向左转”关系检验,若栈顶的两个点与其前一个点不构成“向左转”的关系,则将栈顶的点出栈,直至没有点需要出栈以后将当前点进栈。
4)所有点处理完毕之后栈中保存的点就是凸点。
5)将所有凸点连接就构成边界线。
图7即为用该算法提取的建筑物轮廓线。由图7看到,轮廓线由凸点连接而成,包含了建筑物的部分特征点。可再对生成的边界线进行修正,形成完整的边界线,如图8所示,与实物吻合,效果很好。
图7 自动提取的边界线
图8 修正后的边界线
3.三维线框模型重建
在生成建筑物的主要轮廓后,还要作进一步的组装工作,将每个面的轮廓线合并,才能形成完整的模型。另外,由于建筑物的楼梯、阳台、窗户、雨棚板等构件会因为遮挡等原因,造成点云数据形成空洞,无法自动生产边界线。因此,要在AutoCAD软件中进行修改。
首先将轮廓线导入AutoCAD软件中;然后根据几何原理及建筑物的CCD照片进行绘制。这里需要注意的是,导入的轮廓线必须要有足够的几何信息。图9为楼房的完整三维模型。
图9 二层小楼三维线框模型
可视化是指模型或数据经过一定处理后显示在计算机屏幕上的过程,三维可视化在GIS中可以增强用户与数据、模型之间的交互操作性能,具有广泛的应用前景。
本文利用采集的点云数据建立模型,同时同步获取外观影像,并对已建立好的三维模型进行纹理细节的布设,实现了建筑物三维模型的可视化显示。
关于纹理的获取,采用了现场拍照的方式,并通过实地采集建筑物的外观影像,以及利用Photoshop等图像处理软件,实现由普通照片到可用纹理的转变,进而完成建筑物模型的创建过程。纹理裁切时的长宽尽量控制在2的N次幂大小,以加快计算机显卡加速绘制填充的速度。
对于已经建立好的建筑物三维线框模型,按照以上方法对其进行纹理的布设、实际效果的逼真显示,以及赋予其可用的纹理贴片后的模型实际效果如图10所示。
图10 建筑物实体模型
本文分析研究了利用点云数据进行三维模型构件的技术方法和过程,并在此基础上实现了场景的三维可视化显示。在以下几个方面还需要不断创新和完善:
1)在点云数据预处理方面,对于数据预处理的其他方面如空洞填充、数据平滑等的分析,具体方法及实现,还需要作进一步的研究。
2)在建筑物三维建模方面,基于三维激光扫描数据的不规则边界和立面信息的自动提取方法尚有很大的挖掘空间。
[1] LIEHTI D D,LICHTI M G.Experiences with TerrestriaI Laser Scanner Modelling and Accuracy Assessment[C]∥The International Archives of Photogrammetry.Dresden: Remote Sensing and Spatial Information Sciences,2006.
[2] 洪军,丁玉成,曹亮,等.逆向工程中的测量数据精简技术研究[J].西安交通大学学报,2004,38(7):661-664.
[3] 李卉.集成LiDAR和遥感影像城市道路提取与三维建模[J].测绘学报,2011,40(1):28-30.
[4] 李必军,方志祥,任娟.从激光扫描数据中进行建筑物特征提取研究[J].武汉大学学报:信息科学版,2003,28(1):65-70.
[5] 刘学,张弘.基于三维激光扫描数据的构筑物三角构网模型[J].测绘科学,2008,33(1):167-170.
[6] 王健,靳奉祥.基于车载激光测距的建筑物立面信息提取[J].山东科技大学学报:自然科学版,2004,23(4):8-11.
[7] 王晓南,郑顺义.基于激光扫描和高分辨率影像的文物三维重建[J].测绘工程,2009,18(6):53-56.
[8] STAMOS I,ALLEN P E.3-D Model Construction Using Range and Image Data[C]∥Computer Vision and Pattern Recognition(CVPR).Hilton Head Island:[s.n.],2000.
[9] 李江雄.反求工程中复杂曲面边界线的自动提取技术[J].机械设计与制造工程,2000,29(2):26-28.
The Application of TLS Technology in the 3D Visualization Modeling
WANG Tianlei,YUAN Jinjun,WANG Jianfeng
0494-0911(2012)09-0044-04
P234.5
B
2011-08-19
河南理工大学矿山空间信息技术国家测绘地理信息局重点实验室开放基金
王田磊(1976—),男,山东东营人,工程师,主要从事工程测量、地理信息开发与应用方面的工作。