单目深度估计学习 第二周

单目深度估计学习 第二周

学习论文:

  1. Monocular Depth Estimation: A Thorough Review | IEEE Journals & Magazine | IEEE Xplore

学习任务

以这篇2024年最新的单目深度估计方向文献综述为基础,初步了解深度估计的框架和评价指标,对深度估计的学习有更进一步的深入和认识。

一.空间结构的表示

  1. 深度图(Depth Map)

    • 深度图是单目深度估计的核心输出,每个像素对应的深度值反映了从相机位置到场景中相应点的距离。深度图通常用于辅助三维重建、对象检测和场景理解等任务。

    • 生成深度图的过程可能涉及对场景中的不同特征(如边缘、纹理)进行分析,从而推断场景中的几何结构。

  2. 三维重建(3D Reconstruction)

    • 通过将深度图与相机内参结合,可以将二维图像中的每个像素点投影到三维空间中。这一过程使得从单目图像中恢复出场景的三维结构成为可能,尽管其精度可能不如双目或多目视觉。
    • 三维重建可以用于虚拟现实、增强现实、机器人导航等应用中,通过重建场景的三维模型,进一步分析场景中的物体形状、相对位置等信息。
  3. 视觉线索(Visual Cues)

    • 相对大小(Relative Size)

      当我们看到两个相似的物体时,通常会认为看起来较小的物体更远。这个线索在日常生活中非常普遍,比如看一排树时,远处的树看起来比近处的树小,即使它们实际大小相同。

    • 纹理渐变(Texture Gradients)

      这是指随着距离的增加,物体表面的纹理(如地面上的沙子、草地等)看起来越来越密集和细小。近处的纹理细节更为清晰,而远处的纹理变得模糊和压缩,这种变化可以帮助我们感知深度。

    • 透视变形(Perspective)

      透视效应是指物体的形状和大小随着距离变化而产生的视觉变形。例如,平行线在远处会汇聚到一个消失点(如铁路轨道),物体的部分也会随着距离变得更小和更窄,这些变化为我们提供了强烈的深度感。

    • 遮挡(Occlusion)

      遮挡关系是判断深度的一个直接而可靠的线索。当一个物体部分或全部被另一个物体遮挡时,我们可以推断被遮挡的物体在空间中处于更远的位置。这种线索在视觉场景中非常常见,是最基础的深度判断方式之一。

    • 运动视差(Motion Parallax)

      当我们移动头部或身体时,近处的物体在视野中移动得比远处的物体快。例如,当你在行驶的车上看窗外时,近处的树木快速掠过,而远处的山脉移动得很慢。通过这种运动引起的视差变化,我们能够感知到物体的深度。

    • 大气透视(Aerial Perspective)

      由于空气中悬浮的微粒会散射光线,远处的物体通常会显得更模糊,颜色也会偏蓝或偏灰。大气透视效果在自然景观中尤为明显,帮助我们判断物体的远近。

    • 双眼视差(Binocular Disparity)

      人类有两只眼睛,分别从略微不同的角度观察世界。这种视角差异导致左右眼看到的图像稍有不同,尤其是近处物体的差异更为显著。大脑通过处理这种差异,精确地计算出物体的深度信息。这是立体视觉的基础,也是立体电影和VR设备工作的原理之一。

  4. 深度感知机制(Depth Perception Mechanisms)

    • 人类感知深度依赖于多种机制,包括单眼线索(如前述的视觉线索)和双眼线索(如立体视差)。这些机制启发了计算机视觉算法的设计,例如,通过模拟人眼的调节过程或立体匹配过程来改进深度估计的准确性。
    • 此外,某些算法还会模拟人类视觉系统中的动态感知机制,如通过分析物体的运动轨迹来估计深度。
  5. 深度估计方法(Depth Estimation Methods)

    • 绝对深度测量
      • 精确估计场景中每个像素到摄像头的实际物理距离,通常以米或厘米为单位。
      • 生成的深度图是具有物理尺度的,可以直接用于测量物体的实际尺寸和位置。
      • 常常依赖于多视角或深度传感器,例如立体相机、LiDAR 或结构光扫描仪等。这些设备通过捕捉环境中的物理信号来计算出实际距离。
      • 在没有额外传感器的情况下,单纯依赖单目图像进行绝对深度测量非常困难,主要是因为无法解决尺度模糊性问题。
    • 相对深度估计
      • 识别场景中物体之间的相对深度关系,即哪些物体离摄像头更近,哪些更远,但不涉及具体的物理距离。
      • 生成的深度图是相对的,不包含实际物理距离信息,通常用于排序和分层。
      • 可以通过单目图像、深度学习模型(如CNN)从图像的上下文中学习相对深度线索,无需额外的传感器。
      • 易于实现,尤其是在没有专用硬件的情况下,可以利用已有的图像数据。对许多应用场景已经足够。

    联系

    • 尽管绝对深度测量和相对深度估计的目标不同,但它们在某些情况下可以相互补充。例如,在自动驾驶系统中,相对深度估计可以用来快速识别和分类障碍物,而绝对深度测量则可以用来精确计算与障碍物的距离,以做出更精确的避障决策。

    • 在实际应用中,相对深度估计往往更容易实现,因为它不需要额外的传感器,并且可以利用现有的图像数据。然而,当需要精确的三维重建或测量时,绝对深度测量可能是必要的。

    • 深度学习方法,如卷积神经网络(CNN),可以同时用于绝对和相对深度估计。研究者们会根据具体的应用需求和可用的数据类型选择合适的方法。

二.基本原理和机制

  1. 特征提取

    深度学习模型(尤其是卷积神经网络,CNN)通过多个卷积层从输入的单目图像中逐步提取有助于深度估计的特征。最初的层级通常提取低级特征,如边缘和纹理,而后续的层级会提取更复杂的特征,如物体的形状和空间关系。这些特征共同构建了模型对图像中深度信息的理解。

  2. 深度线索的利用

    人类视觉系统在感知深度时依赖于多种深度线索,例如:

    • 纹理渐变:远处物体的纹理通常更密集,而近处物体的纹理则更稀疏。
    • 相对大小:在同一视角下,较小的物体通常离观察者更远。
    • 遮挡:部分被遮挡的物体通常位于较远的位置。
    • 线性透视:平行线在远处会汇聚在一点上。

    深度学习模型通过学习这些线索,利用图像中的上下文信息推断物体之间的相对深度关系。

  3. 网络架构

    不同的网络架构在深度估计任务中扮演不同的角色:

    • 卷积神经网络(CNN):通过局部感受野提取图像特征,常用于单目深度估计。
    • 生成对抗网络(GAN):通过对抗训练提升深度估计图的真实感,生成更加逼真的深度图。
    • 编码器-解码器架构:常用于全局深度估计,从输入图像生成对应的深度图。
    • 多视角网络:利用多个视角的图像进行深度推断,提高深度估计的准确性。
  4. 训练过程

    深度学习模型通过监督学习来学习从图像到深度图的映射关系。常见的训练方法包括:

    • 监督学习:使用具有标注深度信息的图像对模型进行训练,计算损失函数并优化参数。
    • 自监督学习:在缺乏标注的情况下,利用几何约束或图像序列中的帧间关系(如视差)来训练模型。
  5. 泛化能力

    模型的泛化能力是指其在面对未见过的场景时,仍能准确地进行深度估计的能力。通过数据增强、正则化、以及利用大规模、多样化的训练数据集,模型可以提高泛化能力。

  6. 可解释性

    可解释性是指模型决策过程的透明性,以及对其预测结果的合理解释。对深度估计模型的可解释性研究通常涉及:

    • 可视化特征图:展示模型在决策过程中关注的图像区域。
    • 分析决策依据:理解模型是如何利用输入特征来推断深度的,例如通过分析模型对不同深度线索的敏感性。

三.人类的深度感知

在这里插入图片描述

  1. 相对大小 (Relative Size, RS):当我们看到两个相似的物体时,较小的那个通常被认为离我们更远。这是因为视网膜上的投影尺寸随着距离增加而减小。

  2. 相对密度 (Relative Density, RD):指的是当我们看到一簇物体或纹理时,随着距离的增加,这些物体看起来彼此更接近,导致纹理的密集度增加。

  3. 视觉场中的高度 (Height in Visual Field, H):物体离观察者越远,它们在视觉场景中就越接近地平线。这种线索通常假定物体在一个平面(如地面)上,没有天花板或其他垂直限制。

  4. 空气透视 (Aerial Perspective, AP):由于大气的影响,远处的物体通常会显得更蓝,并且对比度较低。这是因为空气中的微粒和湿气会散射光线,影响远处物体的颜色和清晰度。

  5. 运动透视 (Motion Parallax, MP):当观察者或观察到的物体在运动时,近处的物体移动得更快,而远处的物体移动得更慢。这种现象帮助我们判断物体的相对距离。

  6. 汇聚 (Convergence, C):这是指当我们看向一个近距离物体时,两只眼睛的光轴会相互靠近,形成一定的汇聚角度,而当物体距离增加时,这个角度趋于平行。

  7. 调节 (Accommodation, A):指的是眼睛的晶状体调整形状以适应不同距离的物体,从而在视网膜上形成清晰的图像。近处物体需要晶状体更加凸起以正确聚焦。

  8. 双眼视差 (Binocular Disparity, BD):这是立体视觉的基础,是指两只眼睛看到的图像略有不同,这种差异随着物体距离的变化而变化。通过大脑处理这两个略有不同的图像,我们可以感知深度。

不同深度线索在不同距离上的影响

在这里插入图片描述

四.评价指标

在深度学习模型的评估中,特别是在回归任务或与预测值相关的任务中,使用多种评价指标来衡量模型的性能。

在这里插入图片描述

  1. 绝对相对误差 (Absolute Relative Error, AbsRel)

    • 绝对相对误差衡量的是预测值与真实值之间的相对差异的平均绝对值。
    • 公式:
      absrel = 1 n ∑ i = 1 n ∣ d i − d ^ i ∣ d i \text{absrel} = \frac{1}{n} \sum_{i=1}^{n} \frac{|d_i - \hat{d}_i|}{d_i} absrel=n1i=1ndidid^i
      其中, d i d_i di 是真实值, d ^ i \hat{d}_i d^i 是预测值, n n n是样本总数。
  2. 平方相对误差 (Squared Relative Error, SqRel)

    • 平方相对误差是预测值与真实值之间相对误差的平方和,衡量的是相对误差的平方平均值。
    • 公式为:
      sqrel = 1 n ∑ i = 1 n ( d i − d ^ i d i ) 2 \text{sqrel} = \frac{1}{n} \sum_{i=1}^{n} \left(\frac{d_i - \hat{d}_i}{d_i}\right)^2 sqrel=n1i=1n(didid^i)2
  3. 线性均方根误差 (Linear Root Mean Squared Error, RMSE(lin) )

    • 线性均方根误差用于衡量预测值与真实值之间的平方误差的平方根,是模型预测误差的标准差。
    • 公式为:
      RMSE(lin) = 1 N ∑ i = 1 N ( d i − d ^ i ) 2 \text{RMSE(lin)} = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (d_i - \hat{d}_i)^2} RMSE(lin)=N1i=1N(did^i)2
  4. 对数均方根误差 (Logarithmic Root Mean Squared Error, RMSE(log) )

    • 对数均方根误差是预测值与真实值的对数之间的均方根误差,常用于处理数据范围较大的场景。
    • 公式为:
      RMSE(log) = 1 N ∑ i = 1 N ( log ⁡ ( d i ) − log ⁡ ( d i ^ ) ) 2 \text{RMSE(log)} = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (\log(d_i) - \log(\hat{d_i}))^2} RMSE(log)=N1i=1N(log(di)log(di^))2
  5. 可缩放均方误差 (Scale-Invariant RMSE, srmse(log))

    • 可缩放均方误差试图去除模型预测中的尺度影响,通过对对数误差进行标准化来计算模型误差。
    • 公式为:
      s R M S E ( log ⁡ ) = 1 N ∑ i = 1 N ( log ⁡ d i − log ⁡ d ^ i + a ( d i , d ^ i ) ) 2 w h e r e a ( d i , d ^ i ) = 1 N ∑ i ( log ⁡ d ^ i − log ⁡ d i )   i s   t h e   s c a l e   a l i g n m e n t   v a l u e . sRMSE(\log)=\frac{1}{N}\sum_{i=1}^{N}(\log d_i-\log \hat{d}_i+a(d_i,\hat{d}_i))^2 \\where\\ a(d_i,\hat{d}_i)=\frac{1}{N}\sum_i(\log \hat{d}_i-\log d_i) \ is\ the\ scale\ alignment\ value. sRMSE(log)=N1i=1N(logdilogd^i+a(di,d^i))2wherea(di,d^i)=N1i(logd^ilogdi) is the scale alignment value.
  6. 精度 (Accuracy with Threshold (δx) )

    • 这个指标衡量预测值与真实值之间误差是否在一定阈值 ( \delta ) 范围内。通常有三个阈值:( \delta_1 = 1.25 ),( \delta_2 = 1.25^2 ),( \delta_3 = 1.25^3 )。
    • 公式为:
      A c c u r a c y   w i t h   t h r e s h o l d   ( δ x ) :   ( % )   o f   d i   s u c h   t h a t m a x ( d k d i , d i d k ) = δ < t h r   w h e r e   t h r = 1.25 , 1.2 5 2 , 1.2 5 3 Accuracy \ with \ threshold \ (\delta_x): \ (\%) \ of \ d_i \ such \ that \\ max(\frac{d_k}{d_i},\frac{d_i}{d_k}) = \delta < thr \ where \ thr = 1.25, 1.25^2, 1.25^3 Accuracy with threshold (δx): (%) of di such thatmax(didk,dkdi)=δ<thr where thr=1.25,1.252,1.253

五.常用数据集

在这里插入图片描述

六.基于深度学习的单目深度估计

深度学习在单目深度估计中的应用确实涵盖了监督学习、自监督学习和半监督学习三种主要的学习范式。每种方法都有其优势和挑战。下面是对这三种学习范式的详细描述,重点突出它们在单目深度估计中的应用特点和场景。

  1. 监督学习(Supervised Learning)

    在这里插入图片描述

    特点:

    • 数据要求:需要大量标注数据。训练数据集包含输入图像和对应的深度图(ground truth)。
    • 训练过程:模型通过学习输入图像与深度图之间的映射关系来进行训练,目标是最小化预测深度和真实深度之间的差异。
    • 优点:通常能实现较高的精度,因为模型能够直接从标注数据中学习到深度信息。
    • 挑战:需要大量的标注数据,这些数据的获取成本高且耗时。

    应用场景:

    • 适用于那些有大量标注数据可用的场景,例如在特定场景下有大量的深度传感器数据或通过专业设备获得的标注数据。

    在两种数据集下使用监督学习单目深度估计的差异

    在这里插入图片描述

  2. 自监督学习(Self-Supervised Learning)

    在这里插入图片描述

    特点:

    • 数据要求:不依赖于外部标注数据。利用图像本身的结构和属性来生成训练信号。
    • 训练过程:通过设计合适的损失函数,模型可以利用图像序列中的时间一致性(如连续帧之间的运动)或图像本身的几何约束(如通过光流估计)进行训练。
    • 优点:减少了对标注数据的依赖,可以在未标注数据上进行训练。常用于没有标注数据的情况下。
    • 挑战:需要精心设计训练策略,可能需要复杂的损失函数和训练过程来确保模型学到有用的深度信息。

    应用场景:

    • 适用于没有足够标注数据但有大量图像序列或视频数据的场景。例如,在动态环境中的视频监控或大规模图像库中,利用时间一致性或几何约束进行训练。

    在KITTI数据集下使用自监督学习单目深度估计的差异

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 半监督学习(Semi-Supervised Learning)

    特点:

    • 数据要求:结合了少量标注数据和大量未标注数据。
    • 训练过程:模型首先使用有限的标注数据训练初步模型,然后利用未标注数据来进一步改进模型的性能。常见方法包括自训练、协同训练等。
    • 优点:通过结合未标注数据的丰富性和有限的标注数据,提高模型的泛化能力,同时减少对标注数据的需求。
    • 挑战:如何有效地利用未标注数据进行训练,避免模型过度拟合未标注数据的噪声。

    应用场景:

    • 适用于标注数据稀缺但有大量未标注数据的场景。例如,医学图像分析中的少量标注病例和大量未标注病例,或自动驾驶中的传感器数据与少量标注的场景图像。

    在KITTI数据集下使用半监督学习单目深度估计的差异

    在这里插入图片描述

选择合适的学习范式

  • 监督学习适用于数据丰富的情况,可以提供最精确的深度估计,但数据标注的成本较高。

  • 自监督学习适用于数据丰富但标注稀缺的情况,通过利用数据本身的特性来进行训练,适合图像序列或具有几何结构的场景。

  • 半监督学习则在标注数据有限但有大量未标注数据时非常有用,可以减少标注成本,同时充分利用未标注数据的潜力。
    量标注的场景图像。

    在KITTI数据集下使用半监督学习单目深度估计的差异

    [外链图片转存中...(img-G5E0079z-1723535231698)]

选择合适的学习范式

  • 监督学习适用于数据丰富的情况,可以提供最精确的深度估计,但数据标注的成本较高。
  • 自监督学习适用于数据丰富但标注稀缺的情况,通过利用数据本身的特性来进行训练,适合图像序列或具有几何结构的场景。
  • 半监督学习则在标注数据有限但有大量未标注数据时非常有用,可以减少标注成本,同时充分利用未标注数据的潜力。
  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值