《论文阅读》Deep Online Correction for Monocular Visual Odometry

2024-01-23 12:20

本文主要是介绍《论文阅读》Deep Online Correction for Monocular Visual Odometry,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

留个笔记自用

Deep Online Correction for Monocular Visual Odometry

做什么

Monocular Visual Odometry单目视觉里程计
在这里插入图片描述
相机在运动过程中连续两帧之间会存在overlap,即会同时观测到三维世界中的某些场景以及特征点。而这些场景特征点会投射到2D图片上,通过图片的对齐或者特征的匹配,可以找到前后图片上特点或patch的对应关系。利用相机的成像几何模型(包括相机参数)以及约束,可以求出两帧之间的运动信息(旋转矩阵R和平移t)。这样我们就可以得到一系列的相机相对变化矩阵,从而可以推出相机的姿态信息。

做了什么

在这里插入图片描述
DOC完全依赖深度学习框架,但是不同于在线学习不需要计算神经网络参数的梯度传播,并且能效果较好地实现深度校正

怎么做

在这里插入图片描述
DOC框架的核心思想是通过基于梯度传播最小化光度误差来直接优化相对姿态,不依赖传统框架,只需要计算6自由度姿态的梯度就可以,也就是图上的位姿转换Tii-1也就是第i-1帧到第i帧的位姿转换。
整体框架分为是哪个部分,Depth-CNN深度部分、Pose-CNN位姿部分、Warp校正部分
首先是Depth-CNN部分和Pose-CNN部分
在这里插入图片描述
这里的Depth-CNN和Pose-CNN用的是相似的结构,用的都是Unet类似的结构,前者是endoer-decoder形状的,后者则是encoder后接Linear
Depth-CNN以单帧RGB图像作为输入,输出深度图,Pose-CNN以两帧连续图像作为输入,输出位姿转换
这里说借鉴的方法是Monodepth2,一个点云深度估计网络,也是估计深度和位姿的在这里插入图片描述
至此得到了初始的深度图和位姿转换,接下来就是优化,就是文章的题目Deep Online Correction(DOC深度在线校正框架),也就是框架的第三部分
第三部分warp校正部分提供了两种情况可选,两帧优化和三帧优化
在这里插入图片描述
首先是两帧优化情况
给定两帧图像Ii-1和Ii,通过前面两个部分能得到各自的深度图Di-1和Di,还有两者的位姿转换Tii-1,DOC接下来通过最小化总光度误差来优化
定义在这里插入图片描述
这里EI表示第i步的光度误差,Ei-1i和Eii-1的意思分别是前向误差和反向误差,也就是i-1帧到i帧的误差和i帧到i-1帧的误差,然后定义两个误差为
在这里插入图片描述
两个的构造方式比较相似
这里的Π是一个函数,作用是warp,它输入深度图D,位姿转换T,图像帧I,相机固有属性K,以这些合成一个新的视图I’’
在这里插入图片描述
这里说这个函数在经典论文《Spatial Transformer Networks》中有用到过,但其实我并没有找到
然后是EPHO
在这里插入图片描述
这里的意思就是根据两张图像得到它们的光度误差,跟前面的总光度误差不一样,这里是分至于向前和向后的图像间的光度误差,I就是图片帧
然后是定义Mstd
在这里插入图片描述
这里的含义就是一个离群点剥离器,E-是平均,Eσ是标准差,两者都是针对E的,代入前面也就是两个图像,前面的做法是将两张图直接相减,这里的意思就是在差度图上所有点求一个平均和标准差,去掉一些不合理的利群点
回到最开始的式子
在这里插入图片描述
至此得到了 ◦符号后面的所有结果
然后是前面的M,这里就是一个mask的作用,是由两种mask组成的,一个是occlusion mask遮挡Mo,一个是explainability mask解释Me,大M是由这两个M直接相乘得到,也就是在这里插入图片描述
首先是遮挡Mask
在这里插入图片描述
这里又用到了前面的那个函数Π,也就是得到一张新的视图,区别是后面的图像帧输入也换成了上一帧的深度图,这里意思就是用这种阈值D的方式去除一些不合理的遮挡情况
然后是解释Mask,这里没给出公式,但有提到是通过CNN也就是前面的那俩部分得到的
最后总结一下这两个mask的作用
在这里插入图片描述
遮挡Mask在图一和图二中有展示,能较好的去掉由遮挡产生的两个明显同一个的交通棒,然后是解释性误差,这些能减少屋顶和植被这种高频光度误差
至此得到了前后误差,也就是第i帧的光度误差,有了这个误差就可以用优化器去进行优化了
然后是第二种情况,三帧优化情况
也就是输入是前中后三帧图像作为输入,这里也是一样设计了一个总能量误差
在这里插入图片描述
显然这里的设计方式跟前面两帧的前后光度误差是类似的
在这里插入图片描述
这就是整个DOC框架的过程了,整体输入是图片序列I,希望输出是优化位姿T,第一步就是通过前两个部分Pose-CNN和Depth-CNN得到深度D和初始位姿转换T,然后开始进行一个优化工作,通过函数Π将I-1图像帧转换到i帧上,计算一个向前光度误差,然后反过来计算一个向后光度误差,相加得到总误差后用Adam去进行前面初始位姿的优化
在这里插入图片描述

总结

1.不仅是用自监督的方式训练网络,而且构造的这个在线校正模块不更新网络参数,仅做位姿优化,这个会更高效
2.整体来说这种初始化再优化的思路可以参考,并且可以在warp部分做改进,达到一种循环迭代的效果

这篇关于《论文阅读》Deep Online Correction for Monocular Visual Odometry的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/636392

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

软件架构模式:5 分钟阅读

原文: https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2 软件架构模式:5 分钟阅读 当有人潜入软件工程世界时,有一天他需要学习软件架构模式的基础知识。当我刚接触编码时,我不知道从哪里获得简要介绍现有架构模式的资源,这样它就不会太详细和混乱,而是非常抽象和易

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需