本教程将引导您完成PCL安装的组件,提供模块的简短说明,指明它们的位置,并列出不同组件之间的交互。
概观
PCL分成许多模块化库,最重要的一组发布的PCL模块如下所示:
过滤器
背景
下图显示了一个噪音消除的例子。由于测量误差,某些数据集呈现大量阴影点。这使局部点云3D特征的估计变得复杂。这些异常值中的一部分可以通过对每个点的邻域进行统计分析,并对不符合特定标准的那些进行修剪。PCL中的稀疏异常值去除实现基于输入数据集中的点到相邻距离的分布的计算。对于每个点,计算从它到所有邻域的平均距离。假设由此产生的分布是具有均值和标准差的高斯分布。
位置:
Linux:
Header files(头文件): $(PCL_PREFIX)/pcl-1.6/pcl/filters/
Binaries(二进制文件): $(PCL_PREFIX)/bin/
$(PCL_PREFIX) is the cmake installation prefix CMAKE_INSTALL_PREFIX, e.g., /usr/local/
特征
背景
在3D功能教程中可以找到解释PCL功能如何工作的理论入门知识。
该功能库中包含的数据结构和机制,从点云数据3D功能估计。3D特征是在特定3D点或空间位置的表示,其基于点周围可用的信息来描述几何图案。在查询点周围选择的数据空间通常被称为k邻域。
下图显示了所选查询点及其所选k邻域的一个简单示例
两个最广泛使用的几何点特征的一个例子是在查询点的下层曲面的估计曲率和法线p。它们都被认为是本地特征,因为它们使用k最近点邻域提供的信息来表征一个点。为了有效地确定这些邻域,使用诸如八叉树或kD树(参见下图 - 左:kD-tree,右:八叉树)的空间分解技术将输入数据集通常分割成更小的块,然后执行最近点搜索在那个空间里 取决于应用,可以选择确定k在附近的固定数量的点p,或者以半径r为中心的球体内的所有点p。p毫无疑问,估算曲面法线和曲率变化的最容易的方法是进行k邻点点曲面片的特征分解(即计算特征向量和特征值)。因此,与最小特征值对应的特征向量将近似于n点的表面法线p,而表面曲率变化将从特征值估计为:
位置:
Linux:
Header files(头文件): $(PCL_PREFIX)/pcl-1.6/pcl/filters/
Binaries(二进制文件): $(PCL_PREFIX)/bin/
$(PCL_PREFIX) is the cmake installation prefix CMAKE_INSTALL_PREFIX, e.g., /usr/local/
关键点
背景
该关键点库包含两个点云的关键点检测算法实现。关键点(也称为兴趣点)是图像或点云中稳定、独特的点,可以使用明确的检测标准进行识别。通常情况下,点云中兴趣点的数量将远小于云中的总点数,并且当与每个关键点处的局部特征描述符结合使用时,可以使用关键点和描述符来形成紧凑的点,对原始数据进行描述性表示。
下图显示了从距离图像中提取NARF关键点的输出:
位置:
Linux:
Header files(头文件): $(PCL_PREFIX)/pcl-1.6/pcl/filters/
Binaries(二进制文件): $(PCL_PREFIX)/bin/
$(PCL_PREFIX) is the cmake installation prefix CMAKE_INSTALL_PREFIX, e.g., /usr/local/
配准
背景
将几个数据集组合成全局一致模型通常使用称为配准的技术来执行。关键的思想是确定数据集之间的对应点,并找到一个最小化相应点之间的距离(对齐误差)的变换。这个过程是重复的,