Depth Pro: Sharp Monocular Metric Depth in Less Than a Second
We present a foundation model for zero-shot metric monocular depth estimation. Our model, Depth Pro, synthesizes high-resolution depth maps with unparalleled sharpness and high-frequency details. The predictions are metric, with absolute scale, without relying on the availability of metadata such as camera intrinsics. And the model is fast, producing a 2.25-megapixel depth map in 0.3 seconds on a standard GPU. These characteristics are enabled by a number of technical contributions, including an efficient multi-scale vision transformer for dense prediction, a training protocol that combines real and synthetic datasets to achieve high metric accuracy alongside fine boundary tracing, dedicated evaluation metrics for boundary accuracy in estimated depth maps, and state-of-the-art focal length estimation from a single image.
The checkpoint in this repository is a reference implementation, which has been re-trained. Its performance is close to the model reported in the paper but does not match it exactly.
How to Use
Please, follow the steps in the
code repository
to set up your environment. Then you can download the checkpoint from the
Files and versions
tab above, or use the
huggingface-hub
CLI:
The code repo provides a helper script to run the model on a single image:
# Run prediction on a single image:
depth-pro-run -i ./data/example.jpg
# Run `depth-pro-run -h` for available options.
Running from Python
from PIL import Image
import depth_pro
# Load model and preprocessing transform
model, transform = depth_pro.create_model_and_transforms()
model.eval()
# Load and preprocess an image.
image, _, f_px = depth_pro.load_rgb(image_path)
image = transform(image)
# Run inference.
prediction = model.infer(image, f_px=f_px)
depth = prediction["depth"] # Depth in [m].
focallength_px = prediction["focallength_px"] # Focal length in pixels.
Evaluation (boundary metrics)
Boundary metrics are implemented in
eval/boundary_metrics.py
and can be used as follows:
# for a depth-based dataset
boundary_f1 = SI_boundary_F1(predicted_depth, target_depth)
# for a mask-based dataset (image matting / segmentation)
boundary_recall = SI_boundary_Recall(predicted_depth, target_mask)
Citation
If you find our work useful, please cite the following paper:
@article{Bochkovskii2024:arxiv,
author = {Aleksei Bochkovskii and Ama\"{e}l Delaunoy and Hugo Germain and Marcel Santos and
Yichao Zhou and Stephan R. Richter and Vladlen Koltun}
title = {Depth Pro: Sharp Monocular Metric Depth in Less Than a Second},
journal = {arXiv},
year = {2024},
}
Acknowledgements
Our codebase is built using multiple opensource contributions, please see
Acknowledgements
for more details.
Please check the paper for a complete list of references and datasets used in this work.
Runs of apple DepthPro on huggingface.co
10.0K
Total runs
-14
24-hour runs
284
3-day runs
318
7-day runs
5.0K
30-day runs
More Information About DepthPro huggingface.co Model
DepthPro huggingface.co is an AI model on huggingface.co that provides DepthPro's model effect (), which can be used instantly with this apple DepthPro model. huggingface.co supports a free trial of the DepthPro model, and also provides paid use of the DepthPro. Support call DepthPro model through api, including Node.js, Python, http.
DepthPro huggingface.co is an online trial and call api platform, which integrates DepthPro's modeling effects, including api services, and provides a free online trial of DepthPro, you can try DepthPro online for free by clicking the link below.
DepthPro is an open source model from GitHub that offers a free installation service, and any user can find DepthPro on GitHub to install. At the same time, huggingface.co provides the effect of DepthPro install, users can directly use DepthPro installed effect in huggingface.co for debugging and trial. It also supports api for free installation.