← 返回 2026-01-12

AnyDepth:让深度估计变得简单 AnyDepth: Depth Estimation Made Easy

Zeyu Ren, Zeyu Zhang, Wukai Li, Qingxiang Liu, Hao Tang 📅 2026-01-06 👍 11 2026-07-13 08:35
单目深度估计 数据质量筛选 模型轻量化 计算机视觉 零样本学习

轻量级单目深度估计框架,参数减少85%性能不降

前置知识

单目深度估计(Monocular Depth Estimation)

从单张2D图像推断场景中每个像素到相机的距离信息,恢复3D结构。这是一个病态问题,因为同一张2D图像可以对应无限多种3D场景。深度估计结果通常以深度图(depth map)表示,每个像素值代表该位置的深度距离。零样本(zero-shot)深度估计指模型在未见过的场景上也能泛化工作,这要求模型学习到通用的深度理解能力,而不是过拟合到特定数据集。

这是本文要解决的核心任务,理解单目深度估计的基本概念和挑战是理解本文动机和方法的前提。

DPT(Dense Prediction Transformer)

DPT是由Ranftl等人在2021年提出的密集预测解码器架构,目前是主流深度估计模型(如MiDaS、Depth Anything系列)的标准解码器。DPT采用多分支结构,对ViT编码器提取的每个中间层特征分别进行reassemble(重新组装),将token映射到不同尺度的特征图,然后进行级联跨尺度融合。这种设计虽然能捕获多尺度信息,但每个Transformer层都需要独立的reassemble模块,导致参数量大、计算开销高。以ViT-B为骨干时,DPT解码器有76.05M参数。

DPT是本文要替代的核心组件,理解DPT的架构设计和局限性是理解SDT创新点的关键。

DINOv3视觉编码器

DINOv3是Meta在2025年发布的自监督视觉Transformer预训练模型,是DINOv2的升级版本。它通过自蒸馏学习方式在大规模无标注图像上预训练,能够提取高质量的密集特征表示。DINOv3提供了多种规模的模型(如S/16、B/16、L/16),其中L/16版本使用ViT-7B骨干。在本文中,DINOv3作为冻结的编码器使用,从4个中间层提取多尺度token作为解码器的输入。这种设计使得编码器的高质量特征表示与解码器的设计解耦。

DINOv3是本文方法的核心编码器组件,其高质量特征是SDT能用轻量解码器取得好结果的基础。

仿射不变损失(Affine-Invariant Loss)

由于不同深度数据集的深度值范围和表示方式差异很大(有的用绝对深度,有的用视差),直接混合训练会产生尺度歧义。仿射不变损失通过预测的深度值和GT之间的最佳线性变换(缩放和平移)来计算损失,从而消除不同数据集间的尺度差异。具体地,对预测深度d和GT深度d*,先求最优缩放因子s和平移t,使得预测值最接近GT,然后计算损失。这使得模型可以在多个异构数据集上联合训练。

理解这一损失函数是理解本文如何在5个不同合成数据集上训练模型的基础。

数据质量筛选(Data-Centric Learning)

传统深度学习研究范式以模型为中心,通过改进网络架构来提升性能。数据质量筛选则转向以数据为中心的视角,认为训练数据的质量同样重要甚至更为关键。这一范式认为,大规模数据集中不可避免地包含低质量样本(如深度分布不均匀、梯度噪声严重的样本),这些样本会干扰模型学习。通过设计质量评估指标,筛选掉低质量样本,可以在减少数据量的同时提升训练质量,达到更好的性能。本文提出了深度分布得分和梯度连续性得分两个指标来实现这一目标。

这是本文的核心创新方向之一,理解数据质量筛选的思想是理解本文与Depth Anything等纯数据驱动方法的本质区别。

可学习上采样器DySample

DySample是一种可学习的动态上采样方法,区别于传统的双线性插值上采样。它根据学习到的低分辨率特征自适应地构建偏移采样网格,调整采样位置,然后使用可微分的网格采样(grid sampling)重采样到高分辨率特征。这种方法能够更好地保持高频细节和边缘锐度,避免双线性插值导致的模糊问题。在本文中,DySample被用作SDT解码器的上采样模块,通过渐进式2倍上采样(共4次)将H/16xW/16的特征图逐步恢复到原始分辨率HxW。

DySample是SDT解码器的关键组件之一,理解其工作原理有助于理解SDT如何在减少参数的同时保持细节恢复能力。

研究动机

当前单目深度估计方法面临架构复杂和数据质量两个维度的挑战。在架构层面,主流解码器DPT采用多分支结构,每个Transformer层都需要独立的reassemble模块将token映射到不同尺度的特征图,再进行级联跨尺度融合。这种设计引入了不必要的复杂性:以ViT-B为骨干时,DPT解码器需要76.05M参数,ViT-L时更是高达99.58M参数。在计算开销方面,DPT在1024x1024分辨率下需要7106.22 GFLOPs。此外,DPT使用固定的双线性插值进行上采样,缺乏对局部几何结构的适应性,容易导致边缘模糊和细粒度空间细节的丢失。在数据层面,以Depth Anything系列为代表的纯数据驱动方法依赖海量数据集(如Depth Anything V2使用6260万张图像),但大规模数据收集成本高昂,且不可避免地引入噪声样本。这些噪声样本(如深度分布极度不均匀、梯度突变严重的样本)会降低训练质量。简单地扩大模型规模和数据数量,收益有限且可复现性差。

本文的目标是本文的目标是设计一个轻量高效的训练框架,在保持竞争性精度的同时大幅降低模型复杂度和数据需求。具体而言,作者希望:(1)设计一个参数量仅为DPT 15-20%的轻量解码器,在多个零样本基准上达到与DPT相当甚至更好的精度;(2)提出基于数据质量的筛选策略,将训练数据从584K筛选到369K(减少37%),同时提升整体训练质量;(3)在边缘设备(如Jetson Orin Nano)上实现更快的推理速度和更低的内存占用,使深度估计技术更易于实际部署和学术复现。

与已有工作不同的是,本文的独特切入角度在于同时从架构设计和数据质量两个维度进行优化,而非单纯追求模型规模或数据数量。与DPT的先重组后融合(reassemble-fusion)策略不同,本文提出先融合后重组(fusion-reassemble)策略,直接在token空间进行线性投影和加权融合,然后再进行空间重组和上采样,避免了逐层token重组和跨尺度特征对齐的高成本。与Depth Anything系列的大数据驱动范式不同,本文受数据质量学习(data-centric learning)启发,提出两个高效的质量评估指标来筛选低质量样本,证明了少而精的数据策略可以优于多而杂的策略。这种轻量架构加数据质量的双重优化思路,在深度估计领域是新颖的,为平衡模型设计和数据质量提供了一个实用的参考框架。

核心方法

AnyDepth的整体思路可以概括为:用强大的预训练编码器提取高质量特征,用极简的解码器高效恢复深度,并通过数据质量筛选确保训练数据的纯净性。直觉上,如果编码器(DINOv3)已经能够提取足够好的视觉特征表示,那么解码器不需要过于复杂的设计就能完成深度恢复任务。技术路线上,给定输入图像I,首先通过冻结的DINOv3编码器从4个中间Transformer层提取多尺度token表示T1到T4。然后,SDT解码器对这些token进行单路径融合:先通过线性层投影到256维空间,再用可学习权重进行加权融合,最后通过空间细节增强器(SDE)和可学习上采样器(DySample)逐步恢复到原始分辨率。整个过程只需要5到13M解码器参数(ViT-S时5.51M,ViT-B时9.45M,ViT-L时13.38M),相比DPT的50.83到99.58M参数量大幅减少。

AnyDepth的核心创新是先融合后重组(fusion-reassemble)的解码策略,这与DPT的先重组后融合(reassemble-fusion)策略形成本质区别。在DPT中,每个Transformer层的token首先被独立地重组(reassemble)到不同尺度的特征图,然后这些多尺度特征图再进行级联融合,这需要多个分支和重复的跨尺度对齐操作。而在SDT中,token先在统一的256维空间中通过可学习权重进行加权融合,然后再进行空间重组和单路径上采样。这种设计的关键优势在于:(1)避免了逐层token重组的计算开销;(2)避免了跨尺度特征对齐的复杂性;(3)单路径上采样更加高效稳定。此外,本文提出的基于深度分布和梯度连续性的数据质量筛选策略也是一个核心创新,首次在深度估计领域系统地引入数据质量评估。

方法步骤详情

AnyDepth的方法流程包含以下具体步骤:(1)特征提取:将输入图像I(分辨率为768x768)送入冻结的DINOv3编码器,从4个中间层(ViT-S/B使用第2、5、8、11层,ViT-L使用第4、11、17、23层)提取token表示。(2)线性投影:对每个层的token通过线性层加GELU激活函数投影到256维空间,大幅降低后续解码的计算开销。对于class token,保持与DPT相同的处理方式,与空间token拼接后通过可学习投影融合。(3)可学习加权融合:为每层token分配一个可学习标量权重,通过softmax归一化形成统一概率分布,然后加权求和得到融合token。(4)空间重组与SDE:将融合后的token序列reshape为空间特征图(H/16 x W/16 x 256),然后通过空间细节增强器(SDE)进行局部细化,使用3x3深度可分离卷积建模局部空间关系。(5)渐进式上采样:使用DySample可学习上采样器,通过4次2倍上采样(分为两个阶段,每个阶段两次上采样后接局部细化)将特征图从H/16 x W/16恢复到原始分辨率H x W,避免一次性16倍上采样导致的误差放大。(6)深度预测头:最终通过预测头输出视差图d'=1/d,输入图像和GT都归一化到[0,1]。(7)数据质量筛选:在训练前,首先筛选掉有效深度值占比低于20%的样本,然后基于深度分布得分和梯度连续性得分排序,过滤掉每个指标得分最低20%的样本,最终从584K样本中保留369K用于训练。

技术新颖性

AnyDepth的技术新颖性体现在多个方面。首先,先融合后重组的解码策略在深度估计解码器设计中是新颖的,与DPT等主流方法的先重组后融合形成鲜明对比。这种设计哲学的转变——先在token空间完成信息整合,再进行空间重建——有效减少了参数量(减少85-89%)和计算开销(FLOPs减少37%)。其次,深度分布得分的设计包含三个子指标:卡方偏差衡量深度分布的均匀性,最大集中指数惩罚单个深度区间的过度集中,范围利用率惩罚深度值只占据狭窄范围的样本。梯度连续性得分利用平滑区域梯度幅值的变异系数来量化噪声程度,同时通过定义边缘像素(梯度幅值前10%)来区分合理的边缘梯度突变和异常噪声。这种将深度分布和梯度连续性结合的双维度质量评估框架,在深度估计领域是首创。此外,渐进式上采样策略(4次2倍而非一次性16倍)的设计也具有创新性,通过保持每次采样偏移量较小并插入局部细化,提升了细节恢复能力。

AnyDepth框架概述
Figure 1: AnyDepth框架概述
AnyDepth架构详细图
Figure 4: AnyDepth架构详细图

实验结果

本文在5个零样本基准(NYUv2、KITTI、ETH3D、ScanNet、DIODE)上进行了全面评估,核心发现如下:(1)参数效率方面,AnyDepth的解码器参数仅为DPT的15-20%。具体地,ViT-S时SDT有5.51M参数(DPT为50.83M),ViT-B时9.45M(DPT为76.05M),ViT-L时13.38M(DPT为99.58M)。(2)计算效率方面,在1024x1024分辨率下,SDT的FLOPs为3746.79G,而DPT为7106.22G,减少约47%。推理延迟方面,SDT在1024x1024分辨率下为93.09ms,DPT为99.79ms。(3)精度方面,AnyDepth-B(95.5M总参数)在NYUv2上达到AbsRel 7.2(DPT-B为7.5),KITTI上9.7(DPT-B为10.8),ETH3D上8.0(DPT-B为10.0),ScanNet上6.8(DPT-B为7.1),DIODE上23.6(DPT-B为24.5)。在所有5个基准上,AnyDepth均优于或持平DPT基线。(4)数据质量筛选方面,从584K样本中筛选出369K高质量样本(过滤215K低质量样本),消融实验证明筛选后在所有基准上均有提升。(5)边缘设备部署方面,在Jetson Orin Nano上,SDT在256x256分辨率下推理延迟213.35ms(DPT为305.65ms),峰值内存395.2MB(DPT为589.5MB),分别减少30%和33%。(6)与大规模方法对比,虽然AnyDepth尚未超越使用海量数据(6260万张图像)训练的Depth Anything系列,但其设计目标是轻量高效,用仅369K训练数据就达到了竞争性性能。

训练数据集统计:好样本与坏样本数量
Table 1: 训练数据集统计:好样本与坏样本数量
零样本仿射不变深度估计的定量比较
Table 2: 零样本仿射不变深度估计的定量比较
不同编码器和解码器组合的比较
Table 3: 不同编码器和解码器组合的比较
ViT-L编码器下SDT和DPT的多分辨率效率比较
Table 4: ViT-L编码器下SDT和DPT的多分辨率效率比较
不同ViT骨干下的解码器参数比较
Table 5: 不同ViT骨干下的解码器参数比较
Jetson Orin Nano上SDT和DPT的推理延迟比较
Table 6: Jetson Orin Nano上SDT和DPT的推理延迟比较
Jetson Orin Nano上256x256分辨率的峰值GPU内存比较
Table 7: Jetson Orin Nano上256x256分辨率的峰值GPU内存比较
AnyDepth-B的消融实验
Table 8: AnyDepth-B的消融实验
AnyDepth与DPT在不同输入分辨率下的推理时间对比
Figure 3: AnyDepth与DPT在不同输入分辨率下的推理时间对比
AnyDepth与DPT-B的定性比较结果
Figure 6: AnyDepth与DPT-B的定性比较结果
真实世界评估的硬件平台和部署流程
Figure 7: 真实世界评估的硬件平台和部署流程
不同解码器的定性比较结果
Figure 10: 不同解码器的定性比较结果
查看结构化数据
任务指标本文基线提升
零样本仿射不变深度估计(室内场景) AbsRel↓ AnyDepth-B: 7.2 DPT-B: 7.5 AbsRel降低4%,使用更少参数(95.5M vs 162.1M)
零样本仿射不变深度估计(室外场景KITTI) AbsRel↓ AnyDepth-B: 9.7 DPT-B: 10.8 AbsRel降低10.2%,显著优于DPT
零样本仿射不变深度估计(ETH3D) AbsRel↓ AnyDepth-B: 8.0 DPT-B: 10.0 AbsRel降低20%,提升最为显著
零样本仿射不变深度估计(ScanNet) AbsRel↓ AnyDepth-B: 6.8 DPT-B: 7.1 AbsRel降低4.2%
零样本仿射不变深度估计(DIODE) AbsRel↓ AnyDepth-B: 23.6 DPT-B: 24.5 AbsRel降低3.7%
解码器参数量(ViT-B骨干) 参数量M↓ SDT: 9.45M DPT: 76.05M 参数量减少87.6%
边缘设备推理延迟(Jetson Orin Nano 256x256) 延迟ms↓ SDT: 213.35ms DPT: 305.65ms 延迟降低30.2%,FPS从3.3提升到4.7

局限与改进

本文存在以下局限性:(1)评估范围有限:作者自己承认,当前流水线尚未在大规模全监督或微调设置下进行评估,仅在369K合成数据上训练后进行零样本评估,未探索在更大规模真实数据上的表现。(2)数据筛选策略可进一步优化:当前的深度分布得分和梯度连续性得分是基于启发式设计的,可能无法完全捕捉所有低质量样本的特征,尤其是渲染缺陷、光照异常等问题。(3)与SOTA的差距:虽然AnyDepth在效率上有显著优势,但在绝对精度上尚未超越使用海量数据训练的Depth Anything系列(DAv2使用6260万图像)和DINOv3-7B,后者在NYUv2上达到AbsRel 4.3。(4)仅评估了深度估计任务:未在法线估计、语义分割等其他密集预测任务上验证SDT解码器的通用性。(5)合成数据到真实数据的域差距:训练数据全部来自5个合成数据集(Hypersim、Virtual KITTI、BlendedMVS、IRS、TartanAir),虽然在真实数据集上进行了零样本评估,但合成数据与真实数据之间的域差距可能影响模型在更广泛真实场景中的表现。(6)消融实验不够全面:Table 8的消融实验仅在ViT-B上进行,未验证在ViT-S和ViT-L上各组件的贡献是否一致。

独立分析的弱点

从独立分析的角度,AnyDepth存在以下可改进的弱点:(1)数据筛选指标的设计偏于简单:当前的深度分布得分基于卡方统计和bin计数,对深度分布的建模较为粗糙(默认K=20个bin),可能无法准确捕捉复杂的深度分布模式。改进方向可以考虑使用核密度估计(KDE)或多尺度直方图来更精细地刻画深度分布。(2)梯度连续性得分对边缘定义不够精确:当前方法简单地将梯度幅值前10%的像素定义为边缘像素,这种固定阈值策略可能在不同场景下不够鲁棒。可以考虑引入自适应阈值或多尺度边缘检测来改进。(3)渐进式上采样的设计缺乏理论支撑:作者选择4次2倍上采样而非其他组合(如2次4倍上采样),但未提供充分的消融实验来证明这一选择的最优性。(4)SDE模块的设计相对简单:当前SDE仅使用单层3x3深度可分离卷积,对于复杂空间结构的建模能力可能有限。可以考虑引入多尺度卷积或注意力机制来增强。(5)缺乏与其他轻量解码器的对比:论文主要与DPT对比,但未与FPN、Uformer等其他轻量解码架构进行系统对比,难以全面评估SDT的优势。

未来方向

基于本文的成果,可以延伸以下研究方向:(1)扩展到度量深度估计和法线估计:作者在结论中提到可以将轻量框架扩展到更多任务,如metric depth和normal estimation,这将验证SDT解码器的通用性。(2)真实数据的筛选策略优化:当前的数据筛选方法在合成数据上验证,可以探索针对真实数据(如互联网爬取的图像)的质量评估方法,可能需要考虑光照、模糊、遮挡等因素。(3)与扩散模型的结合:当前深度估计领域的前沿方法(如Marigold、Lotus)利用扩散模型的先验知识,可以探索将SDT解码器与扩散模型结合,在保持效率的同时利用扩散先验。(4)多任务联合学习:SDT的轻量特性使其适合作为多任务学习框架中的深度分支,可以探索与语义分割、光流估计等任务的联合训练。(5)数据质量筛选的自动化:当前的筛选阈值(如有效深度20%、过滤最低20%样本)是手动设定的,可以研究自动化的阈值选择策略或基于课程学习的渐进式筛选方法。(6)在机器人和具身AI中的应用:AnyDepth在Jetson Orin Nano上的优异表现(延迟213ms、内存395MB)表明其适合机器人部署,可以进一步探索在SLAM、导航、抓取等具身AI任务中的应用。

复现评估

本文的可复现性较好。作者在论文中明确提供了代码仓库地址(https://github.com/AIGeeksGroup/AnyDepth)和项目网站(https://aigeeksgroup.github.io/AnyDepth)。训练数据方面,作者使用了5个公开可用的合成数据集(Hypersim、Virtual KITTI、BlendedMVS、IRS、TartanAir),数据获取相对容易。实验设置方面,作者详细描述了训练超参数:AdamW优化器、基础学习率1e-3、PolyLR调度器(power=0.9)、前2个epoch线性预热、总共训练5个epoch、输入分辨率768x768。算力需求方面,训练使用5个合成数据集共369K样本,在ViT-L骨干下需要较大GPU内存,但相比Depth Anything的6260万样本训练,算力需求大幅降低。推理方面,在Jetson Orin Nano(4GB)上的评估结果表明模型可以在消费级边缘设备上运行。然而,需要注意DINOv3编码器的预训练权重可能需要从Meta官方获取,且完整复现需要了解DINOv3的具体版本和配置。