【论文笔记】LoFLAT: Local Feature Matching using Focused Linear Attention Transformer

news/2024/11/24 9:27:27/

【题目】:LoFLAT: Local Feature Matching using Focused Linear Attention Transformer

【中文题目】:LoFLAT:使用聚焦线性注意力变换器进行局部特征匹配

【引用格式】:Cao N, He R, Dai Y, et al. LoFLAT: Local Feature Matching using Focused Linear Attention Transformer[J]. arXiv preprint arXiv:2410.22710, 2024.

网址】:https://arxiv.org/pdf/2410.22710

目录

一、瓶颈问题

二、本文贡献

三、解决方案

1 特征提取模块

2 特征Transformer模块

2.1 Softmax注意力

2.2 线性注意力

2.3 基于聚焦线性的Transformer

3 匹配模块

四、实验结果


一、瓶颈问题

  • Transformer 的注意力机制(SoftMax)具有二次复杂度,在处理高分辨率图像时会导致计算成本过高
  • 现有的基于线性注意力机制的方法虽然降低了计算成本,但难以捕捉像素标签之间的详细局部交互,从而影响了精确局部对应关系的准确性和鲁棒性

二、本文贡献

  • 提出了使用聚焦线性注意力变换器的新型局部特征匹配算法 LoFLAT
  • 提出了聚焦线性注意力,通过聚焦映射函数细化注意力分布,并通过深度卷积增强特征多样性

三、解决方案

        LoFLAT 方法主要由三个模块组成:特征提取模块 (FEM)、特征 Transformer 模块 (FTM) 和匹配模块 (MM)。特征提取模块首先采用ResNet作为特征提取的backbone,另外为了提取不同分辨率的特征,文中还加入了特征金字塔网络,来构建多尺度特征金字塔。然后,特征Transformer模块通过使用自注意力和交叉注意力捕捉与上下文相关且位置相关的局部特征。最后,匹配模块通过一个从粗到细的过程,输出精确而稳健的特征匹配结果。整体架构如下图:

1 特征提取模块

        文中使用了ResNet和多层金字塔来提取多尺度特征。其中粗特征表示为\tilde{F}_{A}\tilde{F}_{B} ,是原始图像大小的\frac{1}{8} ;精细特征表示为\hat{F}_{A}\hat{F}_{B} ,是原始图像大小的\frac{1}{2}

2 特征Transformer模块

        在特征提取之后,特征Transformer模块会整合位置和上下文信息,将\tilde{F}_{A}\tilde{F}_{B} 转换为\tilde{F}_{A}^{t}

\tilde{F}_{B}^{t} ,在匹配过程中增强特征的鲁棒性和鉴别性。

        视觉Transformer的核心部件是Transformer编码器,由多个自注意力层和前馈神经网络层组成,旨在捕捉全局上下文信息,能够整合整个图像的信息并与之互动,从而超越局部感受野的限制。通常,这些注意力层采用的是Softmax注意或线性注意力。

2.1 Softmax注意力

        Softmax注意力是Transformer中最基本的注意力形式,通过Queries和keys之间的相似性为值元素分配权重,生成输出向量,是模型能够并行处理信息并捕捉全局上下文信息。计算公式如下所示:

        然而,在实践中直接使用Softmax注意力具有挑战性,并且由于具有全局感受野的Softmax注意力的二次复杂性,会导致过高的计算成本。因此,大多是方法主要采用线性注意力作为有效的代替方法,其具有更高的计算效率、更低的内存要求以及实时处理的有效性。

2.2 线性注意力

        线性注意力的计算复杂度为O(N)而Softmax的计算复杂度为O(N^{2}),可见在处理大规模数据时,线性注意力会大大提升效率,更适合用于资源有限的环境和对实时性有严格要求的应用。计算公式如下所示:

        其中\phi (x) 表示核函数,通过一个非线性变换将数据映射到一个新的空间,同时在结构上改变计算顺序。线性注意力限制了模型只考虑与每个查询点最相关的一小部分关键点,从而减少了必要的比较次数,缓解了传统注意力机制在处理大规模数据集时面临的计算瓶颈。但是现有的线性注意力方法仍然需要在模型复杂度和表征能力之间取得平衡。使用简单的近似值(如ReLU和ELU激活)可能会导致性能下降,而是用更复杂的核函数设计或矩阵分解技术则会增加计算成本。此外,线性注意可能不足以捕捉长程依赖关系,从而对特征匹配的准确性参数负面影响。

2.3 基于聚焦线性的Transformer

        以往的研究表明,与 Softmax 注意力相比,线性注意的分布相对更平滑。这表明线性注意力中的注意力权重在多个输入特征中的分布更为均匀。然而,对于粗匹配来说,Softmax 注意力更锐利的分布特点使模型能够关注较少的一组关键特征,从而增强其分辨能力。

        文中为了解决模型复杂性和表征有效性这两个问题,提出了聚焦线性注意力。首先采用聚焦映射函数,从Querieskeys中提炼出关键特征;随后,遵循线性注意力原则,在保持注意力层输出准确性的同时降低计算成本。同时,将深度卷积应用于Values,来捕捉详细的局部特征,从而提高模型对细粒度信息的敏感度;最终,文中整合了两个过程的输出结果,生成了一个兼顾全局背景和丰富局部细节的特征表征。具有框架及公式如下:


 

        在核函数中,ReLU函数用于确保所有输入值都是非负和有效的。f_{p}用于修改特征向量的方向。经过实验验证表明,通过调整Querieskeys特征的方向,能够有效对其相似Queries-keys,同时拉开不同Queries-keys的距离,放大了相关Queries-keys的关注,减少了对不相关Queries-keys的关注,从而在线性注意力框架中形成了更明显、更清晰的关注分布。

        深度卷积(DWConv)用于进一步提高模型捕捉局部特征和增加特征多样性的能力。DWConv 部分作为一种局部关注机制,使每个查询只关注其空间邻域内有限的一组特征,而不是全局性地考虑所有特征。这种局部关注的好处在于,即使两个查询在传统的线性关注机制中获得相同的关注权重,DWConv 也能确保它们从不同的局部特征子集中提取信息。

3 匹配模块

        有了与位置和上下文相关的局部特征,就可以通过一个从粗到细的过程来建立精确而稳健的匹配对。具体来说,首先应用双Softmax 算子,通过估计概率P_{coarse}来确定粗匹配度,其计算方法如下:

        粗匹配最初是根据概率矩阵 P_{coarse}获得的。然后采用互为近邻准则,通过确保匹配对的双向一致性来过滤潜在的异常值。对于每个粗匹配,首先在细粒度特征图上定位位置。随后,围绕这些局部特征点裁剪局部窗口。较小的Transformer模块应用于这些局部特征窗口,以捕捉局部区域内的上下文信息。在局部窗口内,计算特征点与同一窗口内所有其他点之间的相关性,得出热图,其中每个像素值代表与参考点匹配的概率。通过计算热图上概率分布的期望值,就可以获得亚像素精度的最终匹配位置。最终,以亚像素精度输出每个粗匹配对的细化位置,从而提供两个图像之间更精确的对应关系。

四、实验结果

数据集:MegaDepth数据集

指标:文中使用 5◦、10◦ 和 20◦ 阈值下姿态误差的 AUC。.姿态误差以旋转和平移角度误差的最大值来衡量。为了确定摄像机的姿态,文中使用 RANSAC 从预测的匹配中估算出基本矩阵

实验环境:使用了4个英伟达显卡(NVIDIA GeForce RTX 3090 GPUs),每台上的batch size 为1,即有效批次规模为4。文中共花费69小时训练30轮。

参数设置:权重衰减为0.1的AdamW优化器;初始学习率为0.006,并在运行过程中动态调整实际学习率。防止梯度爆炸,使用了梯度裁剪法,阈值为0.5。

实验结果:文中重新训练了LoFTER作为baseline,并将原始图像的大小调整为500×500像素。

        (a)和(b)中,可以看出,在视角变化较小的情况下,两种方法都能获得高密度的匹配结果。不过文中提出的方法匹配的特征带你更多而且准确性更高。(c)和(d)中,在视角变化较大的场景中,LoFTER的准确度明显下降,导致错误匹配的数量增加。

        这里进一步比较了 LoFTR 和文中提出的 LoFLAT 在不同角度误差阈值(5◦10◦ 20◦)下的 AUC 指标性能。从表中可以看出,在三个阈值下,文中的模型都优于基准方法 LoFTR,分别提高了 2.7%1.9% 0.9%。在更严格的阈值条件下(即更小的角度误差),性能提升更为明显。文中的方法可能在需要精确匹配的任务中表现尤为出色。


http://www.ppmy.cn/news/1549503.html

相关文章

macOS 的目录结构

文章目录 根目录 (/)常见目录及其用途示例目录结构注意事项根目录 (/)主要目录及其含义其他目录总结 macOS 的目录结构无论是在 Intel 架构还是 ARM 架构的 Mac 电脑上都是相同的。macOS 的目录结构遵循 Unix 和 BSD 的传统,具有许多标准目录。以下是一些主要目录及…

GRU (门控循环单元 - 基于RNN - 简化LSTM又快又好 - 体现注意力的思想) + 代码实现 —— 笔记3.5《动手学深度学习》

目录 0. 前言 1. 门控隐状态 1.1 重置门和更新门 1.2 候选隐状态 1.3 隐状态 2. 从零开始实现 2.1 初始化模型参数 2.2 定义模型 2.3 训练与预测 3 简洁实现 4. 小结 0. 前言 课程全部代码(pytorch版)已上传到附件看懂上一篇RNN的所有细节&am…

【SKFramework框架核心模块】3-2、音频管理模块

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群:398291828小红书小破站 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…

Redis中的zset用法详解

文章目录 Redis中的zset用法详解一、引言二、zset的基本概念和操作1、zset的添加和删除1.1、添加元素1.2、删除元素 2、zset的查询2.1、获取元素分数2.2、获取元素排名 3、zset的范围查询3.1、按排名查询3.2、按分数查询 三、zset的应用场景1、排行榜1.1、添加玩家得分1.2、获取…

简述C++map容器

pair键值对 std::pair在很多关联容器(如std::map、std::multimap、std::set、std:multiset等)中被广泛应用。以std::map为例,std::map是一个键值对的容器,其中每个元素都是一个std::pair,键用于唯一标识元…

【Linux网络 (二)】套接字编程

Linux: 网络 一、前言二、端口号 (port)1)port、套接字概念2)端口号 vs 进程id3)端口号和进程关系 三、认识TCP/Udp协议1)连接性解释2)可靠性解释3)面向数据报/字节流解释 四、网络字节序五、struct sockad…

【Isaac Sim】配置 Nucleus 本地服务器

Omniverse 提供了本地(局域)服务器 Nucleus,可以将资产上传到该服务器,Nucleus 能够高效地存储和管理大量三维模型和其他资产,确保用户可以轻松访问这些资源。它还支持多用户环境下的实时协作,使得不同地理…

【贪心算法】绿洲之旅:最少次数补给探索

文章目录 问题背景解决思路贪心算法的优势实现步骤详解 问题背景 假设一位旅行者需要穿越一片沙漠,起点到终点的距离为 D 公里,旅行者初始携带了 W 升水,每前进一公里需要消耗一升水。在穿越过程中,沿途会经过 N 个补给站&#x…