ICLR 2024 Spotlight(前5%)!厦门大学、Intel、大疆联合出品,从网络视频中学习零样本图像匹配大模型。
论文主页:https://xuelunshen.com/gim
论文地址:https://arxiv.org/abs/2402.11095
论文视频:https://www.youtube.com/watch?v=FU_MJLD8LeY
代码地址:https://github.com/xuelunshen/gim
在线模型:https://huggingface.co/spaces/xuelunshen/gim-online
Blog: https://community.intel.com/t5/Blogs/Tech-Innovation/Artificial-Intelligence-AI/Intel-Labs-Research-Work-Receives-Spotlight-Award-at-Top-AI/post/1575985
图像匹配的目标是估计两张图像的像素对应关系,是计算机视觉的一项基础任务。因此,图像匹配是许多视觉应用的基础和前序步骤,诸如:三维重建、视觉定位和神经渲染(neural rendering)等都需要图像匹配进行参与。在传统算法(SIFT)在长基线和极端天气等具有挑战的情况下,匹配的准确度和密度都往往有限。为了解决这些问题,基于深度学习的匹配模型在近几年开始流行。但是,由于缺乏大规模且多样化的具有真值标签的训练数据,目前的匹配模型通常是在 ScanNet 和 MegaDepth 上分别训练室内和室外两个模型。这种针对特定场景的训练限制了它们对zero-shot场景的泛化,使其无法在未知场景下的适用。此外,现有的数据构建方法依赖于RGBD 扫描或SfM+MVS进行重建,其效率和适用性有限,无法有效地扩展数据和模型训练。
为了解决基于深度学习方法泛化性的问题,我们提出了GIM: Learning Generalizable Image Matcher from Internet Videos。GIM是第一个可以让匹配模型从互联网视频中学习到强泛化能力的训练框架。GIM从易于获取、种类繁多且近乎于无限的互联网视频(如图1所示)中提取有效的监督信号用于匹配模型的训练。
图1 部分互联网视频包含的多样场景
GIM框架适用于训练所有匹配模型。如图2所示,三个匹配模型 DKM、LoFTR和SuperGlue分别对应了三种主流匹配范式,分别为:密集匹配、半密集匹配和稀疏匹配。在GIM框架下,用于训练的视频时长越长,匹配模型的性能就会越高。从目前的折线来看,在使用50小时的视频后,性能还没有表现出饱和的现象,因此如果使用更多的视频,性能还会进一步提高。
图2 用于训练的视频时长和模型泛化性能的关系
为了能充分衡量一个匹配模型的泛化性能,作者提出了第一个Zero-shot Evaluation Benchmark (ZEB)。如图3所示,ZEB由12个涵盖各种场景、天气和相机模型的公开数据集组成,大约包含4.6万对测试图片。远多于现有方法普遍采用的,由MegaDepth和ScanNet组成,仅包含3000对图像的测试集。
图2中的模型泛化性能正是来自ZEB的评估结果,具体的评估结果在图4展示。Mean Rank 指标代表匹配模型在12个测试序列中的平均排名,排名越接近于1越好。Mean AUC@5°代表匹配模型对姿态估计的准确度,数值越高越好。从图4可以看到,GIM可以明显的提升匹配模型的泛化性能。在被GIM训练前,SuperGlue和LoFTR在GL3、BLE和GTA序列中甚至不如传统算法RootSIFT。在被GIM训练后,这两个模型的泛化性能都得到了极大的提升。正如刚才所说,50小时的视频数据还远未让模型的性能达到极限。按照作者最新的100小时视频数据训练结果,的性能已经可以达到51.2,远远超过现有的模型。
图4 匹配模型泛化性能评估结果
如图5所示,匹配模型的泛化性能提升同样会给下游任务带来更好的结果。值得注意的是,在图5的重定位任务中,GIM都是仅以一个模型和其他特定场景的模型进行对比,依然取得更好的结果。
图5 匹配模型在下游任务:单应性矩阵估计、室内和室外重定位任务下的性能表现
图6是双视图图像匹配的结果。此外,如图7所示,GIM模型强大的泛化性能还可以处理训练中从未见过的点云鸟瞰图匹配任务。
图6 匹配模型在双视图匹配下的可视化结果
图7 匹配模型在点云鸟瞰图匹配下的可视化结果
COLMAP一直是多视图重建的标准方法,被广泛应用于下游任务,比如visual localization,neural rendering等等。将COLMAP中的匹配方法替换成GIM,我们能够实现更好的多视图重建,极大程度地提升COLMAP的鲁棒性。
由于GIM能够很有效地提升COLMAP多视角重建的质量,在对应的下游任务中GIM也能够有很好的帮助,下面几张图展示了用GIM的COLMAP结果来初始化Gaussian Splatting的效果。可以看到在有挑战性的场景中,基于SIFT和DKM的COLMAP都不能够很好地提供有效的initialization,导致渲染效果不佳。
图9 不同匹配模型在多视图重建后对Gaussian Splatting的影响。读者感兴趣可以去论文主页和介绍视频中观看动态结果。
GIM框架的方法很简洁,方法的核心就是利用视频中帧和帧之间的连续性,将匹配从短距离的帧传递到长距离的帧上,以此获取宽基线的训练图像。
第一步,准备一个用于训练的匹配模型和互联网视频。
第二步,用标准训练数据(非互联网视频,如MegaDepth)训练匹配模型,然后再收集其他补充的匹配方法,用所有这些方法在互联网视频上的短距离间隔的帧上进行匹配,获取较为密集的匹配结果。然后用outlier filtering过滤一遍匹配。
第三步,利用视频的时序关系,将匹配传递到更远的帧上,得到重合度较低和基线较宽的训练图像对。
最后,对传递后的图像对及其匹配标签进行数据增强并进行训练。
下图是GIM在互联网视频上生成的匹配标签可视化。这仅仅是极小的一部分,用于训练的数据的多样性远远多于作者能展示出来的图片。
图11 部分互联网视频标签的可视化
GIM的提出其实受到了GPT等大模型的启发,促使作者用海量的视频数据去训练匹配模型,并达到更高的泛化性能。最后,GIM的主页的地址是xuelunshen.com/gim。欢迎大家去浏览GIM的主页,那里有更详细生动的介绍视频、开源的代码以及可以在线体验GIM匹配效果的HuggingFace Demo。