返回列表

9th Place Solution: DINOv2-Optimized Filtering

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

开始: 2025-04-01 结束: 2025-06-02 计算机视觉 数据算法赛
第 9 名解决方案:DINOv2 优化过滤
作者: ymg_aq (MASTER)
排名: 第 9 名
发布时间: 2025-06-07

第 9 名解决方案:DINOv2 优化过滤

首先,我要向 2025 年图像匹配挑战赛的组织者表示诚挚的感谢,感谢你们举办了如此鼓舞人心且组织严谨的比赛。

1. 概述

我的方法围绕两阶段哲学设计:一个“宽松的第一阶段”试图不漏掉任何真阳性, followed by“后续阶段”修剪错误匹配。由于比赛的指标是聚类准确率和姿态准确率的调和平均数,牺牲任何一方都会大幅降低最终得分。因此,第一阶段必须保留尽可能多的潜在正确配对,而后续阶段必须抑制误差传播以实现高精度的 3D 重建。

解决方案流程图
  • 两阶段设计:面向召回的第一阶段保留图像对,随后是面向精度的阶段以移除错误匹配。
  • 相似性过滤:保留 DINOv2 余弦相似度 ≦ 0.15 或前 50 个相似度的配对,但当数据集图像少于 100 张时切换为穷举匹配。
  • 多分辨率匹配:在 840 px → 1280 px → 2048 px 下运行 ALIKED + LightGlue,使用 DBSCAN 聚焦密集区域,然后应用 RANSAC 进行最终异常值移除。

2. 解决方案详情

2-1. 相似性过滤 (DINOv2 或穷举匹配)

在预处理和图像对生成中,使用预训练的 DINOv2 模型提取全局特征向量,并计算每对图像的余弦相似度。首先过滤掉相似度低于 0.15 阈值的配对,然后选择前 50 个最相似的配对。如果图像数量少于 100 张,自适应机制会切换为穷举匹配以提高计算效率。

2-2. 多分辨率关键点检测和匹配 (ALIKED + LightGlue)

随后 pipeline 执行多分辨率关键点检测和匹配,重新实现了 IMC 2024 第一名解决方案。在初始阶段,图像调整为 840 像素,并执行感知旋转的匹配。使用 ALIKED 检测器提取最多 1024 个关键点,LightGlue 寻找对应点,并补偿 0°、90°、180° 和 270° 的旋转。在第二阶段,分辨率提高到 1280 像素,检测最多 8192 个关键点,并应用更严格的 0.2 过滤阈值。第三阶段以 2048 像素处理图像以获得最精确的匹配。

匹配后,DBSCAN 聚类识别对应点的高密度区域。基于此分析,计算特征集中的矩形区域;这些成为裁剪区域,有效地限制后续高精度匹配的目标区域。在 1280 像素和 2048 像素下对这些区域进行详细分析,最后整合所有分辨率和区域的结果。在异常值移除和优化阶段,RANSAC 检测并消除不匹配的对应点,最终过滤器移除匹配分数低于阈值的配对,从而完成关键点检测和匹配过程。

2-3. 3D 重建和姿态估计 (COLMAP)

Pipeline 生成的特征、匹配和基础矩阵被转换为 COLMAP 数据库并导入,为 3D 重建提供基础。增量式重建从匹配数量最多的配对开始。光束法平差在逐步添加新图像的同时持续优化模型,同时更新 3D 点云。在不同初始条件下尝试多次重建以找到最佳结果。检测并单独处理独立的场景聚类,并获得最终的相机姿态。聚类标签根据相机模型以直接的方式分配。

2-4. 加速

为了在 2x T4 GPU 上并行处理期间平衡负载,数据集被分为两组,使得图像数量的平方和几乎相等。纠正原始实现中有时发生的不平衡,在某些 pipeline 中将处理时间缩短了约 15%。

3. 分数

训练数据集

数据集 分数 mAA 聚类性
imc2023_haiper 68.08% 73.33% 63.53%
imc2023_heritage 87.56% 77.88% 100.00%
imc2023_theather_imc2024_church 68.24% 51.79% 100.00%
imc2024_dioscuri_baalshamin 91.73% 84.72% 100.00%
imc2024_lizard_pond 72.88% 57.33% 100.00%
pt_brandenburg_british_buckingham 67.70% 78.59% 59.47%
pt_piazzasanmarco_grandplace 87.40% 77.62% 100.00%
pt_sacrecoeur_trevi_tajmahal 93.33% 87.50% 100.00%
pt_stpeters_stpauls 61.35% 79.38% 50.00%
amy_gardens 22.12% 12.44% 100.00%
fbk_vineyard 42.37% 39.77% 45.32%
ETs 64.94% 48.08% 100.00%
stairs 0.00% 0.00% 71.43%
所有数据集平均值 63.67% 59.11% 83.83%

提交结果

第一阶段过滤差异导致的分数。

方法 私有榜 公共榜
DINOv2 (相似度 < 0.15, top-k = 50, 图像数 ≧ 100) 44.69 41.08
DINOv2 (相似度 < 0.3, top-k = 20, 图像数 ≧ 20) 42.93 39.87
穷举匹配 41.74 36.37

4. 失败的尝试

  • 尝试使用贝叶斯优化对 DINOv2 进行自适应阈值调整,但每个评估步骤计算量很大,参数空间无法在时间限制内收敛。
  • 训练了一个独立的二分类器,使用闭合图中的边权重(如内点匹配数量和重投影误差)来识别聚类,但这独立于 COLMAP 的相机模型聚类,当召回率增加时精度急剧下降,导致 F1 分数未改善,因此放弃了该想法。
  • 使用 MicKey 特征的实验导致 LightGlue 匹配图过于密集,变得过连接;累积的闭环误差导致最终姿态发散。
  • 对所有配对应用 LoFTR 然后在过滤后再次应用,大大增加了高分辨率配对的数量,但从粗略传递中保留的不正确对应点在低视差场景中过拟合并错误收敛。
同比赛其他方案