本博客来自于论文《fast global registration》,该论文介绍了一种快速全局配准部分重叠3D表面的算法,作者称其算法在速度和配准的准确性ICP等局部细化算法更快,且算法不涉及迭代采样,模型拟合或局部细化。
几何配准的典型流程包括全局对齐和局部细化,其中全局对齐即对两个表面的刚体运动进行初始估计,局部细化则不断优化这个初始估计以得到更好的配准效果。
大多数的全局对齐方法对候选点对进行操作,诸如有些模型采用位姿聚类或者是RANSAC作为迭代拟合模型,每次迭代对一组候选对应进行采样,根据这些对应关系产生对齐结果,并对结果进行评估,若找到效果好的对齐则可以进行下一步的迭代局部细化。然而,在这篇论文中,作者并没有进行迭代采样,模型拟合或局部细化,并且由于该算法不用重新计算对应关系,因此也要比ICP等局部细化算法更快。下面来具体分析一下这个算法的内容。
一、Pairwise Global Registration
(一)目标
目标是找到将点集P与点集Q对齐的刚体变换矩阵T。
取对应关系代表点集Q和Q之间的对应关系。为了完成优化变换矩阵T,我们定义公式(1)。在这里的是一个估算器,即,用来完成验证和修剪。由于公式(1)较难优化,因此作者假设关系L,并假定优化目标公式为。其中,点对关系
目标是最小化公式 ,因此在此处求偏导得到,解得结果:。将其带入我们假定的目标公式,即可得到公式。
(二)优化
显然刚刚提出的求解变换矩阵T的公式不是最优的(至于为啥不是最优的我也木有看懂。。。),于是,作者在这里将变换矩阵中的旋转变量w和变换向量t定义为六个参数的向量:。于是,变换矩阵就可以线性表示为:。这里的是最后一次迭代的变换估计,使用高斯牛顿法求解。其中是残差向量,是雅可比矩阵。 通过使用将ξ应用于Tk来更新T,然后将其映射回SE(3)组。
(三)对应关系
为了生成对应关系集合,作者使用了快速点特征直方图(FPFH)方法。
这里先补充一些特征聚类相关的知识点:点特征直方图以及快速点特征直方图。
对于p点的FPFH特征,类似的可以定义。对于每一个,我们寻找F(Q)中距离F(p)最近邻的点,同样,对于每一个,我们寻找F(P)中距离F(q)最近邻的点。设是这些对应关系的集合,在应用到算法里之前,作者用了两种测试来降低中的异常值数目:
- Reciprocity test:对于中的点对(p,q),当且仅当F(p)是F(q)在F(P)中的最近邻,且F(q)是F(p)在F(Q)中的最近邻,才能被保留在结果点对中。
- Tuple test:从中随机选取三个点对(p1; q1)、(p2; q2)、(p3; q3),检查(p1; p2; p3) 与(q1; q2; q3)是否符合公式,其中τ = 0.9。通过验证的关系对被保存在结果点对中。
二、多向配准
在这里首先贴一下这个算法伪码:
1、目标
对于两个点集,定义点集关系,则得到公式:。与上面类似,定义点集对应关系,则同前面介绍的一样,公式化简如下:
2、优化
作者在这里使用交替优化来完成。假定L的公式为:。定义为第 i 次变换估计,则被定义为,即可以求。正如前面那样,我们使用高斯牛顿法求解。在这里,对应关系永远不会更新。 每次迭代只执行两个步骤:为每个点对应计算一个线性过程变量、构建并求解具有变量的线性系统。