新站提交
  • 网站:49052
  • 待审:1013
  • 文章:97407
  • 会员:113

本篇博客参阅:
1)DEM generation from laser scanner data using adaptive TIN models
2)Filtering airborne LiDAR data by embedding smoothness-constrained segmentation in progressive TIN densification

文章名中有超链接,若不便利下载,则能够在此:资源链接进行下载。

1.导言

1.1什么是地上点滤波?

机载激光雷达(airborne light detection and ranging)/机载激光扫描(ALS, airborne laser scanning)在曩昔20多年的时间里迅速发展,其相对于传统拍摄丈量印象及INSAR(干与合成孔径雷达)能够直接记载从地物或地表回来的密布、离散、细节丰厚、准确的三维点云。怎样对这些不规则点云进行处理运用是咱们要处理的问题,其间一个重要的处理进程便是:地上点滤波(ground filterring),简而言之便是“在无序、不规则的三维离散点云中找到哪些是由地表回来的,哪些是由地物回来的。”

注:关于地上点滤波的概念咱们要与孤立点(outlier)滤波区分隔,孤立点滤波能够理解为图画中的去噪,去除数据丈量进程中遭到飞鸟、多路径效应所发生的远低于/高于其他数据的点。

1.2地上点滤波的相关办法

许多学者现已提出了各种类型的滤波算法来从ALS三维点云中主动提取地上点,依据滤波器的概念能够分为以下四类:

  • slope-based
  • block-minimum
  • surface-based
  • clustering/segmentation algorithm

依据面的地上点滤波办法的中心进程是创立一个最挨近暴露地表的外表,其运用了更多的context(上下文,环境、布景)信息,所以一般能够获得比其他滤波办法更好的滤波作用。此外,依据创立外表的办法又能够把surface-based类型滤波器分为以下三个子类:

  • Morphology-based filters
  • Iterative-interpolation-based filters
  • Progressive-densification-based filters

其间Morphology-based filters运用不同尺度巨细的窗口形态学操作(opening/geodesic)来去除不同巨细的地物,可是这类办法需求假定地势的斜度是一个常数。以及面临着一个巨大的应战是在窗口巨细改变的时分怎样坚持地势特征不变;Iterative-interpolation-based filters是经过整个点云数据集来逐渐挨近地表,首要经过一个粗糙的外表来核算点云到外表的残差,一般来说地物点会有正的差值,地上点会有负的差值。这种办法最大的应战是当精度必定的条件下怎样来进步算法的功率;Progressive-densification-based filters与上一种办法相似,也是渐进地把每个点逐渐的分类为地上点,可是此办法不需求进行插值。本篇博客中所介绍的PTD(progressive TIN densification)便是归于surface-based类型中的一种Progressive-densification-based filters。

2.PTD具体介绍

PTD是Axelsson在2000年左右提出的一种经典滤波办法,在工程运用(TerraScan)及科学社区中得到了广泛的运用。首要能够经过以下五个进程进行完成:

2.1去除孤立点

如导言中1.1所述,去除孤立点相似于图画中的去噪操作。outliers是丈量数据会集的那些远高于/低于地表的点,这中状况常常会导致滤波算法呈现过错(例如,PTD算法中假定格网中的最低点为地上点,然后导致过错)。能够经过下述三个简略进程来去除孤立点,当然除此之外还有其他许多愈加优异的办法。

  • 对一切数据的高程进行核算,树立一个高程散布的直方图,经过调查高程散布来确认高程阈值,然后消除散布中最低和最高的小“尾巴”。
  • 经过每个点与周围点之间的最小高程差来进行查找依然存在的孤立点(这儿运用一个2D的KD树来进行安排查询每个点的近邻点)。
  • 手艺校对孤立点主动去除进程中所发生的过错。

 2.2参数阐明

在PTD算法中有以下6个参数进行预先设置:

1)最大修建尺度mm是一个长度阈值,此阈值被用来界说格网的巨细,随后算法能够处理修建物尺度小于此阈值的修建物。
2)最大地势视点tt是一个斜度阈值,决议了经过什么办法(是否进行设置镜像点)去判别未分类点的类别。假如未分类点地点三角面的斜度大于t则应该经过一个镜像点来进行判别,反之则直接判别。(后续在2.4中也会再进行具体介绍)。
3)最大视点θθ是三角面与待分类点和最近的三角网极点之间连线之间的最大视点。假如一个未分类点对应的视点大于θ则被标记为地物点,不然设置为地上点。
4)最大间隔dd是当时迭代中从待判别点到三角面之间的最大间隔,相似的,假如一个未分类点对应的最大间隔大于d则被标记为地物点,不然设置为地上点。
5)最小边长ll是构建TIN模型中一切三角形最长边(平面投影)的最小阈值。当三角形中的一切边都小于l时,则中止在三角网中参加地上点(留意l是在平面中核算的)。因而,此参数能够防止引起地上模型中过高的点密度,以及下降内存的运用。
6)最大边长l':*l'是构建TIN模型中一切三角形最短边(平面投影)的最大阈值,当三角形中的一切边都小于l'*被用于中止处理处理三角形。因而,此参数用于稀疏地上点,以及下降内存的运用。

2.3挑选种子点并构建TIN模型

对给定的点云数据集界说一个特定的“bounding box”并固定左上角坐标(xtopleft, ytopleft)右下角坐标(xbottomright, ybottomright),宽度w,以及高度h。然后经过上述界说的变量经过以下公式把整个数据区域划分红nRow行,nColumn列,尺度巨细为m的格网。

在这儿刺进图片描绘

其间m,为最大修建尺度,ceil(x)函数代表向上取整,即找到不小于x的最小整数。

依据整个数据集划分为格网之后,每个网格中的最低点被设置为“种子点”(初始地上点)。除此之外,“bounding box”的四个角点也被设置为“种子点”(其高程值等同于间隔最近的种子点高程),如下图所示:

在这儿刺进图片描绘

注:把“bounding box”的四个角点也被设置为“种子点”是为了确保一切点都处于TIN模型内部。

随后,依据挑选好的种子点来构建初始TIN模型来表明初始地表,剩下的点被默许标记为地物。

2.4迭代加密TIN模型

在每次迭代进程中经过预先设置的阈值参数,来对“潜在点(potential point)”进行逐点判别。具体进程如下所述:
1)确认潜在点(potential point)的地点位置PPotential(xp,yp,zp),找到其地点的三角形Ttriangle,即PPotential在三角形内部或边际上或许在极点上。
2)核算三角平面的斜度Striangle,假如Striangle小于预先设置的最大地势视点t,则进行第3)步,若大于则进行第4)步。
3)如下图所示,核算的两个参数,包含:三角面Ttriangle与待分类点PPotential和最近的三角网极点之间连线之间的视点,表明为Aangle,以及待分类点PPotential和三角面Ttriangle之间的间隔,表明为Ddistance。假如PPotential所对应的上述两个参数Aangle小于最大视点θ,Ddistance小于最大间隔d则以为待分类点PPotential是地上点,不然以为是地物点。随后,进行下一个点的判别。

在这儿刺进图片描绘

4)假如三角平面的斜度Striangle大于预先设置的最大地势视点t则需求设置PPotential的镜像点。先找到PPotential地点三角形

Ttriangle中高程值最大的极点Pvertex(xv,yv,zv),然后经过下式核算PPotential的镜像点:

在这儿刺进图片描绘

其间(xmirror,ymirror,zmirror)是所求镜像点的三维坐标。

在这儿刺进图片描绘

接着对镜像点运用进程3)的办法来进行核算Aangle与Ddistance两个参数进行判别,来决议PPotential的类别。
5)在完毕每次迭代之后,新检测出的地上点经过下述进程参加TIN模型中。

  • 确认Pground(xg,yg,zg)的坐标,找到其地点的三角形T'triangle。
  • 核算三角形T'triangle的一切边在水平投影中的长度,假如恣意边的长度都大于l参加当时地上点Pground到TIN模型中,并进行改写。不然,进行判别下一个新检测的地上点。
  • 重复上述迭代,直到不再有点被参加到地上点会集。

上述五个进程便是PTD算法的首要完成办法了,PTD算法现已被广泛运用在各种类型的景象(地势)中,且获得不错的作用。可是需求留意的是,虽然在算法中采用了设置“镜像点”的办法来防止呈现cutting-off的问题(开裂线散布区域),其仍是对峻峭地势十分灵敏。

到此这篇关于python 点云地上点滤波-progressive TIN densification(PTD)算法介绍的文章就介绍到这了,更多相关python PTD点云地上点滤波内容请查找脚本之家曾经的文章或持续阅读下面的相关文章期望我们今后多多支撑脚本之家!

  • 49052

    网站

  • 0

    小程序

  • 97407

    文章

  • 113

    会员

赶快注册账号,推广您的网站吧!