Marigold

Ke 2024 · 논문

한 줄 요약 — Stable Diffusion의 U-Net만을 미세조정하여 이미지에 조건화된 깊이 latent를 denoising하도록 함으로써 Stable Diffusion을 affine-invariant 단안 깊이 추정기로 재활용하며, 순수하게 7만 4천 개의 합성 샘플로 약 2.5 GPU-day 만에 학습되고, 여러 diffusion 샘플을 앙상블함으로써 픽셀별 불확실성도 얻을 수 있다.

문제

단일 이미지로부터 3D 깊이를 복원하는 것은 기하학적으로 ill-posed하다 — 단순한 기하가 아니라 장면 이해를 필요로 한다. 소형 CNN부터 대형 Transformer에 이르는 판별적(discriminative) 깊이 추정기는 학습 중에 본 시각적 세계에 의해 제약되며, 낯선 콘텐츠와 배치(layout)에서는 zero-shot 성능이 어렵다. 한편 Stable Diffusion은 인터넷 규모의 이미지 모음(LAION-5B)을 시각적 세계에 대한 풍부한 사전(prior)으로 증류해 두었다. Marigold는 다음을 묻는다: 시각적 세계에 대한 포괄적인 표현이 단안 깊이의 초석이라면, 그 사전을 잊지 않으면서 사전학습된 이미지 diffusion 모델로부터 널리 적용 가능한 깊이 추정기를 유도할 수 있을까?

방법 및 아키텍처

깊이 추정은 조건부 denoising diffusion으로 formulate된다: 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})를 모델링한다. forward process는 단계 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은 표준 denoising 목적함수 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의 latent space 안에서 진행되며, 그 공간을 그대로 유지한다:

실험 결과

학습 중 본 적 없는 다섯 개의 실제 데이터셋에서 zero-shot 평가(지표는 %, AbsRel은 낮을수록/δ1\delta_1은 높을수록 좋음):

SLAM에서의 의미

Marigold는 인터넷 규모의 생성적 사전이 기하학적 과제로 전이될 수 있음을 보여, diffusion 기반 깊이 계열을 열었다. SLAM에 특히 중요한 것은 샘플링된 불확실성이다: 단안 깊이 사전을 SLAM 백엔드로 융합하려면 noise 모델이 필요한데, Marigold는 앙상블 분산으로부터 픽셀별 noise 모델을 공짜로 제공한다. 반복적인 추론 때문에 실시간 프론트엔드에는 적합하지 않지만, 오프라인 매핑, 밀집 사전 생성, 그리고 (Depth Anything V2 같은) 더 빠른 모델들이 비교 대상으로 삼는 세밀한 디테일 품질의 기준으로서 가치가 있다.

관련 문서