地面点云数据快速重建建筑模型的分层方法
2015-03-28万怡平习晓环王方建
万怡平,习晓环,温 奇,王 成,王方建
(1.中国科学院遥感与数字地球研究所 数字地球重点实验室,北京 100094;2.中国科学院大学,北京100049;3.民政部国家减灾中心,北京100124)
地面三维激光扫描技术(Terrestrial Laser Scanner,TLS)可以在短时间内获取目标高精度、高密度的三维空间信息,这些海量的离散点云数据可很好地描述目标的外部轮廓。在利用这些数据进行地物三维模型重建时,关键是识别目标表面的特征点云,提取边界点并构建几何模型或轮廓[1],这也是利用海量点云数据自动或半自动重建建筑物三维模型的关键。近年来国内外学者在这方面已经开展大量的研究,取得诸多研究成果[2-7],这些方法大多通过对点云数据进行栅格化以及面片分割,最终实现建筑模型的重建。
田庆[8]通过对地面点云数据格网化,以及分割平面点云并分片保存,然后利用八叉树网格化、索引方法提取边界点,进而建立边界点云索引,实现目标边界线的提取。储珺等[9]为解决海量点云处理复杂和噪声影响等问题,利用点云的几何统计特征开发多平面检测算法。Wang等[10]对地面点云数据进行分割,得到建筑物不同部位的面片点云,然后进行规则化,提取各面片的边界进而实现建筑物重建。Peter等[11]根据屋顶面片的边缘位置和长度选择性相交的特点(平行、垂直、斜交等)提取屋顶模型,然后垂直投影到地面得到建筑模型。Pu等[12]提出了基于知识的(Knowledge based)建筑模型重建方法,依据建筑物面积、中心点、法向量等信息对地面、墙、窗、屋顶、门等进行分类定义,已知的建筑物信息作为约束条件,应用最小二乘等方法重建模型。沈蔚[13]等利用α-Shape算法提取建筑轮廓线,再利用管子算法进行简化,进而得到建筑物线框模型。刘进[14]提出一种自适应的点云模型重建方法,目的是解决RANSAC(Rando m Sample Consensus)算法中参数分割和有效噪声判断难的问题,需多次分割和迭代。王茹[15]等首先对获取的建筑点云数据按照建筑物高度进行分块、索引和排序,以期提高层块中数据简化的速度。
可以看出,以上方法大多需要对海量点云数据栅格化、面片分割和规则化、边界提取等复杂的过程,而且这些算法有一定的适应范围和条件,或者只考虑墙体的重建而很少关注门、窗等建筑物的重要构成部分。利用TLS点云数据进行模型重建的本质即从海量点云中提取模型自动重建所需的边界点,而这些点相对于全部的建筑物点云数据数量非常少。本研究提出一种分层的方法,从TLS数据中快速重建建筑物模型,同时利用传统方法对同一建筑物点云数据进行建模,对两种方法的效率和结果进行比较,验证本方法的可行性和效果。
1 数据与方法
1.1 试验数据
研究对象为中国科学院北京新技术园区内大门口的传达室,长12 m、宽5.5 m、高4 m。所用地面三维激光扫描仪为Riegl-VZ1000,最大脉冲频率和射程分别为300 k Hz和1400 m(反射率90%的地物),可以水平方向360°、垂直方向100°扫描(无云台支持),测距50 m处点云精度可达2 mm。共架设4个扫描站点,经配准拼接及去噪后点云数据为2 053 617个,点间距为0.004 m,只存储点的三维坐标,文件格式为.xyz。由于扫描时站点架设高度及垂直扫描角度有限,未能获取到顶部的点云数据,但不影响本文方法在模型重建中的应用。图1为获取建筑物的点云数据。
为了验证方法的适用性和效率,同时对园区内另一大楼进行完整扫描,如图2所示。该建筑物长59 m、宽19 m、高30 m,其特点是窗户多但相对规则,共架设6个扫描站点,经过配准拼接及抽稀去噪后共有点云2 586 455个,点间距0.01 m,文件格式同上。
图1 试验建筑物地面点云数据
图2 验证大楼地面点云数据
1.2 直方图统计去噪
对于噪声点云的去除,现有研究从算法和硬件等方面都进行了有益探索,但普遍存在计算量大的问题,如杜小燕[16]等基于点云模型的双边滤波去噪算法、徐波[17]等基于CUDA的点云去噪算法,利用GPU的并行计算进行去噪计算。本研究考虑到建筑物大多比较规则,其表面的点云分布在空间上呈现很强的聚集性,即某一空间平面有一定数量的描述对象表面特征的点,在平面的边缘有少量的无序离散分布的噪声点。根据这一特性,为简化去噪过程,采用基于直方图统计的方法将各平面周围的无序噪声点去除。
首先根据点云数据生成统计直方图,即相对于某个平面,点云与该平面的距离由小到大进行分段统计,其中分段大小(每段的距离跨度大小)直接影响去噪的效果。经过对比试验,根据距离的总跨度将点云数据平均分成500等分。依据点与平面之间距离,统计其在不同分段区间内的数量,对相应的分段区间进行累加,继而转化为各分段区间占总点数的比例,生成统计直方图。由于建筑物的规则性和点云的聚集性,非噪声点所在分段区间的比例必然在一较高范围内,噪声点所在分段区间的比例接近于0。然后根据直方图统计分布曲线设置阈值,将占比小于某一距离值范围内的点删除进而达到去除噪声的目的,曲线及结果如图3和图4所示。图4中墙面右上突出部分的噪声点云(白色框内)经过直方图统计去噪而被删除。针对不同的平面进行统计,即可将噪声点去除。
图3 统计分布曲线图及阈值参考线
图4 去噪前后对比
1.3 分层方法
基于TLS数据进行模型重建一般要经过面片分割、边界点云提取、最佳直线拟合、模型生成等步骤,其中面片分割、边界点云提取是相对复杂的过程。
本文所研究的建筑物有以下特性:
1)屋顶为平面,且平行于或近似平行于地面;
2)墙面垂直于地面,其在地面的投影为闭合多边形;
3)门及窗户呈矩形,且相对墙面有一定外凸或内凹。
根据建筑物具有相对规则的外形及建筑物建造过程中逐级增加原理,将建筑物在竖直方向平均分成高差相等的若干层,各层点云投影到本层某一高度上,从而直接得到该层边界点云,再进行各层直线拟合及层间线框模型连接判断,生成建筑物整体线框模型。本文根据研究对象的特点将其分成100层(见图5),然后将每一层的所有点投影到该层高度值最大且垂直于竖直方向的平面上,该层所有点即为某一平面内的边界点。
图5 分层后效果
1.4 线框模型重建
利用得到的边界点云即可构建三维模型。首先根据每层的边界点云拟合得到最佳直线,本文采用随机方法生成线段,即随机选取两个点连接为一直线,计算其他点与该直线的垂直距离,小于某一阈值的点认为属于该直线;如有超过一定数目的点属于该直线,则该直线为所求的边界线之一,将其保存于该直线的数组中,从属于该直线的所有点中计算得到线段两端的端点。如属于该直线的点的数目小于某一阈值,则放弃该直线,继续搜索下一直线,直到所有点搜索完毕。然后根据得到的线段及该线段的端点对所有线段进行连通性分析,并进行闭合操作,即生成单层的线框模型。
最后对相邻层的线框模型进行连接判断。对各层线框模型的线段端点,以某一拐点端点为起始点,统一按顺时针或逆时针方向排序。相邻层间可以连接的端点必然是在同一竖直线上,因此判断依据即本层端点与下层某一端点的连线与竖直方向的夹角(定义为α角)是否在一个很小的限差内,如是,则连接两端点,否则按顺序搜索下一个端点,最后完成层间的连接。图6为基于分层方法的线框模型生成流程。
由于建筑物是按竖直方向进行分层,限差内的端点(即层间可连接端点)的α角应趋近或接近于0,该端点在竖直方向上投影于同一平面两点几乎可重合,即两点坐标的值几乎不变,仅由于两点处于不同层而表现在值的变化,值差异很大的两个层间端点必然不能相连。因此判断两端点能否相连可简化为判断两个端点在水平面上的欧氏距离,即:
图6 线框模型生成流程
垂直方向端点连接后,除最高和最低层,对中间各层进行判断:如本层端点与上一层端点都有连接,则删除本层的线框模型;如本层存在未与上一层端点相连的端点,则本层端点间的线段保留,据此即生成完整的建筑物线框模型,如图7所示。
图7 试验建筑物线框模型
2 结果分析与验证
基于直方图统计去噪方法,由于对点云进行的是统计过程,避免一般去噪方法中点之间相关性计算这一计算量大的步骤,因此能提高去噪效率。对于由环境而非设备自身原因产生的离散噪声,可以有效的将其去除。
从图7可以看出,所建立的线框模型还不尽完美,如存在线段冗余和缺失的现象。线段缺失主要是由于数据缺失,特别是建筑物内部的墙和门等部分数据缺失,导致在连通性判断时出现错误连接、没有边界的地方会出现直线等,这是模型自动化重建过程中难以避免的一个难题。冗余的原因在于边界点没有高度的聚合,即沿直线垂直方向的点间距较大,连通性分析过程中端点连接判断出现错误。另外,窗户、门等建筑物构件相对于墙面有一定的外凸或内凹,否则单层投影后的点云无法形成窗户、门等的边界轮廓。
为了进一步验证本方法的适用性和效率,利用图2的点云数据,分别用一般线框模型重建方法(面片分割、边界点提取、线框模型生成等过程)及本文方法进行对比。本文算法是基于vs2010平台利用C++语言编程实现,RANSAC算法和-Shape算法通过PCL库和CGAL库来实现;硬件平台为OPTIPLEX 390台式机,4 G内存、3.3 GHz的i3处理器,操作系统为64位windows7。
一般建模方法中,利用RANSAC[10]进行面片分割用时为1 430.365 s,获得分割面片229个,其中距离阈值为0.2,点数阈值为500,如图8所示。在此基础上,利用-Shape算法进行边界点提取所用时间为12 411.622 s,边界线生成即线框模型生成所用时间为45.331 s。利用本文的分层方法,根据高程值将点云分为100层所用时间为14.237 s,通过批处理对所有层分别进行投影时间为8.764 s,此时即产生各层的边界点,各层线框模型生成及层间端点连接所用时间为568.398 s,结果如图9所示。
图8 面片分割后验证大楼点云显示
图9 本文方法得到的验证大楼线框模型
可以看出,基于分层技术的建筑物线框模型快速生成方法在模型重建效率方面具有很大的优势。RANSAC算法的原理是随机抽样选取部分点进行共面分析,效率不高,而-Shape算法通过设定的半径对所有点进行域内外的判断。本文方法原理简单、计算量小,可以快速提取边界点,提高模型自动重建的效率,而且模型重建效果好,并且窗户等建筑物细节结构的识别也有较好的效果。
3 结束语
本文针对TLS点云数据,提出基于直方图统计的去噪方法和基于分层技术的建筑物快速重建方法,取得很好的应用效果。由于是将各层点云投影到平面得到边界点,因此难点在于准确提取内凹或外凸等不明显的建筑物构件,如窗户、门等信息。从两种方法的比较可以看出,在生成最后的线框模型时,本文方法效率高于传统方法。这在于减少了点云面片的复杂过程,但分层方法生成的线框太多,在连接时需要判断和搜索,最终模型的精度对噪声去除效果依赖性较强,因此下一步工作将对算法进一步完善,提高边界线的提取精度,引进更加精确的去噪算法,减少人为因素的影响。同时,分层方法的特点决定其建立在门窗等结构相对于墙面有一定的凹凸关系上,因此需要进一步研究更复杂的建筑物,如圆形或非矩形等,拓展方法的适用性。
[1] 王小超,刘秀平,李宝军,等.基于局部重建的点云特征点提取[J].计算机辅助设计与图形学学报,2013,25(5):659-665.
[2] 潘建刚.基于激光扫描数据的三维重建关键技术研究[D].北京:首都师范大学,2005.
[3] 浮丹丹,周绍光,徐洋,等.基于主成分分析的点云平面拟合技术研究[J].测绘工程,2014,23(4):20-23.
[4] 江恒彪.基于实体化的地面点云建模技术[J].测绘工程,2014,23(7):30-33.
[5] TAREK M,ZHU Qing,DU Zhiqiang,et al.An i mpr oved segmentation appr oach for planar surfaces fro m unstr uctured 3D point clouds[J].The Photogrammetric Record,2010,25(129):5-23.
[6] PU S VOSSEL MAN G.Automatic extraction of building features fr o m terrestrial laser scanning[J].International Archives of the Photogrammetry,Remote Sensing and Spatial Infor mation Sciences,2006,36(5):5pages.
[7] 郑凤娇.地面Li DAR技术与移动最小二乘法在三维建模中的应用[J].测绘科学,2012,37(4):93-95.
[8] 田庆.地面激光雷达数据的分割与轮廓线提取[D].北京:北京建筑工程学院,2008.
[9] 储珺,吴侗,王璐.基于体密度变化率的点云多平面检测算法[J].计算机应用,2013,33(5):1411-1419.
[10]WANG Fangjian,XI Xiaohuan,WANG Cheng,et al.Boundary regularization and building reconstruction based on terrestrial laser scanning data[C].IEEE Geosciences and Remote Sensing Sy mposium, Melbour ne,Australia,21-26 July,2013:1509-1512.
[11]PETER D,PFEIFER N.A comprehensive automated 3D approach for building extraction,reconstr uction,and regularization fro m air bor ne laser scanning point clouds[J].Sensors,2008,8(11):7323-7343.
[12]PU S,VOSSEL MAN G.Knowledge based reconstruction of building models from terrestrial laser scanning data[J].ISPRS Jour nal of Photogrammetry and Remote Sensing,2009,64:575-584.
[13]沈蔚,李京,陈云浩,等.基于Li DAR数据的建筑物轮廓线提取及规则化算法研究[J].遥感学报,2008,12(5):692-698.
[14]刘进.自适应的基于点云的CAD模型重建方法[J].计算机应用,2013,33(9):2617-2622.
[15]王茹,周明全,邢毓华.基于聚类平面特征的三维点云数据精简算法[J].计算机工程,2011,37(10):249-254.
[16]杜小燕,姜晓峰,郝传刚,等.点云模型的双边滤波去噪算法[J].计 算 机 应 用 与 软 件,2010,27(7):245-246.
[17]徐波,唐杰,武港山.基于CUDA的点云去噪算法[J].计算机工程,2011,37(2):224-226.