返回列表

12th Place Solution - Pushing Limits of COLMAP

652. Image Matching Challenge 2025 | image-matching-challenge-2025

开始: 2025-04-01 结束: 2025-06-02 计算机视觉 数据算法赛
第 12 名解决方案 - 突破 COLMAP 的极限

第 12 名解决方案 - 突破 COLMAP 的极限

作者: Igor Lashkov 及团队成员
发布日期: 2025-06-05
竞赛排名: 第 12 名

祝贺所有参与者——今年再次有近1,000 支队伍
由于指标 bug 导致的竞赛意外变化引起了相当大的混乱,并在关键时刻打乱了我们的计划。
尽管如此……我们想与大家分享我们贡献的一小部分。

概述

我们同时开发了两个不同的提交管道,使用了我们之前的 IMC2024 冠军解决方案。第一种方法仅依赖外部匹配器和 COLMAP 进行重建。第二种方法——与排名靠前的团队策略一致——我们使用了基于 DINOv2 的聚类方法,随后使用 COLMAP 进行场景重建。

管道 1. 仅 COLMAP

对于图像对选择,我们决定不使用任何图像检索方法。相反,我们完全依赖由 ALIKED/LightGlue(图像分辨率分别为 1280 和 2048)和 DISK(分辨率 1536)生成的匹配,以及 COLMAP 提供的聚类能力。具体来说,我们对每个检测器应用了 30 个匹配值的阈值,对于给定图像的所有检测器集成则应用了 80 个匹配值的阈值。与之前的 IMC 类似,为了获得更准确的匹配,我们将图像旋转到自然方向。双视图几何是从图像点对应关系中使用 RANSAC 计算的,而不是 COLMAP 的内部实现。COLMAP 能够生成多个重建模型,每个模型代表一个不同的簇。

COLMAP 增量映射的更改:

colmap_mapper_options = {
    "min_model_size": 3,
    "max_num_models": 10,
}

在这种情况下,无需提供图像来初始化重建。

关键要点:

  • 逐步过滤场景内的唯一图像对,基于匹配数量。
  • ALIKED+LightGlue 微调设置,ALIKED n16 产生的无限制关键点数量和 LG 参数提供了准确的结果。
  • 缓存关键点和描述符,为每个图像生成 ALIKED 关键点。这有助于大量减少运行时间。
  • 多 GPU 加速。混合精度与 GPU T4x2 硬件有助于显著减少图像匹配阶段的时间。我们利用两个 GPU 并行执行 SfM(运动恢复结构)。
  • 匹配 TTA(测试时增强)。 从不同尺度的高分辨率图像中提取的匹配集成。在 LB(排行榜)实验中,最佳结果是通过结合 1280、1536 和 2048 分辨率以及原始和裁剪图像获得的。

管道 2. 聚类

我们尝试使用全局特征描述符提前对数据集图像进行聚类。
与我们最终提交使用的匹配所有图像并基于 COLMAP 输出进行聚类的方法相比,这种方法在约 3/4 的处理时间内实现了几乎相同的分数。

处理步骤概述

  1. 特征提取和构建旋转鲁棒相似性矩阵

    • 使用特征提取模型(如 DINOv2)获取每个图像的嵌入向量。
    • 提取每个图像四个旋转版本(0°、90°、180°、270°)的特征,并计算这些方向之间的成对相似性。
    • 对于每个图像对,保留最高相似性分数及其对应的旋转,从而生成旋转鲁棒的相似性矩阵。
  2. 第一阶段聚类(粗聚类)

    • 使用相似性矩阵,找到每个图像的前 N 个最近邻,并连接相似性超过选定阈值的对。
    • 将生成的邻接矩阵视为图,并提取连通分量以形成初始簇。
  3. 第二阶段簇合并(小簇 consolidation)

    • 对于仍然较小的簇,通过计算与其他簇的匹配图像对数量来搜索合并目标。
    • 对簇间具有高相似性的前 K 对进行 ALIKED+LG 匹配,合并具有特定匹配数量的簇。
  4. 异常值处理

    • 合并后大小仍然极小的簇被重新分配到“异常值”簇。

一些见解

  • 我们尝试了 DINOv2SigLIP-v2 等模型,但 MegaLoc 在私有测试集上作为特征提取器显示出最佳性能。
  • 就 CV(交叉验证)和 LB 分数而言,基于图的聚类方法比 HDBSCAN 更有效。我们的假设是,即使在同一场景内,许多“链状”或“桥接”图像的存在也减少了高密度区域。因此,像 HDBSCAN 这样的基于密度的聚类方法可能不太适合此类数据。

分数与处理时间

方法 公有榜 私有榜 处理时间
COLMAP 基础聚类 41.86 44.56 8 小时 45 分
MegaLoc 预聚类 40.99 44.28 6 小时 40 分
  • 所有结果均使用相同的匹配设置获得:ALIKED1280 + ALIKED2048 + DISK1536,这在私有测试集上显示出最佳性能。

未成功的想法:

  • TTA 多裁剪 用于图像对过滤。
  • 不同的检测器、匹配器。 我们测试了 SP/SG, LoFTR, OmniGlue, GIM。最终,ALIKED, LightGlue 和 DISK 是我们最好的 LB 选择。
  • VGGT。 内存不足。
  • 最新 COLMAP 版本 3.11.1。 与 0.6.1 相比,分数下降。
  • GLOMAP:与 COLMAP 相比,GLOMAP 意外地引发了超时异常。

总之,在你的方法中仅使用 COLMAP 可以使你非常接近金牌。
下次竞赛再见!

同比赛其他方案