PCL点云库(Point Cloud Library)简介

(学习笔记)PCL点云库的基本使用 点云是一种能够直观地表示和操作3D传感器所提供数据的方式,这类传感器包括深度摄像头和激光雷达。该类传感器在三维坐标参考系下对空间进行有限点集采样构成点云。通俗的来说,点云就是分布在三维空间的有限个点,这些点具体化的表示了三维传感器所采集到的数据,我们可以很容易的通过点云来查看空间中物体的位置。 阅读详情

PCL点云库(Point Cloud Library)简介

什么是PCL

PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,PCL是BSD授权方式,可以免费进行商业和学术应用。

PCL的发展与创景

PCL起初是ROS(Robot Operating System)下由来自于慕尼黑大学(TUM - Technische Universität München)和斯坦福大学(Stanford University)Radu博士等人维护和开发的开源项目,主要应用于机器人研究应用领域,随着各个算法模块的积累,于2011年独立出来,正式与全球3D信息获取、处理的同行一起,组建了强大的开发维护团队,以多所知名大学、研究所和相关硬件、软件公司为主,可参考图1。截止目前,发展非常迅速,不断有新的研究机构等加入,在Willow Garage, NVidia, Google (GSOC 2011), Toyota, Trimble, Urban Robotics, Honda Research Institute等多个全球知名公司的资金支持下,可参考图1,不断提出新的开发计划,代码更新非常活跃,至今在不到一年的时间内从1.0版本已经发布到1.7.0版本。

 

 

 

 

图1 加入或资助PCL的开发组织、研究所、公司

 

 

 

图2 加入PCL开发的组织全球地理分布

PCL是集体智慧的结晶,是大家共同努力的结果。如果没有这些人的贡献,也就不可能有PCL的出现,笔者在此表示无比敬仰。

随着加入组织的增多,PCL官方目前的计划是继续加入很多新的功能模块和算法的实现,包括当前最新的3D相关的处理算法,如基于PrimeSensor 3D设备,微软Kinect或者华硕的XTionPRO智能交互应用等,详细读者可以参考官方网站每期的新闻,而且也计划进一步支持使用CUDA 和OpenCL等基于GPU的高性能计算的技术。笔者相信在近几年内会有更多的人和组织加入到这个项目中来,共享开源PCL带来的各自领域的成果。

PCL的潜在应用领域

前面讲述了,在这么短时间,如此多的组织个人和公司加入到PCL开源项目中来,为什么?PCL能解决什么问题呢?

机器人领域

移动机器人对其工作环境的有效感知、辨识与认知,是其进行自主行为优化并可靠完成所承担任务的前提和基础。如何实现场景中物体的有效分类与识别是移动机器人场景认知的核心问题,目前基于视觉图像处理技术来进行场景的认知是该领域的重要方法。但移动机器人在线获取的视觉图像质量受光线变化影响较大,特别是在光线较暗的场景更难以应用,随着RGBD获取设备的大量推广,在机器人领域势必掀起一股深度信息结合2D信息的应用研究热潮,深度信息的引入能够使机器人更好地对环境进行认知、辨识,与图像信息在机器人领域的应用一样,需要强大智能软件算法支撑,PCL就为此而生,最重要的是PCL本身就是为机器人而发起的开源项目,PCL中不仅提供了对现有的RGBD信息的获取设备的支持,还提供了高效的分割、特征提取、识别、追踪等最新的算法,最重要的是它可以移植到android、ubuntu等主流Linux平台上,PCL无疑将会成为机器人应用领域一把瑞士军刀。

CAD/CAM、逆向工程

大部分工业产品是根据二维或三维CAD模型制造而成,但有时因为数据丢失、设计多次更改、实物引进等原因,产品的几何模型无法获得,因而常常需要根据现有产品实物生成物体几何模型。逆向工程技术能够对产品实物进行测绘,重构产品表面三维几何模型,生成产品制造所需的数字化文档。在一些工业领域,如汽车制造业,许多零件的几何模型都通过逆向工程由油泥模型或实物零件获得,目前在CAD/CAM领域利用激光点云进行高精度测量与重建成为趋势,同时引来了新的问题,通过获取的海量点云数据,来提取重建模型的几何参数,或者形状模型,对模型进行智能检索,从点云数据获取模型的曲面模型等,诸如此类的问题解决方案在PCL中都有涉及。例如kdtree和octree对海量点云进行高效压缩存储与管理,其中滤波、配准、特征描述与提前基础处理,可以应用于模型的智能检索,以及后期的曲面重建和可视化都在PCL中有相应的模块。总之,三维点云数据的处理是逆向工程中比较重要的一环,PCL中间所有的模块正是为此而生的。

激光遥感测量

能够直接获取高精度三维地面点数据,是对传统测量技术在高程数据获取及自动化快速处理方面的重要技术补充。激光遥感测量系统在地形测绘、环境检测、三维城市建模、地球科学、行星科学等诸多领域具有广泛的发展前景,是目前最先进的能实时获取地形表面三维空间信息和影像的遥感系统。目前,在各种提取地面点的算法中,算法结果与世界结果之间差别较大,违背了实际情况,PCL中强大的模块可以助力此处的各种需求。

虚拟现实、人机交互

虚拟现实技术(简称VR),又称灵境技术,是以沉浸性、交互性和构想性为基本特征的计算机高级人机界面。它综合利用了计算机图形学、仿真技术、多媒体技术、人工智能技术、计算机网络技术、并行处理技术和多传感器技术,模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间,具有广阔的应用前景。目前各种交互式体感应用的推出,让虚拟现实与人机交互发展非常迅速,以微软、华硕、三星等为例,目前诸多公司推出的RGBD解决方案,势必会让虚拟现实走出实验室,因为现有的RGBD设备已经开始大量推向市场,只是缺少,其他应用的跟进,这正是在为虚拟现实和人机交互应用铸造生态链的底部,笔者认为这也正是PCL为何在此时才把自己与世人分享的重要原因所在,它将是基于RGBD设备的虚拟现实和人机交互应用生态链中最重要的一个环节。让我们抓住这一个节点,立足于交互式应用的一片小天地,但愿本书来的不是太迟。

PCL在中国

PCL虽然在国际上,有如此多的组织和公司参与,由于发展如此迅速,目前在google中检索出中文相关的PCL探讨,有且只有一条,当然这也是笔者出书原因之一了,事实上,如图1.2所示,在全球范围内,唯独在中国的版块上,没有参与组织,这里希望广大读者,可以为中国板块上添加一个小旗帜。当然,肯定有科研工作者的在应用或者学习PCL了,笔者依托于中国农业大学、农业部信息获取重点实验室,在与创始人Ruda博士交流后,深感PCL在复杂的农业对象中有不可估量的作用,例如对动植物的重建测度、果蔬等分级检测等应用领域,决定把PCL作为基础研究平台来开展实际应用。同时用学习笔记撰写了本书,把PCL与国人分享,相信在不久的将来,与2D信息处理库OpenCV一样,中国将是PCL最大的用户和贡献者基地。

PCL的结构和内容

如图3PCL架构图所示,对于3D点云处理来说,PCL完全是一个的模块化的现代C++模板库。其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。

PCL利用OpenMP、GPU、CUDA等先进高性能计算技术,通过并行化提高程序实时性。K近邻搜索操作的构架是基于FLANN (Fast Library for Approximate Nearest Neighbors)所实现的,速度也是目前技术中最快的。PCL中的所有模块和算法都是通过Boost共享指针来传送数据的,因而避免了多次复制系统中已存在的数据的需要,从0.6版本开始,PCL就已经被移入到Windows,MacOS和Linux系统,并且在Android系统也已经开始投入使用,这使得PCL的应用容易移植与多方发布。

 

 

                                                                                        图3 PCL架构图

从算法的角度,PCL是指纳入了多种操作点云数据的三维处理算法,其中包括:过滤,特征估计,表面重建,模型拟合和分割,定位搜索等。每一套算法都是通过基类进行划分的,试图把贯穿整个流水线处理技术的所有常见功能整合在一起,从而保持了整个算法实现过程中的紧凑和结构清晰,提高代码的重用性、简洁可读。在PCL中一个处理管道的基本接口程序是:

创建处理对象:(例如过滤、特征估计、分割等);

使用setInputCloud通过输入点云数据,处理模块;

设置算法相关参数;

调用计算(或过滤、分割等)得到输出。

为了进一步简化和开发,PCL被分成一系列较小的代码库,使其模块化,以便能够单独编译使用提高可配置性,特别适用于嵌入式处理中:

libpcl filters:如采样、去除离群点、特征提取、拟合估计等数据实现过滤器;

libpcl features:实现多种三维特征,如曲面法线、曲率、边界点估计、矩不变量、主曲率,PFH和FPFH特征,旋转图像、积分图像,NARF描述子,RIFT,相对标准偏差,数据强度的筛选等等;

libpcl I/O:实现数据的输入和输出操作,例如点云数据文件(PCD)的读写;

libpcl segmentation:实现聚类提取,如通过采样一致性方法对一系列参数模型(如平面、柱面、球面、直线等)进行模型拟合点云分割提取,提取多边形棱镜内部点云等等;

libpcl surface:实现表面重建技术,如网格重建、凸包重建、移动最小二乘法平滑等;

libpcl register:实现点云配准方法,如ICP等;

libpclkeypoints:实现不同的关键点的提取方法,这可以用来作为预处理步骤,决定在哪儿提取特征描述符;

libpcl range :实现支持不同点云数据集生成的范围图像。

为了保证PCL中操作的正确性,上述提到的库中的方法和类包含了单位和回归测试。这套单元测试通常都是由专门的构建部门按需求编译和验证的。当某一部分测试失败时,这些特定部分的各自作者就会立即被告知。这彻底地保证了代码测试过程出现的任何变故,以及新功能或修改都不会破坏PCL中已经存在的代码。

学习笔记:点云库PCL(Point Cloud Library )介绍 在environment.cpp中使用pcl查看器的函数是initCamera和initHighway,initCamera函数用于在窗口中设置不同的观察角度,有5种不同的选择:XY, TopDown, Side和FPS---XY提供45度视角,FPS则是第一人称视角,给人一种坐在汽车驾驶座上的感觉。... 阅读详情

相关推荐

PCL点云库安装及学习(2021.7.28)

PCL点云库学习 2021.7.131、PCL简介2、PCL环境配置3、PCL代码实战 1、PCL简介         PCL是一个点云库,PCL帮助文档,PCL论文下载,PCL的Github地址 2、PCL环境配置 3、PCL代码实战 ...

I have a dream, here my dreams come true! 2万+

Point Cloud Library (PCL) 介绍

PCL介绍PCL相关网站什么是PCL?PCL的划分PCL模块集FiltersFeaturesKeypointsRegistrationKd-treeOctreeSegmentationSample ConsensusSurfaceRange ImageI/OVisualizationPCL教程基本使用下载PCLUsing prebuilt binaries PCL相关网站 PCL官网:请点击这里 ...

Work hard 7304

如何在QT 中部署点云库(Point Cloud Library)

在QT 中部署

speedby1990的博客 2294

PCL学习一:点云与PCL基础

PCL学习一:点云与PCL基础

qq_42994487的博客 1万+

【PCL自学:目录】PCL简介及主要功能模块介绍 (持续更新)

当你知道一切都不重要时,世界就是你的了。——《瑞克和莫蒂》S3E8 一、PCL介绍及主要模块分类   对于从事计算机视觉、机器视觉领域的从业者来说,OpenCV库并不陌生,甚至是我们入门这个领域时的学习的第一个开源库,如果说OpenCV是二维信息处理方面的工兵铲,那PCL(Point Cloud Library)就是在三维信息处理层面的瑞士军刀。   顾名思义, PCL(Point Cloud Library)是专注于点云操作处理的开源算法库,对于从事三维点云数据处理的道友来说是工作学习中必不可少的工具。

斯坦福的兔子的博客 1万+

点云库(Point Cloud Library, PCL)

PCL作为功能最全面的开源点云处理库,​。

weixin_51883798的博客 1140

PCL 点云库(Point Cloud Library)简介

PCL 点云库(Point Cloud Library)简介

m0_37302966的博客 2316

Point Cloud Library (点云库) Windows下编译及安装

Point Cloud Library (点云库) Windows下编译及安装标签(空格分隔): PCL 点云库Point Cloud Library官网上的Installer很久没更新了,这对于想使用最新版点云库的新手可能是个不小的挑战,现在我就手把手教大家如何编译PCL点云库。准备工作 PC平台:Win10 IDE:VS2015 三方工具:cmake 3.7.2 Boost

check_again的博客 2305

点云库PCL(Point Cloud Library)的学习资源汇总

文章目录1.学习资源2 安装配置3 书籍教程3.1 点云库PCL学习教程3.2 点云库PCL从入门到精通4 视频资源 1.学习资源 PCL官网:https://pointclouds.org/ PCL中国:http://www.pclcn.org/ PCL中国翻译版官方教程:http://www.pclcn.org/study/news.php?lang=cn&class3=105 2 安装配置 PCL版本下载:https://github.com/PointCloudLibrary/pcl/rel

重点记录机器人和自动驾驶相关领域的技术,尤其是计算机视觉,视觉SLAM等,不仅有前言文献或必备算法的学习,也会有实际应用的点滴经验 4859

【SLAM】之Point Cloud Library(PCL)简介与安装

PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的

littlethunder的专栏 1万+

SLAM入门(1):点云库PCL源码编译安装和以及在QT中的使用

一、前言 PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,也就是C++模板库。基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在...

qq_43066145的博客 2044

PCL(Point Cloud Library)学习指南&资料推荐(2021版)

PCL(Point Cloud Library)学习指南&资料推荐(2021版) 版权 双愚 https://zhuanlan.zhihu.com/p/268524083?utm_source=wechat_session PCL开始上手其实有点容易迷惑,而且PCL文档最近(2020)改版了。里面很多文档和之前的都不一样了,我自己学习PCL时,看的是最新文档,也踩了很多坑,现在分享一下自己的学习方法和思路,希望对大家有所帮助。 顺便放下个人学习代码(有详细中文注解):http...

aoxuestudy的专栏 9687

PCL点云库入门(第1讲)——PCL库简介和安装(Win10/11+VS2019+PCL 1.12.0)

PCL,全称为,即点云库,是一个专注于2D/3D图像和点云处理的大型开源项目。该项目最初由斯坦福大学的杰出计算机视觉专家Radu博士及其团队开发和维护,经过十余年的发展,目前(2024年12月)已更新至1.14.1版本。PCL点云库集成了众多尖端的点云处理算法,这些算法不仅包括基础的滤波、特征估计、表面重建、配准、模型拟合和分割等,还涵盖了更高级的功能,如点云数据的语义理解、场景解析以及动态环境下的实时处理。这些算法能够对含有噪声的点云数据进行有效过滤,去除异常值;

qq_36812406的博客 1万+

点云库 (Point Cloud Library,PCL)

点云库 (Point Cloud Library,PCL) The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing. 点云库 (PCL) 是一个独立的大型开放项目,用于 2D/3D 图像和点云处理。 PCL is released under the terms of the BSD license, and thus free fo

程永强 2743

大语言模型在建筑规范自动化合规审查中的微调策略与规模效应实践

大语言模型(LLM)通过在海量文本数据上预训练,具备了强大的语言理解和生成能力。其核心原理是基于Transformer架构,通过自注意力机制捕捉长距离依赖关系。在工程实践中,为了将这种通用能力适配到建筑、法律、金融等高度专业化的垂直领域,通常需要采用领域微调技术。微调通过使用特定领域的高质量指令数据对模型参数进行更新,使其掌握专业术语、逻辑规则和任务范式,从而解决通用模型在专业场景下知识匮乏和“幻觉”问题。结合检索增强生成(RAG)技术,将动态外部知识库作为模型的“参考手册”,能进一步提升事实准确性并降低幻

weixin_30667831的博客 362

基于FPGA的函数信号发生器设计

设计采用波形查找表和相位累加器的方法实现DDS,查找表的数据位宽为8位,采样点数为4096。波形产生范围是100Hz-20MHz,最小频率间隔为1Hz,用8个数码管显示频率,可产生正弦波、方波、三角波,波形用两个led显示,select信号控制,全灭为正弦波,一亮一灭为方波,全亮为锯齿波。为了使频率和相位便于调节,用3个拨码开关控制步进,用8个led显示状态。

FPGA入门到跑路 5633

Ubuntu16.04下安装PCL(Point Cloud Library)点云库

1.PCL是什么? 简单来说就是一个的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等, 一般我们仅仅使用到其中的一部分功能(如最常用的就是3D点云的显示功能). 2.如何安装PCL库(Ubuntu环境下) 两种安装方式 第一种: 通过官方推荐的PPA方式在终端进行安装: ...

诗眼天涯的专栏 4161

AI与Agent赋能下的软件测试变革:面向未来测试工程师的工作方法论

AI Agent 软件测试 测试 software testing test

测试技师的自我修养 1232

PCL点云库 概览

PCL 是一个功能强大且灵活的开源库,覆盖了从点云创建、处理到可视化的各个方面。无论是基础的点云操作,还是复杂的配准、特征提取和分割,PCL都提供了丰富的接口和工具。通过掌握PCL的核心功能,您可以轻松地处理来自各种3D传感器的数据,在计算机视觉、机器人、无人驾驶等领域中实现复杂的点云处理任务。

weixin_73414031的博客 2051

1.3-----Simplify 3D切片软件:从新手困惑到高效打印的进阶设置指南

本文详细介绍了Simplify 3D切片软件在大型模型打印中的高效设置技巧,包括切片效率、支撑结构智能生成和精细参数调节等核心优势。通过实战案例和进阶参数设置指南,帮助用户从新手快速进阶到高效打印,显著提升3D打印质量和效率。

weixin_42552716的博客 421

图形推理2-四大类六提示

图形推理笔记2

小y的学习笔记 6739
上一篇: 18-霍夫变换
下一篇: 使用OpenCV完成单目相机矫正
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值