DPT (Dense Prediction Transformer) model with DINOv2 backbone as proposed in DINOv2: Learning Robust Visual Features without Supervision by Oquab et al.
Fonte do modelo
Trecho da fonte
DPT (Dense Prediction Transformer) model with DINOv2 backbone as proposed in DINOv2: Learning Robust Visual Features without Supervision by Oquab et al.
Fontes
1 fonteVerificado 25 de ago.
Artefatos de modelo
1 artefatoTrechos de fonte
2 trechos--- license: apache-2.0 tags: - vision - depth-estimation - dinov2 inference: false --- # Model Card: DPT model with DINOv2 backbone ## Model Details DPT (Dense Prediction Transformer) model with DINOv2 backbone as proposed in [DINOv2: Learning Robust Visual Features without Supervision](https://arxiv.org/abs/2304.07193) by Oquab et al. <img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/dpt_architecture.jpg" alt="drawing" width="600"/> <small> DPT architecture. Taken from the <a href="https://arxiv.org/abs/2103.13413" target="_blank">original paper</a>. </small> ### Resources - [DINOv2 Paper](https://arxiv.org/abs/2304.07193) - [DPT Paper](https://arxiv.org/abs/2103.13413) ### Use with Transformers ```python from transformers import AutoImageProcessor, DPTForDepthEstimation 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) image_processor = AutoImageProcessor.from_pretrained("facebook/dpt-dinov2-base-kitti") model = DPTForDepthEstimation.from_pretrained("facebook/dpt-dinov2-base-kitti") # prepare image for the model inputs = image_processor(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) ``` ## Model Use ### Intended Use The model is intended to showcase that using the DPT framework with DINOv2 as backbone yields a powerful depth estimator. ### BibTeX entry and citation info ```bibtex @misc{oquab2023dinov2, title={DINOv2: Learning Robust Visual Features without Supervision}, author={Maxime Oquab and Timothée Darcet and Théo Moutakanni and Huy Vo and Marc Szafraniec and Vasil Khalidov and Pierre Fernandez and Daniel Haziza and Francisco Massa and Alaaeldin El-Nouby and Mahmoud Assran and Nicolas Ballas and Wojciech Galuba and Russell Howes and Po-Yao Huang and Shang-Wen Li and Ishan Misra and Michael Rabbat and Vasu Sharma and Gabriel Synnaeve and Hu Xu...
Source context: 295 downloads · 2 likes · Pipeline depth-estimation · Library transformers · Repo facebook/dpt-dinov2-base-kitti