PCL介绍

1 简介

PCL(The Point Cloud Library) 是一个用于2D/3D图像和点云处理的大型的开源项目。PCL框架由许多先进算法构成,包括滤波、特征估计、表面重构、配准、模型拼合和分割等。这些算法有许多应用,例如,过滤噪声数据中的异常值,拼合多组3D点云,分割场景中的相关部分,提取关键点并计算几何外形的描述子用于识别物体,利用点云创建并可视化物体表面,等等。PCL目前已成功编译并配置在Linux, MacOS, Windows, 和Android/iOS等平台上。为了简化开发,PCL被分割成了一系列可单独编译的小型代码库。

官网地址: http://pointclouds.org

2 功能模块

PCL官网上给出的功能模块(modules)如下:

2.1 核心 core

2.2 图像处理  Image Processing

2.3 信号处理  Signal  Processing

2.4 Common  公共库:公共数据结构和方法模块

2.5 特征 Features

        在计算机视觉和图像处理中,特征是一条用于解决某应用中的计算任务的信息,虽然与机器学习和模式识别中的特征具有相同的意义,但图像处理具有更复杂的特征集合。 特征的概念非常广泛,可以是图像中的特定结构,例如点,边或对象,也可以是邻域操作或特征检测的结果,还有可能是图像序列的运动、根据不同图像区域之间的曲线或边界定义的形状或属性。特定计算机视觉系统中对特征的选择高度依赖于特定问题。

        PCL特征库包含用于点云数据3D特征估计的数据结构和算法。3D特征是空间中在某特定3D点或位置,用该点周围可用的信息描述几何图案的表示方法,在该点周围被选出的数据空间通常称为k邻域。

        两个应用最广泛的几何点特征是(假设点P处)曲率和法线。由于均是使用点P的k个最近邻域点提供的信息来表征该点,曲率和法线都被视为局部特征。为了高效确定这些邻域点,输入数据集通常使用空间分解技术(例如八叉树或kD树)分割成较小的块,然后执行最近点搜索。根据应用需求,可以选择点P附近固定数量的k个点,或者在以点P为中心半径为r的球体内找到的所有点。

2.6 滤波器 Filters

        在信号处理中,滤波器是从信号中去除一些非期望的成分或特征的设备或过程。滤波是一种信号处理,其特征是对信号某些方面的完全或部分抑制。可以针对某些频率成分移除相关性,同时为其他频率成分保留相关性。大多数情况下,这意味着删除一些频率或频段。但是,滤波器并不仅仅在频域中起作用,它还广泛用于电子和电信,无线电,电视,录音,雷达,控制系统,音乐合成,图像处理和计算机图形等领域。

        PCL的滤波器模块用于3D点云数据滤波应用,其包含异常值和噪声消除算法。由于测量误差,某些数据集会呈现大量阴影点。这使得局部点云的3D特征估计变得复杂。滤波器可以对每个点的邻域进行统计分析,并且移除那些不满足某种特定标准的异常值。

        以稀疏异常值为例,PCL对去除稀疏异常值的实现基于数据中某点到邻域点距离分布的计算。 首先,计算每个点到其所有邻域点的平均距离,假设所得到的分布是以平均值和标准偏差为参数的高斯分布,所有平均距离在期望区间(由全局平均距离和标准偏差定义)之外的点可以被认为是异常值并从数据集中移除。

2.7几何  geometry

2.8 I/O  输入输出,最为常用!

pcl_io库包含用于读取和写入点云数据(PCD)文件的类和函数,以及从各种传感设备捕获点云。能直接使用PCL的IO库读取点云数据的设备种类有很多,例如使用OpenNI的设备:Primesense PSDK, Microsoft Kinect, Asus Xtion Pro/Live等。对于无法直接通信的设备也可以手动写一个点云格式转换函数完成衔接。

2.9 Kd(K-dimensional)树 KdTree

        在计算机科学中,Kd树(K维树)是用于组织k维空间中的点的空间划分的数据结构,即一种高维数据的快速查询结构。 Kd树数据结构有大量应用背景,例如涉及多维关键字的搜索(例如范围搜索和最近邻搜索)。

        PCL的kd树库使用FLANN提供Kd树数据结构,允许使用快速最近邻搜索。FLANN是用于在高维空间中执行快速近似最近邻搜索的库。它包含一系列能最好地实现最近邻搜索的算法,以及一个根据数据集自动选择最佳算法和最佳参数的系统。

        Kd树是空间分区数据结构,其在树结构中存储一组k维点,实现有效范围搜索和最近邻搜索。最近邻搜索是处理点云数据时的核心操作,可用于查找点和特征描述符之间的对应关系,或定义一个或多个点周围的局部邻域。

2.10 关键点 Keypoints

        PCL关键点库包含两个点云关键点检测算法的实现。 关键点(也称为兴趣点)是图像或点云中稳定、独立的点,可以使用定义明确的检测标准来识别。 通常,点云中的兴趣点数量将远小于点云数据总数。当与局部特征描述符结合使用时,关键点和描述符可形成原始数据的紧集表示形式。

2.11 八叉树 Octree

        pcl_octree库提供了从点云数据创建层次树数据结构的有效方法。这支持对点数据集进行空间划分、下采样和搜索操作。每个八叉树节点要么有8个子节点,要么没有子节点。根节点描述了封装所有点的立方体包围盒。在每个树级别上,这个空间被2的因子细分,从而增加体素分辨率。

2.12 核外八叉树  outofcore

        Out-of-core octree(核外八叉树)其实就是运行内存不足以载入大量的数据情况下,采用内存映射的方法,并且将数据存储为八叉树的形式保存在硬盘上。

        官网介绍:pcl_outofcore库为太大而无法存储在主内存中的点云提供了八叉树数据结构。相反,数据位于某些辅助存储(磁盘)介质上基于目录的八叉树层次结构中。pcl_outofcore提供了用于构造和遍历 outofcore 八叉树的框架、用于将一组注册的 PCD 文件转换为 outofcore 八叉树的命令行工具pcl_outofcore_process以及用于渲染 outofcore 八叉树的 pcl_outofcore_viewer 。

        pcl_outofcore提供了一个通过 OutofcoreOctreeBase 构造和查询 outofcore 八叉树的接口。核心外八叉树可与任何点类型包含 x、y 和 z 字段的 PCLPointCloud2 一起使用。没有进行内部检查来验证这一点。另一方面,点云不需要过滤 NaN 条目;该库将自动忽略插入方法中的 NaN 点。

2.13 识别  recognition

        识别模块包含用于物体识别应用的算法。类似于2D的模板匹配应用在3D点云上。

2.14 配准 Registration

        图像配准是将不同数据集转换为一个坐标系的过程,是为了比较或整合具有不同(传感器)来源、时间、深度或视角的数据而提出的。主要用于计算机视觉、医学成像、军事自动目标识别,以及编译和分析卫星图像和数据等领域。

        PCL的配准库为有组织或无组织的通用数据集提供了大量的点云配准算法,关键思想是识别数据集之间的对应点并找到最小化对应点之间的距离(对齐误差)的变换,由于对应搜索受数据集的相对位置和方向的影响,该过程需要重复进行。 一旦对齐误差低于给定阈值,则称该配准完成。

2.15 采样一致性 Sample_Consesus

2.16 搜索 Search

2.17 分割 Segmentation

        包含了将点云分割成不同簇的算法。这些算法最适合处理由许多空间隔离区域组成的点云。在这种情况下,通常使用集群将云分解为其组成部分,然后可以独立处理这些部分。

2.18 表面 Surface

2.19 可视化 Visualization

        构建pcl_visualization库的目的是能够快速原型化并可视化在三维点云数据上操作的算法的结果。类似于OpenCV用于在屏幕上显示2D图像和绘制基本2D形状的高端gui。

该库提供如下功能:
1.为点云数据集渲染和设置视觉属性(颜色、点大小、不透明度等)的方法
2.基于点集或者参数方程在屏幕上绘制基本的3D形状(例如,柱面,球体,直线,多边形等)的方法
3.用于2D绘图的直方图可视化模块(PCLHistogramVisualizer)
4.多个几何和颜色处理程序的数据集
该模块包使用VTK库进行距离图像的3D渲染和2D操作。

PS:先总结这些,用到别的再加。

  • 44
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCL(点云库)是一个开源的点云处理库,提供了一系列用于处理和分析三维点云数据的工具和算法。PCL 1.10.1是PCL库的一个版本,这个版本是在2019年发布的。 PCL 1.10.1教程提供了对PCL库的基本使用指南,帮助用户快速上手使用PCL库进行点云数据处理。教程主要包含以下内容: 1. 安装PCL库:教程详细介绍了如何在各个操作系统上安装PCL库,包括Windows、Linux和Mac OS。 2. 点云数据的读取和保存:教程介绍了如何使用PCL库读取和保存点云数据,包括从PCD文件和PLY文件中加载点云数据,以及将点云数据保存为PCD文件或PLY文件。 3. 点云可视化:教程演示了如何使用PCL库进行点云的可视化,将点云数据展示为三维场景,并支持交互操作。 4. 点云滤波:教程介绍PCL库中常用的几种点云滤波方法,如下采样、统计滤波和半径滤波等,以及如何使用这些滤波方法进行点云数据的降噪和平滑处理。 5. 特征提取:教程介绍PCL库中常用的几种点云特征提取方法,如表面法线估计、曲率计算和SHOT特征提取等,以及如何使用这些特征提取方法进行点云数据的特征描述和表征。 6. 点云配准:教程介绍PCL库中常用的几种点云配准方法,如ICP(最近点迭代法)和NDT(正态分布变换)算法等,以及如何使用这些配准方法将不同视角或不同时刻的点云数据对齐。 总而言之,PCL 1.10.1教程为使用PCL库进行点云数据处理的用户提供了详细的指导,从安装到基本操作、滤波、特征提取和点云配准等方面都进行了介绍。对于初学者来说,这份教程是入门必备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值