Marigold

Ke 2024 · 论文

一句话总结 — 通过仅微调Stable Diffusion的U-Net,使其在图像条件下对深度潜变量去噪,将Stable Diffusion改造为一个仿射不变的单目深度估计器;仅在7.4万个合成样本上训练约2.5个GPU天,并可通过对多个扩散采样结果进行集成来获得逐像素的不确定性估计。

问题

从单张图像恢复三维深度是几何上病态的问题——它需要场景理解,而不仅仅是几何。判别式深度估计器,从简单的CNN到大型Transformer,其能力仍受限于训练时所见的视觉世界,在训练中未见过的内容和布局上零样本表现挣扎。与此同时,Stable Diffusion已将互联网规模的图像集合(LAION-5B)提炼为对视觉世界的丰富先验知识。Marigold提出的问题是:如果对视觉世界的全面表征是单目深度的基石,那么能否在不遗忘该先验的情况下,从预训练的图像扩散模型导出一个广泛适用的深度估计器?

方法与架构

深度估计被表述为条件去噪扩散:在给定RGB图像xRW×H×3\mathbf{x}\in\mathbb{R}^{W\times H\times 3}的条件下,建模深度dRW×H\mathbf{d}\in\mathbb{R}^{W\times H}的条件分布D(dx)D(\mathbf{d}\,|\,\mathbf{x})。前向过程在层级t{1,,T}t\in\{1,\dots,T\}上对深度进行破坏:

dt=αˉtd0+1αˉtϵ,ϵN(0,I),  αˉt:=s=1t(1βs)\mathbf{d}_t=\sqrt{\bar{\alpha}_t}\,\mathbf{d}_0+\sqrt{1-\bar{\alpha}_t}\,\boldsymbol{\epsilon},\qquad \boldsymbol{\epsilon}\sim\mathcal{N}(0,I),\ \ \bar{\alpha}_t:=\textstyle\prod_{s=1}^{t}(1-\beta_s)

U-Net ϵθ\boldsymbol{\epsilon}_\theta以标准去噪目标L=Ed0,ϵ,tϵϵ^22\mathcal{L}=\mathbb{E}_{\mathbf{d}_0,\boldsymbol{\epsilon},t}\lVert\boldsymbol{\epsilon}-\hat{\boldsymbol{\epsilon}}\rVert_2^2进行训练。一切都在Stable Diffusion v2的潜空间中运行,保持该空间不变:

实验结果

在五个训练中从未见过的真实数据集上进行零样本评估(指标以%表示,AbsRel越低越好,δ1\delta_1越高越好):

对SLAM的意义

Marigold证明了互联网规模的生成式先验可以迁移到几何任务上,开启了基于扩散的深度估计这一家族。对SLAM而言,其采样得到的不确定性是最突出的特点:将单目深度先验融合进SLAM后端需要一个噪声模型,而Marigold通过集成方差免费为每个像素提供了这样一个模型。其迭代式推理使其无法用于实时前端,但对于离线建图、稠密先验生成,以及作为衡量更快模型(例如Depth Anything V2)细节质量的参照标准而言,它很有价值。

相关条目