Metric depth
Depth Anything V3 metric (Large)
Estimate per-pixel depth in meters from a single photo.
About this model
Depth Anything V3 metric is a ViT-L backbone fine-tuned to return absolute depth in meters, not relative disparity. Fixed input is 280x504. The build is a 697 MB fp32 ONNX from TillBeemelmanns on HuggingFace.
On M1 Max with CoreML, warm inference runs in 265 ms, about 7 times faster than CPU. Metric values are most reliable when the scene resembles the training distribution; otherwise treat depth as relative within one frame.
What you can build
- Estimate distance to objects in a single photo for AR previews.
- Generate depth-aware blur or bokeh in a photo editor.
- Build a rough 3D scene reconstruction from a single frame.
- Pre-compute depth for downstream point-cloud or mesh tools.
Variants & downloads
Choose the build for your appModel files are being prepared.
Explore the model’s examples, source links, and integration notes while download variants are added.
Example inference
Performance
Results depend on the device, runtime, and test conditions. Each measurement keeps its own context.
M1 Max, macOS 15, ONNX Runtime 1.17
See original catalog hardware notes · CPU
1.83 s
Warm inference
Reference result from the existing catalog; conversion variant and measurement date were not recorded.
M1 Max, macOS 15, ONNX Runtime 1.17
See original catalog hardware notes · CoreML
265.0 ms
Warm inference
Reference result from the existing catalog; conversion variant and measurement date were not recorded.
RTX 2060, Ubuntu 24.04, ONNX Runtime 1.24.3
See original catalog hardware notes · CUDA
139.3 ms
Warm inference
Reference result from the existing catalog; conversion variant and measurement date were not recorded.
Integration examples
Vision SDK integration
cpp
#include "imaged/sdk.hpp"
#include "imaged/families/depth/depth_family.hpp"
imaged::SDK::AI ai;
auto& config = ai.getOptions();
config.set("depth.model", "weights/depth_anything_v3_metric_large.onnx");
config.set("depth.inference.provider", "coreml");
imaged::SDK::DepthFamily family;
family.load(config);
imaged::SDK::Image image;
image.load("scene.jpg");
auto result = family.run(&image);
auto* depth = std::get_if<imaged::SDK::DepthResult>(&result);
// depth->depth holds 280*504 floats in meters