Depth Anything 3

Lin 2025 · 论文

一句话总结 — 一个单一的普通Transformer(原始DINOv2,未做架构特化),仅在一个最小化目标上训练——逐视角深度图加逐像素光线图——即可从任意数量的视角(无论是否已知位姿)恢复一致的几何结构与相机位姿,平均位姿精度超越VGGT 35.7%、几何精度超越23.6%,同时在单目深度上也超越了Depth Anything V2。

问题

单目深度、SfM、MVS和SLAM都是从图像中恢复三维结构,彼此的区别往往只是输入视角的数量——然而该领域却为每一种任务都构建了专门的模型。近期的统一模型(DUSt3R、VGGT)存在关键局限:复杂的定制架构、从零开始的多任务联合优化,以及无法充分利用大规模预训练骨干网络。DA3提出了两个最小化建模的问题,并对二者都给出了肯定的回答:(1) 是否存在一个最小的预测目标集合,还是必须对众多三维任务进行联合建模?(2) 单一的普通Transformer是否足够?第二个障碍在于数据:真实世界的深度(COLMAP、主动传感器)带有噪声且不完整,而单靠干净的合成深度又无法将相机位姿估计泛化到真实世界。

方法与架构

深度-光线表示。 对于NvN_v张输入图像,模型为每个视角预测一张深度图Di\mathbf{D}_i和一张光线图MRH×W×6\mathbf{M} \in \mathbb{R}^{H \times W \times 6}——每个像素存储一个光线起点t\mathbf{t}未归一化的方向d=RK1p\mathbf{d} = \mathbf{R}\mathbf{K}^{-1}\mathbf{p}(其模长保留了投影尺度),从而避开了直接回归R\mathbf{R}所带来的正交性约束。世界坐标点由此只是逐元素的组合:

P=t+D(u,v)d\mathbf{P} = \mathbf{t} + \mathbf{D}(u,v) \cdot \mathbf{d}

相机参数可从光线图中恢复:光心为光线起点的均值;又因为dcam=KRp\mathbf{d}_{\text{cam}} = \mathbf{K}\mathbf{R}\,\mathbf{p}定义了一个单应矩阵H=KR\mathbf{H} = \mathbf{K}\mathbf{R},通过DLT求解H=argminH=1h,wHph,w×M(h,w,3:)\mathbf{H}^{*} = \arg\min_{\lVert\mathbf{H}\rVert=1} \sum_{h,w} \lVert \mathbf{H}\mathbf{p}_{h,w} \times \mathbf{M}(h,w,3{:}) \rVert并做RQ分解即可得到K,R\mathbf{K}, \mathbf{R}。由于这一步在推理时开销较大,一个轻量级相机头会从每个视角的一个相机token中预测视场角fR2\mathbf{f} \in \mathbb{R}^2、四元数qR4\mathbf{q} \in \mathbb{R}^4和平移tR3\mathbf{t} \in \mathbb{R}^3(约占骨干网络计算量的0.1%)。消融实验表明,深度+光线的组合使Auc3相比深度+相机的组合几乎翻倍,并优于点图或冗余的多目标设置。

仅在公开学术数据集上训练:128块H100 GPU,20万步,基础分辨率504x504,每个样本2-18个视角,在12万步时从真值标签切换为教师标签。同样的方案还产出了一个单目学生模型、一个度量深度模型,以及一个前馈式3DGS变体(额外的GS-DPT头预测像素对齐的高斯参数)。

实验结果

对SLAM的意义

DA3将本路线图追踪的两条深度几何脉络合而为一。作为Depth Anything V2的继任者,它为稠密单目SLAM提供了更强的即插即用单目深度先验——其度量变体更是直接解决了尺度问题。作为DUSt3R/VGGT风格的任意视角模型,它输出的正是SLAM系统所需的前端量——逐视角一致的深度加上可在一次前向传播中融合为干净点云的相机位姿——其位姿精度更高,视角容量也大约是VGGT的两倍,这对VGGT-SLAM这类基于子地图的系统很重要(论文将此类SLAM应用列为该模型家族的使用方)。相机token条件化对SLAM而言尤其值得关注:跟踪器的位姿估计可以被注入以改善几何估计,而不必从零重新估计。需要诚实指出的局限:DA3是前馈式重建,而非SLAM——没有回环检测、重定位或全局光束法平差;输出是尺度归一化的而非度量尺度(度量变体除外);动态场景也被明确留待未来工作解决。

相关条目