FSM:Full Surround Monodepth from Multiple Cameras

参考代码:None

介绍

深度估计任务作为基础环境感知任务,在基础上构建的3D感知才能更加准确,并且泛化能力更强。单目的自监督深度估计已经有MonoDepth、ManyDepth这些经典深度估计模型了,而这篇文章是对多目自监督深度估计进行探索,在单目自监督深度估计基础上利用多目相机之间相互约束构建了多目自监督深度估计方法。具体为,在该方法中每个相机会预测自身深度图和位姿信息,依靠相机之间视角重叠关系、自身运动位姿、深度估计结果构建自监督损失,多目视角的使用主要用于约束各个视角下生成的位姿,而且正是由于使用了外参数使得网络具备了真实距离的感知能力。

方法设计

使用spatial-temporal的自监督深度估计

在单目深度估计任务中依靠不同时序下的成像结果构建光度重构误差,其典型形式为:
L p ( I t , I ^ t ) = α 1 − S S I M ( I t , I ^ t ) 2 + ( 1 − α ) ∣ ∣ I t − I ^ t ∣ ∣ L_p(I_t,\hat{I}_t)=\alpha\frac{1-SSIM(I_t,\hat{I}_t)}{2}+(1-\alpha)||I_t-\hat{I}_t|| Lp(It,I^t)=α21SSIM(It,I^t)+(1α)∣∣ItI^t∣∣
其中, I ^ t \hat{I}_t I^t是通过估计出来的位姿和深度估计warp之后得到的,其warp的过程记为:
p ^ t = π ( R ^ t → c ϕ ( p t , d ^ t , K ) + t ^ t → c , K ) \hat{p}^t=\pi(\hat{R}^{t\rightarrow c}\phi(p^t,\hat{d}^t,K)+\hat{t}^{t\rightarrow c},K) p^t=π(R^tcϕ(pt,d^t,K)+t^tc,K)
而在多目系统下除了能够像单目系统那样使用时序信息之外,还可以将空间信息引入(因为多目系统的相邻两个相机之间多存在重叠视角),或者将空间和时序信息混合使用(也就是当前帧经过时序warp之后在进行空间warp)。在下图中展示了多目系统在不同时序和空间维度下的变换关系。
在这里插入图片描述
对于同时刻下可以依据相邻相机之前的内外参数将相机 i i i的图像映射到相机 j j j中去,也就是如下变换关系:
p ^ i = π j ( R i → j ϕ i ( p i , d ^ i ) + t i → j ) \hat{p}_i=\pi_j(R_{i\rightarrow j}\phi_i(p_i,\hat{d}_i)+t_{i\rightarrow j}) p^i=πj(Rijϕi(pi,d^i)+tij)
在不同时刻下可以通过估计出来的位姿投影到相同时刻下,则在该相同时刻下可以构建temporal-spatial关联:
p ^ i t = π j ( R i → j ( R ^ j t → c ϕ ( p j t , d ^ j t ) + t j t → c ) + t i → j ) \hat{p}_i^t=\pi_j(R_{i\rightarrow j}(\hat{R}_j^{t\rightarrow c}\phi(p_j^t,\hat{d}_j^t)+t_j^{t\rightarrow c})+t_{i\rightarrow j}) p^it=πj(Rij(R^jtcϕ(pjt,d^jt)+tjtc)+tij)
使用这样关联关系可以使得重叠区域产生更多的响应像素,见下图(最后一行为temporal-spatial方式得到的响应区域):
在这里插入图片描述

多目相机之间的位姿约束

由于算法中多目相机是各自单独预测位姿的,那么但是这些相机确是同处于一个运动系统中的,它们预先标定好的外参变换关系还是可以构建它们的约束关系的。则对于相邻的两个相机它们时序和空间上的对应约束为:
X ˉ i t → t + 1 = X j − 1 X i X ^ i t → t + 1 X i − 1 X j \bar{X}_i^{t\rightarrow t+1}=X_j^{-1}X_i\hat{X}_i^{t\rightarrow t+1}X_i^{-1}X_j Xˉitt+1=Xj1XiX^itt+1Xi1Xj
上面的公式建立了不同相机在时序和空间上的变换关系,不过需要注意的是上面的公式是存在问题的。它的原理应该是依据周围相机各自预测出来的位姿,通过标定好的外参将预测出来的位姿变换到目的相机下,这样约束目的相机本身位姿估计结果和变换位姿,也就是从平移和旋转两个分量上使得两者近似:
t l o s s = ∑ j = 2 N ∣ ∣ t ^ 1 t + 1 − t ˉ j t + 1 ∣ ∣ 2 t_{loss}=\sum_{j=2}^N||\hat{t}_1^{t+1}-\bar{t}_j^{t+1}||^2 tloss=j=2N∣∣t^1t+1tˉjt+12
旋转分量上(旋转角):
R l o s s = ∑ j = 2 N ∣ ∣ ϕ ^ 1 − ϕ ˉ 1 ∣ ∣ 2 + ∣ ∣ θ ^ 1 − θ ˉ 1 ∣ ∣ 2 + ∣ ∣ Φ ^ 1 − Φ ˉ 1 ∣ ∣ 2 R_{loss}=\sum_{j=2}^N||\hat{\phi}_1-\bar{\phi}_1||^2+||\hat{\theta}_1-\bar{\theta}_1||^2+||\hat{\Phi}_1-\bar{\Phi}_1||^2 Rloss=j=2N∣∣ϕ^1ϕˉ12+∣∣θ^1θˉ12+∣∣Φ^1Φˉ12

损失计算的mask

在损失计算时采用两种类型的mask:non-overlaping和self-occlusion。对于第一种mask是根据重构误差的有效区域确定的,则会在temporal(相同相机不同时序)和spatial(不同相机相同时序)下在mask的引导下得到光度重构误差。

对于第二种那就由于设备本身安放位置决定得了,在计算过程中排除那些自身部分,其效果见下图:
在这里插入图片描述

实验结果

KITTI数据集:
在这里插入图片描述
DDAD数据集:
在这里插入图片描述

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

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

相关文章

使用云服务器和Frp(快速反向代理)框架快速部署实现内网穿透

目录 一. 背景1.1 内网穿透1.2 Frp介绍1.3 Frp配置流程 二. 云服务器配置2.1 配置安全组2.2 编写frps.ini 三. 内网主机配置3.1 编辑frpc.ini文件3.2 启动服务并配置开机自启动 四. 参考文献 一. 背景 现在有一台ubuntu云服务器,我想通过内网穿透将一台内网的主机当…

python多线程

目录 一.多线程的定义 A.什么是多线程? B.多线程如今遇到的挑战 C.总结 二.python中的多线程 A.python中的多线程底层原理: B.全局解释器锁导致python多线程不能实现真正的并行执行! C.总结应用场景 三.java多线程,以及…

【Matlab】判断点和多面体位置关系的两种方法实现

我的主页: 技术邻:小铭的ABAQUS学习的技术邻主页博客园 : HF_SO4的主页哔哩哔哩:小铭的ABAQUS学习的个人空间csdn:qgm1702 博客园文章链接: https://www.cnblogs.com/aksoam/p/17590039.html 分别是向量判别法&…

Ubuntu 22.04下对无线网络作静态ip设置

内容如题所示,最近本人安全毕业,参加工作了,此处应有鲜花和掌声,哈哈哈。但新的生活总是有很多的小问题,坎坎坷坷,所以,我继续记录工作和学习生活中遇到的问题。 今天带我的云哥给了我一个ip&am…

Python入门【变量的作用域(全局变量和局部变量)、参数的传递、浅拷贝和深拷贝、参数的几种类型 】(十一)

👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误…

51单片机:数码管和矩阵按键

目录 一:动态数码管模块 1:介绍 2:共阴极和共阳极 A:共阴极 B:共阳极 C:转化表 3:74HC138译码器 4:74HC138译码器控制动态数码管 5:数码管显示完整代码 二:矩阵按键模块 1:介绍 2:原理图 3:矩阵按键代码 一:动态数码管模块 1:介绍 LED数码管:数码管是一种…

Verilog语法学习——LV10_使用函数实现数据大小端转换

LV10_使用函数实现数据大小端转换 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 描述 在数字芯片设计中,经常把实现特定功能的模块编写成函数&…

一.安装k8s环境

1.初始操作 默认3台服务器都执行 # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld# 关闭selinux sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时# 关闭swap swapoff -a # 临时 sed -ri s/.*swap.*/#&/ /etc/fstab…

QT--day3(定时器事件、对话框)

头文件代码&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> //定时器事件处理时间头文件 #include <QTime> //时间类 #include <QtTextToSpeech> #include <QPushButton> #include <QLabel&g…

【数据结构】实验六:队列

实验六 队列 一、实验目的与要求 1&#xff09;熟悉C/C语言&#xff08;或其他编程语言&#xff09;的集成开发环境&#xff1b; 2&#xff09;通过本实验加深对队列的理解&#xff0c;熟悉基本操作&#xff1b; 3&#xff09; 结合具体的问题分析算法时间复杂度。 二、…

ubuntu23.04 flush DNS caches

如何在Ubuntu 23.04中刷新DNS缓存 现在&#xff0c;如果你运行的是Ubuntu 23.04&#xff0c;"系统解决 "的方法将不再适用于你。让我们检查一下你目前的缓存大小。打开你的Ubuntu终端&#xff0c;运行以下command&#xff1a; resolvectl statistics现在&#xff0c…

mysql主从同步怎么跳过错误

今天介绍两种mysql主从同步跳过错误的方法&#xff1a; 一、两种方法介绍 1、跳过指定数量的事务&#xff1a; mysql>slave stop; mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER 1 #跳过一个事务 mysql>slave start2、修改mysql的配置文件&#xff0c;通过slav…

【QT 网络云盘客户端】——实现文件属性窗口

目录 文件属性对话框 设置字体样式 获取文件的信息 显示文件属性对话框 当我们点击文件中的属性&#xff0c;则会弹出一个属性对话框&#xff1a; 实现过程&#xff1a; 0.设置 属性 菜单项的槽函数。 1.鼠获取鼠标选中的QListWidgetItem,它包含 图标和文件名 2.根据文件…

POLARDB IMCI 白皮书 云原生HTAP 数据库系统 一 数据压缩和打包处理与数据更新

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

十一、数据结构——树(Tree)的基本概念

数据结构之树(Tree) 目录 树的基本概念树的分类树的基本操作树的应用结语 树的基本概念 树是一种重要的数据结构&#xff0c;它在计算机科学中被广泛应用。树的特点是以分层的方式存储数据&#xff0c;具有层次结构&#xff0c;类似于现实生活中的树状结构。在树中&#xff…

python与深度学习(十):CNN和cifar10二

目录 1. 说明2. cifar10的CNN模型测试2.1 导入相关库2.2 加载数据和模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章训练的模型进行测试。首…

【Vuvuzela 声音去噪算法】基于流行的频谱减法技术的声音去噪算法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

WEB:unseping

背景知识 php序列化和反序列化 命令执行绕过方式 题目 进行代码审计 可知为反序列化 整体是创建case类&#xff0c;可接受post传来的ctf值 _consturuct函数,是在函数调动前启用&#xff0c;构造了$method和$args两个变量。 _dexstruct函数在变量摧毁的时使用&#xff0c;所…

【嵌入式学习笔记】嵌入式基础10——STM32时钟配置

1.认识时钟树 简单来说&#xff0c;时钟是具有周期性的脉冲信号&#xff0c;最常用的是占空比50%的方波 1.1.F1的时钟树 1.2.F4的时钟树(407为例) 1.3.F7的时钟树 1.4.H7的时钟树 2.配置系统时钟(F1为例) 2.1.系统时钟配置步骤 配置HSE VALUE&#xff1a;告诉HAL库外部晶振…

2021 年高教社杯全国大学生数学建模竞赛 E 题 中药材的鉴别 第一题

目录 1.数据预处理 1.1 数据基本信息探索 1.2 数据可视化 1.3 异常值处理 2. 数据特征值提取 2.1 数据标准化 2.2 PCA提取特征值 3. 数据聚类鉴别药材种类 3.1 肘部图确定K值 3.2 轮廓系数图确定K值 3.3 数据聚类 3.4 聚类结果可视化 4. 研究不同种类药材…