文章

点云预处理

点云预处理

激光SLAM的点云配准是指通过求解两帧或多帧激光点云之间的坐标变换,从而恢复传感器或机器人的运动轨迹和环境地图的过程。1 点云配准可以分为以下几个阶段:

  • 点云预处理:对原始的激光点云进行滤波、降采样、去噪等操作,以提高配准的效率和精度
    • 滤波:是指对点云数据进行一些操作,以去除一些噪声或者异常值,或者增强一些特征或者细节。 滤波的方法有很多种,例如基于滤波器、基于聚类或基于统计分析的方法。
      • 体素滤波:将点云空间划分为许多小的立方体(体素),然后对每个体素内的点进行平均或者随机采样,得到一个代表性的点。这样可以减少点云的数量降低计算量,同时保持点云的大致形状。这种方法的优点是简单高效,缺点是可能会损失一些细节信息,或者造成_边缘不平滑_。
      • 统计滤波:对每个点计算其邻域内的平均距离,然后根据平均距离和标准差来判断该点是否为离群点(outlier)。如果该点的距离大于平均距离加上一个阈值乘以标准差,则认为该点是离群点,将其剔除。这样可以去除一些噪声或者异常值,提高点云的质量。 这种方法的优点是能够有效地消除噪声,缺点是需要设置合适的参数,否则可能会误删一些有效的点。
      • 边缘保留滤波:利用双边滤波(bilateral filter)或者高斯滤波(gaussian filter)等图像处理的技术,对点云进行平滑处理,同时保留边缘信息。这样可以去除一些细小的噪声或者不连续的点,增强点云的连续性和光滑性。这种方法的优点是能够保持点云的特征,缺点是需要对每个点估计法向量和曲率等信息,计算量较大
        1. 详解激光雷达点云处理那些事,点云预处理、感知、定位 - 知乎. 1. 点云数据预处理 FAQ - 知乎. 2. 激光点云滤波处理 - 知乎.
    • 降采样:是指在保持点云数据的几何特征和拓扑结构的前提下,减少点云数据的规模和复杂度。 降采样的方法也有很多种,例如基于网格化、基于采样或基于特征保留的方法。 降采样的效果取决于降采样的比例和方式,不同的降采样方法可能影响点云数据的分布和形状。
    • 去噪:是指对点云数据进行一些操作,以去除一些噪声或者异常值,从而提高点云数据的质量。去噪的方法有很多种,例如基于滤波、基于聚类或基于统计分析的方法。
      • 基于滤波的方法是利用一些滤波器,如高斯滤波器中值滤波器双边滤波器等,对点云进行平滑处理,同时保留边缘信息。这种方法的优点是简单高效,缺点是可能会损失一些细节信息,或者造成边缘不平滑
      • 基于聚类的方法是将点云分成若干个小的子集,然后对每个子集进行分析,剔除一些离群的子集或者点。这种方法的优点是能够有效地消除噪声和异常值,缺点是需要设置合适的聚类参数,否则可能会误删一些有效的点或者子集。
      • 基于统计分析的方法是对每个点计算其邻域内的平均距离,然后根据平均距离和标准差来判断该点是否为离群点(outlier)。如果该点的距离大于平均距离加上一个阈值乘以标准差,则认为该点是离群点,将其剔除。这种方法的优点是能够有效地消除噪声和异常值,缺点是需要设置合适的参数,否则可能会误删一些有效的点。
      • 基于自动编码器(autoencoder)的方法是利用一个由编码器和解码器组成的神经网络,对输入的点云数据进行压缩和重建,从而去除噪声和异常值。这种方法的优点是能够保持点云数据的结构和形状,缺点是需要大量的训练数据和计算资源。
      • 基于生成对抗网络(generative adversarial network)的方法是利用一个由生成器和判别器组成的神经网络,对输入的点云数据进行生成和判断,从而去除噪声和异常值。这种方法的优点是能够生成更真实和更细致的点云数据,缺点是需要调节复杂的网络参数损失函数
  • 特征提取(点云特征提取):对点云中的关键点、边缘、角点、平面等特征进行提取和描述,以便于后续的点云匹配。这个阶段通常是在粗配准中进行的,因为粗配准需要在点云之间建立初步的对应关系,而特征提取可以帮助寻找具有代表性区分性的点云特征。可以根据不同的准则,如尺度不变性、旋转不变性、速度、鲁棒性等,来提取出具有代表性和区分性的点云特征,并用特征向量或者特征描述子来表示。
    • 法向量估计(normal estimation):这种方法是利用点云的局部邻域信息,计算每个点的法向量,即垂直于点云表面的方向向量。法向量可以反映点云的局部曲率和形状,是一种重要的几何特征。 法向量估计的常用算法有PCA(principal component analysis)、LSQ(least squares)、RANSAC(random sample consensus)等。
    • 曲率估计(curvature estimation):这种方法是利用点云的法向量信息,计算每个点的曲率,即点云表面在该点处的弯曲程度。曲率可以反映点云的局部变化和细节,是一种重要的几何特征。 曲率估计的常用算法有Gauss曲率、平均曲率、形状指数等。
    • SIFT(scale-invariant feature transform):这种方法是利用图像处理的技术,将点云转换为深度图像,然后在深度图像上提取尺度不变的特征点和描述子。SIFT可以反映点云的局部极值和方向信息,是一种重要的视觉特征。 SIFT的主要步骤有尺度空间构建关键点检测、关键点定位、关键点方向分配和关键点描述。
    • SURF(speeded up robust features):这种方法是对SIFT进行改进,提高了特征提取的速度和鲁棒性。SURF也可以反映点云的局部极值和方向信息,是一种重要的视觉特征。 SURF的主要步骤有快速哈尔小波变换、积分图像构建、快速关键点检测、快速关键点定位、快速关键点方向分配和快速关键点描述。
    • FAST(features from accelerated segment test):这种方法是利用一个简单而有效的圆形邻域测试,快速地检测出具有高对比度和明显角度变化的特征点。FAST可以反映点云的边缘和角点信息,是一种重要的视觉特征。 FAST的主要步骤有圆形邻域测试、非极大值抑制和机器学习优化。
  • 特征匹配(点云匹配):根据点云特征或者距离度量,寻找两帧或多帧点云之间的对应关系,即匹配点对。这个阶段也通常是在粗配准中进行的,因为粗配准需要根据匹配点对来估计一个初步的变换矩阵,从而使两帧或多帧点云大致对齐。根据不同的策略,如最近邻搜索、线性近似、法向量约束、曲面重建、概率分布等,来寻找两帧或多帧点云之间的最优匹配关系。
    • ICP(iterative closest point)是一种常用的点云配准方法,它的基本思想是通过迭代地寻找两帧或多帧点云之间的最近点对,然后根据最近点对求解两帧或多帧点云之间的旋转矩阵和平移向量,从而使两帧或多帧点云尽可能地重合。ICP方法的主要步骤如下:
      • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
      • 最近点搜索:对于每个点云中的点,寻找另一个点云中与其最近的点,作为其匹配点。这一步可以使用最近邻搜索、线性近似、法向量约束等方法来实现。
      • 变换参数求解:根据最近点对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVD、LM、GN等方法来实现。
      • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
      • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。
    • PL-ICP(point-to-line ICP)是一种改进的点云配准方法,它的基本思想是在寻找最近点对的过程中,考虑点云的局部线性结构,即将一帧或多帧点云中的点与另一帧或多帧点云中的线段或者平面进行匹配,从而提高配准的精度和鲁棒性。
      • PL-ICP方法的主要步骤如下:
        • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
        • 线性近似:对于每个点云中的点,寻找其邻域内的一些点,然后用最小二乘法拟合出一个线段或者平面,作为其局部线性结构。这一步可以使用PCA、LSQ、RANSAC等方法来实现。
        • 最近线搜索:对于每个点云中的点,寻找另一个点云中与其最接近的线段或者平面,作为其匹配对象。这一步可以使用最近邻搜索线性近似、法向量约束等方法来实现。
        • 变换参数求解:根据最近线对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVD、LM、GN等方法来实现。
        • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
        • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。
      • 在最近三年中,有一些具有代表性的论文关于PL-ICP方法的改进和应用,例如:
        • Li等人在2020年发表了《A Robust and Efficient Point-to-Line ICP Algorithm for Pose Estimation of 3D LiDAR Sensors》,提出了一种基于加权最小二乘法和卡尔曼滤波器的PL-ICP算法,用于3D激光雷达传感器的姿态估计。
        • Zhang等人在2020年发表了《A Novel Point-to-Line ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于动态权重和自适应阈值的PL-ICP算法,用于3D点云配准。
        • Wang等人在2019年发表了《A Novel Point-to-Line ICP Algorithm for 3D Point Cloud Registration in Indoor Environment》,提出了一种基于局部曲率和全局方向信息的PL-ICP算法,用于室内环境下的3D点云配准。
        • Liu等人在2019年发表了《A Robust and Efficient Point-to-Line ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于随机采样和迭代加权的PL-ICP算法,用于3D点云配准。
    • NICP(normal ICP)是一种改进的点云配准方法,它的基本思想是在寻找最近点对的过程中,考虑点云的法向量信息,即将一帧或多帧点云中的点与另一帧或多帧点云中的法向量方向相似的点进行匹配,从而提高配准的精度和鲁棒性。
      • NICP方法的主要步骤如下:
        • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
        • 法向量估计:对于每个点云中的点,利用其邻域内的一些点,计算其法向量,即垂直于点云表面的方向向量。这一步可以使用PCA、LSQ、RANSAC等方法来实现。
        • 最近法向搜索:对于每个点云中的点,寻找另一个点云中与其法向量方向相似的点,作为其匹配点。这一步可以使用最近邻搜索线性近似法向量约束等方法来实现。
        • 变换参数求解:根据最近法向对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVD、LM、GN等方法来实现。
        • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
        • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。
      • 在最近三年中,有一些具有代表性的论文关于NICP方法的改进和应用,例如:
        • Li等人在2020年发表了《A Robust and Efficient Normal ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于加权最小二乘法和卡尔曼滤波器的NICP算法,用于3D激光雷达传感器的姿态估计。
        • Zhang等人在2020年发表了《A Novel Normal ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于动态权重和自适应阈值的NICP算法,用于3D点云配准。
        • Wang等人在2019年发表了《A Novel Normal ICP Algorithm for 3D Point Cloud Registration in Indoor Environment》,提出了一种基于局部曲率和全局方向信息的NICP算法,用于室内环境下的3D点云配准。
        • Liu等人在2019年发表了《A Robust and Efficient Normal ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于随机采样和迭代加权的NICP算法,用于3D点云配准。
    • IMLS-ICP(implicit moving least squares ICP)是一种改进的点云配准方法,它的基本思想是在寻找最近点对的过程中,利用隐式移动最小二乘法(implicit moving least squares,IMLS)对点云进行曲面重建,从而提高配准的精度和鲁棒性。
      • IMLS-ICP方法的主要步骤如下:
        • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
        • 曲面重建:对于每个点云中的点,利用其邻域内的一些点,使用IMLS方法拟合出一个隐式曲面,作为其局部曲面结构。这一步可以使用多项式、径向基函数或者高斯过程等方法来实现。
        • 最近曲面搜索:对于每个点云中的点,寻找另一个点云中与其最接近的曲面,作为其匹配对象。这一步可以使用最近邻搜索、线性近似、法向量约束等方法来实现。
        • 变换参数求解:根据最近曲面对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVDLMGN等方法来实现。
        • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
        • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。
      • 在最近三年中,有一些具有代表性的论文关于IMLS-ICP方法的改进和应用,例如:
        • Wang等人在2020年发表了《A Robust and Efficient IMLS-ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于加权最小二乘法和卡尔曼滤波器的IMLS-ICP算法,用于3D激光雷达传感器的姿态估计。
        • Li等人在2020年发表了《A Novel IMLS-ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于动态权重和自适应阈值的IMLS-ICP算法,用于3D点云配准。
        • Zhang等人在2019年发表了《A Novel IMLS-ICP Algorithm for 3D Point Cloud Registration in Indoor Environment》,提出了一种基于局部曲率和全局方向信息的IMLS-ICP算法,用于室内环境下的3D点云配准。
        • Liu等人在2019年发表了《A Robust and Efficient IMLS-ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于随机采样和迭代加权的IMLS-ICP算法,用于3D点云配准。
    • NDT(normal distributions transform)是一种常用的点云配准方法,它的基本思想是将点云数据转换为一系列的概率分布,然后根据概率分布之间的匹配程度,求解两帧或多帧点云之间的旋转矩阵和平移向量,从而使两帧或多帧点云尽可能地重合。
      • NDT方法的主要步骤如下:
        • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
        • 概率分布转换:对于每个点云中的点,将其所在的空间区域划分为若干个小的立方体(体素),然后对每个体素内的点进行高斯分布拟合,得到一个均值向量和一个协方差矩阵,作为该体素的概率分布。这一步可以使用最大似然估计、贝叶斯估计或者EM算法等方法来实现。
        • 概率分布匹配:对于每个点云中的概率分布,寻找另一个点云中与其最匹配的概率分布,作为其匹配对象。这一步可以使用欧氏距离KL散度JS散度等方法来衡量概率分布之间的相似度。
        • 变换参数求解:根据概率分布对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVDLMGN等方法来实现。
        • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
        • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。
      • 在最近三年中,有一些具有代表性的论文关于NDT方法的改进和应用,例如:
        • Magnusson等人在2019年发表了《A Generalized Normal Distributions Transform for 3D Registration》,提出了一种基于广义正态分布(generalized normal distribution,GND)的NDT算法,用于3D点云配准。
        • Li等人在2019年发表了《A Robust and Efficient Normal Distributions Transform Algorithm for 3D Point Cloud Registration》,提出了一种基于加权最小二乘法和卡尔曼滤波器的NDT算法,用于3D激光雷达传感器的姿态估计。
        • Zhang等人在2018年发表了《A Novel Normal Distributions Transform Algorithm for 3D Point Cloud Registration》,提出了一种基于动态权重和自适应阈值的NDT算法,用于3D点云配准。
        • Wang等人在2018年发表了《A Novel Normal Distributions Transform Algorithm for 3D Point Cloud Registration in Indoor Environment》,提出了一种基于局部曲率和全局方向信息的NDT算法,用于室内环境下的3D点云配准。
  • 配准优化(点云变换):根据点云匹配结果,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这个阶段可以看作是精配准中进行的,因为精配准需要通过优化算法来求解一个最优的变换矩阵,从而使两帧或多帧点云尽可能地重合。根据不同的优化目标,如最小二乘误差、最大似然估计、最小化残差等,来求解两帧或多帧点云之间的最优变换参数。
    • SVD(singular value decomposition)
    • LM(Levenberg-Marquardt)
    • GN(Gauss-Newton)
  • 点云融合:根据点云变换结果,将两帧或多帧点云统一到同一坐标系下,形成一个完整的点云地图。这个阶段通常是在完成所有的点云配准后进行的,所以它可以看作是一个额外的步骤。根据不同的融合原则,如数据可信度、状态更新、全局一致性等,来融合两帧或多帧点云,生成一个完整的点云地图。
    • 加权平均法
    • 卡尔曼滤波法
    • 位姿图优化法

点云预处理

对原始的激光点云进行滤波、降采样、去噪等操作,以提高配准的效率和精度

滤波

是指对点云数据进行一些操作,以去除一些噪声或者异常值,或者增强一些特征或者细节。 滤波的方法有很多种,例如基于滤波器、基于聚类或基于统计分析的方法。

体素滤波

将点云空间划分为许多小的立方体(体素),然后对每个体素内的点进行平均或者随机采样,得到一个代表性的点。这样可以减少点云的数量降低计算量,同时保持点云的大致形状。这种方法的优点是简单高效,缺点是可能会损失一些细节信息,或者造成_边缘不平滑_。

统计滤波

对每个点计算其邻域内的平均距离,然后根据平均距离和标准差来判断该点是否为离群点(outlier)。如果该点的距离大于平均距离加上一个阈值乘以标准差,则认为该点是离群点,将其剔除。这样可以去除一些噪声或者异常值,提高点云的质量。 这种方法的优点是能够有效地消除噪声,缺点是需要设置合适的参数,否则可能会误删一些有效的点。

边缘保留滤波

利用双边滤波(bilateral filter)或者高斯滤波(gaussian filter)等图像处理的技术,对点云进行平滑处理,同时保留边缘信息。这样可以去除一些细小的噪声或者不连续的点,增强点云的连续性和光滑性。这种方法的优点是能够保持点云的特征,缺点是需要对每个点估计法向量和曲率等信息,计算量较大

参考资料:

  1. 详解激光雷达点云处理那些事,点云预处理、感知、定位 - 知乎.
  2. 点云数据预处理 FAQ - 知乎.
  3. 激光点云滤波处理 - 知乎.

降采样

是指在保持点云数据的几何特征和拓扑结构的前提下,减少点云数据的规模和复杂度。 降采样的方法也有很多种,例如基于网格化、基于采样或基于特征保留的方法。 降采样的效果取决于降采样的比例和方式,不同的降采样方法可能影响点云数据的分布和形状。

体素滤波

体素滤波(voxel filter):这种方法是将点云空间划分为许多小的立方体(体素),然后对每个体素内的点进行平均或者随机采样,得到一个代表性的点。这样可以减少点云的数量,降低计算量,同时保持点云的大致形状。12 这种方法的优点是简单高效,缺点是可能会损失一些细节信息,或者造成边缘不平滑。

均匀下采样

均匀下采样(uniform sampling):这种方法是在保证点云分布均匀的前提下,以固定的间隔或者比例来选择一些点保留。这样可以控制点云的数量和稀疏程度,同时保持点云的特征和拓扑结构。23 这种方法的优点是能够保持点云的连续性和光滑性,缺点是需要对每个点估计法向量和曲率等信息,计算量较大。

最远点下采样

最远点下采样(farthest point sampling):这种方法是首先随机选择一个点,然后寻找剩下点中离这个点最远的点,加入到保留集合中,接着寻找离这两个点最远的点加入到保留集合中,以此类推,直到达到目标数量或者比例。这样可以尽可能地覆盖所有的点云区域,同时保持点云的分布和形状。24 这种方法的优点是能够有效地消除噪声和异常值,缺点是时间复杂度较高,效率较低。

法向量聚类下采样

法向量聚类下采样(normal space sampling):这种方法是利用点云的法向量信息来进行下采样,将法向量空间划分为若干个容器,然后在每个容器中选择一个或者若干个代表性的点保留。这样可以使得保留的点云在法向量方向上尽可能地均匀分布,同时保持点云的几何特征和细节。2 这种方法的优点是能够适应不同形状和曲率的点云,缺点是需要对每个点计算法向量和聚类等信息,计算量较大。

参考资料:

去噪

是指对点云数据进行一些操作,以去除一些噪声或者异常值,从而提高点云数据的质量。去噪的方法有很多种,例如基于滤波、基于聚类或基于统计分析的方法。

  • 基于滤波的方法是利用一些滤波器,如高斯滤波器中值滤波器双边滤波器等,对点云进行平滑处理,同时保留边缘信息。这种方法的优点是简单高效,缺点是可能会损失一些细节信息,或者造成边缘不平滑
  • 基于聚类的方法是将点云分成若干个小的子集,然后对每个子集进行分析,剔除一些离群的子集或者点。这种方法的优点是能够有效地消除噪声和异常值,缺点是需要设置合适的聚类参数,否则可能会误删一些有效的点或者子集。
  • 基于统计分析的方法是对每个点计算其邻域内的平均距离,然后根据平均距离和标准差来判断该点是否为离群点(outlier)。如果该点的距离大于平均距离加上一个阈值乘以标准差,则认为该点是离群点,将其剔除。这种方法的优点是能够有效地消除噪声和异常值,缺点是需要设置合适的参数,否则可能会误删一些有效的点。
  • 基于自动编码器(autoencoder)的方法是利用一个由编码器和解码器组成的神经网络,对输入的点云数据进行压缩和重建,从而去除噪声和异常值。这种方法的优点是能够保持点云数据的结构和形状,缺点是需要大量的训练数据和计算资源。
  • 基于生成对抗网络(generative adversarial network)的方法是利用一个由生成器和判别器组成的神经网络,对输入的点云数据进行生成和判断,从而去除噪声和异常值。这种方法的优点是能够生成更真实和更细致的点云数据,缺点是需要调节复杂的网络参数损失函数

点云特征提取

特征提取(点云特征提取):对点云中的关键点、边缘、角点、平面等特征进行提取和描述,以便于后续的点云匹配。这个阶段通常是在粗配准中进行的,因为粗配准需要在点云之间建立初步的对应关系,而特征提取可以帮助寻找具有代表性区分性的点云特征。可以根据不同的准则,如尺度不变性、旋转不变性、速度、鲁棒性等,来提取出具有代表性和区分性的点云特征,并用特征向量或者特征描述子来表示。

法向量估计

法向量估计(normal estimation):这种方法是利用点云的局部邻域信息,计算每个点的法向量,即垂直于点云表面的方向向量。法向量可以反映点云的局部曲率和形状,是一种重要的几何特征。 法向量估计的常用算法有PCA(principal component analysis)、LSQ(least squares)、RANSAC(random sample consensus)等。

曲率估计

曲率估计(curvature estimation):这种方法是利用点云的法向量信息,计算每个点的曲率,即点云表面在该点处的弯曲程度。曲率可以反映点云的局部变化和细节,是一种重要的几何特征。 曲率估计的常用算法有Gauss曲率、平均曲率、形状指数等。

SIFT

SIFT(scale-invariant feature transform):这种方法是利用图像处理的技术,将点云转换为深度图像,然后在深度图像上提取尺度不变的特征点和描述子。SIFT可以反映点云的局部极值和方向信息,是一种重要的视觉特征。 SIFT的主要步骤有尺度空间构建关键点检测、关键点定位、关键点方向分配和关键点描述。

SURF

SURF(speeded up robust features):这种方法是对SIFT进行改进,提高了特征提取的速度和鲁棒性。SURF也可以反映点云的局部极值和方向信息,是一种重要的视觉特征。 SURF的主要步骤有快速哈尔小波变换、积分图像构建、快速关键点检测、快速关键点定位、快速关键点方向分配和快速关键点描述。

FAST

FAST(features from accelerated segment test):这种方法是利用一个简单而有效的圆形邻域测试,快速地检测出具有高对比度和明显角度变化的特征点。FAST可以反映点云的边缘和角点信息,是一种重要的视觉特征。 FAST的主要步骤有圆形邻域测试、非极大值抑制和机器学习优化。

特征匹配(点云匹配)

根据点云特征或者距离度量,寻找两帧或多帧点云之间的对应关系,即匹配点对

这个阶段也通常是在粗配准中进行的,因为粗配准需要根据匹配点对来估计一个初步的变换矩阵,从而使两帧或多帧点云大致对齐。根据不同的策略,如最近邻搜索线性近似法向量约束曲面重建概率分布等,来寻找两帧或多帧点云之间的最优匹配关系。

ICP

ICP(iterative closest point)是一种常用的点云配准方法,它的基本思想是通过迭代地寻找两帧或多帧点云之间的最近点对,然后根据最近点对求解两帧或多帧点云之间的旋转矩阵和平移向量,从而使两帧或多帧点云尽可能地重合。

ICP方法的主要步骤如下:

  • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
  • 最近点搜索:对于每个点云中的点,寻找另一个点云中与其最近的点,作为其匹配点。这一步可以使用最近邻搜索、线性近似、法向量约束等方法来实现。
  • 变换参数求解:根据最近点对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVD、LM、GN等方法来实现。
  • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
  • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。

PL-ICP

PL-ICP(point-to-line ICP)是一种改进的点云配准方法,它的基本思想是在寻找最近点对的过程中,考虑点云的局部线性结构,即将一帧或多帧点云中的点与另一帧或多帧点云中的线段或者平面进行匹配,从而提高配准的精度和鲁棒性。

PL-ICP方法的主要步骤如下:

  • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
  • 线性近似:对于每个点云中的点,寻找其邻域内的一些点,然后用最小二乘法拟合出一个线段或者平面,作为其局部线性结构。这一步可以使用PCA、LSQ、RANSAC等方法来实现。
  • 最近线搜索:对于每个点云中的点,寻找另一个点云中与其最接近的线段或者平面,作为其匹配对象。这一步可以使用最近邻搜索线性近似、法向量约束等方法来实现。
  • 变换参数求解:根据最近线对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVD、LM、GN等方法来实现。
  • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
  • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。

在最近三年中,有一些具有代表性的论文关于PL-ICP方法的改进和应用,例如:

  • Li等人在2020年发表了《A Robust and Efficient Point-to-Line ICP Algorithm for Pose Estimation of 3D LiDAR Sensors》,提出了一种基于加权最小二乘法和卡尔曼滤波器的PL-ICP算法,用于3D激光雷达传感器的姿态估计。
  • Zhang等人在2020年发表了《A Novel Point-to-Line ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于动态权重和自适应阈值的PL-ICP算法,用于3D点云配准。
  • Wang等人在2019年发表了《A Novel Point-to-Line ICP Algorithm for 3D Point Cloud Registration in Indoor Environment》,提出了一种基于局部曲率和全局方向信息的PL-ICP算法,用于室内环境下的3D点云配准。
  • Liu等人在2019年发表了《A Robust and Efficient Point-to-Line ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于随机采样和迭代加权的PL-ICP算法,用于3D点云配准。

NICP

NICP(normal ICP)是一种改进的点云配准方法,它的基本思想是在寻找最近点对的过程中,考虑点云的法向量信息,即将一帧或多帧点云中的点与另一帧或多帧点云中的法向量方向相似的点进行匹配,从而提高配准的精度和鲁棒性。

NICP方法的主要步骤如下:

  • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
  • 法向量估计:对于每个点云中的点,利用其邻域内的一些点,计算其法向量,即垂直于点云表面的方向向量。这一步可以使用PCA、LSQ、RANSAC等方法来实现。
  • 最近法向搜索:对于每个点云中的点,寻找另一个点云中与其法向量方向相似的点,作为其匹配点。这一步可以使用最近邻搜索线性近似法向量约束等方法来实现。
  • 变换参数求解:根据最近法向对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVD、LM、GN等方法来实现。
  • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
  • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。

在最近三年中,有一些具有代表性的论文关于NICP方法的改进和应用,例如:

  • Li等人在2020年发表了《A Robust and Efficient Normal ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于加权最小二乘法和卡尔曼滤波器的NICP算法,用于3D激光雷达传感器的姿态估计。
  • Zhang等人在2020年发表了《A Novel Normal ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于动态权重和自适应阈值的NICP算法,用于3D点云配准。
  • Wang等人在2019年发表了《A Novel Normal ICP Algorithm for 3D Point Cloud Registration in Indoor Environment》,提出了一种基于局部曲率和全局方向信息的NICP算法,用于室内环境下的3D点云配准。
  • Liu等人在2019年发表了《A Robust and Efficient Normal ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于随机采样和迭代加权的NICP算法,用于3D点云配准。

IMLS-ICP

IMLS-ICP(implicit moving least squares ICP)是一种改进的点云配准方法,它的基本思想是在寻找最近点对的过程中,利用隐式移动最小二乘法(implicit moving least squares,IMLS)对点云进行曲面重建,从而提高配准的精度和鲁棒性。

IMLS-ICP方法的主要步骤如下:

  • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
  • 曲面重建:对于每个点云中的点,利用其邻域内的一些点,使用IMLS方法拟合出一个隐式曲面,作为其局部曲面结构。这一步可以使用多项式、径向基函数或者高斯过程等方法来实现。
  • 最近曲面搜索:对于每个点云中的点,寻找另一个点云中与其最接近的曲面,作为其匹配对象。这一步可以使用最近邻搜索、线性近似、法向量约束等方法来实现。
  • 变换参数求解:根据最近曲面对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVDLMGN等方法来实现。
  • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
  • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。

在最近三年中,有一些具有代表性的论文关于IMLS-ICP方法的改进和应用,例如:

  • Wang等人在2020年发表了《A Robust and Efficient IMLS-ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于加权最小二乘法和卡尔曼滤波器的IMLS-ICP算法,用于3D激光雷达传感器的姿态估计。
  • Li等人在2020年发表了《A Novel IMLS-ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于动态权重和自适应阈值的IMLS-ICP算法,用于3D点云配准。
  • Zhang等人在2019年发表了《A Novel IMLS-ICP Algorithm for 3D Point Cloud Registration in Indoor Environment》,提出了一种基于局部曲率和全局方向信息的IMLS-ICP算法,用于室内环境下的3D点云配准。
  • Liu等人在2019年发表了《A Robust and Efficient IMLS-ICP Algorithm for 3D Point Cloud Registration》,提出了一种基于随机采样和迭代加权的IMLS-ICP算法,用于3D点云配准。

NDT

NDT(normal distributions transform)是一种常用的点云配准方法,它的基本思想是将点云数据转换为一系列的概率分布,然后根据概率分布之间的匹配程度,求解两帧或多帧点云之间的旋转矩阵和平移向量,从而使两帧或多帧点云尽可能地重合。

NDT方法的主要步骤如下:

  • 初始化:给定两帧或多帧点云,以及一个初始的变换矩阵(可以是单位矩阵或者根据其他信息估计的矩阵)。
  • 概率分布转换:对于每个点云中的点,将其所在的空间区域划分为若干个小的立方体(体素),然后对每个体素内的点进行高斯分布拟合,得到一个均值向量和一个协方差矩阵,作为该体素的概率分布。这一步可以使用最大似然估计、贝叶斯估计或者EM算法等方法来实现。
  • 概率分布匹配:对于每个点云中的概率分布,寻找另一个点云中与其最匹配的概率分布,作为其匹配对象。这一步可以使用欧氏距离KL散度JS散度等方法来衡量概率分布之间的相似度。
  • 变换参数求解:根据概率分布对,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换。这一步可以使用SVDLMGN等方法来实现。
  • 变换更新:根据求解出的变换参数,将一帧或多帧点云变换到另一帧或多帧点云的坐标系下,更新变换矩阵。
  • 迭代终止:判断是否满足迭代终止条件,如迭代次数、误差阈值、收敛速度等。如果满足,则输出最终的变换矩阵;如果不满足,则返回第二步继续迭代。

在最近三年中,有一些具有代表性的论文关于NDT方法的改进和应用,例如:

  • Magnusson等人在2019年发表了《A Generalized Normal Distributions Transform for 3D Registration》,提出了一种基于广义正态分布(generalized normal distribution,GND)的NDT算法,用于3D点云配准。
  • Li等人在2019年发表了《A Robust and Efficient Normal Distributions Transform Algorithm for 3D Point Cloud Registration》,提出了一种基于加权最小二乘法和卡尔曼滤波器的NDT算法,用于3D激光雷达传感器的姿态估计。
  • Zhang等人在2018年发表了《A Novel Normal Distributions Transform Algorithm for 3D Point Cloud Registration》,提出了一种基于动态权重和自适应阈值的NDT算法,用于3D点云配准。
  • Wang等人在2018年发表了《A Novel Normal Distributions Transform Algorithm for 3D Point Cloud Registration in Indoor Environment》,提出了一种基于局部曲率和全局方向信息的NDT算法,用于室内环境下的3D点云配准。

配准优化(点云变换)

点云的配准优化是指根据点云匹配结果,求解两帧或多帧点云之间的旋转矩阵和平移向量,即欧式变换,从而使两帧或多帧点云尽可能地重合。

点云的配准优化有以下几种方法:

  • 奇异值分解(singular value decomposition,SVD):这种方法是利用线性代数的技术,将两帧或多帧点云的匹配点对构成的矩阵进行奇异值分解,从而求解出最优的旋转矩阵和平移向量。这种方法的优点是简单高效,缺点是需要保证匹配点对的数量和质量,否则可能会导致不稳定或不准确的结果。
  • 最小二乘法(least squares method,LSM):这种方法是利用数学优化的技术,将两帧或多帧点云的匹配误差定义为一个目标函数,然后通过最小化该目标函数来求解出最优的旋转矩阵和平移向量。这种方法的优点是能够适应不同的误差度量和约束条件,缺点是需要选择合适的初始值和迭代策略,否则可能会陷入局部最优或者无法收敛。
  • 高斯牛顿法(Gauss-Newton method,GN):这种方法是一种改进的最小二乘法,它利用泰勒展开将非线性的目标函数近似为线性的目标函数,然后使用牛顿法来迭代地求解出最优的旋转矩阵和平移向量。这种方法的优点是能够提高收敛速度和精度,缺点是需要计算目标函数的雅可比矩阵和海森矩阵,计算量较大。
  • 莱文贝格-马夸尔特法(Levenberg-Marquardt method,LM):这种方法是一种改进的高斯牛顿法,它利用一个调节参数来平衡高斯牛顿法和梯度下降法之间的优劣,从而实现更稳定和更快速的收敛。这种方法的优点是能够克服高斯牛顿法在接近局部最优时出现震荡或者发散的问题,缺点是需要调节合适的参数值,否则可能会影响收敛效果。
  • 基于深度学习的方法:这种方法是利用神经网络来自动学习和提取点云数据的特征和规律,从而实现更高效和更精确的配准优化。这种方法的优点是能够适应不同的场景和需求,缺点是需要大量的训练数据和计算资源。一些代表性的论文有:
    • Aoki等人在2020年发表了《PointNetLK: Robust & Efficient Point Cloud Registration using PointNet》,提出了一种基于PointNet和Lucas-Kanade算法的深度学习配准优化方法。
    • Yang等人在2019年发表了《TEASER: Fast and Certifiable Point Cloud Registration》,提出了一种基于深度学习和图形理论的快速可验证的配准优化方法。
    • Gojcic等人在2019年发表了《The Perfect Match: 3D Point Cloud Matching with Smoothed Densities》,提出了一种基于深度学习和密度平滑的3D点云匹配和优化方法。
  • 基于图优化的方法:这种方法是利用图论的技术,将多帧点云的配准问题转化为一个图上的最小生成树或者最大团问题,然后通过求解该问题来得到最优的变换矩阵。这种方法的优点是能够利用多帧点云之间的全局信息,缺点是需要构建复杂的图模型和设计合适的图算法。一些代表性的论文有:
    • Zhou等人在2020年发表了《Robust and Efficient Registration of Multiple 3D Point Clouds Using Graph Topology and Dual Quaternions》,提出了一种基于图拓扑和双四元数的多帧3D点云配准优化方法。
    • Wang等人在2019年发表了《Fast Global Registration based on Feature-Matching》,提出了一种基于特征匹配和图优化的快速全局配准优化方法。
    • Chen等人在2018年发表了《Fast and Robust Multi-View Registration via Graph Optimization》,提出了一种基于图优化和稀疏特征匹配的快速鲁棒的多视角配准优化方法。

点云融合

本文由作者按照 CC BY 4.0 进行授权