【论文笔记】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…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...