TartanVO: A Generalizable Learning-based VO 论文阅读

news2025/4/7 16:09:53

论文信息

题目:TartanVO: A Generalizable Learning-based VO
作者:Wenshan Wang, Yaoyu Hu
来源:ICRL
时间:2021
代码地址:https://github.com/castacks/tartanvo

Abstract

我们提出了第一个基于学习的视觉里程计(VO)模型,该模型可推广到多个数据集和现实场景,并且在具有挑战性的场景中优于基于几何的方法。

我们通过利用 SLAM 数据集 TartanAir 来实现这一目标,该数据集在具有挑战性的环境中提供了大量多样化的合成数据。此外,为了使我们的 VO 模型能够跨数据集泛化,我们提出了一个大规模损失函数,并将相机内在参数合并到模型中。

实验表明,仅在合成数据上进行训练且无需任何微调的单一模型 TartanVO 可以推广到现实世界的数据集(例如 KITTI 和 EuRoC),在具有挑战性的轨迹上表现出相对于基于几何的方法的显着优势。

Introduction

基于几何的方法 [2,3,4,5] 和基于学习的方法 [6,7,8,9] 都取得了令人印象深刻的进展。然而,为实际应用开发稳健可靠的 VO 方法仍然是一个具有挑战性的问题

一方面,基于几何的方法在许多现实生活中不够稳健[10, 11]。

另一方面,虽然基于学习的方法在许多视觉任务上表现出了强大的性能,包括对象识别、语义分割、深度重建和光流,但我们还没有看到同样的情况发生在 VO 上。

现有的 VO 模型训练的多样性不足,这对于基于学习的方法能够泛化至关重要。
其次,当前大多数基于学习的 VO 模型都忽略了问题的一些基本性质,而这些性质在基于几何的 VO 理论中得到了很好的阐述。

为此,我们提出了一种基于学习的方法,可以解决上述两个问题,并且可以跨数据集泛化。我们的贡献有三个方面。

  1. 我们通过比较不同数量的训练数据的性能来证明数据多样性对 VO 模型泛化能力的关键影响。
  2. 我们设计了一个尺度损失函数来处理单目 VO 的尺度模糊性。
  3. 我们在 VO 模型中创建一个内在层 (IL),以实现跨不同相机的泛化。

Related Work

为了提高性能,端到端 VO 模型往往具有与相机运动相关的辅助输出,例如深度和光流。通过深度预测,模型通过在时间连续图像之间施加深度一致性来获取监督信号 [17, 21]。此过程可以解释为匹配 3D 空间中的时间观察结果。时间匹配的类似效果可以通过产生光流来实现,例如,[16,22,18]联合预测深度、光流和相机运动。

光流也可以被视为明确表达 2D 匹配的中间表示。然后,相机运动估计器可以处理光流数据,而不是直接处理原始图像[20, 23]。如果以这种方式设计,甚至可以根据可用的光流数据单独训练用于估计相机运动的组件[19]。我们遵循这些设计并使用光流作为中间表示

众所周知,单目 VO 系统存在尺度模糊性。然而,大多数监督学习模型没有处理这个问题,而是直接使用模型预测和真实相机运动之间的差异作为监督[20,24,25]。在[19]中,通过将光流划分为子区域并在这些区域之间施加运动预测的一致性来处理尺度。在非学习方法中,如果 3D 地图可用,则可以解决尺度模糊性[26]。 Ummenhofer 等人[20]引入深度预测来校正尺度漂移。 Tateno 等人 [27] 和 Shen 等人 [28] 通过利用 SLAM 系统的关键帧选择技术改善了尺度问题。最近,Zhan 等人[29]使用 PnP 技术来显式求解比例因子。上述方法给 VO 系统带来了额外的复杂性,然而,对于单目设置,尤其是在评估阶段,尺度模糊性并没有完全被抑制。

相反,一些模型选择只产生符合规模的预测。 Wang等人[30]通过在计算损失函数之前对深度预测进行归一化来减少单目深度估计任务中的尺度模糊性。同样,我们将通过定义新的最大尺度损失函数,专注于预测平移方向,而不是从单目图像中恢复全尺寸。

当对来自新环境或新相机的图像进行测试时,基于学习的模型会遇到泛化问题。大多数 VO 模型都是在同一数据集上进行训练和测试的 [16,17,31,18]。一些多任务模型[6,20,32,22]仅测试其在深度预测上的泛化能力,而不是在相机姿态估计上的泛化能力。最近的努力,例如[33],使用模型适应来处理新环境,但是,需要在每个环境或每个摄像机的基础上进行额外的训练。在这项工作中,我们提出了一种通过将相机内在函数直接合并到模型中来实现跨相机/数据集泛化的新颖方法。

Approach

Background

我们关注单目 VO 问题,该问题采用两个连续的未失真图像 { I t , I t + 1 } \{I_t, I_{t+1}\} {It,It+1},并估计相对相机运动 δ t t + 1 = ( T , R ) δ^{t+1}_t = (T, R) δtt+1=(T,R),其中 T ∈ R 3 T ∈ \mathbb{R}^3 TR3 是 3D 平移, R ∈ s o ( 3 ) R ∈ so (3) Rso(3) 表示 3D 旋转。根据对极几何理论[3​​4],基于几何的 VO 有两个方面。

首先,从 I t I_t It I t + 1 I_{t+1} It+1中提取并匹配视觉特征。
然后使用匹配结果,计算导致恢复最大尺度相机运动 δ t t + 1 δ^{t+1}_t δtt+1的基本矩阵。

我们的模型由两个子模块组成。
一个是匹配模块 M θ ( I t , I t + 1 ) M_θ(I_t, I_{t+1}) Mθ(It,It+1),从两个连续的 RGB 图像(即光流)。
另一个是位姿模块 P ϕ ( F t t + 1 ) P\phi(F_t^{t+1}) (Ftt+1),它从匹配结果中恢复相机运动 δ t t + 1 δ_t^{t+1} δtt+1(图 1)。
这种模块化设计也广泛应用于其他基于学习的方法,特别是无监督 VO
在这里插入图片描述

Training on large scale diverse data

泛化能力一直是基于学习的方法最关键的问题之一。之前的大多数监督模型都是在 KITTI 数据集或由微型飞行器(MA V)收集的 EuRoC 数据集 [36]。

大多数无监督方法也只在非常统一的场景中训练模型(例如 KITTI 和 Cityscape [37])。据我们所知,目前还没有基于学习的模型表现出在多种类型场景(汽车/MA V、室内/室外)上运行的能力。为了实现这一目标,我们认为训练数据必须涵盖不同的场景和运动模式。

TartanAir [11] 是一个大规模数据集,具有高度多样化的场景和运动模式,包含超过 400,000 个数据帧。它提供多模态地面真实标签,包括深度、分割、光流和相机姿势。场景包括室内、室外、城市、自然和科幻环境。数据通过模拟针孔相机收集,该相机在 3D 空间中以随机且丰富的 6DoF 运动模式移动。

我们在任务中利用单目图像序列 { I t } \{I_t\} {It}、光流标签 { F t t + 1 } \{F ^{t+1}_t \} {Ftt+1} 和地面实况相机运动 { δ t t + 1 } \{δ^{t+1}_t\} {δtt+1}。我们的目标是共同最小化光流损耗 L f L_f Lf 和相机运动损耗 L p L_p Lp。端到端损耗定义为:
在这里插入图片描述

Up-to-scale loss function

在大多数现有的基于学习的VO研究中,模型通常忽略尺度问题并尝试用尺度来恢复运动。如果模型是使用相同的相机并在相同类型的场景中进行训练和测试的,这是可行的。但一旦相机发生变化就不可行。

按照基于几何的方法,我们仅从单目序列中恢复最大尺度的相机运动。知道尺度模糊度只影响平移 T T T ,我们为 T T T 设计了一个新的损失函数,并保持旋转 R R R 的损失不变。我们为 L P L_P LP 提出了两个大规模损失函数:余弦相似度损失 L p c o s L^{cos}_p Lpcos 和归一化距离损失 L p n o r m L^{norm}_p Lpnorm L p c o s L^{cos}_p Lpcos 由估计的 T ^ \hat{T} T^ 和标签 T T T 之间的余弦角定义:
在这里插入图片描述

Cross generalization by encoding camera intrinsics

在对极几何理论中,从基本矩阵恢复相机位姿时需要相机本征(假设图像未失真)。事实上,基于学习的方法不太可能推广到具有不同相机内在特性的数据。想象一个简单的情况,相机更换了更大焦距的镜头。假设图像的分辨率保持不变,相同量的相机运动将引入更大的光流值,我们称之为内在模糊度。

对于内在模糊性的一个诱人的解决方案是扭曲输入图像以匹配训练数据的相机内在。然而,这不太实用,尤其是当相机差异太大时。如图2-a所示,如果模型在TartanAir上训练,扭曲的KITTI图像仅覆盖TartanAir视野(FoV)的一小部分。训练后,模型学会利用视场中所有可能位置的线索以及这些线索之间的相互关系。扭曲的 KITTI 图像中不再存在一些线索,导致性能急剧下降。
在这里插入图片描述

Instrinsics layer

我们建议训练一个以 RGB 图像和相机内部参数作为输入的模型,以便于该模型可以直接处理来自各种相机设置的图像。
具体来说,我们设计了一个新的姿态网络 P ϕ ( F t t + 1 , K ) P_\phi(F^{t+1}_t , K) Pϕ(Ftt+1,K),而不是仅从特征匹配 F t t + 1 F^{t+1}_t Ftt+1 中恢复相机运动 T t t + 1 T^{t+1}_t Ttt+1 ,该网络也取决于相机内在参数 K = { f x , f y , o x , o y } K = \{f_x ,f_y,o_x,o_y\} K={fx,fy,ox,oy},其中 f x f_x fx f y f_y fy是焦距, o x o_x ox o y o_y oy表示主点的位置。
在这里插入图片描述

Data generation for various camera intrinsics

为了使模型可以跨不同相机推广,我们需要具有各种相机内在特性的训练数据。
TartanAir 只有一组相机内在函数,其中 f x = f y = 320 、 o x = 320 f_x = f_y = 320、o_x = 320 fx=fy=320ox=320 o y = 240 o_y = 240 oy=240。我们通过随机裁剪和调整输入图像大小 (RCR) 来模拟各种内在函数。

如图3所示,我们首先在随机位置以随机大小裁剪图像。接下来,我们将裁剪后的图像调整为原始大小。
在这里插入图片描述
IL 的优点之一是,在 RCR 期间,我们可以使用图像裁剪 IL 并调整其大小,而无需重新计算 IL。为了覆盖 FoV 在 40° 到 90° 之间的典型相机,我们发现在 RCR 期间使用高达 2.5 的随机调整大小因子就足够了。
请注意,地面实况光流还应根据调整大小因子进行缩放。我们在训练中使用非常积极的裁剪和移动,这意味着光学中心可能远离图像中心。尽管所得的内在参数在现代相机中并不常见,但我们发现泛化能力得到了提高

Experimental

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Netty使用和常用组件辨析

Netty 使用和常用组件 简述 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId <version>4.1.42.Final </version> <scope>compile</scope> </dependency> Netty 的优势 1 、 AP…

42. 疯狂爬取王者荣耀所有皮肤高清海报(文末源码)

目录 前言 目的 思路 代码实现 1. 导包&#xff0c;部署好环境 2. 伪装请求头 3. 访问英雄列表&#xff0c;获取英雄ID 4. 分别访问各英雄主页&#xff0c;查看图片详情 5. 写入本地文件夹&#xff08;文件夹自动命名&#xff09; 完整源码 运行效果 总结 前言 阔…

流量、日志分析分析

这周主要以做题为主 先找找理论看然后在buuctrf以及nssctf找了题做 了解wireshark Wireshark是一款开源的网络协议分析软件&#xff0c;具有录制和检查网络数据包的功能&#xff0c;可以深入了解网络通信中的传输协议、数据格式以及通信行为。Wireshark可以捕获发送和接收的数…

冶金化工操作VR虚拟仿真实验软件提高员工们协同作业的配合度

对于高风险行业来说&#xff0c;开展安全教育培训是企业的重点工作&#xff0c;传统培训逐渐跟不上时代变化和工人需求&#xff0c;冶金安全VR模拟仿真培训系统作为一种新型的教育和培训工具&#xff0c;借助VR虚拟现实技术为冶金行业的工人提供一个安全、高效的培训环境。 冶金…

堡塔面板系统加固使用说明

更新日志&#xff1a; 宝塔系统加固5.0- 正式版 2023-08-07 1.加固php 配置文件 2.加固nginx 启动文件 宝塔系统加固4.1- 正式版 1、【修复】系统加固不会随系统启动自动开启的问题 2、【优化】大幅降低CPU使用率 宝塔系统加固4.0- 正式版 1、【增加】等保加固相关加固功能 2、…

Win10聚焦锁屏壁纸保存

前言 Win10聚焦锁屏每天都会推荐新的壁纸&#xff0c;其中有些质量超高的优秀壁纸&#xff0c;用户自然想下载保存下来&#xff0c;下文介绍如何保存。 若用户仅想保存当天的聚焦锁屏壁纸&#xff0c;则推荐方法1&#xff1b;若用户想保存以前的聚焦锁屏壁纸&#xff0c;则推…

git的简单介绍和使用

git学习 1. 概念git和svn的区别和优势1.1 区别1.2 git优势 2. git的三个状态和三个阶段2.1 三个状态&#xff1a;2.2 三个阶段&#xff1a; 3. 常用的git命令3.1 下面是最常用的命令3.2 git命令操作流程图如下&#xff1a; 4. 分支内容学习4.1 项目远程仓库4.2 项目本地仓库4.3…

通过anvt X6和vue3实现图编辑

通过anvt X6 X6地址&#xff1a;https://x6.antv.antgroup.com/tutorial/about&#xff1b; 由于节点比较复杂&#xff0c;使用vue实现的节点&#xff1b; x6提供了一个独立的包 antv/x6-vue-shape 来使用 Vue 组件渲染节点。 VUE3的案例&#xff1a; <template><div…

WebRTC | 信令服务器

目录 一、相关术语 1.NAT 2.STUN服务器 3. TURN服务器 4.打洞 二、WebRTC一对一架构 三、信令 1. 信令传输协议的选择 2. 信令服务器的实现方案 3. 信令服务器的业务逻辑 信令服务器的作用主要有两个&#xff1a;一是实现业务层的管理&#xff0c;如用户创建房间&…

【软件工程】数据流图/DFD概念符号/流程图分层/数据字典

【软件工程】数据流图/DFD概念符号/流程图分层/数据字典 目录 【软件工程】数据流图/DFD概念符号/流程图分层/数据字典 一、数据流图 ( DFD ) 简介 二、数据流图 ( DFD ) 概念符号 1、数据流 2、加工 ( 核心 ) 3、数据存储 4、外部实体 三、数据流图 ( DFD ) 分层 1、…

扫雷(超详解+全部码源)

C语言经典游戏扫雷 前言一.游戏规则二.所需文件三.创建菜单四.游戏核心内容实现1.创建棋盘2.打印棋盘3.布置雷4.排查雷5.game()函数具体实现 五.游戏运行实操六.全部码源 前言 &#x1f600;C语言实现扫雷是对基础代码能力的考察。通过本篇文章你将学会如何制作出扫雷&#xff…

一般透视投影VS正交投影VS弱透视投影

一般透视投影&#xff1a; 正交投影 (Orthographic Projection) 正交投影 (Orthographic Projection) 是一种将三维物体沿着垂直于成像平面的方向投影到成像平面上的方法&#xff0c;它保持了三维空间中的平行关系和角度&#xff0c;但是失去了深度信息和透视效果。正交投影可…

软件测试计划模板的编写

1 概述 在整个系统测试阶段,相关的系统测试工作的开展需要进行各方面的明确,在系统测试计划中主要是针对系统测试阶段各个不同岗位所担负的相关职责,防范由于职责不清所造成的系统测试工作的混乱现象.明确定义相关的系统测试范围,防止由于测试分工而造成的遗测.在该计划中一定…

gitee linux免密/SSH 方式连接免登录

目录 生成SSH公钥通过 ssh-keygen 程序创建找到SSH公钥 在gitee中添加公钥 生成SSH公钥 通过 ssh-keygen 程序创建 shell> ssh-keygen -t rsa -C "xxxxxx.com" Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rs…

《网络是怎样连接的》(三)

《网络是怎样连接的》&#xff08;二.2&#xff09;_qq_38480311的博客-CSDN博客 本文主要取材于 《网络是怎样连接的》 第三章。 简述&#xff1a;本文主要内容是解释 通过网线传输出去的包是如何经过集线器、交换机和路由器等网络设备&#xff0c;最终进入互联网的。 信号…

AI量化模型预测挑战赛 第二次学习笔记

有关竞赛信息以及基础baseline代码解读请看我的上一篇文章 AI量化模型预测——baseline学习笔记_寂ღ᭄秋࿐的博客-CSDN博客 在经过baseline进行详细的分析之后&#xff0c;接下来的方向肯定是奔着提分去的&#xff0c;下面我就从五个方面进行一一列出提分思路 提取更多的特征…

BC260模块_NB通讯_MQTT

闲来无事从角落里找出了一个BC260模块&#xff0c;玩了玩发现挺有趣的&#xff0c;于是将调试过程记录下来分享给需要的朋友们。 1.BC260模块 BC260模块是一款NB-loT无线通讯模块&#xff0c;模块插上物联网SIM卡后可以实现物联网无线通讯功能。 BC260模块是一款NB-loT无线通…

android 开发中常用命令

1.反编译 命令&#xff1a;apktool d <test.apk> -o <folderdir> 其中&#xff1a;test.apk是待反编译文件的路径&#xff0c;folderdir是反编译后的文件的存储位置。 apktool d -f <test.apk> -o <folderdir> 注意&#xff1a;如果dir已经存在&am…

2023年测试岗,软件测试面试题汇总-附答案,疯狂拿offer...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 介绍一下测试流程…

共享式以太网的争用期

在以太网中&#xff0c;必然会发生碰撞。   站点从发送帧开始&#xff0c;最多经过 2 τ 2\tau 2τ就会检测到碰撞&#xff0c;此时 2 τ 2\tau 2τ被称为争用期或碰撞窗口。   站点从发送帧开始&#xff0c;经过争用期 2 τ 2\tau 2τ这段时间还没有检测到碰撞&#xff0c…