LoFTR: Detector-Free Local Feature Matching with Transformers

CVPR2021   Dense Matching,Detector-free

有监督方法

Abstract

本文提出了一种新的局部图像特征匹配方法。首先在粗粒度上建立图像特征的检测、描述和匹配,然后在精粒度别上细化亚像素级别的密集匹配,而不是依次执行图像特征检测、描述和匹配。与使用cost volume来搜索对应关系的密集方法相比,本文借鉴Transformer使用了自注意层互注意层来获得两幅图像的特征描述符。这种方法提供的全局接受域使得能够在纹理较少的区域产生密集匹配

Introduction

Feature Detector的使用减少了进行匹配时的搜索空间,其得到的稀疏匹配可以用于大多数任务。然而,Feature Detector可能由于纹理太少、图像模式重复、照明变化等无法提取足够的兴趣点,这个问题在室内环境中尤其突出

最近提出的一些无检测器(Detector-free)的方法试图通过建立像素级密集匹配来解决这个问题:它们从密集匹配中选择置信度较高的匹配,从而避免了特征检测。然而,这些模型中使用的卷积神经网络(CNN)提取的密集特征具有有限的接受域,可能无法处理纹理较少的区域。而人类在这些区域会根据局部信息和全局信息进行匹配。因此,特征提取网络中一个大的接受域是至关重要的

基于此,本文提出了Local Feature Transformers (LoFTR),这是一种新的Detector-free的局部特征匹配方法。受SuperGlue的启发,本文使用了具有自注意层和互注意层的Transformer模块来处理从卷积网络中提取的密集局部特征:本文首先在低特征分辨率(图像维度的1/8)上提取密集匹配,然后从这些匹配中选择具有高可信度的匹配,使用基于相关的方法将其细化到高分辨率的亚像素级别。这样,模型的大接受域使转换后的特征符能够体现出上下文和位置信息,通过多次自注意力和互注意层,LoFTR学习在GT中的匹配先验。另外,本文还采用Linear Attention方法将计算复杂度降低到可接受的水平

LoFTR可以在低纹理、运动模糊或图片模式重复的区域产生高质量的匹配

Related work

  • Detector-free Local Feature Matching
    LoFTR: Detector-Free Local Feature Matching with Transformers,CVPR2021(SOTA)
    SIFT Flow: Dense correspondence across scenes and its applications. TPAMI, 2010(第一次提出Detecer-Free的稠密匹配方法,传统方法)
    Universal correspondence network. NeurIPS, 2016(第一次将基于学习的方法用于稠密匹配)
    Neighbourhood consensus networks. NeurIPS, 2018(第一次提出端到端的稠密匹配方法)
    SuperGlue(LoFTR基于此改进)

Methods

给定图像对 IA,IB ,本文提出用一种Detector-free的方法来解决不同位置可能的特征重复问题:LoFTR,如下图所示:

LoFTR有四个组件:

  • 局部特征CNN从图像对中提取粗粒度特征图 F~A,F~B ,以及细粒度特征图 F^A,F^B
  • 粗粒度的特征经过flatten操作并添加位置编码,然后由LoFTR模块进行处理;该模块中包括自注意和互注意层,并重复 Nc 次
  • 使用可微匹配层来匹配LoFTR模块输出的特征 F~trA,F~trB ,得到一个置信矩阵 Pc ,然后根据置信阈值和最近邻算法(MNN)选择匹配对,得到粗粒度的匹配预测 Mc
  • 对于每个粗粒度匹配对 (i~,j~)∈Mc ,从细粒度级特征图中裁剪一个大小为 w×w 的局部窗口,粗粒度匹配将在此窗口内细化为亚像素级别,并作为最终的匹配预测 Mf

局部特征提取模块

这里使用FPN标准卷积结构从两幅图像中提取不同分辨率的特征。CNN具有局部空间不变性,其引入的降采样也减少了LoFTR模块的输入长度

局部特征转换模块(LoFTR)

将局部特征提取模块输出的结果输入LoFTR模块,用于提取与位置和上下文相关的局部特征

关于Transformer

这里简要介绍下Transformer,作为一种编码器,由顺序连接的注意力层组成。其结构如下(a):

其关键是注意力层,其输入向量为query( Q )、key( K )和value( V )。注意力层的计算一般如上图(b)所示,可表示为:

Attention(Q,K,V)=softmax(QKT)V

直观地说,注意力操作通过度量query和每个key之间的相似性来选择相关信息,输出向量则是由相似度得分的value加权和得到。因此,当相似度较高时,可以从value向量中提取相关信息。这个过程在图神经网络中也被称为“消息传递“

Linear Transformer

一般的计算注意力的方法复杂度较高,如果 Q 和 K 均有 N 个输入特征,每个特征长度为 D ,则矩阵相乘的复杂度为 O(N2) 。为了降低复杂度,这里使用注意力层计算的一个有效的变体:Linear Transformer。这种方法一种相似度量函数 :

sim(Q,K)=φ(Q)⋅φ(K)T

来将复杂度降低到 O(N) ,其中:

φ(⋅)=elu(⋅)+1

位置编码

本文按照DETR使用的Transformer中的标准位置编码对LoFTR的输入进行位置编码,不同的是,这里只将它们添加到主干中一次。直观地说,位置编码以正弦形式为每个输入提供了独特的位置信息,这使得LoFTR输出的特征与特征的位置相关

自注意力和互注意力层

这里自注意力和互注意力层与Transformer中一致,重复 Nc 次

建立粗粒度匹配

LoFTR模块的输出结果可以应用于可微匹配层,这里可以使用像SuperGlue中的最优传输层(OT),也可以使用dual-softmax操作符

首先计算LoFTR输出的特征之间的得分矩阵 S :

S(i,j)=1τ⋅〈FtrA~(i),FtrB~(j)〉

若使用OT进行匹配, S 可以作为部分分配问题的成本矩阵得到 Pc 。我们还可以在 S 的两个维度上应用softmax,匹配概率 Pc :

筛选匹配对

基于置信矩阵 Pc ,可以选择置信度高于 θc 的匹配,并进一步执行最近邻(MNN)准则,得到粗粒度匹配。粗级别的匹配预测可表示为:

从粗粒度到细粒度

在建立粗粒度匹配后,使用粗粒度到细粒度的模块将这些匹配细化到原始图像分辨率。这里使用了一种基于相关性的方法。对于每一个粗粒度匹配 (i~,j~) ,首先在细粒度特征映射 F^A 和 F^B 上确定其位置 (i^,j^) ,然后裁剪一对大小为 w×w 的局部窗口,将其输入一个较小的LoFTR模块( Nf 层),生成以 i^ 和 j^ 为中心的两个经过转换后的局部特征图 FtrA^(i) 和 FtrB^(j) 。然后将 FtrA^(i) 的中心向量与 FtrB^(j) 中的所有向量计算相关,并生成一个heatmap,通过计算概率分布的期望,可以得到了在 IB 上具有亚像素精度的最终位置 j′^ 。最终所有的匹配项产生细粒度的匹配项 Mf

监督方式(损失函数)

总损失包括粗粒度损失和细粒度损失:

L=Lc+Lf

粗粒度损失

粗粒度损失函数是由OT层或dual-softmax操作符返回的矩阵 Pc 上的负对数似然损失。本文使用SuperGlue使用相机姿态和深度信息在训练中计算置信矩阵的GT作为监督,将GT粗粒度匹配 Mcgt 定义为两组1/8分辨率图像中匹配得的MNN,这种距离可以通过它们的中心位置的投影距离来算得。对于OT,可以使用与SuperGlue相同的损失公式;当使用dual-softmax操作符进行匹配,损失函数为:

细粒度损失

细粒度损失采用L2损失:对于每个点 i^ ,计算其生成的heatmap的方差 σ2(i^) 来测量其不确定性,以使得细化后的匹配不确定性较低,从而得到加权损失函数:

其中 j′^gt 是通过摄像机姿态和深度信息从 i^ 通过空间变换转换到 FBtr^(j^) 来计算的,如果变换后超出局部窗口的范围,则忽略

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值