File size: 2,393 Bytes
372e027
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
license: cc-by-nc-4.0
pipeline_tag: depth-estimation
tags:
  - depth-estimation
  - monocular-depth
  - metric-depth
  - epipolar-attention
library_name: pytorch
---

# EpiDistill

**Geometric Distillation from Rectified Stereo: Leveraging Epipolar Cues for Monocular Depth**

Jung-Hee Kim, Xiaoming Liu · Michigan State University / UNC Chapel Hill

[Paper](https://arxiv.org/abs/2607.15600) · [Project page](https://jungheekim29.github.io/EpiDistill/) · [Code](https://github.com/jungheekim29/EpiDistill)

EpiDistill turns a frozen depth foundation model into a single-view metric depth
model. A multi-view teacher learns correspondence through depth-guided epipolar
attention; at inference the source views are replaced by learnable Rectified
Stereo Tokens, so the cross-view pathway survives with one image.

## Files

| file | backbone | tensors |
|---|---|---|
| `epidistill_unidepthv2.pt` | UniDepthV2 (ViT-L/14) | 401 |
| `epidistill_depthpro.pt` | DepthPro | 455 |

Each file is a plain PyTorch `state_dict` (no pickled objects beyond tensors, so
it loads with `weights_only=True`).

## These weights are a correction, not a depth network

They hold only EpiDistill's own parameters. The frozen backbone is **not**
included and must be obtained separately:

* **UniDepthV2** downloads automatically from `lpiccinelli/unidepth-v2-vitl14`.
* **DepthPro** needs `depth_pro.pt` from
  [apple/ml-depth-pro](https://github.com/apple/ml-depth-pro).

## Usage

```python
from huggingface_hub import hf_hub_download
from epidistill import EpiDistillConfig, EpiDistillPredictor

path = hf_hub_download("kimjun84/EpiDistill", "epidistill_unidepthv2.pt")
predictor = EpiDistillPredictor.from_pretrained(
    path, config=EpiDistillConfig(backbone="unidepthv2")
)
depth, K = predictor(rgb)      # depth: (H, W) float32 metres, K: (3, 3)
```

The model code lives in the
[EpiDistill repository](https://github.com/jungheekim29/EpiDistill); install it
first.

## License

**CC BY-NC 4.0** — non-commercial. The UniDepthV2 backbone these weights correct
is itself CC BY-NC 4.0; DepthPro carries Apple's licence.

## Citation

```bibtex
@inproceedings{kim2026epidistill,
  title     = {Geometric Distillation from Rectified Stereo:
               Leveraging Epipolar Cues for Monocular Depth},
  author    = {Kim, Jung-Hee and Liu, Xiaoming},
  booktitle = {ECCV},
  year      = {2026}
}
```