【论文阅读】Digging Into Self-Supervised Monocular Depth Estimation

news/2024/11/29 5:40:37/

在这里插入图片描述
论文:https://arxiv.org/pdf/1806.01260.pdf
代码:https://github.com/nianticlabs/monodepth2

Q: 这篇论文试图解决什么问题?

A: 这篇论文试图解决的问题是如何提高仅使用单目图像进行深度估计的性能。具体来说,它关注的是如何在没有像素级地面真实深度数据的情况下,通过自监督学习方法训练模型来生成高质量的深度图。论文中提出的方法旨在克服单目深度估计中的一些挑战,例如遮挡处理、视觉伪影减少以及相机运动假设的违反。作者通过提出几个关键的改进点,包括最小重投影损失、自适应遮罩损失和全分辨率多尺度采样方法,来提高与竞争性自监督方法相比的深度图的定量和定性质量。此外,这些改进点在不同的训练设置中(单目、立体或混合监督)都被证明是有效的,并且在KITTI基准测试中取得了最先进的结果。

Q: 论文如何解决这个问题?

A: 论文通过提出一系列改进措施来解决单目深度估计的问题,这些措施共同导致了与竞争性自监督方法相比,在定量和定性上都有所改进的深度图。具体的解决方案包括:

最小重投影损失(Minimum Reprojection Loss):

为了鲁棒地处理遮挡问题,作者提出了一种新的重投影损失函数,它只考虑每个像素在可见视图中的最小重投影误差,而不是像传统方法那样对所有源图像的重投影误差取平均。

自适应遮罩损失(Auto-Masking Loss):

为了忽略违反相机运动假设的训练像素,作者引入了一种自适应遮罩机制。该机制可以自动过滤掉在连续帧中外观不变的像素,从而让网络忽略移动速度与相机相似的对象,或者在相机静止时忽略整个帧。

全分辨率多尺度采样方法(Full-Resolution Multi-Scale Sampling):

为了减少视觉伪影,作者提出了一种在输入分辨率下计算所有损失的多尺度外观匹配损失方法。这与传统方法在解码器的每个层级上计算损失不同,可以有效地减少深度图中的“空洞”和纹理复制伪影。
这些改进措施的结合使得所提出的Monodepth2模型能够在单目、立体或混合监督下进行有效训练,并在KITTI基准测试上取得了最先进的结果。此外,作者还展示了这些组件单独使用时的有效性,并通过实验验证了它们对整体性能的贡献。

最小重投影损失(Minimum Reprojection Loss)

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

自适应遮罩损失(Auto-Masking Loss):

在这里插入图片描述
通过最小前一侦和差距,来判断哪些车是跟车一个速度,从而mask这些车,来提高整体的深度图的生成。类似flow的形式
在这里插入图片描述

全分辨率多尺度采样方法(Full-Resolution Multi-Scale Sampling):

为了减少视觉伪影,作者提出了一种在输入分辨率下计算所有损失的多尺度外观匹配损失方法。这与传统方法在解码器的每个层级上计算损失不同,可以有效地减少深度图中的“空洞”和纹理复制伪影。

在这里插入图片描述

Final Training Loss

L = μ L p + λ L s L = \mu L_p + \lambda L_s L=μLp+λLs

在这里插入图片描述
用pose来做自监督,从而来监督深度图的生成。
在这里插入图片描述
因为这是一个自监督的学习过程,所以输入的图片没有预先定义的深度标签(即没有预设的正确答案来帮助优化输出的深度图)。因此,我们采用了一种联合训练方法。这种方法通过输入相邻的图像帧来训练一个网络,这个网络能预测这些帧之间的相对位置。通过这种训练,我们可以从原始帧生成重建帧。然后,我们用这些重建帧和原始输入帧之间的差异来作为训练信号,以此达到自我监督学习的效果。
在这里插入图片描述

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

参考:https://blog.csdn.net/qq_17027283/article/details/131841352

在这里插入图片描述

结果图

在这里插入图片描述


http://www.ppmy.cn/news/1418510.html

相关文章

linux查看硬盘空间使用情况

df (1)查看磁盘空间的占用情况 -h是给大小带上单位 df -h 总空间不一定等于已用未用,系统可能留出来一点空间另做他用 (2)查看INode的使用情况 df -idu du命令比df命令复杂一点,是查看文件和目录占用的…

【设计模式学习】单例模式和工厂模式

꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转…

步骤大全:网站建设3个基本流程详解

一.领取一个免费域名和SSL证书,和CDN 1.打开网站链接:https://www.rainyun.com/z22_ 2.在网站主页上,您会看到一个"登陆/注册"的选项。 3.点击"登陆/注册",然后选择"微信登录"选项。 4.使用您的…

探索量子计算:打开未来技术的大门

在科技领域,每一次技术革命都能开启新的可能性,推动人类社会进入一个新的时代。当前,量子计算作为一种前沿技术,正引领着下一轮科技革命的浪潮。本文将深入探索量子计算的奥秘,解析其工作原理,并通过一个简…

dalle2介绍

dalle2是一个基于强化学习的图像生成模型,是dalle模型的改进版本。它由OpenAI团队开发,旨在生成高质量的、多样化的图像。 dalle2的核心思想是利用强化学习将图像生成过程转化为一个马尔可夫决策过程。它采用了一个称为"敌对生成网络"&#x…

vue源码解析——diff算法/双端比对/patchFlag/最长递增子序列

虚拟dom——virtual dom,提供一种简单js对象去代替复杂的 dom 对象,从而优化 dom 操作。virtual dom 是“解决过多的操作 dom 影响性能”的一种解决方案。virtual dom 很多时候都不是最优的操作,但它具有普适性,在效率、可维护性之…

C#简单工厂模式的实现

using System.Diagnostics.Metrics; using System.Runtime.InteropServices; using static 手写工厂模式.Program;namespace 手写工厂模式 {internal class Program{public interface eats {void eat();}//定义了一个接口public class rice : eats{public void eat() {Console.…

Spring源码刨析之配置文件的解析和bean的创建以及生命周期

public void test1(){XmlBeanFactory xmlBeanFactory new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));user u xmlBeanFactory.getBean("user",org.xhpcd.user.class);// System.out.println(u.getStu());}先介绍一个类XmlBeanFac…