GIM: Learning Generalizable Image Matcher From Internet Videos

引用格式】:Shen X, Yin W, Müller M, et al. GIM: Learning Generalizable Image Matcher From Internet Videos[C]//The Twelfth International Conference on Learning Representations. 2023.

网址https://arxiv.org/pdf/2402.11095

开源代码】:https://github.com/xuelunshen/gim

目录

一、瓶颈问题

二、本文贡献

三、解决方案

1. self-training

1.1 Multi-method matching(多方法匹配)

1.2 Label propagation(标签传播)

1.3 Strong data augmentation(数据增强)

2. ZEB: Zero-shot Evaluation Benchmark For Image Matching

四、实验结果

 1、主要结果

1.1 零样本匹配性能的比较结果

1.2 双视图几何

1.3 多视图重建

1.4 域内性能

2. 消融实验

3. 应用

3.1 单应性估计

3.2 视觉定位


一、瓶颈问题

  1. 现有的基于学习的图像匹配方法在特定数据集上表现良好,但在现实世界图像泛化能力不足,特別是在面对不同场景类型时。【泛化能力差】
  2. 现有图像匹配数据集的多样性和规模有限。【数据集局限】
  3. 依赖于RGBD扫描或SfM+MVS的数据集构建方法效率有限,不适合大规模数据和模型训练。【方法局限】

二、本文贡献

  1. 提出了GIM,一个自训练框架,用于学习基于任何使用互联网视频的图像匹配框架的单个可泛化模型。
  2. 提出了一种用于图像匹配的零样本评估基准ZEB。

三、解决方案

    文中指出,训练图像匹配模型需要多视图图像和ground-truth对应关系,数据多样性和规模是其他计算机视觉问题中可泛化模型的关键。为此,文中提出了一个利用互联网视频的自训练框架GIM,基于任何图像匹配架构学习单个可泛化模型。

    GIM可以使用各种视频,但由于互联网视频自然多样且几乎是无限的,文中采用了来自YouTube的50小时的视频,涵盖了26个国家、43个城市、各种闪电条件、动态对象和场景类型。

    标准图像匹配基准由RGBD或COLMAP(SfM+MVS)创建。但是,RGBD扫描需要对场景进行物理访问,很难从不同的环境中获取数据。COLMAP对于视图覆盖密集的地标型场景是有效的,但是它的效率有限,并且在具有任意运动的野外数据上往往失败。尽管目前已有的数据集中有数百万个图像,但由于数千个图像来自一个小场景,多样性是有限的。与之相比,互联网视频不是以地标为中心的,一个小时的旅游视频通常涵盖几公里的范围,并且具有广泛的传播视点,视频中的时间信息还允许我们显著增强监督信号。

1. self-training

    从视频数据中学习的一种简单方法是使用标准的基于COLMAP生成标签;通过文中实验证明它是低效的,并且容易在野外视频中失败。为此,GIM依赖于自训练,首先在标准数据集上训练模型,然后利用训练模型的增强输出(视频)来提高相同架构的泛化能力。

1.1 Multi-method matching(多方法匹配)

    GIM框架首先选定一个图像匹配框架,并在标准的领域特定数据集上进行训练,来获得一个基础模型,作为“基础标签生成器”。对于每个视频,GIM均匀地采样图像,每隔20帧采样一次,以减少冗余。对于每个采样得到的帧X,GIM生成帧X与X+20、X+40和X+80之间的基础对应关系。这些对应关系通过在基础标签生成器的输出上运行鲁棒拟合算法【MAGSAC: Marginalizing Sample Consensus】来得到,实现过滤掉异常值的目的。最后通过融合不同方法生成的对应关系,GIM能够创建一个更加密集和可靠的对应关系集合。

1.2 Label propagation(标签传播)

    标签传播目的是利用视频中帧之间的密集对应关系,将已经确定的对应关系从近邻帧扩展到更远的帧,从而增强帧信号并提高模型的泛化能力。文中定义C^{AB}\in \left \{ 0,1 \right \} ^{r^{A}\times r^{B}}作为图像I^{A}I^{B}之间的对应关系矩阵,其中r^{A}r^{B}分别是I^{A}I^{B}中的像素数。矩阵中的元素c_{ij}^{AB}=1表示I^{A}中的第i个像素与I^{B}中的第j个像素对应。通过给定的两幅图对应关系C^{AB}C^{BC},来获得对应关系C^{AC}。对于C^{AB}中的每个非零元素c_{ij}^{AB},如果在C^{BC}中也存在一个c_{j'k}^{BC}=1,并且IB中的j和j'之间的距离小于1像素,则在C^{AC}中设置c_{ik}^{AC}=1,故I^{A}I^{C}在位置(i,k)上存在对应关系。

    为了获得强监督信号,文中设置,只要两幅图像之间存在超过1024个一应关系,就尽可能远地传播这些对应关系,传播是在每个采样帧(20帧间隔)上单独执行的。在每个传播步骤之后,文中将具有对应关系的每个图像对的帧间隔加倍。例如,最初文中在每个 20、40 和 80 帧之间都有基本对应关系。经过 1 轮传播后,文中将每 20 帧的基本对应关系传播到每 40 帧,并将传播的对应关系与基本对应合并。现在文中有了每 40 帧的合并对应关系,文中执行相同的操作来为每 80 帧生成合并的对应关系。由于文中没有超过 80 帧的基本对应关系,因此剩余的传播轮次不执行合并操作并保持帧间隔加倍,直到文中没有超过 1024 个对应关系。文中强制最小对应数为1024,目的是为了使模型不偏向于困难或容易的样本。

1.3 Strong data augmentation(数据增强)

    数据增强是为了在训练过程中提供更好的监督信号,帮助模型学习到更加鲁棒的特征表示。文中在处理视频数据时,对于每对视频帧,文中在现有方法中使用的标准增强之外执行随机透视转换,以达到缓解两个视频帧的相机模型相同且相机大多位于正面,没有太多的滚动旋转的问题。

2. ZEB: Zero-shot Evaluation Benchmark For Image Matching

    现有的图像匹配框架通常在同一域内数据集 (MegaDepth 上训练和评估模型用于室外模型和 ScanNet用于室内模型)。为了分析单个模型对野外数据的鲁棒性,文中通过合并8个真实数据集和4个具有不同图像分辨率、场景条件和视图点的模拟数据集来构建一个新的评估基准ZEB。

    对于每个数据集,文中从5个图像重叠率(从10%到50%)中统一采样大约3800个评估图像对。因此,最终的 ZEB 基准包含来自各种场景和重叠比的 46K 评估图像对,与现有方法中使用的 1500 个域内图像对相比,其多样性和规模要大得多。

    下面实验的度量标准:

    按照标准评估协议 ,文中报告了 5° 内相对位姿误差的 AUC,其中位姿误差是旋转角误差和平移角误差之间的最大。相对位姿是通过使用图像匹配方法和RANSAC的输出对应关系来估计基本矩阵来获得的。遵循零样本计算机视觉文献【Towards Robust Monocular Depth Estimation: Mixing Datasets for Zero-shot Cross-dataset Transfer】,文中还提供了 12 个跨域数据集的平均性能排名。

四、实验结果

 1、主要结果

1.1 零样本匹配性能的比较结果

1.2 双视图几何

1.3 多视图重建

​​​​​​​​​​​​​​1.4 域内性能

域内数据仍然可以取得整体最好的性能(室内室外平均)

2. 消融实验

3. 应用

3.1 单应性估计

3.2 视觉定位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/736490.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用 axios 进行 HTTP 请求

使用 axios 进行 HTTP 请求 文章目录 使用 axios 进行 HTTP 请求1、介绍2、安装和引入3、axios 基本使用4、axios 发送 GET 请求5、axios 发送 POST 请求6、高级使用7、总结 1、介绍 什么是 axios axios 是一个基于 promise 的 HTTP 库,可以用于浏览器和 Node.js 中…

高职人工智能专业实训课之“图像识别基础”

一、前言 随着人工智能技术的迅猛发展,高职院校对人工智能专业实训课程的需求日益迫切。唯众人工智能教学实训平台作为一所前沿的教育技术平台,致力于为学生提供高效、便捷的人工智能实训环境,特别在“图像识别基础”这一关键课程中&#xf…

JVM 相关知识整理

文章目录 前言JVM 相关知识整理1. 新生代和老年代2. 对象的分配过程3. Full GC /Major GC 触发条件4. 逃逸分析4.1.示例4.2. 使用逃逸分析,编译器可以对代码做如下优化 5. 对象的内存分配6. Minor GC 与 Major GC/Full GC的比较:7. 什么对象进入老年代7.1. 大对象直…

(4) cmake编译静态库和动态库

文章目录 静态库整体代码动态库编译整体代码执行结果(静态) 静态库整体代码 static.h #pragma onecevoid static_demo();static.cpp #include "static.h" #include <iostream>void static_demo(){std::cout<<"static demo"<<std::end…

深度学习增强的非线性光纤单像素成像系统

1、光子器件的逆向设计&#xff1a;通过机器学习&#xff0c;特别是深度学习&#xff0c;可以高效地进行光子器件的逆向设计&#xff0c;这在传统的多参数优化问题中尤为重要。 2、超构表面和超材料设计&#xff1a;机器学习被用于设计具有特定光学特性的超构表面和超材料&…

上位机图像处理和嵌入式模块部署(mcu和swd接口)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 最近学习mcu的时候&#xff0c;接触了不少调试器&#xff0c;这里面有daplink、st-link v2、j-link v9。虽然模块的形状可能不太一样&#xff0c;但…

力扣SQL50 销售分析III having + 条件计数

Problem: 1084. 销售分析III &#x1f468;‍&#x1f3eb; 参考题解 Code select s.product_id,p.product_name from sales s left join product p on s.product_id p.product_id group by product_id having count(if(sale_date between 2019-01-01 and 2019-03-31,1,nu…

OpenAPI

大家好我是苏麟 , 今天带来一个前端生成接口的工具 . 官网 : GitHub - ferdikoomen/openapi-typescript-codegen: NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification 安装命令 npm install openapi-typescript-codegen --sa…

对接Shopify电商平台的流程

对接Shopify平台的流程通常包括以下关键步骤&#xff0c;在整个对接过程中&#xff0c;需要密切关注Shopify的API使用限制、认证机制、数据隐私政策等&#xff0c;确保应用的安全性和合规性。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合…

43 mysql insert select 的实现

前言 我们这里 来探讨一下 insert into $fields select $fields from $table; 的相关实现, 然后 大致来看一下 为什么 他能这么快 按照 我的思考, 应该里里面有 批量插入才对, 但是 调试结果 发现令我有一些意外 呵呵 果然 只有调试才是唯一的真理 测试数据表如下 CREATE…

企业中订单超时关闭是怎么做的?我说用延迟消息,面试官让我回去等消息?

文章目录 背景时序图方案对比方案一 被动关闭方案二 定时关闭方案三 Rocket MQ延迟消息 总结 背景 订单超时未支付是电商中的一个核心场景&#xff0c;当用户创建订单后&#xff0c;超过一定时间没有支付&#xff0c;平台需要及时将该订单关闭。需要关闭的主要原因有以下几个&…

基于springboot实现问卷调查系统项目【项目源码+论文说明】

基于springboot实现问卷调查系统演示 摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;问卷信息因为其管理内容繁杂&#xff0c;管理数…

【database3】oracle:数据交换/存储/收集

文章目录 1.oracle安装&#xff1a;swap&#xff0c;dd1.1 创建swap交换区&#xff1a;grep MemTotal /proc/meminfo &#xff08;安装Oracle物理内存要求1024MB以上&#xff09;&#xff0c;grep SwapTotal /proc/meminfo1.2 安装依赖包及改系统核心参数&#xff1a;关闭一些系…

Selenium进行Web自动化测试

Selenium进行Web自动化测试 SeleniumPython实现Web自动化测试一、环境配置 SeleniumPython实现Web自动化测试 一、环境配置 环境基于win10&#xff08;X64&#xff09; 安装Python&#xff1b;安装PyCham安装chomedriver chomedriver下载地址 可以查看本地chrome软件版本下载…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【13】压力压测JMeter-性能监控jvisualvm

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【13】压力压测JMeter-性能监控jvisualvm 压力测试概述性能指标 JMeter基本使用添加线程组添加 HTTP 请求添加监听器启动压测&查看分析结果JMeter Address Already in use 错误解决 性…

电子电气架构——由NRC优先级引起的反思

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

matplotlib之savefig函数

savefig函数 Matplotlib中&#xff0c;savefig函数用于保存图形为文件。通过该函数&#xff0c;你可以将绘制的图形保存为常见的图像文件格式&#xff0c;如PNG、JPEG、SVG等。 matplotlib.pyplot.savefig(fname, dpiNone, bbox_inchestight, pad_inches0.1, formatNone, tra…

C++封装、继承、多态的应用---职工管理系统

C封装、继承、多态的应用—职工管理系统 文章目录 C封装、继承、多态的应用---职工管理系统1.需求分析2.抽象类的建立2.1抽象基类2.2员工类2.3经理类2.4老板类2.5存储类 3.抽象类的实现4.功能函数的实现4.1菜单功能的实现4.2增加职工功能函数实现4.2显示职工功能函数实现4.3删除…

初中英语优秀作文分析-005How to Plan Our Life Wisely-如何明智地规划我们的生活

PDF格式公众号回复关键字:SHCZYF005 记忆树 1 The “double reduction policy” reduces the burden on students and offers us more spare time than before, but how to plan our life wisely? 翻译 “双减政策”减轻了学生的负担&#xff0c;给了我们比以前更多的业余…

DVWA-XSS(Stored)-beef

用Low Level来测试beef的使用 beef配置 如果kali没有beef的&#xff0c;进行下载 apt install beef-xss使用 beef-xss # 命令方式启动 beef-xss-stop # 命令方式关闭 systemctl start beef-xss.service #开启beefsystemctl stop beef-xss.service #关闭…