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 Da、Ib和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]在生成深度图正则化之前利用平滑度损失。

那么几何一致性损失定义为

借助几何一致性约束,包括位姿估计模块和深度估计模块在内的整个框架将以尺度一致性进行训练
相关文章:
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 …...
面试求职-面试注意事项
面试技巧和注意事项有哪些? 面试是找工作过程中最重要的一个环节,因为面试成功,你才有可能得到一份工作。求职面试技巧有哪些呢?首先,我们来看看面试注意事项。 企业了解 1、面试前有没有仔细了解过对应企业的情况,…...
sm2 签名验签
目前发现 sm2 有很多实现,比如 gmssl, openssl 1.1.1 ,openssl 3.0,各种代码库实现等等。实践中发现这些实现会出现不能互相验签的情况。后续研究一下。 网上的一些资料,给出了一些 openssl 指令,但是没有标明 openssl 的版本&…...
如何检查Windows 11笔记本电脑电池健康状况
如果你拥有一台运行微软最新操作系统的便携式电脑,那么检查Windows 11笔记本电脑的电池健康状况可能很重要。 电池寿命显然是一件大事,无论你是在最好的商务笔记本电脑上工作,还是在目前市场上最好的游戏笔记本电脑上享受马拉松式的Starfiel…...
编程大师-分布式
分布式锁 mysql redis 【IT老齐122】不只setnx,两张图说清Redisson的Redis分布式锁实现_哔哩哔哩_bilibili zk 用这种方式去实现,zookeeper分布式锁,你会吗?_哔哩哔哩_bilibili...
内网隧道代理技术(二十三)之 DNS隧道反弹Shell
DNS隧道反弹Shell DNS隧道 DNS协议是一种请求、应答协议,也是一种可用于应用层的隧道技术。DNS隧道的工作原理很简单,在进行DNS查询时,如果查询的域名不在DNS服务器本机缓存中,就会访问互联网进行查询,然后返回结果。如果在互联网上有一台定制的服务器,那么依靠DNS协议…...
如何利用Socks5代理IP提升网络安全与跨境电商业务
在今天的数字时代,网络安全对于个人和企业来说都至关重要。随着跨境电商和在线游戏等业务的不断发展,保护网络安全变得尤为重要。Socks5代理IP是一项强大的工具,可以帮助您实现更高水平的网络安全,同时促进跨境电商和游戏领域的增…...
信号量(Semaphore)
信号量(Semaphore)是一种经典的多线程同步工具,用于控制多个线程对共享资源的访问。信号量维护了一个计数器,表示可用的资源数量,线程可以通过信号量来请求资源并释放资源。信号量的主要操作包括获取(acquire)资源和释放(release)资源。 Java 中的信号量通常有两种类…...
<el-input-number>显示两位数字;如果是一位数字的话前面补0
可以通过自定义 formatter 函数来实现。具体步骤如下: 在 <el-input-number> 上添加 :formatter 属性,值为 formatter 函数名。 在 methods 中定义 formatter 函数,该函数接收一个参数 value,表示当前输入框中的值。 在 f…...
基于SSM的鲜花商城系统【附源码文档】
基于SSM的鲜花商城系统【附源码文档】 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatis工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:用户、管理员 用户:登录、注册、商品查询、公告预…...
【算法与数据结构】501、LeetCode二叉搜索树中的众数
文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:根据前面几篇文章98、LeetCode验证二叉搜索树、530、LeetCode二叉搜索树的最小绝对差。我们知道二叉搜…...
Spring MVC 六 - DispatcherServlet处理请求过程
前面讲过了DispatcherServlet的初始化过程(源码角度的DispatcherServlet的具体初始化过程还没说,先放一放),今天说一下DispatcherServlet处理请求的过程。 处理过程 WebApplicationContext绑定在当前request属性上(属…...
Python实现猎人猎物优化算法(HPO)优化BP神经网络回归模型(BP神经网络回归算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…...
【图论】SPFA求负环
算法提高课笔记 文章目录 基础知识例题虫洞题意思路代码 观光奶牛题意思路代码 单词环题意思路代码 基础知识 负环:环上权值之和是负数 求负环的常用方法 基于SPFA 统计每个点入队次数,如果某个点入队n次,则说明存在负环(完全…...
vue3中的吸顶导航交互实现 | VueUse插件
目的:浏览器上下滚动时,若距离顶部的滚动距离大于78px,吸顶导航显示,小于78px隐藏。使用vueuse插件中的useScroll方法和动态类名控制进行实现 1. 安装 npm i vueuse/core 2. 获得滚动距离 项目中导入࿰…...
MySql 笔记
数据结构:BTREE 二叉树:顺序增长依次查询效率低 红黑树: 数据多了深度越深,效率自然低了 HASH: 查询条件限制 B-TREE:度(degree)-节段的数据存储个数,叶节点具有 相…...
部署elasticsearch集群
创建es集群 编写一个docker-compose.yaml文件,内容如下 version: 2.2 services:es01:image: elasticsearch:7.12.1container_name: es01environment:- node.namees01- cluster.namees-docker-cluster- discovery.seed_hostses02,es03- cluster.initial_master_nod…...
CTF入门学习笔记——Crypto密码(现代密码)
文章目录 CTF入门学习笔记——Crypto密码(现代密码)因数分解因数分解 共享素数Bigrsa 低加密指数攻击(小明文攻击)crypto5 共模攻击rsa_output 广播攻击Crazy_Rsa_Tech 待补充 CTF入门学习笔记——Crypto密码(现代密码…...
(3)MyBatis-Plus待开发
常用注解 TableName MyBatis-Plus在确定操作的表时,由BaseMapper的泛型决定即实体类型决定,且默认操作的表名和实体类型的类名一致,如果不一致则会因找不到表报异常 //向表中插入一条数据 Test public void testInsert(){User user new User(null, &…...
正则表达式参考手册
修饰符 修饰符用于执行区分大小写和全局匹配: 修饰符描述i执行对大小写不敏感的匹配。g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。m执行多行匹配。 方括号 方括号用于查找某个范围内的字符: 表达式描述[abc]查找方括号之间…...
sudo企业级应用【20260525】001篇
文章目录 一、总体设计思路 1️⃣ 设计原则 2️⃣ 日志策略(重点) 二、10 个真实生产场景(含 sudoers 配置) 🔹 Linux 系统管理(3 个) ✅ 场景 1:基础运维(用户 / 权限) ✅ 场景 2:磁盘与文件系统 ✅ 场景 3:网络与防火墙 🔹 云管理(2 个) ✅ 场景 4:云 CLI …...
skills CANN开源社区贡献技能包开发指南
前言 开源社区的健康运转,不仅依赖核心代码的贡献,还需要降低贡献门槛、提供清晰的指南和自动化工具。skills仓库是CANN开源社区的"贡献技能包",提供了一系列辅助脚本、代码模板、CI检查和文档生成工具,帮助新手快速上…...
Atomic Layout核心概念解析:Composition组件如何实现布局与间距分离的终极指南
Atomic Layout核心概念解析:Composition组件如何实现布局与间距分离的终极指南 【免费下载链接】atomic-layout Build declarative, responsive layouts in React using CSS Grid. 项目地址: https://gitcode.com/gh_mirrors/at/atomic-layout Atomic Layout…...
【大模型聚合平台深度评测:阿里云百炼 vs 腾讯云 ADP,企业如何选型?】
大模型聚合平台深度评测:阿里云百炼 vs 腾讯云 ADP,企业如何选型? 随着大模型技术的快速发展,越来越多的企业开始将 AI 能力融入到业务流程中。然而,面对市场上众多的大模型产品,企业往往面临着 “选择困难…...
前馈补偿技术:用数字预失真驯服放大器非线性失真
1. 项目概述:用前馈补偿驯服放大器失真在音频发烧友和硬件工程师的圈子里,追求“高保真”几乎是一种信仰。我们总希望从扬声器里传出的声音,是录音现场或音乐制作人意图的完美复刻,纤毫毕现,不带一丝杂质。然而&#x…...
Taotoken的Token Plan套餐如何帮助项目更可控地预估成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的Token Plan套餐如何帮助项目更可控地预估成本 对于项目管理者或独立开发者而言,在集成大模型能力时…...
第5章 薪资重构——AI时代的程序员价值重估
第5章 薪资重构——AI时代的程序员价值重估 核心问题:AI时代,程序员的薪资会发生怎样的变化?哪些人在涨薪?哪些人在降薪? 5.1 问题定义:薪资分化的真相是什么? 5.1.1 一个令人震惊的数据 2026年第一季度,一个对比让整个技术圈哗然: 同一家公司内部: - 一个AI方向…...
企业级Veo 2提示词治理框架(含合规校验/版本回溯/效果归因三模块)——仅限首批500名开发者开放》
更多请点击: https://intelliparadigm.com 第一章:Veo 2提示词治理框架的核心定位与演进逻辑 Veo 2提示词治理框架并非单纯的技术工具升级,而是面向AIGC生产环境规模化、合规化与可审计化需求的战略性基础设施重构。其核心定位在于将离散、经…...
忆阻储层计算:预处理优化与硬件实现
1. 项目概述在当今人工智能快速发展的时代,神经形态计算正成为突破传统冯诺依曼架构瓶颈的重要方向。储层计算(Reservoir Computing,RC)作为一种特殊的循环神经网络架构,因其仅需训练输出层而显著降低了计算开销&#…...
QKeyMapper完整指南:Windows上最强大的免费按键映射解决方案
QKeyMapper完整指南:Windows上最强大的免费按键映射解决方案 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射到键鼠&…...
