基于机载与车载LiDAR数据的LoD3城市建筑物模型自动重建
2018-12-20闫利李瑶谢洪
闫利, 李瑶, 谢洪
(武汉大学测绘学院,武汉 430079)
0 引言
利用三维模型描述和分析地表空间信息被认为是人类掌握地球表面信息最好的方式[1]。建筑物作为城市空间的主要内容,是摄影测量与遥感、计算机视觉等领域研究三维建模的重点对象。目前,获取建筑物空间信息的方式主要有机载LiDAR技术和车载LiDAR技术。机载LiDAR技术可大范围获取建筑物的屋顶信息,但存在缺乏立面信息和屋顶轮廓精度低等缺点,只能重建CityGML标准中由详实的屋顶结构和简易墙面构成的LoD2模型[2];车载LiDAR技术能够获取丰富的立面细节并构建建筑物立面模型,与机载LiDAR技术形成优势互补[3]。由详实的屋顶和立面结构构成的LoD3模型在城市规划、光照分析、能源需求估计和房价预测等方面有广泛的应用空间[4],因此研究综合利用机载与车载LiDAR数据生成建筑物精细模型的方法具有重要的理论和应用价值。
目前,利用机载LiDAR数据生成LoD2建筑物模型的研究已臻于完善[5-7]。Xiong[8]采用模型驱动的方法,将复杂建筑物的屋顶面根据拓扑图分解为预定义基元库中的基元分别进行模型重建;Zhou等[9]采用2.5D双轮廓法,将建筑物屋顶点云数据扫描转点到二维网格后聚类成超点集,最后构建建筑物的多边形网格模型。利用车载LiDAR数据提取或重建立面的研究也日趋丰富[10]。杨必胜等[11]基于维数特征等局部几何特征对扫描点进行粗分类和分割处理后,根据分割面片的语义信息提取出建筑物立面;岑子政[12]提出了一种基于八叉树的建筑物立面自动建模算法,将点云数据组织到包围盒中以改善建模效果。目前,综合利用机载与车载LiDAR数据生成LoD3建筑物模型仍处于刚起步阶段。张志超[13]采用半自动的方法配准机载与地面LiDAR数据,之后根据屋顶和立面的形状语法重建建筑物精细模型;陈焱明[14]首先使用迭代最近点(iterative closest point,ICP)算法初步集成机载与车载LiDAR数据,然后采用基于多尺度格网和结构单元探测的方法重建建筑物屋顶和立面模型,并融合成LoD3模型。这2种方法仅通过重复结构推测窗户的几何信息,也没有重建其他立面细节,不适用于真实表达具有复杂结构的建筑物。
针对立面内容和几何结构不具备显著重复特征的复杂建筑物,提出了一种基于数据驱动的重建策略。该策略的主要贡献有:①在利用地理空间定位资源实现粗配准的基础上,引入机载与车载LiDAR数据的相互约束,实现了精配准;②提出了立面包围盒算法,直接定位车载LiDAR数据到对应的建筑物立面,使立面提取简单、高效化;③通过随机抽样一致算法(random sample consensus,RANSAC)剔除车载LiDAR数据“低于”立面的非立面噪声点,提高了重建结果的正确性;④基于数据驱动的2.5D双轮廓方法重建建筑物屋顶和立面模型,生成具有窗户和阳台等详实细节的LoD3建筑物模型。
1 原理和方法
生成城市建筑物LoD3模型的技术流程主要分为3个模块(如图1所示),包括:数据预处理模块、生成LoD2模型模块和生成LoD3模型模块。
图1 本文技术路线
1.1 数据源及其预处理
实验数据为武汉大学科技园某栋建筑物的机载与车载LiDAR数据。机载LiDAR数据使用无人机搭载Velodyne 16线三维激光雷达VLP-16采集,点云密度为623 点/m2;车载LiDAR数据使用RIEGL VZ-400采集,点云密度为95 点/m2。
机载LiDAR数据的预处理包括点云滤波和屋顶面提取2个阶段。对不同类型非建筑物点云采用不同的滤波方法,地面点云采用布料模拟滤波(cloth simulation filter,CSF)滤除[15]; 植被和噪声点采用机器学习方法剔除[16]。点云滤波后,通过基于欧氏距离的区域增长分割点云数据,提取单个建筑物屋顶面。车载LiDAR数据的预处理只需要采用CSF滤波器剔除地面点。数据预处理的最终目的就是为了获取配准好的建筑物点云数据,并剔除植被、地面和噪声点。实验数据经预处理后结果如图2所示。
(a) 机载LiDAR数据 (b) 车载LiDAR数据
1.2 LoD2模型生成
1.2.1 降采样
提取屋顶面片点云数据后,首先使用2.5D双轮廓法生成只包含建筑物屋顶信息的LoD2模型。采用该方法需要保证点云数据的2.5D特性,即点云呈水平分布,沿竖直方向投影没有重叠。真实环境得到的扫描数据密度较高且通常不具备2.5D特性,直接使用原始数据处理效率较低,也不能得到理想的LoD2模型。因此,在生成模型前需要对屋顶面片点云数据在高程方向降采样。在一定范围内建立单位边长为ds的水平格网后,将点云数据投影到网格中并删除冗余点,使每个单位网格内只保留一个最高点,最终得到2.5D点云。
1.2.2 生成屋顶面模型
采用2.5D双轮廓方法得到LoD2模型,需要经过3个主要步骤。
首先,将2.5D点云投影到支持四叉树操作的规则2D格网中进行扫描转换,网格边长设为dh。在每个格网点通过平均4个最邻近点高程和法线,生成表面Hermite插值点表示局部区域的几何特征;在连接不同屋顶图层的网格边上用2D支持向量机将点云数据分割到不同图层,估计出边缘Hermite插值点。
其次,使用融合聚类算法自适应生成几何结构。通过最小化2.5D二次误差方程式E(χ),在每个四叉树结点由Hermite点计算得到由水平坐标相等、高程等于对应Hermite点的点列{x0,x1,…,xk},即{x,y,z1,…,zk}组成的超点χ,其表达式为
(1)
x0={x,y,0}
(2)
xi={x,y,zi}
(3)
式中:B表示边界Hermite插值点;Si表示图层i的表面Hermite插值点;p和n分别表示Hermite点坐标和法线;w为权重。
考虑到建筑物的平面特征,对过于破碎化的超点通过子树合并的方法进行几何简化,从而得到新的超点。
最后,将相邻超点两两相连,生成屋顶表面的三角网模型,并将三角网边缘的相邻超点连线投影至地面作为立面墙体,最终生成用三角网表示的LoD2建筑物模型。
1.2.3 边缘规则化
2.5D双轮廓方法完全基于数据驱动,没有预设建筑物形状的先验信息,由此生成的三角网外轮廓线过于破碎化,不能反映建筑物墙体的真实结构。考虑到城市建筑物的规则几何结构,通过3个主要步骤调整建筑物轮廓:①提取轮廓线,从生成的立面墙体结构中依序提取所有角点,组成若干条轮廓线,将轮廓线投影到水平面;②利用道格拉斯—普克算法[17]平滑轮廓线,得到轮廓线压缩后的新角点;③根据新角点与原角点的对应关系,调整建筑物轮廓线,得到规则化的LoD2建筑物模型,结果如图3所示。
图3 规则化后的屋顶三角网模型
1.3 LoD3模型生成
粗配准得到的车载和机载LiDAR数据仍然存在较大的系统误差,不能直接用于LoD3模型的生成。通过引入几何约束,使车载和机载LiDAR数据较好地吻合。
1.3.1 立面包围盒算法
由图2(b)可见,真实环境中车载LiDAR技术获取的建筑物信息不仅包括在水平方向环绕建筑物的墙体,还有门窗、室内结构和阳台等丰富的细节。门窗一般可视为墙体的内嵌构件,其水平投影和建筑物轮廓线重叠,从门窗结构处获取到的点云一般“低于”墙体结构。室内结构位于建筑物内侧,一般依附于门窗结构,其点云数据整体呈不规则分布。从门窗和室内结构获取到的点云数据视为冗余点。阳台等其他丰富细节可视为墙体的凸出构件,是LoD3模型的重要组成部分。为了保留立面的丰富信息,并使算法具有较好的鲁棒性,提出了一种立面包围盒算法。
基于1.2节规则化后的LoD2模型,立面包围盒算法对模型每一个立面分别进行处理。LoD2模型的立面是1个底边水平、2条侧边竖直的四边形,立面信息都依附在这个四边形上。以该四边形作为基准面沿立面法线方向分别偏移-db和db的距离,通过这种方式获得的四棱柱称为立面包围盒。立面包围盒中偏移距离为db的四边形与立面之间的四棱柱空间称为“高出”立面部分,剩余部分称为“低于”立面部分。遍历车载点云数据,所有空间位置在包围盒内的点云视为定位到立面上的点云。将包围盒沿基准面底边向建筑物内侧旋转90°,得到和屋顶点云数据一样呈水平分布的立面点云数据。
1.3.2 生成立面模型
定位到立面上的点云包含丰富的立面信息,其中墙体是最重要的内容。墙体能反映建筑物的轮廓特征,是其他立面信息的依附,也是车载和机载LiDAR数据精配准的关键。墙体本身也可能有复杂的结构,通常呈现为平面的组合结构,其中面积最大的墙体称之为主墙体,其余墙体均可以视为依附于主墙体的平面。提取主墙体的主要步骤为:①遍历立面包围盒点云,用RANSAC算法提取所有平面;②计算平面法向量,剔除法向量不水平的平面;③计算平面面积,面积最大的平面视为候选主墙体;④剔除低于主墙体的冗余点,其平面距离阈值设为hw。之后,将主墙体视为2.5D双轮廓法中的水平地面,生成定位到立面点云的LoD2模型。该LoD2模型呈水平方向,将其逆旋转至竖直方向。
1.3.3 模型融合
机载与车载LiDAR数据生成的LoD2模型不能完全吻合,存在一定的误差。通常机载LiDAR数据更能反映建筑物的整体轮廓,而车载LiDAR数据的水平精度更高,因此进一步引入两者的相互约束,计算2种数据生成的立面之间的旋转角度和位移距离。若均小于阈值θ和df,调整车载数据三角网模型的外轮廓点到屋顶LoD2模型立面的轮廓线上,使模型紧密贴合;否则,将屋顶LoD2模型的立面水平旋转或平移,使其与车载LiDAR数据生成的LoD2模型立面重合,重复进行立面包围盒算法,最终生成精配准的LoD3模型。
2 实验结果与分析
实验中所设置的部分参数如表1所示。
表1 实验部分参数设置
基于机载与车载LiDAR数据,通过本文方法LoD3建筑物模拟重建结果及其实景影像如图4所示。
(a) 屋顶影像 (b) 立面影像 (c) LoD3建筑物模型
实验结果表明,通过本文方法重建的建筑物模型能够较详实地反映建筑物的真实形态。由图4可知,本文方法可以生成阳台(A)、窗户(B)和屋顶(C)的几何模型。异源数据生成的屋顶和立面紧密贴合,没有出现错位的现象,实现了机载和车载LiDAR数据的精配准。
根据剔除冗余点后的原始点云到模型表面的平均距离评定模型的几何精度,其中车载LiDAR数据到模型表面的平均距离为0.02 m,机载LiDAR数据到模型表面的平均距离为0.04 m。定量分析表明,本文方法重建的建筑物模型具有可靠的几何精度。但是,由于本文方法完全基于数据驱动,建模结果对数据质量比较敏感。如图4(c)中D处是由于遮挡造成的模型空洞,E处是由于窗户反射、噪声等原因造成的模型异常。但这些问题都可以通过提高数据质量解决。
3 结论
本文提出一种融合机载和车载LiDAR数据生成LoD3建筑物模型的策略,实现了城市建筑物的自动化建模。该方法采取数据驱动的策略,通过融合聚类的方法生成能够表达建筑物几何结构的特征点,并将特征点构建成三角网模型,使模型能够详实反映屋顶、门窗和阳台等建筑物要素的真实形态。
提出的立面包围盒算法,快速建立了车载LiDAR数据和建筑物立面之间的关系。通过引入机载和车载LiDAR数据的相互约束进行精配准,既加快了重建速度,也使屋顶和立面模型能够紧密贴合,最终生成具有较高重建精度的LoD3建筑物模型。
但是由于缺乏语义信息,难以从模型中提取出门窗等立面细节进行后续处理,也难以将门窗形成的立面空洞与遮挡形成的数据缺失加以区分,对建筑物模型的质量优化和模型分析尚有很大桎梏。后续研究中将引入建筑物各要素的语义信息,进一步改善模型质量。