Skip to main content

A Transformers-style Python library for monocular depth estimation

Project description

depth_estimation

A Python library for monocular depth estimation.

Provides a unified, modular API for running inference, comparing, and integrating depth estimation models — supporting 8 model families with 20 variants and designed to accommodate new models with minimal friction.

Installation

pip install depth-estimation

# With dev dependencies
pip install "depth-estimation[dev]"

# With all optional model dependencies
pip install "depth-estimation[all]"

For a full list of core and optional dependencies, see docs/dependencies.md.

Quick Start

Pipeline API (Recommended)

from depth_estimation import pipeline

pipe = pipeline("depth-estimation", model="depth-anything-v2-vitb")
result = pipe("image.jpg")

depth_map = result.depth            # np.ndarray, float32, (H, W)
colored   = result.colored_depth    # np.ndarray, uint8, (H, W, 3)
meta      = result.metadata         # dict with model info

Auto Classes

from depth_estimation import AutoDepthModel, AutoProcessor

# Works with any of the 20 supported variants
model     = AutoDepthModel.from_pretrained("zoedepth")
processor = AutoProcessor.from_pretrained("zoedepth")

inputs = processor("image.jpg")
with torch.no_grad():
    depth = model(inputs["pixel_values"])

result = processor.postprocess(depth, inputs["original_sizes"])

Batch Inference

results = pipe(["img1.jpg", "img2.jpg", "img3.jpg"])
for r in results:
    print(r.depth.shape)

Supported Models

8 model families · 20 variants — see docs/models.md for the full list.

Architecture

The library follows the HuggingFace Transformers modular design philosophy:

  • Single model, single file — each model's architecture is self-contained
  • Shared processor — preprocessing/postprocessing is not duplicated
  • Registry-based auto-loading — new models self-register, no core changes needed
  • Config inheritance — configs override only what differs from the base
Input → Processor.preprocess() → Model.forward() → Processor.postprocess() → DepthOutput

Adding a New Model

  1. Create src/depth_estimation/models/your_model/
  2. Add configuration_your_model.py (inherit BaseDepthConfig)
  3. Add modeling_your_model.py (inherit BaseDepthModel, single file)
  4. Add __init__.py with MODEL_REGISTRY.register(...)

That's it — AutoDepthModel, AutoProcessor, and pipeline() will automatically resolve your model.

Running Tests

pip install -e ".[dev]"
pytest tests/ -v

Acknowledgments

This library builds upon the incredible work of the following research teams:

Model Repository
Depth Anything v1 github.com/LiheYoung/Depth-Anything
Depth Anything v2 github.com/DepthAnything/Depth-Anything-V2
Depth Anything v3 github.com/DepthAnything/Depth-Anything-V3
DINOv2 github.com/facebookresearch/dinov2
DepthPro github.com/apple/ml-depth-pro
ZoeDepth github.com/isl-org/ZoeDepth
MiDaS github.com/isl-org/MiDaS
Pixel-Perfect Depth github.com/gangweix/Pixel-Perfect-Depth
Marigold-DC github.com/prs-eth/Marigold-DC

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

depth_estimation-0.0.4.tar.gz (68.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

depth_estimation-0.0.4-py3-none-any.whl (79.7 kB view details)

Uploaded Python 3

File details

Details for the file depth_estimation-0.0.4.tar.gz.

File metadata

  • Download URL: depth_estimation-0.0.4.tar.gz
  • Upload date:
  • Size: 68.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for depth_estimation-0.0.4.tar.gz
Algorithm Hash digest
SHA256 bdf8b3344ed9ee5c19633397d94caf15b4b7e4e772d42aa0a597dc271810535d
MD5 2077243c22f1caa504a934048bfd27dd
BLAKE2b-256 f1065b4749c91e8e7639e76f8ad30123f6b168c7950ef05cab3f706cd2eef747

See more details on using hashes here.

Provenance

The following attestation bundles were made for depth_estimation-0.0.4.tar.gz:

Publisher: python-publish.yml on shriarul5273/depth_estimation

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file depth_estimation-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for depth_estimation-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 808d392cc119386dde8a086be0b9ba40fe406d2374d91325398cc36cd19e6b87
MD5 b716ce0097b504fc23a84e70031a201d
BLAKE2b-256 ab777eec7749acb6a8fb4452adf986ef5b8a21afc5ee4a461c93b58f151bbfb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for depth_estimation-0.0.4-py3-none-any.whl:

Publisher: python-publish.yml on shriarul5273/depth_estimation

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page