专栏名称: 自动驾驶之心
自动驾驶开发者社区,关注计算机视觉、多维感知融合、部署落地、定位规控、领域方案等,坚持为领域输出最前沿的技术方向!
目录
相关文章推荐
中国证券报  ·  重要指数调整,事关A股! ·  昨天  
DataEye短剧观察  ·  DataEye短剧热力榜:6部短剧播放超3亿 ... ·  昨天  
DataEye短剧观察  ·  DataEye短剧热力榜:6部短剧播放超3亿 ... ·  昨天  
上海证券报  ·  凌晨,重要调整!事关A股 ·  昨天  
郁言债市  ·  短久期城投债,配置正当时 ·  2 天前  
51好读  ›  专栏  ›  自动驾驶之心

最强“胶水”MambaGlue来了:卓越速度+性能提升的局部特征匹配

自动驾驶之心  · 公众号  ·  · 2025-02-08 07:30

正文

点击下方 卡片 ,关注“ 3D视觉之心 ”公众号

第一时间获取 3D视觉干货

>> 点击进入→ 3D视觉之心技术交流群

基于模型的方法如何加速

特征匹配是计算机视觉中多个几何任务的关键组成部分,这些任务涉及在 3D 地图中的图像点之间建立对应关系,例如视觉定位、同步定位与建图(SLAM)、运动结构恢复(SfM)等。通常,这些视觉技术通过匹配图像对中检测到的局部特征来实现,其中描述子向量用于编码其视觉外观。为了实现成功匹配,这些描述子必须既具备可重复性,又具备可靠性。然而, 诸如无纹理环境、光照变化和视角变化等挑战使得生成唯一且具备区分度的描述子变得困难

为了解决不完美特征描述子的不足,研究人员提出了多种基于深度学习的方法。近年来,Transformer 架构已成为视觉应用中的事实标准,包括特征匹配任务。其中,LoFTR作为一种无检测器的稠密局部特征匹配模型,通过在粗到细匹配过程中使用 Transformer,与之前的方法相比,显著提高了匹配精度。然而,该方法在需要低延迟的应用(如 SLAM)中表现较慢。此外,SuperGlue和 LightGlue等稀疏特征匹配方法也被提出,它们同样采用基于 Transformer 的架构来学习图像对之间的匹配,并在室内外环境下展示了鲁棒的特征匹配性能,同时在速度和准确性之间取得了一定的平衡。然而, Transformer 模型的性能仍然伴随着较大的计算资源需求和训练难度

与此同时,Mamba作为一种高效处理序列数据的新兴架构被提出。由于其能够选择性地关注输入序列中的不同部分, Mamba 已被应用于语言和视觉任务,并在训练和推理速度上表现优异,具有较强的性能优势

本文介绍一种基于 Mamba 的局部特征匹配模型,称为 MambaGlue [1],它结合了 Mamba 和 Transformer 架构的优点。MambaGlue 通过 Mamba 架构的选择性输入关注能力,改进了整个模型的各层性能。此外,我们提出了一种网络结构,该网络可预测当前层估计的匹配对应关系的可靠性。通过这种方式,该模块允许 MambaGlue 在适应图像对匹配难度的同时,决定是否提前终止迭代,从而减少不必要的计算成本。我们的新颖方法通过精确适应特征匹配的难度,在低延迟的前提下实现了显著的精度提升。

项目链接 :https://github.com/url-kaist/MambaGlue

主要贡献

  • MambaAttention Mixer :提出了一种新型的 MambaAttention mixer 块,该块利用 Mamba 架构的选择性输入关注能力,并结合注意力机制,以提升各层的性能。
  • 深度置信度分数回归器(Deep Confidence Score Regressor) :进一步提出了一种基于多层感知机(MLP)的网络,该网络可以预测置信度分数,从而评估某个特征点是否可以可靠匹配。
  • 优化的匹配性能 :在保持低延迟的同时,相较于最新的基准方法,实现了优越的匹配性能。
  • 混合架构的优越性 :值得注意的是,MambaGlue 作为一种 Mamba 和 Transformer 结合的简单混合方案, 优于当前最先进的稀疏特征匹配方法

MambaGlue 架构

MambaGlue 特征匹配方法的整体框架,如 图 2 所示。MambaGlue 主要由 N 个相同的层级 组成的堆叠层流水线(stacked layer pipeline)构成。输入由 两幅图像 A 和 B 中的局部特征集 组成。我们分别将 A 和 B 的特征集表示为 (F_A) 和 (F_B),其定义如下:

其中,(i) 和 (j) 分别表示图像 A 和 B 的特征索引,(N_A) 和 (N_B) 分别为 A 和 B 中的特征点数量,即 (|A| = N_A) 和 (|B| = N_B)。为了简化表示,我们用 (p^I_q) 和 (d^I_q) 分别表示特征点的位置和 d 维描述子,其中 (I \in {A,B})。

这些局部特征按照以下顺序依次通过流水线的各层:

  1. MambaAttention Mixer (MambaAttention 混合模块)
  2. Cross-Attention (交叉注意力)
  3. Deep Confidence Score Regressor (深度置信度分数回归器)

这三个模块协同工作,以增强特征描述子的表达能力。
在第 n 层((L_n))的末尾,深度置信度分数回归器会输出一个 置信度分数集合 (c_n),用于预测当前层匹配预测的可靠性。具体来说,该置信度分数集合定义如下:

其中,(K_n) 是第 (n) 层中所有特征点的索引集合,即 (|K_n| \leq |N_A| + |N_B|)。

接下来,系统会执行 退出测试(Exit Test) ,以决定是否终止迭代,从而减少不必要的计算成本:

  • 如果足够多的特征点具有较高的置信度,则 MambaGlue 停止迭代 并执行最终的特征匹配;
  • 否则,进入 特征点剪枝(Feature Pruning) ,移除可能不可靠的特征点,并进入下一层计算。

当系统确定已经找到足够的匹配点时,迭代终止,并执行最终的匹配步骤,输出最终匹配结果集合:

特征剪枝和匹配步骤的退出测试与 LightGlue相同,但 MambaGlue 提供了更高的精度和更强的鲁棒性。

MambaAttention Mixer

受 MambaVision 的启发,我们提出了一种基于 Mamba 的自注意力块,称为 MambaAttention Mixer。该模块的设计如图 3(b) 所示,主要由三个分支组成:

  1. 自注意力(Self-Attention)分支 ,结合位置编码(Positional Encoding)来处理特征点的位置信息;
  2. 直接连接输入的分支 ,用于保留原始特征信息,避免信息损失;
  3. Mamba 计算路径 ,借鉴 MambaVision 结构,以增强模型对长距离依赖关系的捕捉能力。

上述三条信息路径的结合,使 MambaAttention Mixer 既能全局感知特征信息,又能选择性地关注最相关的输入,从而提高匹配的准确性和鲁棒性。

在每一层(见图 2(b))中,MambaAttention Mixer 和交叉注意力(Cross-Attention)交替作用。我们为目标图像 I 的每个局部特征点分配一个状态向量 ,并初始化为其对应的描述子:

随后,该状态经过 MambaAttention Mixer 和交叉注意力模块的更新。

在 MambaAttention Mixer 计算过程中,每个点的特征状态 会被更新为:

其中:

  • ([ \cdot \mid \cdot ]) 表示向量拼接;
  • 是 MambaAttention Mixer 提取的信息;
  • 交叉注意力模块(Cross-Attention)用于聚合来自匹配图像的信息,而 MambaAttention Mixer 主要用于从当前图像的局部特征中提取信息。

MambaAttention Mixer 计算的信息 由三部分组成:

其中:

  • 是基于自注意力计算得到的全局特征;
  • 来自 Mamba 计算路径,分别用于增强短程和长程特征的表达能力。

具体来说, 通过标准的自注意力机制计算:

其中:

  • 是投影矩阵;

  • 是注意力权重,定义为:

    其中 分别是通过线性变换得到的键(Key)和查询(Query)向量, 是旋转位置编码(Rotary Position Encoding)。

在 Mamba 计算路径中,我们定义一个特征编码函数 来表示经过卷积和激活函数处理后的特征表示:

其中:

  • (\text{Linear}(d_{in}, d_{out})) 表示输入维度为 ,输出维度为 的线性变换;
  • (\text{Conv}(\cdot)) 表示一维卷积操作;
  • (\sigma) 是 Sigmoid 线性单元(SiLU)激活函数。

利用该编码函数,我们计算

其中,(\text{Scan}(\cdot)) 是选择性扫描操作(Selective Scan Operation),用于高效提取输入序列中的最相关片段。

通过将 MambaAttention Mixer 与交叉注意力模块结合,MambaGlue 既能全局捕捉特征点之间的长距离依赖关系,又能局部关注匹配点的信息,从而提高特征匹配的精度和计算效率。

退出测试以实现提前终止

我们采用退出测试来进行高效的提前终止,以减少不必要的计算成本。当用户启用该功能时,该模块可以在检测到当前迭代已经产生足够数量的可靠匹配点时提前停止计算,从而降低推理开销。

假设某个点在图像 A 或 B 中的置信度分数为 ,如果其置信度超过某个用户定义的阈值 ,则认为该点是 可信的 ,即:

退出测试 在每一层的末尾执行,定义如下:







请到「今天看啥」查看全文