深度学习论文: LightGlue: Local Feature Matching at Light Speed

深度学习论文: LightGlue: Local Feature Matching at Light Speed

LightGlue: Local Feature Matching at Light Speed

PDF: https://arxiv.org/pdf/2306.13643

PyTorch代码: https://github.com/shanglianlm0525/CvPytorch

PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

LightGlue通过自适应地应对不同难度的图像对来改进视觉匹配,包括视觉重叠程度、外观变化和辨别信息量。对于易于匹配的图像对,其推理速度更快,类似于人类处理视觉信息的方式。它通过在每个计算块后预测对应关系、让模型自我评估是否需要进一步计算,并在早期阶段丢弃不可匹配的点来优化性能。在如SLAM等典型操作条件下,LightGlue在保持性能的同时带来了显著改进,通过动态调整网络大小而非减少其整体容量。

2 LightGlue

LightGlue 是由一系列(L 个)相同的层堆叠而成,这些层能够共同处理两组数据。每一层包含自注意力和交叉注意力单元,它们用于更新每个点的表示。随后,一个分类器会在每一层判断是否需要停止推理,以减少不必要的计算。最终,通过一个轻量级的头部从表示集合中计算得出一个部分分配。

2-1 Transformer backbone

Attention unit:

注意力单元使用MLP根据从源图像S中聚合的消息mI i ←S来更新状态xI i。消息通过注意力机制计算,是图像S中所有状态j的加权平均值。

Self-attention:

每个点关注同一图像中的所有点。通过不同的线性变换分解当前状态xi为键ki和查询qi,并计算点i和j之间的注意力分数aij,该分数基于点的相对位置编码。位置编码通过旋转矩阵R§捕捉相对位置信息,允许模型检索相对位置的点。

Cross-attention:

图像I中的每个点关注另一张图像S中的所有点。计算键ki但不计算查询,使得注意力分数aIS ij为两键的相似度。由于跨图像的相对位置没有意义,因此不添加位置信息。这种方法节省了计算成本,只需计算一次I ←S和S ←I消息的相似性。

2-2 Correspondence prediction

本文设计了轻量级头部来预测任何层更新后的分配。首先计算点对的相似度矩阵S,并为每个点计算可匹配性分数σi。接着,将相似性和可匹配性分数结合成软部分分配矩阵P,以确定哪些点对形成对应关系。选择满足阈值τ和行/列最大值的点对。
分配矩阵 P:

其中

2-3 Adaptive depth and width

引入两种机制以减少计算和节省推理时间:一是根据图像对难度调整层数;二是提前剔除确信的无效点。LightGlue 在每层结束时推断各点分配的置信度,高置信度表示该点表示可靠,可用于提前输出预测并停止推理。引入的紧凑MLP在最坏情况下仅增加2%的推理时间。

Exit criterion: 对于层ℓ,如果 c i > λ ℓ c_{i} > λ_{ℓ} ci>λℓ,则点被视为可靠。当可靠点的比例超过α时,停止推理。 λ ℓ λ_{ℓ} λℓ逐层递减,基于分类器的验证准确率。 α α α控制准确率和推理时间的权衡。

Point pruning: 当不满足退出准则时,丢弃预测为可靠但无法匹配的点,它们对后续匹配无帮助。这减少了计算量,而不影响准确率。

3 Experiments

相关推荐
我爱一条柴ya几秒前
【AI大模型】神经网络反向传播:核心原理与完整实现
人工智能·深度学习·神经网络·ai·ai编程
万米商云5 分钟前
企业物资集采平台解决方案:跨地域、多仓库、百部门——大型企业如何用一套系统管好百万级物资?
大数据·运维·人工智能
新加坡内哥谈技术8 分钟前
Google AI 刚刚开源 MCP 数据库工具箱,让 AI 代理安全高效地查询数据库
人工智能
慕婉030710 分钟前
深度学习概述
人工智能·深度学习
大模型真好玩11 分钟前
准确率飙升!GraphRAG如何利用知识图谱提升RAG答案质量(额外篇)——大规模文本数据下GraphRAG实战
人工智能·python·mcp
198912 分钟前
【零基础学AI】第30讲:生成对抗网络(GAN)实战 - 手写数字生成
人工智能·python·深度学习·神经网络·机器学习·生成对抗网络·近邻算法
6confim12 分钟前
AI原生软件工程师
人工智能·ai编程·cursor
阿里云大数据AI技术12 分钟前
Flink Forward Asia 2025 主旨演讲精彩回顾
大数据·人工智能·flink
i小溪14 分钟前
在使用 Docker 时,如果容器挂载的数据目录(如 `/var/moments`)位于数据盘,只要服务没有读写,数据盘是否就不会被唤醒?
人工智能·docker
程序员NEO16 分钟前
Spring AI 对话记忆大揭秘:服务器重启,聊天记录不再丢失!
人工智能·后端