Relative depth
DPT-Large (uint8)
Intel DPT-Large for relative depth from a single image, quantized to uint8.
About this model
DPT-Large is Intel's dense prediction transformer for monocular depth. The build is Xenova's uint8 quantization, around 336 MB on disk, dropping the file size from the 1.37 GB fp32 release. Output is disparity, not metric meters: larger values mean closer.
Compare values within a single frame rather than across images. The fp32 DPT export exists upstream if you need CoreML acceleration; this uint8 build is CPU-only in practice.
What you can build
- Add depth-aware effects to a photo editor without shipping 1+ GB of weights.
- Estimate relative scene depth for video stylization.
- Generate parallax frames from a still photo.
- Compare DPT against Depth Anything V3 in a research notebook.
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
564.6 ms
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
3.95 s
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
1.18 s
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/dpt-large-uint8.onnx");
config.set("depth.normalize", "neg-one-to-one");
config.set("depth.inputHeight", 384);
config.set("depth.inputWidth", 384);
config.set("depth.inference.provider", "cpu");
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 384*384 disparity floats