简介
传统SLAM的流程通常包括如下内容, 特征点提取+描述,特征点匹配 + 异常点去除, 位姿估计。
在以往前人的工作中,SuperPoint和 D2-Net试图解决特征点检测和描述的问题。而检测之后的匹配通常通过最近邻匹配和异常点剔除的方式完成。最后再完成位姿估计。
而SuperGlue试图将特征点的描述,特征的匹配(异常点的剔除)采用端到端的深度网络实现。这意味着距离实现全栈的DLslam又进了一步。
动机
很多场景,由于纹理特征不足,或者局部特征不具备代表性,特征匹配不能取得很好的效果。如下图棋盘格,采用最近邻和distance ratio后,效果依旧非常糟糕。这个例子想说明的是,即使具备了特征点和描述子,由于视角的变化和纹理特征的缺失。很多时候,我们依旧无法获取好的data association。
算法介绍
问题定义
我们要解决的问题“学习特征匹配”。也可以被解读为,寻找两个特征点集合的最优匹配关系。
该算法输入为:
- 两张图片
- 图片上的特征点和描述子(两张图片分别包含m,n个特征点和描述子)
输出为