556. Image Matching Challenge 2023 | image-matching-challenge-2023
我将参加在温哥华举行的CVPR IMW会议。非常期待与大家交流学习!
基本上,立体匹配部分与2022年获胜方案相同,即基于DBSCAN的裁剪和多尺度集成方法。除此之外,我的方案主要特点是:改进候选列表、提升计算效率以及旋转校正。

在基线方法中,使用全局描述符的欧氏距离通过阈值过滤立体匹配候选。然而,由于不同数据集的距离尺度不同,我认为使用统一的阈值并不合适,这对未知数据集缺乏鲁棒性。
由于每个场景的图像数量最多只有约200张,因此可以使用非常轻量的模型对所有图像组合执行立体匹配和RANSAC验证。候选列表通过基于内点数量提取每张图像的k个最近邻生成。
轻量模型可能匹配效果不够好,某些场景会产生无法匹配任何图像的图像。这会导致相机位姿估计失败,因此致命。为此,我们通过匹配关键点数量来补充添加图像对,确保所有图像至少有k个邻居。
轻量模型:我使用SPSG作为轻量模型。为提高效率,关键点数量设置为512个,如SuperGlue论文附录B图11所示。

SuperGlue预训练模型的一个显著弱点是缺乏旋转鲁棒性。这在IMC2023训练集的塞浦路斯场景遗产数据集中尤其明显。我通过简单旋转图像解决了这个问题,无需训练。


具体来说,准备了4个不同旋转角度的图像,并使用轻量模型进行匹配。所有图像都调整为相同尺寸(840x840)并批量处理。
GPU密集型和CPU密集型任务可以并行执行以提高效率。具体来说,COLMAP BA是CPU密集型任务,而立体匹配是GPU密集型任务。因此,我在独立线程中实现了COLMAP处理,使其与立体匹配并行运行。
仅在本地环境中验证了一些困难场景。特别是有174张图像的酒神场景,作为调整算法避免超时的参考。
| 场景 | 图像数 | 得分 | 时间(本地环境) |
|---|---|---|---|
| bike | 15 | 0.9342 | 134秒 |
| kyiv-puppet-theater | 27 | 0.7781 | 291秒 |
| cyprus | 30 | 0.6239 | 312秒 |
| wall | 43 | 0.4753 | 851秒 |
| dioscuri | 174 | 0.8775 | 2045秒 |
我的最佳提交运行时间为7小时40分钟,远低于9小时的时间限制。因此我在最后一天添加了LoFTR进行集成,但Kaggle服务器出现故障,笔记本仍在运行中。如果笔记本能成功处理,我的最佳提交效果可能会更好。

最后一天无法提交的问题非常令人压力。2019年Google Landmark Recognition也发生过类似情况。我祈祷这类问题不要再发生🙏
尝试的事情太多,独自完成很困难:-)