File size: 4,666 Bytes
5d9919c
 
829383c
f5ee371
3ea31d2
5d9919c
 
3ea31d2
f5ee371
 
 
5d9919c
f5ee371
 
5d9919c
 
522a9b4
f5ee371
 
 
522a9b4
f5ee371
3ea31d2
f5ee371
 
 
1e05a12
 
f5ee371
 
3ea31d2
f5ee371
 
5d9919c
f5ee371
5d9919c
 
f5ee371
 
 
 
3ea31d2
f5ee371
3ea31d2
 
f5ee371
 
 
 
 
 
 
5d9919c
f5ee371
3ea31d2
f5ee371
 
 
3ea31d2
 
 
 
 
 
 
 
 
f5ee371
 
 
3ea31d2
f5ee371
3ea31d2
f5ee371
 
 
 
 
 
 
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-Large-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_large

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

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

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

## Special Thanks

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

License: Apache 2.0.