Instructions to use zeromodels/depth_anything_v2_base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ZeroModels
How to use zeromodels/depth_anything_v2_base with ZeroModels:
# pip install -U zeromodels # ZeroModels is pure Keras 3, so pick a backend: "jax", "torch" or "tensorflow". import os os.environ["KERAS_BACKEND"] = "jax" from zeromodels import AutoZModel # AutoZModel reads the repo's model_type and loads the matching class. # For a task head use the matching loader, e.g. AutoZMImageClassify / AutoZMDetect / # AutoZMSemanticSegment / AutoZMTextGenerate (see zeromodels.auto). model = AutoZModel.from_weights("zeromodels/depth_anything_v2_base") - Keras
How to use zeromodels/depth_anything_v2_base with Keras:
# !pip install -U keras tensorflow huggingface_hub # Keras needs TensorFlow installed to read "hf://" paths, so the tensorflow backend is selected here; # "jax" and "torch" also work for computation once TensorFlow is installed. import os os.environ["KERAS_BACKEND"] = "tensorflow" import keras model = keras.saving.load_model("hf://zeromodels/depth_anything_v2_base") - DepthAnythingV2
How to use zeromodels/depth_anything_v2_base with DepthAnythingV2:
# Install from https://github.com/DepthAnything/Depth-Anything-V2 # Load the model and infer depth from an image import cv2 import torch from huggingface_hub import hf_hub_download from depth_anything_v2.dpt import DepthAnythingV2 # instantiate the model model = DepthAnythingV2(encoder="<ENCODER>", features=<NUMBER_OF_FEATURES>, out_channels=<OUT_CHANNELS>) # load the weights filepath = hf_hub_download(repo_id="zeromodels/depth_anything_v2_base", filename="depth_anything_v2_<ENCODER>.pth", repo_type="model") state_dict = torch.load(filepath, map_location="cpu") model.load_state_dict(state_dict) model.eval() raw_img = cv2.imread("your/image/path") depth = model.infer_image(raw_img) # HxW raw depth map in numpy - Notebooks
- Google Colab
- Kaggle
File size: 4,658 Bytes
7a655b1 76ea9eb 67e8621 81d1cc9 7a655b1 81d1cc9 67e8621 7a655b1 67e8621 7a655b1 be91c12 67e8621 be91c12 67e8621 81d1cc9 67e8621 659994d 67e8621 81d1cc9 67e8621 7a655b1 67e8621 7a655b1 67e8621 81d1cc9 67e8621 81d1cc9 67e8621 7a655b1 67e8621 81d1cc9 67e8621 81d1cc9 67e8621 81d1cc9 67e8621 81d1cc9 67e8621 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | ---
pipeline_tag: depth-estimation
license: cc-by-nc-4.0
base_model: depth-anything/Depth-Anything-V2-Base-hf
library_name: zeromodels
tags:
- keras
- zeromodels
- depth-anything-v2
- depth-estimation
- arxiv:2406.09414
- pytorch
- jax
- tf
---
## ***See [our collection](https://huggingface.co/collections/zeromodels/depth-anything-v1-and-v2-6a8eaf5352197613b1655ac5) for all versions of Depth Anything V2.***
# Run Depth Anything V2 with Keras 3: JAX, PyTorch, or TensorFlow
[](https://github.com/IMvision12/ZeroModels) [](https://imvision12.github.io/ZeroModels/depth_anything_v2/) [](https://huggingface.co/collections/zeromodels/depth-anything-v1-and-v2-6a8eaf5352197613b1655ac5)
# zeromodels/depth_anything_v2_base
Paper: [Depth Anything V2 (arXiv:2406.09414)](https://arxiv.org/abs/2406.09414) · [HF Papers](https://huggingface.co/papers/2406.09414)
Depth Anything V2 keeps V1's architecture and improves data (synthetic labels plus large-scale pseudo-labeling). Relative heads return unitless inverse depth; metric indoor/outdoor heads return metres.
For more details on the model, please go to the upstream [model card](https://huggingface.co/depth-anything/Depth-Anything-V2-Base-hf).
Pure-**Keras 3** conversion of [`depth-anything/Depth-Anything-V2-Base-hf`](https://huggingface.co/depth-anything/Depth-Anything-V2-Base-hf) for [zeromodels](https://github.com/IMvision12/ZeroModels). One implementation runs unmodified on **TensorFlow / Torch / JAX**.
This is a **monocular depth** checkpoint (`DepthAnythingV2DepthEstimation`, relative).
## ✨ Quick start
```python
import os
os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow"
from PIL import Image
from zeromodels.models.depth_anything_v2 import DepthAnythingV2DepthEstimation, DepthAnythingV2ImageProcessor
model = DepthAnythingV2DepthEstimation.from_weights("zeromodels/depth_anything_v2_base")
processor = DepthAnythingV2ImageProcessor.from_weights("zeromodels/depth_anything_v2_base")
image = Image.open("your_image.jpg").convert("RGB")
output = model(processor(image)["pixel_values"], training=False)
depth = processor.post_process_depth_estimation(
output, original_size=(image.height, image.width)
)
print(depth.shape)
```
Load any Depth Anything V2 variant the same way with `from_weights("zeromodels/<variant>")`:
| Variant | Hub | Output |
|---|---|---|
| `depth_anything_v2_small` | [`zeromodels/depth_anything_v2_small`](https://huggingface.co/zeromodels/depth_anything_v2_small) | relative |
| `depth_anything_v2_base` | [`zeromodels/depth_anything_v2_base`](https://huggingface.co/zeromodels/depth_anything_v2_base) | relative |
| `depth_anything_v2_large` | [`zeromodels/depth_anything_v2_large`](https://huggingface.co/zeromodels/depth_anything_v2_large) | relative |
| `depth_anything_v2_metric_indoor_small` | [`zeromodels/depth_anything_v2_metric_indoor_small`](https://huggingface.co/zeromodels/depth_anything_v2_metric_indoor_small) | metric indoor |
| `depth_anything_v2_metric_indoor_base` | [`zeromodels/depth_anything_v2_metric_indoor_base`](https://huggingface.co/zeromodels/depth_anything_v2_metric_indoor_base) | metric indoor |
| `depth_anything_v2_metric_indoor_large` | [`zeromodels/depth_anything_v2_metric_indoor_large`](https://huggingface.co/zeromodels/depth_anything_v2_metric_indoor_large) | metric indoor |
| `depth_anything_v2_metric_outdoor_small` | [`zeromodels/depth_anything_v2_metric_outdoor_small`](https://huggingface.co/zeromodels/depth_anything_v2_metric_outdoor_small) | metric outdoor |
| `depth_anything_v2_metric_outdoor_base` | [`zeromodels/depth_anything_v2_metric_outdoor_base`](https://huggingface.co/zeromodels/depth_anything_v2_metric_outdoor_base) | metric outdoor |
| `depth_anything_v2_metric_outdoor_large` | [`zeromodels/depth_anything_v2_metric_outdoor_large`](https://huggingface.co/zeromodels/depth_anything_v2_metric_outdoor_large) | metric outdoor |
## Tips
- Set `KERAS_BACKEND` **before** importing Keras / zeromodels.
- Indoor and outdoor metric heads are not interchangeable.
- See [Depth Anything V2 docs]({DOCS_URL}) and [Loading Weights](https://imvision12.github.io/ZeroModels/loading_weights/).
- Community / upstream weights: `DepthAnythingV2DepthEstimation.from_weights("hf:depth-anything/Depth-Anything-V2-Base-hf")`.
## Special Thanks
A huge thank you to the Depth Anything authors for creating and releasing these models.
License: Apache 2.0.
|