652. Image Matching Challenge 2025 | image-matching-challenge-2025
我很兴奋能参加这次伟大的竞赛。
非常感谢组织者和 Kaggle 团队 hosting 如此惊人的挑战。我也想感谢 Kaggle 社区和 fellow participants 分享宝贵的见解、讨论和 notebooks——这是一个学习、实验和提升技能的绝佳机会。
作为这类竞赛的相对新手,我的实现始于 Baseline: DINOV2+ALIKED+LightGLUE by @octaviograu,并受到之前 @motono0223, @tmyok1984, @igorlashkov 及其合作者解决方案的启发。他们的工作非常有帮助,不胜感激。
我解决方案的核心是 RDD: Robust Feature Detector and Descriptor using Deformable Transformer,该方法将在 CVPR 2025 上展示。
与过去的解决方案类似,我使用了 check_orientation 来修正图像方向。然而,该模型产生了相对较多的假阳性(false positives)。为了缓解这个问题,我应用了 0.9 的置信度阈值;只接受置信度高于此值的预测。
本次竞赛的关键挑战是将杂乱的图像集合进行聚类。这自然导致将问题框架化为二分类问题:确定给定图像对是否属于同一聚类。
为了解决这个问题,我构建了一个使用线性 Transformer 的分类器,用于预测两张图像是否来自同一场景。
由于提供的训练数据本身不足以训练一个鲁棒的模型,我用一个更大的数据集 MegaDepth 进行了增强。我对所有组合图像进行了图像检索以生成候选对,其中包括真匹配和假匹配。标签基于已知的场景结构得出。
训练好的模型在由 IMC 和 MegaDepth 样本组成的验证集上达到了 99% 的准确率。
该模型被证明能有效修剪假匹配。下图显示了在场景 ETs 中应用模型后清理过的图像 graph 示例:

最初,添加这个修剪步骤降低了我的公共 leaderboard 分数——它也移除了一些真配对。为了解决这个问题,我添加了 NetVLAD 检索到的配对作为补偿。对于每个场景,我包括:
这并没有提高公共分数,但显著减少了运行时间,并允许其他实际上可以提高分数的技巧运行。
| 公共分数 | 私有分数 | |
|---|---|---|
| 基线 (Baseline) | 46.27 | 45.16 |
| + 配对移除 (Pair Removal) | 44.89 | 45.15 |
| + 配对移除 + netvlad (min:20; max: 0.12n) | 46.10 | 45.48 |
| + 配对移除 + netvlad (min:20; max: 0.12n) + TTA | 48.02 | 47.88 |