RPM-Net: Robust Point Matching using Learned Features 2020 论文笔记
通讯作者:Gim Hee Lee
第一作者:Zi Jian Yew
研究机构:新加坡国立大学
代码链接:https://github.com/yewzijian/RPMNet
解决了点云刚性配准任务中,对初始刚性变换和噪声/离群点敏感的问题。
迭代最近点法(ICP)分两步迭代求解刚性点云配准问题:
- 对空间上最近点对应关系进行硬赋值,
- 求出最小二乘刚性变换
然而,基于空间距离的最近点对应的硬赋值对初始刚性变换和离群点敏感,往往导致ICP收敛到错误的局部极小值。
Robust Point Matching (RPM)算法:
- RPM比ICP更为健壮,但它仍然对初始化和局部极小值敏感,因为仍然仅根据空间距离获得点对应关系。
本文提出的RPM网络,一种对初始化不敏感的基于深度学习的刚性点云配准方法则解决了ICP的问题。
与某些现有方法不同,RPM网络可以处理缺少的对应关系和部分可见性的点云。实验结果表明,与现有的非深度学习和最新的深度学习方法相比,本文的RPM网络达到了SOTA。
首先介绍RPM算法:
RPM算法是一种使用退火和软对应方式的配准算法。ICP算法在迭代计算时利用距离最近原则来产生待配准点对,而RPM算法利用软对应方式为任意点对赋予0到1之间的值,并最终收敛到0或1,如果是1则代表这两个点是配准点对。RPM算法最终计算得到的配准点对是一一映射的,而ICP算法通常不是。
RPM算法想要找到一个刚性变换{R,t}以及配准矩阵M,使得X能够与Y匹配。
配准矩阵的元素初始化:
其中$\alpha \ \beta $分别为判定异常值的阈值和每次迭代后需要增加的退火参数
RPM-Net:
模型对RPM做了两个修改:
- 将基于空间的距离量度换成了基于混合特征距离
- 在每次迭代中都要重新计算参数$\alpha \ \beta $
模型概述:
在第i次迭代i时:
- 特征提取器从输入点云X、Y中提取混合特征
- 参数估计网络预测最佳退火参数$\alpha \ \beta $
- 混合特征和α,β参数用于计算初始匹配矩阵,然后进行Sinkhorn归一化以强制执行双重随机约束以获得最终匹配矩阵
- 计算出更新的变换{R_i,t_i},并在下一次迭代中使用
特征提取器:
对于任意点云x_c,其混合特征:
-
其中:
-
4D点对特征:(以旋转不变的方式描述质心点x_c与相邻的点x_i之间的曲面)
参数估计网络:(Parameter Prediction Network)
在RPM算法中,退火参数$\alpha \ \beta $是需要手动设置的。RPM网络中,由于这些参数取决于学习的特征,因此很难手动设置。
将X、Y两个点云连接起来形成一个(J+K,3)的矩阵,用包含0或1的第四列对其进行扩充(X为0,Y为1),并将其输入PointNet,输出得到参数$\alpha \ \beta $
为了确保预测的α和β为正,在最后一层使用softplus**函数
预测刚性变换(Estimating the Rigid Transformation):
配准矩阵预测值得到后,最后一步就是预测刚性变换,即根据X计算对应的坐标
然后使用SVD分解计算刚性变换。
由于不是每个X都有对应的Y,所以在计算刚性变换时,所以用来衡量每个对应关系(xj,ˆyj)
损失函数(Loss Functions)
每次 迭代都计算一次Loss,但是需要加权,前面的loss权值小,后面的大
实现:
使用带有内环的递归神经网络实现。尽管梯度可以从一个迭代流到另一个迭代,但在实践中,这并不能提高性能并导致训练不稳定,因此采用了一种简单的方法,在每个迭代开始时停止{R,t}梯度。具体结构如下图: