SIGGRAPH Asia 2026. [Paper] [Page] [Github]
Jiangshan Wang, Zeqiang Lai, Jiarui Chen, Jiayi Guo, Hang Guo, Xiu Li, Xiangyu Yue, Chunchao Guo
EPFL | HUAWEI Bayer Lab | University of Bologna
7 Sep 2026

Introduction

Monocular depth estimation의 핵심적인 난제는 본질적인 모호성에 있다. 즉, 하나의 2D 이미지는 무수히 많은 3D 장면 구성과 부합할 수 있으며, 이러한 모호성을 해결하려면 단순한 외관 단서를 넘어 장면 구조, 재질 특성, 조명 등에 대한 추론이 필요하다.

이미지 diffusion model을 깊이 추정용으로 전환하는 방법들은 깊이 정보가 주석으로 달린 학습 데이터가 매우 제한적으로 사용되었음에도 불구하고 인상적인 결과를 보여주었다. 그럼에도 불구하고 여전히 몇 가지 해결되지 않은 한계가 남아 있다. 가장 두드러진 문제는 예측된 depth map에서 미세한 디테일이 소실되거나 경계가 지나치게 매끄럽게 처리(oversmoothing)되어, 포인트 클라우드로 projection했을 때 flying pixels 현상이 발생한다.

본 논문에서는 오픈 소스 이미지 편집용 DiT인 Qwen-Image-Edit을 SOTA monocular depth estimator로 재구성하는 모델이자 비용 효율적인 fine-tuning 프로토콜인 Marigold V2를 제안하였다. Marigold V2는 Marigold V1을 이미지 편집 패러다임으로 확장하는 동시에, 미세한 디테일 손실 및 oversmoothing 문제를 해결하기 위한 원칙에 입각한 솔루션을 제시하였다.

Method

Marigold V2는 Qwen-Image-Edit-2509 모델을 monocular depth estimation에 맞게 재구성하고, RGB latent를 정규화된 depth latent로 직접 변환하도록 학습시킨다. Latent space supervision에 주로 의존하는 기존의 diffusion 기반 깊이 추정 모델과 달리, 본 논문에서는 pixel-space loss와 semantic feature loss를 추가로 도입하여 로컬 재구성 품질을 향상시키고 미세한 디테일을 보존하였다.


학습 과정은 2단계로 진행된다. Stage 1에서는 사전 학습된 이미지 편집용 DiT를 monocular depth estimation에 적응시키는데, 이때 latent rectified-flow supervision과 함께 pixel-space loss와 semantic feature loss를 활용한다. 이 단계를 통해 정확한 글로벌 구조와 향상된 로컬 재구성 품질을 갖춘, 강력한 affine-invariant depth map 예측 모델을 구축한다.

Stage 2에서는 제안된 SinkLoss를 사용하여 해당 모델을 추가로 fine-tuning한다. 이 2단계 과정은 특히 투명하거나 얇거나 또는 식별하기 어려운 구조물 주변에서 미세한 디테일을 정교화하고, 모호하거나 노이즈가 포함된 GT 픽셀이 미치는 영향을 완화하도록 설계되었다.

1. Depth Normalization

RGB 이미지 $I$와 그에 대응하는 GT metric depth $D$가 주어졌을 때, 먼저 $D$를 affine-invariant log-depth $d$로 변환한다.

\[\begin{equation} d = 2 \left( \frac{\log (D + \epsilon) - d_2}{d_{98} - d_2} - \frac{1}{2} \right) \end{equation}\]

($d_i$는 유효 픽셀을 대상으로 계산된 $\log(D + \epsilon)$의 $i$-th percentile)

이러한 표현 방식은 상대적인 장면 geometry를 보존하면서도, monocular depth estimation에서 발생하는 글로벌 스케일에 대한 모호성을 제거한다. 타겟을 RGB 이미지 편집 backbone과 호환되도록 만들기 위해, 정규화된 depth map의 값을 세 개의 색상 채널 모두에 동일하게 복제하여 이를 grayscale RGB 이미지로 인코딩한다.

2. Diffusion Transformer Adaptation

저자들은 Qwen-Image-Edit-2509을 기반으로 모델을 초기화하고, parameter-efficient fine-tuning을 통해 monocular depth estimation에 적합하도록 모델을 조정하였다. 학습 시 메모리 효율성을 높이기 위해 사전 학습된 DiT 가중치에 4-bit quantization을 적용하고, rank 128의 QLoRA 어댑터를 fine-tuning한다. 또한 Lotus-2의 rectified-flow 공식을 따라, 한 번의 forward pass만으로 RGB latent를 grayscale depth latent로 직접 변환하도록 모델을 학습시킨다.

사전 학습된 VAE 인코더와 디코더를 \(\mathcal{E}_\textrm{vae}\)와 \(\mathcal{D}_\textrm{vae}\)라 하자. RGB 이미지 $I$와 정규화된 GT depth $d$를 다음과 같이 인코딩한다.

\[\begin{equation} z_I = \mathcal{E}_\textrm{vae}(I), \quad z_d = \mathcal{E}_\textrm{vae} (d) \end{equation}\]

타겟 velocity를 $v = z_I - z_d$로 정의하고, $z_I$와 고정된 timestep $t = 0.5$를 조건으로 $v$를 예측하도록 DiT $f_\theta$를 학습시킨다.

\[\begin{equation} \mathcal{L}_\textrm{latent} = \| f_\theta (z_I, t) - v \|_2^2 \end{equation}\]

$t$가 고정되어 있으므로, rectified-flow parameterization은 적분할 궤적이 없는 직접적인 latent 예측으로 축소된다. Inference 시, 한 번의 forward pass에서 depth latent를 얻고, 이를 \(\mathcal{D}_\textrm{vae}\)로 디코딩한다.

\[\begin{equation} \hat{z}_d = z_I - f_\theta (z_I, t), \quad \hat{d} = \mathcal{D}_\textrm{vae} (\hat{z}_d) \end{equation}\]

주로 latent space에서 학습을 수행하던 기존의 diffusion 기반 monocular depth estimation 방식들과 달리, 저자들은 이미지 공간에서의 직접적인 reconstruction loss를 추가로 적용하였다. 구체적으로, L1 reconstruction loss와 L1 spatial gradient loss를 사용한다.

\[\begin{aligned} \mathcal{L}_\textrm{pix} &= \| \hat{d} - d \|_1 \\ \mathcal{L}_\textrm{grad} &= \| \nabla_x \hat{d} - \nabla_x d \|_1 + \nabla_y \hat{d} - \nabla_y d \|_1 \end{aligned}\]

3. Semantic Feature Regularization with iREPA

저자들은 재구성 품질을 향상시키기 위해, iREPA feature alignment loss의 변형을 도입하였다. 픽셀 단위의 loss는 정교한 로컬 복원을 유도하지만, 더 상위 수준의 시각적 구조에 대한 일관성을 명시적으로 보장하지는 않는다. 그 결과, 나뭇잎, 덤불, 반복적인 패턴 등 복잡한 영역에서는 예측 결과가 미세한 디테일을 잃어버릴 수 있다. 따라서 저자들은 사전 학습된 visual feature를 활용하여 DiT의 내부 표현을 정규화함으로써, 모델이 예측 과정에서 semantic하게 중요한 구조 또한 보존하도록 유도하였다.

(입력 이미지, baseline 예측, LPIPS loss 사용, iREPA-depth loss 사용)


RGB 이미지와 GT depth map에서 각각 추출한 DINOv3 feature를 활용한 iREPA 정규화 방식을 비교하였다. 두 방식 모두 성능 향상을 보였으나, depth map에서 추출한 feature를 사용한 경우 AbsRel과 \(\delta_1\)에서 더 우수한 성능을 나타냈다. 이는 깊이 도메인에서의 feature 추출이 RGB 기반 feature보다 geometry 복원에 있어 더 유용한 정보를 제공함을 시사한다.

따라서 Stage 1 DiT 학습 loss는 다음과 같다.

\[\begin{equation} \mathcal{L}_\textrm{DiT} = \lambda_\textrm{latent} \mathcal{L}_\textrm{latent} + \lambda_\textrm{pix} \mathcal{L}_\textrm{pix} + \lambda_\textrm{grad} \mathcal{L}_\textrm{grad} + \lambda_\textrm{iREPA} \mathcal{L}_\textrm{iREPA} \end{equation}\]

4. Stage-2 Refinement with SinkLoss

Monocular depth estimation에서 발생하는 글로벌 스케일의 모호성 외에도, 투명하거나 매우 얇은 물체는 추가적인 모호성을 야기한다. HyperSim과 같은 고품질 합성 데이터셋에서도 얇은 GT depth는 종종 노이즈가 포함되어 있다. 이는 렌더링 파이프라인이 몬테카를로 샘플링을 사용하는 V-Ray를 활용하므로, 투명 픽셀이나 가장자리 픽셀에 깊이 값이 할당되는 것은 본질적으로 무작위적이기 때문이다.


GT의 로컬 모호성을 해결하기 위해, Stage 2에서는 새로운 SinkLoss를 사용하여 모델을 지속적으로 fine-tuning한다. 각 픽셀을 해당 GT 픽셀과 직접 비교하여 학습시키는 대신, 이미지를 겹치지 않는 $K \times K$ block으로 나누고, 각 block 내에서 $K^K$개의 예측 깊이와 $K^2$개의 GT 깊이 사이에 Sinkhorn–Knopp 매칭을 사용하여 부드러운 일대일 대응을 구현한다. 이 방법은 엄격한 공간 정렬 없이도 각 block 내에서 GT와 동일한 깊이 값 집합을 생성하기만 하면 된다.

서로 겹치지 않는 각 $K \times K$ block 내에서, 예측된 depth 값 $K^2$개 \(\{\hat{d}_i\}\)와 GT depth 값 $K^2$개 \(\{d_j\}\) 간의 cost matrix $\textbf{C} \in \mathbb{R}^{K^2 \times K^2}$를 구성한다.

\[\begin{equation} C_{ij} = \vert \hat{d}_i - d_j \vert \end{equation}\]

유효하지 않은 픽셀(마스크 $m_i=0$)은 해당 픽셀과 관련된 모든 쌍의 비용을 대체함으로써 배제된다. 즉, $m_i m_j = 1$이면 \(\tilde{C}_{ij} = C_{ij}\)로, 그렇지 않으면 \(\tilde{C}_{ij} = B \gg \max_{ij} C_{ij}\)로 설정하여 유효하지 않은 픽셀의 행과 열에 페널티를 부여한다. Block 내에서 페널티가 부여된 행과 열의 개수는 동일하므로, $B/\tau$ 값이 클 경우 optimal plan은 이들을 서로 매칭하게 된다. 결과적으로 유효하지 않은 GT 픽셀은 어떠한 예측값도 학습시키지 않게 되며, 유효한 픽셀들은 uniform marginal을 갖게 된다.

그 후, entropy-regularized optimal transport를 통해 soft assignment 행렬 $M$을 계산한다.

\[\begin{equation} \textbf{M} = \underset{\textbf{M} \in \mathcal{U}}{\arg \min} \langle \textbf{M}, \tilde{\textbf{C}} \rangle - \tau H (\textbf{M}) \\ \textrm{where} \quad \mathcal{U} = \{ \textbf{M} \in \mathbb{R}_{\ge 0}^{K^2 \times K^2} : \textbf{M} \textbf{1} = \frac{\textbf{1}}{K^2}, \textbf{M}^\top \textbf{1} = \textbf{1} / K^2 \}, \quad H (\textbf{M}) = - \sum_{ij} M_{ij} \log M_{ij} \end{equation}\]

$\textbf{M}$은 \(\textbf{G} = \exp(− \tilde{\textbf{C}} / \tau)\)에 대한 Sinkhorn–Knopp iteration을 5회 사용하여 얻어지며, 수치적 안정성을 위해 로그 영역에서 실행한다. SinkLoss는 유효한 쌍에 대한 transport cost이며, 유효한 GT가 있는 block들에 대해 평균을 구한다.

\[\begin{equation} \mathcal{L}_\textrm{SinkLoss} = \frac{\sum_{ij} m_i m_j M_{ij} C_{ij}}{\sum_{ij} m_i m_j M_{ij}} \end{equation}\]

($K=5$, $\tau=0.1$, $B=10^6$)

Stage 2에서 이 loss를 적용하면 depth map의 미세한 디테일은 유지하면서도 flying-pixel 아티팩트는 줄어드는 효과가 있다.

Experiments

1. Zero-Shot Affine Depth Estimation

다음은 다양한 데이터셋에서 zero-shot affine-invariant monocular depth를 비교한 결과이다.

2. Edge-Aware Evaluation

다음은 미세한 디테일에 초점을 둔 SOTA 방법들과 HyperSim test set에서 비교한 결과이다. \(\textrm{SEE}_k\)는 각 픽셀에 대해 해당 픽셀을 중심으로 하는 로컬 $k \times k$ 패치 내에서 예측된 disparity 값과 GT disparity 값 사이의 최소 절대 오차로 정의된다.

3. Analysis and Ablation Studies

다음은 Stage 1에 대한 ablation study 결과이다.


다음은 depth parameterization에 대한 ablation study 결과이다.


다음은 여러 diffusion backbone에 대하여 SinkLoss 유무를 비교한 결과이다.


다음은 latency와 메모리에 대한 비교 결과이다.