基于FME实现点云数据的过滤去噪和生成表面模型

作者:LLT

近年来随着三维激光扫描技术的不断发展与更新,点云数据也越来越多地应用于各个领域。FME作为一款数据转换和变换软件,在点云处理方面也有许多独到之处。下面就给大家分享一些点云数据的处理技巧。

(1)读取点云

点云数据有很多种格式,常用的有las、laz、lasd、zlas、e57、xyz、pts、pod等格式,前四种类型主要是las格式及las压缩后形成的格式,在利用读模块读取的时候选择“ASPRS Lidar Data Exchange Format (LAS)”格式即可。后面四种类型为文本类型的点云格式,利用一些文本编辑软件也可以打开这种类型的点云数据,打开后可以发现这些数据每一行代表一个点,而每一列又代表不同的属性(X坐标、Y坐标、Z坐标、强度等),不同列之间以分隔符隔开,如下图所示:

在读取这类点云数据的时候将格式选择为“Point Cloud XYZ”即可,点击“Parameters”也能够查看到每个点信息:

(2)合并点云

一般而言点云的数据量都是比较大的,动辄几百兆,有时上G。于是为了点云数据更好的传输与处理,大部分的点云在采集的时候都会被分割成一小块一小块的。因此在处理点云前需要将点云进行合并,以保证所要处理的点云对象是一个整体。利用PointCloudCombiner转换器可以实现多个点云的合并,且不需额外的参数设置,保持转换器默认参数即可。合并前后的点云如下:

 

合并前

合并后

(3)点云抽稀

虽然点密度越高,呈现出物体表面的细节程度也就越清晰,但有时过高的点密度会给我们后续的处理增加许多负担,例如耗费更长的处理时间、占用更多的内存空间等。因此在处理点云数据之前对其进行适当的抽稀是很有必要的。

利用PointCloudThinner转换器可以实现按间隔对点云进行重采样。这个转换器参数设置比较简单,这里将要保留的点设为“Every Nth point (Interval)”(每隔第N个点),间隔“Interval“设为2,意味着每输入两个点保留第2个点,这样会将点数量减少一半。这对于一些对细节要求不是很高的点云(如矿山、地形等)可以极大的减少数据量,为后续处理节约时间。

抽稀前后点数量对比:

抽稀前点数量

抽稀后点数量

(4)点云去噪

FME中PointCloudSimplifier转换器能够在保持点云原始形状不变的情况下减少点云数量,以达到对点云去噪的效果。它的去噪原理比较简单:对于一些曲率变化较大的区域它能够进行高密度采样,以保持点云形状不变,如凸起的石块;对于一些曲率变化较小的区域它能够以较低的密度进行采样,如平坦的地面。它的设置相对比较复杂,可以通过调节各个参数值来达到理想的去噪效果,若是不太清楚各个参数的含义,保持默认设置也能起到一定的去噪作用。

(5)点云过滤

我们都知道点云其实是由无数个带有空间位置信息的点组成的,每一个点都至少包含有X坐标、Y坐标、Z坐标和反射强度等信息,在某些情况下还会包含有时间、颜色(RGB)、回波数等属性。根据点云的这些特性,我们便可以利用PointCloudFilter转换器过滤出我们想要的点云数据。

例如对于一些山体类点云,我们可以先通过FME Data Isnpector查看山顶和地面的Z坐标值,大致估计出地面到山顶的Z坐标变化范围(如75~245米),然后设置过滤表达式“@Component(z) > 75 && @Component(z) < 245”来保留这个范围内的点云,以过滤掉不要的噪点(如云、鸟、坑洞等)。

过滤设置及结果

同理,除了过滤出Z轴方向的点云,我们还可以设置X轴或Y轴方向上的取值范围,这在截取某段道路或隧道点云时非常有用。甚至我们还可以根据点的反射强度或者RGB值,过滤掉“黑点”等噪点、提取道路斑马线、黄白实线等颜色区分较为明显的点云。

另外有些扫描仪采集到的点云还带有“return”(脉冲返回编号)等属性,根据这些返回编号,我们可以过滤出地面点和植被点。例如当机载激光雷达扫描一片茂密的森林时,大部分的点云都是经过了两次以上的回波采集得到的,而第一次回波基本上都是激光照在树叶上反射回来形成的点,我们只需把过滤条件设为“@Component(return) > 1”,这在一定程度上可以过滤掉植被点而保留地面点。

(6)生成表面模型

处理后的点云可以生成表面模型以供其他操作使用。FME提供了两种点云生成模型的转换器:一种是PointCloudSurfaceBuilder,另一种是TINGenerator。

PointCloudSurfaceBuilder转换器可以将点云输出为网格表面(mesh),它构造模型的方式有三种:简单三角剖分、泊松算法和移动立方体算法。简单三角剖分使用贪婪算法将点连接到曲面;泊松算法则会将点云创建成一个封闭的光滑网格;移动立方体算法主要是在三维离散数据场中通过线性差值来逼近等值面。这三种创建模型的方式各有差异,需要针对不同类型的点云来选择合适的建模方法。

TINGenerator转换器可将输入的点云构建成一个不规则三角网模型,它的算法就是我们所熟知的狄洛尼三角网,因此经常用于地形类点云快速构建地表模型。且该转化器的参数设置也十分简单,只需设置表面容差,便能得到理想的模型,如下图所示:

 

不同容差得到的模型效果图

最后为大家附上模板截图,可以看到整个处理流程十分简单,但FME的魅力就在于你可以通过不同转换器之间的排列组合以及各种参数设置,输出令你满意的数据结果。

 

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/113343734