ECoDepth: Effective Conditioning of Diffusion Models for Monocular Depth Estimation
<|reference_start|>ECoDepth: Effective Conditioning of Diffusion Models for Monocular Depth Estimation: In the absence of parallax cues, a learning-based single image depth estimation (SIDE) model relies heavily on shading and contextual cues in the image. While this simplicity is attractive, it is necessary to train such models on large and varied datasets, which are difficult to capture. It has been shown that using embeddings from pre-trained foundational models, such as CLIP, improves zero shot transfer in several applications. Taking inspiration from this, in our paper we explore the use of global image priors generated from a pre-trained ViT model to provide more detailed contextual information. We argue that the embedding vector from a ViT model, pre-trained on a large dataset, captures greater relevant information for SIDE than the usual route of generating pseudo image captions, followed by CLIP based text embeddings. Based on this idea, we propose a new SIDE model using a diffusion backbone which is conditioned on ViT embeddings. Our proposed design establishes a new state-of-the-art (SOTA) for SIDE on NYUv2 dataset, achieving Abs Rel error of 0.059 (14% improvement) compared to 0.069 by the current SOTA (VPD). And on KITTI dataset, achieving Sq Rel error of 0.139 (2% improvement) compared to 0.142 by the current SOTA (GEDepth). For zero-shot transfer with a model trained on NYUv2, we report mean relative improvement of (20%, 23%, 81%, 25%) over NeWCRFs on (Sun-RGBD, iBims1, DIODE, HyperSim) datasets, compared to (16%, 18%, 45%, 9%) by ZoeDepth. The project page is available at https://ecodepth-iitd.github.io<|reference_end|>
@article{patni2024ecodepth:,
    title={ECoDepth: Effective Conditioning of Diffusion Models for Monocular Depth
  Estimation},
    author={Suraj Patni, Aradhye Agarwal, Chetan Arora},
    journal={arXiv preprint arXiv:2403.18807},
    year={2024},
    archivePrefix={arXiv},
    eprint={2403.18807},
    primaryClass={cs.CV cs.AI cs.LG}
}