Any to Full:通过尺度提示引导 Depth Anything 实现单阶段深度补全 Any to Full: Prompting Depth Anything for Depth Completion in One Stage
把深度补全重构为对 MDE 的单阶段尺度提示任务。
前置知识
深度补全 (Depth Completion)
深度补全的任务是从一张 RGB 图像 $I\in\mathbb{R}^{H\times W\times 3}$ 和对应的稀疏深度图 $D_s$(来自 LiDAR、ToF 或结构光传感器,通常只有数百到数千个有效像素)出发,恢复出稠密的度量深度图 $\hat{D}_f\in\mathbb{R}^{H\times W}$。它不同于 MDE:MDE 只能给相对深度(尺度模糊),而深度补全的目标是带真实物理量纲的稠密深度,因此更贴近机器人抓取、避障、自动驾驶等真实部署。
本文的核心场景就是深度补全;如果不理解稀疏输入和稠密度量输出的差异,就无法理解为什么需要'尺度提示'。
单目深度估计 (MDE) 与相对深度
MDE 仅凭 RGB 估计深度,受尺度歧义影响,预测的是相对深度 $\tilde{D}$——同一场景乘任意正比例、再加任意平移都能生成同样的图像。Depth Anything v2、MiDaS、Marigold 等大规模 MDE 模型的输出都是相对深度。要变成度量深度必须做最小二乘尺度对齐 $D = s\cdot\tilde{D}+t$。相对深度的特点是单点尺度比稳定,但全局尺度与偏置不固定,论文称之为'scale-inconsistent'。
Any2Full 的全部设计都围绕'如何把稀疏度量线索注入 MDE 的相对深度空间'展开,离不开对 MDE 尺度特性的理解。
提示 (Prompting) 与 FiLM 调制
提示学习源自 NLP,用一段可学习的向量引导大模型适配下游任务。在视觉中,等价的做法是 Feature-wise Linear Modulation (FiLM):对特征 $F$ 计算调制参数 $\gamma(F_p)$、$\beta(F_p)$,然后 $\gamma\odot F + \beta$,让提示 $F_p$ 在通道维度上'调音'。这种方式的优点是侵入性小,不会破坏预训练特征。
本文 SAPE 的局部富化和尺度提示融合都使用 FiLM;理解 FiLM 是看懂论文公式 (2) 和 (4) 的前提。
尺度-平移不变损失 (SSI Loss)
给定预测 $\hat{D}$ 和真值 $D$,SSI 损失先求最优 $(s,t)=\arg\min\|s\hat{D}+t-D\|^2$,再用对齐后的值计算像素级误差。它使得训练时无需纠结绝对尺度,关注的是相对几何结构。文中还把 SSI 用在稀疏锚点上得到 $\mathcal{L}_{\text{anchor}}$,确保有效测量处尺度一致。
这是 Any2Full 训练目标的基石,没有 SSI 就无法用相对深度监督方式训练模型。
ViT 与多层级特征
Depth Anything v2 使用 ViT-L 骨干,中间层 $\{5,11,17,23\}$ 抽出不同语义层次的特征,分别对应低层纹理、中层结构、高层语义。SAPE 把传播步数 $L$ 与 MDE 编码器的分组对齐,让每个尺度的提示都能在对应解码层级上完成 FiLM 调制。
论文中 SAPE 的传播块数、提示融合层数都依赖 ViT 的层级结构,跳过最低层是为了不损失稀疏尺度线索。
研究动机
深度补全面临两类相互交织的失效模式。第一类是'领域特异性':传统 RGBD 融合方法(如 CompFormer)在 NYU-Depth V2 等单一数据集上同时学习 RGB 表观分布和深度稀疏模式,结果在跨域时性能急剧下降,例如 CompFormer 在 NYU→KITTI 时 AbsREL 高达 0.316、RMSE 高达 9.682 米。第二类是'深度模式敏感性':真实传感器的深度图千差万别——LiDAR 是稀疏线扫、ToF 会有黑色吸收产生的孔洞、远距离范围被截断——这些模式在训练集中无法穷尽,导致模型对 Hole/Range 等未见模式泛化差。两阶段 MDE 集成方法(PriorDA)试图缓解上述问题,但通过显式把 MDE 的相对深度与稀疏度量做对齐来生成'粗深度图',再交给细化网络修补。然而相对深度存在非线性的尺度畸变,需要空间变化的尺度因子对齐,这种'输出层融合'反而引入结构化畸变,使 PriorDA 在 Range 模式下出现明显伪影(IBims-Range 列为 0.063 AbsREL),并且需要额外的第二阶段网络,效率受限。测试时适应方法(Marigold-DC、TestPromptDC)虽精度高但每次推理都要迭代优化,延迟达 92–112 秒,无法用于实时机器人。
本文的目标是本文的目标是提出一种既领域泛化、又模式无关、还能实时推理的深度补全框架,具体来说要做到三点:(1) 在六个公开数据集(NYU、iBims-1、DIODE、KITTI、ETH3D、VOID)和一个新采集的真实仓库数据集 Logistic-Black 上全部零样本评测都保持 top-tier;(2) 对 Hole/Range/Sparse-Random/Sparse-LiDAR/Sparse-SfM/Mixed 六种深度模式都鲁棒;(3) 推理延迟降到亚秒级,使机器人实时部署可行。
与已有工作不同的是,Any2Full 的独特切入角度是把深度补全'重定义'为对预训练 MDE 模型的尺度提示适应(scale-prompting adaptation),而不是当作一个独立的回归任务。作者指出:与其生成中间粗深度再细化,不如直接在 MDE 特征空间里注入尺度提示,让 MDE 自己产出尺度一致的相对深度,最后做一次全局最小二乘对齐即可。这条路径绕开了'输出层对齐引入畸变'这个根本缺陷,同时保留了 MDE 的全部几何先验。配套设计了一个 Scale-Aware Prompt Encoder(SAPE),分局部富化、全局传播两步把稀疏、不规则、带噪声的尺度线索加工成统一的、与深度模式无关的尺度提示。
核心方法
Any2Full 的整体思路可以拆成'冻结 MDE + 轻量提示 + 全局对齐'三步。直觉上,预训练的 Depth Anything v2 已经知道'这个房间大致长什么样',只是不知道'一米到底是多长'。稀疏深度虽然只有几百个点,但每个点都带真实尺度信息,所以只要把这些尺度'悄悄告诉' MDE 而不打扰它的几何推理,就能得到既准确又鲁棒的稠密深度。技术路线上,作者冻结 Depth Anything v2(ViT-L 为主,也可换 ViT-B/S),用一个轻量的 Scale-Aware Prompt Encoder(SAPE)将稀疏深度先嵌入到 patch 级深度特征,再经过局部富化(FiLM)和全局传播(MDE 几何引导的注意力)得到多层级尺度提示 $\{F_{\text{glo}}^1,\dots,F_{\text{glo}}^L\}$,它们分别注入 MDE 解码器对应层级,通过 $\gamma_l,\beta_l$ 的 FiLM 调制使解码特征尺度一致。最终的相对深度 $\hat{\tilde{D}}_f=\mathcal{M}(G(\tilde{D}_s))$ 经过一次最小二乘对齐即得度量深度。整个推理没有任何中间深度预测,也没有可学习的对齐模块,因此是真正的一阶段方法。
核心创新有两点。第一是'任务重构':把'从稀疏到稠密'的回归改成'提示已有 MDE 关注尺度',等价于把多阶段管线压成单阶段,从根本上避免了输出层对齐的结构化畸变。第二是 Scale-Aware Prompt Encoder 的设计哲学:稀疏深度'提供位置',MDE 几何'提供路由',两者解耦。Local Enrichment 用 $\gamma=\text{MLP}(f_{\text{dep}}\|f_{\text{mde}})$、$\beta$ 同步生成 FiLM 参数,让尺度线索锚定到 MDE 潜空间;Global Propagation 则把 Query/Key 都交给 MDE 几何特征,只让深度线索做 Value,避免被稀疏采样的空间分布带偏。这种'几何路由+稀疏 Value'是 Any2Full 模式无关的关键所在,也是和 PriorDA'输出层对齐'最本质的区别——PriorDA 让 MDE 先吐相对深度再做仿射变换对齐,Any2Full 是在特征层面注入尺度,从未让 MDE 输出与稀疏度量直接'硬碰硬'。
方法步骤详情
步骤一:归一化稀疏深度。把稀疏度量深度 $D_s$ 通过去除全局尺度和偏置得到 $\tilde{D}_s$,只保留'点间尺度比'作为尺度线索,遵循 Supp. C.1 的归一化规则。步骤二:patch 嵌入。SAPE 用 ViT 风格的编码器将 $\tilde{D}_s$ 编码为 patch 级深度特征 $F_{\text{dep}}\in\mathbb{R}^{N\times C}$,伴随一个二值 mask 标记有效位置。步骤三:Local Enrichment。对每个 patch,拼接 $f_{\text{dep},i}$ 和对应 MDE patch 特征 $f_{\text{mde},i}$,经轻量 MLP 生成 $\gamma_i$、$\beta_i$,按公式 $f_{\text{loc},i}=\gamma_i\odot f_{\text{mde},i}+\beta_i$ 输出局部尺度感知特征 $F_{\text{loc}}$。这一步使尺度线索对稀疏程度不敏感。步骤四:Global Propagation。初始 $F^0_{\text{glo}}=F_{\text{loc}}$,经过 $L$ 个 Transformer block 更新,block 中 Query 与 Key 都来自 MDE 几何特征 $F^{\phi(l)-1}_{\text{mde}}$,Value 是 $F^{l-1}_{\text{glo}}$。这种 cross-attention 让尺度信息沿 MDE 几何结构扩散,绕开稀疏采样的空间不规则性。第一个 block 还使用了 masked attention,限制尺度线索从有效深度点向几何一致区域扩散,防止早期传播丢失稀疏信息。步骤五:Scale Prompt Fusion。$L$ 个尺度的提示 $\{F^1_{\text{glo}},\dots,F^L_{\text{glo}}\}$ 分别经专属 MLP 得到 $\gamma_l,\beta_l$,对 MDE 解码器各层特征做 FiLM,得到尺度一致的相对深度 $\hat{\tilde{D}}_f$。步骤六:度量对齐。对 $\hat{\tilde{D}}_f$ 与 $D_s$ 做非参数最小二乘,求得全局 $(s,t)$,输出 $\hat{D}_f=s\cdot\hat{\tilde{D}}_f+t$。训练时冻结 MDE,仅更新 SAPE 的几千万参数,使用 SSI、$\mathcal{L}_{\text{gm}}$、$\mathcal{L}_{\text{anchor}}$、$\mathcal{L}_{\text{r-ssim}}$ 四种损失加权和,4 个 NPU、batch 16、Adam、学习率 5e-5、224K 步训练。
技术新颖性
技术新颖性体现在三方面。其一是'问题重构'层面的贡献:把深度补全从生成式回归转为提示式适应,这一思路与 Marigold-DC/TestPromptDC 等测试时适应方法完全不同——那些方法在'推理阶段'优化提示,Any2Full 则是'训练阶段'学习提示,推理时单次前向。其二是 SAPE 内部的几何引导注意力设计:Query/Key 用 MDE、Value 用稀疏深度的非对称 cross-attention,使得尺度扩散路径完全由 RGB 几何决定,模式无关性来自这里而不是来自提示本身。其三是 SAPE 与 MDE 解码器的层级对齐设计:把传播步数与 MDE 编码器分组绑定、跳过最低层纹理级特征,在精度(IBims-1 Hole 上 AbsREL 从 0.010 进一步降到 0.008)和效率之间找到平衡。相比 PriorDA 需要的 96.4M 额外参数,Any2Full 仅需 60.6M(在 DA-L 上),但快 1.4 倍。
实验结果
论文 Table 1 是核心定量结果。在六大公开数据集 + 六个深度模式构成的横向对比中,Any2Full (DA-L) 取得平均 rank 2.3,优于 TestPromptDC 3.5、PriorDA 3.6、OMNI-DC 3.4、Marigold-DC 5.7 等强基线。具体来看:iBims-1 Hole 上 Any2Full 的 AbsREL 仅 0.007、RMSE 0.110,优于 OMNI-DC 的 0.014/0.152 和 PriorDA 的 0.011/0.141;KITTI DC Range 上 AbsREL 0.011、RMSE 0.784,几乎与 TestPromptDC(0.016/0.836)打平但快两个数量级;ETH3D Sparse-SfM 上 AbsREL 0.005、RMSE 0.173,是表中最佳。表 1 整体说明 Any2Full 在'未见域 + 未见模式'双重组合下稳定保持 top-tier,而不是只在某个数据集上突出。Table 2 给出效率对比:在 iBims-1 上 DA-L 配置的 Any2Full 仅 0.49 秒/张,比 PriorDA(0.68s)快 1.4×,比 TestPromptDC(92.4s)快近 200×;最轻的 DA-S 配置只要 0.09 秒/张,仍以 0.009 AbsREL 击败所有非 Any2Full 方法。Table 3 展示稀疏度鲁棒性:在 VOID-150 极稀疏设置下 Any2Full 仅 0.045 AbsREL,而 TestPromptDC 崩溃到 0.850;KITTI 4-LiDAR 上 Any2Full 0.035 AbsREL 与 OMNI-DC 0.039 接近,但快了约 50%。Fig. 4 在 NYU/KITTI 上做深度区间切片,可见 DepthPrompt、PriorDA 在 60–100% 深度区间上 AbsREL 上升到 0.25 量级,而 Any2Full 全程保持 0.05 以下——这印证了'几何引导传播可外推稀疏尺度'的核心论断。Fig. 3 的定性图显示 PriorDA 在 Range 模式有伪影、TestPromptDC 有环状错误,Any2Full 在六种模式上几何清晰且边缘锐利。Table 4 的消融表明:DA-B 基线 iBims-1 Hole 是 0.047,仅加 Scale Prompt Fusion 就降到 0.010,再叠 Local Enrichment 降到 0.009,三个模块齐上后 0.008、Range 上从 0.068 直接降到 0.031,证明 GP 模块对模式鲁棒性贡献最大。Fig. 1 通过三类方法的对比图直观展示了一阶段的优势。最后,论文报告真实部署:Any2Full 在京东物流仓储机器人上把黑色包裹抓取成功率从 28% 提升到 91.6%,是该工作的实际价值锚点。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| iBims-1 Hole 深度补全(零样本) | AbsREL ↓ / RMSE ↓(米) | 0.007 / 0.110 | PriorDA 0.011/0.141、OMNI-DC 0.014/0.152、TestPromptDC 0.013/0.120 | 相对 PriorDA AbsREL 改善 36%、相对 OMNI-DC 改善 50% |
| KITTI DC Range 深度补全(零样本) | AbsREL ↓ / RMSE ↓(米) | 0.011 / 0.784 | OMNI-DC 0.011/0.907、PriorDA 0.020/1.623、DepthPrompt 0.040/2.428 | 相对 OMNI-DC 误差相当但 RMSE 改善 13.5%,相对 PriorDA 改善 45% |
| ETH3D Sparse-SfM 深度补全(零样本) | AbsREL ↓ / RMSE ↓(米) | 0.005 / 0.173 | PriorDA 0.007/0.190、OMNI-DC 0.010/0.231、TestPromptDC 0.008/0.118 | AbsREL 较 PriorDA 改善 28%,是表中所有方法最优 |
| VOID-150 极稀疏深度补全(零样本) | AbsREL ↓ / RMSE ↓(米) | 0.045 / 0.620 | OMNI-DC 0.057/0.650、TestPromptDC 0.850/3.218(崩溃) | 相对 OMNI-DC 改善 21%,相对 TestPromptDC 避免 95% 退化 |
| 推理效率 iBims-1(640×480) | 延迟(秒/张)↓ | 0.49 (DA-L) / 0.21 (DA-B) / 0.09 (DA-S) | PriorDA 0.68、TestPromptDC 92.40、Marigold-DC 112.47 | 相对 PriorDA 1.4× 加速,相对 TestPromptDC 约 190× 加速 |
局限与改进
作者在论文中明确承认的局限很少,但读者可观察到几点。第一,模型依赖 MDE 骨干,几何先验的质量直接决定上限;在 NYU-Depth V2 这种低分辨率 RGB(304×228)和粗真值上,DA-L 反而不如 DA-B,说明当输入域本身噪声大、几何线索不足时,更大骨干并不必然更优。第二,SAPE 的训练数据全部来自合成集(Hypersim 60K + VKITTI2 10K + TartanAir 15K = 85K 张),跨域泛化虽强,但面对与合成集差别极大的真实场景(如 Logistic-Black 的黑色高光包装)仍可能需要少量微调;Logistic-Black 上 Any2Full 的 AbsREL 0.010 不是表中最优(OMNI-DC 同为 0.009),只是视觉质量更好。第三,全局最小二乘对齐假设稀疏点均匀覆盖场景;当稀疏点仅集中在近处或远处(如 60–100% 区间实验),全局 $(s,t)$ 可能被带偏,作者用 SAPE 的几何传播缓解但未完全消除。第四,方法只在 RGB + 稀疏深度两路输入下设计,未考虑多帧、跨视角、IMU 融合等更丰富的输入。第五,模型在 NVIDIA P40 上 0.49 秒延迟对仓储抓取足够,但对更高频率的自主导航(≥30Hz)仍偏慢,需要 DA-S 配置或进一步蒸馏。
独立分析的弱点
独立分析可识别出三个主要弱点。第一个弱点是全局对齐假设过强:单次最小二乘只能给一个全局 $(s,t)$,但实际上深度传感器在不同距离的尺度因子可能不同(近处与远处 LiDAR 误差结构不同),导致 Range 模式下虽然已有传播机制,绝对误差仍受稀疏点覆盖范围限制。改进方向是学一个轻量的 per-region 或 per-distance 残差校正网络。第二个弱点是 SAPE 的几何引导传播依赖 MDE 的 RGB 几何正确,但 MDE 在低纹理、运动模糊(如 VOID 的部分样本)、强反光(如 KITTI Range 受限区域)下几何本身就不稳,提示扩散路径会带偏;改进方向是加入深度一致性正则或在 SAPE 内显式建模不确定性。第三个弱点是训练数据来源单一(仅合成集),面对真实仓库 ToF 数据时需要解决 sim-to-real gap;Logistic-Black 上视觉质量更好但 AbsREL 与 OMNI-DC 持平,提示真实场景下可能需要少量目标域微调或风格化数据增广。第四个弱点是论文未讨论不同稀疏输入的最低密度下限;VOID-150 仅 150 个点已经接近几何退化边界,再稀疏时(如 30 点)性能未经验证。
未来方向
作者在结论部分暗示了若干方向:(1) 探索更大规模 MDE 骨干(Depth Anything v2-Giant 或未来更强的 MDE)以验证'几何先验是否还有冗余空间';(2) 把 Scale-Aware Prompt 思路推广到其他稀疏到稠密的预测任务(如光流补全、法线估计、SDF 重建)。基于论文成果,自然延伸的方向还包括:(a) 与时序/多视角融合结合,把 SAPE 从单帧扩展为时序一致性框架,提升动态场景鲁棒性;(b) 把 SAPE 蒸馏到更小骨干或量化到 INT8,目标延迟压到 20ms 以内用于自动驾驶;(c) 研究如何自动适配任意 MDE 骨干,即'提示编码器与 MDE 解耦',让用户能即插即用替换 Depth Anything;(d) 与 3D Gaussian Splatting 等新表征结合,把补全出的稠密深度直接作为几何监督用于神经重建;(e) 探索在提示空间中引入语义信息(例如 SAM 分割 token),让尺度传播进一步遵循语义边界,可能在小物体和细结构上取得突破。
复现评估
复现友好度较高。代码与检查点已在 https://github.com/zhiyuandaily/Any2Full 公开。方法本身依赖的 MDE 骨干 Depth Anything v2 也开源,且 SAPE 只在冻结骨干上训练,不需要海量算力。作者报告 4 个 NPU(论文未明确型号,文中称为 NPU,但 Table 2 用的推理设备是 NVIDIA RTX P40,意味着 NPU 应等价于高端 GPU 集群)训练 batch 16、224K 步,对个人研究者而言仍偏重,但相对 Marigold-DC(1.29B 参数、迭代推理)已显著轻量。训练数据全部公开(Hypersim、VKITTI2、TartanAir),不需要私有数据。评测协议在论文中描述清楚,六个数据集的 split、稀疏采样协议都给了数字(如 NYU 用 500 点、DIODE 用 0.1%、KITTI 用 64L LiDAR)。消融实验表 4 数据完整,便于复现。潜在复现难点:(1) SAPE 的局部富化与全局传播细节在主文公式中已给,但具体 LayerNorm、激活函数、MLP 宽度在 Supp. C.2 才能确认;(2) 训练时四类损失的权重未在主文给出;(3) Logistic-Black 数据集是新采集的,可能需要向作者申请;(4) 不同 NPU/GPU 之间的数值差异可能导致结果有轻微漂移。整体复现难度中等。
论文图表
左列展示三种框架的示意图。 (a) RGB + 稀疏深度→融合模块→粗深度→细化模块→稠密深度(两阶段 RGBD 融合,CompFormer 为代表);(b) MDE 模型先输出相对深度,再与稀疏度量做对齐得到粗深度,再细化(两阶段 MDE 集成,PriorDA 为代表);(c) MDE 模型直接接收由 Scale-Aware Prompt Encoder 生成的尺度提示,输出尺度一致相对深度,最后单次对齐即得度量深度(本文一阶段)。图中并排给出 CompFormer、PriorDA、Any2Full 三种方法在室内稀疏、室外稀疏、室外范围受限三种深度模式下的稠密深度可视化,可见 PriorDA 在 Range 模式出现明显结构伪影,Any2Full 几何最清晰。
这张图是论文的动机图,三幅示意图直接对应文中声称的'两阶段范式三大缺陷',同时给出可视化证据,因此最适合放在 motivation 章节。