《 无人驾驶原理与实践》一3.3正态分布变换

举报
华章计算机 发表于 2019/06/02 22:17:21 2019/06/02
【摘要】 本书摘自《 无人驾驶原理与实践》一书中的第二章,第3.3节,编著是申泽邦 雍宾宾 周庆国 李良 李冠憬

3.3正态分布变换

      正态分布变换(Normal Distribution Transform,NDT)算法是基于标准正态分布的配准算法,它应用于三维点的统计模型,使用标准最优化技术来确定两个点云间的最优匹配,因为其在配准过程中不利用对应点的特征计算和匹配,所以计算速度比其他方法快。
       这个算法耗时相对稳定,与给定的初值关系不大,初值误差大时也能很好地纠正过来。计算正态分布是在初始化时进行的一次性工作,不需要消耗大量代价来计算最近邻搜索匹配点,概率密度函数在两幅图像采集的间隔可以通过离线计算出来。接下来本文将对其进行详细介绍。

3.3.1NDT算法介绍

       由概率和统计知识可知,如果随机变量X满足正态分布(即X~N(μ,σ)),则它的概率密度函数(Probability Density Function,PDF)为:

image.png

       其中μ为正态分布的均值,σ2为方差,这是低维度的情况。对于多元正态分布,其概率密度函数可表示为:

image.png

       其中x→表示均值向量,D是维度,Σ表示协方差矩阵,其对角元素表示的是对应元素的方差,而非对应元素(行与列)的相关性。图34为服从二维正态分布的概率密度图。

image.png

       其概率密度函数为钟形曲面,它的概率密度函数的等高线是一个椭圆线,并且二元正态分布的两个边缘分布都是一元正态分布。
NDT算法的基本思想是先根据参考数据来构建多维变量的正态分布,如果变换参数能使得两幅激光数据匹配得很好,那么变换点在参考系中的概率密度将会很大。因此,可以考虑用优化的方法求出使得概率密度之和最大的变换参数,此时两幅激光点云数据匹配得最好。

3.3.2NDT算法的基本步骤

       (1)将参考点云网格化,并计算每个网格的多维正态分布参数

即将参考点云所占的空间划分成指定大小的网格。对于三维地图,就是用一个个小立方体将整个空间的扫描点划分为网格。然后对于每个网格,基于网格内的点计算其概率密度函数。其中yk→=1,…,m表示一个网格内所有的扫描点。
       均值: μ→=1m∑mk=1yk→
       协方差矩阵: Σ=1m∑mk=1(yk→-μ→)(yk→-μ→)T
       概率密度函数:f(x→)=1(2π)32Σe-(x→-μ→)TΣ-1(x→-μ→)2

       (2)初始化变换参数和求最大似然

       我们使用NDT配准的目标是找到当前扫描的姿态,使得当前扫描的点位于参考扫描表面上的可能性最大化。为了对当前的点云进行变换(平移、旋转等),我们用p→表示变换参数。当前扫描的结果为点云X={x1→, …, xn→},给定扫描集合X,初始化变换参数p→,用空间转换函数T(p→, xk→)来表示使用姿态变换p→来移动点xk→。再结合之前的一组概率密度函数(每个网格都有一个PDF),那么最好的变换参数p→就应该是最大化似然函数的姿态变换:

image.png

求最大似然也就相当于求最小负对数似然-logθ

image.png

(3)优化参数

       这里的任务是使用优化算法来调整变换参数p→,令负对数似然最小化,在NDT算法中使用了牛顿法来进行,这里不展开介绍。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。