第 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 的处理时间内实现了几乎相同的分数。
处理步骤概述
-
特征提取和构建旋转鲁棒相似性矩阵
- 使用特征提取模型(如 DINOv2)获取每个图像的嵌入向量。
- 提取每个图像四个旋转版本(0°、90°、180°、270°)的特征,并计算这些方向之间的成对相似性。
- 对于每个图像对,保留最高相似性分数及其对应的旋转,从而生成旋转鲁棒的相似性矩阵。
-
第一阶段聚类(粗聚类)
- 使用相似性矩阵,找到每个图像的前 N 个最近邻,并连接相似性超过选定阈值的对。
- 将生成的邻接矩阵视为图,并提取连通分量以形成初始簇。
-
第二阶段簇合并(小簇 consolidation)
- 对于仍然较小的簇,通过计算与其他簇的匹配图像对数量来搜索合并目标。
- 对簇间具有高相似性的前 K 对进行 ALIKED+LG 匹配,合并具有特定匹配数量的簇。
-
异常值处理
一些见解
- 我们尝试了 DINOv2 和 SigLIP-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 可以使你非常接近金牌。
下次竞赛再见!
团队成员
Igor Lashkov
Team Leader (Master)
Vladislav Ostankovich
Grandmaster
ammarali32
Master
Jaafar Mahmoud
Master
YumeNeko (kashiwaba)
Grandmaster