556. Image Matching Challenge 2023 | image-matching-challenge-2023
我们很高兴参加2023年图像匹配挑战赛。感谢主办方、赞助商和Kaggle团队的努力,也祝贺所有参赛者。我们从这场比赛和其他参赛者身上学到了很多。
我们的团队成员包括Xingyi He、Dongli Tan、Sida Peng、Jiaming Sun和周晓巍教授,隶属于浙江大学CAD&CG国家重点实验室。我想对我的队友们的辛勤工作和奉献精神表示感谢。

我们提出了一种从粗到精的SfM框架,旨在从 detector-free 匹配器的最新成功中获益,同时解决 detector-free 匹配器的多视图不一致性问题。
由于竞赛时间限制,我们还结合了"轻量级"稀疏特征检测和匹配方法来确定图像对之间的旋转和最终重叠区域,detector-free 匹配器将在这些区域上执行。
然而,由于 detector-free 匹配器的多视图不一致性,直接使用匹配结果进行SfM会导致大量的2D和3D点。难以构建特征轨迹,增量式建图阶段将极其缓慢。
我们的从粗到精框架通过首先使用置信度引导的合并方法对匹配进行量化来解决此问题,提高一致性的同时牺牲匹配精度。我们使用合并后的匹配重建一个粗略的SfM模型。
然后,我们通过一种新颖的迭代优化流程来优化粗略的SfM模型,该流程在基于注意力的多视图匹配模块(用于优化特征轨迹)和几何优化模块(用于提高重建精度)之间迭代。
对于每张图像,我们使用图像检索方法选择k个相关图像。在此过程中,我们未发现不同检索方法之间存在显著差异。这可能归因于评估数据集中相对较少的图像或场景数量。
竞赛数据集中包含一些带有旋转图像的场景。由于许多流行的基于学习的匹配方法无法有效处理这种情况,我们的方法与其他许多参赛者类似,将查询图像旋转多次[0, π/2, π, 3π/2],并分别与目标图像进行匹配。这有助于缓解图像旋转导致的匹配点数量急剧减少的问题。
与去年的解决方案一样,估计重叠区域是一种常用的技术。我们使用第一轮匹配来获得重叠区域,然后在其中进行第二轮匹配。根据面积比例,我们调整一张图像中较小区域的大小,使其与较大区域对齐。我们发现稀疏匹配器能够平衡效率和效果。
我们发现多种方法的集成往往优于任何单一方法。由于时间限制,我们选择了一种稀疏方法(SPSG)和一种稠密方法(LoFTR)的组合。我们还发现用DKMv3替代LoFTR在本竞赛中表现更好。

如图2所示,detector-free 匹配器(如LoFTR)在图像中产生的特征位置取决于另一张图像。这种依赖于图像对的特性导致在多视图上运行成对匹配时产生零散的特征轨迹,使得detector-free 匹配器无法直接应用于现有的SfM系统(如COLMAP)。
此外,对于稀疏检测和匹配部分,由于裁剪的图像重叠区域也与另一张图像相关,在裁剪图像上重新检测关键点进行匹配也存在相同的多视图不一致性问题。
此问题通过以下从粗到精的SfM框架解决。
在此阶段,我们首先致力于通过合并来提高一致性,重建一个初始的粗略SfM模型,该模型将在优化阶段进一步优化以获得更高的姿态精度。
匹配完成后,我们基于置信度合并每张图像上的匹配以提高SfM的一致性(可重复性)。对于每张图像,我们首先聚合其与其他所有图像的匹配结果,然后使用窗口大小为5的NMS将匹配合并为具有局部最高置信度的点,如图1(2)所示。NMS之后,2D点的数量可以显著减少,如果总点数仍超过阈值,则按置信度排序选择每张图像的前10000个点。
基于合并后的匹配,我们使用COLMAP执行粗略SfM。注意,由于RANSAC已在匹配阶段执行,因此跳过几何验证。对于具有大量图像的场景重建(本竞赛约250张),我们启用COLMAP中的并行化光束法平差(PBA)。具体而言,由于PBA使用PCG求解器,这是BA问题的近似解,与Ceres中使用的Levenberg-Marquardt(LM)求解器的精确解不同,我们仅在注册了大量图像(即>40)后才启用PBA。这是基于重建初期非常关键的直觉,PBA的近似解可能导致场景的初始化不良。
我们接着优化初始SfM模型以获得改进的相机姿态和点云。为此,我们提出了一种迭代优化流程。在每次迭代中,我们首先使用基于transformer的多视图优化匹配模块提高特征轨迹的精度。然后将这些优化的特征轨迹输入几何优化阶段,该阶段联合优化相机姿态和点云。几何优化在几何光束法平差和轨迹拓扑调整(包括补全轨迹、合并轨迹和过滤观测)之间迭代。优化过程可执行多次以获得更高精度。
我们的特征轨迹优化匹配模块在MegaDepth上训练,更多详情将在我们即将发布于arXiv的论文中。
| 方法 | 分数(私有) |
|---|---|
| SPSG | 0.482 |
| SPSG+LoFTR | 0.526 |
| SPSG+LoFTR+优化 | 0.570 |
| SPSG+DKM+优化 | 0.594 |
^仅在Haiper数据集中替换LoFTR
除了NetVLad,我们还尝试了Cosplace,以及使用SIFT+NN作为轻量级检测和匹配器进行检索。然而,没有明显改进,甚至在我们的框架中表现略逊于NetVLad。我们认为这可能是因为图像对构建在整个流程的最开始阶段,而我们的框架对图像对变化相当鲁棒。
除了Superpoint + Superglue,我们还尝试了Silk + NN,但其表现不如Superpoint + Superglue。我认为可能是因为我们没有成功调整它在我们的框架中工作。
除了LoFTR,我们还在框架中尝试了Matchformer和AspanFormer。我们发现Matchformer与LoFTR性能相当但速度更慢,会导致超时。AspanFormer在本挑战赛的框架中使用时表现不如LoFTR。
我们观察到在建图过程中可能有图像未能成功注册。我们的想法是"关注"这些图像,将其视为视觉定位问题,尝试将它们注册到现有的SfM模型中。我们使用专门训练用于定位的LoFTR版本,在提供的训练数据集上可带来约3%的改进。然而,我们在提交时没有多余的时间配额,因此未能在最终提交中成功评估视觉定位。
我们观察到匹配阶段执行的RANSAC、建图阶段的RANSAC PnP以及COLMAP中的光束法平差多线程都可能包含随机性。经过仔细评估,我们发现匹配和建图中的RANSAC随机种子是固定的。通过将COLMAP中的线程数设置为1可以消除随机性。因此,我们的提交在多次重新运行后可以获得完全相同的结果,这有助于我们评估框架的性能。
鉴于我们的框架随机性问题已解决,我们观察到在DDL前一周的提交比之前的相同配置提交慢约20分钟。在DDL前使用DKM作为detector-free匹配器的最终提交已经超时,我们相信这可能带来改进,并决定将其作为最终提交之一。我们在DDL后重新运行此提交版本,它可以在时间限制内成功完成,最终得分达到59.4。

我们的团队成员已连续三年参加IMC竞赛(IMC 2021、2022和2023),我们很高兴看到越来越多的参与者,今年的提交数量也创下新高。我们非常享受今年的竞赛,因为特征匹配最重要的应用之一就是SfM。主办方取消了IMC2021仅限匹配提交的限制,而是限制运行时间和计算资源(仅提供具有2个CPU核心和1个GPU的机器),使竞赛更加有趣、更具挑战性和灵活性。再次感谢主办方、赞助商和Kaggle团队!
我们还有一些建议:注意到今年竞赛的场景主要是户外数据集。我们认为可以添加更多类型的场景,例如具有严重纹理缺失区域的室内和物体级场景。在我们最近的研究中,我们也收集了具有真实标注的物体中心的纹理缺失SfM数据集。我们认为这可能对未来的IMC竞赛有帮助,如果需要,我们很乐意与主办方分享。
特别感谢以下开源软件和论文的作者:COLMAP、SuperPoint、SuperGlue、LoFTR、DKM、HLoc、pycolmap、Cosplace、NetVlad。