|
--- |
|
license: apache-2.0 |
|
tags: |
|
- vision |
|
- depth-estimation |
|
widget: |
|
- src: https://huggingface.co/datasets/mishig/sample_images/resolve/main/tiger.jpg |
|
example_title: Tiger |
|
- src: https://huggingface.co/datasets/mishig/sample_images/resolve/main/teapot.jpg |
|
example_title: Teapot |
|
- src: https://huggingface.co/datasets/mishig/sample_images/resolve/main/palace.jpg |
|
example_title: Palace |
|
--- |
|
|
|
# GLPN fine-tuned on NYUv2 |
|
|
|
Global-Local Path Networks (GLPN) model trained on NYUv2 for monocular depth estimation. It was introduced in the paper [Global-Local Path Networks for Monocular Depth Estimation with Vertical CutDepth](https://arxiv.org/abs/2201.07436) by Kim et al. and first released in [this repository](https://github.com/vinvino02/GLPDepth). |
|
|
|
Disclaimer: The team releasing GLPN did not write a model card for this model so this model card has been written by the Hugging Face team. |
|
|
|
## Model description |
|
|
|
GLPN uses SegFormer as backbone and adds a lightweight head on top for depth estimation. |
|
|
|
![model image](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/glpn_architecture.jpg) |
|
|
|
## Intended uses & limitations |
|
|
|
You can use the raw model for monocular depth estimation. See the [model hub](https://huggingface.co/models?search=glpn) to look for |
|
fine-tuned versions on a task that interests you. |
|
|
|
### How to use |
|
|
|
Here is how to use this model: |
|
|
|
```python |
|
from transformers import GLPNFeatureExtractor, GLPNForDepthEstimation |
|
import torch |
|
import numpy as np |
|
from PIL import Image |
|
import requests |
|
|
|
url = "http://images.cocodataset.org/val2017/000000039769.jpg" |
|
image = Image.open(requests.get(url, stream=True).raw) |
|
|
|
feature_extractor = GLPNFeatureExtractor.from_pretrained("vinvino02/glpn-nyu") |
|
model = GLPNForDepthEstimation.from_pretrained("vinvino02/glpn-nyu") |
|
|
|
# prepare image for the model |
|
inputs = feature_extractor(images=image, return_tensors="pt") |
|
|
|
with torch.no_grad(): |
|
outputs = model(**inputs) |
|
predicted_depth = outputs.predicted_depth |
|
|
|
# interpolate to original size |
|
prediction = torch.nn.functional.interpolate( |
|
predicted_depth.unsqueeze(1), |
|
size=image.size[::-1], |
|
mode="bicubic", |
|
align_corners=False, |
|
) |
|
|
|
# visualize the prediction |
|
output = prediction.squeeze().cpu().numpy() |
|
formatted = (output * 255 / np.max(output)).astype("uint8") |
|
depth = Image.fromarray(formatted) |
|
``` |
|
|
|
For more code examples, we refer to the [documentation](https://huggingface.co/docs/transformers/master/en/model_doc/glpn). |
|
|
|
### BibTeX entry and citation info |
|
|
|
```bibtex |
|
@article{DBLP:journals/corr/abs-2201-07436, |
|
author = {Doyeon Kim and |
|
Woonghyun Ga and |
|
Pyunghwan Ahn and |
|
Donggyu Joo and |
|
Sehwan Chun and |
|
Junmo Kim}, |
|
title = {Global-Local Path Networks for Monocular Depth Estimation with Vertical |
|
CutDepth}, |
|
journal = {CoRR}, |
|
volume = {abs/2201.07436}, |
|
year = {2022}, |
|
url = {https://arxiv.org/abs/2201.07436}, |
|
eprinttype = {arXiv}, |
|
eprint = {2201.07436}, |
|
timestamp = {Fri, 21 Jan 2022 13:57:15 +0100}, |
|
biburl = {https://dblp.org/rec/journals/corr/abs-2201-07436.bib}, |
|
bibsource = {dblp computer science bibliography, https://dblp.org} |
|
} |
|
``` |