MaskVO: Self-Supervised Visual Odometry with a Learnable Dynamic Mask 论文阅读

论文信息

题目:MaskVO: Self-Supervised Visual Odometry with a Learnable Dynamic Mask
作者:Weihao Xuan, Ruijie Ren, Siyuan Wu, Changhao Chen
时间:2022
来源: IEEE/SICE International Symposium on System Integration (SII)

Abstract

深度学习的最新进展使移动机器人能够以自我监督的方式联合学习自我运动和深度图。

然而,现有的方法受到尺度模糊问题和环境问题的困扰,阻碍了实际应用。

我们的工作旨在通过提出一种自监督视觉里程计模型来解决这两个问题,该模型利用图像序列的时间依赖性并从单目相机产生尺度一致的运动变换。

我们提出的框架与新颖的掩模网络集成,以提供可学习的动态掩模,减少场景动态和照明变化的影响。

Introduction

本工作旨在通过提出MaskVO来解决上述两个问题。这种自我监督的 VO 模型学会从图像序列中生成准确且尺度一致的自我运动估计。请注意,我们的模型仅使用单目图像进行训练和测试。

该框架将之前的自监督 VO 模型 [6] 重新表述为顺序学习问题,通过循环神经网络从图像序列中提供视觉特征,以利用它们的时间依赖性。这样做,它为手头的任务提供了更合适的功能。

为了减少环境动态和场景照明变化的影响,我们提出了一种基于动态场景/观察条件的去噪自动编码器(DAE)的新型动态掩模网络。掩模网络是端到端可训练的,提供动态掩模来解决场景问题,以进一步提高性能。

总之,我们的贡献如下:
1)我们为自监督 VO 系统提出了一种新颖的可学习掩模网络,该网络提供动态掩模以消除环境问题的影响;
2)我们引入了一个时间感知的VO框架,该框架利用图像序列中视觉运动的时间依赖性,并提取适合姿势估计的特征,这进一步提高了模型性能;
3)我们在现有尺度一致的 VO 系统的共同基准上进行了实验,我们的模型优于它们。

Methodology

Architecture

这项工作的目的是提出一种自监督学习系统,从未标记的图像序列中重建尺度一致的自我运动。
在这里插入图片描述

如图 2 所示,两个未标记的 RGB 图像 I a I_a Ia I b I_b Ib 堆叠在一起并输入到特征提取器中。
I a I_a Ia I b I_b Ib 是源图像和目标图像。与[6]、[12]不同,我们使用图像序列来利用视觉运动的时间依赖性。
特征时间建模模块提取图像序列的时间信息,由循环神经网络组成。
然后,6-DoF 位姿 P a b P_{ab} Pab 由位姿网络生成。同时,输入图像的深度图由深度网络生成。

投影图像 I a ′ I_{a}^{\prime} Ia 使用 D a 、 I b D_a、I_b DaIb和6-DoF位姿 P a b P_{ab} Pab通过等式5生成。

引入掩模网络将学习到的空间信息合并到框架中,减少场景动态的影响。真实图像 I a I_{a} Ia和合成 I a ′ I_{a}^{\prime} Ia 之间的差异可以用作自监督信号来构造光度损失。它可以约束并强制系统根据不同的输入图像序列估计姿态和深度。

Temporal-aware Feature Encoder

基于卷积神经网络 (CNN) 的特征提取器从两个串联图像中提取视觉特征,然后使用时间建模组件来利用这些特征的时间连接来实现更好的姿势估计。

在这里插入图片描述
与之前的工作[6]、[12]直接从两对图像中提取时间特征不同,我们将这些图像表示为一个序列,然后从该序列中提取特征。由于循环神经网络(RNN)能够捕获序列之间的依赖关系,因此它非常适合将 RNN 结构应用于 VO 问题 [16]。 RNN 维护其隐藏状态并使用以下序列更新它们:
在这里插入图片描述
为了处理长期图像序列的任务,利用了长短期记忆(LSTM)。在训练和测试过程中,我们在序列开头初始化隐藏状态。随着时间信息的引入,自我运动网络中提供了更合适的特征。它有助于解决长期位姿轨迹预测中的漂移问题。

Pose Network and Depth Network

Pose Network.如图 2 所示,PoseNet 结构被设计用于预测图像之间的相机旋转和平移。由于此步骤中获得的特征是由特征提取器仔细选择的,并且重点关注时间信息,因此利用两个全连接层(FCN)来根据高维特征预测 6-DoF 姿势。

Depth Network 这项工作中使用的深度网络架构基于 DispNetS [19],我们用深度残差块 [14] 替换卷积块。在我们的 DispResNet 中,除了预测 6 个不同尺度深度的 6 个层之外,所有卷积层和上卷积层均由 ReLU 激活。为了迫使预测的深度值处于正且合理的范围内,我们通过 1=(α·sigmoid(x) + β) 在不同尺度上添加非线性,其中 α = 10; β = 0:01。

Learn Dynamic Mask Network

我们的主要贡献是可学习的动态掩模网络。

通常,掩模用于解决场景动态和光照变化的问题,但现有的掩模仍然不足以处理这些问题。

例如,[12]和[8]是基于计算的方法,其中掩模是通过一对图像的深度图像的差异来计算的。因此,姿态估计精度与深度估计密切相关,这进一步阻止了这些掩模彻底去除动态对象。

[6]利用简单的编码器-解码器结构来生成掩码。它强制将 mask 训练得接近 1,以避免出现琐碎的结果。然而,这种基于学习的方法只是简单地生成不琐碎的掩模以及姿势估计过程。

在我们的工作中,我们发现深度差是掩模生成的有用信息源。在此背景下,我们提出了一种新型的基于去噪自动编码器(DAE)的可学习掩模网络,以减少场景动态和照明变化的影响。

受 Vincent 等人[20]的启发,我们设计了一种基于条件去噪自动编码器的动态掩模网络

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
因此,掩码网络生成的掩码M在[0; 1]。我们的实验表明,学习到的掩模可以为静态/一致像素分配高权重,为动态/不一致像素分配低权重。我们提出的 MaskNet 结构可以生成更强大的掩模,其性能甚至比点积注意力的工作更好。

Image Synthesis Module

理想情况下,使用光度一致性损失作为约束假设:1)图像场景仅包括静态物体; 2)图像序列之间无遮挡; 3)表面是朗伯表面[6]。然而,在实践中,这些假设无法得到保证,因此我们利用几何一致性损失 LGC 和可学习的动态掩模 M 来解决这些限制。

在这里插入图片描述

Loss Function

方程中4的基本目标函数,主要涉及两个问题:
1)场景动态、遮挡和照明打破了静态场景的假设并影响模型性能;
2)深度和位姿的尺度不一致[6]。

为了解决这两个问题,我们提出了可学习的动态掩模 M 来处理动态场景、遮挡和照明。受[12]的启发,我们引入了几何一致性损失LGC,使框架能够产生比例一致的姿态估计。整体损失函数定义如下
在这里插入图片描述
等式4的光度loss就变为
在这里插入图片描述
为了将掩模引入到整个系统中,我们将 M 添加到光度损失函数中:
在这里插入图片描述
由于缺乏信息,光度损失无法处理低纹理区域和均匀区域。方法[23]和[12]在生成深度图正则化之前利用平滑度损失。

在这里插入图片描述
那么几何一致性损失定义为
在这里插入图片描述
借助几何一致性约束,包括位姿估计模块和深度估计模块在内的整个框架将以尺度一致性进行训练

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

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

相关文章

正版软件 | CloudDrive 多云盘本地挂载管理工具

前言: CloudDrive 是一个强大的多云盘管理工具,提供一站式的多云盘解决方案,包括云盘本地挂载。旨在无缝集成多个云存储服务,统一整合到一个界面。轻松管理和访问所有云存储服务,无需在不同的应用程序和界面之间切换。…

【Go基础】编译、变量、常量、基本数据类型、字符串

面试题文档下链接点击这里免积分下载 go语言入门到精通点击这里免积分下载 编译 使用 go build 1.在项目目录下执行 2.在其他路径下编译 go build ,需要再后面加上项目的路径(项目路径从GOPATH/src后开始写起,编译之后的可执行文件就保存再…

matlab和python做zscore结果不一样的问题

解决matlab和python做zscore标准化结果不一样的问题 总结: matlab和python做zscore时使用的求std公式的默认方法有差异,导致了结果差异。 想要结果相同则使用以下代码: td rand(50,15,39)%td是三维矩阵,求zscore结果 #Python代码&#xf…

人工智能客服:是跨境电商未来的趋势吗?

随着跨境电商的快速发展,客户服务成为了商家们越来越关注的焦点。而在客户服务领域中,人工智能客服正逐渐崭露头角。那么,人工智能客服是否是跨境电商未来的趋势呢?本文将探讨这个问题,并揭示人工智能客服的潜力和优势…

JS返回NodeList和HTMLCollection详解

HTML DOM 集合 (Collection) 概述 HTML DOM 集合 (Collection) 是一组 HTML 元素,这些元素可以通过 JavaScript 代码进行访问和操作。HTML DOM 集合通常由一个或多个 HTML 元素组成,并提供了访问和操作这些元素的方法。HTML DOM 集合在 JavaScript 中非常…

【前端demo】CSVJSON转换器 原生实现:CSV转换为JSON,JSON转换为CSV

文章目录 效果过程textareaTooltip提示工具按钮的min-width判断输入是否是CSV或JSONJSON与CSV样例JSON转为CSVCSV转为JSON不足之处 代码HTMLCSSJS 其他demo 效果 效果预览:CSV&JSON Converter (codepen.io) 参照的预览:JSV Converter(gpaiva00.git…

Redis未授权访问漏洞实战

文章目录 概述Redis概述Redis 介绍Redis 简单使用Redis未授权漏洞危害 漏洞复现启动靶场环境POC漏洞验证EXP漏洞利用 总结 本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责! 概述 ​ 本文章主要是针对于vulh…

5、Spring之Bean生命周期源码解析(销毁)

Bean的销毁过程 Bean销毁是发送在Spring容器关闭过程中的。 在Spring容器关闭时,比如: AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); UserService userService = (UserService) context.getBean("userSe…

​Vue + Element UI前端篇(二):Vue + Element 案例 ​

Vue Element UI 实现权限管理系统 前端篇(二):Vue Element 案例 导入项目 打开 Visual Studio Code,File --> add Folder to Workspace,导入我们的项目。 安装 Element 安装依赖 Element 是国内饿了么公司提…

Python入门学习12

一、Python包 什么是Python包 从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文件。从逻辑上看,包的本质依然是模块 包的作用: 当我们的模块文件越来越多时,包可以帮助我们管…

在外SSH远程连接macOS服务器【cpolar内网穿透】

文章目录 前言1. macOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接macOS3.1 macOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …

划片机实现装片、对准、切割、清洗到卸片的自动化操作

划片机是一种用于切割和分离材料的设备,通常用于光学和医疗、IC、QFN、DFN、半导体集成电路、GPP/LED氮化镓等芯片分立器件、LED封装、光通讯器件、声表器件、MEMS等行业。划片机可以实现从装片、对准、切割、清洗到卸片的自动化操作。 以下是划片机实现这些操作的步…

既然有 HTTP 协议,为什么还要有 RPC

HTTP和RPC 什么是HTTP HTTP协议(Hyper Text Transfer Protocol),又叫做超文本传输协议。平时上网在浏览器上敲个网址就能访问网页,这里用到的就是HTTP协议。 什么是RPC RPC(Remote Procedure Call)&…

小程序 target 与 currentTarget(详细)

小程序中关于事件对象 e 的属性中有两个特别重要的属性:target与currentTarget属性:对于这两个属性,官方文档上的解释是: target:事件源组件对象currentTarget:当前组件对象由于官方解释太过精炼,下面仔细讲讲其中的含义,先看一段代码: <view id="outter&quo…

iPhone 14四款机型电池容量详细参数揭秘

苹果推出的iPhone 14系列与2021系列的设计和外形尺寸相同&#xff08;仅缩小了几分之一毫米&#xff09;&#xff0c;所以这并不奇怪&#xff0c;但电池容量也大致相同。 虽然可能不足以对电池寿命产生可衡量的影响&#xff0c;但也存在微小的差异。不同的是&#xff0c;现在有…

【OceanBase概念】国产数据库OceanBase的那些事儿(1)初识OceanBase

文章目录 写在前面涉及知识点1、OceanBase是什么&#xff1f;1.1基本概念1.2发展历史 2、TPC-C认证2.1什么是TPCC2.2OceanBase认证成果 3、OceanBase应用场景3.1行业应用A、金融行业B、电信运营行业C、保险行业D、初创互联网行业 3.2内部应用A、支付宝B、淘宝C、网商银行D、Pay…

实现Map批量赋值,我只需24秒搞定!

函数的功能是将一组键值对批量赋值给Map中的键。在Java中&#xff0c;通常使用Map的put方法逐个将键值对赋值给Map&#xff0c;但在某些场景下&#xff0c;可能需要一次性将多个键值对赋值给Map。 函数功能&#xff1a;Map批量赋值 参数1&#xff1a;参数名称&#xff1a;targ…

C语言学习:6、C语言程序的循环结构

生活中&#xff0c;有很多循环的东西&#xff0c;比如钟表就是在1到12循环&#xff0c;太阳东升西落也是循环&#xff0c;春夏秋冬也是循环&#xff0c;人生可能也是一个循环。 while C语言中的循环可以这么描述&#xff1a;当某个条件成立&#xff0c;就一直做某件事或某些事…

煤矿虚拟仿真 | 采煤工人VR虚拟现实培训系统

随着科技的发展&#xff0c;虚拟现实(VR)技术已经逐渐渗透到各个行业&#xff0c;其中包括煤矿行业。VR技术可以为煤矿工人提供一个安全、真实的环境&#xff0c;让他们在虚拟环境中进行实际操作和培训&#xff0c;从而提高他们的技能水平和安全意识。 由广州华锐互动开发的采煤…

跳槽面试:如何转换工作场所而不失去优势

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…