NDT(正态分布变换)算法学习

近期阅读NICP. Dense Normal Based Point Cloud Registration论文,其中的点云配准算法:ICP、NDT、GICP、NICP较感兴趣,小白进行学习。

推荐相关视频或文章:https://www.bilibili.com/video/BV1NK411T71n(NDT算法)

概率分布函数、概率密度函数 - 知乎(概率分布函数、概率密度函数)

如何直观地理解「协方差矩阵」? - 知乎(协方差矩阵)

引入:三维空间中一个点有xyz三个数据,xyz数据使用双精度值来描绘(双精度值:比如一个数据是八个比特,三个xyz就是3*8=24bit,几万个点的话数据量很大)。

NDT(正态分布变换)算法:可以保证一个方格里就用一个概率分布函数进行描绘(概率分布函数主要因素是协方差矩阵、平均值  [为什么使用协方差矩阵和平均值?文章结尾的名词解释我觉得可以挺好的理解])。此算法可以将离散的点变连续函数描绘,并场景信息压缩(压缩方法:放在一个方格中进行协方差矩阵、平均值的计算)

上述:双精度、概率密度函数、协方差名词解释在文章结尾,图片引用的是视频中的。

二维场景:

二维点是稀疏的,有的方块里密集有的方块里稀疏(求导求拐点是不适用的)

上图中密集方格中的点如何将其变成一个连续的函数去描绘?

答:用概率分布函数进行描绘,这个方格里出现的点云概率是多少,红色和黄色的部分就是通过求解点云的协方差矩阵、平均值得到。(这些点离其平均值越远,他的协方差矩阵在这个方向上的特征向量的特征值越大),总的来说可以描绘这部分点云的朝向、平整度。

三维场景:

有三个特征向量,可以形象的有三个箭头,如果一个箭头比较长的话。会将这团点云的形状拉长。同样也是在一个方格中,与上述二维场景的解释相呼应。

算法优化:如果一个方格一个方格分的话,方格和方格之间会有抖动(激变),会导致之后配准有误差。1、一个方格一个方格之间平移半个方格,这中间会有重叠区域,有重叠区域的拼出来的概率分布函数会有平滑的效果,对配准有很大帮助。2、八叉树的优化方法:在点云稀疏的部分用大方格,点云密集的部分用小方格对数据量进一步压缩,运算压力进一步释放。

视频中还有闭环检测,暂时没有详细学习,后续学习加入。

名词解释:(开头的链接感兴趣的可以详细看看,真心写的挺好)

双精度值:与单精度的区别在于小数点后面保留位数不一致(即精度)。浮点数

float的精度是6位有效数字,取值范围是10的-38次方到10的38次方,float占用4字节空间

double的精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8字节空间。

概率分布函数:又称为离散型随机变量的分布函数,通过下式得到是X≤x的诸值xk的概率之和,又称之为积累概率函数。

概率函数是用函数的形式来表达概率,概率函数一次只能一个取值的概率。

概率分布侧重点在分布,离散型随机变量的值分布和概率分布。

概率密度函数:连续型随机变量的概率函数,首先连续型随机变量的数值是连续的。其次,概率密度函数其实是一个定积分函数,定积分在数学一般用来求面积。然后记住概率密度函数值就是概率在该点的变化率

方差:方差是标准差的平方,标准差的意义是数据集中各个点到均值点距离的平均值,反应的是数据的离散程度。

协方差:标准差和方差是描述一维数据的,当存在多维数据的时候,需要知道每个维数的变量中间是否存在关联。协方差是衡量多维数据中变量之间相关性的统计量。比如一个人身高和体重的关系,两变量之间协方差为正值,则两个变量之间存在正相关。

协方差矩阵:当变量多了,超过两个变量,就用协方差矩阵衡量多变量之间的相关性。由方差和协方差两部分组成,方差构成了对角线上的元素,协方差构成了非对角线上的元素。协方差矩阵的特征向量控制旋转,特征值控制尺度,均值向量控制位置

NDT(正态分布变换)算法学习相关推荐

  1. 使用正态分布变换(Normal Distributions Transform)进行点云配准

    正态分布变换算法是一个配准算法,它应用于三维点的统计模型,使用标准优化技术来确定两个点云间的最优的匹配,因为其在配准过程中不利用对应点的特征计算和匹配,所以时间比其他方法快.下面是PCL官网上的一个例 ...

  2. [深度学习] 增加样本——弹性变换算法实现

    我们都知道,深度学习的成功的原因主要有两点: (1)当前计算机的计算能力有很大提升: (2)随着大数据时代的到来,当前的训练样本数目有很大的提升. 然而深度学习的一大问题是,有的问题并没有大量的训练数 ...

  3. 数学建模算法学习笔记

    数学建模算法学习笔记 作为建模Man学习数学建模时做的笔记 参考文献: <数学建模姜启源第四版> 网上搜罗来的各种资料,侵删 1.线性预测 levinson durbin算法,自相关什么的 ...

  4. Python预测 数据分析与算法 学习笔记(特征工程、时间序列)

    微信公众号:数学建模与人工智能 GitHub - QInzhengk/Math-Model-and-Machine-Learning 第3章 探索规律 3.1 相关分析 相关关系是一种与函数关系相区别 ...

  5. Opencv3中SURF算法学习

    目录 流程图: 哈尔特征harr 积分图 AdaBoost级联分类器 SURF原理 (1)构建Hessian矩阵构造高斯金字塔尺度空间 黑塞矩阵 图像金字塔 高斯金字塔 DOG金字塔 尺度空间 (2) ...

  6. Surf算法学习心得(一)——算法原理

    Surf算法学习心得(一)--算法原理 写在前面的话: Surf算法是对Sift算法的一种改进,主要是在算法的执行效率上,比Sift算法来讲运行更快!由于我也是初学者,刚刚才开始研究这个算法,然而网上 ...

  7. 离散哈特莱变换(DHT)及快速哈特莱变换(FHT)学习

    离散哈特莱变换(DHT)及快速哈特莱变换(FHT)学习 说在前边 最近复习\(DSP\)的时候,发现了一个号称专门针对离散实序列的变换,经分析总运算量为普通\(FFT\)的几乎一半,而且完全没有复数. ...

  8. 给实践者的算法学习指南

    几乎是所有最顶尖的互联网和软件公司都会用算法和数据结构来考察软件工程师,然而我并不打算在这里再讨论算法的重要性和对实际工作是否有用(我认为这对一个优秀的程序员是不可或缺的基本技能),也不讨论「Goog ...

  9. 有感FOC算法学习与实现总结(转)

    原文:https://blog.csdn.net/u010632165/article/details/103656254 文章目录 基于STM32的有感FOC算法学习与实现总结 1 前言 2 FOC ...

最新文章

  1. AI和机器学习如何改善用户体验?
  2. Redhat 6 git 服务器 配置 (http)
  3. laravel5.6 数组传递到前端
  4. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )
  5. 软考-信息系统项目管理师-项目整体管理
  6. hihocoder 1015 : KMP算法(kmp)
  7. 专业计算机能力考试 技巧,全国专业技术人员计算机应用能力考试应试技巧
  8. HTML section元素
  9. 计算机网络---分层结构、协议、接口、服务
  10. extmail如何登陆mysql_rhel5.4下postfix+mysql+extmail中mysql密码怎么设置?
  11. js如何获取IP地址?教你4种方法
  12. VS2012帮助下载地址
  13. jav学习笔记-String源码分析
  14. 尼采“最孤独者”“忧郁颂”
  15. 生活随记 - 2020国庆第二天
  16. 绘制二次贝塞尔曲线的几种方式
  17. Dynamics 365 可编辑子网格的字段禁用不可编辑
  18. python里char什么意思_编程中“char”是什么意思?
  19. GraphQL是什么,入门了解看这一篇就够了!
  20. Python使用try...except...输出详细错误

热门文章

  1. 拉普拉斯矩阵 拉普拉斯算子 图论
  2. 《流浪地球》影评数据爬取分析
  3. 信源编码技术作业1:使用Audacity绘制并分析清音、浊音、爆破音的频谱图
  4. 小米9私密相册怎么找_小米手机私密相册怎么用?怎么打开查看?
  5. 学生学籍管理系统_登陆界面设计
  6. android listview网络图片,Android ListView从网络获取图片及文字显示
  7. Scratch之制作幸运抽奖机
  8. undo歌词中文音译_UNDO歌词及翻译
  9. TypeScript进阶 之 重难点梳理
  10. 计算机输入法切换用户,电脑的输入法切换不了怎么办,教您如何解决电脑系统输入法...