论文阅读:GeoTransformer
文章主要针对低重叠率情况下的点云配准问题,通过提升内点率进行配准。算法整体结构图
技术关键点
SuperPoint
本文使用SuperPoint作为点云分簇的中心种子点
Transformer
本文使用Transformer来提取点云簇的特征,包括一个自注意力模块提取点云内部特征和一个交叉注意力模块建模内部点云的一致性。
本文设计了一种新的几何结构embedding来编码超点的位移不变的几何结构。这两个emdedding核心思想是利用超点计算的距离和角度(主要思想参考PPF)这些超点在同一场景的不同点云上是一致的
Pair-wise Distance Embedding
计算两个SuperPoint之间的距离
Triplet-wise Angular Embedding
计算两个SuperPoint之间的夹角
网络结构
特征提取
特征提取部分使用的是KPConv-FPN作为backbone提取多级点云特征
该过程伴随着点云的降采样,降采样到最稀疏一级的点云被视作SuperPoint
其他稀疏级别的点云的特征被指派给离他最近的SuperPoint。他们一起组成了一个以SuperPoint为中心的局部patch
SuperPoint匹配模块
文章提到现有视觉任务一般只给transformer喂高级点云特征,没有明确编码几何结构信息,使得学到的几何特征区分度不大进而导致在低重叠率下的许多匹配错误和大量外点匹配,针对该问题提出了Geometric Transformer
Geometric Transformer
包括几何self-attention模块学习点云内部特征和cross-attention模块学习点云间点云内部特征的一致性,这两个组合迭代
N
t
N_t
Nt次之后提取到混合特征。(这块思路和 SuperGlue很像)
其中self-attention学习使用 Pair-wise Distance Embedding和Triplet-wise Angular Embedding,(核心思路参考PPF-FoldNet)
cross-attention用于执行两个点云之间的特征交换,基于特征的cross-attention模块可以对两个点云的几何一致性进行建模。所得到的混合特征对变换具有不变性,对推理对应具有鲁棒性。
SuperPoint matching
为了找到SuperPoint的对应关系,文章先将虚拟特征归一化到单位球面,并且计算高斯相关矩阵。由于一些patch的区分度不大,产生了很多模糊匹配。所以考虑使用多归一化操作,来抑制模糊匹配。
最终选择相似度最大的K个patch对视为重叠区域。
点匹配模块
在得到SuperPoint的对应关系之后,针对其所在patch中的每个点,使用点匹配模块来进行匹配,得到每个点的对应关系。其中使用sinkhorn layer来提取局部稠密点对应关系。
局部到整体配准
不同于其他鲁棒性估计期(Ransac)收敛慢的特点,由于GeoTransformer能够得到更到的内点率,所以本文不需要使用鲁棒估计器,这样极大的降低了计算成本。文章设计了LGR框架。使用权重SVD求解变换矩阵的封闭结,其中对应置信度作为权重。该方法由于对应点选择比较准确,所以精配准部分速度较快,能够达到和RANSAC近似的精度且速度快100倍
损失函数
overlap-aware circle loss
使用circle loss在面对正样本的时候区分度不大,权重相同。为了不让模型使用circle loss匹配执着于匹配较低重叠率的点云patch,本文使用overlap-aware circle loss让模型聚焦于那些有较高重叠率的匹配。
具有更高重叠率的patch对有更高的权值
point matching loss
点对应关系真值相对来说比较稀疏,因为他们只有在下采样的点云中才能获得。本文使用在对应点的指派矩阵上使用负对数似然损失。
值得关注的点
文章提出的local-to-global registration(LGR)可以实现与Ransac接近的效果但快100倍(应用于CoFiNet和GeoTransformer上),该类Ransac-free的方式应该将成为主流,增大内联率来替代传统Ransac的滤波作用进一步提升配准速度,相关例子REGTR
代码训练
训练的过程如果显存不足可以考虑调低Geotransformer中hidden_dim的数量来降低显存占用,效果可能会受到一定影响,但对于显存12G的30系列显卡用户会友好一些