直线段检测算法在机载LiDAR建筑物轮廓线提取中的应用

2023-11-01 12:50刘建兴胡全一乐美燕舒斯红
测绘通报 2023年10期
关键词:轮廓线格网空洞

刘建兴,胡全一,乐美燕,舒斯红

(1. 江西核工业测绘院集团有限公司,江西 南昌 330038; 2. 江西省核工业地质调查院,江西 南昌 330038)

建筑物作为城市中最主要的组成部分,其地理信息获取对智慧城市建设至关重要。建筑物轮廓线作为建筑物重要的基础数据,广泛应用于城市空间分析、建筑物统计、地产评估等方面[1]。如何从LiDAR数据中准确、快速提取建筑物轮廓线是研究热点。

许多学者针对建筑物轮廓线进行了相关研究,大致将其分为不规则三角网法和特征法两类。基于不规则三角网的建筑物轮廓线提取代表性的方法为Alpha shapes算法[2],主要思想是采用指定半径以数据中两点确定一个圆,若该圆中不存在其他点,则将这两点确定为边界,遍历点集直至找到所有边界点。文献[3—4]利用Alpha Shapes算法提取建筑物轮廓线,证明了该算法能高精度地提取任何形状的建筑物轮廓线。文献[5]提出了一种双阈值的Alpha Shapes算法,并利用最小二乘法简化轮廓线,提高了轮廓线的精度。文献[6]提出了一种可变半径的Alpha Shapes建筑物轮廓线提取方法,该方法对于多拐角建筑物有着较好的效果,但是对于多长直线的建筑物提取效果一般。

点云特征法主要思想是利用点云数据的法向量、斜率、曲率等特征信息提取建筑物轮廓线。这类方法对凹槽处轮廓线不敏感,且计算特征消耗大量时间。文献[7]提出在DSM的基础上计算点云的垂直密度,利用Canny算法提取建筑物轮廓线。文献[8]提出一种改进的最小边界矩形算法,从机载LiDAR点云中提取完整且准确的正则化建筑物边界,该算法可以忽略部分遮挡的建筑物。文献[9]提出了一种自动建筑物轮廓正则化方法,该方法利用LiDAR点云数据的建筑物点自动生成二维正交的建筑物边界。文献[10]提出了一种最小外接矩形的建筑物轮廓线提取方法,利用垂距法进行边界拟合,利用多边形最小外接矩形优化线段提高建筑物边界的精度。文献[11]提出了一种基于主方向的建筑物轮廓提取方法,利用建筑物的正外接矩形确定主方向,利用主方向获取建筑物轮廓线。此外,还有的学者利用LiDAR数据与光学影像融合进行建筑物边界的提取。如文献[12]充分利用了LiDAR数据与光学影像的互补优势,从两个数据源中提取不同的建筑物特征并融合形成最终完整的建筑物边界分析现有算法。目前利用点云数据提取建筑物轮廓时存在耗时、精度不高的局限性。因此,本文提出一种新的点云建筑物轮廓线提取方法。该方法首先利用已经分类好的建筑物点云进行栅格化,并生成二值图;然后对二值图进行膨胀、腐蚀操作,消除二值图中因栅格化产生的空洞区域;最后利用直线段检测(line segment detector,LSD)算法进行直线检测,获取规则的建筑物轮廓线。

1 方 法

本文方法主要包括建筑物的提取、二值图生成、空洞修补、LSD算法提取轮廓线4个步骤,具体的提取流程如图1所示。

图1 建筑物轮廓线提取流程

1.1 建筑物提取

机载LiDAR获取得到的激光点云数据主要包括植被、建筑物、地面点和其他地物类型,需对数据进行分类操作,提取数据中属于建筑物类型的点云。本文使用TerraSolid软件进行建筑物点云分类,并手动调整建筑物点云。

1.2 二值图生成

分类之后,将建筑物类别的点云数据进行栅格化得到二值图。首先获取数据在X轴、Y轴方向上的最大值与最小值,并依据一定的密度进行格网划分;然后对点云数据进行分割,遍历格网生成二值图。

格网划分主要依据公式为

(1)

式中,xstep、ystep分别为格网在X轴、Y轴方向上的密度;xmax、ymax分别为X轴、Y轴方向上的最大值;xmin、ymin分别为X轴、Y轴方向上的最小值;scale为比例因子。

在划分格网后,首先对点云数据进行分割,同时根据格网在X轴、Y轴方向上的密度建立一个xstep×ystep大小的二维图像矩阵;然后判别每个格子中是否存在点云,如果存在点云,则将二维图像矩阵对应位置的值赋为0,反之则赋值为255。至此,点云数据的二值图便建立成功。

1.3 图像空洞修补

由于点云数据离散且密度不均匀,因此利用格网划分建立的二值图会存在一定的空洞,如图2(a)所示,需要对其进行处理,修补空洞区域。本文采用经典的形态学滤波算法对其进行空洞的修补,首先对点云二值图进行膨胀操作,然后对图像进行腐蚀操作。

图2 图像空洞修补

1.3.1 膨胀操作

(2)

1.3.2 腐蚀操作

腐蚀操作的定义[13]为

F⊙Bs={x,y|Bxy⊆F}

(3)

经过膨胀和腐蚀操作之后,可以明显地看到建筑物内部的空洞区域被修补,且处理之后建筑物尺寸不变,如图2(b)、(c)所示。

1.4 建筑物轮廓线的提取

进行膨胀、腐蚀操作后的二值图在建筑物区域不存在空洞,本文采用LSD算法[14]从二值图中提取二维线段,其流程如下。

(1)计算输入图像的梯度值与梯度方向,根据梯度方向和梯度值对像素点进行分组,生成一张由1024张链表组成的梯度图。

(2)设定梯度阈值,将梯度值小于的像素点标记为USED。

(3)选取每张链表的头部像素作为种子点,根据梯度角相似性搜索周边的像素点,将搜索到的像素点都标记为USED,并利用矩形进行拟合。

(4)重复从链表中选取种子点,从剩下的图像进行区域搜索,直至图像完全遍历,得到所有检测到的直线。

以单栋建筑物数据为例,本文方法可以非常快速、精确地检测出建筑物的轮廓,如图3(a)所示,将检测出的轮廓与建筑物点云叠加显示,如图3(b)所示,可以直观地发现本文方法的效果较好,精度达亚像素级。

图3 直线检测结果

2 试验结果与分析

2.1 试验数据

选择江西某地区城市的机载LiDAR数据作为试验数据,数据尺寸为970 m×720 m,数据点云数为4 743 612,点云密度为8.5点/m2,建筑物为92栋。数据如图4所示,图4(a)为原始点云数据,图4(b)为提取的建筑物点云。本文试验的硬件环境:Intel(R)CoreTMi7-11800H处理器、16 GB内存,软件环境:Visual Studio2015 C++、PCL1.8.1(Point Cloud Libary)、OpenCV3.4.9。将本文方法与经典的Canny算法[15]进行建筑物轮廓线提取的对比试验。本文方法涉及的参数设置如下:比例因子(scale)设置为0.5 m,形态学滤波算法内核为3×3,Canny算法下界阈值设置为40,上界阈值设置为80,图像梯度的Sobel核的大小为3。

图4 数据显示

2.2 建筑物轮廓提取结果

试验结果对比如图5所示,图5(a)为利用本文方法提取出的建筑物轮廓线,图5(b)为利用Canny算法提取的结果,可以明显看出本文的算法优于Canny算法提取的结果。

图5 试验结果对比分析

本文从图5(b)中分别选取了4个感兴趣区域进行对比。如图5(c)所示,对于简单的长条形建筑物(区域A),本文方法和Canny算法都能将建筑物边界检测出来,但Canny算法线段弯曲,转角处还存在噪声;针对复杂建筑物(区域B),Canny算法存在的噪声值更大,甚至建筑物内部还存在一些误差,而本文方法提取的结果是直线;针对相对复杂的回形建筑物(区域C),Canny算法的结果在一些比较短的边界处噪声会变大;针对不同的简单的正方形建筑物(区域D),Canny算法的噪声存在于转角,本文方法取得的效果明显好于Canny算法。整体而言,Canny算法能识别建筑物的边界,但是在建筑物拐角处存在噪声,且得到的边界不是笔直的,而本文方法提取的建筑物轮廓线都是连续的直线,不需要再进行其他处理(如正则化)。

2.3 精度分析

为了更好地验证本文方法的精度,从图5的4个区域分别选用方形、L形、回字形、复杂形的建筑物进行精度评定,结果见表1。将提取的建筑物轮廓线叠加点云显示,可以看出提取效果较好。此外,采用建筑物面积和轮廓线进行定量的精度评测。可以发现面积和长度的精度与建筑物的复杂程度成反比,建筑物越简单,提取的精度就越高。

表1 精度分析

2.4 算法效率分析

为了更好地验证本文的算法,依据房屋的数量将本次试验数据分成4组,分别为:20栋、40栋、80栋、92栋。对比试验结果见表2。本文方法提取花费的时间较短,约为Canny算法的1/50,说明本文方法能够快速地提取建筑物的轮廓线。

表2 运行时间对比

3 结 语

本文提出了一种基于LSD算法的机载LiDAR数据建筑物轮廓线提取方法。利用已经分类好的建筑物点云进行栅格化生成二值图,对二值图进行膨胀、腐蚀操作消除因栅格化产生的空洞区域,再利用LSD算法快速、精确地获取建筑物轮廓线。试验表明,本文方法提取效率约为传统Canny算法的50倍。但是,本文方法仅针对规整的建筑物,若建筑物边界为弧形、圆形等,本文方法将会失效,这也是其局限所在。

猜你喜欢
轮廓线格网空洞
实时电离层格网数据精度评估
基于HTML5的凸轮廓线图解法App教学软件研究
空洞的眼神
基于空间信息格网与BP神经网络的灾损快速评估系统
用事实说话胜过空洞的说教——以教育类报道为例
多轮廓线的三维形体重构技术研究与实现*
基于鼻子下轮廓线的鼻尖定位法
平均Helmert空间重力异常格网构制方法
基于位置服务的地理格网编码设计
臭氧层空洞也是帮凶