PCL点云库的架构

2023-11-10

1.输入/输出

     PCL中所有的处理都是基于点云展开的,利用不同的设备获取点云,存储点云等都是点云处理前后必须做的流程,PCL中有自己设计的内部PCD文件格式,为此,设计读写该格式以及与其他3D文件格式之间进行转化的接口类都是很必要的,目前PCL内部支持对常用的3D格式文件的打开与存储操作,以及与PCD内部格式之间的互相转化。

      本章首先对PCL中支持的点云获取设备以及OpenNI开源框架做一个基本介绍,其次对PCL中的IO模块及相关类进行简单说明。最后通过实例来展示如何对PCL中IO模块进行灵活运用。

 

2.kd-tree

      通过雷达,激光扫描,立体摄像机等三维测量设备获取的点云数据,具有数据量大,分布不均匀等特点。作为三维领域中一个重要的数据来源,点云数据主要是表征目标表面的海量点集合,并不具备传统实体网格数据的几何拓扑信息。所以点云数据处理中最为核心的问题就是建立离散点间的拓扑关系,实现基于领域关系的快速查找。

     本章首先对常用的点云空间索引方法kd-tree概念进行介绍,然后对PCL的kd-tree相关模块及类进行简单说明,最后通过应用实例来展示如何应用PCL中kd-tree模块。

 

3.八叉树

   建立空间索引在点云数据处理中被广泛应用,常见空间索引一般是自顶而下逐级划分空间的各种空间索引结构,比较有代表性的包括BSP树,KD树,KDB树,R树,R+树,CELL树和八叉树等索引结构,而在这些结构中KD树和八叉树在3D点云数据组织中应用较为广泛。PCL对八叉树的数据结构建立和索引方法进行了实现,以方便在此基础上的其他点云处理操作。

   本章首先对常用的点云空间索引方法octree概念进行介绍,然后对PCL的octree相关模块及类进行简单说明,最后通过实例来展示如何对PCL中的octree模块进行灵活应用。

 

4.可视化

   可视化是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论,方法和技术。它涉及计算机图形学,图像处理,计算机视觉计算机辅助设计等多个领域,成为研究数据表示,数据处理,决策分析等一系列问题的综合技术。

   可视化技术最早应用于计算机科学中,并形成了可视化技术的一个重要分支——科学计算可视化。科学计算可视化能够把科学数据,包括测量获得的数值,图像或是计算中涉及,产生的数字信息变为直观的,以图形图像信息表示的,随时间和空间变化的物理现象或物理量呈现在研究者面前,使他们能够观察,模拟和计算。目前正在发展的虚拟现实技术,所有这些都依赖于计算机图形学,计算机可视化技术的发展,已涉及建筑,产品设计,医学,地球科学,流体力学,虚拟农业等领域。

    本章首先对常用的点云可视化概念进行介绍,其次对PCL的可视化相关模块及类进行简单说明,最后通过实例来展示如何对PCL中可视化模块进行灵活应用。

 

5.滤波

        在获取点云数据时,由于设备精度,操作者经验,环境因素等带来的影响,以及电磁波衍射特性,被测物体表面性质变化和数据拼接配准操作过程的影响,点云数据中将不可避免的出现一下噪声点。实际应用中除了这些测量随机误差产生的噪声点之外,由于受到外界干扰如视线遮挡,障碍物等因素影响,点云数据往往存在着一些离主体点云即被被测物体点云较远的离散点,即离群点,不同的获取设备点云噪声结构也有不同,其他可以通过滤波重采样完成的工作,可以是孔洞修复,信息损失最小,海量点云数据压缩处理等。在点云处理流程中滤波处理作为预处理的第一步,往往对后续处理管道影响很大,只有在滤波预处理中将噪声点,离群点,孔洞,数据压缩等按照后续处理定制,才能够更好的配准,特征提取,曲面重建,可视化等后续应用处理。PCL中点云滤波模块提供了很多灵活实用的滤波处理算法,例如双边滤波,高斯滤波,条件滤波,直通滤波,基于随机采样一致性滤波等,滤波模块是作为PCL的一个处理成员模块,其在应用中非常方便与其他点云处理流程集成。

      本章首先对PCL中实现的双边滤波算法以及所涉及的概念进行简介,其次对PCL滤波相关模块及类进行简单介绍,最后通过在PCL中使用直通滤波器对点云进行滤波处理,使用VoxelGrid滤波器对点云进行下采样,使用StatisticalOutlier_Removal滤波器移除离群点,使用参数化模型投影点云,从点云中提取索引,使用ConditionalRemoval或RadiusOutlierRemoval移除离群点六个应用实例来展示如何对PCL中滤波模块进行灵活运用。

 

6.深度图像

          我们生活在一个三维世界中,人类视觉系统是面向三维世界的,心理学研究结果表明:人类的视觉系统在理解和识别景物时,应用了大量的基于视觉的深度信息,因此,开展有关深度图像方面的分析和研究,对计算机视觉技术的发展有着重要的促进作用。近年来,随着各种光学传感器技术的迅猛发展,包含物体三维结构信息的深度图像数据获取已经开始大量普及,特别是廉价类设备的出现,引发了自然人机交互从实验室走向大众,从而基于深度图像的研究也成为人们关注的焦点。

目前,深度图像的获取方法有激光雷达深度成像法,计算机立体视觉成像,坐标测量机法,莫尔条纹法,结构光法等等。针对深度图像的研究重点主要集中在以下几个方面:深度图像的分割技术,深度图像的边缘检测技术,基于不同视点的多幅深度图像的配置技术,基于深度数据的三维重建技术,基于深度图像的三维目标识别技术,深度数据的多分辨率建模和几何压缩技术等等。在PCL中深度图像和点云最主要区别在于,其邻近的检索方式不同,并且可以相互转换。

  本章首先对深度图像的概念及表示方法进行简介,其次对PCL的两个Range_Image类进行简单简介,最后通过如何从一个点云创建一个深度图像和如何从深度图像中提取物体边缘的两个应用实例,来展示如何对PLC中RangeImage相关类进行灵活运用。

 

7.关键点

         关键点也称兴趣点,它是2D图像或者3D点云或曲面模型上,可以通过定义检测标准来获取的具有稳定性,区别性的点集。从技术上来说,关键点的数量相比于原始点云或图像的数据量减少很多,与局部特征描述子结合一起,组成关键点描述子常用来形成原始数据的紧凑表示,而且不失代表性和描述性,从而加快后续识别,追踪等对数据的处理速度。固而,关键点提取就成了2D和3D信息处理中不可或缺的关键技术。

   本章首先对PCL中涉及的点云关键点提取方法的概念进行简介,其次对PCL的keypoints相关模块及类进行简单介绍,最后通过实例来展示如何对PCL中的keypoints模块进行灵活运用。

8。采样一致性算法 

      在计算机视觉领域广泛应用各种不同的采样一致性参数估计算法用于排除错误的样本,样本不同对应的应用则不同,例如剔除错误的配准点对,分割出处在模型上的点集等。PCL中以随机采样一致性算法为核心,同时实现了五种类似于随机采样一致性估计参数算法的随机参数估计算法,例如随机采样一致性估计,最大似然一致性估计,最小中值方差一致性估计等,所有的估计参数算法都符合一致性准则。本章涉及的基于采样一致性算法的应用主要是对点云进行分割,根据设定不同的几何模型,估计对应的几何模型的参数,在一定允许范围误差内分割出在模型上的点云,但本章并非讲述点云分割,而是主要对采样一致性相关介绍,目前PCL中支持的几何模型分割有空间平面,直线,二维或三维圆周,圆球,锥体。随机采样一致性估计的另一应用就是点云的配置对的剔除。

        本章首先对随机采样一致性模块相关概念及算法进行简介,其次对PCL的随机采样一致性相关模块及类进行简单介绍。最后通过实例对模块进行灵活运用。

 

9.点云特征描述与提取

     3D点云特征描述与提取是点云信息处理中的最基础也是最关键的一部分,点云的识别,分割,重采样,配准,曲面重建等处理大部分算法,都严重依赖特征描述与提取的结果。从尺度上来分,一般分为局部特征描述和全局特征描述,例如局部的法线,等几何形状特征的描述,全局的拓扑特征描述,都属于3D点云特征描述与提取范畴。在PCL中,目前已有很多基本的特征描述子和提取算法。

     本章首先对涉及的部分点云特征描述与提取的概念进行简介,由于特征描述子和提取算法的多样性,和实例相关的概念在后面结合实例也进行了详细介绍,其次对PCL的特征描述与提取相关模块及类进行简单介绍,最后通过实例展示如何对PCL中特征描述与提取相关模块进行灵活运用,例如法线估计,各种点特征描述子的提取方法等。

 

 

10.点云配准

随着计算机辅助设计技术的发展,通过实物模型产生数字模型的逆向工程技术由于它的独特魅力获得了越来越多广泛应用,与此同时,硬件设备的日趋完善也为数字模型操作提供了足够的技术支持。在逆向工程,计算机视觉,实物数字化等领域中,由于点云的不完整,旋转错位,平移错位等,使得要得到完整点云就需要对局部点云进行配准。为了得到被测物体的完整数据模型,需要确定一个合适的坐标转换,将从各个视角得到的点集合并到一个统一的坐标系下形成一个完整的数据点云,然后就可以方便地进行可视化等操作,这就是点云数据的配准。点云配准有手动配准,依赖仪器的配准和自动配准。通常我们所说点云配准技术是指最后一种自动配准。点云自动配准技术是通过一定的算法或者统计学规律,利用计算机计算两块点云之间的错位,从而达到把两片点云自动配准的效果。其实质是把在不同的坐标系中测量得到的数据点云进行坐标转换,以得到整体的数据模型。

      问题的关键是如何求得坐标转换参数R(旋转矩阵)和T(平移向量),使得两视角下测得的三维数据经坐标变换后的距离最小,目前,配准算法按照实现过程可以分为整体配准和局部配准。PCL中有单独的配准模块,实现了配准相关的基础数据结构与经典配准算法如ICP等,以及配准过程中的对应点估计,错误对应点去除等流程。由于配准的关键技术有关键点选取,与特征描述与提取两部分。所以可以回顾前面的类容。

 

11.点云分割

点云分割是根据空间,几何和纹理等特征对点云进行划分,使得同一划分内的点云拥有相似的特征。点云的有效分割往往是许多应用的前提,例如,在逆向工程CAD/CAM领域对零件的不同扫描表面进行分割,然后才能更好地进行孔洞修复,曲面重建,特征描述和提取,进而进行基于3D内容的检索,组合重用等。在激光遥感领域,同样需要对地物首先进行分类处理,然后才能进行后期地物的识别,重建。总之,分割采用分而治之的思想在点云处理中和滤波一样属于重要的基础操作,在PCL中目前实现了进行分割的基础架构,为后期更多的扩展奠定了基础,现有实现的分割算法是鲁棒性比较好的聚类分割和基于随机采样一致性的分割。

本章首先对PCL中所实现的分割方法——聚类分割算法和基于随机采样一致性的分割算法进行简介,其次对PCL的Segmentation相关模块及类进行简单介绍。

 

12.点云曲面重建

       曲面重建技术在逆向工程,数据可视化,机器视觉,虚拟现实,医疗技术等领域中得到了应用。例如,在汽车,航空等工业领域中,复杂外形产品的设计仍需要根据手工模型,采用逆向工程的手段建立产品的数字化模型,根据测量数据建立人体以及骨骼和器官的计算机模型在医学,定制生产等方面都有重要意义。除了上述传统行业,随着新型的廉价RGBD获取设备在数字娱乐行业的病毒式扩张,使得更多人开始使用点云来处理对象并进行工程应用。根据重建曲面和数据点云之间的关系可将曲面重建分为两大类:插值法和逼近法。前者得到的重建曲面完全通过原始数据点,而后者则是用分片线性曲面或其他形式的曲面来逼近原始数据点,从而使得得到的重建曲面是原始点集的一个逼近。而根据重建曲面的表现形式不同又可以将它分为一下5种:参数曲面重建,隐式曲面重建,变形曲面重建,细分曲面重建和分片线性曲面重建。PCL中目前实现了基于点云的曲面重建模块框架,在此基础上实现了比较基础的泊松重建,MC重建,EarClipping等算法。

本章首先将对PCL中实现的几种曲面重建算法概念进行简介,其次对PCL的surface模块及类进行简单说明,最后通过实例来展示如何对PCL的surface模块灵活运用。

 

  

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PCL点云库的架构 的相关文章

  • pcl::pointcloud和pcl::pointcloud::Ptr区别

    后者是指针类型的点云类 定义点云的格式 xff1a pcl PointCloudpcl PointXYZ Ptr cloud Ptr new pcl PointCloudpcl PointXYZ pcl PointCloudpcl Poin
  • PCL-Window下安装

    1 安装编译工具链MSVC MSVC工具链是visual studio 自带的工具链 xff0c 因此安装visual studio社区版即安装完成相应的MSVC工具链 2 安装Clion 相比与Visual studio的界面来说 xff
  • 【点云空间索引】python-pcl:KdTree与八叉树

    1 点云是什么 通过雷达 激光扫描 立体摄像机等三维测量设备获得的点云数据 具有数据量大 分布不均匀等特点 点云数据主要是表征目标表面的海量点集合 并不具备传统实体网格数据的几何拓扑信息 点云处理中最核心的问题就是建立离散点间的拓扑结构 实
  • ubuntu20.04下安装pcl

    pcl点云数据库 用来进行3D信息的获取与处理 和opencv相比较 opencv是用来处理二维信息 他是学术界与工业界针对点云最全的库 且网络上相关的资料很多 以下是pcl的安装步骤以及遇到的问题 提前说明 本人用的是ubuntu20 0
  • PCL1.12+VTK9.1+QT6编译部署

    本文讲解使用的环境是vs2019 pcl1 12 0 vtk9 1 qt6 0 最后再展示一个示例程序 1 编译VTK vtk下载地址如下 https vtk org download 然后用cmake构建 修改一下几个地方 然后打开生成的
  • PCL学习笔记,区域生长分割(region growing segmentation)

    在本博文中 我主要介绍如何在pcl RegionGrowing类中调用区域增长算法 首先注意一点 这里是region growing segmentation 不是color based region growing segmentatio
  • PCL分割:Conditional Euclidean Clustering官方历程,在自己配置环境上调错

    本人环境 VS2015 PCL1 8 1 1 首先遇到遇到了 无法解析的外部符号 提示和normal estimation等错误 解决办法 打开项目属性页 gt C C gt 预处理器 添加 PCL NO PRECOMPILE 2 erro
  • 【PCL】基于法线的差异来分割点云

    基于法线差异来分割点云 1 法向量的计算及可视化 法线又称法向量 因为在三维的点云中 根据一个点的K近邻点或者一个点的radius半径范围内的点拟合一个平面 而垂直这个平面且经过改点的线称之为法向量 法向量是点云点到另一个点的有方向的线段
  • pcl去除重复点云

    cpp bool compare pt pcl PointXYZI p1 pcl PointXYZI p2 if p1 x p2 x return p1 x gt p2 x else if p1 y p2 y return p1 y gt
  • 点云边界提取及可视化

    include
  • PCL点云库学习笔记(可视化2)

    PCL点云库学习笔记 可视化 可视化 四 PCLPlotter 五 MFC 开发实例 可视化 四 PCLPlotter 4 1 绘制多项式 PCLPlotter提供了一个非常简单明了的图形绘制界面 可以在库中可视化各种重要的图 从多项式函数
  • pcl经典算法60例——所有代码参考链接(开源)

    pcl经典算法60例大集合 方法名称 开源链接 1 打开点云 MFC显示点云 柯西等式的博客 CSDN博客 2 显示法线 PCL计算点云的法线 pcl 法线 Tom Hardy的博客 CSDN博客 3 三角化 PCL学习笔记 点云曲面重建
  • 点云边界提取方法总结

    目录 经纬线扫描法 网格划分法 法线估计法 alpha shapes算法 原始点云 经纬线扫描法 经纬线扫描法的基本思想是 将经过坐标变换后的二维数据点集按照 x值的大小排序后存储在一个链表中 在二维平面建立点集的最小包围盒并分别计算出 x
  • CloudCompare和PCL体素滤波:优化点云数据处理

    CloudCompare和PCL体素滤波 优化点云数据处理 介绍 点云数据处理在计算机视觉和机器人领域扮演着重要角色 然而 原始的点云数据可能包含噪声 离群点和冗余信息 这可能对后续的分析和应用造成负面影响 为了解决这些问题 我们可以使用体
  • 关于VTK9 vs2019编译QVTK 过程中的记录

    环境 vtk9 0 QT5 12 PCL 1 12 vs2019 x64 这段时间下载了VTK 9 0 并利用vs2019对QVTK进行了编译 1 只要在编译过程中勾选了QT相关选项 就一定可以生成QVTK相关的头文件和库 编译过程网上已经
  • 【Ubuntu】vscode配置PCL库/vscode无法导入PCL库

    问题 PCL库是ROS框架自带的点云处理库 可以通过find package PCL REQUIRED 在CMakeLists txt中导入 但是vscode却无法识别 出现问题如下 注意 本文解决方案仅限Ubuntu 解决方案 打开工程路
  • ubuntu中使用QT同时编译pcl和opencv出现error: field ‘pa ram_k_’ has incomplete type ‘flann::SearchParams’

    问题描述 ubuntu中使用QT同时编译opencv和pcl时出现如下错误 错误原因 pcl和opencv中均包含flann库产生冲突 解决办法 将flann目前更换为flann2或者其它名字 在更改目录后 其它关联引用文件也需要更改 涉及
  • 点云分割介绍

    PCL之点云的分割 参考博客 https www yuque com huangzhongqing pcl kg7wvi peMqz https blog csdn net lizhengze1117 article details 890
  • PCL测试程序(兔子)

    程序 include
  • 对 pcl::StatisticalOutlierRemoval 滤波器的理解

    对 pcl StatisticalOutlierRemoval 滤波器的理解 注 以下内容基于与 GPT 4 的交流并结合个人理解整理而成 若有描述不准确或模糊之处 欢迎指正 参数配置 setMeanK int meanK 此参数设置每个点

随机推荐

  • [21]有道翻译的那些事~

    2017 年最新有道翻译API 解析教程 从上面接口 大概可以推测一下 i 需要翻译的内容 from to 这两个key 都为AUTO 大概猜测一下应该为自动翻译 自动检测语言并翻译 smartresult client doctype v
  • react学习笔记-从井字棋开始(1)

    教程地址 https react docschina org tutorial tutorial html 新建工程 1 确保你安装了较新版本的 Node js 2 按照 Create React App 安装指南创建一个新的项目 npx
  • Kaldi知识点汇集

    我的书 淘宝购买链接 当当购买链接 京东购买链接 特征提取 MFCC compute mfcc feats cc Create MFCC feature files Usage compute mfcc feats options
  • Javascript访问html页面的控件的方法详细分析

    访问控件的主要对象是 document对象 分别对应当前文档所有的 子对象 个人观点 并且已经提供的几个主要方法来访问对象 1 document getElementById 2 document getElementsByName 3 d
  • Python的环境安装搭建

    首先 在浏览器中输入Python网站的官方网址www python org进入官网 然后用鼠标触碰Downloads 可以看到如今最新的版本为Python3 10 3 点击图中python3 10 3进行下载 下载完成后就会进入如下界面 I
  • unet模型及代码解析

    什么是unet 一个U型网络结构 2015年在图像分割领域大放异彩 unet被大量应用在分割领域 它是在FCN的基础上构建 它的U型结构解决了FCN无法上下文的信息和位置信息的弊端 Unet网络结构 主干结构解析 左边为特征提取网络 编码器
  • 【已解决】Nacos 2.0.2启动异常以及正常启动后账号密码错误问题解决

    1 正常解压压缩文件后 在bin目录下直接双击startup cmd启动Nacos 或bin目录下命令行输入startup cmd 新版本需要输入startup cmd m standalone 发现启动报错 报错信息我们可以看到大量的sq
  • 3串锂电池充放电保护板设计参考

    3串锂电池充放电保护板设计参考 这里只提供原理图参考 链接 https pan baidu com s 1cSmTf8fifrEjxfrCrTV 3w 提取码 5i5i 不想自己做 可以去TB买 也不贵 也就10几块钱 自己做也可以参考其说
  • leetcode 给我上了深深的一课,被删掉所有题解后的我感动了

    常在河边走 哪有不湿鞋 我是小浩算法公众号的号主 昨天发生了一件非常悲催的事情 我在leetcode上的所有算法题解 五六十篇肯定是有的 都被删除了 可惜之前我没有截图 现在进到页面里是这个样子 所有的题解都被后台删除 同时号也被封了 没办
  • geojson 格式说明(格式详解)

    1 简介 GeoJSON是一种对地理数据结构进行编码的格式 GeoJSON对象可以表示几何信息 要素或者要素集合 GeoJSON支持下面几何类型 Point LineString Polygon MultiPoint MultiLineSt
  • VCS+Verdi 安装及破解过程(Ubuntu)【1】

    转载自 https blog csdn net qq 40829605 article details 85345795 由于系统不一样 中途改了一些东西 不过终于装成功了 分享一下 简述 这篇文章讲述了在Ubuntu 64bit系统上VC
  • 华为OD机试 - 数据最节约的备份方法(Java)

    题目描述 有若干个文件 使用刻录光盘的方式进行备份 假设每张光盘的容量是500MB 求使用光盘最少的文件分布方式 所有文件的大小都是整数的MB 且不超过500MB 文件不能分割 分卷打包 输入描述 一组文件大小的数据 输出描述 使用光盘的数
  • pychrm设置全局代理

    以设置proxy ip 为示例 os environ ALL PROXY http 127 0 0 1 10809
  • 通过js动态改变字体大小(通过相对单位rem可以做到只修改根元素字体大小就成比例地调整页面所有字体大小)

    function setRem var ui w 375 var client w document documentElement clientWidth document body clientWidth var html docume
  • 数据库系统概论——第四章 数据库安全性

    数据库系统概论 第四章 数据库安全性 数据库安全性 保护数据库以防止不合法使用所造成的数据泄露 更改或破坏 系统安全保护措施是否有效是数据库系统主要的性能指标之一 一 数据库安全安全性概论 1 数据库的不安全因素 1 非授权用户对数据库的恶
  • Python基础语法 and 题库

    文章目录 Python基础语法 python程序设计内容指导 chapter2 Python运算符 内置函数 序列数基本用法 chapter3 使用蒙特 卡罗方法计算圆周率的近似值 chapter4 使用列表实现筛选法求素数 chapter
  • 加载el-dialog中的子组件

    在使用element ui开发项目的过程中 使用el dialog的时候很多 简单的使用想必都没有问题 但是涉及到复杂的应用时 就容易想错方向 从而走很多弯路了 实际应用场景 el dialog作为通讯录功能弹出 默认不显示状态 只有点击相
  • Ubantu 安装 Oracle JDK

    1 Oracle 官网下载 jdk 压缩包 Java Downloads Oracle 2 下载的 jdk 18 linux aarch64 bin tar gz 通过 sftp 上传到 Ubantu 3 解压 jdk 18 linux a
  • 压缩感知究极入门贴

    压缩感知 目的是将一个高维信号投影到一个低维空间 为完成这一目标 1 需要原始信号是在某个变换域中是稀疏的 也是可压缩的 2 需要找一个与变换基不相关的观测矩阵将变换后的信号 从高维投影到低维 这里可以举一个简单的例子 比如有一个三维信号X
  • PCL点云库的架构

    1 输入 输出 PCL中所有的处理都是基于点云展开的 利用不同的设备获取点云 存储点云等都是点云处理前后必须做的流程 PCL中有自己设计的内部PCD文件格式 为此 设计读写该格式以及与其他3D文件格式之间进行转化的接口类都是很必要的 目前P