目录
一、导言
二、相关工作
1、基于Transformer的点云配准
2、针对点云的局部注意力
三、PTT
1、KPconv提取特征
2、Tree Transformer Encoder
3、Decoder
4、估计姿态
5、损失函数
四、实验
1、对比不同Backbone
2、运行时间对比
3、对比不同PTT方法下RR指标的影响
一、导言
本文提出了一种名为Point Tree Transformer(PTT),该方法可以有效地提取全面的局部和全局特征,同时保持线性计算复杂度,也在点云配准精度和效率方面均达到SOTA水平。
(1)提出了一种新型Transformer模型PTT,用于点云配准任务
(2)提出了PTA机制,遵循分层树结构,并将注意力权重聚焦到关键点上,从而提取丰富的局部特征以及保持线性复杂度。
(3)将粗糙特征引导方法引入特征提取中,以便关注局部结构,促进多尺度的集成。
二、相关工作
1、基于Transformer的点云配准
对于以往基于Transformer的点云配准。
CoFiNet:交替使用自注意力机制和交叉注意力机制,并使用又粗糙到精细的方式提取特征。
RegTR:利用Transformer直接进行配准,而不需要RANSAC后处理
GeoTransformer:在Transformer中引入几何结构,来计算超点匹配。
RegTransformer:结合了Transformer和图神经网络。
基于Transformer的点云配准可以保证有效地建立源点云与目标点云之间的全局关系,但存在一些局限性,难以专注于稀疏且有意义的关键点,而是分散在所有点上,另外也存在复杂度随点云规模呈二次增长问题。
该论文中提出树形结构的Transformer,保证有局部特征能力的情况下,计算复杂度为线性。
2、针对点云的局部注意力
对于以往的引入局部注意力的基于Transformer的点云配准工作。
Sparse voxel transformer:基于体素编码短程局部关系,基于聚类编码长程上下文关系。
Voxel transformer:收敛注意力区域到局部邻域并采样远距离点,在实现大感受野的情况下删掉低相关点的影响,也优化了注意力机制的计算效率和关注度。
PatchFormer:将点云分块后再分别计算每个patch的局部特征并逐渐逼近全局信息。
由于以往的方法都是使用一种固定的限制注意场的方法,而并不能很好地关注何为高相关点,而是用一个统一的方法近似关注高相关点(对比各种方法删除离群点,和分类离群点)
三、PTT
PTT网络结构类似于REGTR的结构,但是他在transformer改用树状Transformer。
PTT网络分为四部分构成,KPConv提取特征,Tree Transformer Encoder,Decoder,加权Procrutes估算姿态。
1、KPconv提取特征
类似于REGTR中的KPconv接Resnet的残差结构,用于降采样以及提取特征。最终输出特征,下采样的点云坐标。
2、Tree Transformer Encoder
Tree Transformer编码器由Tree Construction、特征池化、Tree Transformer Layer构成。
(1)Tree Construction(树建立)
目的:将点云特征信息,转换为树的信息。
首先经过下采样的点云分别划分为多个体素结构,并将相邻的N个体素合并为更加粗糙的体素,并不断重复上述步骤,得到多层次的体素结构,也就建立两个从底到上的树状结构。
对于不同的树状结构层下,一个体素由个点构成的点集合。由于最开始从最密集层输入点云,并从密集到稀疏进行构建聚合到上层的父节点上,所以我们定义两个索引,分别由密集到稀疏和稀疏到密集。
密集到粗糙的索引:从某一密集层d的每个点对应上一粗糙层c的哪些点的映射关系。
粗糙到密集的索引:从某一粗糙层d的每个点对应上一密集层c的哪些点的映射关系。
对于应该是那一层密集层或是粗糙层收到上标的影响。
第层体素的坐标情况为,与下一层坐标之间的关系如下:
其中,索引的模代表对应关系数量,所以这个公式代表密集层的若干点的坐标的中心点定为上一层粗层的体素中心。其中d=c+1。
(2)特征池化
特征池化目的:通过树的建立得到的不同层体素中心点的建立后,计算不同层的特征的关系。
在不同层之间使用两个全连接层的MLP夹一个ReLU的感知层进行映射,粗糙层的特征,使用下一层密集层一团体素特征和两层的这团体素坐标差的concat作为输入并经过MLP后再取体素特征中心。
(3)位置编码
为了有效地集成位置信息,将密集特征进行特征池化之前提前将最密集的特征通过正弦编码汇入特征池化过程,后续特征池化过程可以自适应地校准点特征,根据相对位置进行聚合特征。
(4)PTA注意力机制
首先你要了解一般的交叉注意力机制和自注意力机制结合的结构,参照REGTR博客。
REGTR: End-to-end Point Cloud Correspondences with Transformers 论文解读_3dregnet-CSDN博客
之后对于PTA注意力机制,我们对自注意力机制和交叉注意力机制分别解体,先送第一层的特征(最粗糙层)进入自注意力机制,得到的输出特征与第二层特征相加,再次送入自注意力机制,重复规则直到最细层特征之后送入交叉注意力机制,重复上述工作,由于对于源点云和目标点云特征均进行相同工作,最终encoder分别输出特征。
下图为概述,层间体素图示以及层间二维下的图示。
另外在论文中,计算了对于树形态的PTA结构的复杂度,在层数为2和层数大于2情况下,均可以达到线性时间复杂度,大幅降低了计算开销。
公式丢在这里,确实不太想看了。
3、Decoder
Decoder部分还是采用了传统的两层MLP夹一个ReLU的形态,并且两个分支的权重共享,输入Encoder的输出特征,得到Decoder输出特征。(题外话:这个latex花体是\mathcal{X})
共享参数:减少了模型参数数量,提高了可拓展性。
另外,使用FC+Sigmoid计算重叠分数。输入Encoder的输出特征,输出重叠分数,用于计算loss。
4、估计姿态
使用加权的Procrustes估算姿态(但是在REGTR中使用的是Kabsch-Umeyama算法,在3DRegNet中使用加权的Procrustes计算是因为存在内外点,他需要解决内外点问题,所以此处是不是有错,不太清楚)
5、损失函数
见REGTR损失函数,一模一样。
四、实验
1、对比不同Backbone
基于3DMatch、ModelNet40、KITTI数据集,对比往年的SOTA的Backbone,在RTE、RRE、CD、RR等多指标下均达到SOTA水平。(如下图部分实验)
2、运行时间对比
线性计算量下运行时间较快,也看到与RegTR相当近似(其实也是网络结构相近)
3、对比不同PTT方法下RR指标的影响
由于树的结构取决与树的层数与不同层的体素大小,而实验表明将最密集层的V设置为KPConv最终下采样层的体素距离,并将树结构设置为八叉树可以达到最好性能。
过大的体素大小会妨碍对于细粒度区域的提取,过小的体素大小会限制粗糙层的信息,过浅的树结构会导致粗糙层包含过多无关区域,而过深的结构阻碍训练收敛。
参考论文:https://arxiv.org/abs/2406.17530