【CVPR2024】Efficient LoFTR: 高效的 LoFTR:具有类似稀疏的速度的半密集局部特征匹配
Efficient LoFTR: 高效的 LoFTR:具有类似稀疏的速度的半密集局部特征匹配
Efficient LoFTR realtime_demo
0.摘要
\qquad 我们提出了一种新的方法来有效地产生跨图像的半密集匹配。以往的无探测器匹配器LoFTR在处理大视点变化和纹理差的场景下表现出了出色的匹配能力,但效率较低。我们重新审视了它的设计选择,并得出了效率和准确性的多重改进。一个关键的观察是,由于共享的局部信息,在整个特征映射上执行转换是冗余的,因此我们提出了一种具有自适应令牌选择的聚合注意力机制以提高效率。
此外,我们发现LoFTR的精细相关模块存在空间方差,这不利于匹配精度。提出了一种新的两级相关层,以实现精确的亚像素对应,从而提高精度。 我们的效率优化模型比LoFTR快2.5倍,甚至可以超过最先进的高效稀疏匹配管道SuperPoint + LightGlue。此外,大量的实验表明,与竞争对手的半密集匹配器相比,我们的方法可以达到更高的精度,并具有可观的效率优势。这为大规模或延迟敏感的应用(如图像检索和3D重建)开辟了令人兴奋的前景。
项目地址:https://zju3dv.github.io/efficientloftr/。

1.简介
\qquad 最近,LoFTR 引入了一种带有transformer的无检测器匹配范式,可以在不检测关键点的情况下直接在两个图像之间建立半密集对应关系。借助Transformer机制来捕获全局图像环境和无检测器设计,LoFTR表现出强大的匹配具有挑战性的对的能力,特别是在纹理较差的场景中。为了减轻计算负担,LoFTR采用从粗到细的流水线,首先在下采样的粗大特征图上进行密集匹配,其中应用了Transformer。然后,通过裁剪基于粗匹配的特征块,执行特征相关性,并计算相关性块的期望值,固定粗匹配在一张图像上的特征位置,同时在另一幅图像上搜索它们的子像素对应关系。
\qquad 尽管LoFTR的匹配性能令人印象深刻,但由于在整个粗糙特征图上执行Transformer的令牌大小较大,因此效率有限,这严重阻碍了图像检索和SfM 等实际的大规模使用。LoFTR的大量后续工作都试图提高其匹配精度。然而,很少有方法专注于无检测器匹配的匹配效率。QuadTree Attention 将多尺度变换与逐渐缩小的注意力跨度相结合,以避免在大型特征图上执行注意力。这种策略可以降低计算成本,但它也会将单个粗略的注意力过程划分为多个步骤,从而导致延迟增加。
\qquad 在本文中,我们重新审视了无探测器匹配器LoFTR的设计决策,并提出了一种新的匹配算法,该算法在进一步提高精度的同时,挤出冗余计算以显著提高效率。如图 1 所示,与最近的图像匹配方法相比,我们的方法实现了最佳的推理速度,同时在准确性方面具有竞争力。我们的主要创新在于引入令牌聚合机制进行有效的特征转换,并引入两阶段关联层进行对应细化。具体来说,我们发现像在LoFTR中那样在整个粗糙特征图上密集执行全局注意力是不必要的,因为注意力信息在局部区域是相似和共享的。因此,我们设计了一种聚合注意力机制,用于对自适应选择的标记进行特征转换,该机制明显紧凑,有效降低了局部特征转换的成本。
\qquad 此外,我们观察到LoFTR的匹配细化阶段可能存在空间差异,这是由于存在噪声特征相关性时对整个相关性补丁的期望引起的。为了解决这个问题,我们的方法设计了一个两阶段关联层,首先在精细的特征斑块上定位像素级匹配和准确的互近邻匹配,然后通过在微小斑块内进行局部相关性和期望来进一步细化亚像素级的匹配。
\qquad 在单调估计、相对姿态恢复以及视觉定位等多个任务上进行了广泛的实验,以证明我们的方法的有效性。我们的管道将无探测器匹配推向了前所未有的效率,比 LoFTR 快约 2.5 倍,甚至可以超过目前最先进的高效稀疏匹配器 LightGlue [30]。此外,与竞争性的无检测器基线[7,14,15]相比,我们的框架可以达到相当甚至更好的匹配精度,效率相当高。
\qquad 综上所述,本文有以下贡献:
• 基于对精度的全面回访,具有多个im改进的新的无探测器匹配流水线。• 一种新型的聚合注意力网络,用于高效的局部特征转换。• Anovel两阶段相关细化层,用于准确和亚像素级的精细对应
2. 原理
- 想了一下还是不翻译论文了,简单说一下吧

图2.管道概述
(1)给定一对图像,CNN网络提取粗略的特征图̃FA和ƃFB,以及精细特征。
(2)然后,我们通过交错我们聚合的自我注意力和交叉注意力N次,将粗糙的特征转换为更具判别性的特征图,其中自适应地进行特征聚合以减小每次注意力之前的令牌大小以提高效率。
(3)将变换后的粗略特征与得分矩阵S相关联,然后进行互近邻(MNN)搜索,建立粗略匹配{Mc}。
(4)为了细化粗匹配,通过将变换后的粗特征̃ Ft A, ̃ Ft B与骨干特征融合,在全分辨率下得到判别性精细特征ˆ Ft A, ˆ Ft B。然后,将特征块裁剪为每个粗匹配 Mc 的中心。经过两阶段细化以获得亚像素对应Mf。

- 详细的变压器模块比较。与LoFTR使用特征图的所有标记来计算注意力并诉诸线性注意力以降低计算成本不同,所提出的注意力模块首先聚合显著性标记的特征,这对于注意力的效率明显更高。然后,利用普通注意力来转换聚合特征,其中插入相对位置编码以捕获空间信息。转换后的特征被上采样并与原始特征融合,形成最终特征。
3. 效果
demo_comparison

相关文章:
【CVPR2024】Efficient LoFTR: 高效的 LoFTR:具有类似稀疏的速度的半密集局部特征匹配
Efficient LoFTR: 高效的 LoFTR:具有类似稀疏的速度的半密集局部特征匹配 Efficient LoFTR realtime_demo 0.摘要 \qquad 我们提出了一种新的方法来有效地产生跨图像的半密集匹配。以往的无探测器匹配器LoFTR在处理大视点变化和纹理差的场景下表现出了出色的匹配能力…...
【Golang 面试 - 基础题】每日 5 题(九)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...
《程序猿入职必会(4) · Vue 完成 CURD 案例 》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
编程技巧:如何优雅地合并两个有序数组?
目录 题目引用描述1.直接合并 排序2.指针3.后逆向双指针进阶:你可以设计实现一个时间复杂度为 O(m n) 的算法解决此问题吗?总结 题目 来自力扣 引用 合并两个有序数组 给你两个按 **非递减顺序 **排列的整数数组 nums1 和 nums2,另有两个整…...
Vue组件库移动端预览实现原理
引言 大家如果使用过移动端组件库(比如:Vant),会发现在网站右侧有一个手机端的预览效果。 而且这个手机端预览的内容和外面的组件代码演示是同步的,切换组件的时候,移动端预览的内容也会发生相应的变化。 …...
FastAPI(七十五)实战开发《在线课程学习系统》接口开发-- 创建课程
源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 上次我们分享了,FastAPI(七十四)实战开发《在线课程学习系统》接口开发-- 删除留言 从本篇文章开始,…...
【C++】 条件变量实现线程同步示例
在做一些比较大的项目的时候,需要实现线程同步, 这里结合一个小示例,进行线程同步的讲解 问题定义 以下是一个使用 C 多线程和条件变量的示例,展示了线程 A 接收一个 enable 信号并通知线程 B 开始工作。线程 B 在开始工作之前…...
linux下载redis安装并指定配置文件启动
linux下载redis并安装启动: cd /usr/local/src 下载redis压缩包 wget http://download.redis.io/releases/redis-6.2.6.tar.gz 解压 tar -xzf redis-6.2.6.tar.gz 编译和安装redis make make install 安装完成后进入 redis 安装目录 cd /usr/local/bin 修改…...
线性结构、线性表、顺序表、链表、头插法、尾插法、中间插入或删除一个节点
梳理几个名词: 逻辑地址:就是说是第几个元素。 物理地址:也就是存储地址,在计算机里具体存放的位置。 线性表的存储结构分为: (1)顺序存储结构:将数据依次存储在连续的整块物理空…...
C# Task.WaitAll 的用法
目录 简介 1.WaitAll(Task[], Int32, CancellationToken) 2.WaitAll(Task[]) 3.WaitAll(Task[], Int32) 4.WaitAll(Task[], CancellationToken) 5.WaitAll(Task[], TimeSpan) 结束 简介 Task.WaitAll 是 C# 中用于并行编程的一个的方法,它属于 System.Threa…...
vue2 前端实现pdf在线预览(无插件版)
toFielDetail()是点击预览的方法,getOfficialFile是获取文件流的接口正常定义即可: export function getOfficialFile(query) {return request({url: /dataAsset/projectassess/getOfficialFile,method: get,params: query,}); } 调用接口的页面需要引用…...
排序XXXXXXXXX
信息学奥赛|常见排序算法总结(C+) - 腾讯云开发者社区-腾讯云 (tencent.com) https://cloud.tencent.com/developer/news/975232 常用序号层级排序 一、序号 序号Sequence Number,有顺序的号码,如数字序号…...
【文件解析漏洞】实战详解!
漏洞描述: 文件解析漏洞是由于中间件错误的将任意格式的文件解析成网页可执行文件,配合文件上传漏洞进行GetShell的漏洞! IIS解析漏洞: IIS6.X: 方式一:目录解析 在网站下建立文件夹的名字为.asp/.asa 的文件夹,其目…...
【杂谈】学会让你节省三秒钟——Dev-c++的缺省源
【杂谈】学会让你节省三秒钟——Dev-c的缺省源 1.前言2.缺省源的介绍3.注意 1.前言 你是否在为每次写程序都要自己手打一遍框架而感到苦恼?为什么大佬的Dev-C一新建文件就会自动出现程序框架?看完这篇文章,让你也能成为大佬,不用再…...
推荐一款前端滑动验证码插件(Vue、uniapp)
uniapp版本:滑块拼图验证码,有后端,简单几步即可实现,小程序、h5都可以用 - DCloud 插件市场 Vue版本及cdn版本可以查阅文档: 行为验证 | Poster 文档 示例代码: <template><view id"app&…...
【Git】git stash
目录 基本概念参数详解listshowsavepushpop|applydropclearbranch 参考文章 Git的stash命令是一个非常实用的功能,它允许开发者临时保存工作目录和暂存区的更改,以便能够切换到其他分支或进行其他操作,而不会丢失当前的修改。以下是git stash…...
不得不安利的程序员开发神器,太赞了!!
作为一名程序员,你是否常常为繁琐的后端服务而感到头疼?是否希望有一种工具可以帮你简化开发流程,让你专注于创意和功能开发?今天,我要向大家隆重推荐一款绝佳的开发神器——MemFire Cloud。它专为懒人开发者准备&…...
吴恩达机器学习C1W2Lab06-使用Scikit-Learn进行线性回归
前言 有一个开源的、商业上可用的机器学习工具包,叫做scikit-learn。这个工具包包含了你将在本课程中使用的许多算法的实现。 目标 在本实验室你可以: 利用scikit-learn实现基于正态方程的近似解线性回归 工具 您将使用scikit-learn中的函数以及ma…...
CSS实现表格无限轮播
<div className{styles.tableTh}><div className{styles.thItem} style{{ width: 40% }}>报警名称</div><div className{styles.thItem} style{{ width: 35% }}>开始时间</div><div className{styles.thItem} style{{ width: 25% }}>状态&…...
编程小白如何从迷茫走出
针对新生们常常感到的迷茫,以下是如何选择适合自己的编程语言、如何制定有效的学习计划以及如何避免常见的学习陷阱的详细建议: 一、如何选择适合自己的编程语言 明确需求和目标:不同的编程语言有不同的特点和适用场景。例如,Py…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
