495. Image Matching Challenge 2022 | image-matching-challenge-2022
首先,我们要感谢主办方(@eduardtrulls, @oldufo)和Kaggle工作人员开启了这项非凡的挑战,让我们有机会毫无障碍地学习、受苦(😏)和成长。他们非常友善,迅速回应问题并留下了有用的参考资料和教程。就我个人而言,虽然我在Kaggle上还是个新手,但我以前从未见过这种情况。
其次,感谢分享你们的notebooks(@remekkinas, @radac98)和想法(@kirderf, @johanedstedt),让我们这些初学者可以从中学习并继续前进。我期待有一天我也能发布这样的notebooks或讨论:
这是我在Kaggle的第二次比赛,但这是我第一次认真投入时间和精力。(下班后的夜晚和周末..😂)而且,我和队友几乎是零背景知识加入这场比赛的,我相信我们这里的许多人都是一样的,我们从这次比赛中学到了很多。所以这对我来说是一个非常有意义的结果 😊
实际上,我们很惊讶其他顶尖队伍至少集成了3-4个模型(虽然我们只用了2个),所以我们从中学习到集成几乎总是有效的。将在接下来的比赛中使用它。
我们观察到匹配点倾向于集中在有希望的区域,而在不确定的区域(如道路)分散。那么为什么不裁剪那些有希望的区域呢?我们首先使用 K-means 对匹配点进行聚类,根据点的数量找到最有希望的聚类,并选取该聚类的中心点进行裁剪。我们从图像1中裁剪该区域(512x512),从图像2中提取相应区域(512x512),将它们设置为新的图像对,并运行模型以获得更有意义的匹配点。这种方法即使没有集成也提高了我们的分数。
此外,我们尝试裁剪两个有希望的区域以获得越来越多的匹配点。起初它有效并提高了我们的分数。然而,这种方法推理时间太长,限制了我们可以用于实验其他方法的资源,所以我们改变了方向。
我们从上一届IMC2021挑战赛获胜队伍(DenseMatching)那里得到了这个想法,他们首先基于粗略匹配的单应性矩阵对图像1进行变形,然后用新的变形图像对获得更准确的结果。我们的实现方式类似,首先使用 cv2.findHomography 为原始图像对(1->2 和 2->1) 用LoFTR计算单应性矩阵,获得新的两个图像对(warped_image1/image2 & image1/warped_image2),对这两对都运行模型,并连接得到的匹配点。
集成LoFTR和DKM绝对有助于提高我们的分数。LoFTR在需要一般和基于全局上下文理解的情况下更加稳健和强大。另一方面,DKM在局部和有希望的区域表现更好。因此,我们使用Lo