整体介绍:
核心思想:使用图的思想,融入邻域以及特征点的位置信息解决2d-2d匹配问题
整体pipeline:
解释说明:整个pipeline输入的是两张图,首先进行特征提取,然后经过gnn网络输出两张图特征点之间的匹配关系
细节:
整个网络主要分为三部分,分别是:特征提取 -> attentional gnn(其实就是自卷机+交叉卷机)-> optimal layer(目的是为了得到1-1的match)
1>特征提取
特征提取部分可以是任意的local feature,例如传统的sift,或者是最近比较火的aslfeat、superpoint、r2d2等,这里不再赘述,对特征感兴趣可以看我的
博客deepfeature篇。
2>自卷机+交叉卷机模块
2.1 特征提取模块输出了feature的detector <x,y,score> 和descriptor,传统的匹配仅使用了descriptor计算距离,该文章将特征的detector和descriptor进行融合生成新的特征进行匹配,使用公示如下:
其中d表示descriptor,p表示point(也就是detector),MLP为多层感知机,形成一个全新的feature特征
2.2 然后将生成的特征输入gnn网络,其中。
其实上述就是一系列的线性变换操作,结合了邻域信息,当然交叉卷机也是用上述公式,最后每个点的特征就变成了:
3> optimal layer
该层的目的就是为了得到1-1的匹配关系,并且将问题转换为似然问题,
3.1 首先根据上述输出的每个点的feature,计算匹配score:,使用的是内积运算
3.2 然后使用Sinkhorn算法将score矩阵的每一行每一列都归一化成单位向量。
3.3 输出:P
4> 输入P之后使用最大似然:
,其中表示使用gt得到的正确匹配