【SLAM】LoFTR知多少

news2024/10/5 19:20:15

1. LoFTR: Detector-Free Local Feature Matching with Transformers

PAPER

论文 | LoFTR: Detector-Free Local Feature Matching with Transformers

代码 | CODE:

关键词 | detector-free, local feature matching

LoFTR知多少

      • 1. LoFTR: Detector-Free Local Feature Matching with Transformers
      • 0. 摘要
      • 1. Introduction
      • 2. Related Work
      • 3. Methods
        • 3.1. 局部特征提取
        • 3.2. 局部特征转换器(LoFTR)模块
        • 3.3. 粗匹配的建立
        • 3.4. 粗匹配到细匹配模块
        • 3.5. 监督
        • 3.6. 实现细节
      • 4. Experiments
        • 4.1. Homography Estimation(ted HPatches dataset 1)
        • 4.2 相对位姿估计
        • 4.3 视觉定位
      • 结论
      • References

0. 摘要

本文提出了一种新颖的用于局部图像特征匹配的方法。代替了传统的顺序执行图像特征检测,描述和匹配的步骤,本文提出首先在粗粒度上建立逐像素的密集匹配,然后在精粒度上完善精修匹配的算法。与使用cost volume搜索对应关系的稠密匹配方法相比,本文使用了Transformer中使用自我和交叉注意力层(self and cross attention layers)来获取两个图像的特征描述符。Transformer提供的全局感受野使图像能够在弱纹理区域产生密集匹配(通常情况下在低纹理区域,特征检测器通常难以产生可重复的特征点)。在室内和室外数据集上进行的实验表明,LoFTR在很大程度上优于现有技术。
在这里插入图片描述
图1:提出的方法LoFTR与基于检测器的方法SuperGlue [37]的对比。此示例表明,LoFTR能够在无纹理的墙壁和具有重复模式的地板上找到对应点,而基于检测器的方法往往难以找到可重复的兴趣点。

1. Introduction

图像间的局部匹配是许多3D计算机视觉任务的基础,包括运动结构SfM、SLAM、视觉定位等。大多现有的匹配方法都有三个阶段工作:特征检测、特征描述和特征匹配。在检测阶段,首先从每个图像中检测像角点这样的突出点作为兴趣点。然后围绕这些兴趣点的邻域区域提取局部描述符。特征检测和描述阶段产生两组具有描述符的兴趣点,随后通过最近邻搜索或更复杂的匹配算法找到这些兴趣点的点对点对应关系。

特征检测器的使用减少了匹配的搜索空间,并且产生的稀疏对应足以用于大多数任务,例如,摄像机姿势估计。然而,由于各种因素(如纹理差、重复图案、视点变化、照明变化和运动模糊),特征检测器可能无法提取足够的兴趣点。这一问题在室内环境中尤其突出,在室内环境中,低纹理区域或重复图案有时占据视野中的大部分区域。图1示出了一个示例。如果没有可重复的兴趣点,即使有完美的描述符,也不可能找到正确的对应关系。

最近的几项工作[34、33、19]试图通过建立像素密集匹配来解决这个问题。可以从密集匹配中选择置信度较高的匹配,从而避免特征检测。然而,在这些工作中,卷积神经网络(CNN)提取的密集特征具有有限的感受野,可能无法区分模糊区域。取而代之的是,人类在这些模糊区域中找到了对应关系,不仅是基于局部邻域,而且是基于更大的全局上下文。例如,图1中的低纹理区域可以根据其相对于边缘的相对位置来区分。这一观察结果告诉我们,在特征提取网络中,一个大的感受野是至关重要的。

基于上述观察,我们提出了局部特征变换(LoFTR),一种新的无检测器局部特征匹配方法。受开创性工作SuperGlue[37]的启发,我们使用带有自我和交叉注意层的Transformer[48]来处理(转换)从卷积主干提取的密集局部特征。首先以低特征分辨率(图像维度的1/8)在两组变换特征之间提取密集匹配。从这些密集匹配中选择具有高置信度的匹配,然后使用基于相关性的方法将其细化到亚像素级。Transformer的全局感受野和位置编码使变换后的特征表示具有上下文和位置依赖性。通过多次交错自我和交叉注意层,LoFTR学习在ground-truth匹配中显示的密度范围内的全局一致匹配先验。还采用了线性Transformer,将计算复杂度降低到可管理的水平。

我们在室内和室外数据集的多个图像匹配和摄像机姿态估计任务中对所提出的方法进行了评估。实验表明,LoFTR在很大程度上优于基于检测器和无检测器的特征匹配基线。LoFTR还实现了最先进的性能,并在视觉本地化的两个公共基准上排名第一。与基于检测器的基线方法相比,LoFTR即使在具有低纹理、运动模糊或重复图案的模糊区域也可以生成高质量的匹配。

2. Related Work

基于检测器的局部特征匹配。基于检测器的方法已经成为局部特征匹配的主要方法,在深度学习时代之前,许多工作在传统手工设计的局部特征特征上都取得了良好的表现。

SIFT[26]和ORB[35]是最成功的手工设计的局部特征,在许多3D计算机视觉任务中被广泛采用。基于机器学习的方法可以显著提高局部特征在更大视角和光照变化下的性能。

值得注意的是,LIFT[51]和MagicPoint[8]是首批成功的基于学习的局部特征。它们采用的检测器设计是基于手工设计的方法,并实现了良好的性能。SuperPoint[9]以MagicPoint为基础,提出了一种通过自适应的自监督训练方法。沿着这条技术路线的许多基于学习的局部特征[32、11、25、28、47]也采用了基于检测器的设计。

上述局部特征使用最近邻搜索来查找提取的兴趣点之间的匹配。最近,SuperGlue[37]提出了一种基于学习的局部特征匹配方法。SuperGlue接受两组兴趣点及其描述符作为输入,并使用图神经网络(GNN)学习它们的匹配,这是Transoformers的一般形式[16]。由于可以通过数据驱动的方法学习特征匹配的先验知识,SuperGlue获得了令人印象深刻的性能,并开创了局部特征匹配的新技术。

然而,作为一种依赖于检测器的方法,它的基本缺点是无法在模糊区域中检测出可重复的兴趣点。SuperGlue中的注意范围也仅限于检测到的兴趣点。我们的工作受到SuperGlue的启发,在GNN中使用自注意力机制和交叉注意力机制在两组特征描述之间传递消息,但我们提出了一种无检测器设计,以避免特征检测器的缺点。同时还在Transformer中使用了一种有效的注意层变体,以降低计算成本。

无检测器的局部特征匹配。无检测器的方法移除了特征检测器阶段,直接产出稠密特征描述符或者稠密特征匹配符。

视觉任务中的Transformers。Transformer由于其简单和计算高效,已经成为NLP序列标注任务中的标准模块。近期,Transformers在计算机视觉领域也取得非常好的效果,例如图像分类、目标检测和语义分割。在我们的工作中,也使用Transformers进行dispartity estimation。由于需要将查询向量和key vectors进行点乘,所以Transformer的计算量随着输入序列长度呈现增长。最近在处理长序列问题上,提出了许多变体方法。因为这些工作中的输入数据没有作前提假设,所以他们非常适合处理图像。

3. Methods

方法给定图像对I_A和I_B,现有的局部特征匹配方法使用特征检测器提取感兴趣点。我们提出了一种无需检测器的设计来解决特征检测的可重复性问题。图2展示了所提出方法LoFTR的概览。
在这里插入图片描述
图2:提出方法的概述。LoFTR有四个组成部分:1. 据局部特征CNN从图像对 I A I_A IA I B I_B IB(第3.1节)中提取粗级特征图 F A F^A FA F B F^B FB,以及细级特征图FˆA和FˆB。
2. 粗级特征图被展平为1-D向量,并添加位置编码。然后,这些添加的特征通过具有Nc个自注意力和交叉注意力层的局部特征转换器(LoFTR)模块进行处理(第3.2节)。
3. 使用可微分匹配层来匹配转换后的特征,生成置信度矩阵 ρ c \rho_c ρc 。根据置信度阈值和相互最近邻标准从 ρ c \rho_c ρc中选择匹配项,得到粗级匹配预测 u c u_c uc(第3.3节)。
4. 对于每个选定的粗略预测(˜i,˜j)∈ Mc,在细级特征图中裁剪一个大小为w×w的局部窗口。在此局部窗口内将对粗匹配进行细化,得到亚像素级别的最终匹配预测Mf(第3.4节)。

3.1. 局部特征提取

我们使用带有FPN [22](称为局部特征CNN)的标准卷积架构从两个图像中提取多层次特征。我们使用F˜A和F˜B表示原始图像尺寸的1/8处的粗级特征,使用FˆA和FˆB表示原始图像尺寸的1/2处的细级特征。
卷积神经网络(CNNs)具有平移等变性和局部性的归纳偏差,非常适合进行局部特征提取。CNN引入的下采样也降低了LoFTR模块的输入长度,这对于确保可管理的计算成本至关重要。

3.2. 局部特征转换器(LoFTR)模块

在局部特征提取之后,F˜A和F˜B被传递到LoFTR模块中,以提取位置和上下文相关的局部特征。直观地说,LoFTR模块将特征转换为易于匹配的特征表示。我们将转换后的特征表示为F˜Atr和F˜Btr。
基础知识:Transformer [48]。这里我们简要介绍Transformer作为背景。一个Transformer编码器由顺序连接的编码器层组成。
在这里插入图片描述
图3:LoFTR中的编码器层和注意力层。
(a)Transformer编码器层。h表示多个注意力头部。 (b)具有O(N^2)复杂度的传统点积注意力。 (c)具有O(N)复杂度的线性注意力层。为简便起见,省略了缩放因子。

图3(a)显示了一个编码器层的架构。编码器层中的关键元素是注意力层。注意力层的输入向量通常被命名为查询(query)、键(key)和值(value)。类似于信息检索,查询向量Q根据Q和与每个值V对应的键向量K的点积计算出的注意力权重,从值向量V中检索信息。

注意力层的计算图如图3(b)所示。形式上,注意力层表示为:
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T ) V . Attention(Q, K, V ) = softmax(QK^T)V. Attention(Q,K,V)=softmax(QKT)V.
直观地说,注意力操作通过测量查询元素与每个键元素之间的相似性来选择相关信息。输出向量是值向量根据相似性得分加权求和。因此,如果相似性较高,则从值向量中提取相关信息。在图神经网络中,这个过程也被称为“消息传递”。

线性变换器。将Q和K的长度记为N,它们的特征维度记为D,Transformer中Q和K之间的点积引入了计算成本的平方增长(O(N^2))与输入序列长度成正比。即使通过局部特征CNN来减小输入长度,直接应用传统版本的Transformer在局部特征匹配的背景下是不实际的。为了解决这个问题,我们提出使用Transformer中效率更高的变种形式。线性Transformer [17]通过用替代内核函数 s i m ( Q , K ) = φ ( Q ) ⋅ φ ( K ) sim(Q, K) = φ(Q) · φ(K) sim(Q,K)=φ(Q)φ(K)来替换原始注意力层中的指数内核,将Transformer的计算复杂度降低到O(N)。其中, φ ( ⋅ ) = e l u ( ⋅ ) + 1 φ(·) = elu(·) + 1 φ()=elu()+1。这个操作由图3©中的计算图所示。由于矩阵乘积的关联性质,可以先进行φ(K)T和V之间的乘法运算。由于DN,计算成本降低到O(N)。
**位置编码。**我们使用基于DETR [3]的标准位置编码的二维扩展。与DETR不同的是,我们在骨干网络输出上只添加一次位置编码。我们将位置编码的形式定义留在补充材料中。直观地说,位置编码以正弦格式为每个元素提供唯一的位置信息。通过将位置编码添加到F˜A和F˜B中,转换后的特征将变得位置相关,这对于LoFTR在不明显区域产生匹配非常重要。
在这里插入图片描述
图4:(a)卷积和(b)Transformer的感受野示意图。假设目标是建立L和R元素之间的连接以提取它们的联合特征表示。由于卷积的局部连通性,需要堆叠许多卷积层才能实现该连接。Transformer的全局感受野使得只需要一个注意力层就可以建立这种连接。
(c)注意力权重和转换后的密集特征的可视化。我们使用PCA来降低转换后特征F˜Atr和F˜Btr的维度,并使用RGB颜色可视化结果。放大以查看详细信息。

如图4©的底部行所示,尽管输入的RGB颜色在白色墙壁上是均匀的,但转换后的特征 F t r A F^A_{tr} FtrA F t r B F^B_{tr} FtrB对于每个位置是唯一的,这由平滑的颜色渐变所示。更多的可视化结果见图6。
自注意力和交叉注意力层。对于自注意力层,输入特征fi和fj(如图3所示)是相同的(可以是F˜A或F˜B)。对于交叉注意力层,输入特征fi和fj可以是(F˜A和F˜B)或(F˜B和F˜A),具体取决于交叉注意力的方向。我们根据[37]的方法将自注意力层和交叉注意力层在LoFTR模块中交替使用Nc次。图4©的前两行可视化了LoFTR中自注意力层和交叉注意力层的注意力权重。

3.3. 粗匹配的建立

在LoFTR中可以应用两种不同iable的匹配层,一种是使用最优传输(OT)层,如[37]所述,另一种是使用双向softmax算子[34,47]。首先通过以下方式计算变换后特征之间的得分矩阵 S : S ( i , j ) = 1 / τ ⋅ h F ˜ A t r ( i ) , F ˜ B t r ( j ) i S:S(i, j) = 1/τ · hF˜Atr(i), F˜Btr(j)i SS(i,j)=1/τhF˜Atr(i),F˜Btr(j)i。当使用OT进行匹配时,可以将-S用作分配问题的成本矩阵,如[37]所示。我们还可以对S的两个维度同时应用softmax(以下称为双向softmax),以获得软互相最近邻匹配的概率。具体而言,使用双向softmax时,匹配概率Pc的计算公式如下:
P c ( i , j ) = s o f t m a x ( S ( i , ⋅ ) ) j ⋅ s o f t m a x ( S ( ⋅ , j ) ) i 。 Pc(i, j) = softmax(S(i, ·))j · softmax(S(·, j))i。 Pc(i,j)=softmax(S(i,⋅))jsoftmax(S(⋅,j))i
匹配选择。基于置信度矩阵Pc,我们选择置信度高于阈值θc的匹配,并进一步强化互相最近邻(MNN)准则,以过滤可能的粗匹配异常值。我们将粗匹配预测表示为:
M c = ˜ i , ˜ j ∣ ∀ ˜ i , ˜ j ∈ M N N ( P c ) , P c ( ˜ i , ˜ j ) ≥ θ c Mc = {{˜i, ˜j} | ∀˜i, ˜j ∈ MNN(Pc), Pc(˜i, ˜j) ≥ θc} Mc=˜i,˜j∣∀˜i,˜jMNN(Pc),Pc(˜i,˜j)θc

3.4. 粗匹配到细匹配模块

在建立粗匹配之后,使用粗匹配到细匹配模块将这些匹配精细化到原始图像分辨率。受[50]的启发,我们使用基于相关性的方法来实现这一目的。对于每个粗匹配(˜i, ˜j),首先在精细级特征图FˆA和FˆB中定位其位置(ˆi, ˆj),然后裁剪两组大小为w×w的局部窗口。然后,在每个窗口中使用较小的LoFTR模块将裁剪的特征进行Nf次变换,得到以ˆi和ˆj为中心的两个变换后的局部特征图FˆAtr(ˆi)和FˆBtr(ˆj)。然后,将FˆAtr(ˆi)的中心向量与FˆBtr(ˆj)中的所有向量进行相关运算,从而产生表示ˆj附近每个像素的匹配概率的热图。通过计算概率分布的期望值,我们可以得到在图像I B上具有亚像素准确度的最终位置ˆj0。收集所有匹配 ( ˆ i , ˆ j 0 ) {(ˆi, ˆj0)} (ˆi,ˆj0)产生最终的细匹配Mf。

3.5. 监督

最终的损失由粗匹配级别和细匹配级别的损失组成: L = L c + L f L = Lc + Lf L=Lc+Lf
粗匹配级别的监督。用于粗匹配级别的损失函数是对由最优传输层或双向softmax算子返回的置信度矩阵Pc进行的负对数似然损失。我们遵循SuperGlue [37]的方法,在训练过程中使用相机位姿和深度图计算置信度矩阵的真实标签。我们将互相最近邻的两组1/8分辨率网格定义为地面真实粗匹配Mgt c。两个网格之间的距离通过它们中心位置的投影距离进行测量。更多细节请参见补充材料。对于使用最优传输层的情况,我们使用与[37]中相同的损失公式。当使用双向softmax进行匹配时,我们对Mgt c中的网格进行最小化负对数似然损失的计算:
L c = − 1 / ∣ M g t c ∣ ∑ ( ˜ i , ˜ j ) ∈ M c g t l o g P c ( ˜ i , ˜ j ) Lc = -1/|Mgt c| ∑_{(˜i,˜j)∈M^{gt}_c} log Pc(˜i, ˜j) Lc=1/∣Mgtc(˜i,˜j)McgtlogPc(˜i,˜j)
细匹配级别的监督。我们使用`2损失进行细匹配的优化。根据[50]的方法,对于每个查询点ˆi,还通过计算相应热图的总方差σ2(ˆi)来度量其不确定性。目标是优化具有低不确定性的精化位置,从而得到最终的加权损失函数:
L f = 1 / ∣ M f ∣ ∑ ( ˆ i , ˆ j 0 ) ∈ M f ∗ 1 / σ 2 ( ˆ i ) ( ˆ j 0 − ˆ j 0 g t ) 2 Lf = 1/|Mf| ∑_{(ˆi,ˆj0)∈Mf }*1/σ2(ˆi)(ˆj0 - ˆj0gt)² Lf=1/∣Mf(ˆi,ˆj0)Mf1/σ2(ˆi)(ˆj0ˆj0gt)2
其中ˆj0gt是通过使用地面真实相机位姿和深度将ˆi从FˆAtr(ˆi)扭曲到FˆBtr(ˆj)得到的。在计算Lf时,如果ˆi的扭曲位置超出了FˆBtr(ˆj)的局部窗口范围,我们将忽略(ˆi, ˆj0)。在训练过程中,不会通过σ2(ˆi)进行梯度反向传播。

3.6. 实现细节

我们在ScanNet [7]数据集上训练了LoFTR的室内模型,并在MegaDepth [21]上训练了室外模型,按照[37]的方法进行。在ScanNet上,模型使用Adam进行训练,初始学习率为1×10−3,批次大小为64。经过64张GTX1080Ti GPU的24小时训练后模型收敛。局部特征CNN使用修改版的ResNet-18 [12]作为骨干网络。整个模型的权重是随机初始化的并进行端到端的训练。Nc设置为4,Nf设置为1,θc选择0.2。窗口大小w等于5。在实现中,将F˜Atr和F˜Btr上采样并与FˆA和FˆB进行拼接,然后通过细匹配级别的LoFTR。使用双向softmax匹配的完整模型在一对640×480的图像上运行时间为116毫秒,使用RTX 2080Ti。在最优传输设置下,我们使用三个Sinkhorn迭代,模型运行时间为130毫秒。更多训练和计时分析的细节请参见补充材料。

4. Experiments

4.1. Homography Estimation(ted HPatches dataset 1)

在这里插入图片描述
表1:在HPatches [7]上的单应性估计结果。以角点误差的AUC百分比为报告指标。后缀DS表示具有双向softmax的可微匹配。

评估协议。在每个测试序列中,将一个参考图像与其他五个图像配对。所有图像的尺寸调整为较短边等于480像素。对于每对图像,我们使用在MegaDepth数据集[21]上训练的LoFTR提取一组匹配点。我们使用OpenCV计算采用RANSAC作为鲁棒估计器的单应性矩阵估计。为了与产生不同数量匹配点的方法进行公平比较,我们使用角点误差来衡量通过估计的Hˆ对图像进行变换后与真实H之间的差异,与[9]中的正确性指标一致。按照[37]的做法,我们分别报告了3、5和10像素阈值下角点误差累积曲线下面积(AUC)。我们报告LoFTR输出最多1K匹配点时的结果。

基准方法。我们将LoFTR与三类方法进行比较:1)基于检测器的局部特征方法,包括R2D2[32]、D2Net[11]和DISK[47];2)基于检测器的局部特征匹配方法,即SuperGlue[37]在SuperPoint[9]特征上的扩展;3)无需检测器的匹配方法,包括Sparse-NCNet[33]和DRC-Net[19]。对于局部特征方法,我们最多提取2K个特征,并提取相互最近邻作为最终匹配点。对于直接输出匹配点的方法,我们限制最多1K个匹配点,与LoFTR一样。对于所有基准方法,我们使用原始实现中的默认超参数。

结果。表1显示,LoFTR在所有误差阈值下明显优于其他基准方法。具体而言,随着正确性阈值越来越严格,LoFTR与其他方法之间的性能差距增大。我们将顶级性能归因于无需检测器的设计提供的更多匹配候选项以及Transformer带来的全局感受野。此外,粗到精模块通过将匹配点细化到亚像素级别也有助于估计的准确性。

4.2 相对位姿估计

数据集。我们使用ScanNet[7]和MegaDepth[21]数据集分别展示LoFTR在室内和室外场景中进行位姿估计的效果。

ScanNet包含1613个带有地面真实位姿和深度图的单目序列。按照SuperGlue[37]的步骤,我们对训练集采样了230M对图像,其重叠得分在0.4到0.8之间。我们在[37]中的1500个测试图像对上评估我们的方法。所有图像和深度图的尺寸调整为640×480像素。该数据集包含了基线较大和纹理缺失区域较多的图像对。

MegaDepth由196个不同室外场景的100万张互联网图像组成。作者还提供了使用COLMAP[40]进行稀疏重建和使用多视图立体法计算深度图的数据。我们按照DISK[47]的方法,只使用"Sacre Coeur"和"St. Peter’s Square"两个场景进行验证,并从中采样了1500对图像用于公平比较。训练时,图像的较长边被调整为840像素,验证时调整为1200像素。MegaDepth的关键挑战是在极端视点变化和重复纹理的情况下进行匹配。

评估协议。按照[37]的做法,我们报告在阈值为5°、10°和20°时的位姿误差的AUC,其中位姿误差定义为旋转和平移中角度误差的最大值。为了恢复相机位姿,我们使用RANSAC从预测的匹配点中求解本质矩阵。由于无需检测器的图像匹配方法缺乏定义明确的度量(如匹配得分或召回率[13,30]),我们不对LoFTR和其他基于检测器的方法进行匹配精度比较。我们将DRC-Net[19]视为无需检测器方法中的最先进方法[34,33]。
在这里插入图片描述
表2:在ScanNet [7]上对室内位姿估计进行评估。以位姿误差的AUC百分比为报告指标。LoFTR显著改善了现有方法的性能。†表示在MegaDepth上训练的模型。后缀OT和DS分别表示具有最优传输和双向softmax的可微匹配。

表3:在MegaDepth [21]上对室外位姿估计进行评估。LoFTR的匹配结果在室外位姿估计任务中表现更好。
室内位姿估计结果。LoFTR在位姿准确性方面相比所有竞争方法均取得了最佳表现(见表2和图5)。将LoFTR与最优传输或双softmax作为可微匹配层配对,可以达到可比较的性能。由于DRC-Net†提供的模型是在MegaDepth上训练的,我们提供了在MegaDepth上训练的LoFTR†模型的评估结果,以进行公平比较。在这个评估中,LoFTR†也比DRC-Net†获得了更好的性能,表明我们的模型在数据集间具有泛化能力。

室外位姿估计结果。如表3所示,LoFTR在AUC@10°上比无需检测器方法DRC-Net提升了61%,证明了Transformer的有效性。对于SuperGlue,我们使用开源定位工具包HLoc [36]中的设置。LoFTR在AUC@10°上大幅胜过SuperGlue(13%),这证明了无需检测器设计的有效性。与室内场景不同,LoFTR-DS在MegaDepth上的表现优于LoFTR-OT。图5中展示了更多定性结果。

4.3 视觉定位

除了在相对位姿估计方面取得竞争性能外,LoFTR还可用于视觉定位任务,即根据给定图像相对于相应的3D场景模型估计其6自由度位姿。我们在长期视觉定位基准[43]上评估了LoFTR的性能。

**评估。**我们在VisLoc的两个跟踪中评估了LoFTR,这些跟踪包含了几个挑战。首先,“用于手持设备的视觉定位”跟踪需要一个完整的定位流程。它在两个数据集上进行基准测试,分别是涉及室外场景的AachenDay-Night数据集[38,54]和涉及室内场景的InLoc[41]数据集。我们使用开源定位流程HLoc [36]并使用LoFTR提取的匹配点进行评估。其次,“用于长期定位的局部特征”跟踪提供了一个固定的定位流程,用于评估局部特征提取器本身以及可选的匹配器。这个跟踪使用Aachen v1.1数据集[54]。我们在补充材料中提供了LoFTR在VisLoc上的测试实现细节。
在这里插入图片描述

**结果。**我们在表4和表5中提供了LoFTR的评估结果。我们评估了LoFTR与最优传输层或双softmax操作符配对,并报告效果更好的那个结果。LoFTR-DS在局部特征挑战跟踪中优于所有基线方法,在日夜变化下显示出其鲁棒性。然后,对于用于手持设备的视觉定位跟踪,LoFTR-OT在具有挑战性的InLoc数据集上优于所有已发布的方法,该数据集包含大量外观变化、更多无纹理区域和对称、重复元素。我们将这一显著性归因于Transformer和最优传输层的应用,利用全局信息并将全局一致性引入最终匹配点。无需检测器的设计也起着至关重要的作用,解决了基于检测器方法在低纹理区域中出现可重复性问题。LoFTR-OT在Aachen v1.1数据集的夜间查询上与最先进的SuperPoint + SuperGlue方法相媲美,并在白天查询上稍逊一些。

在这里插入图片描述
图5:定性结果。LoFTR在室内和室外环境中与SuperGlue [37]和DRC-Net [19]进行比较。LoFTR获得更多正确的匹配并减少了不匹配,成功应对低纹理区域、大视角和光照变化。红色表示在室内场景中超过5 × 10^(-4)的极线误差,室外场景中超过1 × 10^(-4)的极线误差(以归一化图像坐标表示)。更多定性结果可在项目网页上找到。

在这里插入图片描述
图6:自注意力权重和交叉注意力权重以及转换后的特征可视化。在前两个示例中,来自低纹理区域的查询点能够灵活地聚合周围的全局信息。例如,椅子上的点正在查看椅子的边缘。在最后两个示例中,来自独特区域的查询点还可以利用其他区域更丰富的信息。通过PCA的特征可视化进一步显示LoFTR学习了一种位置相关的特征表示。

4.4. LoFTR的理解
消融实验。为了充分理解LoFTR中的不同模块,我们评估了五个不同的变种,并在表6中展示了结果:1)将LoFTR模块替换为具有相当数量参数的卷积操作,结果如预期地显著降低了AUC。2)使用较小版本的LoFTR,其粗糙和精细级别的特征图分辨率分别为1/16和1/4,导致运行时间为104 ms,并降低了姿态估计的准确性。3)使用DETR-style [3]的Transformer架构,在每一层都具有位置编码,结果显著下降。4)通过将LoFTR层数增加一倍(Nc=8和Nf=2)来增加模型容量,几乎不改变结果。我们使用与室内姿态估计相同的训练和评估协议以及优化的匹配所选取的扫描网络进行这些实验。

注意可视化。我们在图6中可视化了注意力权重。

结论

本文提出了一种新颖的无检测器匹配方法,名为LoFTR,可以通过Transformers在粗到精的方式下建立准确的半密集匹配。所提出的LoFTR模块使用Transformers中的自注意力和交叉注意力层将局部特征转换为上下文和位置相关的特征,这对LoFTR在低纹理或重复模式的不明显区域获得高质量匹配至关重要。我们的实验证明,LoFTR在多个数据集上相对姿态估计和视觉定位方面实现了最先进的性能。我们相信LoFTR为无检测器方法在本地图像特征匹配方面提供了新的方向,并可以扩展到更具挑战性的场景,例如匹配具有严重季节变化的图像。

References

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/820156.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DirectX SDK下载安装及开发环境设置

1 DirectX DirectX(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX可以让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3D图形和声…

15、两个Runner初始化器(ApplicationRunner接口和CommandLineRunner接口的实现类)

两个Runner初始化器 两个Runner初始化器——主要作用是对component组件来执行初始化 这里的Component组件我理解为是被Component注解修饰的类 Component //用这个注解修饰的类,意味着这个类是spring容器中的一个组件,springboot应用会自动加载该组件。 …

python-网络爬虫.regular

regular 正则表达式 (regular expression) 正则表达式(regular expression)描述了一种字符串匹配的模式 (pattern), 可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串 中取出符合某个条件的子串等。 正则表达式是由普通…

gitlab配置webhook

一.前言 当需要做jenkins的自动化触发构建时,就需要配置gitlab的webhook功能,以下来展示以下如何配置gitlab的webhook,jenkins的配置就不在这里展示了,可以去看我devops文章的完整配置 二.配置 在新版本的gitlab中&#xff0c…

MySQL对表的操作以及数据类型

文章目录 创建删除表查看修改重命名表新增列修改列的属性删除列修改列名插入数据 数据类型enum和setenum和set的查找 创建 create table table_name ( field1 datatype, field2 datatype, field3 datatype ) charset 字符集 collate 校验规则 engine 存储引擎;其中field 表示列…

Linux - 环境变量

1.基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但 是照样可以链接成功,生…

超级个体新时代Web3space西南旗舰合伙人招募活动圆满落幕

7月30日,一场备受瞩目的超级个体新时代—Web3space西南旗舰合伙人招募活动在四川省成都市G1咖啡馆会议室成功举办。本次活动吸引了30余位Web3领域的从业者和爱好者参与,现场氛围十分热烈。 首先,CyberDAO执行合伙人JR老师主持了Web3space商业…

【AI实战】开源中文 llama2 来了,30 分钟搭建 130 亿参数大模型 Llama2-Chinese-13b-Chat

【AI实战】开源中文 llama2 来了,30 分钟搭建 130 亿参数大模型 Llama2-Chinese-13b-Chat 简介环境配置环境搭建依赖安装 代码及模型权重拉取拉取 Llama2-Chinese拉取 Llama2-Chinese-13b-Chat 模型权重及代码 终端测试页面测试安装 gradio加载模型并启动服务 国内 …

配置VS Code 使其支持vue项目断点调试

起因 每个应用,不论大小,都需要理解程序是如何运行失败的。当我们写的程序没有按照自己写的逻辑走的时候,我们就会逐步一一排查问题。在平常开发过程中我们可能会借助 console.log 来排查,但是现在我们可以借助 VS Code 断点来调试项目。 前…

Linux下查阅帮助文档必学命令 man

Linux操作系统的使用中,我们经常会遇到很多问题,这个时候查询文档的能力至关重要,黄老师来推荐大家使用man,这时我们必须掌握的查阅能力: 最常用的命令: man 名称 man 数字(1~9) 名称 这里的数字分别代表:

JavaWeb 项目实现(四) 验证旧密码

1.验证旧密码 步骤很简单,从Session中取到当前密码,和修改密码界面得到的旧密码对比,判断是否相等。 特别之处在于实现用到了Ajax,可以不刷新整个页面的情况下与Web服务器进行通信。 2.Ajax Ajax(Asynchronous Java…

使用Gunicorn+Nginx部署Flask项目

部署-开发机上的准备工作 确认项目没有bug。用pip freeze > requirements.txt将当前环境的包导出到requirements.txt文件中,方便部署的时候安装。将项目上传到服务器上的/srv目录下。这里以git为例。使用git比其他上传方式(比如使用pycharm&#xff…

深度学习之用PyTorch实现线性回归

代码 # 调用库 import torch# 数据准备 x_data torch.Tensor([[1.0], [2.0], [3.0]]) # 训练集输入值 y_data torch.Tensor([[2.0], [4.0], [6.0]]) # 训练集输出值# 定义线性回归模型 class LinearModel(torch.nn.Module):def __init__(self):super(LinearModel, self)._…

nodejs安装及多版本安装与TS环境搭建

nodejs安装及多版本安装与TS环境搭建 方法一: 普通安装nodejs,确定只能安装一个。网址:链接: 官网 不同系统下安装:不同系统下的nodejs 方法二: 借助工具nvm,安装多个nodejs,随时切换nodejs版本 什么是…

禁止别人调试自己的前端页面代码

✨ 目录 🎈 为啥要禁止?🎈 无限 debugger🎈 无限 debugger 的对策🎈 禁止断点的对策🎈 忽略执行的代码🎈 忽略执行代码的对策🎈 终极增强防调试代码 🎈 为啥要禁止&#…

简约好看的帮助中心创建案例,赶紧点赞收藏!

在线帮助中心创建案例是提供用户支持和解决问题的有效方式之一。一个简约好看的帮助中心案例能够帮助用户快速找到需要的信息并解决问题,同时也能提升用户体验,增加点赞和收藏的可能性。 帮助中心创建案例分享: 酷学院: 酷渲&a…

item_get-KS-获取商品详情

一、接口参数说明: item_get-根据ID取商品详情 ,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/ks/item_get 名称类型必须描述keyString是调用key(http://o0b.cn/…

‘vite‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

1.切换到工程目录下 2.执行npm install(最关键的一步了!!) 3. 最后直接运行:npm run dev 4.浏览器直接打开就行了!

断网监测网关可以自动重启路由器

网络设备监测系统是一种用于监测远程网络设备状态的设备,它可以通过断网、断电和网线监测等多种方式进行监测。该系统支持同时监测7台网络设备,并且具有1路继电器输出,可以用于自动重启或者远程重启网络设备。 网络设备监测系统内置微型处理器…

VR 变电站事故追忆反演——正泰电力携手图扑

VR(Virtual Reality,虚拟现实)技术作为近年来快速发展的一项新技术,具有广泛的应用前景,支持融合人工智能、机器学习、大数据等技术,实现更加智能化、个性化的应用。在电力能源领域,VR 技术在高性能计算机和专有设备支…