https://blog.csdn.net/adamshan/article/details/79230612
https://www.cnblogs.com/yhlx125/p/5749770.html
https://www.cnblogs.com/21207-iHome/p/8039741.html
无人车的定位问题,实际上就是要找出无人车当前在地图的那个位置(并且要求精度在厘米级别)。其中有一类方法被称为即时定位与地图构建(simultaneous localization and mapping,SLAM),它能够实现导航定位而不需要地图,然而,真正实现无人车的SLAM是非常困难的,作为交通工具,远距离的行驶会使得实时构建地图的偏差变大。所以,在已经拥有高精度地图的前提下去做无人车的定位,是更加现实,简单的。NDT就是一类利用已有的高精度地图和激光雷达实时测量数据实现高精度定位的技术。
视图匹配(配准)算法:
1.ICP
缺点:A.要剔除不合适的点对(点对距离过大、包含边界点的点对) B.基于点对的配准,并没有包含局部形状的信息
C.每次迭代都要搜索最近点,计算代价高昂 存在多种优化了的变体算法,如八叉树等
2.IDC ICP的一种改进,采用极坐标代替笛卡尔坐标进行最近点搜索匹配
3.PIC 考虑了点云的噪音和初始位置的不确定性
4.Point-based probabilistic registration 需要首先建立深度图的三角面片
5.NDT——正态分布变换:
计算正态分布是一个一次性的工作(初始化),不需要消耗大量代价计算最近邻搜索匹配点
概率密度函数在两幅图像采集之间的时间可以离线计算出来
6.Gaussian fields
和NDT正态分布变换类似,利用高斯混合模型考察点和点的距离和点周围表面的相似性
7.Quadratic patches
8.Likelihood-field matching——随机场匹配
9.CRF匹配
缺点: 运行速度慢,在3d中实时性能不好,误差大。
10.Branch-and-bound registration
11.Registration using local geometric features
NDT及其改进:
NDT配准的大致概念:
下图是一个高精度点云地图的例子:
下图是一个Lidar扫描点云的例子:
通过正态分布变换配准,能够确定车辆当前在高精度地图中的位置,如下图所示:
放大之后:
可以看出,为了知道我们在这个地图中的确切位置,我们比较lidar扫描得到的点云和我们的地图点云,其中一个问题在于:lidar扫描得到的点云可能和地图的点云存在细微的区别,这里的偏差可能来自于测量误差,也有可能这个“场景”发生了一下变化(比如说行人,车辆)。NDT配准就是用于解决这些细微的偏差问题。NDT并没有比较两个点云点与点之间的差距,而是先将参考点云(即高精度地图)转换为多维变量的正态分布,如果变换参数能使得两幅激光数据匹配的很好,那么变换点在参考系中的概率密度将会很大。因此,可以考虑用优化的方法求出使得概率密度之和最大的变换参数,此时两幅激光点云数据将匹配的最好。
上图中立方体的边长为 1 米,其中越明亮的位置表示概率越高。此外,局部表面的方向和光滑性则可以通过协方差矩阵的特征值和特征向量反映出来。我们以三维的概率密度函数为例,如果三个特征值很接近,那么这个正态分布描述的表面是一个球面,如果一个特征值远大于另外两个特征值,则这个正态分布描述的是一条线,如果一个特征值远小于另外两个特征值,则这个正态分布描述的是一个平面。下图描述了协方差矩阵特征值和表面形状之间的关系:
二维: