首页 > 其他分享 >SuperGlue: Learning Feature Matching with Graph Neural Networks论文笔记

SuperGlue: Learning Feature Matching with Graph Neural Networks论文笔记

时间:2023-11-11 19:33:52浏览次数:33  
标签:分数 匹配 迭代 Neural 特征 Graph SuperGlue 关键点

SuperGlue: Learning Feature Matching with Graph Neural Networks

源码:

github.com/magicleap/SuperGluePretrainedNetwork

背景:

主要解决图像中点之间的对应关系。

主要方法:

上图为该方法的主要框架。模型大致分为两个部分:注意图神经网络和最优匹配层。其中第i个局部特征由di(描述子)和pi(二维点位置)构成。

输入:两幅图A和B所有局部特征的描述子与相对应的关键点位置。

注意图神经网络:

关键点编码:即得到每个局部特征的状态xi。xi = di + MLPenc (pi),其中MLPenc (pi)是位置编码,采用绝对位置编码。

多路图神经网络:相当于每层都是一个自注意单元和一个交叉注意单元。用图的表现方式,同一幅图片的关键点之间的边表示自注意力系数,不同图片关键点之间的边表示交叉注意系数。下面每一层的状态迭代公式:

 

其中在 L为奇数时进行自注意力特征聚合,在 L为偶数时进行交叉注意力特征聚合。

 

其中qi,ki,vi由以下的方式计算而来:

 

最后输出的匹配描述符是线性投影:(图像B同理)

 

 

最优匹配层:

预测分数:对于通过图神经网络得到的输出fiA,fiB。通过其内积获得每个局部特征与另一幅图其余局部特征的分数。S(i,j) =<fiA ;fjB >;

垃圾箱操作:由于图像遮挡等原因,部分关键点是没有匹配对象的,所以对分数矩阵S做了相应处理。通过添加一个新的行和列,即点到箱和箱到箱的分数,将分数S扩展到¯S,并填充一个可学习的参数。(要注意匹配的点和进入垃圾箱的点的总数要等于关键点的个数)

Sinkhorn算法:使用Sinkhorn算法,它包含沿行和列迭代规范化exp(¯S),类似于行和列Softmax。经过T次迭代后,得到得分矩阵¯P。去掉最后一列与最后一行变为最终的得分矩阵P。

 

损失函数:

 

其中,M是真实匹配,I∈A,J∈B,且对于一些关键点没有对应点的情况下,标注为不匹配。

实验细节:

SuperGlue可以与任何局部特征检测器和描述符结合使用,但与SuperPoint结合使用效果特别好。SuperPoint描述符具有相同的维度D = 256。使用L = 9层交替的多头自注意和交叉注意,每层4个头,并进行T = 100次Sinkhorn迭代。

 

标签:分数,匹配,迭代,Neural,特征,Graph,SuperGlue,关键点
From: https://www.cnblogs.com/ZYX--/p/17826222.html

相关文章

  • polygraphy介绍
    Polygraphy目录Polygraphy工具说明依赖&安装功能&Toolsrunloggingrunnermodelonnxtensorrtdataloadercomparator使用示例convertdebuginspectsurgeonruncomparisonmetricsgenerating_comparison_scriptcomparing_onnx&engine1comparing_onnx&engine2comparing_onnx&eng......
  • Neural Networks投稿要求总结
    自用,NN投稿要求,相关的部分的中文版翻译,原文链接:https://www.sciencedirect.com/journal/neural-networks/publish/guide-for-authorsNeuralNetworks投稿要求介绍国际神经网络学会、欧洲神经网络学会和日本神经网络学会的官方期刊。论文类型Articles考虑原创的长篇文章时,应......
  • 神经网络入门篇:详解计算一个神经网络的输出(Computing a Neural Network's output)
    一个神经网络的输出首先,回顾下只有一个隐藏层的简单两层神经网络结构:图1.3.1其中,\(x\)表示输入特征,\(a\)表示每个神经元的输出,\(W\)表示特征的权重,上标表示神经网络的层数(隐藏层为1),下标表示该层的第几个神经元。这是神经网络的符号惯例,下同。神经网络的计算关于神经网络是怎......
  • 一文读懂 Fabarta ArcGraph 图数据库丨技术解读
    导读 本文将深入探讨图数据库的发展历程、Fabarta自研图数据库ArcGraph的产品优势,以及 ArcGraph 如何充分利用图和向量数据库的融合优势,为AI技术的发展提供强大支持。图数据库最早诞生于上世纪六七十年代,起源于对复杂网络结构的理解和处理需求。随着社交网络、知识图谱......
  • [ARC105E] Keep Graph Disconnected 题解
    题意给定一张由\(N\)个点和\(M\)条边组成的简单无向图\(G\),定义一个无向图是好的当且仅当这张图满足以下条件:\(1\)号节点和\(N\)号节点不联通图中不存在重边和自环现有两人轮流采取操作,每轮操作如下:选择两个点\(u,v\),将边\((u,v)\)加入图\(G\)中当一方无......
  • 题解 LOJ3483【[USACO21FEB] Counting Graphs P】
    题解P7418【[USACO21FEB]CountingGraphsP】problemBessie有一个连通无向图\(G\)。\(G\)有\(N\)个编号为\(1\ldotsN\)的结点,以及\(M\)条边(\(1\leN\le10^2,N-1\leM\le\frac{N^2+N}{2}\))。\(G\)有可能包含自环(一个结点连到自身的边),但不包含重边(连接同一对结点......
  • 【欧拉图】Euler Graph(Fluery算法,Hierholzer算法)
    还在持续更新ing前言此乃小Oler的一篇算法随笔,从今日后,还会进行详细的修订。注明:有参考自论文《欧拉图相关的生成与计数问题探究》简单介绍著名的哥尼斯堡七桥问题是18世纪著名的古典数学问题之一,该问题在相当长的时间里无人能解。欧拉经过研究,于1736年发表了论文《哥尼......
  • Nebula Graph开源分布式图数据库,万亿级数据,毫秒级延时
    推荐一个分布式图数据库NebulaGraph,万亿级数据,毫秒级延时什么是NebulaGraphNebulaGraph是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询什么是图数据库图数据库是专门存储庞大的图形网络并从中检索......
  • Nebula Graph开源分布式图数据库,万亿级数据,毫秒级延时
    推荐一个分布式图数据库NebulaGraph,万亿级数据,毫秒级延时什么是NebulaGraphNebulaGraph是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询什么是图数据库图数据库是专门存储庞大的图形网络并从中检......
  • GraphCodeBert: Pre-Trainng Code Representions with Data Flow
    GraphCodeBert:Pre-TrainngCodeRepresentionswithDataFlow创新点:认为AST中有许多不必要的联系且仅是在语法层面,而DFG关注了语义层面:采用数据图流向【将程序中变量作为图的节点,将变量之间的数据流向作为边,mask掉部分边后再进行预测】三个预训练任务:MLM、EP边预测(即创新点)、N......