0%

PCLNote

PCL(Point Cloud Library, 点云库)是一个大型跨平台开源C++编程库,实现了大量点云相关的通用算法和高效数据结构。

PCL是BSD授权方式,可以免费进行商业和学术的应用。

包含模块

  1. 分割 (Segmentation)
  2. 特征描述与提取 (Features)
  3. 可视化 (Visualization)
  4. 曲面重建 (Surface)
  5. 识别 (Recognition)
  6. 检索 (Search)
  7. 配准 (Registration)
  8. 关键点 (Keypoints)
  9. 滤波 (Filters)
  10. 采样一致性 (Sample consensus)
  11. 八叉树 (octree)
  12. 通用模块 (common)
  13. 输入输出 (IO)
  14. k维树 (kdtree)

适用平台

  1. 普通多核或单核计算机(x86…)
  2. 嵌入式专用系统(ARM …)
  3. RGBD及其他点云获取设备
  4. GPU

kdtree, octree

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

建立空间索引在点云数据处理中被广泛应用,而这些结构中,k-d tree和八叉树在3D点云数据组织中的应用较为广泛。PCL对八叉树的数据结构建立和索引方法进行了实现,以方便在此基础上的其他点云处理操作。

Filters

在获取点云数据时,由于环境等因素带来的影响,以及电磁波衍射特性、被测物体表面性质变化和数据拼接配准操作过程的影响,点云数据将不可避免地出现一些噪声点。

实际应用中,除了测量随机误差产生的噪声点之外,由于受到外界干扰如视线遮挡、障碍物等因素的影响,点云数据中往往存在着一些离主体点云(即被测物体点云)较远的离散点,即离群点,不同的获取设备点云噪声结构也有不同,其它可以通过滤波重采样完成的工作,有空洞修复、信息损失最小海量点云数据压缩处理等。

在点云处理流程中,滤波处理作为预处理的第一步,往往对后续处理管道影响很大,只有在滤波预处理中将噪声点、离群点、孔洞、数据压缩等按照后续处理定制,才能够更好地进行配准等后续应用处理。

PCL中点云滤波模块提供了很多灵活实用的滤波处理算法,例如双边滤波、高斯滤波、条件滤波、直通滤波、基于随机采样一致性滤波等,关键的滤波模块是作为PCL的一个处理成员模块,其在应用中与其它点云处理流程集成。

Keypoints

关键点也称为兴趣点,它是2D图像、3D点云或曲面模型上,可以通过定义检测标注来获取的具有稳定性、区别性的点集。

从技术上来说,关键点的数量相比与原始点云或图像的数据量小很多,它与局部特征描述子结合在一起,组成关键点描述子,常用来形成原始数据的紧凑表示,而且不失代表性与描述性,从而可以加快后续识别、追踪等对数据的处理速度。关键点提取是2D与3D信息处理中不可或缺的关键技术。

Sample consensus

在CV领域广泛应用各种不同的采样一致性参数估计算法,用于排除错误的样本,样本不同,对应的应用则不同,例如剔除错误的配准点对,分割出处在模型上的点集等。

PCL中以随机采样一致性算法(RANSAC)为核心,同时实现了五种类似于随机采样一致性估计(RANSAC)、最大似然一致性估计(MLESAC)、最大中值方差一致性估计(LMEDS)等,所有的估计参数算法都符合一致性准则。

Features

3D点云特征描述与提取是点云信息处理中最基础也是最关键的一部分,点云的识别、分割、重采样、配准、曲面重建等处理的大部分算法,都严重依赖特征描述与提取的结果。

从尺度上来分,一般分为局部特征描述和全局特征描述,例如局部的法线等几何形状特征的描述,全局的拓扑特征描述,都属于3D点云特征描述与提取范畴。

在PCL中,目前已有很多基本的特征描述子与提取算法。

Registration

在逆向工程、CV、文物数字化等领域中,由于点云的不完整、旋转错位、平移错位等,使得要得到完整点云就需对局部点云就需对点云进行配准。

为了得到被测物体的完整数据模型,需要确定一个合适的坐标变换,将从各个视角得到的点集合并到一个统一的坐标系下,形成一个完整的数据点云,然后就可以方便地进行可视化等操作,这就是点云数据的配准。

点云自动配准有手动配准、依赖仪器的配准和自动配准。通常我们所说的点云配准技术即是指自动配准。

点云自动配准技术是通过一定的算法或者统计学规律,利用计算机计算两块点云之间的错位,从而达到把两片点云配准的效果。其实质是把在不同的坐标系中测量得到的数据点云进行坐标变换,以得到整体的数据模型。问题的关键是如何求得坐标变换参数R(旋转矩阵)和T(变换向量),使得两视角下测得的三维数据经坐标转换后的距离最小。

目前,配准算法按照实现过程可以分为整体配准和局部配准。

PCL中有单独的配准模块,实现了相关的基础数据结构与经典配准算法如ICP等,以及配准过程中的对应点估计、错误对应点去除等流程。配准的关键技术设计关键点选取、与特征描述与提取两部分。

Surface

曲面重建技术在逆向工程、数据可视化、机器视觉、虚拟现实、医疗技术等领域中得到了广泛的应用。

根据重建曲面和数据点云之间的关系可将曲面重建分为两大类:插值法和逼近法。前者得到的重建曲面完全通过原始数据点,而后者则是用分片线性曲面或其它形式的曲面来逼近原始数据点,从而使得产生的重建曲面是原始点集的一个逼近。而根据重建曲面的表现形式不同又可以将它分为以下五种:参数曲面重建、隐式曲面重建、变形曲面重建、细分曲面重建和分片线性曲面重建。

PCL中目前实现了基于点云的曲面重建模块框架,在此基础上进一步实现了比较基础的泊松重建、MC重建、Ear Clipping等算法。

Reference

《点云库PCL从入门到精通》