556. Image Matching Challenge 2023 | image-matching-challenge-2023
感谢竞赛组织者和 Kaggle 团队举办了这场精彩的比赛并提供了坚实的支持。感谢我的每一位团队成员,是他们的创造性视角和努力让我们在比赛中获得了这个名次。
我们的最终模型相当简单。该解决方案基于一个名为 Hierarchical-Localization 的模块化工具箱(典型的 SP+SG 结构实现),关键的改进是将输入分辨率设置为 2000。
当分辨率从 1024 增加到 2000 时,公共排行榜分数从 0.24 提升到了 0.46。当分辨率进一步增加到 3000 时,在训练集上仍有提升(特别是 "wall" 场景)。
confs = {
'superpoint_aachen': {
'output': 'feats-superpoint-n4096-r1024',
'model': {
'name': 'superpoint',
'nms_radius': 3,
'max_keypoints': 4096,
},
'preprocessing': {
'grayscale': True,
'resize_max': 2000, # 将长边缩放到 2000
},
}
}
'superglue': {
'name': 'superglue',
'weights': 'outdoor',
'sinkhorn_iterations': 50,
}
我们的代码存在随机性问题;相同代码的公共排行榜分数差异可达 0.04!遗憾的是,在整个比赛过程中,我们未能找到消除随机性的方法。如果一个改进在多次提交中没有观察到明显提升,我们就认为它是无效的,但仍然可能存在错误。
pycolmap.verify_matches),设置 max_num_trials=40000 没有效果。使用 cv2 读取图像会丢失 EXIF 信息,这不利于重建。但也有反例,"theater" 在信息被移除后得分甚至更高。