本博客来自于论文《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 次变换估计,
则被定义为
,即可以求
。正如前面那样,我们使用高斯牛顿法
求解
。在这里,对应关系永远不会更新。 每次迭代只执行两个步骤:为每个点对应计算一个线性过程变量、构建并求解具有
变量的线性系统。