标题:《SuperGlue: Learning Feature Matching with Graph Neural Networks》
作者: Paul-Edouard Sarlin, Daniel DeTone, Tomasz Malisiewicz, Andrew Rabinovich
机构: 1 ETH Zurich, 2 Magic Leap, Inc.
日期: 28 March, 2020
Github 链接在摘要部分
摘要:
- 介绍了名为SuperGlue的新型网络,这个网络通过联合地找到匹配点并设置局部特征的关联。
- 使用了一个可以通过图神经网络预测的可微分的最优化分配问题来解决传输问题。
- SuperGlue利用基于注意力的上下文聚合机制,允许它关于底层3D场景和特征关联来实时推理。("传输问题"可以解释为如何最优地匹配一组图像中的特征点到另一组图像中的特征点,这样的匹配可能基于特征的相似性、几何约束或其他条件。SuperGlue使用图神经网络来解决这个问题,找到最佳的特征匹配。)
- 与传统的基于经验法则的方法相比,此技术无需知道3D世界的特殊变换和规律,并且通过端到端的训练实现了最先进的结果。
- 提出的方法能够在实时进行的现代GPU上匹配,并可以轻松地整合到现代的SLAM或SfM系统中。
引言:
- 图像中的点之间的关联对于估计3D结构和相机姿态非常关键。
- SLAM (同步定位和映射) 和 SfM (结构从运动) 中,特征点的匹配经常被看作数据关联,这是一个已知的挑战。
- 在本文中,提出了一种新的方法来考虑特征匹配问题,首先识别图像特征,然后使用特定的匹配启发式技术进行匹配。
- 与传统的方法不同,SuperGlue采用了一个新颖的网络架构,直接在特征检测和估计后端之间工作。
相关工作
-
本地特征匹配:通常,这是通过以下三个步骤来完成的:
-
i) 提取图像特征;
-
ii) 使用最近邻居搜索匹配这些特征;
-
iii) 使用几何变换(例如RANSAC)对它们进行过滤。传统的方法通常基于SIFT,并使用邻域共识等技术。
-
-
深度学习与匹配:最近,一些工作尝试直接从深度学习模型中获取匹配,这些模型可能使用卷积神经网络从数据中获取特征。一些方法显式地考虑更广泛的上下文,或通过学习区分内外点(inliers and outliers)来过滤匹配。其他工作着重于深度学习来进行特征匹配,这些工作可能基于3D点云或视觉信息。PostRANSAC等方法可以从头到尾地执行内容聚合、匹配和过滤。
-
图匹配问题:这些问题通常被描述为二次分配问题,这些问题是NP-hard,需要复杂且昂贵的解算器。早期的方法依赖于手工制作的代价函数,而现代的方法则更加简化,例如使用Sinkhorn算法来近似解决问题。
-
深度学习与置换:深度学习可以被用于求解排列等式或不变的问题。这可以通过全局池化、区间规范化或在特征空间中的局部邻域来实现。此外,深度学习还可以进行全局和数据依赖的数据集聚合。
SuperGlue架构
-
Motivation:在图像匹配问题中,需要注意一些规律性。例如,某些关键点在静态场景中更容易匹配,而在动态场景中可能更难匹配。
-
Formulation:考虑两个图像A和B,每个图像都有一组关键点位置和关联的视觉描述符。SuperGlue旨在学习从数据中直接获取的相关先验知识。
-
组成部分:
- SuperGlue由两个主要组件组成:
- 注意力图神经网络 (Attentional Graph Neural Network)
- 最优匹配层 (Optimal Matching Layer)
- SuperGlue由两个主要组件组成:
-
注意力图神经网络:
- 关键点编码器 (Keypoint Encoder): 为每个关键点提供一个初始表示,并将关键点位置嵌入到一个高维向量中。
- 多路图神经网络 (Multiplex Graph Neural Network): 考虑了一个完整的图,该图的节点是两个图像中的关键点。这个网络使用 self 连接和 cross 连接来更新每个关键点的表示。
-
最优匹配层:
- 使用Sinkhorn算法计算两组特征之间的最优分配。
- 该层产生一个部分的匹配矩阵,该矩阵显示了一组特征如何与另一组特征匹配。
-
注意力聚合 (Attentional Aggregation):
- 使用注意力机制来聚合和计算消息,这些消息是基于关键点之间的跨图交互的。
- 考虑了自注意和交叉注意两种机制。
-
视觉描述符:
- SuperGlue使用视觉描述符来帮助确定两个关键点之间的匹配程度。
- 使用线性投影来创建最终的匹配描述符。
-
阻塞与可见性 (Occlusion and Visibility):
- SuperGlue可以处理被遮挡的关键点和在图像中不可见的关键点。
-
Sinkhorn算法:
- 用于解决优化问题,即如何最佳地匹配两组特征。
-
3.1. 匹配矩阵
- SuperGlue预测两组局部特征之间的关联。它利用一个双向匹配矩阵P,其维度为M x N,表示第一组和第二组特征之间的关联。这个匹配矩阵是通过Sinkhorn算法进行优化的,它是一个可微分版本的匈牙利算法,经典用于为双向分配问题提供最优解。每次迭代后,都会丢弃掉双向匹配矩阵中的部分列和行。
-
3.2. 数据集和监督
- SuperGlue在两种数据集上进行训练,这些数据集提供了关键点之间的匹配信息。训练数据集包含了大量匹配的例子,通过这些数据可以获得更加稳定和鲁棒的匹配结果。
-
3.3. 损失函数
- SuperGlue的损失函数目标是最大化匹配的精确度和召回率。它使用了一个特定的负对数似然损失函数,这个函数基于真实的匹配和预测的匹配之间的差异进行计算。
-
3.4. 与其他方法的比较
-
SuperGlue vs. Instance Normalization: SuperGlue的注意力机制更加灵活和强大,这使得它能够在各种情况下都实现高效的匹配。
-
SuperGlue vs. ContextDesc: SuperGlue可以同时考虑外观和位置信息,而ContextDesc将这两者分开处理。SuperGlue还可以学习或硬编码局部特征,并且可以模拟前端的多种方法。
-
SuperGlue vs. Transformer: SuperGlue借鉴了Transformer的自注意力机制,但将其嵌入到一个图神经网络中,使得注意力机制更为对称。这简化了架构并提高了各层之间的特征质量。
-
-
3.5. 优势
- SuperGlue结合了任何局部特征检测器,例如SuperPoint,能够生成可重复和稀疏的关键点,从而实现非常高效的匹配。
- SuperGlue还允许在测试时使用置信度阈值来选择最好的匹配、使用所有的软分配,或在后续步骤中使用它们的置信度。
实现细节 (Implementation details)
-
与其他局部特征检测器的结合:SuperGlue可以与任何局部特征检测器结合使用,特别推荐与那些能生成可重复且稀疏的关键点的检测器(如SuperPoint)配合使用。这样做可以确保匹配过程高效且准确。
-
视觉描述子:SuperGlue使用相同的维度D(256值)来表示所有输入的视觉描述子。
-
注意力机制:模型中使用了交替的多头自注意力和Sinkhorn注意力机制,共进行了7次迭代。
-
模型实现:SuperGlue在PyTorch中实现,包含约1200万的参数。该模型在NVIDIA GTX 1080 GPU上实时运行,可在平均15 FPS下处理720p的室内图像。
-
训练细节:训练时,SuperPoint的检测和描述过程是即时完成的。训练期间随机调整关键点的数量,以防止模型对特定数量的输入关键点出现过拟合。
这部分主要描述了SuperGlue模型的实现细节,包括其与其他特征检测器的结合方式、使用的视觉描述子、模型中的注意力机制、模型实现和训练的具体细节。
实验
5.1. 同构估计 (Homography estimation)
- 基线:SuperGlue与多种匹配器进行了比较,包括Nearest Neighbor (NN)匹配器和多种异常值拒绝方法,如mutual best consistency, PointCN和OANet。
- 度量:使用mean reprojection error和Area Under the Cumulative Error Curve (AUC)来度量性能。
- 结果:SuperGlue表现出色,在计算图像间同构时达到了98%的召回率和高精度。
5.2. 室内位姿估计 (Indoor pose estimation)
- 挑战:室内图像匹配受到复杂场景、大视点变化等多种因素的影响。
- 数据集:使用了SceneNet RGB-D数据集进行实验。
- 度量:采用了AUC和其他度量来评估pose error。
- 结果:SuperGlue的匹配效果显著地超过了其他手工和学习的匹配方法。
5.3. 室外位姿估计 (Outdoor pose estimation)
- 挑战:室外图像序列有其自己的一系列挑战,如光线变化和遮挡。
- 数据集:实验是在PhotoTourism数据集上进行的。
- 度量:使用了与室内实验相同的度量方法。
- 结果:SuperGlue在所有实验中都表现得很好,特别是与SIFT和SuperPoint特征结合使用时,其精度显著高于其他方法。
5.4. 理解SuperGlue (Understanding SuperGlue)
- 消融研究 (Ablation study):为了评估设计决策,对SuperGlue进行了内部组件的消融研究。结果显示所有的SuperGlue模块都对性能有显著的贡献。
- 视觉化和分析:通过多种视觉化展示了SuperGlue的内部工作机制。
整体而言,第5部分的实验结果证明了SuperGlue在各种应用场景和条件下都有出色的性能,特别是与SIFT和SuperPoint结合使用时,其性能显著超越了其他现有的方法。
结论
这篇论文展示了基于注意力机制的图模型——SuperGlue的性能优势。主要亮点和结论如下:
-
结构:SuperGlue的结构有两种主要的注意力操作:(i) 自注意力 (self-attention),它在同一张图片内部的关键点间建立关联;以及 (ii) 交叉注意力 (cross-attention),该机制允许跨图像的关键点间的互动,并由人类在观察和匹配物体时的直觉启发。
-
优势:SuperGlue通过解决部分匹配和被遮挡的点的问题,有效地处理了部分匹配的问题。此外,SuperGlue在室内和室外的极端宽基线图像配准中都取得了卓越的性能,远超过了现有的方法。
-
功能:与传统的匹配启发式方法相比,SuperGlue提供了一个强大的神经模型,将所有启发式和后处理整合到一个统一的架构中。
-
未来方向:作者认为,结合了深度前端技术的SuperGlue将是实现端到端深度SLAM的一个重要里程碑。