首页 > PDAL点云处理库介绍

PDAL点云处理库介绍

点击“蓝字”关注点云PCL,选择“星标”获取最新文章

PDAL是点云数据处理的库。这是一个C/C++开源库,用于点云数据的转换和处理。尽管该库中许多工具的重点和发展都起源于激光雷达点云数据的处理,但它也不限于激光雷达数据。

什么是PDAL?

PDAL是点云数据处理的库。这是一个C/C++开源库,用于点云数据的转换和处理。尽管该库中许多工具的重点和发展都起源于激光雷达点云数据的处理,但它也不限于激光雷达数据。

一个简单的PDAL点云处理流程,由读文件、滤波模块和写点云模块组成

组成此操作以将数据重新投影并加载到PostgreSQL的PDAL JSON流程如下所示:

{
"pipeline":[
{
"type":"readers.las",
"filename":"input.las"
},
{
"type":"filters.reprojection",
"out_srs":"EPSG:3857"
},
{
"type":"writers.pgpointcloud",
"connection":"host='localhost' dbname='lidar' user='hobu'",
"table":"output",
"srid":"3857"
}
]}

PDAL可以为点云的滤波、剪裁、平铺、转换为处理流程以及必要时重用等操作组成中间模块。它允许您将这些流程定义为JSON文件,并提供一个pipeline来执行它们。

它与其他工具有何不同?

LAStools

Martin Isenburg(https://www.cs.unc.edu/~isenburg/)

的LAStools是可用于激光雷达处理的最常见的开源处理工具套件之一。PDAL在许多重要方面的理念不同:

1,PDAL的所有模块都是在OSI许可下作为开源软件发布的。

2,PDAL允许开发人员在处理流程作为专有扩展模块。这些可能是自定义格式读取器、专门的算法或整个方案。

3,PDAL可以对任何格式的点云数据进行操作,而不仅仅是ASPRS LAS。LAStools可以读取和写入除LAS以外的其他格式,但会将所有数据与其对LAS数据的内部处理相关联,从而将其限制为LAS格式提供的维度类型。

4,PDAL由用户使用其声明性JSON语法进行协调。LAStools是通过将许多小型的、专门化的命令行实用程序与复杂的参数连接在一起。

5,PDAL是一个开源项目,它的所有开发活动都可以在线获得https://github.com/PDAL/PDAL

与PCL的区别

PCL是点云数据的一个补充而不是替代的开源软件处理的套件。PCL库的开发专注于算法开发、机器人和计算机视觉以及实时激光扫描仪处理。PDAL可以读写PCL的PCD格式。

与Potree的区别

Potree是一个WebGL HTML5点云渲染器,使用ASPRS LAS和LASzip压缩LAS。你可以在https://github.com/potree/potree/进行访问

其他开源点云库

其他开源点云软件倾向于桌面GUI,而不是以库为中心。它们包括一些处理操作,有时甚至嵌入PDAL之类的工具。这些其他工具包括:

  • libLAS

  • CloudCompare

  • Fusion

  • OrfeoToolbox

libLAS项目是一个早于PDAL的开源项目,它提供了PDAL提供的一些处理功能。它目前处于维护模式,因为它依赖于LAS,相关的LAStools功能作为开源库发布,以及Python LAS软件的完成。

PDAL是从何而来?

PDAL借鉴了另一个非常流行的开源项目GDAL。GDAL是地理空间数据抽象库,它在整个地理空间软件行业中用于为各种光栅和矢量格式提供处理支持。PDAL为点云数据类型提供了相同的功能。PDAL是在为美国陆军工程兵团CRREL网格项目开发数据库存储和访问功能的基础上发展起来的。正在蔓延到libLAS中的功能被引入了一个新的库中,它的设计初衷是模仿地理空间软件领域中成功的提取、转换和加载库。随着其他软件开发人员使用PDAL为他们的软件提供点云数据转换和处理能力,PDAL已经吸引了更多的贡献者。

点云数据与栅格或矢量地理数据有何不同?

点云数据确实非常像许多地理空间从业者所熟悉的典型矢量点数据类型,但它们的庞大的数量会带来一些重大挑战。除了它们的X、Y和Z位置之外,每个点通常都有其他事物的完整属性信息,如强度、时间、RGB等。点云数据的典型矢量可能会达到一百万个左右的特征。所以这样的点云很快就会进入数十亿甚至万亿的规模,因此必须使用专门的处理和管理技术来有效地处理如此多的数据。用于提取和利用点云数据的算法也明显不同于典型的矢量GIS工作流程,数据组织对于有效利用可用计算非常重要。这些特性需要一个面向这些方法的库,PDAL实现了这一点。

PDAL擅长哪些任务?

PDAL在点云数据转换工作流程中非常有用。它允许用户通过为内容提供抽象API将算法应用于数据,从而让用户不用担心许多数据格式问题。PDAL的格式问题确实带来了一些间接成本。但是在大多数情况下,这并不重要,对于具有特定数据的特定处理工作流,专用工具肯定会优于它。PDAL还提供了一个简单的命令行,它通过Numpy扩展了简单的通用Python处理。这些特性使它对软件开发人员、数据管理人员和科学研究人员具有吸引力。

PDAL的弱点是什么?

PDAL没有提供友好的GUI界面,需要对点云的滤波、读写器有一定的了解。

PDAL首先是一个软件库。一个成功的软件库必须满足软件开发人员的需求,他们使用它为自己的软件提供软件功能。除了用作软件库之外,PDAL还提供了一些命令行应用程序,用户可以利用这些应用程序方便地用PDAL点云转换、过滤和处理数据。最后,PDAL以嵌入式操作和Python扩展的形式提供Python支持。

核心C++软件库

PDAL提供了一个C++ API开发软件,可以在自己的软件中提供点云处理能力。PDAL是跨平台C++,可以在Linux、OS X和Windows上编译运行。

开源库 https://github.com/PDAL/PDAL.git

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

往期线上分享录播汇总

第一期B站录播之三维模型检索技术

第二期B站录播之深度学习在3D场景中的应用

第三期B站录播之CMake进阶学习

第四期B站录播之点云物体及六自由度姿态估计

第五期B站录播之点云深度学习语义分割拓展

第六期B站录播之Pointnetlk解读

[线上分享录播]点云配准概述及其在激光SLAM中的应用

[线上分享录播]cloudcompare插件开发

[线上分享录播]基于点云数据的 Mesh重建与处理

[线上分享录播]机器人力反馈遥操作技术及机器人视觉分享

[线上分享录播]地面点云配准与机载点云航带平差

如果你对本文感兴趣,请点击“原文阅读”获取知识星球二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:微信“920177957”(需要按要求备注) 联系邮箱:[email protected],欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

更多相关:

  • 点云PCL免费知识星球,点云论文速读。标题:三维点云分割综述(上)排版:particle欢迎各位加入免费知识星球,获取PDF文档,欢迎转发朋友圈,分享快乐。这是一篇综述性论文,以下只做概述性介绍,介绍文章已共享在微信群和免费知识星球中,文章在公众号将分成三个部分:第一部分介绍点云的获取以及各种传感器获取点云的特性,以及分割概念的区别...

  • 点云PCL免费知识星球,点云论文速读。文章:DLL: Direct LIDAR Localization. A map-based localization approach for aerial robots作者:Fernando Caballero1 and Luis Merino编译:点云PCL代码:https://githu...

  • CloudCompare是一个三维点云(网格)编辑和处理软件。最初,它被设计用来对稠密的三维点云进行直接比较。它依赖于一种特定的八叉树结构,在进行点云对比这类任务时具有出色的性能【1】。此外,由于大多数点云都是由地面激光扫描仪采集的,CloudCompare的目的是在一台标准笔记本电脑上处理大规模的点云——通常超过1000万个点云。...

  • 点云PCL免费知识星球,点云论文速读。文章:Open3DGen: Open-Source Software for Reconstructing Textured 3D Models from RGB-D Images作者:Teo T. Niemirepo, Marko Viitanen, and Jarno Vanne编译:点云P...

  • 点云PCL免费知识星球,点云论文速读。标题:Real-Time Spatio-Temporal LiDAR Point Cloud Compression作者:Yu Feng , Shaoshan Liu , and Yuhao Zhu来源:2020IROS本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF...

  • 本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:【公众号dotNet工控上位机:thinger_swj】基于Socket访问西门子PLC系列教程(一)在完成上述步骤后,接下来就是编写上位机软件与PLC之间进行通信。上位机UI界面设计如下图所示:从上图可以看出...

  • 我有一个大型数据集,列出了在全国不同地区销售的竞争对手产品。我希望通过使用这些新数据帧名称中的列值的迭代过程,根据区域将该数据帧分成几个其他区域,以便我可以分别处理每个数据帧-例如根据价格对每个地区的信息进行排序,以了解每个地区的市场情况。我给出了以下数据的简化版本:Competitor Region ProductA Product...

  • 作为一名IT从业者,我来回答一下这个问题。首先,对于具有Java编程基础的人来说,学习Python的初期并不会遇到太大的障碍,但是要结合自己的发展规划来制定学习规划,尤其要重视学习方向的选择。Java与Python都是比较典型的全场景编程语言,相比于Java语言来说,当前Python语言在大数据、人工智能领域的应用更为广泛一些,而且大...

  • 这段时间通过学习相关的知识,最大的变化就是看待事物更加喜欢去了解事物后面的本质,碰到问题后解决问题思路也发生了改变。举个具体的例子,我在学习数据分析,将来会考虑从事这方面的工作,需要掌握的相关专业知识这个问题暂且按下不表,那哪些具体的问题是我需要了解的呢,以下简单罗列:1、了解数据分析师这个岗位在各个地区的需求情况?2、数据分析师的薪...

  • 这一节将开始学习python的一个核心数据分析支持库---pandas,它是python数据分析实践与实战的必备高级工具。对于使用 Python 进行数据分析来说,pandas 几乎是无人不知,无人不晓的。今天,我们就来认识认识数据分析界鼎鼎大名的 pandas。目录一. pandas主要数据结构 SeriesDataFrame二...