Magic Leap, ETH Zurich
提出了特征点匹配网络SuperGlue,寻找两幅图像局部特征点之间的对应关系的神经网络,该网络使用图神经网络预测损失。
搭配super point在室内外重定位任务中达到SOTA的精度。
论文方法:

首先输入图像对记为A,B,各包含了关键点和局部描述子,因此是集合形式{(p,d)}
p=(x,y,c)是关键点,其中c是置信度;d是描述子,本文中是superpoint。
网络结构介绍:
1.图神经网络
借鉴人眼反复匹配的过程:注意力+反复迭代+上下文信息,因此使用注意力图神经网络作为第一个模块,允许图像间、图像间的长距离信息融合。
-
关键点编码:这一步是图神经网络节点 i 的初始化步骤:
(0)xi=di+MLPenc(pi)
同时编码了位置信息 p和视觉信息d
-
该网络为多路复用图神经网络,其节点由两幅图的特征点共同组成。
连接同一图像上两个节点的边为内边,其集合记为ϵself,
连接了来自两个不同图像的特征点的边的集合称为ϵcross
迭代更新A中的节点:
(ℓ+1)xiA=(ℓ)xiA+MLP([(ℓ)xiA∣∣mϵ→i])
[…||…]表示将节点i自己的状态和ϵ集合中的所有指向节点i的边信息级联,然后使用多层感知机
B中节点相同。
从l = 1开始,如果是奇数那么$ \epsilon=\epsilon_{self},否则\epsilon = \epsilon_{cross}$,也就是说在图像内和图像间交叉传播
2.注意力融合
即 状态更新中的mϵ→i的求解方法:
mϵ→i=(i,j)∈ϵ∑αijVj这里使用注意力 即加权方法权值αi,j=softmax(qiTKj),代表q与k之间的相似性度。
其中的q,v,k都是根据每一层迭代结果以及网络层的参数计算出来的:
已知l层迭代的参数为w1,w2,w3,b1,b2,b3,
qi=W1(ℓ)xiQ+b1[kj vj]T=[W2 W3]T (ℓ)xjS+[b2 b3]T
经过L层的迭代最终的A 中的匹配描述符:
fiA=W⋅(L)xiA+b, ∀i∈A
B中类似。
3.最优匹配层
使用内积定义描述匹配符之间的相似度:
Si,j=<fiA,fjB>,∀(i,j)∈A×B
由于肯定会有不匹配的点对,因此新建一个dustbin,专门存放此类特征点
- Sinkhorn Algorithm:使用Sinkhorn 算法对两幅图的特征点进行匹配,该算法是匈牙利算法的可导版本。
4.损失函数
同时最大化精度和召回率:
Loss=−(i,j)∈M∑logP^i,j−i∈I∑logP^i,N+1−j∈J∑logP^M+1,j
这里的P是局部软匹配矩阵,行列和均为1
实验评估





速度:GTX1080上15fps