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.rhkb.cn/news/73754.html

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

相关文章

JavaEE 面试常见问题

一、常见的 ORM 框架有哪些? 1.Mybatis Mybatis 是一种典型的半自动的 ORM 框架,所谓的半自动,是因为还需要手动的写 SQL 语句,再由框架根据 SQL 及 传入数据来组装为要执行的 SQL 。其优点为: 1. 因为由程序员…

使用vs 2017 C#项目发布

C#项目发布 vs 2017 打包项目源代码 (发布)iis 配置添加ssl 配置 vs 2017 打包项目源代码 (发布) iis 配置 添加ssl 配置 https://help.aliyun.com/zh/ssl-certificate/user-guide/install-ssl-certificates-on-iis-servers

Python+PIL计算两个图像的相似度并返回第一个不匹配的像素的x坐标(附完整版代码)

前言 前几天看到一篇文章写Pythonselenium超级鹰对滑块验证码的操作,大致的思想如下: 1、就是将滑块验证码进行截图 2、利用超级鹰的API进行对图片的处理, 3、返回滑块的距离 我在很久之前也遇到过类似的需求, 当时我的好友帮我写…

React之组件的生命周期

React之组件的生命周期 一、概述二、整体说明三、挂载阶段四、更新阶段五、卸载阶段 一、概述 生命周期:一个事务从创建到最后消亡经历的整个过程组件的生命周期:组件从被创建到挂载到页面中运行,再到组件不用时卸载的过程意义:理解组件的生…

Docker Dockerfile 语法与指令

一、简介 Docker 镜像原理、容器转成镜像 随便找个案例,进入 https://hub.docker.com/ 搜索 centos,然后随便找个版本(例如:centos7)点击一下,就会进入 centos7 的 dockerfile 文件: // 空镜像…

MTK system_server 卡死导致手机重启案例分析

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、MTK AEE Log分析工具二、AEE Log分析流程三、system_server 卡死案例分析及解决 本文主要针对 Exception Type: system_server_watchdog , system_…

postgis mvt矢量切片 django drf mapboxgl

postgis mvt矢量切片 django drf mapboxgl 目录 0.前提 1.sql代码 2.django drf后端服务代码 3.具体的应用(整体代码) 4.参考 0.前提 [1] 静态的矢量切片可以采用 tippecanoe 生成,nginx代理,这种数据是不更新的&#xff1b…

C++ 第六弹 STL

目录 1.什么是stl 2.六大组件-容器-序列式容器-C98 string 3.六大组件-容器-序列式容器-C98 vector 4.六大组件-容器-序列式容器-C98 list 5.六大组件-容器-序列式容器-C98 deque 6.六大组件-容器-序列式容器-C11 array 7.六大组件-容器-序列式容器-C11 forward_list 8…

RT1052 的周期定时器

文章目录 1 PIT 周期中断定时器2 PIT定时器的使用3 PIT定时器配置3.1 PIT 时钟使能。3.1.1 CLOCK_EnableClock 3.2 初始化 PIT 定时器3.2.1 PIT_Init 3.3 设置 通道 0 的 加载值3.3.1 PIT_SetTimerPeriod 3.4 使能 通道 0 的中断3.4.1 PIT_EnableInterrupts 3.5 开启 PIT 定时器…

NetSuite ERP顾问的进阶之路

目录 1.修养篇 1.1“道”是什么?“器”是什么? 1.2 读书这件事儿 1.3 十年计划的力量 1.3.1 一日三省 1.3.2 顾问损益表 1.3.3 阶段课题 2.行为篇 2.1协作 2.2交流 2.3文档管理 2.4时间管理 3.成长篇 3.1概念能力 3.1.1顾问的知识结构 …

word转pdf怎么转?几种常用方法分享

word转pdf怎么转?在日常工作和学习中,将Word文档转换为PDF格式是一项必要的任务。不仅可以保证文档的格式不变,还可以防止文档被他人篡改。但是,Word文档并不是所有人都能够轻松打开和编辑的,而PDF文件则可以在各种设备…

使用DataX实现mysql与hive数据互相导入导出

一、概论 1.1 什么是DataX DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源之间稳定高效的数据同步功能。 1.2 DataX 的设计 为了解决异构数据源同步问题&#xf…

安全学习DAY09_加密逆向,特征识别

算法逆向&加密算法分类,特征识别 文章目录 算法逆向&加密算法分类,特征识别算法概念,分类单向散列加密 - MD5对称加密 - AES非对称加密 - RSA 常见加密算法识别特征,解密特点MD5密文特点BASE64编码特点AES、DES特点RSA密文…

Vue实现leafletMap自定义绘制线段 并且删除指定的已绘制的点位

效果&#xff1a;点击表格可实现选中地图点位&#xff0c;删除按钮点击可删除对应点位并且重新绘制线段&#xff0c;点击确定按钮 保存已经绘制的点位信息传给父组件 并且该组件已实现回显 完整的组件代码如下 文件名称为&#xff1a; leafletMakePointYt <!--* Descripti…

cpolar内网穿透可应用于哪些场景?

前言 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于恒川的日常汇报系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏C语言初…

校园跑腿小程序运营攻略

作为一名校园跑腿小程序的运营者&#xff0c;你可能会面临诸如用户获取、平台推广、服务质量保证等挑战。在本篇推文中&#xff0c;我将为你提供一些关键的运营策略&#xff0c;帮助你成功运营校园跑腿小程序。 1. 用户获取和留存 用户是校园跑腿小程序成功的关键。以下是一些…

2023华为OD统一考试(B卷)题库清单(持续收录中)以及考点说明

目录 专栏导读2023 B卷 “新加题”&#xff08;100分值&#xff09;2023Q2 100分2023Q2 200分2023Q1 100分2023Q1 200分2022Q4 100分2022Q4 200分牛客练习题 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多&…

NLP实战9:Transformer实战-单词预测

目录 一、定义模型 二、加载数据集 三、初始化实例 四、训练模型 五、评估模型 &#x1f368; 本文为[&#x1f517;365天深度学习训练营]内部限免文章&#xff08;版权归 *K同学啊* 所有&#xff09; &#x1f356; 作者&#xff1a;[K同学啊] 模型结构图&#xff1a; &a…

无涯教程-Lua - while语句函数

只要给定条件为真&#xff0c;Lua编程语言中的 while 循环语句就会重复执行目标语句。 while loop - 语法 Lua编程语言中 while 循环的语法如下- while(condition) dostatement(s) end while loop - 流程图 在这里&#xff0c;需要注意的关键是 while 循环可能根本不执行。…

【Linux | Shell】结构化命令2 - test命令、方括号测试条件、case命令

目录 一、概述二、test 命令2.1 test 命令2.2 方括号测试条件2.3 test 命令和测试条件可以判断的 3 类条件2.3.1 数值比较2.3.2 字符串比较 三、复合条件测试四、if-then 的高级特性五、case 命令 一、概述 上篇文章介绍了 if 语句相关知识。但 if 语句只能执行命令&#xff0c…