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数据集:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

three.js实现vr全景图

方法: 可以利用Threejs中的立方体或者球体实现全景图功能,把立方体或球体当成天空盒子,将无缝衔接的图片贴上,看起来就像在一个场景中,相机一般放置在中央。 three.js中文网 1、立方体实现 立方体6个面要贴上6个方向的图片&…

Pytorch深度学习-----神经网络之非线性激活的使用(ReLu、Sigmoid)

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Co…

html:去除input/textarea标签的拼写检查

默认情况下&#xff0c;textarea 会启动拼写和语法检查&#xff0c;表现效果就是单词拼写错误会出现红色下划线提示 <textarea></textarea>效果 有时&#xff0c;我们并不需要拼写检查&#xff0c;可以通过配置属性spellcheck"false" 去除拼写和语法检…

物联网远程智能控制设备——开关量/正反转百分比控制

如今生产生活的便利性极大程度上得益于控制技术的发展&#xff0c;它改变了传统的工作模式&#xff0c;并将人们从【纯劳力】中解放出来。如今&#xff0c;随着科学技术的进步&#xff0c;控制器的种类及应用领域也越来越多。 物联网远程智能控制设备就是一种新型的、能够用于…

抄写Linux源码(Day2:构建调试环境)

我们计划把操作系统运行在 qemu-system-x86_64 上&#xff0c;使用 gdb 调试 经过 RTFM&#xff0c;可以使用 qemu-system-x86_64 -s -S 让 qemu 在启动之后停住 接着在另一个窗口运行 gdb&#xff0c;输入命令 target remote localhost:1234&#xff0c;即可连接qemu并调试运…

泛微oa 二次开发指南(ecology)

目录标题 一、环境搭建&#xff08;一&#xff09;先下载安装泛微oa&#xff08;ecology&#xff09;&#xff08;二&#xff09;idea环境搭建二、官方文档三、开发规范&#xff08;里面有入门案例&#xff09;四、三方系统调用oa系统接口五、oa系统所有接口文档六、ecology的一…

mysql事务日志

事务有4中特性&#xff1a;原子性&#xff0c;一致性&#xff0c;隔离性和持久性。那么事务的四种特性到底是基于什么机制实现的呢&#xff1f; 1. 事务的隔离性由 锁机制 实现。 2. 而事务的原子性&#xff0c;一致性和持久性由事务的redo日志和undo日志来保证的。 ~ redo l…

2023-07-30 LeetCode每日一题(环形链表 II)

2023-07-30每日一题 一、题目编号 142. 环形链表 II二、题目链接 点击跳转到题目位置 三、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 n…

HTTP协议 和 HTTPS协议的区别(4点) HTTPS的缺点 HTTP如何使用SSL/TLS协议加密过程 CA证书干啥的

&#xff08;一&#xff09;HTTP协议 和 HTTPS协议的区别&#xff08;4点&#xff09;&#xff1a; 1. HTTP协议的端口号是80&#xff0c; HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头&#xff0c;HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTP…

MedSAM通用医学分割基础模型(2023+Segment Anything in Medical Images)

摘要&#xff1a; MedSAM&#xff0c;这是为通用医学图像分割设计的首个基础模型。利用包含超过一百万张图像的精心策划的数据集的力量&#xff0c;MedSAM不仅优于现有的最先进的分割基础模型&#xff0c;而且表现出与专业模型相当甚至更好的性能。此外&#xff0c;MedSAM能够…

计算机视觉实验:人脸识别系统设计

实验内容 设计计算机视觉目标识别系统&#xff0c;与实际应用有关&#xff08;建议&#xff1a;最终展示形式为带界面可运行的系统&#xff09;&#xff0c;以下内容选择其中一个做。 1. 人脸识别系统设计 (1) 人脸识别系统设计&#xff08;必做&#xff09;&#xff1a;根据…

深度学习(33)——CycleGAN(2)

深度学习&#xff08;33&#xff09;——CycleGAN&#xff08;2&#xff09; 完整项目在在这里&#xff1a;欢迎造访 文章目录 深度学习&#xff08;33&#xff09;——CycleGAN&#xff08;2&#xff09;1. Generator2. Discriminator3. fake pool4. loss定义5. 模型参数量6…

MySQL和Oracle区别

由于SQL Server不常用&#xff0c;所以这里只针对MySQL数据库和Oracle数据库的区别 (1) 对事务的提交 MySQL默认是自动提交&#xff0c;而Oracle默认不自动提交&#xff0c;需要用户手动提交&#xff0c;需要在写commit;指令或者点击commit按钮 (2) 分页查询 MySQL是直接在SQL…

PostMan调用metersphere接口 ,copy完事~

获取token接口&#xff1a; http://192.****:8081/signin &#xff0c;接下来就可以调用其他功能的接口了 例&#xff1a;创建账户&#xff0c;将获取到的access_token放置在接口请求的token中 其他接口调用同上

IPv4网络用户访问IPv6网络服务器

NAT64静态映射为一对一的对应关系&#xff0c;通常应用在IPv4网络主动访问IPv6网络的场景中。 要求位于IPv4网络中的PC通过IPv4地址1.1.1.10能够直接访问位于IPv6网络中Server。 操作步骤 配置FW。 # 配置接口GigabitEthernet 0/0/1的IPv4地址。 <FW> system-view [F…

【图论】树上差分(点差分)

一.题目 输入样例&#xff1a; 5 10 3 4 1 5 4 2 5 4 5 4 5 4 3 5 4 3 4 3 1 3 3 5 5 4 1 5 3 4 输出样例&#xff1a;9 二 .分析 我们可以先建一棵树 但我们发现&#xff0c;这样会超时。 所以&#xff0c;我们想到树上差分 三.代码 /* 5 10 3 4 1 5 4 2 5 4 5 4 5 4 3 5 …

项目管理中的需求分析:实施策略与最佳实践

引言 在项目管理的过程中&#xff0c;需求分析起着至关重要的作用。理解和定义项目需求是项目成功的关键一步&#xff0c;它可以帮助我们确定项目的目标和范围&#xff0c;以及如何有效地达到这些目标。在本文中&#xff0c;我们将深入探讨需求分析的重要性&#xff0c;讨论如…

count(列名) ,count(1)与count(*) 有何区别?

Mysql版本&#xff1a;8.0.26 可视化客户端&#xff1a;sql yog 文章目录 一、Mysql之count函数简介二、count(列名) &#xff0c;count(常量)与count(*) 有何区别&#xff1f;2.1 统计字段上的区别2.2 执行效率上的区别 一、Mysql之count函数简介 &#x1f449;表达式 COUNT(…

苍穹外卖day12(完结撒花)——工作台+Spring_Apche_POI+导出运营数据Excel报表

工作台——需求分析与设计 产品原型 接口设计 工作台——代码导入 将提供的代码导入对应的位置。 工作台——功能测试 Apache POI_介绍 应用场景 Apache POI_入门案例 导入坐标 <!-- poi --><dependency><groupId>org.apache.poi</groupId><ar…