论文阅读《Robust Monocular Depth Estimation under Challenging Conditions》

论文地址:https://arxiv.org/pdf/2308.09711.pdf
源码地址:https://github.com/md4all/md4all


概述

  现有SOTA的单目估计方法在理想的环境下能得到满意的结果,而在一些极端光照与天气的情况下往往会失效。针对模型在极端条件下的表现不佳问题,文章提出一种用于解决这种安全问题的模型:md4all。该方法首先生成一组与正常样本对应的复杂样本,然后通过生成的样本来计算相应原始视图上的标准损失,引导其自监督或者全监督来训练模型,使得模型在不同条件下能够恢复原始的信息。在nuScenes 和 Oxford RobotCar 数据集上的结果表明该方法的有效性,在标准条件下和极端条件下的表现都超过了之前的工作。
在这里插入图片描述


模型架构

在这里插入图片描述

Self-Supervised Baseline

  使用Monodepth2作为baseline模型,使用白天数据来进行蒸馏学习得到一个针对白天数据的初始模型,如图Fig.3 所示(x=0)。

md4all-AD: Always Daytime, No Bad Weather

  核心思想是从简单的样本中学习,即使输入的是困难样本,也能将其转为简单样本后进行推理,如图Fig.4所示。
在这里插入图片描述
Day-to-adverse translation
   为了训练模型,我们需要同时拥有简单样本与其所对应的困难样本 ( e i , h i c ) (e_i, h_i^c) (ei,hic) e i e_i ei 表示简单样本,而 h i c h_i^c hic 表示困难样本, c c c 代表困难的类型(下雪之类),在正向推理的过程中通过转换模型,将困难样本转换成简单样本然后进行推理。为此,需要先从简单样本中生成困难样本,对于每个简单样本 e i e_i ei和对应的条件 c c c,训练一个转换模型来得到 h i c = T c ( e i ) . h_{i}^{c}=T^{c}(e_{i}). hic=Tc(ei).,通过此步骤,我们将训练的样本集扩充到了 C × E C\times E C×E
Training scheme
  训练策略如Fig4所示,深度估计模型的输入为 m i m_i mi,是原始简单样本 e i e_i ei 和经过转换的困难样本 h i c h_i^c hic 的混合。此外,根据记录时间来对输入归一化,用来学习与输入条件无关的鲁棒特征。在极困难的夜晚样本中,通过增加大量噪声来增强输入。对于姿态估计网络,使用采用简单样本序列 [ e i − 1 , e i , e i + 1 ] [e_{i-1},e_{i},e_{i+1}] [ei1,ei,ei+1]来作为输入。
Learning in all conditions
  在困难样本对之间计算重投影误差损失和平滑损失会出现问题,因为在恶劣条件下难以建立有效的匹配。因此,在简单样本上训练,最后在困难样本上部署比同时训练更加有效。为此,作者通过始终在简单样本 E E E 上计算损失来提供可靠的训练信息。也就是在 e i e_i ei上计算损失,即使深度模型的输入为 h i c ( x % ) h^c_i(x%) hic(x),这样会让深度估计模型学习去提取鲁棒特征,无论输入属于 E E E还是 H H H
Inference
  训练玩深度估计和姿态估计模型后,只保留深度估计模型,在推理时使用参数相同的模型来预测深度,而不需要考虑输入条件。

md4all-DD: Day Distillation

  md4all DD的核心思想与md4all AD 相同,通过简化训练方案将后者的性能提升到一个新的水平,md4all-DD框架模仿了理想设置 E E E中的模型,不考虑输入的样本难度。如Fig3所示,通过从早期在 E E E上训练的深度网络(基线)向新的深度模型DD进行知识蒸馏,以便同时适用于简单和复杂场景。后者使用 m i m_i mi 来训练,即与md4all-AD(第3.1.2节)中的 e i e_i ei h i c h^c_i hic 相同的混合,而前者使用 e i e_i ei 来训练。 DD仅通过以下目标进行优化:
L d = 1 N ∑ j = 1 N ∣ D D ( m i ) j − B ( e i ) j ∣ D D ( m i ) j (1) \mathcal{L}_d=\frac1N\sum_{j=1}^N\frac{|DD(m_i)_j-B(e_i)_j|}{DD(m_i)_j}\tag{1} Ld=N1j=1NDD(mi)jDD(mi)jB(ei)j(1)


实验结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【软件测试】selenium3

自动化测试的概念 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最 后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化测试就相当于将人工测试手段进行转换,让代码…

flex布局语法以及实操,一文带你吃透flex布局的基础

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、Flex是什么? 二、Flex语法知识 1.轴的使用 1.1flex-direction属性 ​编辑 2.基础知识 2.1justify-content属性 2.1.1justify-content: fl…

【HTML5高级第二篇】WebWorker多线程、EventSource事件推送、History历史操作

文章目录 一、多线程1.1 概述1.2 体会多线程1.3 多线程中数据传递和接收 二、事件推送2.1 概述2.2 onmessage 事件 三、history 一、多线程 1.1 概述 前端JS默认按照单线程去执行,一段时间内只能执行一件事情。举个栗子:比方说古代攻城游戏&#xff0c…

CRM软件系统排名靠前的相关推荐

CRM软件是企业管理客户关系的重要工具,它可以帮助企业提高销售效率、增强客户满意度、提升市场竞争力。在众多的CRM软件中,排名靠前的CRM软件有哪些?推荐您一款领先的CRM软件——Zoho CRM。 Zoho CRM是一款全球知名的CRM软件,累计…

Ubuntu18.04系统下通过moveit控制kinova真实机械臂,并用python脚本到达固定点

测试工作空间:test_ws Kinova机械臂型号:m1n6s300 双臂模型中的左臂 测试功能包为kinova-ros官方包 一、读取kinova机械臂末端执行器位姿及tf小知识 1. tf小知识之获取两个连杆坐标系的位姿关系,非常有用,非常有用,非…

Linux tcpdump抓包命令

1.tcpdump抓包命令 -c 指定抓取包的数量,即最后显示的数量 -i 指定tcpdump监听的端口。未指定,选择系统中最小的以配置端口。-i any:监听所有网络端口 -i lo:监听lookback接口。-nn 对监听地址以数字方式呈现,且对端口也以数字方式呈现。…

Ubuntu 22.04安装过程

iso下载地址 Ubuntu Releases 1.进入引导菜单 选择Try or Install Ubuntu Server安装 2.选择安装语言 默认选择English 3.选择键盘布局 默认即可 4.选择安装服务器版本 最小化安装 5.配置网络 选择ipv4 选择自定义 DHCP也可 6.配置代理 有需要可以配置 这里跳过 7.软件源 …

LeetCode518. 零钱兑换 II 以及 动态规划相关的排列组合问题

文章目录 一、题目二、题解方法一:完全背包问题的变体(版本1)方法二:完全背包问题变体(版本2) 三、拓展:先遍历物品后遍历背包vs先遍历背包后遍历物品先遍历物品后遍历背包(组合问题…

高性能数据JS网格 Bryntum Grid 5.5.2 Crack

高性能数据网格 Bryntum Grid 是一个高性能的网络表格组件。它是用纯 JavaScript 构建的,并且可以轻松地与所有主要 JS 框架集成。 功能丰富 Bryntum Grid 具有您期望从专业网格组件获得的所有功能,包括: 很好的表现;很好的绩效 没有人喜欢缓…

记录我在cmd里使用pip命令下载Python的包时碰见的两个错误

1、pip时报错:Defaulting to user installation because normal site-packages is not writeable 解决方法:在 pip install 后面加上 --user 即可,这个是权限不足引发的问题。如果还是不行则用镜像源,然后别忘了在镜像源的“inst…

机器学习——支持向量机(SVM)

机器学习——支持向量机(SVM) 文章目录 前言一、SVM算法原理1.1. SVM介绍1.2. 核函数(Kernel)介绍1.3. 算法和核函数的选择1.4. 算法步骤1.5. 分类和回归的选择 二、代码实现(SVM)1. SVR(回归&a…

【JUC系列-05】通过源码分析AQS和ReentrantLock的底层原理

JUC系列整体栏目 内容链接地址【一】深入理解JMM内存模型的底层实现原理https://zhenghuisheng.blog.csdn.net/article/details/132400429【二】深入理解CAS底层原理和基本使用https://blog.csdn.net/zhenghuishengq/article/details/132478786【三】熟练掌握Atomic原子系列基本…