【FeatureBooster】Boosting Feature Descriptors with a Lightweight Neural Network

news/2024/12/29 16:30:06/

这篇论文介绍了一种轻量级网络,用于改进同一图像中关键点的特征描述符。该网络以原始描述符和关键点的几何属性作为输入,使用基于多层感知器(MLP)的自我增强阶段和基于Transformer的交叉增强阶段来增强描述符。增强后的描述符可以是实值或二进制。作者使用提出的网络来增强手工设计的(ORB [36],SIFT [25])和最先进的基于学习的描述符(SuperPoint [11],ALIKE [55]),并在图像匹配、视觉定位和运动结构等任务上进行评估。结果表明,该方法显著提高了每个任务的性能,特别是在光照变化大或重复模式的挑战性情况下。该方法在桌面GPU上仅需3.2毫秒,在嵌入式GPU上需27毫秒即可处理2000个特征,足够快速应用于实际系统。代码和训练权重可在github.com/SJTU-ViSYS/FeatureBooster上公开获取。
在这里插入图片描述

图1所示。ORB描述符在challenge -中表现得非常好在被提议的轻量级网络所推动之后。
左列:使用原始ORB描述符的匹配结果。右列:使用增强ORB描述符的结果。近使用test neighbor search和RANSAC[15]进行匹配

该论文的引言部分介绍了从图像中提取稀疏关键点或局部特征在计算机视觉任务中的重要性,并指出特征描述符在匹配不同图像中的关键点时起着关键作用。手工设计的描述符和基于学习的描述符都在实践中表现良好,但如何改进现有的描述符却鲜有研究。因此,本文提出了一种轻量级网络来增强原始描述符的区分能力,以尽可能少的计算开销实现。该网络利用Transformer将所有关键点的视觉和几何信息整合到各个描述符中,从而提高它们的鲁棒性和区分能力。作者将该方法应用于手工设计的描述符(SIFT [25],ORB [36])和最先进的基于学习的描述符(SuperPoint [11],ALIKE [55]),并在图像匹配、视觉定位和运动结构等任务上进行了评估。实验结果表明,通过使用增强后的描述符,该方法可以显著提高每个任务的性能。由于FeatureBooster不需要处理图像并采用轻量级Transformer,因此它非常高效。在NVIDIA RTX 3090上仅需3.2毫秒,在NVIDIA Jetson Xavier NX(用于嵌入式设备)上需27毫秒即可增强2000个特征,使得该方法适用于实际系统。

相关工作部分介绍了特征描述符的发展历程,包括手工设计的描述符和基于学习的描述符。此外,还介绍了一些改进现有特征描述符的方法,以及特征匹配和特征上下文方面的研究。

论文的方法部分详细介绍了提出的轻量级网络的架构和训练过程。网络通过多层感知器(MLP)和Transformer来增强描述符,并使用平均精度(AP)作为损失函数进行训练。此外,还介绍了一种高效的Attention-Free Transformer(AFT)来替代传统的多头注意力机制,以提高计算效率。

最后,论文通过实验评估了提出的方法在图像匹配、视觉定位和运动结构等任务上的性能,并展示了显著的改进效果

分步骤重新描述原先方法和改进后的方法

原先方法的步骤:

  1. 收集数据:收集所需的数据,包括输入和输出数据。
  2. 数据预处理:对收集到的数据进行清洗、去噪和归一化等预处理操作,以确保数据的质量和一致性。
  3. 特征工程:根据问题的特点和领域知识,对数据进行特征提取、选择和转换,以便更好地表示数据的特征。
  4. 模型选择:根据问题的性质和数据的特点,选择合适的机器学习模型,如决策树、支持向量机、神经网络等。
  5. 模型训练:使用训练数据对选定的模型进行训练,通过调整模型的参数和超参数,使模型能够更好地拟合训练数据。
  6. 模型评估:使用测试数据对训练好的模型进行评估,计算模型的性能指标,如准确率、精确率、召回率等。
  7. 模型优化:根据评估结果,对模型进行优化,如调整模型的结构、增加正则化项、调整学习率等,以提高模型的性能。
  8. 模型部署:将优化后的模型部署到实际应用中,以解决实际问题。

改进后的方法的步骤:

  1. 数据收集和预处理:收集所需的数据,并对数据进行清洗、去噪和归一化等预处理操作。
  2. 特征工程:根据问题的特点和领域知识,对数据进行特征提取、选择和转换,以便更好地表示数据的特征。
  3. 模型选择和训练:根据问题的性质和数据的特点,选择合适的机器学习模型,并使用训练数据对模型进行训练。
  4. 模型评估和优化:使用测试数据对训练好的模型进行评估,并根据评估结果对模型进行优化,以提高模型的性能。
  5. 模型部署和监控:将优化后的模型部署到实际应用中,并进行监控和调优,以确保模型在实际环境中的稳定性和性能。

改进后的方法相比原先方法,主要在模型选择和训练、模型评估和优化以及模型部署和监控等方面进行了改进。通过更加合理的模型选择和训练方法,以及更加准确的模型评估和优化策略,可以提高模型的性能和泛化能力。同时,在模型部署和监控阶段,加强对模型的实时监控和调优,可以确保模型在实际应用中的稳定性和可靠性。

分别详细描述原先方法和改进后的方法的差异以及这么改进的原因?

这篇论文提出了一种轻量级网络来改进图像中关键点的特征描述符。原先的方法是使用手工设计的描述符或学习得到的描述符,但在一些具有挑战性的情况下,如光照变化或重复纹理,它们的性能可能不理想。为了改进这个问题,作者提出了一种轻量级网络,通过自我增强和交叉增强两个阶段来提升描述符的性能。

在自我增强阶段,网络将原始描述符和关键点的几何属性作为输入,使用基于多层感知器(MLP)的自我增强阶段和基于Transformer的交叉增强阶段来增强描述符。增强后的描述符可以是实值或二进制的。在交叉增强阶段,作者使用Transformer来捕捉来自同一图像中提取的稀疏局部特征的空间上下文线索。通过整合全局上下文信息,局部特征描述符的可区分性可以得到改善。

作者通过实验证明,他们的方法在图像匹配、视觉定位和运动结构等任务中显著提高了性能,尤其是在具有挑战性的情况下。此外,该方法在处理2000个特征时只需要3.2毫秒的时间,足够快速应用于实际系统。

改进的原因是为了提高关键点的描述符性能,特别是在具有挑战性的情况下。通过引入轻量级网络和自我增强、交叉增强两个阶段,可以在不改变现有硬件和软件的情况下提升描述符的性能。

2. Related work

特征描述子:长期以来,手工设计的描述子是常用的方法。SIFT [25] 和 ORB [36] 是最著名的手工设计的描述子,在许多三维计算机视觉任务中仍被广泛使用,因为它们具有良好的性能和高效率。手工设计的描述子通常从局部区域提取,这限制了它们在更高层次上的表示能力。随着深度学习的发展和带注释的局部图像数据集的出现 [7],学习型描述子得到了广泛研究。大多数基于学习的局部描述子采用了L2-Net [46] 中引入的网络架构,并使用不同的损失函数进行训练,例如三元组损失 [29, 45, 47]、N对损失 [46] 和列表排序损失 [18]。学习型密集描述子 [11, 13, 17, 31, 35, 52] 可以利用整个图像中除了局部区域之外的信息,因为它们通常是使用卷积神经网络从整个图像中提取的,因此在大视角和光照变化下展现出优异的性能。虽然已经发明了许多描述子,但如何增强现有描述子的能力却受到了很少的关注,尤其是通过学习的方法。

改进现有特征描述子:已经发现通过非线性变换将现有描述子投影到另一个空间可以获得更好的匹配结果 [34]。RootSIFT [2] 表明,仅对归一化后的SIFT描述子的每个元素取平方根可以改善匹配结果。除了提高区分度之外,一些工作还试图通过减少描述子的维度来压缩描述子,例如PCA-SIFT [20] 和 LDAHash [42]。最近的一项工作 [12] 训练了一个网络,将不同类型的描述子映射到一个公共空间中,从而可以进行描述子之间的匹配。我们的工作与这一研究领域的核心思想相同,但旨在利用轻量级神经网络增强现有描述子的区分能力

特征匹配:一旦获得了特征描述子,通常会通过最近邻搜索来找到图像之间的对应关系。可以通过采用一些技巧(如互相检查、Lowe的比值测试 [25] 和RANSAC [15])来过滤掉错误的匹配。然而,最近邻搜索忽略了特征之间的空间和视觉关系,通常会产生嘈杂的匹配结果。为了解决这个问题,SuperGlue [38] 训练了一个关注图神经网络,通过将来自不同图像的两组局部特征进行相关性计算来预测对应关系。我们的方法在很大程度上受到SuperGlue的启发,但并不尝试改进匹配过程。相反,它增强了单个图像中的特征描述符,以便可以使用简单的最近邻搜索产生具有竞争力的结果。因此,我们的方法可以无缝地集成到许多现有流水线中,如BoW(词袋模型)[16] 的实现。

特征上下文:图像中特征位置和描述子的分布形成了一个全局上下文,这对于特征匹配是有帮助的,正如SuperGlue [38] 中所展示的那样。本文的目标是将全局上下文信息整合到原始描述子中,以增强它们的区分能力,而不是从头开始学习来描述图像。与我们的方法最接近的工作是SConE [49] 和ContextDesc [26]。SConE [49] 开发了一个星座嵌入模块,将一组相邻的特征(包括原始描述子和它们的空间布局)转换为新的描述子。该模块设计用于特定类型的描述子(FREAK [1])。ContextDesc [26] 使用两个MLP将视觉上下文和几何上下文编码为全局特征,以改善局部描述子。但它需要使用额外的CNN从原始图像中提取高级特征来构建视觉上下文。

与此相比,我们的方法仅将描述符和几何信息(如2D位置)作为输入,并使用轻量级Transformer聚合它们以生成新的描述符。新的描述符可以是二进制或实值的,可以无缝地集成到现有的视觉定位、SLAM和结构运动系统中。不需要处理原始图像使得我们的方法非常高效,并且可以在嵌入式GPU设备上实时运行。

3. 算法框架

  1. 概述
    图2. 提出的FeatureBooster流程包括自我增强和交叉增强两个阶段。自我增强阶段通过应用MLP将关键点的几何属性进行编码,并将其与另一个MLP投影的新描述符进行结合。在交叉增强阶段,整个图像中的所有关键点的几何编码描述符被送入一个轻量级Transformer中生成增强描述符。最后,增强描述符被用于特征匹配。

3. 概述

我们提出了一种轻量级网络,通过对从图像中提取的一些现有关键点检测器提取的关键点的特征向量(或描述符)进行增强,如图2所示。它仅使用特征描述符以及几何信息(例如特征位置、方向和尺度)作为输入,并输出比原始描述符更强大得多的新描述符。新的描述符可以是实值向量或二进制向量,可能与原始描述符不同。我们的特征增强器不需要处理从中提取这些关键点的图像,这使得我们的模型轻巧高效,并且可以更容易地集成到现有的运动结构或SLAM系统中。不需要访问原始图像也使我们的方法能够重用已经使用某些类型特征构建的3D地图。

该提出的流程包括两个步骤:自我增强和交叉增强。自我增强是指使用轻量级MLP网络将原始特征向量投影到新空间中。它还编码了几何信息,如2D位置、检测分数和方向/尺度,以提高描述符的质量。之后,交叉增强利用其他特征的描述符和所有特征的空间布局来进一步增强各个描述符,使用轻量级Transformer实现。所提出的网络通过使用包含基于排名的检索损失和增强损失的损失函数进行端到端训练。

3.1. 自我增强
对于在图像中检测到的每个关键点i,我们可以获得其视觉描述符di,这是一个D维的实值或二进制向量。特征描述符然后用于通过测量它们的相似性建立图像之间的对应关系。强大的描述符应该对视点和光照变化具有鲁棒性,以产生正确的匹配结果。已经开发了许多描述符,包括手工制作的方法(如ORB [36]、SURF [4]和SIFT [25])以及更先进的基于学习的方法(如SuperPoint [11])。然而,这些描述符仍然存在一些问题。

对于手工制作的描述符,第一个问题是描述符空间中的相似度度量对于特征匹配来说不是最优的。这在[2]中已经注意到,在那里使用Hellinger距离来衡量SIFT的相似性,而不是使用欧氏距离,可以获得更好的匹配性能。从[34]可以看出,改变相似度度量等价于将原始描述符投影到另一个空间中。这激励我们使用MLP(多层感知器)将原始描述符映射到新的描述符中。

MLP是一个通用的函数逼近器,正如Cybenko的定理所示[10]。因此,我们可以使用MLP来近似投影函数,我们称之为MLPdesc。关键点i的变换后的描述符 d t r i dtr_i dtri是提取的描述符 d i di di的非线性投影:
d t r i ← M L P d e s c ( d i ) ( 1 ) dtr_i ← MLPdesc(di) (1) dtriMLPdesc(di)(1)

鉴于网络的训练阶段受到欧几里得距离或汉明距离约束的损失函数的引导,这种基于MLP的模型使得变换后的描述符能够很好地适应在欧氏或汉明空间中衡量相似性的目的,特别适用于手工制作的描述符。然而,这种投影并没有利用有价值的关键点几何信息,这对于匹配非常有价值。因此,我们还使用另一个MLP(MLPgeo)将几何信息嵌入到高维向量中以进一步改进描述符。我们不仅编码关键点的2D位置(xi, yi),还包括其他信息,如尺度si、方向θi和检测分数ci(如果有的话)。将高维嵌入的几何信息添加到变换后的描述符中:
d t r i ← d t r i + M L P g e o ( p i ) ( 2 ) dtr_i ← dtr_i + MLPgeo(pi) (2) dtridtri+MLPgeo(pi)(2)
这里, p i = ( x i , y i , c i , θ i , s i ) pi = (xi, yi, ci, θi, si) pi=(xi,yi,ci,θi,si) 表示前面提到的所有可用几何信息。

3.2. 交叉增强
自我增强在不考虑不同关键点之间的可能相关性的情况下独立地增强每个关键点的描述符。例如,它不利用这些关键点之间的空间关系,而空间上的上下文线索可以极大地提高匹配能力,如[38]所示。因此,自我增强阶段产生的增强描述符仅限于局部上下文,并且在某些具有挑战性的环境下(例如重复模式或纹理较弱的场景)仍然表现不佳。为了解决这个问题,我们通过交叉增强阶段进一步处理这些描述符。

受到SuperGlue [38]的启发,我们使用Transformer来捕捉从同一图像中提取的稀疏局部特征的空间上下文线索。我们将Transformer表示为Trans,并描述投影为:
( d t r 1 , d t r 2 , . . . d t r N ) ← T r a n s ( d t r 1 , d t r 2 , . . . d t r N ) ( 3 ) (dtr_1, dtr_2, . . . dtr_N) ← Trans(dtr_1, dtr_2, . . . dtr_N) (3) (dtr1,dtr2,...dtrN)Trans(dtr1,dtr2,...dtrN)(3)
其中Transformer的输入是同一图像中的N个局部特征,输出是增强的特征描述符。与基于MLP的投影(参见式(1))**相比,基于Transformer的投影同时处理了同一图像中的所有局部特征。借助Transformer中的注意机制,所有局部特征的信息可以汇聚起来形成全局上下文。通过整合这个全局上下文信息,局部特征描述符可能具有更大的感受野,并根据它们的邻居(或在特征匹配情况下的竞争者)进行调整。因此,它们的可区分性可以得到改善,特别是对于从重复模式中提取的局部特征,**如图1所示。(实现机制机理)

使用Transformer的最大问题是其注意机制需要高内存和计算成本。(具体的数值取决于模型的大小和输入序列的长度。较大的模型和较长的输入序列会导致更高的内存和计算需求。例如,一个大型的Transformer模型可能需要数十GB的内存和数千亿次的浮点运算来完成一次前向传播。这使得在资源受限的环境中使用Transformer变得困难。为了解决这个问题,研究人员提出了一些优化方法,如稀疏注意机制和压缩技术,以减少注意机制的内存和计算成本。)Transformer编码器层由两个子层组成:一个注意层和一个位置级全连接前馈网络。经典的Transformer [51]使用多头注意力(MHA)层。给定输入 X ∈ R N × D X ∈ R N×D XRN×D,其中第i行是关键点i的D维特征向量,X的第h个头注意力定义为:
f h ( X ) = s o f t m a x ( Q h K h / D k ) V h , s . t . Q h = X W Q h , K h = X W K h , V h = X W V h ( 4 ) fh(X) = softmax (Q_hK_h/Dk)V_h, s.t. Q_h = X{W^Q}_h, K_h = X{W^K}_h, V_h = X{W^V}_h (4) fh(X)=softmax(QhKh/Dk)Vhs.t.Qh=XWQhKh=XWKhVh=XWVh(4)
其中 W Q h ∈ R D × D k , W K h ∈ R D × D k , W V h ∈ R D × D v {W^Q}_h ∈ R^{D×D_k},{W^K}_h ∈ R^{D×Dk},{W^V}_h ∈ R^{D×Dv} WQhRD×DkWKhRD×DkWVhRD×Dv
是第h个头的线性投影。

在这里插入图片描述图3。注意层的不同架构。(a)vanilla Transformer中的注意力层。(b)无注意力变压器(AFT-simple),其中只需要按元素进行乘法。

图3(a)说明了点积注意力的计算图。多头注意力的输出是沿通道维度连接的所有注意力头输出的串联。

MHA使用注意矩阵实现查询和值之间的全局交互。注意矩阵的计算依赖于查询和键之间的矩阵点积,导致随着上下文规模的增加而引入的时间和空间复杂度为O(N)然而,对于大规模的特征集合,例如从图像中提取的上千个关键点,使用传统的Transformer来进行注意力计算会变得非常昂贵。为了解决这个问题,我们采用了轻量级的方法,称为LinFormer [33]。LinFormer是一种基于线性变换的轻型Transformer,它通过降低维度和引入局部感受野限制来减少计算和内存需求。具体来说,LinFormer首先将输入特征向量投影到低维空间,然后在局部感受野内计算注意力。最后,通过反向映射将低维特征映射回原始空间。这种简化的方法在保持性能的同时大幅减少了计算和存储开销。

注意力自由变换:为了解决我们的情况下的可扩展性问题,我们提出使用高效的注意力自由变换(具体为AFT-Simple)[53]来替代Vanilla Transformer中的MHA操作。与MHA或最近的线性化注意力[19]不同,注意力自由变换(AFT)不使用或近似点积注意力。具体来说,AFT重新排列了Q、K和V的计算顺序,就像线性注意力那样,但是将K和V进行逐元素乘法,而不是使用矩阵乘法。关键点i的注意力自由变换可以表述为:
在这里插入图片描述

其中σ(·)是Sigmoid函数;Qi表示Q的第i行;Kj,Vj表示K、V的第j行。AFT-Simple执行了MHA操作的修订版本,其中注意力头的数量等于模型的特征维度D,并且MHA中使用的相似性被一个核函数sim(Q, K) = σ(Q) · softmax(K)所取代。通过元素级乘法而不是矩阵乘法计算注意力,从而导致时间和空间复杂度与上下文和特征大小呈线性关系(O(ND))。图3(b)展示了AFT-Simple的计算图。

3.3. 损失函数
与之前的工作[18, 35]一样,我们将描述符匹配问题视为最近邻检索,并使用平均准确率(Average Precision,AP)来训练描述符。
考虑到转换后的局部特征描述符 dtr = (dtr1, …, dtrN),我们希望最大化所有描述符的AP[6],我们的训练目标是最小化以下成本函数:
L A P = 1 − 1 / N ∗ Σ N i A P ( d t r i ) ( 6 ) LAP = 1 - 1/N * ΣN i AP(dtri) (6) LAP=11/NΣNiAP(dtri)(6)
为了确保原始描述符被增强,我们提出使用另一个损失来强制转换后的描述符的性能优于原始描述符:
L B O O S T = 1 / N ∗ Σ N i m a x ( 0 , A P ( d i ) / A P ( d t r i ) − 1 ) ( 7 ) LBOOST = 1/N * ΣN i max(0, AP(di)/AP(dtri) - 1) (7) LBOOST=1/NΣNimax(0,AP(di)/AP(dtri)1)(7)
最终损失是上述两个损失的总和:
L = L A P + λ L B O O S T ( 8 ) L = LAP + λLBOOST (8) L=LAP+λLBOOST(8)
其中λ是用于调节第二项的权重。我们使用可微分方法(FastAP [9])来计算每个描述符的平均准确率(AP)。
给定第一幅图像中的转换后描述符 d t r i ∈ R 1 × D dtri ∈ R1×D dtriR1×D,以及第二幅图像中的描述符集合 d 0 t r ∈ R N × D d0tr ∈ RN×D d0trRN×D。通过使用关于匹配对的真实标签 M = M + , M − M = {M+,M-} M=M+M 和值域为 Ω 的成对距离向量 Z ∈ RN 来计算 FastAP。通过使用距离量化,Ω可以作为一个具有 b 个元素的有限集进行量化, Ω = z 1 , z 2 , . . . , z b Ω = {z1,z2,...,zb} =z1z2...zb,然后精度和召回率可以重构为距离 z 的函数:
P r e c ( z ) = P ( M + ∣ Z < z ) ( 9 ) Prec(z) = P(M+|Z < z) (9) Prec(z)=P(M+Z<z)(9)
R e c ( z ) = P ( Z < z ∣ M + ) ( 10 ) Rec(z) = P(Z < z|M+) (10) Rec(z)=P(Z<zM+)(10)
其中 P ( M + ∣ Z < z ) P(M+|Z < z) P(M+Z<z) 表示在 Z < z 条件下正匹配 M+ 的先验分布, P ( Z < z ∣ M + ) P(Z < z|M+) P(Z<zM+) 是 Z 的累积分布函数(CDF)。最后,AP 可以通过精度-召回率曲线 P R z ( d t r i ) = ( P r e c ( z ) , R e c ( z ) ) , z ∈ Ω PRz(dtri) = {(Prec(z),Rec(z)),z ∈ Ω} PRz(dtri)=(Prec(z)Rec(z))z的面积来近似表示:
F a s t A P = ∫ Ω P r e c ( z ) d R e c ( z ) d z ( 11 ) FastAP = ∫ Ω Prec(z)dRec(z) dz (11) FastAP=Prec(z)dRec(z)dz(11)
关于 FastAP 的更多详细信息可参考 [9]。关于匹配 M 的真实标签可以使用真实姿态和深度图获取。请注意,对于实值描述符和二进制描述符,计算距离向量 Z 的方法是不同的。

3.4. 不同类型的描述符
我们可以通过使用不同的方法计算距离向量 Z,训练我们的模型将描述符提升为二进制和实值形式。

实值描述符:我们对FeatureBooster的最后一层的输出向量应用L2归一化,可以计算出成对距离向量 Z:
Z = 2 − 2 d t r i ( d 0 t r ) ( 12 ) Z = 2 - 2dtr_i(d0tr) (12) Z=22dtri(d0tr)(12)
在这种情况下,Z的取值范围是[0, 4],我们将Ω量化为包含10个元素的有限集。

二进制描述符:我们首先使用tanh将FeatureBooster的最后一层的输出向量阈值化到[-1, 1]。然后,将输出向量二值化为{-1, 1}。然而,二值化没有定义真正的梯度。我们的解决方案是使用直通估计器(straight-through estimator)[5]将梯度从二值化向量复制到未二值化的向量。最后,成对距离向量 Z 可以得到如下计算:
Z = 1 / 2 ∗ ( D − d t r i ( d 0 t r ) > ) ( 13 ) Z = 1/2 * (D - dtr_i(d0tr)>) (13) Z=1/2(Ddtri(d0tr)>)(13)
对于汉明距离,Z的取值是{0, 1, …, D}中的整数,AP可以通过在FastAP中将 b = D 计算得到闭合形式。然而,我们将 b 设置为 10,以在匹配描述符和非匹配描述符之间得到更大的间隔,参考[9]中的讨论。

  1. 实验结果
    我们在几个常用的关键点检测和描述任务上评估了我们的特征增强器。结果显示,与基线方法相比,我们的方法在关键点匹配、图像定位和三维重建等任务中获得了显著的改进。
    在这里插入图片描述图4。HPatches中的MMA曲线(越高越好)和平均匹配点数(越大越好)。结果展示我们的功能增强器可以提高所有功能的性能。Boost-F和Boost-B表示实数增强和分别是二进制提升的描述符。

具体来说,在关键点匹配任务中,我们的方法在不同的基准数据集上均实现了更高的正确匹配率。在图像定位任务中,我们的方法能够更准确地估计图像之间的转换,从而提高定位的准确性。在三维重建任务中,我们的方法生成的特征描述符在建立3D地图时能够提供更好的特征匹配和几何一致性。

此外,我们还进行了与其他先进方法的对比实验,结果表明我们的特征增强器在各项任务中都取得了最先进的性能。

自我增强阶段通过使用多层感知机(MLP)对每个关键点的几何属性进行编码,并将其与另一个MLP投影的新描述符相结合。这样可以将高维嵌入的几何信息添加到转换后的描述符中。

交叉增强阶段使用一个轻量级的Transformer来捕捉来自同一图像中提取的稀疏局部特征的空间上下文线索。Transformer的输入是同一图像中的N个局部特征,输出是增强的特征描述符。通过Transformer的注意力机制,所有局部特征的信息可以聚合起来形成全局上下文。通过整合这种全局上下文信息,局部特征描述符可以具有更大的感受野,并根据其邻居(或在特征匹配中的竞争对手)进行调整。因此,它们的可区分性可以得到改善,特别是对于从重复模式中提取的局部特征。

总结起来,自我增强阶段通过MLP编码几何属性来增强描述符,而交叉增强阶段通过Transformer捕捉空间上下文线索来进一步增强描述符。这种方法可以应用于各种类型的描述符,并在图像匹配、视觉定位和结构运动等任务中显著提高性能。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 结论
    在本文中,我们提出了一种轻量级网络,用于增强从图像中提取的关键点的特征描述符。我们的方法通过自我增强和交叉增强两个步骤来提高描述符的质量,并使用端到端的训练来优化网络参数。实验结果显示,我们的方法在关键点匹配、图像定位和三维重建等任务中都获得了显著的改进。未来的研究方向包括进一步改进网络架构和优化算法,以提高性能和效率,并在更广泛的应用领域进行验证。
    在这里插入图片描述
    在这里插入图片描述

http://www.ppmy.cn/news/1033161.html

相关文章

Golang 程序性能优化利器 PGO 详解(二):收集样本数据和编译

在软件开发过程中&#xff0c;性能优化是不可或缺的一部分。无论是在Web服务、数据处理系统还是实时通信中&#xff0c;良好的性能都是至关重要的。Golang 从1.20版版本开始引入的 Profile Guided Optimization&#xff08;PGO&#xff09;机制能够帮助更好地优化 Go 程序的性能…

Python技巧----解压序列/可迭代对象赋值给多个变量

1 、解压序列赋值给多个变量 我们这里说的不是正常情况的一一赋值比如下面 >>> data = [ ACME, 5, 9, (2012, 12, 1) ] >>> name, shares, price, date = data >>> name ACME

React源码解析18(5)------ 实现函数组件【修改beginWork和completeWork】

摘要 经过之前的几篇文章&#xff0c;我们实现了基本的jsx&#xff0c;在页面渲染的过程。但是如果是通过函数组件写出来的组件&#xff0c;还是不能渲染到页面上的。 所以这一篇&#xff0c;主要是对之前写得方法进行修改&#xff0c;从而能够显示函数组件&#xff0c;所以现…

应用在家庭影院触摸屏中的高性能低功耗触摸芯片

家庭影院的主要思想是获得清晰的画面和令人惊叹的环绕声。这可以通过多个电子元件的组合轻松实现&#xff0c;为您提供真正的剧院体验。家庭影院系统所需的电子设备&#xff0c;主要有&#xff1a;扬声器、电视或投影仪、媒体设备和接收器。这些设备以不同的方式工作&#xff0…

应用层协议——TCP(上)

文章目录 1. TCP协议1.1 TCP协议段格式1.2 确认应答(ACK)机制1.3 16位窗口大小1.4 6位标志位1.4.1 TCP三次握手 1.5 确认应答(ACK)机制1.6 超时重传机制1.7 连接管理机制1.7.1 理解TIME_WAIT状态1.7.2 理解 CLOSE_WAIT 状态 1. TCP协议 TCP全称为传输控制协议&#xff0c;意思…

SPSS多元线性回归操作入门实例

做农情反演的时候往往需要用到SPSS多元线性回归&#xff0c;这里提供一个操作案例 (一)SPSS安装 关于SPSS安装&#xff0c;请参考本人博客&#xff1a;保姆级SPSS图文安装教程_追忆苔上雪的博客-CSDN博客 (二)SPSS多元线性回归实例 在文章ArcGIS入门操作手册_追忆苔上雪的博…

selenium 爬虫

selenium 可以动态爬取网页数据&#xff0c;就像真实用户操作浏览器一样&#xff0c;从终端用户的角度测试应用程序&#xff0c;WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器 webdriver下载 因为selenuim对浏览器的版本存在兼容问题&#xff0c;顾需要针对指定浏…

使用Pandas进行数据清理的入门示例

数据清理是数据分析过程中的关键步骤&#xff0c;它涉及识别缺失值、重复行、异常值和不正确的数据类型。获得干净可靠的数据对于准确的分析和建模非常重要。 本文将介绍以下6个经常使用的数据清理操作&#xff1a; 检查缺失值、检查重复行、处理离群值、检查所有列的数据类型…