基于机载LiDAR 点云数据的建筑物自动提取
2022-06-06潘中华陈胜林高能攀
潘中华,金 晶,陈胜林,苏 韬,刘 申,高能攀
(1.武汉市测绘研究院,湖北 武汉 430022)
随着机载激光扫描测距系统的不断完善和发展,利用激光测高扫描数据快速、经济、准确地提取城市三维建筑物受到越来越多的重视。现阶段,利用激光扫描数据提取建筑物的方法可分为两大类[1]:①单纯以获取的机载激光测距数据来提取建筑物,如奥地利维也纳大学的Rottensteiner F[2]等直接利用LiDAR 数据生成点云来自动提取建筑物,再采用基于不均匀误差分布函数的分层鲁棒内插算法,结合DTM 和DSM 提取建筑物;②融合激光测距数据和其他相关信息的建筑物提取,如日本东京大学的TAO G[3]等融合高分辨率IKONOS 卫星影像和机载激光扫描数据进行了建筑物提取的研究。在此基础上,本文首先直接利用LiDAR点云数据生成灰度图像,再利用图像处理技术进行建筑物提取,然后对灰度图像和规则格网化的LiDAR点云数据进行匹配,最终提取出基于LiDAR点云数据的建筑物点。
1 LiDAR点云数据预处理
1.1 LiDAR点云数据的规则格网化
LiDAR系统获取的数据具有数据量庞大、复杂、无规律离散分布等特点,为了便于DSM 内插和灰度影像的生成,以及提高后续数据处理的速度和效率,重采样是必备过程。重采样包括位置的重采样和数值的重采样,前者确定网格尺寸,后者关系到插值算法[4]。参考文献[5]对12种插值方法(最近邻插值、克里金插值、多项式回归和移动均值等)进行了研究,结果表明最近邻插值对间断保存信息是适用的,且建筑物的原始高度可较好地保存在插值后的DSM 中[6]。本文利用最近邻插值法对原始LiDAR 点云数据进行规则格网化,并在生成规则格网数据的同时,对每个规则格网点的平面坐标进行标记,具体标记过程为:
1)获取点云数据最大、最小坐标: xmax、xmin、ymax、ymin。
2)将整个区域划分为rows×columns的格网,则有:
3)第i 行第 j 列的某一点坐标值则可表示为:
式中,grid为格网大小。
至此,每个规则格网点平面坐标X、Y 便建立了与行列坐标i、j 的一一对应关系,为后续DSM灰度图像的生成提供基础数据。
1.2 利用规则格网数据生成DSM灰度图像
在相对平坦的城镇区域,建筑物目标的高程变化特征明显有别于地面上其他目标,且灰度图像灰度值与LiDAR数据高程值呈线性关系,因此将规则格网化的LiDAR数据按高程转换为对应的灰度图像,不仅能直观表达数据的高程信息,还便于后续图像处理技术的应用。每个LiDAR 点云数据在256 色灰度图像对应的灰度值的计算公式[7]为:
式中, Pixelij为第i 行第 j 列LiDAR 点对应的灰度值;zi为各LiDAR点的高程;zmax、zmin分别为该区域LiDAR数据的最大、最小高程。
2 灰度图像预处理
2.1 灰度图像Otsu法二值化
与建筑物相比,地面点的高度较低,二者的高程差异很大,尤其是在建筑物和地面相邻的边界区域,表现尤为突出,通过这一特性,借助图像处理中的二值化技术,能有效地区分灰度图像中的地面点与非地面点。参考文献[8]系统地讨论了阈值法在图像二值化处理中的应用,给出了较全面的综述。本文在比较各种二值化方法适用性的基础上,结合实验数据,采用Otsu 法[9]对图像进行二值化。该方法通过求取类间方差的最大值来求得最佳分割阈值,通过3 个参数进行质量控制,使得分割后图像的目标与背景差异最大。求取最佳阈值t̂的基本原理为:
最优阈值 t̂通过求类间方差的最大值得到,即
2.2 二值图像小区域面积滤除
二值图像包括背景(地面点)和目标(非地面点)两个部分,非地面点又包含建筑物、路灯、植被等地物。相较于其他地物,建筑物具有面域规则、连通面积大等特性,因此依据该特性,给定一个合适的面积阈值,可有效滤除非建筑物点。其主要过程为:①统计目标部分各连通区域像素个数(面积) s,并标记各联通区域;②按照面积,对各联通区域进行排序;③设置面积阈值m,若连通区域面积mi<s,则剔除该区域,若连通区域面积mi>s ,则保留该区域。阈值m 根据先验知识确定,针对不同二值图像设置不同的值。通过该处理,二值图像目标部分基本为建筑物区域,为建筑物边缘提取提供了基础数据。
2.3 二值图像Canny方法边缘检测提取建筑物边缘
通过上述两步处理,房屋的大致范围已经提取出来;再借助图像处理中的边缘检测技术,提取建筑物轮廓。参考文献[10]对8种边缘检测方法进行了综合性分析与评价,并从算法分类、逻辑原理、性能优缺点、适用范围、实现成本5 个方面进行了对比和总结。Canny 方法为了平衡边缘检测的抗噪性和定位精确性,利用非极大值抑制原理和双阈值方法提出了Canny 算子[11]。该方法对噪声非常敏感,定位精度高、边缘连续、细节丰富、实现成本低。因此,本文结合实验数据采用Canny算子提取建筑物边缘。
3 边缘检测图像标记LiDAR点云数据建筑物点
边缘检测图像分割得到建筑物边缘信息后,需要利用边缘检测图像建筑物信息标记出LiDAR点云数据建筑物点。具体标记过程为:①遍历边缘检测图像所有像素值Pixel,从左到右、从上到下逐一扫描;②判断某一点像素值Pixel(i,j),若该点为建筑物点(像素值为白色),则标记该点像素坐标(i,j);③由式(3)、(4)以及步骤②中检索出的目标像素的像素坐标(i,j),即可标记LiDAR 点云数据第i 行第 j 列建筑物点的坐标(Xi,Yj);④重复步骤②、③,直至所有LiDAR点云数据建筑物点全部标记完毕为止。
4 算法实现与实验数据分析
本文实验数据来源于青岛市某地区,包括原始LiDAR点云数据和对应的遥感影像。该地区面积约为1 km×1 km,地形较复杂,包括道路、树木、路灯、植被、房屋、山坡等。通过VC++编程实现本文所述算法,图1 为原始遥感影像;图2 为原始LiDAR 点云的三维渲染图;图3为原始点云数据根据式(1)生成的分辨率为0.5 m 的DSM 灰度图像,可以看出,不同高度的地物点呈现出不同的灰度值,房屋、树木、路灯的灰度值明显区别于其他高程较低的地物;图4 为Otsu 法二值化后的图像,经过算法处理,目标部分(白色图像)主要包括房屋、山坡以及小面积区域的路灯、电杆、独立树;图5 为消除小面积区域后的二值图像,小面积区域的路灯、电杆、独立树被清除;图6 为利用Canny 方法边缘检测提取的建筑物边缘图像,再利用该图像标记出LiDAR点云数据的建筑物点;图7为LiDAR点云数据提取建筑物点的三维渲染图。
图1 遥感影像
图2 点云渲染图
图3 DSM灰度图像
图4 Otsu法生成的二值图像
图5 清除小面积区域后的二值图像
图6 Canny方法边缘检测图像
图7 建筑物点三维渲染图
由点云数据生成DSM 灰度图像的原理和图3 可知,某点的高程值越大,其对应的灰度图像灰度值就越高。靠近山坡边缘的建筑物的高程与山坡边缘相差不大,且比山坡顶部高程低,因此灰度图像二值化处理后,高程较高的山坡会被误识别为目标部分,如图6右下角所示。从最终提取结果来看(图7),整个区域靠近山坡边缘的建筑物提取效果较差,其他区域建筑物提取效果良好。
5 结 语
本文针对机载LiDAR点云数据提取建筑物的问题,提出了一种自动提取方法,首先利用点云数据生成灰度图像,再利用较成熟的图像处理技术提取灰度图像建筑物边缘,最后将点云数据与边缘图像进行匹配提取点云数据的建筑物边缘。实验结果表明,在较平坦区域,该方法能有效提取建筑物边缘,且提取效果良好,能为建立房屋三维模型提供可靠的基础数据;但在地形起伏较大的山区,提取效果较差。如何提高山区地形建筑物提取的精度,有待进一步研究和分析。