Marigold

Ke 2024 · 論文

一行要約 — Stable Diffusionを再利用し、そのU-Netのみをファインチューニングして画像で条件付けた深度潜在変数をデノイズすることで、アフィン不変な単眼深度推定器に変換する。約2.5 GPU日で7万4千枚の合成サンプルのみを用いて学習し、複数の拡散サンプルをアンサンブルすることで画素ごとの不確実性も得られる。

問題

単一画像から3次元深度を復元することは幾何的に不良設定な問題であり——単なる幾何ではなくシーン理解を必要とする。控えめな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の潜在空間で実行され、その空間を無傷のまま保つ:

実験結果

学習で一度も見ていない5つの実データセットでのゼロショット(指標は%、AbsRelは低いほど、δ1\delta_1は高いほど良い):

SLAMにおける意義

Marigoldは、インターネット規模の生成的事前分布が幾何タスクに転用できることを示し、拡散ベースの深度モデル群を開いた。SLAMに特化して言えば、そのサンプリングされた不確実性が最大の特徴である: 単眼深度の事前分布をSLAMのバックエンドに融合するにはノイズモデルが必要であり、Marigoldはアンサンブルの分散から画素ごとにそれを無料で提供する。反復的な推論のためリアルタイムのフロントエンドには向かないが、オフラインマッピング、稠密な事前分布生成、そしてより高速なモデル(例えばDepth Anything V2)が比較対象とする精細な品質の基準として価値がある。

関連ノート