4pcs粗配准算法
一,简介
- 4PCS[1]配准算法使用的是RANSAC算法框架,通过构建与匹配全等四点对(啥意思)的方式来减少空间匹配运算,进而加速配准过程。
- 4PCS不同于icp和ndt,其是一种基于局部特征(特征描述子)的全局配准方法,对于噪点和异常值、低重叠度具有稳健性,对于配准初值不敏感。
- wide-base和LCP度量的组合使得4PCS配准方法能应对噪点和异常值
二,预备知识
1.wide base
4pcs算法的关键是选取一个宽基集(wide-base),如图。(就是选取的点的距离相对大些,算法才更稳定,明显上面的配准效果比下面的好,因为上面的点隔得远,但是最远距离要受重叠度的限制)。什么是重叠度,怎么限制
问题:什么是重叠度,怎么限制
2.LCP(largest common pointset)
简单来说就是,给定两个处于任意初始位置的点集P和Q,找到两个点集之间的最佳刚性变换,使得P,Q中两点间距离小于δ的点数最多。
这些点组成的集合叫做LCP,即可以利用LCP做为代价函数,求解变换矩阵。
3.Randomized Alignment
- 算法介绍:
该过程从P中随机选取一个基,计算将该基与Q中所有可能的基对齐的变换,并验证配准结果。如在RANSAC中一样,为了获得一定的成功概率,该方法重复从P中选择L个不同的基。此外,验证阶段也是随机化的:首先,只验证P中数量恒定的随机点,并且仅当该子集的显著部分匹配良好时,才测试其余点。 - 4PCS算法流程是基于Randomized Alignment方法。然而,文中引入了平面全等集的思想,从Q中只选择一小部分可能与P中给定的基相匹配的基,而不是从Q中测试所有可能的基.
- 计算L:
- 我的理解
从源点云中选取L个不同的点(L的取值服从上述公式),在目标点云中取L个点计算变换关系,用其他点验证。
问题:pg的概率和ps的概率怎么计算呢,和RANSAC有啥不一样除了计算L
4.Approximate Congruent 4-Points近似共面四点(4PCS特征)
- 我的理解
利用在仿射变换中比例不变性,计算在源点云中四个点的比例,利用这个比例在目标点云中找到比例一致的四个点,如下图:e为四个点的角点,e1和e2是目标点云中的四个点的角点,如果相同,则认为和原点云一致
由于上述步骤计算量大,把比例改成距离,计算距离d1=‖a− b‖和d2=‖c− d‖。现在我们只考虑Q中的的距离为d1或d2的点对,最大误差为δ。
问题:怎么找到原点云的四个点呢,是随街还是点云重叠区域
三,算法步骤
- 我的理解
1.源点云中选择四个点:
选择重叠区域中三个点(利用八叉找重叠部分),利用重叠度(重叠部分的点除以自身的点数量)找第四个点(个点距离越远结果越好,这个距离由重叠度确定)文章末尾又说通过。配合局部特征描述子和局部特征(曲率,法线),加速4点共面点集的选择过程
2.四个点的交叉比(因为交叉比在仿射变换下不变,可以理解成距离不变)
3.在目标点云中查找复合交叉比的点集
4.每四个点对对应一个R,对源点云*R后计算与目标点云的距离,根据有多少点小于给定的阈值来个这个R打分
ransac算法详解
简介
- 随机样本一致性 (RANSAC) 是一种迭代方法,用于从一组包含异常值的观察数据中估计数学模型的参数,此时异常值不会对估计值产生影响。
- 因此,它也可以解释为一种异常值检测方法。
- 从某种意义上说,它是一种非确定性算法,它仅以一定的概率产生合理的结果,随着允许更多的迭代,这种概率会增加。
我的理解
- 有一组数据,随机挑选点进行模型拟合,再用其他点进行模型拟合,不断进行模型比较,最终得到效果最好的模型。
算法步骤(举例)
- 给定数据点如图
- 随机找出2点作为假象拟合连线为L,则任意点与P距离小于阈值s,认为在线上,否则不在线上;显然下图的线上点为4
- 再次随机抽取两点做为假象拟合线,如下图:显然线上点为7;因此,原先的模型点,被目前的模型点取代。
- 继续随机抽取两点作为模型,直到线上点数量不再增加为止。最终拟合结果也就得到。
近似最近邻搜索算法(Approximate Nearest Neighbor)
一,随机投影森林
个人理解
- 目的:对数据进行划分,然后查找新的点的最近邻点
- 算法步:
骤随机选取原点出发的向量p,利用与向量垂直的线把数据一分为二,在数学上表示为个点向量和向量p的点乘,根据小于或大于零划分