激光雷达点云基础-点云滤波算法与点云配准算法

这篇具有很好参考价值的文章主要介绍了激光雷达点云基础-点云滤波算法与点云配准算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

激光雷达点云处理在五年前就做了较多的工作,最近有一些新的接触发现激光雷达代码原理五年前未见重大更新,或许C++与激光雷达结合本身就是比较高的技术门槛。深度学习调包侠在硬核激光雷达技术面前可以说是完全的自愧不如啊。

1、点云滤波

在获取点云数据时,由于设备精度、操作者经验、环境因素等带来的影响,点云数据中将不可避免地出现一些噪声点。而滤波的作用就是利用数据的低频特性剔除离群数据,并进行数据平滑或者提取特定频段特征。

对应的问题是什么时候需要做点云滤波?大概可以分为以下四个方面:1、点云数据密度不规则需要平滑;2、因为遮挡等问题造成离群点需要去除;3、大量数据需要进行下采样;4、噪音数据需要去除。

1.1 常用的点云滤波器:
  • 直通滤波器 条件滤波器

  • 高斯滤波器 双边滤波器 统计滤波器 半径滤波器 频率滤波器

  • 体素滤波器

从功能层面以上点云滤波器可以分为三类使用:直通和条件滤波用于预处理的最前端提取出感兴趣区域;体素滤波用于对密集点云进行下采样减少数据量;其他滤波器用于平滑点云同时去除离散点。

1.2 点云滤波器介绍:
  • 直通滤波器

原理:在点云的指定维度上设置一个阈值范围,将这个维度上的数据分为在阈值范围内与不在阈值范围内,从而选择过滤与否。能够快速过滤掉用户自定义区间范围内的点云。

在实际应用中,由于激光扫描采集的距离较远,但是根据功能需求的不同可能只关心一定区域内的数据,比如低速物流车的运营场景,可能在X方向只关心前后60米,Y方向只关心左右20米的范围。此时就可以利用直通滤波器提取出感兴趣区域,可较快剔除部分点云,达到第一步粗处理的目的。

  • 条件滤波器

原理:通过设定滤波条件进行滤波,类似于分段函数,判断点云是否在规则的范围则中,如果不在则舍弃。上述的直通滤波器就是一种较简单的条件滤波器。

  • 高斯滤波器

原理:采用加权平均方式的一种非线性滤波器,在指定域内的权重是根据欧式距离的高斯分布,通过权重加权平均的方式得到当前点的滤波后的点。

特点:利用标准差去噪,适用于呈正态分布的数据平滑效果较好,但是边缘角点也会被较大的平滑。

  • 双边滤波器

原理:通过取邻近采样点的加权平均来修正当前采样点的位置,在高斯滤波器只考虑空间域点的位置基础上,增加了维度上的权重。一定程度上弥补了高斯滤波的缺点。

特点:既有效地对空间三维模型表面进行降噪,又可以保持点云数据中的几何特征信息,避免三维点云数据被过渡光滑。但是只适用于有序点云。关于高斯滤波和双边滤波,本身在图像领域其实已经有广泛的应用,具体的算法原理可以参考保边滤波–bilateral filter and guided filter

  • 体素滤波器

原理:通过对输入的点云数据创建一个三维体素栅格,然后在每个体素内,用体素中所有点的重心来近似显示体素中的其他点,这样该体素内所有点就用一个重心点最终表示。也有另外一种相似的表达形式:利用每一个体素立方体的中心来近似该体素立方体内的所有点,相比上一种方法计算速度较快,但是损失了原始点云局部形态的精细度。

特点:可以达到向下采样同时不破坏点云本身几何结构的功能。点云几何结构不仅是宏观的几何外形,也包括其微观的排列方式,比如横向相似的尺寸,纵向相同的距离。随机下采样虽然效率比体素网格滤波器高,但会破坏点云微观结构。

以上几种滤波器不会针对离散群点做相关操作,但是实际上离散群点这类噪声点会对整体算法带来比较严重的干扰。离散群点会破坏点云的表达准确性。使得局部点云特征(例如表面法线或曲率变化)的估计变得非常复杂,这往往导致错误的估计结果,从而可能导致点云配准失败。

  • 统计滤波器

原理:对每个点的邻域进行一个统计分析,并修剪掉那些不符合一定标准的点。我们的稀疏离群点移除方法基于在输入数据中对点到临近点的距离分布的计算。

具体方法如下:计算每个点到其最近的k个点平均距离,(假设得到的结果是一个高斯分布,其形状是由均值和标准差决定),那么平均距离在标准范围之外的点,可以被定义为离群点并从数据中去除。
特点:主要是根据密度去除离群点,对密度差异较大的离群点去除效果较好。

  • 半径滤波器

原理:与统计滤波器类似,只是操作更加暴力直观,根据空间点半径范围临近点数量来滤波。

具体方法如下:

在点云数据中以某点为中心画一个圆计算落在该圆中点的数量,当数量大于给定值时,则保留该点,数量小于给定值则剔除该点。此算法运行速度快,依序迭代留下的点一定是最密集的,但是圆的半径和圆内点的数目都需要人工指定。

特点:用于去除离群点,在一定程度上可以用来筛选边缘点。

激光雷达 点云精度 多次滤波,算法
  • 频率滤波器

原理:在点云处理中,点云法线向量差为点云所表达的信号。用点云的曲率来表示频率信息,如果某处点云曲率大,则点云表达的是一个变化高频的信号。如果点云曲率小,则点云表达的是一个不变低频的信号。例如:地面曲率小,它表达的信息量也小;障碍物处曲率大,频率就会更高。

以DoN算法为例,根据不同尺度下法向量特征的差异性,利用pcl::DifferenceOfNormalsEstimation实现点云分割,在处理有较大尺度变化的场景点云分割效果较好,利用不同支撑半径去估算同一点的两个单位法向量,单位法向量的差定义DoN特征。具体如下:在小尺度上计算点云法线1,在大尺度上计算点云法线2,法线1-法线2,滤去3中值较小的点,根据第三步得到的法线差,进行欧式分割。

特点:在小尺度上是可以对高频信息进行检测的,可以很好的小尺度高频信息。其在大规模点云中优势尤其明显。

DoN特征源于观察到基于所给半径估计的表面法向量可以反映曲面的内在几何特征,因此这种分割算法是基于法线估计的,需要计算点云中某一点的法线估计。而通常在计算法线估计的时候都会用到邻域信息,很明显邻域大小的选取会影响法线估计的结果。

而在DoN算法中,邻域选择的大小就被称为support radius。对点云中某一点选取不同的支持半径,即可以得到不同的法线估计,而法线之间的差异,就是是所说的法线差异。

激光雷达 点云精度 多次滤波,算法

2、点云配准匹配算法

2.1 什么是点云配准

点云配准是指将多个点云数据集在相同坐标系下进行对齐的过程,使得它们在空间中具有一致的位置和姿态。在点云配准中,需要估计点云之间的转换关系,包括平移、旋转和尺度等变换。点云配准在三维重建、物体检测、环境感知、机器人导航和虚拟现实等领域有着广泛的应用。点云配准的主要目标是最小化点云之间的误差,通常通过匹配点云中的对应点来实现。在匹配点云时,需要考虑到点云中的噪声、不完整性和采样密度等问题,以及在不同的场景下可能出现的变形和运动。常见的点云配准方法包括ICP(Iterative Closest Point)和NDT(Normal Distribution Transform)。

2.2 点云ICP算法

点云ICP算法是一种经典的点云配准算法,其全称为Iterative Closest Point算法,是一种迭代优化的方法,用于将两个或多个点云数据集对齐。该算法通过迭代找到最优的刚体变换矩阵,使得两个点云之间的重叠部分最大化,从而实现点云的配准。

2.2.1 ICP算法简介

ICP算法的基本思路是:假设我们有得到初始的P、Q两部分点云。

  • 对P中的每个点,在Q中找到匹配的最近点(涉及到大量点云,会涉及到KD树的点云切割)
  • 计算两组点的质心和去质心距离,使用SVD分解H求出R,然后用R表示t.(涉及到具体数学原理的推导以及SVD的求解方式方法)
  • 利用得到的位姿作用于P
  • 迭代,直到迭代次数上限或者收敛
    对于以上四步更为详细的论证过程可以参考博客:点云配准ICP&NDT

ICP算法迭代停止的条件通常有以下几种:

  • 最大迭代次数:设定一个最大的迭代次数,当达到该次数后,算法强制停止迭代。
  • 目标误差:设定一个目标误差阈值,当当前迭代的误差小于该阈值时,算法停止迭代。
  • 迭代误差的变化率:如果当前迭代与上一次迭代的误差变化率小于设定的阈值,算法停止迭代。
  • 迭代后的点云匹配误差小于阈值:如果点云匹配误差小于设定的阈值,算法停止迭代。

根据不同应用场景和需求,选择适合的停止条件可以提高算法的效率和精度。

2.2.2 ICP算法优缺点以及迭代版本

ICP算法的优点:简单易懂、容易实现,并且对于初始位姿的依赖性较低。ICP算法的缺点主要表现在以下几个方面:

  • 对于变换矩阵初值的敏感度较高,如果初值选的不好,则有可能会陷入局部最优解。
  • ICP算法只能对刚性变换进行配准,对于非刚性变换无法适用。
  • ICP算法的时间复杂度较高,对于大规模的点云配准需要消耗大量的计算资源和时间。
  • 当点云之间没有很好的匹配时,ICP算法的配准结果会受到较大的影响,容易出现误匹配。

当前针对ICP算法已有的缺陷,出现比较多的改进版本的算法,此部分算法不在本文章的核心关切范围之内,在本文仲不予以赘述。

2.3 点云NDT算法

点云NDT算法(Normal Distribution Transform)是一种基于高斯分布的点云配准方法。与ICP算法相比,NDT算法更适用于不规则形状、噪声和部分遮挡的场景。

2.3.1 NDT算法原理

NDT原理:将点云转换为高斯分布的函数形式,通过计算不同高斯分布函数之间的匹配来进行点云配准。具体来说,算法首先将一个点云转换为三维高斯分布函数(即ND分布),然后通过最小化两个点云之间的ND分布函数之间的KL散度来进行点云配准。具体来说,NDT算法首先将原始点云数据离散化为一个三维的网格(voxel grid),并对每个网格中的点云进行采样和特征提取。这里采用了点云法向量作为特征,通过计算每个网格中点云的均值和协方差矩阵,可以得到一个高斯分布,即一个GMM。NDT算法会将目标点云和参考点云都转化成GMM的形式,然后计算两个GMM之间的KL散度,用于评估它们之间的相似度。在计算KL散度时,NDT算法采用了一种高效的方法,即通过将每个网格中心点的高斯分布变换到参考点云坐标系下,可以大大减少计算复杂度。最后,NDT算法通过最小化两个GMM之间的KL散度来计算相对位姿变换,得到一个最优的刚体变换矩阵,从而实现点云配准。由于NDT算法采用了高效的计算方法,因此在处理大规模点云数据时具有较高的效率和精度。

激光雷达 点云精度 多次滤波,算法
2.3.1 ICP与NDT的区别?

ICP和NDT是点云配准领域中两种常用的方法,它们在原理和实现方式上有所不同。在原理、适用场景、优缺点等方面有着不同的特点

算法原理:
ICP算法是基于最小二乘法的迭代算法,通过不断迭代计算源点云与目标点云之间的最小距离,直到满足停止条件为止;NDT算法是基于高斯分布的统计配准方法,通过将点云离散化为一组高斯分布,计算目标点云和源点云之间的匹配程度,通过最大化匹配程度来实现配准。

点云数据处理:
ICP算法直接使用点云数据,而NDT算法需要将点云数据转化为高斯分布。
计算效率:在点云数量较少时,ICP算法的计算速度较快,但在点云数量较多时,ICP算法的计算复杂度会急剧增加,计算速度会变慢;NDT算法的计算速度相对较慢,但是它在处理大规模点云数据时有优势。

适用场景不同:
ICP算法适用于点云之间存在较小变形和噪声的场景,如室内环境、车辆周围环境等,对数据噪声和变形比较敏感。
NDT算法适用于大型点云数据的配准,能够应对点云之间存在较大变形和噪声的情况,如地图构建、机器人导航等。

优缺点不同:
ICP算法优点在于简单易实现、迭代速度快,但对初始位姿敏感,容易陷入局部最优解。NDT算法优点在于能够处理大型点云数据、对数据噪声和变形不敏感,具有较高的配准精度,但需要进行点云的离散化处理,计算速度相对较慢。ICP和NDT都有各自的优势和适用场景,在实际应用中,应根据具体情况选择合适的方法来进行点云配准。同时,还可以结合两种方法的优点,通过组合使用来提高配准精度和速度。文章来源地址https://www.toymoban.com/news/detail-841381.html

到了这里,关于激光雷达点云基础-点云滤波算法与点云配准算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于深度学习方法的点云算法1——PointNetLK(点云配准)

    请点点赞,会持续更新!!! 基于深度学习方法的点云算法2——PointNet(点云分类分割) 基于深度学习方法的点云算法3——PointNet++(点云分类分割) 基于深度学习方法的点云算法4——PCT: Point Cloud Transformer(点云分类分割) 作者将PointNet看成一个可学习的成像函数(learn

    2024年02月10日
    浏览(43)
  • 点云配准的传统算法ICP与NDT概述

    公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起交流一起进步,有兴趣的可联系微信:920177957。 本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。 什么是点云配准 点云配准是指将多个点

    2024年02月05日
    浏览(41)
  • 【PCL】—— 点云配准ICP(Iterative Closest Point)算法

    ​     由于三维扫描仪设备受到测量方式和被测物体形状的条件限制,一次扫描往往只能获取到局部的点云信息,进而需要进行多次扫描,然后每次扫描时得到的点云都有独立的坐标系,不可以直接进行拼接。在逆向工程、计算机视觉、文物数字化等领域中,由于点云的

    2024年02月13日
    浏览(52)
  • [点云配准]LCD(2D-3D特征配准算法)例程align_point_cloud.py解析

    跨域描述符LCD可以实现二维图片特征点到三维点云特征点的配准,是个具有通用性的深度学习特征描述子。(图片来源于论文 LCD: Learned Cross-Domain Descriptors for 2D-3D Matching ) 在Github开源的源码里面给出了利用LCD进行 三维点云配准 的例程。align_point_cloud.py,这里对例程如何使用

    2024年02月08日
    浏览(45)
  • 点云配准--对称式ICP

    对称式ICP 针对于局部平面不完美的情况,提出了一种对称式ICP目标函数,相较于传统的ICP方法,增大了收敛域,提高了收敛速度。论文理论说明不甚清楚,实验较少,但代码开源。 对称目标函数 在icp中对于一对对应点p,q:在点到法线的度量中: ( p − q ) ⋅ n q (3) (p-q) cd

    2024年02月06日
    浏览(57)
  • PCL - 3D点云配准(registration)介绍

    前面多篇博客都提到过,要善于从官网去熟悉一样东西。API部分详细介绍见 Point Cloud Library (PCL): Module registration 这里博主主要借鉴Tutorial里内容(博主整体都有看完) Introduction — Point Cloud Library 0.0 documentation 接下来主要跑下Registration中的sample例子 一.直接运行下How to use iter

    2024年02月12日
    浏览(54)
  • CVPR2023最佳论文候选:3D点云配准新方法

    文章:3D Registration with Maximal Cliques 作者:Xiyu Zhang Jiaqi Yang* Shikun Zhang Yanning Zhang 编辑:点云PCL 代码: https://github.com/zhangxy0517/3D-Registration-with-Maximal-Cliques.git 欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。 公众号致力于点云处

    2024年02月08日
    浏览(44)
  • 点云配准--gicp原理与其在pcl中的使用

    总结:gicp引入了概率信息(使用协方差阵),提出了icp的统一模型,既可以解释点到点和点到面的icp,也在新模型理论的基础上,提出了一种面到面的icp。 论文原文:《Generalized-ICP》 在概率模型中假设存在配准中两个点集, A ^ = { a i ^ } hat{A}=left{hat{a_{i}}right} A ^ = { a i ​

    2024年01月19日
    浏览(54)
  • MATLAB 基于NDT的点云配准实验(不同参数效果) (25)

    NDT点云配准与ICP一样,都是经典的点云配准算法,这里使用MATLAB进行ndt点云配准,对配准结果进行显示,并尝试不同参数,得到较好的实验结果。具体原理请自行查阅相关论文和原论文,这里重在使用。

    2024年02月15日
    浏览(69)
  • Apollo官方课程算法解读笔记——激光雷达感知模块、基于PointPillars的激光雷达点云检测算法、PointPillars模型的部署和优化模型的部署和优化

    感知模块检测效果: 左边为摄像头拍摄图像,激光雷达感知不依赖左边CAMERA,而是点云数据对应的效果图(黄色上方数字为Tracking ID) 主车红灯时的激光点云检测效果图 车道线给CAMERA提供一个标定参考,使得camera检测出来的障碍物从2维转化为3维的信息,因为此标定的参考,

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包