返回列表

14th Place Solution

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

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

第14名解决方案

作者:Koo (队友: yamash) | 比赛排名:第14名

恭喜所有的获奖者,感谢组织者和所有的参与者。这是我和我出色的队友 @yamash73 共同撰写的总结(非常感谢我们团队的出色合作)。

概述

我们的最终模型是 MatchFormer、QuadTreeAttention、SuperPoint+SuperGlue(2种尺度)和 Patch2Pix 的集成。和其他解决方案一样,我们的解决方案仅使用了预训练权重。

代码: https://www.kaggle.com/code/yamash73/imc2022-14th-place-solution-private-lb-0-839/notebook

注意:我们使用上述 notebook 进行 CV 计算和提交。这两种模式可以通过更改 CFG 类中的 "mode" 参数来切换。

各模型的匹配数量

设置最大匹配数是为了平衡来自 5 个模型的匹配数量,并减少计算时间。在许多情况下,基于 Transformer 的方法(LoFTR/MatchFormer)的匹配数量多于 SuperGlue。

集成模型

我们在最终模型中使用了以下 5 个模型。我们在最终模型中使用了 Patch2Pix,因为 LB/CV 略有提高。但是,分数的变化非常小,因此该模型可能不是最终模型所必需的。

# 模型 分辨率 最大匹配数
1 MatchFormer 840 900
2 QuadTreeAttention 960 900
3 SuperPoint + SuperGlue 2000 450
4 SuperPoint + SuperGlue 1600 450
5 Patch2Pix 2048 400

MAGSAC 参数

我们使用 cv2.findFundamentalMat(mkpts0, mkpts1, cv2.USAC_MAGSAC, 0.2, 0.99999, 18000) 来计算基础矩阵,就像其他团队一样。我们减少了最大迭代次数以减少计算时间。

信任 CV 吗...?

我们使用了两种具有固定随机种子的 CV 分数。

  • 80 张图像的 CV(每个场景 5 张图像):我们使用此 CV 来检查我们的实现是否正确,以及我们的方法是否有潜力产生更好的结果。如果此阶段的 CV 显著降低,我们会重新审查实现或不提交该想法。
  • 800 张图像的 CV(每个场景 50 张图像):在计算 80 张图像的 CV 后,我们计算此 CV 并用它来检查 CV 和 LB 之间是否存在相关性。在这里,我们没有考虑共视性、距离和旋转角度的范围。所以我们看不到 LB/CV 之间有很强的相关性,但 LB 分数较好的提交具有大致相同的 CV 分数(我们的种子中为 0.58~0.60),所以我们一直在检查 CV 是否能达到这个分数。

无效的尝试

  • 语义分割:过滤掉特定类别区域(天空、汽车、人等)中的关键点/匹配。这对 LB/CV 分数从未有过贡献...
  • 使用 ALIKE 进行优化:这是基于 IMC 2021 的解决方案。我们使用 ALIKE 代替 SuperPoint,但 LB 并没有提高。
  • 使用此仓库进行优化:local-feature-refinement。处理时间慢,CV 分数也不好。
  • 其他模型的组合:我们测试了 PDCNet+、ASLFeat 和 COTR。但是,处理时间慢,LB/CV 没有提高。
  • DEGENSAC:我们仅在一次提交中使用了它。当时 LB 分数反而变差了。

可能有效的尝试