Image Matching:SuperGlue论文阅读笔记

写在前面

SLAM这个领域有着极其详细的子领域划分,理论上是任何一个子部分都可以使用深度特征学习代替的,差别是谁代替的更加优雅

superglue声称使用深度特征代替的是关键点的匹配部分,注意只生成关键点的匹配关系,根据此匹配关系生成单应矩阵或者位姿的过程需要RANSAC(随机采样一致性)或者DLT(直接线性变换)

作者讲解:最新CVPR2020论文:SuperGlue(超级胶水):用图神经网络来做图像匹配,超越现有所有匹配算法_哔哩哔哩_bilibili

这是一篇笔记,记录下我认为的重点,详细了解方法论文可以去找一篇介绍博客结合着看 

摘要

SuperGlue,一种通过联合寻找对应点和拒绝不可匹配点来匹配两组局部特征的神经网络。分配是通过解决一个可微的最优运输问题来估计的,其成本由一个图神经网络预测。引入了一种基于注意力的灵活上下文聚合机制,使SuperGlue能够联合推理底层3D场景和特征分配。与传统的手工设计启发式方法相比,SuperGlue通过图像对的端到端训练来学习3D世界的几何变换和规律性的先验。SuperGlue优于其他学习方法,并在具有挑战性的现实世界室内和室外环境中的姿态估计任务上取得了最先进的结果。所提出的方法在现代GPU上实时执行匹配,并且可以很容易地集成到现代SfM或SLAM系统中。

再次强调,解决的是一个已有关键点情况下的匹配问题

Intriduction

文章把自己定义为解决“数据关联”问题,将特征点(2D与3D皆有可能)与特征点的匹配问题定义为数据关联问题

过大的视点变换、强烈的光线变换、遮挡、图像模糊和纹理缺乏都会导致数据关联过程的失真

区别于视觉特征提取的前端和BA优化后端,SuperGlue把自己定义为中间件,或中端

再次强调是在已有特征点的条件下学习匹配过程,与SuperPoint可以组成一个端到端的深度SLAM过程

结合以上叙述,应该了解,SuperGlue的输出应该是某种能表达关键点之间对应关系的东西。本文使用的是assignment matrix P

Super Glue框架

总览

图像匹配问题,因为是由两个时刻的单目获得的图像特征点之间的匹配,所以图像之间的对应关系由一个对极变换即可描述。ps,可百度对极几何了解一下

图像之间的对应关系必须遵守某些物理约束:(1)一个关键点在另一幅图像中最多只能有一个对应关系。(2)由于检测器的遮挡和故障,一些关键点将不匹配。一个有效的特征匹配模型应该旨在找到相同3D点的重投影之间的所有对应关系,并同时识别(剔除)没有匹配的关键点

进行superglue的时候已经通过某种方法获得了关键点和描述子,当然也有可能通过传统方法获得的,如SIFT。将关键点p由位置x,y和置信度c表示

Image Matching:SuperGlue论文阅读笔记_第1张图片

详细

图神经网络就是将某种变量表达为节点,然后使用网络去学习节点之间的相关性(或者说边)

图神经网络相关,可了解:图神经网络(Graph Neural Networks,GNN)综述 - 知乎

基于注意力的图神经网络

关键点除了自身位置和视觉外观包含着信息外,关键点之间的显著性、自相似性、统计性质和相邻性,使其或许可以表达为图来处理

关键点的匹配过程某种意义上和注意力的过程很相似,于是引入注意力机制

关键点编码器:使用MLP完成

多重图神经网络:节点是两个图像的关键点,显然该图有两种类型的无向边,即是一个多路图(multiplex graph)。这两种边分别是连接同种图内所有关键点的边和连接不同图像内关键点的边
这里使用消息传递公式(message passing formulation)沿两种类型的边传播信息。生成的多路图神经网络从每个节点的高维状态开始,并通过同时聚合所有节点的所有给定边上的消息,在每一层计算更新的表示。

基于注意力的图神经网络部分的输出是一个更强大的表示f,f可以理解为是一个嵌入特征

优化匹配层

这个部分会产生一个分配矩阵P

从输出中就可以了解到这部分解决的是一个线性分配问题

匹配分数:首先,得到嵌入表达f后需要计算两个f之间的相似分数,使用点积运算

遮挡和可见性:在匹配过程中引入dustbin可以有效解决不匹配特征点的去除问题

Sinkhorn Algorithm:它是匈牙利匹配算法的可微版本

训练方式

图神经网络部分和优化匹配层都是可积分的,所以整体的反向传播是可行的。(太强了,拍案叫绝!)

属于监督训练,但无需手工标注,方法是输入1张真实图片,提取特征点,通过随机单应变换生成1张特征点对应的新图片、以及深度图,形成一对图像对。

深度图生成的方法是:使用COLMAP/MVS方法,对一些具有多视角多图的场景进行稀疏-稠密重建,然后对生成图进行深度估计。

原文给出的预训练模型采用Oxford&Paris数据集做单应估计训练。之后分别采用百万级的两个数据集Scannet数据集(室内)、YFCC100M数据集(室外)做姿态估计训练。

损失函数的设计同时考虑了

评估

包括三个评估实验

Homography estimation

Oxford and Paris数据集

通过图像和随机采样单应性,变换图像,作为一个图像对训练和评估

注意,训练标签始终是关键点的分配矩阵,但需要使用RANSAC或者DLT估计单应矩阵验证准确率

有个比较有意思的地方,Because SuperGlue correspondences are high-quality, the Direct Linear Transform (DLT), a least-squares based solution with no robustness mechanism, outperforms RANSAC

Indoor pose estimation

Indoor pose estimation任务一般使用ScanNet数据集

该数据集得估计难点在于,由于缺乏纹理、丰富的自相似性、复杂的场景 3D 几何结构以及较大的视点变化,室内图像匹配非常具有挑战性

注意,训练标签始终是关键点的分配矩阵,但需要使用RANSAC估计相对变换位姿验证准确率

Outdoor pose estimation

Outdoor pose estimation任务一般使用MegaDepth数据集和PhotoTourism数据集

该数据集的难点在于光照变化和遮挡

评价指标与indoor相同

这里放一个图展示indoor和outdoor的性能

Image Matching:SuperGlue论文阅读笔记_第2张图片

参考

链接:论文研读:SuperGlue vs. LoFTR_怎么有情绪啦的博客-CSDN博客

你可能感兴趣的:(图像匹配)