【论文笔记】MambaGlue: Fast and Robust Local Feature Matching With Mamba
【引用格式】:Ryoo K, Lim H, Myung H. MambaGlue: Fast and Robust Local Feature Matching With Mamba[J]. arXiv preprint arXiv:2502.00462, 2025.
【网址】:https://arxiv.org/pdf/2502.00462
【开源代码】:https://github.com/uri-Kaist/MambaGlue
【PPT】:https://download.csdn.net/download/Word_And_Me_/90409456
目录
一、瓶颈问题
二、本文贡献
三、解决方案
1、输入特征与初始化
2、单层处理流程
1)MambaAttention Mixer
a)MambaAttention Mixer(上图(b))
b)交叉注意力模块
2)深度置信分数回归器
3)Exit Test机制
3、损失函数
四、实验结果
1、Homography Estimation
2、Relative Pose Estimation
3、Outdoor Visual Localization
4、Ablation Study
一、瓶颈问题
- 效率与鲁棒性的权衡:现有基于Transformer的局部特征匹配方法(如SuperGlue、LightGlue)虽然鲁棒,但计算复杂度高(随关键点数量平方增长),难以满足实时性需求(如SLAM、视觉定位)。
- 特征描述符的局限性:传统方法依赖独立特征检测器和描述符,难以应对光照变化、弱纹理场景和视角差异,导致匹配错误率较高。
二、本文贡献
- MambaAttention Mixer模块:结合Mamba架构(选择性状态空间模型)与自注意力机制,同时捕捉全局和局部上下文,显著提升特征表达能力。
- 深度置信分数回归器:基于多层感知机(MLP)设计,动态评估匹配置信度,支持早期停止机制(Exit Test),减少冗余计算。
- 高效混合架构:并行融合Mamba与Transformer,在保持高精度的同时实现线性时间复杂度,显著降低推理延迟。
三、解决方案

MambaGlue的核心架构由多层堆叠结构组成,每层通过三个关键模块处理特征:MambaAttention Mixer、交叉注意力(Cross-Attention)和深度置信分数回归器。
1、输入特征与初始化
系统的输入由图像A和B的两组局部特征组成,将A和B的特征集分别表示为和
,表示如下:
其中,和
分别是图像A和B上的特征数;为简单起见,
或
中任意 q 特征点和 d 维描述符分别记为
和
,
。
每个关键点的状态初始化为对应的描述符:
2、单层处理流程
每一层的具体流程可见上图(b)所示
1)MambaAttention Mixer

受 MambaVision [MambaVision: A hybrid mamba- transformer vision backbone](见上图 (a))的启发,文中首先提出了一个基于 Mamba 的自注意模块,称为 MambaAttention Mixer。如上图 (b)所示,MambaAttention 混合器由一个自注意区块、一个直接连接的输入区块和一个基于 Mamba 的区块组成。自注意和 Mamba 的结合允许对输入标记进行全局和选择性扫描。之后,MambaAttention Mixer和交叉注意块的组合构成了系统每一层的重要组成部分。
a)MambaAttention Mixer(上图(b))
自注意区块:编辑全局相对位置关系,计算公式如下:


其中,W为投影矩阵;R为相对位置之间的旋转编码;q和k是从状态向量通过不同的线性变换得到的查询向量和键向量。
直连区块:保留原始特征,防止信息丢失。
基于Mamba区块:通过选择性扫描(Selective Scan)捕捉序列中重要局部信息,计算公式如下:
其中,Scan(-) 是选择性扫描操作,用于有效地聚焦于输入序列中最相关的片段;为
;
为对后面信息进行线性操作;
更新状态:将三个信息融合并更新,公式如下:
b)交叉注意力模块
图像A与B相互交换信息并更新向量x,公式如下:


2)深度置信分数回归器
深度置信分数回归器预测的置信分表示每个特征点的匹配预测与地面实况匹配的置信度。
在Lightglue中仅使用了一个Sigmoid层和一个线性层组合来预测置信度得分;文中认为一个线性计算层不足以分析经过神经网络许多步骤的每个状态的复杂表示。为此,文中增加了线性层,如下公式所示;经过文中实验,在训练和推理方面都更快,没有变慢,并且能够更好地理解上下文中的层次和抽象含义。
3)Exit Test机制
文中针对置信度分数进行下列计算得到是否退出推理:

其中,;[[·]] 代表艾弗森算子;
这意味着,当图像对上所有点的比率 足够大时,我们就会停止迭代。
3、损失函数
文中分两个阶段训练 MambaGlue,与 LightGlue 的训练过程类似。首先,监督模型预测的匹配对与真实匹配对的一致性,而不进行退出测试,然后只训练深度置信度回归因子。第二步不会影响各层的性能。
匹配损失:


![]()
其中为匹配度得分,表示第 i 个点有对应点的可能性;
为匹配矩阵,表示每对点对应关系的概率得分;
置信损失:
训练深度置信度平分回归器中,使用的是最小化二元交叉熵损失函数,使匹配预测与地面实况匹配相同。
四、实验结果
与Lightglue训练对比:

文中使用官方预训练的权重,将 MambaGlue 与 SuperGlue、SGMNet 和 LightGlue 等基于变换器的稀疏特征匹配方法进行了比较,评估了 MambaGlue 在同构估计、相对姿态估计和室外视觉定位这三个视觉任务上的表现。
在Homography Estimation方面,文中使用了 HPatches 数据集,该数据集提供了具有挑战性的条件,如光照变化、遮挡或视点变化。在相对姿态估计方面,我们使用了 MegaDepth-1500 数据集中的 1,500 对图像,该数据集包括具有结构和视觉变化的室外场景,并通过视觉重叠率调整了难度级别。在室外视觉定位方面,文中采用了 Aachen Day-Night 基准,沿用了 Sarlin 等人提出的基准。
1、Homography Estimation

Lo-RANSAC:稳健性,利用随机抽样和局部优化来有效处理异常值,鲁棒性较高(适合有异常值的环境中)【Poselib -minimal solvers for camera pose estimation】
DLT:非稳健性,直接计算单应性变换矩阵,在有噪声的情况下容易出错【Multiple View Geometry in Computer Vision】
PR:3px误差阈值下的精度
通过上表可以看出,文中的方法与稀疏匹配器相比,文中方法最优;与密集匹配器相比,在5px阈值误差下更优
2、Relative Pose Estimation

文中方法大多数展现出了良好的性能,与Lightglue相比,精度有了一定的提升;文中方法实现了稳健性和效率之间的平衡。
3、Outdoor Visual Localization

在室外视觉定位方面,使用了RANSAC和透视点求解器(PnP)估算相机的姿势。根据上表可以看出文中方法性能有了大幅度提升,在速度上略有折衷。
4、Ablation Study

文中使用homography数据集比较的MambaGlue和LightGlue的退出测试行为,可见,文中模型在所有场景下的表现都优于LightGlue。

如图(a)所示,当模型的层数受到限制不进行退出测试时,从第一层开始,MambaGlue在每层的准确率方面优于LightGlue,而且随着层数的增加,MambaGlue表现更加稳定。
如图(b)所示,通过在LightGlue上的应用,可以看到文中提出的深度置信度评分回归器可以在更精确的时刻停止,从而以更少的迭代提高了性能。
相关文章:
【论文笔记】MambaGlue: Fast and Robust Local Feature Matching With Mamba
【引用格式】:Ryoo K, Lim H, Myung H. MambaGlue: Fast and Robust Local Feature Matching With Mamba[J]. arXiv preprint arXiv:2502.00462, 2025. 【网址】:https://arxiv.org/pdf/2502.00462 【开源代码】:https://github.com/uri-Ka…...
基于 Stanford CoreNLP 的中文自然语言处理
一、概述 Stanford CoreNLP 是斯坦福大学开发的一款强大的自然语言处理(NLP)工具,支持多种语言的文本处理,包括中文。本文将详细介绍如何使用 Stanford CoreNLP 实现中文文本的分词、词性标注、命名实体识别、句法分析等功能&…...
python 量化交易入门到提升详细教程,python量化交易教程
文章目录 前言入门阶段1. 环境准备安装 Python选择开发环境安装必要的库 2. 金融数据获取3. 简单策略构建 - 移动平均线交叉策略 进阶阶段1. 策略回测2. 风险管理3. 多因子策略4. 机器学习在量化交易中的应用5. 高频交易策略 前言 Python 作为一门功能强大、易于学习且应用广泛…...
如何设置爬虫的访问频率?
设置爬虫的访问频率(即请求间隔)是确保爬虫稳定运行并避免对目标服务器造成过大压力的关键步骤。合理的访问频率不仅可以减少被目标网站封禁IP的风险,还能提高爬虫的效率。以下是一些设置爬虫访问频率的方法和最佳实践: 1. 使用s…...
前端循环全解析:JS/ES/TS 循环写法与实战示例
循环是编程中控制流程的核心工具。本文将详细介绍 JavaScript、ES6 及 TypeScript 中各种循环的写法、特性,并通过实际示例帮助你掌握它们的正确使用姿势。 目录 传统三剑客 for 循环 while 循环 do...while 循环 ES6 新特性 forEach for...of for...in 数组…...
大气体育直播模板赛事扁平自适应模板源码
源码名称:大气体育直播模板赛事网站源码 开发环境:帝国cms 7.5 安装环境:phpmysql 模板特点: 程序伪静态版本,实时采集更新,无人值守,省心省力。带火车头采集,可以挂着自动采集发布…...
vue3学习1
vite是新的官方构建工具,构建速度比webpack更快 vue项目的入口文件是index.html,一般在这里引入src/main.js,并且设置好容器#app App.vue放的是根组件,components里放分支组件 vue组件中写三种标签,template & s…...
java机器学习计算指标动态阈值
java机器学习计算指标动态阈值 最近听到有的人说要做机器学习就一定要学Python,我想他们掌握的知道还不够系统全面。本文作者以动态阈值需求场景给大家介绍几种常用Java实现的机器学习库,包括使用开源库如Weka或Deeplearning4j(DL4J…...
mac os设置jdk版本
打开环境变量配置文件 sudo vim ~/.bash_profile 设置不同的jdk版本路径 # 设置JAVA_HOME为jdk17路径 export JAVA_HOME$(/usr/libexec/java_home -v 17)# 设置JAVA_HOME为jdk8路径 export JAVA_HOME$(/usr/libexec/java_home -v 1.8) 设置环境变量 # 将jdk加入到环境变量…...
Python正则表达式学习
Python正则表达式全攻略 一、正则表达式基础 1. 什么是正则表达式? 用于描述字符串匹配规则的表达式广泛应用于文本处理、表单验证、数据清洗等领域 2. Python中的re模块 import re3. 基础语法 字符说明示例.匹配任意字符(除换行)a.c → abc\d数字 [0-9]\d\d …...
ShenNiusModularity项目源码学习(10:ShenNius.FileManagement项目分析)
ShenNiusModularity项目支持七牛云和本地图片存储,其文件上传接口及实现就位于ShenNius.FileManagement项目内,该项目内文件不多,主要就是围绕上传本地及七牛云的实现及相关类定义。 扩展类FileManagemenServiceExtensions的AddFileUploa…...
mysql查看binlog日志
mysql 配置、查看binlog日志: 示例为MySQL8.0 1、 检查binlog开启状态 SHOW VARIABLES LIKE ‘log_bin’; 如果未开启,修改配置my.ini 开启日志 安装目录配置my.ini(mysql8在data目录) log-binmysql-bin(开启日志并指定日志前缀ÿ…...
Node.js高频面试题精选及参考答案
目录 什么是 Node.js?它的主要特点有哪些? Node.js 的事件驱动和非阻塞 I/O 模型是如何工作的? 为什么 Node.js 适合处理高并发场景? Node.js 与传统后端语言(如 Java、Python)相比,有哪些优势和劣势? 简述 Node.js 的运行原理,包括 V8 引擎的作用。 什么是 Nod…...
TaskBuilder创建客户信息列表页面
3.4.1选择页面类型 点击上面创建的customer文件夹右侧的加号,打开“前端资源创建向导”对话框,选中“数据查询TFP”,资源名称会自动设置为index,这里我们不用改。 点“下一步”按钮,会弹出下图所示的“创建数据查询T…...
Linux Iptables示例一则
个人博客地址:Linux Iptables示例一则 | 一张假钞的真实世界 关于Iptables的介绍个人强烈推荐:iptables-朱双印博客-第2页。这位兄弟介绍的很详细。 我个人的需求是在同一个网络内从网络上把测试主机与正式环境主机间的网络进行隔离。我的思路是采用OU…...
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
视频教程和更多福利在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 如果对你有帮助你可以来专栏找我,我可以无偿分享给你对你更有帮助的一些经验和资料哦 目录: 一、XSS的三种类型: 二、XSS攻击的危害&#x…...
【CXX】4 跨平台构建系统特性对比
多语言构建系统选项为开发团队提供了灵活性和选择,以适应不同的项目需求和现有的技术栈。CXX作为一个设计灵活的工具,旨在与多种构建系统无缝集成。以下是对不同构建系统选项的简要概述和建议: 一、Cargo: 适用场景:…...
MySQL 如何使用EXPLAIN工具优化SQL
EXPLAIN 是 SQL 查询优化中的一个重要工具,主要用于分析和诊断查询执行计划。通过 EXPLAIN,我们可以了解数据库引擎(如 MySQL、PostgreSQL 等)是如何执行特定的查询语句的,包括是否使用了索引、表连接的方式、扫描的行…...
沃丰科技大模型标杆案例|周大福集团统一大模型智能服务中心建设实践
沃丰科技携手老客户周大福如何进行统一大模型智能服务中心建设 “我们相信,科技与创新是推动珠宝行业持续发展的关键力量。”——周大福珠宝集团董事总经理黄绍基。这句话再次强调了科技与创新在珠宝行业发展中的重要性&…...
代码随想录day16
513.找树左下角的值 //迭代法中左视图的最后一位 int findBottomLeftValue(TreeNode* root) {int result 0;queue<TreeNode*> qe;if(root nullptr) return result;qe.push(root);vector<int> lefts;while(!qe.empty()){int sz qe.size();vector<int> tmp…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
篇章二 论坛系统——系统设计
目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...
