File size: 4,664 Bytes
b5d680c
 
 
d0723ce
62b7993
b5d680c
 
62b7993
d0723ce
 
 
b5d680c
d0723ce
 
b5d680c
 
7e42f77
d0723ce
 
 
7e42f77
d0723ce
62b7993
d0723ce
 
 
3c94b54
 
d0723ce
 
62b7993
d0723ce
 
b5d680c
d0723ce
b5d680c
 
d0723ce
 
 
 
62b7993
d0723ce
62b7993
 
d0723ce
 
 
 
 
 
 
b5d680c
d0723ce
62b7993
d0723ce
 
 
62b7993
 
 
 
 
 
 
 
 
d0723ce
 
 
62b7993
d0723ce
62b7993
d0723ce
 
 
 
 
 
 
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: apache-2.0
base_model: depth-anything/Depth-Anything-V2-Small-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

[![GitHub](https://img.shields.io/badge/GitHub-ZeroModels-black?logo=github)](https://github.com/IMvision12/ZeroModels) [![Docs](https://img.shields.io/badge/Docs-Depth--Anything--V2-blue)](https://imvision12.github.io/ZeroModels/depth_anything_v2/) [![Collection](https://img.shields.io/badge/HF-Depth--Anything--V2%20collection-yellow)](https://huggingface.co/collections/zeromodels/depth-anything-v1-and-v2-6a8eaf5352197613b1655ac5)

# zeromodels/depth_anything_v2_small

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-Small-hf).

Pure-**Keras 3** conversion of [`depth-anything/Depth-Anything-V2-Small-hf`](https://huggingface.co/depth-anything/Depth-Anything-V2-Small-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_small")
processor = DepthAnythingV2ImageProcessor.from_weights("zeromodels/depth_anything_v2_small")

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-Small-hf")`.

## Special Thanks

A huge thank you to the Depth Anything authors for creating and releasing these models.

License: Apache 2.0.