652. Image Matching Challenge 2025 | image-matching-challenge-2025
首先,我要感谢组织者和 Kaggle 团队举办这场激动人心的比赛。
我和我的队友 @khlifimohamed 很自豪能获得第 14 名。虽然这是我们的官方排名,但我们还有其他未选提交的方案本可以让我们进入金牌层级。无论结果如何,这段经历都非常有益。

我们使用 DINOv2 提取全局图像嵌入,然后通过 t-SNE 进行降维投影。这些低维特征使用 HDBSCAN 进行聚类,这是一种基于密度的算法,可以根据视觉相似性对图像进行分组,并检测异常值。为了确保聚类的鲁棒性,我们定义了一个置信度分数 𝑠,作为 HDBSCAN 聚类置信度和轮廓系数(silhouette score)之间的调和平均数。仅当 𝑠 > 0.6 时才接受聚类分配。
这部分的解决方案主要基于 2024 年的第一名方案,我们发现该方案非常有效且优化良好。对于局部特征提取和匹配,我们使用 ALIKED 检测关键点,并使用 LightGlue 进行鲁棒匹配。关于参数,我们利用了两种分辨率:1280 和 1088 用于全图,1280 用于裁剪区域。裁剪由 DBSCAN 指导,它识别匹配关键点的密集区域以便专注于相关区域。为了保持运行时间实用(约 6 小时),我们将每张图像的关键点数量限制为 8192 个。对于几何验证,我们也采用了去年解决方案中的自定义 RANSAC 实现。
我们使用 PyCOLMAP v3.11.1 进行增量式 3D 重建。
为了提高重建稳定性并减少随机性,我们固定了用于初始化的第一对图像。第一张图像是匹配最多的那张,第二张图像是与第一张匹配关键点最多的那张。这种初始化 consistently 提高了我们的重建质量和分数。然而,固定初始对引入了重建过程发散的风险。为了克服这个问题,我们实施了一种回退策略:如果 PyCOLMAP 无法收敛,我们迭代测试替代的第二张图像(例如第二佳、第三佳),并选择第一个收敛的重建结果。
当置信度分数 𝑠 > 0.6 时(如第 2 节所述),
我们利用聚类方法来指导重建。然而,聚类在某些场景中可能会出错。因此,我们采用了以下方法:
当置信度分数 𝑠 < 0.6 或通过聚类重建出现问题时使用此方法。我们对所有图像运行多轮重建,仅移除那些所有配对图像已成功注册的图像。迭代持续进行,直到没有剩余图像。然后,我们应用后处理步骤来合并重建并消除重叠。