深度估计是计算机视觉中从图像或视频恢复场景中各点与相机之间距离关系的一类任务,其输出通常是一张深度图或视差图,用来表示场景的三维几何结构。按照输入方式,它可以分为单目、双目立体、多视和视频等几类;单目方案只需一台普通相机,成本低但存在尺度不确定的问题,双目与多视方案依靠几何约束可以获得更稳定的绝对深度。深度估计是三维重建、自动驾驶、机器人导航和增强现实等技术的基础环节,近年来随着大规模预训练模型的出现,其跨场景泛化能力显著提升。
定义
深度估计指的是利用相机采集的图像信息推算场景中物体表面到相机距离的过程,结果一般以深度图的形式给出,图中每个像素的取值代表该位置对应的场景深度。它与视差图关系密切:在已经标定并校正的双目图像中,视差与深度成反比,深度越大视差越小,因此由视差图可以换算出深度图。[1]
按输入的相机数量与观测方式,深度估计可划分为单目深度估计、双目立体深度估计、多视深度估计和单目视频深度估计等类别。单目深度估计仅依靠单幅图像中的语义与几何线索推断深度,可显著降低计算复杂度与硬件成本;双目与多视方法则借助不同视角之间的几何约束恢复绝对深度。[2]
深度估计与主动测距方式存在区别。激光雷达、飞行时间传感器和超声波探头通过测量光子或声波往返时间获得距离,精度较高但价格昂贵、分辨率有限,且对光照条件较为敏感;基于视觉的方法不依赖这类主动传感硬件,能够利用日常设备中普遍存在的相机,成本较低、深度范围不受限制,并可提供较高分辨率的结果。[3]
原理
双目立体深度估计的原理建立在三角测量之上。两个相机光心之间的距离称为基线,空间中同一点在左右图像上的成像位置存在水平偏移,这一偏移量即视差。当焦距为 $f$、基线为 $T$、视差为 $d$ 时,深度可表示为 $Z = \dfrac{fT}{d}$,说明深度与视差成反比,因而双目系统更适合近距离目标的测距。[1]
双目方案的核心步骤是立体匹配,即找出左右图像中相互对应的像素。常用方法包括块匹配、半全局块匹配和全局匹配等。半全局块匹配由 Hirschmuller 于 2008 年提出,先计算像素级匹配代价,再用多个一维路径上的平滑约束近似二维全局能量最小化,从而在精度与速度之间取得折中,OpenCV 视觉库中的 SGBM 即为该算法的实现。[4] 由于二维全局能量最小化属于 NP 完全问题,实际算法通常把求解过程分解为若干一维方向上的代价聚合,再对各方向的聚合结果求和,选取代价最小的视差作为该像素的取值。[4]
单目深度估计则把问题建模为像素级回归。早期方法借助线性透视、消失点等手工设计的单目线索,难以应对弱纹理区域和动态场景;此后卷积神经网络被用于端到端的深度回归,网络通过编码器—解码器结构直接从原始彩色图像预测深度图。 单目线索中,物体的相对大小、线性透视、遮挡关系与在图像中的高度位置都被网络隐式利用,有研究通过可视化发现,在驾驶场景中网络主要依赖物体在图像中的垂直位置来推断远近。[5]
为绕开对标注数据的需求,自监督方法利用立体图像对或单目视频序列构造监督信号:网络预测深度后把图像重投影到邻近视角,并以重投影误差作为损失进行训练。单目视频训练还需要额外估计帧间相机位姿,该位姿只在训练阶段用于建立像素对应关系,推理时无需使用。[6]
发展历程
在深度学习介入之前,深度估计主要依靠手工特征与几何先验。双目方向以半全局匹配等经典算法为代表,通过动态规划与能量最小化计算视差,在遮挡区域和低纹理区域容易出现错误。
2014 年,Eigen 等人提出用多尺度深度网络从单幅图像预测深度图,用一个网络在整幅图像上做粗略的全局预测,再用另一个网络在局部对其进行细化,并采用尺度不变的误差度量。该方法在 NYU Depth 和 KITTI 两个数据集上取得了当时的最好结果。[7]
此后基于卷积神经网络的方法快速发展,P2Net、StructDepth、PLNet 等自监督方法开始利用平面、直线等室内结构规律提升估计质量。[8] 在双目方向,PSMNet、GC-Net 等深度立体网络通过构建代价体和三维卷积实现了亚像素级视差估计,并提高了对光照变化的稳健性。
视觉 Transformer 被引入深度估计后,自注意力机制增强了全局上下文建模能力,改善了边缘保持和远距离一致性,DPT 是其中的代表。 与此同时,AdaBins 等方法把深度范围自适应地划分为若干区间,用区间中心的线性组合得到最终深度值,MiDaS 则通过融合多个数据集并在相对深度设定下训练,获得更好的零样本性能。[5]
近年出现的生成式方法与基础模型进一步改变了技术路线。Marigold 把扩散图像生成器改造为深度估计模型,DepthFM 引入流匹配思路,这类方法能生成细节丰富的高分辨率深度图,但多步迭代推理的计算开销高于基于 Transformer 的架构;Depth Anything V2 借助大规模视觉预训练模型 DINOv2,获得较强的零样本泛化能力。[2] 深度基础模型这一概念也随之被提出,指在大规模数据上训练、具备零样本泛化能力的深度估计网络。[3]
应用
深度估计是三维计算机视觉的基础任务,为三维重建、自由视点渲染、机器人和自动驾驶、增强现实与虚拟现实等方向提供几何信息。在自动驾驶与移动机器人领域,视觉传感器被用于测距,单目相机以单一视角的图像作为输入估计目标深度,双目视觉则基于视差与特征点匹配工作,深度学习进一步提升了两者的精度。[9]
在三维重建流程中,深度图可以转换为点云,为后续的配准与建模提供数据来源。基于深度学习的多视图立体方法通过构建三维代价体并做几何正则化提升弱纹理区域的稳健性,但三维卷积的内存消耗较大,限制了重建分辨率,成为后续级联代价体等策略试图解决的问题。[2]
在显示与人机交互场景中,单目方法因部署轻量而适用于移动端增强现实与虚拟现实设备,可实现实时空间重建与遮挡感知渲染;双目方法则以较高的几何精度支撑全息投影与工业数字孪生等对精度要求较高的任务。 深度信息还被用于计算摄影,例如合成景深效果与图像拼接中的视差校正。[10]
局限
单目深度估计是一个病态问题。单幅图像缺少几何约束,同一幅图像可能与多个不同的三维场景相符,整体尺度无法唯一确定,这是误差的重要来源。[7] 相对深度模型回归出的深度带有未知的尺度与偏移,下游任务若需要度量深度,其可用性受到限制,需要额外手段恢复度量信息。
基于卷积神经网络的早期单目方法受限于感受野,难以捕捉复杂环境中的整体场景结构。[2] 单目方法通常输出视觉上平滑但相对尺度不一致的深度预测,多视图之间的几何一致性较差,直接用于稠密多视图重建时效果受限;引入稀疏几何先验的做法又往往需要增加网络模块并进行微调,对计算资源和训练数据提出更高要求,甚至可能损害模型的泛化能力。[2]
遮挡区域是另一类固有困难。既有方法大多只处理可见区域,被遮挡部分的深度无法直接观测,而在真实环境中采集遮挡区域的深度真值十分困难,相关工作不得不较多依赖合成数据集,这限制了模型在真实场景中的泛化。[11]
双目方法同样存在固有缺陷。立体匹配在遮挡与低纹理区域容易出现误匹配,深度精度在很大程度上取决于匹配结果;同时视差与深度成反比,随着目标距离增大,视差减小,检测与匹配特征点的难度上升,测量误差随之增大。[1] 此外,监督式方法通常需要大量深度真值数据,缺乏这类数据时会制约其在新环境中的表现。[2] 在视频场景中,动态物体的存在使单目视频缺少多视角观测,其几何估计尤为困难,还会带来时间上的一致性不稳定问题。[12]
参见
参考资料
- article [引用日期2026-10-14]
- isprs-archives-XLIX-B2-2026-1345-2026(PDF) [引用日期2026-10-14]
- huggingface.co 上的网页 [引用日期2026-10-14]
- BoteroGallegoJorgeIvan2017(PDF) [引用日期2026-10-14]
- UTBM_These_Fatima_Ezzahra_BENKIRANE_2024UBFCA002(PDF) [引用日期2026-10-14]
- references [引用日期2026-10-14]
- acm.org 上的网页 [引用日期2026-10-14]
- cvi2 [引用日期2026-10-14]
- Vision-based environmental perception for autonomous driving [引用日期2026-10-14]
- icml.cc 上的网页 [引用日期2026-10-14]
- Amodal Depth Anything: Amodal Depth Estimation in the Wild [引用日期2026-10-14]
- ieee.org 上的网页 [引用日期2026-10-14]