652. Image Matching Challenge 2025 | image-matching-challenge-2025
感谢组织者和 Kaggle 团队举办这场激动人心的比赛。祝贺所有参赛者。虽然我早在 2022 年就首次参加了 IMC,但很高兴这次我取得了有史以来最好的成绩。
今年,我专注于利用最新的 3D 几何基础模型,如 MASt3R 和 VGGT。我对它们的潜力感到惊讶。向开发这些优秀模型的作者们致敬。
我开发了一个基于 MASt3R 的简单流程。
据我尝试,在 IMC25 上,使用 MASt3R 的局部特征头进行图像匹配,似乎比其他基于检测器的方法(如 ALIKED+LG)取得了显著更好的结果。

我观察到,基于 MASt3R 的匹配比其他方法实现了更高的精度(即更少的误匹配),因此它可以在基于检测器的方法通常失败的杂乱场景中匹配图像。
我认为以下几点可能对鲁棒匹配有用:
通过简单地将 MASt3R 模型用作半稠密无检测器匹配器并将其集成到通用的 COLMAP 流程中,我在公开排行榜 (PublicLB) 上取得了 42-45 的分数。此外,我发现增加图像对的数量可以提高分数,达到约 50 分。因此,我认为如何在有限的计算时间内增加图像对数量可能是一个重要的考虑因素。
我开发了一种基于 MASt3R 匹配的预聚类方法,但该方法未在最终版本中采用。事实证明,由于图像匹配主要使用 MASt3R,因此无论我使用预聚类还是来自 COLMAP 的多次重建,都没有显著差异。
预聚类(未使用)方法概述如下:
由于 MASt3R 匹配器比基于检测器的方法计算量更大,因此匹配图像对的候选列表仍然很重要。
我通过取多个图像检索结果的邻居的并集,生成了场景中用于匹配的候选对。我使用了以下四种全局特征进行图像检索。
虽然 MASt3R-ASMK 可以提取具有足够覆盖率的图像对,但添加其他模型略微提高了分数。
| 特征 (Features) | 参数 (Parameters) |
|---|---|
| MASt3R-ASMK | n=10, k=25 (参见 MASt3R-SfM 论文) |
| MASt3R-SPoC | topk=10 |
| DINOv2 | topk=10 |
| ISC | topk=10 |
注意,仅使用具有更重设置的 MASt3R-ASMK(例如 MASt3R-ASMK(n=10, k=60))也可以获得高分,但所提出的方法在获得相似分数的同时速度更快。
首先,通过 MASt3R 计算图像对的匹配。此实现基于官方仓库代码中的 fast_reciprocal_NNs()。我使用了默认参数 subsample=8 和 pixel_tol=5。
除了半稠密匹配外,其他关键点检测器提取的关键点也被输入到 MASt3R 匹配器中(灵感来自 MP-SfM https://arxiv.org/abs/2504.20040)。这些额外的关键点可能会在区域上与 MASt3R 采样的点重叠,但与仅使用 MASt3R 匹配相比,这种方法提高了分数。
我使用了 ALIKED 和 SuperPoint 作为额外的关键点检测器。虽然我也尝试了 SIFT、GIMSuperPoint 和 DaD,但我最终采用了 ALIKED 和 SuperPoint 的组合,因为这种组合产生了最好的 LB 分数。
详细配置如下:
| 模型 (Model) | 参数 (Parameters) |
|---|---|
| MASt3R | size=512, threshold=1.001 |
| ALIKED 检测器 | size=1280, max_keypoints=4096 |
| SuperPoint 检测器 | size=1600, max_keypoints=4096, threshold=0.0005 |
此外,我应用了以下技术使流程更快:
torch.nn.functional.scaled_dot_product_attention。use_amp 参数以正确使用。submission.csv 中按数据集划分的场景子集上并行运行提交流程。根据 Speedy MASt3R (https://arxiv.org/abs/2503.10017),TensorRT 可以进一步加速 MASt3R 模型。但是,我未能转换该模型。
| amy_gardens | fbk_vineyard | ETs | stairs | 公开 (Public) | 私有 (Private) | |
|---|---|---|---|---|---|---|
| 最佳提交 (Best submission) | 40.65 | 72.09 | 59.46 | 15.89 | 52.64 | 56.00 |
| 带预聚类 (w/ Pre-clustering) | 37.02 | 47.25 | 59.46 | 20.35 | 50.22 | 50.93 |
amy_gardens 和 fbk_vineyard 的分数似乎不稳定。stairs 很难(顺便说一句,在我的本地实验中,VGGT 取得了 25.07 的最高分数)TimeoutError。