返回列表

26th place

495. Image Matching Challenge 2022 | image-matching-challenge-2022

开始: 2022-04-04 结束: 2022-06-02 计算机视觉 数据算法赛
第26名方案

第26名方案

作者: Sorceress
比赛排名: 第26名

首先,我要感谢主办方举办如此精彩的比赛,参与过程非常顺畅,做得好!

同时也祝贺所有的获奖者!

我参加这次比赛的计划是想看看在资源有限的情况下(仅使用 Colab Pro+)能走多远,只是想试试市面上现有的工具,但最后我也训练了一些模型……)))

对我来说,主要需要解决的问题是:尺度以及匹配/智能异常值去除。


图像处理

  1. 对于 LoFTR,我没有调整图像大小,而是从右侧/底部稍微裁剪了一点图像,这并不影响找到的关键点位置。
  2. 多尺度处理(针对 LoFTR 和 SuperGlue),之后所有的关键点都被重新调整为原始图像大小。

方案配方

公榜分数 0.827,私榜分数 0.828

对于 LoFTR,使用了 TTA(测试时增强):左右翻转,并合并关键点。

  1. LoFTR(通过置信度预过滤关键点)。
    对于多尺度,我统一重新缩放(1.2, 1.2; 1.6, 1.6),并通过运行 MAGSAC 过滤掉异常值最多的部分(置信度 > 0.7),然后重新缩放回原始图像大小。
  2. HardNet(2k个特征点,仅用于非 Google Urban 数据集的图像,基于图像大小判断)。
  3. ALIKE,2k个特征点。
  4. DKM(TTA:左右翻转,500个特征子集,然后取 > 0.7 概率的点),默认设置。
  5. Superpoint + SuperGlue(仅用于 Google Urban 数据,8k个特征,阈值 0.3,图像原始大小,1.2倍缩放,按置信度过滤)。
  6. 合并所有关键点。
  7. Magsac++,参数 0.185, 0.25,取决于是否为 Google Urban 数据,迭代次数 100k。

我在最后一分钟还上传了一个模型,本来想选它的,但没选))) —— 公榜 0.824,私榜 0.831,这是使用了微调后的 DKM 模型的结果。


如果有更多时间投入,可能会奏效的方法:

  1. 关键点 + 线匹配 + 单应性 + 从单应性推导基础矩阵。 我找到了这篇论文并将其迁移到了 Python:IEEE Paper Link,并尝试仅按原样运行多个单应矩阵序列 + RANSAC(没成功,需要更广泛地测试,可能有 bug)。我认为这是一个可以尝试与线匹配结合的想法。或者甚至可以尝试 Progressive-X。但我没有足够的时间。
  2. 寻找相似的数据集进行验证。 这肯定会让事情变得容易得多。为了验证,我使用了 IMC 训练数据集,按相同分布下采样到 2k,但这并不完全一样。
  3. DKM 定制化重训练 —— 我设法进行了微调,并在验证集上提高了约 0.6。我在概率损失上遇到了一些没有完全解决的问题,所以虽然微调了,但没有达到我想要的规模。我还尝试了一些极线损失等想法。
  4. LogPolar(在 MegaDepth 上重训练,确实有一点改善,试图复活它,但太慢了)。
  5. QuadAttentionTree —— 基于简单的调整大小效果不佳,决定放弃。

对我来说没用的方法:

  1. 重训练 NG-RANSAC
  2. ScaleNet (GitHub 链接)
  3. GOPAC
  4. se-LoFRT
  5. SGMNet
  6. HardNet + AdaLAM