深圳Yolo 视觉
深圳
立即加入

单目深度估计是什么?概述

了解单目深度估计的工作原理,它与基于传感器的深度方法有何不同,以及它如何在视觉系统中实现可扩展的3D感知。

使用 Ultralytics 扩展您的计算机视觉项目

开始使用

自动驾驶汽车旨在理解周围环境,以确保安全驾驶。这意味着它们不仅要识别行人或其他车辆等物体。 

它们还需要知道这些物体有多远,以便正确响应。然而,赋予机器这种距离感并非易事。与人类不同,它们无法自然地从图像中感知深度,必须明确地被教导如何做到这一点。

这背后的一个原因是,大多数相机将世界捕捉为扁平的二维图像。将这些图像转化为能够反映真实世界深度和3D结构的信息是棘手的,尤其是在系统需要在日常条件下可靠工作时。 

有趣的是,计算机视觉作为人工智能的一个分支,专注于解释和理解视觉数据,使机器能够更好地从图像中理解世界。例如,单目深度估计是一种计算机视觉技术,仅使用单个相机图像来估计物体的距离。

通过学习物体大小、透视、纹理和阴影等视觉线索,这些模型无需依赖LiDAR(光探测与测距)或立体相机等额外传感器即可预测深度。在本文中,我们将探讨什么是单目深度估计、它是如何工作的以及它的一些实际应用。让我们开始吧!

单目深度估计快速入门

单目深度估计使机器能够仅使用单个图像来理解物体与自身的距离。由于它仅依赖于单个相机,这种方法具有成本较低和硬件要求更简单等优点。

例如,它可用于配备单个相机的经济型家用机器人。即使仅凭一张图像,机器人系统也能识别哪些墙壁更近、哪些门更远,并推断出空间的整体深度。

通常,单个图像不包含正确尺度的信息,因此单目深度估计通常侧重于相对深度。换句话说,即使不知道确切距离,它也能确定哪些物体更近,哪些物体更远。

当模型使用包含真实距离或绝对深度(例如来自激光雷达等传感器的深度测量数据)的数据进行训练时,它可以学习预测实际单位(如米)的距离。如果没有这类参考数据,模型仍然可以推断相对深度,但无法可靠地估计绝对距离。

单目深度估计的输出通常是深度图,这是一种图像,其中每个像素表示场景该部分的远近。深度图为视觉系统提供了对环境 3D 结构的基本理解。

图1. 使用单目深度估计创建的预测深度图示例(来源

从传感器到图像:深度估计

深度估计可以通过多种方式实现,具体取决于可用的传感器、硬件限制和精度要求。传统方法通常依赖多个视角或专用传感器来直接测量距离。

一种常见的方法是立体视觉,它通过比较从略微不同视角捕获的两个同步图像来估计深度。通过测量两幅图像中对应点之间的差异,系统可以推断物体与相机的距离。

另一种方法是RGB-D(红、绿、蓝和深度)系统,它使用主动深度传感器直接测量每个像素的距离。这些系统可以在受控环境中提供准确的深度信息,但需要额外的硬件。

同时,基于LiDAR的方法使用激光脉冲生成场景的精确三维表示。尽管精度很高,但LiDAR传感器通常价格昂贵,并增加了显著的硬件复杂性。

相比之下,单目深度估计仅使用单个RGB图像来推断深度。由于它不依赖于多个相机或专用传感器,因此更容易大规模部署,并且在成本和硬件资源有限时是一个不错的选择。 

从单幅图像中学习深度

当从单幅图像估计深度时,单目深度模型会学习识别人类本能用于判断距离的视觉线索。这些线索包括透视线、物体大小、纹理密度、物体遮挡和阴影,所有这些都提供了关于物体与相机距离的提示。

这些线索共同作用,营造出深度感。看起来更小或部分被遮挡的物体通常更远,而更清晰的细节和更大的视觉外观通常表明物体更近。

为了学习这些模式,单目深度模型在大型图像数据集上进行训练,通常与从 LiDAR 或立体系统等其他来源获取的深度信息配对。在训练过程中,模型学习视觉线索如何与深度相关联,使它们能够在推理时从单张图像推断距离。

凭借多样化的训练数据,现代视觉模型可以将这种习得的理解泛化到广泛的环境中,包括室内和室外场景,并能处理不熟悉的视角。

各种单目深度估计技术一览

接下来,我们将探讨从单幅图像估计深度的主要方法以及这些方法是如何随着时间演变的。

经典和基于几何的方法

早期的深度估计方法依赖于与相机几何相关的直接视觉规则。透视、物体大小以及一个物体是否遮挡另一个物体等线索被用来估计距离。 

例如,当两个相似的物体以不同大小出现时,较小的那个被假定为更远。这些方法在照明、相机位置和场景布局等因素保持一致的受控环境中效果良好。

然而,在真实世界场景中,这些假设通常会失效。光照变化、视角改变以及场景复杂性增加都可能导致深度估计不可靠,从而限制了经典方法在非受控环境中的有效性。

早期的机器学习方法

早期机器学习方法通过直接从数据中学习模式,为深度估计带来了更大的灵活性。这些模型不再仅仅依赖固定的几何规则,而是尝试学习视觉信息与距离之间的关系,将深度预测视为一个回归问题,其依据是边缘、纹理和颜色变化等线索。

选择这些特征是该过程中的关键环节。工程师需要决定提取哪些视觉信号以及如何表示它们,而模型的性能在很大程度上取决于这些选择。

尽管这种方法比早期方法效果更好,但仍有局限性。如果所选特征缺乏重要上下文,深度预测的准确性就会降低。随着场景变得更加复杂多样,这些模型往往难以产生可靠的结果。

深度学习算法

大多数现代单目深度估计系统都采用深度学习,它指的是具有多层神经网络,能够从数据中学习复杂模式。这些模型直接从图像中学习预测深度并生成深度图。

许多方法都采用卷积神经网络(CNN)构建,这是一种通过detect边缘和形状等模式来处理图像的神经网络。这些模型通常采用编码器-解码器结构:编码器从图像中提取视觉特征,解码器将这些特征转换为深度图。在多个尺度上处理图像有助于模型捕捉场景的整体布局,同时仍能捕获清晰的物体边界。

更近期的模型侧重于理解图像不同部分之间的关系。基于Transformer和Vision Transformer (ViT) 模型采用注意力机制,这使得模型能够识别图像中哪些区域最相关,并将远距离区域相互关联起来。这有助于模型在整个场景中建立更一致的深度理解。

一些系统结合了这两种思想。混合CNN-Transformer模型利用CNN捕捉精细的局部细节,并利用Transformer建模场景的全局上下文。尽管这通常能提高准确性,但它通常需要更多的计算资源,例如额外的内存和处理能力。

深度理解对视觉AI系统的重要性

在你了解单目深度估计时,你可能会想知道为什么深度理解是基于视觉的AI系统如此重要的一部分。

当系统能够估计物体和表面的距离时,它就能更好地理解场景的布局以及不同元素之间的关系。这种空间感知对于做出可靠决策至关重要,尤其是在自动驾驶等实际应用中。

深度信息还为其他计算机视觉任务增加了有价值的上下文。例如,由Ultralytics YOLO26等模型支持的物体detect,可以告诉系统场景中存在什么,但深度有助于回答这些物体相对于相机和彼此的位置。

这些能力共同支持广泛的视觉AI应用,例如构建3D地图、在复杂环境中导航以及整体理解场景。 

机器人和自动驾驶车辆依赖这些信息以安全移动、避开障碍物并实时响应变化。例如,特斯拉的纯视觉驾驶方法依赖于相机图像结合深度估计,而非激光雷达,来理解物体距离有多远以及它们在道路上的位置。

单目深度估计模型如何工作

尽管模型架构各异,但大多数单目深度估计模型都遵循相似的过程将单幅图像转换为深度图。以下是所涉及关键步骤的快速概述:

  • 输入与预处理:工作流程从输入图像开始。在传入模型之前,原始图像通常会被调整大小、归一化并转换为 tensor,这是一种神经网络用于高效处理图像数据的格式。
  • 特征提取:编码器网络分析图像以提取有意义的视觉特征。这些特征捕获纹理、对象边界和场景整体布局等信息。大多数模型在多个尺度上运行,以便它们能够理解精细细节和全局结构。
  • 深度推理: 利用提取的特征,模型将局部细节与全局上下文结合,以推理场景中的空间关系。在此阶段,它学习图像中哪些区域离相机更近,哪些更远。
  • 深度图生成: 解码器随后将此信息转换为密集的深度图。图像中的每个像素都被分配一个深度值,通常通过融合来自不同尺度的预测来提高准确性和一致性。

单目深度估计模型如何训练

我们刚刚讨论的过程假设我们已经有一个训练好的或预训练的模型。但是,单目深度估计模型的训练究竟是如何进行的呢?

训练始于准备图像数据,以便网络能够高效处理。输入图像被调整大小并归一化到一致的比例,然后通过模型生成一个预测深度图,该深度图估计每个像素的距离。

然后,将预测的深度图与参考深度数据使用损失函数进行比较,该函数衡量模型预测与真实深度之间的差距。这个损失值代表了模型当前的误差,并为改进提供了信号。

优化器利用此信号通过调整其内部权重来更新模型。为此,优化器会计算梯度,梯度描述了损失相对于每个模型参数的变化方式,并在多个 epoch(即完整遍历训练数据集)中重复应用这些更新。

这种迭代监督学习训练过程由超参数指导,例如控制每次更新步长大小的学习率,以及决定一次处理多少图像的批处理大小。由于训练涉及大量的数学运算,通常使用图形处理单元 (GPU) 加速,这非常适合并行计算。

训练完成后,模型会在验证集上使用标准评估指标进行评估,验证集包含在训练期间未使用的图像。这种评估有助于衡量模型对新数据的泛化能力。 

训练好的模型可以重复使用或针对新场景进行微调。总的来说,这种训练过程使得单目深度估计模型能够产生一致的深度估计,这对于3D重建和实际部署等下游任务至关重要。

探索最先进的模型和研究趋势

随着模型在理解整个场景而非仅仅微小视觉细节方面能力的提升,单目深度估计技术取得了快速发展。早期方法通常会生成不均匀的深度图,尤其是在复杂环境中。 

正如arXiv上发表的最新研究所示,新型模型更注重全局上下文,从而使深度预测看起来更稳定、更真实。诸如MiDaS和DPT等知名模型通过从多样化、高分辨率的数据集中学习深度,并在多种场景中表现出良好的泛化能力,推动了这一转变。 

包括ZoeDepth和Depth Anything V2在内的更近期模型,在此基础上通过提高尺度一致性,同时在各种设置下保持强大的性能。这类进展通常使用KITTI和NYU等涵盖室外和室内场景的常见基准数据集进行衡量。 

另一个明显的趋势是在准确性和实用性之间取得平衡。小型模型针对速度进行了优化,可以在边缘或移动设备上实时运行,而大型模型则优先考虑更高的分辨率和远距离深度精度。 

单目深度估计应用

接下来,我们将探讨一些真实世界的例子,展示单目深度估计如何用于从单张图像推断场景的3D结构。 

在所有这些情况下,重要的是要记住,深度信息是从视觉线索推断出的估计值,而非精确测量。这使得单目深度估计在理解相对布局和空间关系方面非常有用,但不能替代旨在精确测量距离的传感器,例如LiDAR或立体系统。

基于无人机的地形测绘和导航

无人机经常在GPS信号不可靠的环境中运行,例如森林、建筑工地、灾区或人口密集的城市区域。为了在这些条件下安全飞行,它们需要了解周围地形并知道障碍物的距离。过去,这通常需要添加LiDAR或立体相机等传感器,这会增加重量、功耗和总成本。

单目深度估计是一种更简单的替代方案。仅使用单个RGB摄像头,无人机就可以从图像中估计深度,并建立对其环境的基本3D理解。这使它们能够detect建筑物、树木或地形突变等障碍物,并实时调整飞行路径。

这些深度估计支持关键的导航任务,包括避障、高度控制和安全着陆。因此,轻型无人机无需依赖专用深度传感器即可执行测绘、检查和导航任务。

图2. 单目深度估计可用于分析无人机图像 (来源)

弥补自动驾驶赛车的盲点

自动驾驶车辆通常严重依赖LiDAR传感器,LiDAR传感器利用激光脉冲测量距离并构建道路的3D视图。尽管精度很高,LiDAR在处理急剧路峰、陡坡、遮挡或车辆突然俯仰时可能会遇到困难,有时会返回稀疏或缺失的深度数据。

单目深度估计可以通过从单个RGB图像中提供密集深度信息来弥补这些空白,即使LiDAR数据不完整。设想一个场景,一辆自动驾驶汽车正高速接近一个山顶。LiDAR光束可能会越过山顶以外的道路,导致前方情况的不确定性。 

然而,基于摄像头的深度估计仍然可以从透视和纹理等视觉线索推断道路的形状,帮助车辆在LiDAR数据稳定之前保持可靠的感知。LiDAR和单目深度估计相结合,可以在复杂的驾驶条件下实现更稳定的感知和更安全的控制。

图3. 单目深度估计在自动驾驶竞赛中的应用可视化 (来源)

机器人导航和避障

机器人通常在没有详细地图的区域运行,且环境条件不断变化。为了安全移动,它们需要可靠地感知周围空间大小和障碍物位置。 

单目深度估计可以使用单个RGB摄像头提供这种空间感知能力,无需依赖笨重或昂贵的硬件。通过学习尺度和透视等视觉线索,深度估计模型可以生成周围环境的密集深度图。这为机器人提供了到表面和物体距离的清晰视图。

特别是,当深度信息与object detection和语义segmentation等计算机视觉任务结合时,机器人可以获得对其环境更全面的视图。它们可以识别物体,理解其距离,并决定安全移动的区域。这支持了避障、自由空间检测和实时路径规划。

图4. 使用单目深度估计和object detection进行物体detect (来源)

单目深度估计的优点和缺点

以下是使用单目深度估计的一些主要优势:

  • 轻量化和高能效:使用单个摄像头可降低系统重量和功耗,这对于移动机器人、无人机和嵌入式系统尤为重要。
  • 传感器融合友好:单目深度可以补充其他传感器,如LiDAR或雷达,通过填补空白或提供冗余来增强系统性能。
  • 适用于多种环境: 相同的基于摄像头的方法可用于室内、室外和不同平台,无需硬件更改。

虽然单目深度估计提供了明显的优势,但仍需考虑以下局限性:

  • 低于主动传感器的准确性: 尽管正在迅速改进,单目深度估计通常无法在受控条件下与LiDAR或结构光传感器的绝对精度相媲美。
  • 对光照条件的敏感性: 在低光照环境、强阴影、眩光或纹理较差的场景中,性能可能会下降。
  • 泛化挑战:在一个环境中训练的模型,未经适应或微调,可能无法始终可靠地迁移到未见的领域。

何时不应依赖单目深度估计

虽然单目深度估计是一个有趣的研究领域,但了解其在实际中何时可用、何时不可用至关重要。它产生的距离是基于模型在图像中看到的内容的估计值,而非从现实世界中获取的精确测量值。

因此,结果的质量会因光照、场景复杂性以及场景与模型训练数据之间的相似度等因素而异。单目深度估计通常擅长判断物体的远近,但在需要精确距离时并不可靠。

在精度至关重要的场景中,例如安全关键系统、工业检测或需要与物体进行高精度交互的机器人,深度需要直接测量。LiDAR、雷达、立体相机或结构光系统等传感器正是为此而设计,能够提供更可靠的距离信息。

单目深度估计在视觉条件困难的情况下也可能表现不佳。光照不足、强阴影、反射或透明表面、雾、烟雾,或视觉纹理极少的场景,都可能降低深度估计的可靠性。在远距离深度估计方面,专用传感器通常表现更优。

在实际解决方案中,单目深度估计作为辅助工具而非独立解决方案时效果最佳。它可以增加有用的空间上下文,在其他传感器受限时帮助填补空白,并提高整体场景理解。然而,当准确性、安全性或严格的可靠性要求很重要时,它不应是唯一的深度信息来源。

主要要点

单目深度估计是一种计算机视觉技术,它使机器能够仅使用单张相机图像来估计物体的距离。通过学习透视、物体大小、纹理和阴影等视觉线索,这些AI模型能够推断出场景的3D结构,而无需依赖LiDAR或立体相机等传感器。这使得单目深度估计成为自动驾驶、机器人技术和3D场景理解等应用的经济高效且可扩展的方法。

要了解更多关于视觉AI的信息,请访问我们的 GitHub 仓库 并加入我们的 社区。查看我们的解决方案页面,了解 机器人中的AI制造业中的计算机视觉。探索 我们的许可选项,立即开始计算机视觉之旅!

让我们一起共建AI的未来!

开启您的机器学习未来之旅