点云匹配方法NDT(正态分布变换)

news/2024/7/9 4:54:48

1. 正态分布变换(NDT)

在点云匹配中,ICP基于距离直接最优化变换矩阵的参数,由于是欠定方程且旋转矩阵的约束,使得结果很难优化,为此在新的维度优化变换矩阵的参数,被很好的提出:

先将参考点云(目标点云)转换为多维变量的正态分布,匹配的点云如果采用某组变换参数后,使得新的点云和目标点云的正态分布参数匹配很好,那么变换点在参考系中的概率密度将会很大。因此,可以考虑用优化的方法求出使得概率密度之和最大的变换参数,此时两幅激光点云数据将匹配的最好。

2. 多元正态分布

我们知道,如果随机变量X满足正态分布X∼N(μ,σ),则其概率密度函数为:

对于多元正态分布而言,其概率密度函数可以表示为:

2.1. NDT算法流程

将参考点云网格化,计算每个网格的概率密度函数:

网格的概率密度函数则为:

2.2. 变换参数和最大似然

我们需要优化的参数就是对当前点云的坐标变换(旋转,平移等),转换函数表示使用姿态变换\vec{p}来变换\vec{x_{k}},结合之前的一组状态密度函数,那么最好的变换参数\vec{p}应该是最大化似然函数的姿态变换:

 那么最大化似然也就相当于最小化负对数似然 −logΘ;

                  

就到了我们最熟悉的最优化的部分了。

现在的任务就是使用优化算法来调整变换参数\vec{p} ​ 来最小化这个负对数似然。NDT算法使用牛顿法进行参数优化。


http://lihuaxi.xjx100.cn/news/246548.html

相关文章

随笔

个人觉得杨过还是喜欢郭芙的,郭芙也是喜欢杨过的,但互相有一种对峙的心理,放不下自己的面子。原著:一见杨过,难误终身。 看电视剧,看他两个对话,在加上那个配乐,还真受不了。

html点击保持,如何保持:点击元素后的活动CSS样式

我使用anchor作为我的网站导航。aboutworksCSS#nav {margin-left: 50px;margin-top: 50px;text-transform: uppercase;}.navitem {background: #333;color: white;width: 230px;height: 50px;font-size: 25px;line-height: 50px;padding-left: 20px;-webkit-user-select: none;…

socks5   代理

安装gcc和make,并安装ss5的依赖包:yum -y install pam-devel openldap-devel cyrus-sasl-devel gcc automake make openssl openssl-devel2.下载ss5安装包并编译安装:wget -c http://sourceforge.net/projects/ss5/files/ss5/3.8.9-2/ss5-3.8.9-2.tar.gz…

android学习笔记之十服务(Service)

2019独角兽企业重金招聘Python工程师标准>>> Service拥有一个单独进程的模块. 1,继承自Service类,须实现public IBinder onBind(Intent intent) 2,通过startServie触发运行,stopService终止运行 生命周期: onCreate(如果是第一次运行) -> onStart -> onDest…

C++程序环境变量使用

1. 永久改变环境变量 修改如下两个文件中的任意一个即可 1. /etc/profile 2 .bash_profile 其中,/etc/profile是全局的环境变量,对所有用户生效,而.bash_profile只对当前用户起作用。 2. 在程序外临时设置环境变量 2.1. 对所有程序设置变…

CSS面试复习(三):预处理器、工程化方案、三大框架中的CSS

一、预处理器 1、介绍 基于CSS的另一种语言、通过工具编译成CSS、添加了很多CSS不具备的特性、能提升CSS文件的组织 2、less嵌套 3 、sass嵌套 4、 less变量 5、sass变量 6、less mixin 7、sass mixin 8、less extend 9、sass extend 10、less loop 11、sass loop 12、less imp…

2014年秋广州华师在线计算机的作业答案,18秋华师《C语言程序设计B》在线作业-4辅导资料...

18秋华师《C语言程序设计B》在线作业-4辅导资料 (9页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!2.90 积分18秋华师《C语言程序设计B》在线作业-41、B 2、C 3、D 4、C 5、A 一、单选题共50题&…

Java基础班学习笔记(13)IO流

知识要点:1:异常(理解)(1)程序出现的不正常的情况。(2)异常的体系Throwable|--Error 严重问题,我们不处理。|--Exception|--RuntimeException 运行期异常,我们需要修正代码|--非RuntimeException 编译期异常,必须处理的&#xff0…