一、点云配准

点云配准的实质是把不同坐标系中测得的数据点云进行坐标系的变换,以得到整体的数据模型,问题的关键是如何得到坐标变换的旋转矩阵R和平移向量T,使得两视角下测得的三维数据经坐标变换后距离最小。目前的配准算法按照过程可以分为:整体配准和局部配准

二、两两配准

一对点云数据集的配准问题就是两两配准(pair-wise registration),通过一个估计得到的表示平移和旋转的4*4刚体变换矩阵来使得一个点云的数据集精确地与另一个点云数据集(目标数据集)进行配准

实现步骤:

1.首先从两个数据集中按照同样的关键点选取的标准,提取关键点(也可以采用原始点云数据,这依赖于配准算法);

2.对所有选择的关键点分别计算其特征描述子

3.结合特征描述子在两个数据集中的坐标位置,以两者之间的特征和位置的相似度为基础,来估算他们的对应关机,初步估计相应的点对;

4.假设数据存在噪声,除去对配准有影响的错误的对应点对;

5.利用剩余的正确的对应关系来估算刚体变换实现完整配准。

三、对应估计

假设我们已经得到的扫描点云数据获得的两组特征向量,在此基础上,我们必须找到相似特征在确定数据的重叠部分,然后才能进行配准,根据特征的类型,使用不同的方法来搜索特征之间的对应关系:

使用点匹配时,使用点的XYZ坐标作为特征值,针对有序点云和无序点云数据的不同处理策略:

1.穷举配准(brute force matching)

2.kd-tree最近邻查询(FLANN)

3.在有序点云数据的图像空间中查找

4.在无序点云数据的索引空间中查找

四、对应关系的去除

由于噪声的影响,通常并不是所有估计的对应关系都是正确的,由于错误的对应关系对于最终的刚体变换矩阵的估算会产生负面的影响,所以必须去除它们。采用随机采样一致性估计,或者其他方法剔除错误的对应关系,最终使用对应关系数量只使用一定比例的对应关系,这样既能提高变换矩阵的估计精度也可以提高配准点的速度。

五、变换矩阵的估算

估算对应矩阵:

1.在对应关系的基础上评估一些错误的度量标准;

2.在摄像机位姿(运动估算)和最小化错误度量标准下估算一个刚体变换;

3.优化点的结构;

4.使用刚体变换把点云旋转/平移到与目标所在的同一坐标系下,用所有的点、点的一个子集或关键点运算一个内部的ICP循环;

5.进行迭代,直到符合收敛性判断标准为止。

六、迭代最近点算法(Iterative Closest Point,简称为ICP)

       ICP对待需要进行拼接的两片点云,首先根据一定的准则确立对应点集P与Q中对应点对的个数,然后通过最小二乘法迭代计算最优的坐标变换矩阵(旋转矩阵R和平移矢量T),使得误差函数最小,ICP处理步骤如下:

 1.对原始点云数据进行采样;

       2.确定初始对应点集;

       3.去除错误对应点对;

       4.求解坐标变换。

缺点:

 a:需要剔除不合适的点对(点对距离过大、包含边界点的点对)

       b:基于点对的配准,并没有包含局部形状的信息

       c:每次迭代都要搜索最近点,计算代价高昂

七、NDT算法

1.将空间(reference scan)划分为各个格子cell;

2.将点云投票到各个格子;

3.计算格子的正态分布PDF参数:

PDF参数可以当作表面的近似表达,协方差矩阵的特征向量和特征值可以表达表面信息(朝向,平整度);

格子内少于3个点时,协方差矩阵不存在逆矩阵,所以只计算点数大于5的格子,涉及到下采样方法。

4.将第二幅scan的每个点按转义矩阵T进行变换;

5.第二幅scan的点落于reference的哪个格子,计算响应的概率分布函数:

6.求所有点的最优值,目标函数为:

NDT的优化:

格子参数最重要,格子太大会导致精度不高,太小导致内存过高,并且只有两幅图像相差不大的情况才能匹配

八、SAC-IA算法

基于RNSAC算法,在原始点云中,选择4点,针对每点在目标点云中选择相似特征的1到多个点(多点随机选1),计算刚体变换矩阵,接着计算变换损失(误差),完成一次迭代,持续迭代,直到所有点数的Huber损失最小。

点云处理学习笔记只是自己看了Eason.wxd博主的文章之后,记录的一些概念性的内容,仅供参考用,后续会根据《PCL从入门到精通》这本书做进一步的学习和实践,会对内容进行补充或者调整,也会更新新的笔记。

点云处理学习笔记(八)-- 点云配准相关推荐

  1. 云平台学习笔记(三)-实践

    一.实验目的 本实验目的: 1.熟练克隆虚拟机: 2.熟练配置域名解析 3.学会配置 Chrony: 4.学会安装 OpenStack 基础框架: 5.学会安装 Mariadb 数据库 6.熟练为虚拟 ...

  2. python学习笔记---中文词云

    python学习笔记–中文词云 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 发现词云的展示还挺有意思的,比较多的应用场景是给用户打标签,社交软件应用较多.今天随便找了一些文字电影 ...

  3. 尚硅谷云原生学习笔记(76~143集)

    笔记列表: 尚硅谷云原生学习笔记(1-75集) 尚硅谷云原生学习笔记(76~143集) 尚硅谷云原生学习笔记(144~172集) 尚硅谷云原生学习笔记(173~XXX集) 目录 76.为什么用kube ...

  4. C4前端云原生学习笔记——vue

    C4前端云原生学习笔记 文章目录 C4前端云原生学习笔记 一.vue知识点 1.vue简介 2.开发工具 3.初识vue 一.vue知识点 1.vue简介 官网:cn.vuejs.org 渐进式框架: ...

  5. 尚硅谷云原生学习笔记(1-75集)

    笔记列表: 尚硅谷云原生学习笔记(1-75集) 尚硅谷云原生学习笔记(76~143集) 尚硅谷云原生学习笔记(144~172集) 尚硅谷云原生学习笔记(173~XXX集) 目录 1.什么是云计算 1. ...

  6. ReactJS学习笔记八:动画

    ReactJS学习笔记八:动画 分类: react学习笔记 javascript2015-07-06 20:27 321人阅读 评论(0) 收藏 举报 react动画 目录(?)[+] 这里只讨论Re ...

  7. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

  8. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...

  9. ROS学习笔记八:创建ROS msg和srv

    ROS学习笔记八:创建ROS msg和srv 本节主要讲述了如何创建和建立ROS msg和srv,同时使用命令行工具rosmsg.rossrv和roscp. msg和srv简介 msg:描述ROS m ...

  10. Halcon 学习笔记八:颜色识别

    Halcon 学习笔记八:颜色识别 一.图像处理需要的知识 二.图像处理的预处理和分割过程 二.颜色识别的方法 三.例子一 四.例子二 五.例子三 一.图像处理需要的知识 1.图像处理基础(rgb(h ...

最新文章

  1. 控制iOS的导航栏和状态栏的样式
  2. 机器学习导论(张志华):随机向量性质
  3. 循环结构_for循环
  4. python中难的算法_Python算法很难吗?python神书《算法图解》PDF电子版分享给你
  5. 曾是微信最大对手的它,如今却黯然退场,一代即时通讯App就此谢幕!
  6. 在C#中动态地添加控件
  7. 《人月神话》之画蛇添足读后感
  8. 基于ssm java jsp的酒店管理系统 前后台
  9. 非线性视频编辑软件百科全书式介绍
  10. 普通人翻身的希望?揭秘“元宇宙”到底是个啥玩意!
  11. 10000亿的暴利:数字化营销今生与未来
  12. VB打造QQ批量登陆器
  13. HDU4622- Reincarnation(后缀自动机)
  14. JetpackCompose Modifier常用属性介绍(1)
  15. oracle把修改成及联,oracle日常操作命令手册(用户管理)-从零到无
  16. 用canvas制作的躲避球小游戏html5源码
  17. PostgreSQL AUTO INCREMENT(自动增长)
  18. 如何写一篇人工智能领域的期刊论文(SCI论文的固定模式和一些套路)
  19. node restify框架使用openai(chatgpt)接口
  20. 解决:Plug-in org.eclipse.wst.jsdt.ui was unable to instantiate class org.eclipse.wst.jsdt.inte

热门文章

  1. java数据结构银行叫号_数据结构C语言版利用队列结构实现银行叫号系统要..._结构工程师_帮考网...
  2. 模块式工业机器人柔性自动化生产线实训系统(五站)
  3. 自适应阵列信号处理(自适应波束形成)综述
  4. 8 9区别 endnote7_大家都了解EndnoteX9这款软件吗
  5. 数据库高级查询与性能优化1,开窗函数与子查询
  6. oracle数据库基础笔试题,Oracle数据库入门笔试试题及参考答案
  7. TamronOS IPTV系统任意用户添加修改
  8. linux c 获取终端输出到文件,LINUX C获取命令行输出结果
  9. node2vec 包安装
  10. 信息收集(C段扫描)